Kamis, 05 November 2009

kalkulator

Public Class Form1
Dim var1 As Double
Dim var2 As Double
Dim xHasil As Double
Dim Perintah As String
Dim oldPerintah As String = "XXX"
Dim xFirst As Boolean

Private Sub tampil(ByVal xNilai As String)
If xFirst = True Then
textHasil.Text = ""
xfirst = False
End If
textHasil.Text = textHasil.Text & xNilai
textHasil.Focus()
End Sub
Private Sub proses(ByVal xPerintah As String)
If TextHasil.Text = "" Then Exit Sub
Select Case xPerintah
Case "+", "-", "x", "/"
xFirst = True
Perintah = xPerintah
xHasil = CDbl(TextHasil.Text)
If oldPerintah <> "XXX" Then
Select Case oldPerintah
Case "/"
TextHasil.Text = var1 / xHasil
Case "+"
TextHasil.Text = var1 + xHasil
Case "-"
TextHasil.Text = var1 - xHasil
Case "x"
TextHasil.Text = var1 * xHasil
End Select
End If
oldPerintah = xPerintah
var1 = CDbl(TextHasil.Text)
Case "back"
TextHasil.Text = LSet(TextHasil.Text, Len(TextHasil.Text) - 1)
Case "c"
TextHasil.Text = ""
var1 = 0
var2 = 0
xHasil = 0
oldPerintah = "XXX"
Case "="
oldPerintah = "XXX"
xFirst = True
var2 = CDbl(TextHasil.Text)
Select Case Perintah
Case "/"
TextHasil.Text = var1 / var2
Case "+"
TextHasil.Text = var1 + var2
Case "-"
TextHasil.Text = var1 - var2
Case "x"
TextHasil.Text = var1 * var2
End Select
End Select
End Sub
Private Sub tombolAngka1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka1.Click
tampil("1")
End Sub

Private Sub tombolAngka2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka2.Click
tampil("2")
End Sub

Private Sub tombolAngka3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka3.Click
tampil("3")
End Sub

Private Sub tombolAngka4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka4.Click
tampil("4")
End Sub

Private Sub tombolAngka5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka5.Click
tampil("5")
End Sub

Private Sub tombolAngka6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka6.Click
tampil("6")
End Sub

Private Sub tombolAngka7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka7.Click
tampil("7")
End Sub

Private Sub tombolAngka8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka8.Click
tampil("8")
End Sub

Private Sub tombolAngka9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka9.Click
tampil("9")
End Sub

Private Sub tombolAngka10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka10.Click
tampil("0")
End Sub

Private Sub tombolAngka11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka11.Click
tampil("00")
End Sub

Private Sub tombolAngka12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolAngka12.Click
tampil("000")
End Sub

Private Sub tombolTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolTambah.Click
proses("+")
End Sub

Private Sub tombolKurang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolKurang.Click
proses("-")
End Sub

Private Sub tombolKali_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolKali.Click
proses("x")
End Sub

Private Sub tombolBagi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolBagi.Click
proses("/")
End Sub

Private Sub tombolBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolBack.Click
proses("back")
End Sub

Private Sub tombolC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolC.Click
proses("c")
End Sub

Private Sub tombolHasil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tombolHasil.Click
proses("=")
End Sub
End Class


PENJELASAN:

Aksesibilitas Variabel yang digunakan:
1. Dim : Variabel Dim memiliki akses terbatas.Jika dideklarasikan pada prosedur maka jangkauannya hanya di prosedur itu saja.Jika prosedur selesai dijalankan maka nilai variable Dim akan hilang
2. Public:Variabel public memiliki akses yang luas dan dapat diakses dibagian mana pun dalam suatu proyek.
3. Private:Variabel Private memiliki akses terbtasa.Yang dapat menagksesnya hanya dari dalam sisi deklarasi,termasuk anggota dari tipe bersarang seperti prosedur.
Kita dapat menggunakan private hanya pada level modul,artinya kita dapat mendeklarasikan variable Private di dalam modul,class atau struckture,tetapi tidak dalam namespace atau level file dan tidak dalam prosedure.

Konversi Tipe Data yang digunakan:
1. CDbl: Mengonversi nilai numerik atau string ke tipe Double

Alur Percabangan yang digunakan:
1. If..Then
Pernyataan If…Then akan menguji suatu kondisi,jika true,program akan menjalankan pernyataan yg mengikutinya.Struktur If..Then bias memiliki sintaks satu baris atau banyak baris.Sintaknya adalah:

If kondisi then Pernyataan ‘ untuk perintah satu baris
If kondisi Then ‘ untuk perintah banyak baris
Pernyataan1
Pernyataan2
End If

2. Select Case
Pernyataan Select Case mirip dengan pernyataan If…Then..Else.
Pada dasarnya keduanya gunanya sama,tetapi menggunakan Select Case akan mempermudah menulis dan mengelola kode.Ketika pernyataan If…Then..Else memiliki banyak blok kode,kode menjadi sulit dibaca dan diikuti.
Struktur Select Case akan menguji ekspresi tunggal yang dievaluasi sekali pada bagian atas dari struktur.Hasil dari pengujian kemudian dibandingkan dengan beberapa nilai dan jika salah satu ada yang cocok,blok pernyataan yang berhubungan akan dijalankan.
Berikut ini sintaks pernyataan Select Case:
Select Case Ekspresi
Case Nilai1
Blok Pernyataan1
Case Nilai2
Blok Pernyataan2

Case Else
Blok Pernyataan
End Select

Kontrol yang digunakan:
1. TextBox:Menampilkan Text yang dapat diedit oleh pengguna pada saat program dijalankan atau diubah oleh program
2. Button:Tombol yang dapat ditekan.Anda dapat menggunakan button agar pengguna dapat memberitahu program untuk melakukan sesuatu

Tipe Data yang digunakan:
1. Double
Ukuran:8 bytes
2. String
Ukuran 1 bytes perkarakter
3. Boolean
Ukuran 2bytes

Operator yang digunakan:
Operator Aritmatika:
1. * : Perkalian dimana hasilnya adalah nilai dari operand pertama dikali operand kedua
2. / : Pembagian reguler dimana hasilnya adalah nilai dari operand pertama dibagi operand kedua
3. - : Pengurangan,diman hasil operand pertama dikurangi operand kedua
4. + : Penambahan, dimana hasil operand pertama ditambah operand kedua

Operator Penugasan:
1. = : Menugaskan nilai sisi kanan tanda sama dengan item disisi kiri tanda sama dengan item disisi kiri tanda sama dengan

Operator Relasi:
1. <> : Tidak sama.Hasilnya true jika nilai dua operand tidaksama,
jika sama hasilnya False

Proses pada saat sintaks dijalankan:
• Pada sub tampil,Jika xFirst benar,maka akan menampilkan apa yang kita tekan pada tombol kalkulator.
• Pada sub proses,Jika TextHasil.Text kosong maka akan keluar dari sub.Ketika dipilih salah satu operator /,x,+,- maka,jika benar maka xHasil akan membaca TextHasil.Text dimana apabila / maka variabel1 akan membagi xHasil, * maka variabel1 akan mengkali xHasil, + maka variabel1 akan menambah xHasil, - maka variabel1 akan mengurangi xHasil.
• Setelah sub tampil dan sub proses dibaca oleh system,maka akan dipanggil oleh sub tombol,dimana,tombol-tombol pada kalkulator tersebut sudah diisikan sintaks-sintaks pemanggilan setiap mengkliknya.

Tipe kesalahan
1.Kesalahan syntaks:tipe kesalahan yang paling mudah ditemukan dan diperbaiki.Biasanya terjadi karena kode yang Anda tulis tidak dapat ”dipahami” oleh komplier karena instruksi tidak lengkap,misalnya salah ejaan.kesalahan meletakkan tanda baca.Kesalahan sintaks bisa juga terjadi karena urutan yang tidak benar atau komplier tidak bisa memprosesnya sama sekali.Jika IDE/lingkungan pengembangan terintegrasi dapat memperbaiki kesalahan sintaks secara otomatis,Anda akan melihat persegi panjang berwarna merah pada akhir dari garis gelombang warna biru yang menunjukan pilihan AutoCorrect tersedia untuk kesalahan syntak tersebut.Ketika anda menggerakkan kursor mouse diatas kode yang salah,akan ditampilkan tooltrip yang berisi pesan mengenai kesalahan apa yang terjadi dan ditampilkan juga kotak kecil abu-abu dengan lingkaran merah dan tanda seru putih.Dan jika Anda menggerakkan mouse pada kotak abu-abu,akan muncul tanda segitiga kecil mengarah kebawah.Dengan mengklik simbol segitiga kecil atau menekan kombinasi tombol Shift+alt+F10 akan memunculkan pilihan koreksi kesalahan.kotak dialog akan menampilkan satu atau lebih pilihan untuk memperbaiki.Pada kejadian ini hanya ada satu pilihan untuk memperbaiki kesalahan sintaks.
2.Kesalahan Eksekusi(kesalahan run time):Terjadi ketika program Anda dijalankan.Kesalahan ini biasanya disebabkan oleh sesuatu yang berada diluar aplikasi seperti:pengguna,database,file,disk dan jaringan
3.Kesalahan Logika (Kesalahan semantik):Kesalahan pemograman yang memberikan hasil yang tidak sesuai dengan yang diharapkan atau tidak diduga.Tipe kesalahan ini sulit dilacak dan diperbaiki karena kesalahan ini tidak menghentikan program