Coding :
Option Explicit
Private Hasil As Double
Private Const opNol = 0
Private Const opTambah = 1
Private Const opKurang = 2
Private Const opKali = 3
Private Const opBagi = 4
Private Operator As Integer
Private NilaiBaru As Boolean
'/Untuk menuliskan angka
Private Sub cmdAngka_Click(Index As Integer)
If NilaiBaru Then
txtHasil.Text = Format$(Index)
NilaiBaru = False
Else
txtHasil.Text = _
txtHasil.Text & Format$(Index)
End If
End Sub
'/Untuk menuliskan koma
Private Sub cmdKoma_Click()
If InStr(txtHasil.Text, ".") Then
Beep
Else
If NilaiBaru Then
txtHasil.Text = "."
NilaiBaru = False
Else
txtHasil.Text = txtHasil.Text & "."
End If
End If
End Sub
'/Untuk melakukan operasi aritmatika
Private Sub cmdOperator_Click(Index As Integer)
cmdSamaDgn_Click
Operator = Index
NilaiBaru = True
End Sub
'/Untuk menuliskan tanda min
Private Sub cmdPlusMin_Click()
If NilaiBaru Then
txtHasil.Text = "-"
ElseIf Left$(txtHasil.Text, 1) = "-" Then
txtHasil.Text = Right$(txtHasil.Text, 2)
Else
txtHasil.Text = "-" & txtHasil.Text
End If
End Sub
'/Untuk menghentikan program
Private Sub cmdQuit_Click()
End
End Sub
'/Untuk menghapus
Private Sub cmdReset_Click()
txtHasil.Text = ""
End Sub
'/Untuk menghasilkan jawaban
Private Sub cmdSamaDgn_Click()
Dim HasilBaru As Double
If txtHasil.Text = "" Then
HasilBaru = 0
Else
HasilBaru = CDbl(txtHasil.Text)
End If
Select Case Operator
Case opNol
Hasil = HasilBaru
Case opTambah
Hasil = Hasil + HasilBaru
Case opKurang
Hasil = Hasil - HasilBaru
Case opKali
Hasil = Hasil * HasilBaru
Case opBagi
If HasilBaru = 0 Then
MsgBox "Tidak dapat dibagi 0", vbOKOnly + vbCritical, "ERROR"
Call cmdReset_Click
Else
Hasil = Hasil / HasilBaru
End If
End Select
Operator = opNol
NilaiBaru = True
txtHasil.Text = Format$(Hasil)
End Sub
LOGIKA PROGRAM
Sebelum
menjelaskan Coding programnya , saya aka nenjelaskan properties-properties yang
saya gunakan dalam pembuatan kalkulator sederhana ini. Dalam Form terdapat
angka dari 0 – 9 , pilih satu-satu button.clicknya lalu ganti name nya dengan
“cmdAngka” dan ganti caption menjadi angka 0 – 9 lalu ganti juga index nya
diurutkan mulai dari angka 0 indexnya 0 sampai angka 9 dengan index 9 dengan
memasukkan index maka kita dapat menggunakan name yang sama dan dapat langsung
memanggil atau mengeksekusi tanpa harus mengidentifikasikannya satu persatu.
Lalu pada operator-operator seperti + , - , * , / pada namenya diganti menjadi
cmdAngka dan tentunya dengan index yang berbeda pada operatior + index diubah
menjadi 1 , operator – index diubah menjadi 2, pada operator * index diubah
menjadi 3 dan pada operator / index diubah menjadi 4. Pada Button C saya
mengganti namenya menjadi cmdReset dan pada tanda sama dengan namenya diubah
dengan cmdSamaDgn, pada +/- namenya diubah menjadi cmdPlusMin, pada . namenya
diubah dengan cmdKoma dan pada button OFF namenya diubah menjadi cmdQuit.
Dalam
coding ada Option Explicit yang berguna untuk mengidentifikasikan suatu
variabel yang nantinya akan digunakan sebagai fungsi. Pada cmdAngka_Click(Index
As Integer) berfungsi agar apa yang nantinya kita input sesuai dengan index
yang telah kita ubah sebelumnya. Terdapat statement kondisi IF-THEN-ELSE yang
berfungsi sebagai kondisi dimana jika terdapat nilai baru maka dapat diinputkan
melalui button-button Angka yang telah dijadikan index tadi. Pada cmdKoma
terdapat statement yang berfungsi untuk menambahkan tanda koma atau titik pada
txthasil.Text. Ingatlah jika memulai dengan If maka harus diakhiri dengan End
If. Pada cmdOperator_Click(Index As Integer), cmdSamaDgn_Click, Operator =
Index, NilaiBaru = True dengan statement
tersebut maka kita dapat melakukan proses Aritmatika dengan index yang sudah
diubah tadi dan kita juga mengidentifikasikan button-button Aritmatika menjadi
sama fungsinya dengan cmdSamaDgn, dengan kata lain jika kita melakukan
penambahan , misalnya sudah diinput 1 + 1 maka jika kita menginput atau
mengklik tanda + maka Outputnya akan berupa angka 2 . Pada cmdPlusMin terdapat
statement yang akan menambahkan tanda –
(Min) pada text . Left$(txtHasil.Text, 1) = "-" digunakan agar tanda
– berada di sebelah kiri angka.
Pada
cmdSamaDgn_Click terdapat statement Dim HasilBaru As Double fungsi Dim tersebut
sama halnya dengan Var pada Delphi, untuk mendeklarasikan tipe data suatu
variabel , disini variabel di deklarasikan sebagai Double. Statement kondisi
disini berfungsi untuk menyatakan jika txthasil kosong maka hasilbaru = 0.
Disini terdapat Select Case Operator dimana operator-operator tersebut telah
kita ganti dari index menjadi opNol yang berfungsi untuk menyatakan
Hasil=HasilBaru, opTambah yang berfungsi untuk menyatakan Hasil=Hasil+HasilBaru
, opKurang yang berfungsi untuk menyatakan Hasil=Hasil-HasilBaru, opKali yang
menyatakan Hasil=Hasil*HasilBaru, opBagi untuk menyatakan
Hasil=Hasil/HasilBaru. Dalam opBagi ini dapat ditambahkan If HasilBaru = 0 Then
MsgBox "Tidak dapat dibagi 0", vbOKOnly + vbCritical,
"ERROR" Call cmdReset_Click maksudnya adalah jika HasilBaru = 0 maka
program akan menampilkan MessageBox yang bertuliskan Tidak dapat dibagi 0 dan
Error dan akan langsung mereset programnya. Pada cmdReset_click terdapat
statement txtHasil.Text = "" yang berfungsi untuk menghapus atau
mereset input yang telah dimasukkan sebelumnya. Pada cmdQuit_click terdapat
statement End yang berfungsi untuk menghentikan jalannya sebuah program.
Nb : Program diatas adalah contoh kecil , jika anda berminat untuk menambahkan atau memodifikasi itu lebih baik xD.
No comments:
Post a Comment