Program kalkulator
adalah program standar yang sudah tersedia di Microsoft Windows. Tetapi, tak
ada
salahnya jika kita
mencoba membuat kalkulator sendiri dengan Microsoft Visual Basic 6.0.
Pertama-tama, buatlah
sebuah form sesuka Anda, 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()
   txtDisplay.Text = Left(txtDisplay.Text,
Len(txtDisplay.Text) - 1)
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