Program kalkulator adalah program standar yang sudah tersedia di Microsoft Windows. Tetapi, tak ada salahnya jika Anda mencoba membuat kalkulator sendiri dengan Microsoft Visual Basic 6.0.
Langkah pertama yang harus Anda lakukan adalah, buatlah sebuah form sesuai selera Anda, yang bentuknya kurang lebih seperti ini:
Untuk properties dari masing-masing objek, saya contohkan seperti dibawah ini, dengan letak
masing-masing objek disesuaikan dengan gambar diatas.
Textbox 1:
(Name) : txtDisplay
Alignment: 1-Right Justify
Text : (kosongkan)
Maxlength : 12
Command Button 1:
(Name) : cmdAngka
Index : 1
Caption : 1
Command Button 2:
(Name) : cmdAngka
Index : 2
Caption : 2
Command Button 3:
(Name) : cmdAngka
Index : 3
Caption : 3
Command Button 4:
(Name) : cmdAngka
Index : 4
Caption : 4
Command Button 5:
(Name) : cmdAngka
Index : 5
Caption : 5
Command Button 6:
(Name) : cmdAngka
Index : 6
Caption : 6
Command Button 7:
(Name) : cmdAngka
Index : 7
Caption : 7
Command Button 8:
(Name) : cmdAngka
Index : 8
Caption : 8
Command Button 9:
(Name) : cmdAngka
Index : 9
Caption : 9
Command Button 10:
(Name) : cmdAngka
Index : 0
Caption : 0
Command Button 11:
(Name) : cmdPlusMinus
Caption : +/-
Command Button 12:
(Name) : cmdKoma
Caption : .
Command Button 13:
(Name) : cmdOperator
Index : 1
Caption : +
Command Button 14:
(Name) : cmdOperator
Index : 2
Caption : -
Command Button 15:
(Name) : cmdOperator
Index : 3
Caption : x
Command Button 16:
(Name) : cmdOperator
Index : 4
Caption : /
Command Button 17:
(Name) : cmdClearEntry
Caption : CE
Command Button 18:
(Name) : cmdClear
Caption : C
Command Button 19:
(Name) : cmdSamaDengan
Caption : =
Berikutnya, Anda tinggal membuat coding dari kalkulator tersebut. Jika Anda mengikuti semua
setting properties seperti diatas, maka codingnya saya contohkan seperti ini:
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 menghapus karakter terakhir
Private Sub Hapus()
Dim txt As String
Dim min_len As Integer
txt = txtDisplay.Text
If Left$(txt, 1) = "-" Then
min_len = 2
Else
min_len = 1
End If
If Len(txt) > min_len Then
txtDisplay.Text = Left$(txt, Len(txt) - 1)
Else
txtDisplay.Text = "0"
End If
End Sub
' hapus angka, hasil terakhir dan operator
Private Sub cmdClear_Click()
cmdClearEntry_Click
Hasil = 0
Operator = opNol
End Sub
' hapus angka
Private Sub cmdClearEntry_Click()
txtDisplay.Text = ""
End Sub
' menambahkan koma (desimal)
Private Sub cmdKoma_Click()
If InStr(txtDisplay.Text, ".") Then
Beep
Else
If NilaiBaru Then
txtDisplay.Text = "."
NilaiBaru = False
Else
txtDisplay.Text = txtDisplay.Text & "."
End If
End If
End Sub
' Menghitung
Private Sub cmdSamaDengan_Click()
Dim HasilBaru As Double
If txtDisplay.Text = "" Then
HasilBaru = 0
Else
HasilBaru = CDbl(txtDisplay.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
'Tidak bisa dibagi nol
If HasilBaru = 0 Then
MsgBox "Tidak bisa dibagi 0", vbOKOnly + vbCritical, "Kalku ERROR"
Call cmdClear_Click
Else
Hasil = Hasil / HasilBaru
End If
End Select
Operator = opNol
NilaiBaru = True
txtDisplay.Text = Format$(Hasil)
End Sub
' menuliskan angka
Private Sub cmdAngka_Click(Index As Integer)
If NilaiBaru Then
txtDisplay.Text = Format$(Index)
NilaiBaru = False
Else
txtDisplay.Text = _
txtDisplay.Text & Format$(Index)
End If
End Sub
' tombol tambah/kurang/bagi/kali
Private Sub cmdOperator_Click(Index As Integer)
cmdSamaDengan_Click
Operator = Index
NilaiBaru = True
End Sub
' merubah tanda +/-
Private Sub cmdPlusMinus_Click()
If NilaiBaru Then
txtDisplay.Text = "-"
ElseIf Left$(txtDisplay.Text, 1) = "-" Then
txtDisplay.Text = Right$(txtDisplay.Text, 2)
Else
txtDisplay.Text = "-" & txtDisplay.Text
End If
End Sub
' filter untuk angka saja yg dapat diketikkan
Private Sub Form_KeyPress(KeyAscii As Integer)
txtDisplay_KeyPress KeyAscii
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
txtDisplay_KeyUp KeyCode, Shift
End Sub
' supaya kursor tetap di kanan
Private Sub txtDisplay_Change()
txtDisplay.SelStart = Len(txtDisplay.Text)
End Sub
Private Sub txtDisplay_GotFocus()
txtDisplay_Change
End Sub
' untuk mengetikkan angka di keyboard
Private Sub txtDisplay_KeyPress(KeyAscii As Integer)
Dim ch As String
ch = Chr$(KeyAscii)
Select Case ch
Case "0"
cmdAngka_Click 0
Case "1"
cmdAngka_Click 1
Case "2"
cmdAngka_Click 2
Case "3"
cmdAngka_Click 3
Case "4"
cmdAngka_Click 4
Case "5"
cmdAngka_Click 5
Case "6"
cmdAngka_Click 6
Case "7"
cmdAngka_Click 7
Case "8"
cmdAngka_Click 8
Case "9"
cmdAngka_Click 9
Case "*", "x", "X"
cmdOperator_Click opKali
Case "+"
cmdOperator_Click opTambah
Case vbCrLf, vbCr, "="
cmdSamaDengan_Click
Case "-"
cmdOperator_Click opKurang
Case "."
cmdKoma_Click
Case "/"
cmdOperator_Click opBagi
Case "C", "c"
cmdClearEntry_Click
End Select
KeyAscii = 0
End Sub
' untuk ketikan angka di numpad
Private Sub txtDisplay_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyNumpad0
cmdAngka_Click 0
Case vbKeyNumpad1
cmdAngka_Click 1
Case vbKeyNumpad2
cmdAngka_Click 2
Case vbKeyNumpad3
cmdAngka_Click 3
Case vbKeyNumpad4
cmdAngka_Click 4
Case vbKeyNumpad5
cmdAngka_Click 5
Case vbKeyNumpad6
cmdAngka_Click 6
Case vbKeyNumpad7
cmdAngka_Click 7
Case vbKeyNumpad8
cmdAngka_Click 8
Case vbKeyNumpad9
cmdAngka_Click 9
Case vbKeyMultiply
cmdOperator_Click opKali
Case vbKeyAdd
cmdOperator_Click opTambah
Case vbKeySeparator
cmdSamaDengan_Click
Case vbKeySubtract
cmdOperator_Click opKurang
Case vbKeyDivide
cmdOperator_Click opBagi
Case vbKeyDecimal
cmdKoma_Click
Case vbKeyBack, vbKeyDelete
Hapus
End Select
KeyCode = 0
End Sub
0 comments:
Post a Comment