Minggu, 02 Januari 2011

Cara Membuat Kalkulator dengan Visual Basic 6.0




| Komputer, Visual Basic | 15 comments »

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

Tidak ada komentar:

Posting Komentar