Membuat Kalkulator dengan Visual Basic 6.0
Program kalkulator ini saya buat sebagai bahan latihan bagi Anda yang sedang belajar bahasa pemrogram Visual Basic 6 (VB6). Disini saya memanfaatkan Control Array untuk mempermudah dalam pembuatannya sekaligus sebagai bahan pembelajaran bagaimana cara memanfaatkan Control Array dalam pembuatan aplikasi.
Program kalkulator ini masih sangat sederhana, oleh karenanya diharapkan Anda dapat mengembangkannya sehingga jauh lebih canggih lagi. Selamat berkreasi.
Desain Form
Siapkan sebuah form kemudian tambahkan sebuah objek TextBox (Name: txtScr) dan beberapa CommandButton (Name: Button; semua objek CommandButton diberi nama sama sehingga tercipta Control Array, hal ini ditandai dengan adanya Index pada setiap ComandButton yang ada).
Untuk desain, silahkan lihat gambar di bawah:

Kode Program
Option Explicit
Private newEntry As Boolean
Private oldNumber As Single
Private newNumber As Single
Private operator As StringPrivate Sub Initialize()
newEntry = True
newNumber = 0
oldNumber = 0
operator = Empty
txtScr.Text = 0
End SubPrivate Function Calculate (ByVal oldNumber As Single, _
ByVal newNumber As Single, ByVal op As String) As Single
On Error GoTo Hell
Select Case op
Case “+”
Calculate = oldNumber + newNumber
Case “-”
Calculate = oldNumber - newNumber
Case “*”
Calculate = oldNumber * newNumber
Case “/”
Calculate = oldNumber / newNumber
End Select
Exit Function
Hell:
MsgBox Err.Description, vbOKOnly Or vbCritical, App.Title
Calculate = 0
End FunctionPrivate Sub Button_Click(Index As Integer)
Select Case Button(Index).Caption
Case “0″, “1″, “2″, “3″, “4″, “5″, “6″, “7″, “8″, “9″
If newEntry Then
txtScr.Text = Button(Index).Caption
Else
txtScr.Text = txtScr.Text & Button(Index).Caption
End If
newEntry = False
Case “.”
If InStr(1, txtScr.Text, “.”) = 0 Then
txtScr.Text = txtScr.Text & “.”
newEntry = False
End If
Case “+”, “*”, “-”, “/”
If operator = Empty Then
oldNumber = Val(txtScr.Text)
newNumber = 0
Else
newNumber = Val(txtScr.Text)
txtScr.Text = Replace(CStr(Calculate(oldNumber, _
newNumber, operator)), “,”, “.”)
oldNumber = Val(txtScr.Text)
End If
operator = Button(Index).Caption
newEntry = True
Case “+/-”
txtScr.Text = Val(txtScr.Text) * -1
operator = Empty
Case “=”
newNumber = Val(txtScr.Text)
txtScr.Text = Replace(CStr(Calculate(oldNumber, _
newNumber, operator)), “,”, “.”)
operator = Empty
Case “C”
Call Initialize
End Select
End SubPrivate Sub Form_Load()
Call Initialize
End Sub
Jika ada hal-hal yang belum jelas pada program tersebut, silahkan tuliskan segala pertanyaan pada bagian komentar sehingga saya dapat menjawab pertanyaan Anda dan dapat menjadi bahan diskusi pada blog ini. Terimakasih. Semoga bermanfaat.
June 5th, 2008 at 2:22 pm
Weleh2, sangat berguna dan bermanfaat ini, luar biasa
July 5th, 2008 at 1:21 pm
bener-bener rumit, jeles-jelas lebih mudah beli kalkulator di gramedia.
tapi biar gue nggak ngerti kode-kode di atas, gue bisa make kalkulator tanpa melihat tutsnya lo…. ….nggak nyambung ye? lagi apa bagusnya ya bisa make kalkulator he.. he..he
July 27th, 2008 at 9:02 pm
saya mau menayakan bagaimana listing programnya, yang bisa membuat form menjadi transparan / seolah-olah komputernya lambat padahal tidak
July 29th, 2008 at 5:43 am
pengen c bisa,,,Pi pertama2 gmn c caranya??? dolod software vb doloo pa gmn y,,,,,??? maen y om ke blog saya kasih saran….??
August 5th, 2008 at 10:28 am
SAYAINGIN BERTANYA, PAS NYOBAIN PAS DIPRIVATE FNTION CALCULATOR EROR(EXPENCTED: END OF STATEMENT) KESALAHANNYA DIMANA?
August 5th, 2008 at 5:25 pm
@SYAHRUL:
Perhatikan pengetikan tanda garis bawah (”_”), tanda tersebut menunjukan bahwa pengetikan kode program dilanjutkan pada baris selanjutnya. Seperti pada contoh:
Private Function Calculate (ByVal oldNumber As Single, _
ByVal newNumber As Single, ByVal op As String) As Single
Jika kamu ingin melanjutkan pengetikan pada baris yang sama dalam pembuatan nama fungsi tersebut maka hilangkan tanda garis bawah (”_”)
August 16th, 2008 at 9:28 am
Sangat berguna bgt!!!Lagian gw emang lagi nyari kodenya(he..he..),by the way boleh ga’ kodenya gw copy pastein di blog gw,he…bcanda!!
August 20th, 2008 at 7:46 am
Sangat bermanfaat bagi kami, atas segala tutorial ini, mau tanya mas,
1. gimana caranya membuat form transparan sehingga jika kita run akan nampak componennya saja dan beckgrounnya adalah wallpapaer
2 Bagimana caranya membuat form transparan yang membentuk suatu gambar tertentu pada form vb.
Terima kasih atas jawabannya, harapan besar bagi kami, untuk jawaban mas, demi perkembangan ilmu pengetahuan bagi kami. TERIMA KASIH……
September 10th, 2008 at 9:41 am
mau nya yang lebih rinci lagi penjelasan rumusannya itu,, please saya masih bingung
September 23rd, 2008 at 8:39 pm
doain aq y coz neh tugas…..
thank y
September 25th, 2008 at 2:37 pm
Awalnya membingungkan, tp akhirnya…. sama aja jg bingung. hehehhehehee…
September 25th, 2008 at 2:45 pm
Akhirnya bisa bs jg…
Perhatikan pengetikan tanda (” * ”), akan berbeda dengan (”*”).
September 26th, 2008 at 12:59 pm
@Putra:
Syukurlah, walapun bingung akhirnya bisa juga
October 23rd, 2008 at 3:53 pm
bs nggak buat tanggal untuk absensi kerja buruh harian ,jd tanggal sdh tersedia otomatis saat kita pengen input absensi buruh setiap hari. pake vb 6.0
October 28th, 2008 at 1:53 pm
@fitri: Pakai DTPicker?