Social Icons

Sunday, 27 February 2011

Cara Membuat Kalkulator dengan Visual Basic 6.0


  • 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 sesuai selera Anda, yang bentuknya kurang lebih seperti
  • kalkulator standar Windows, 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

No comments:

Post a Comment