Dim Data1, Data2, Operator, Hasil
Dim HapusScreen As Boolean
Dim TitikDesimal As Boolean
‘Jika tombol <> ditekan
Private Sub Akar_Click()
‘Jika telah menekan tombol <> atau <>
If (Data1 = “” And Operator = “” And _
Data2 = “” And Hasil “”) Then
If Hasil > 0 Then
Hasil = Hasil ^ 0.5
Screen.Text = Format(Hasil)
HapusScreen = True
End If
‘Jika telah menekan angka tetapi tombol operator belum
ElseIf Data1 “” And Operator = “” And Data2 = “” Then
If Data1 > 0 Then
Data1 = Data1 ^ 0.5
Screen.Text = Data1
HapusScreen = True
End If
‘Jika telah menekan angka dan tombol operator
ElseIf Data1 “” And Operator “” And Data2 “” Then
If Data2 > 0 Then
Data2 = Data2 ^ 0.5
Screen.Text = Data1 & Operator & Data2
HapusScreen = True
End If
End If
End Sub
Private Sub Answer_Click()
TitikDesimal = False
‘Kondisi terpenuhi, proses berjalan semua maka saat mengetik
‘tombol Ans layar dihapus lalu hasil = data1 siap memproses
If (Data1 = “” And Operator = “” And _
Data2 = “” And Hasil “”) Then
Data1 = Hasil
Screen.Text = Data1
‘Kondisi terpenuhi, proses menunggu data2 maka saat mengetik
‘tombol Ans maka data2 = hasil
ElseIf (Data1 “” And Operator “” And _
Data2 = “” And Hasil “”) Then
Data2 = Hasil
Screen.Text = Screen.Text & Data2
Else
TitikDesimal = True
End If
End Sub
Private Sub PangkatDua_Click()
‘Jika telah menekan tombol <> atau <>
If (Data1 = “” And Operator = “” And _
Data2 = “” And Hasil “”) Then
Hasil = Hasil ^ 2
Screen.Text = Hasil
HapusScreen = True
‘Jika telah menekan angka tetapi tombol operator belum maka
ElseIf Data1 “” And Operator = “” And Data2 = “” Then
Data1 = Data1 ^ 2
Screen.Text = Data1
‘Jika telah menekan angka dan tombol operator
ElseIf Data1 “” And Operator “” And Data2 “” Then
Data2 = Data2 ^ 2
Screen.Text = Data1 & Operator & Data2
End If
End Sub
Private Sub SatuPer_Click()
If (Data1 = “” And Operator = “” And _
Data2 = “” And Hasil “”) Then
Hasil = 1 / Hasil
Screen.Text = Format(Hasil)
ElseIf Data1 “” And Operator = “” And Data2 = “” Then
Data1 = 1 / Data1
Screen.Text = Data1
ElseIf Data1 “” And Operator “” And Data2 “” Then
Data2 = 1 / Data2
Screen.Text = Data1 & Operator & Data2
End If
End Sub
Private Sub Desimal_Click()
If TitikDesimal Then
If Operator = “” Then ‘menambahkan titik desimal di data1
Data1 = Data1 + “.”
Else ‘menambahkan titik desimal di data2
Data2 = Data2 + “.”
End If
Screen.Text = Screen.Text + “.”
TitikDesimal = False
End If
End Sub
Sub Persiapan()
Operator = “”
Data1 = “”
Data2 = “”
Hasil = “”
HapusScreen = False
TitikDesimal = True
Screen.Text = “”
End Sub
Private Sub Form_Load()
Call Persiapan
Frame1.Caption = “”
Frame2.Caption = “”
Frame3.Caption = “”
End Sub
Sub Evaluasi(Tanda)
‘proses umum menunggu Data2
If Data1 = “” And Operator = “” Then
If Hasil = “” Then
Data1 = Screen.Text
Else
Data1 = Format(Hasil)
Screen.Text = Data1
End If
‘operator ketik dua kali
ElseIf Data1 “” And Operator “” And Data2 “” Then
Menghitung
Screen.Text = Format(Hasil)
Data1 = Format(Hasil)
Data2 = “”
End If
Operator = Tanda
HapusScreen = False
TitikDesimal = True
Screen.Text = Screen.Text + Tanda
End Sub
Sub HapusData()
Call Persiapan
End Sub
Sub Menghitung()
HapusScreen = True
On Error GoTo ErrorHandler
A = Val(Data1)
B = Val(Data2)
Select Case Operator
Case “+”: Hasil = A + B
Case “-“: Hasil = A – B
Case “*”: Hasil = A * B
Case “/”: Hasil = A / B
End Select
Data1 = “”
Data2 = “”
Operator = “”
Screen.Text = Format(Hasil)
Exit Sub
ErrorHandler:
MsgBox vbCrLf & Err.Description, , _
“Calculator mendeteksi ERROR sbb :”
End Sub
Private Sub Angka_Click(Index As Integer)
If HapusScreen Then
Call HapusData
End If
If Operator = “” Then
Data1 = Data1 + Angka(Index).Caption
Else
Data2 = Data2 + Angka(Index).Caption
End If
Screen.Text = Screen.Text + Angka(Index).Caption
End Sub
‘Aktif jika tombol <> ditekan
Private Sub Bagi_Click()
If Data1 “” Or Hasil “” Then Call Evaluasi(“/”)
End Sub
‘Aktif jika tombol <> ditekan
Private Sub Kali_Click()
If Data1 “” Or Hasil “” Then Call Evaluasi(“*”)
End Sub
‘Aktif jika tombol <> ditekan
Private Sub Kurang_Click()
If Data1 “” Or Hasil “” Then Call Evaluasi(“-“)
End Sub
‘Aktif jika tombol <> ditekan
Private Sub Tambah_Click()
If Data1 “” Or Hasil “” Then Call Evaluasi(“+”)
End Sub
‘Aktif jika tombol <> ditekan
Private Sub Hapus_Click()
Call HapusData
End Sub
‘Aktif jika tombol <> ditekan
Private Sub RubahTanda_Click(Index As Integer)
If Operator = “” Then
Screen.Text = -1 * Val(Screen.Text)
Data1 = Screen.Text
End If
End Sub
‘Aktif jika tombol <> ditekan
Private Sub SamaDengan_Click()
If Data1 “” And Operator “” And Data2 “” Then
Call Menghitung
End If
End Sub
Clik disini Untuk Download File