Cara Membuat Kalkulator Sederhana dengan Microsoft Visual Basic 6.0

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

Archives