Tuesday, January 3, 2012

Caca Membuat Calkulator V B

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

Daftar Isi