Minggu, 08 April 2012

Kalkulator Sederhana


Dim Data1, Data2, Operator, Hasil
Dim HapusScreen As Boolean
Dim TitikDesimal As Boolean

Sub Delete()
Data1 = ""
Data2 = ""
Operator = ""
Hasil = ""
HapusScreen = False
TitikDesimal = True
Screen.Text = ""

End Sub

Sub Evaluasi(Tanda)
  If Data1 = "" And Operator = "" Then
     If Hasil = "" Then
        Data1 = Screen.Text
     Else
        Data1 = Format(Hasil)
        Screen.Text = Data1
     End If
  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 Delete
  End Sub

  Sub Menghitung()
  HapusScreen = True
  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

  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

Private Sub bagi_Click()
If Data1 <> "" Or Hasil <> "" Then Call Evaluasi("/")
End Sub

Private Sub del_Click()
    Call Hapusdata
End Sub

Private Sub kali_Click()
If Data1 <> "" Or Hasil <> "" Then Call Evaluasi("*")
End Sub

Private Sub kurang_Click()
If Data1 <> "" Or Hasil <> "" Then Call Evaluasi("-")
End Sub

Private Sub rubahtanda_Click()
  If Operator = "" Then
     Screen.Text = -1 * Val(Screen.Text)
     Data1 = Screen.Text
  End If
End Sub

Private Sub samadengan_Click()
    If Data1 <> "" And Operator <> "" And Data2 <> "" Then
        Call Menghitung
    End If
End Sub

Private Sub satubagi_Click()
If Data1 <> "" And Operator <> "" And Data2 <> "" Then
    Call Menghitung
End If
Screen.Text = 1 / Screen.Text
End Sub

Private Sub tambah_Click()
If Data1 <> "" Or Hasil <> "" Then Call Evaluasi("+")
End Sub


Private Sub xkuadrat_Click()
If Data1 <> "" And Operator <> "" And Data2 <> "" Then
    Call Menghitung
End If
Screen.Text = Screen.Text * Screen.Text
End Sub

Coddingnya masih ada yang kurang (sin, cos nya belum ada) hehe lain kali saya akan lengkapi di posting saya berikutnya :-)

Tidak ada komentar:

Posting Komentar