6.25.2010

Kalkulator Sederhana ( Konsep Stack dan ArrayList

Sekarang saya akan memberikan hasil modifikasinya, yaitu memberikan tombol-tombol, layaknya kalkulator pada umumnya, yang tentunya masih menggunakan prinsip dasar yaitu "STACK" dan gabungan "ArrayList" baik langsung saja kita ke TKP ( Tempat Koding Program ) hehhee... Maksa :D
Pertama Kalian Buka Microsoft Visual Studio, apa aj yang penting .NET, dalam kasus ini saya menggunakan Microsoft Visual Studio 2010 Ultimate

Kemudian Pilih New Project hingga muncul menu seperti di bawah ini, pilih Windows Form Application jangan pilih yang lain, karena disini
kita akan bermain Forms, kalau sudah beri nama Kalkulator kemudian OK

Setelah klik OK maka anda akan di bawa ke lembar kerja Microsoft Visual Studio 2010, seperti tampak pada gambar berikut:

tambahkan beberapa label, button, dan textbox pada form Adapun ketentuannya adalah sebagai berikut : [ tabel lihat di hands on lab ]
Susunlah sedemikian rupa sesuai dengan aturan diatas hinggu membentuk tampilan seperti gambar di bawah ini :

Setelah selasai dengan pembuatan tampilannya, sekarang tiba saat nya pembuatan actionnya, atau perintah nya atau code nya,,,, uh.. tp bentar yo.. istirahat sejenak, cape euy... hahhaay... minum dulu ah.. srupuuuuuuuuuuut...
Setelah istirahat sejenak, langsung saja kita ke TKP, adapun cara nya adalah sebagai berikut : Klik kanan pada form, pilih view code ( klik kanan -> view code )
ya kira-kira seperti gambar di bawah ini

Nah.. Setelah klik view code, anda akan di bawa ke TKP ( Tempat Koding Program :D )... hehhehe.. ya kira-kira seperti ini lah :

Loh Ko Kosong?? Ya ia atuh, masih kosong.. kan belum di kasih action
Nah sekarang tuliskan beberapa fungsi untuk programnya ya kira-kira seperti berikut ini :

Kemudian Tambahkan lagi, code buat Aritmathic nya, ya kira-kira seperti gambar di bawah ini, untuk fungsi " + - / * "

Setelah selesai kebali ke menu form1.cs[Design], klik ganda tombol "sama dengan" hingga muncul code, halaman code view seperti berikut:

Pada fungsi btnHasil_click, kita tambahkan syntax untuk menghitung hasil dari operasi matematikannya, adapun syntaxnya adalah sebagai berikut :
//fungsi di gunakan untuk memproses data perhitungan yang telah di inputkan
private void btnHasil_Click(object sender, EventArgs e)
{
Decimal prevNum, currNum = 0;
Decimal tmpNum;
string inputText;
string operand;
const string operators =" * / + - ";
Stack revStack = new Stack();
Stack stack = new Stack();

inputText = tbTampil.Text;

if (inputText.Length == 0)
return;
string[] temp = inputText.Split();

foreach (String str in temp)
{
if (str.Length == 0)
continue;
if (Decimal.TryParse(str, out tmpNum))
{
stack.Push(str);
}
else
{
if (operators.Contains(str))
stack.Push(str);
}
}

// Pengecekan Stack, apakah stack dalam kondisi kosong
if ((stack.Count % 2) == 0)
{
MessageBox.Show("Stack Kosong");
tbTampil.Clear();
return;
}
while (stack.Count > 0)
revStack.Push(stack.Pop());
stack = revStack;

prevNum = Decimal.Parse(stack.Pop().ToString());

//pengulangan perintah selama kondisi stack masih ada isi nya
while (stack.Count > 0)
{
operand = stack.Pop().ToString();
currNum = Decimal.Parse(stack.Pop().ToString());
prevNum = Arithmetic(prevNum, operand, currNum);
}
tbTampil.Text = prevNum.ToString() + " ";
//tbInput.Clear();
}
Setelah selesai, kembali ke form design, klik dua kali btnNol hingga muncul View Code dengan fungsi btnNol_click

Lakukan hal yang sama untuk btnSatu, btnDua, btnTiga, btnEmpat, btnLima, btnEnam, btnTujuh, btnDelapan dan btnSembilan
Adapun syntax lengkapnya adalah sebagai berikut :
private void btnNol_Click(object sender, EventArgs e){ AddToArray(btnNol); }
private void btnSatu_Click(object sender, EventArgs e){AddToArray(btnSatu);}
private void btnDua_Click(object sender, EventArgs e){AddToArray(btnDua); }
private void btnTiga_Click(object sender, EventArgs e){AddToArray(btnTiga); }
private void btnEmpat_Click(object sender, EventArgs e){AddToArray(btnEmpat);}
private void btnLima_Click(object sender, EventArgs e){AddToArray(btnLima); }
private void btnEnam_Click(object sender, EventArgs e){AddToArray(btnEnam); }
private void btnTujuh_Click(object sender, EventArgs e){AddToArray(btnTujuh);}
private void btnDelapan_Click(object sender, EventArgs e) { AddToArray(btnDelapan); }
private void btnSembilan_Click(object sender, EventArgs e) { AddToArray(btnSembilan); }
Nah Sekarang balik lagi form design klik dua kali button operator, yang mana saja, misal saya double klik btnTambah, maka sama seperti diatas, view code akan terbuka, ya.. kira-kira akan tampil seperti berikut ini

Lakukan hal yang sama untuk btnKali, btnBagi dan btnMinus adapun syntax lengkapnya adalah sebagai berikut :
private void btnTambah_Click(object sender, EventArgs e)
{
AddOperatorToArray(btnTambah);
}
private void btnMinus_Click(object sender, EventArgs e)
{
AddOperatorToArray(btnMinus);
}
private void btnKali_Click(object sender, EventArgs e)
{
AddOperatorToArray(btnKali);
}
private void btnBagi_Click(object sender, EventArgs e)
{
AddOperatorToArray(btnBagi);
}

Ehmmm... Haduh waktu dah pukul 4:15 dini hari... ngantuk.. berat..
Apalagi ya????? ; )...?? oh.. ia tombol reset belum.. hahay...

Yo.. wis, balik deui ka form design, ya biasa masukan action seperti diatas, klik dua kali btnReset, sampai muncul View Code, kemudian tambahin code buat reset nya, simple ko, tinggal tambahin method " reset() " tanpa tanda kutip, beres.. alnyakan methode reset dah di bikin sebelumnya, jadi kita tinggal manggil aja, kurang lebih seperti ini syntax nya:
private void btnReset_Click(object sender, EventArgs e)
{
Reset();
}
Semuanya dah kelar tinggal di Run aj.. Kalau anda mengikuti sesuai dengan petuah yang ada, maka akan tampil seperti berikut ini dan bisa langsung di gunakan..


Alhamdulillah.......
Akhirnya kelar juga... huh... Ngantuk Rek....
Yang mau download E-Book Klik aj link dibawah ini
Link download Skydrive : Link download Skydrive
Link Download Ziddu : Link Ziddu
Pass : akangneo
Untuk Source code nya :
"Comming Soon"

Tidak ada komentar:

Pemasangan Iklan


Get 4Shared Premium!
Protected by Copyscape Duplicate Content Detector