Anda di halaman 1dari 25

TUTORIAL PEMBUATAN APLIKASI PENJUALAN

SUKU CADANG MOTOR SEDERHANA


MENGGUNAKAN VISUAL BASIC 6.0

Rizal Loa Wanda


Loawanda.com | Macamateri.com

Rizal Loa Wanda loawanda.com | macamateri.com

PERSIAPAN AWAL
Buat 1 directory/folder pada disk anda misal C:\SPAREPART , untuk menyimpan semua
file project berikut juga databasenya.

Setelah itu buat project baru pada VB 6.0 seperti biasa dan simpan semua project vb
ke dalam folder project yang telah dibuat.

PERSIAPAN DATABASE
Database yang akan dipakai untuk membuat program ini adalah MS.Access, pertama
tentukan dahulu tabel dan field-field yang akan terpakai, sebagai berikut:
Database : SPAREPART
Table : tb_petugas
id_petugas
nama_petugas
password

Keterangan :

Table : tb_sparepart
id_sparepart
nama_sparepart
merk_sparepart
stok
harga_sparepart

Table

Table : tb_transaksi
no_transaksi
tgl_transaksi
id_sparepart
jumlah_beli
sub_total

Table : tb_transaksi_final
no_transaksi
id_petugas
total_harga
total_bayar
kembalian
tgl_transaksi

Field

Cara pembuatan database menggunakan add ins :


Pertama Buka Visual Basic 6.0, klik pada Menu Bar : Add Ins > Visual Data Manager ,
lalu pilih File > New > Microsoft Acces > Version 7.0 MDB

Setelah itu simpan file database tersebut dengan nama SPAREPART.mdb dan taruh
kedalam folder project yang tadi telah dibuat.
Masuk ke langkah selanjutnya yaitu pembuatan table dan field :

Rizal Loa Wanda loawanda.com | macamateri.com

Di Visual Data Manager (VisData) terdapat Database Window, Klik kanan pada
properties > lalu ikuti proses yang ada digambar sesuai urutan nomornya, isi field
sesuai pada tabel yang diatas.

Ulangi Terus hingga semua table dan field terbuat, sehingga seperti ini :

PEMBUATAN MODUL KONEKSI DATABASE


Pastikan project anda telah terbuka (disini project1) Pilih pada menu bar Project > Add
Module atau dapat juga melalui project panel seperti digambar.

Rizal Loa Wanda loawanda.com | macamateri.com

Ketikan kode berikut untuk mengkoneksikan ke database, juga untuk membuat


recordset.
Public koneksi As New ADODB.Connection
Public rsSPAREPART As ADODB.Recordset
Public rsSPAREPART2 As ADODB.Recordset
Public Sub BukaDB()
Set koneksi = New ADODB.Connection
Set rsSPAREPART = New ADODB.Recordset
Set rsSPAREPART2 = New ADODB.Recordset
koneksi.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path &
"\SPAREPART.mdb"
End Sub
* Pastikan nama databasenya sama dengan yang sebelumnya dibuat.
Simpan dengan nama yang telah ditentukan (tidak perlu di ubah Module1.bas).
Sebelum masuk tahap berikutnya, kita perlu menambah 1 component pada vb yaitu
ADODC, dengan cara pilih pada menu bar Project > Components (CTRL+T) ,
Check/centang pada Microsoft ADO Data Control 6.0

Rizal Loa Wanda loawanda.com | macamateri.com

FORM-FORM YANG DIPERLUKAN


Disini saya memposisikan yang membaca tutorial ini terbiasa membuat form jadi tidak
perlu saya jelaskan cara membuatnya. Serta CATATAN PENTING pada tutorial ini juga
hanya menjelaskan komponen dengan properties yang berhubungan langsung dengan
coding, sehingga seperti label, gambar atau lainnya yang tidak dijelaskan berarti hanya
untuk pelengkap.
Form
(name)
Caption
Filename (save)
Menu Utama
Form_utama
(NAMA TOKO)
Form_utama.frm
Login
Form_login
Login
Form_login.frm
Data Petugas
Form_petugas
Data Petugas
Form_petugas.frm
Data Sparepart
Form_sparepart
Data Suku Cadang Form_sparepart.frm
Transaksi
Form_transaksi
Transaksi
Form_transaksi.frm
* Ket : (name) dan Caption adalah properties form, pada (name) perhatikan besar kecilnya
(CASESENSITIVE) karena akan berpengaruh pada pemanggilan form.

Selanjutnya setting pada menu bar Project > Project Properties > Startup Object pilih
Form_utama, untuk menampilkan Form Utama bila program dijalankan.

Rizal Loa Wanda loawanda.com | macamateri.com

PEMBUATAN FORM UTAMA

Component
CommandButton
CommandButton
Adodc
Label

Name
Command1
Command2
Adodc1
LabelIDPetugas

Caption
Spare Part
Transaksi
(BEBAS)

Properties Lain
Visible = False

Menu Editor (Tools > Menu Editor [CTRL+E])

Caption
Login
Entry Data
--------------- Spare Part
--------------- Petugas
Transaksi
User
--------------- Logout
Keluar
* Ket : Name berpengaruh terhadap coding (CASESENSITIVE)

Rizal Loa Wanda loawanda.com | macamateri.com

Name
login
entrydata
sparepart
petugas
transaksi
user
logout
keluar

Coding Form Utama :


Private Sub Form_Load()
Adodc1.Visible = False
entrydata.Enabled = False
transaksi.Enabled = False
Command1.Visible = False
Command2.Visible = False
petugas.Enabled = False
user.Visible = False
LabelIDPetugas.Visible = False
login.Visible = True
End Sub
Private Sub Command1_Click()
Form_sparepart.Show
End Sub
Private Sub Command2_Click()
Form_transaksi.Show
End Sub
Private Sub keluar_Click()
If MsgBox("Yakin Mau Keluar Dari Aplikasi?", vbOKCancel,
"Tutup Jendela?") = vbOK Then
Unload Me
End If
End Sub
Private Sub login_Click()
Form_login.Show
End Sub
Private Sub logout_Click()
Form_Load
End Sub
Private Sub petugas_Click()
Form_petugas.Show
End Sub
Private Sub sparepart_Click()
Command1_Click
End Sub
Private Sub transaksi_Click()
Command2_Click
End Sub

Rizal Loa Wanda loawanda.com | macamateri.com

PEMBUATAN FORM LOGIN

Component
TextBox
TextBox
CommandButton

Name
Text1
Text2
Command1

Caption

Properties Lain

Login

PasswordChar = *
-

Coding Form Login :


Private Sub Command1_Click()
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "Mohon Lengkapi Inputan", vbInformation, "Data Belum Lengkap"
Else
Call BukaDB
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
rsSPAREPART.Open "Select * From tb_petugas where id_petugas='" & Text1.Text &
"' and password='" & Text2.Text & "'", koneksi
If Not rsSPAREPART.EOF Then
Form_utama.login.Visible = False
Form_utama.logout.Visible = True
Form_utama.transaksi.Enabled = True
Form_utama.entrydata.Enabled = True
Form_utama.Command1.Visible = True
Form_utama.Command2.Visible = True
Form_utama.user.Caption = rsSPAREPART!nama_petugas
Form_utama.LabelIDPetugas.Caption = rsSPAREPART!id_petugas
Form_utama.user.Visible = True
Unload Me
If rsSPAREPART!id_petugas = "admin" Then
Form_utama.petugas.Enabled = True
End If
Else
MsgBox "Login Gagal, Coba Lagi", vbCritical, "Login"
End If
End If
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
On Error Resume Next
If KeyAscii = 13 And Not Text1.Text = "" Then
Text2.SetFocus
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
On Error Resume Next
If KeyAscii = 13 And Not Text2.Text = "" Then
Command1_Click
End If
End Sub

Rizal Loa Wanda loawanda.com | macamateri.com

PEMBUATAN FORM DATA PETUGAS

Component
Name
Caption
Properties Lain
TextBox
Text1
TextBox
Text2
TextBox
Text3
PasswordChar = *
CommandButton
Command1
<o>
CommandButton
BERSIH
BERSIH
CommandButton
SIMPAN
SIMPAN
CommandButton
UBAH
UBAH
CommandButton
HAPUS
HAPUS
Data
Data1
Data Petugas
DBGrid
DBGrid1
Bila DBGrid tidak tersedia di toolbox, silahkan Add Component melalui Project >
Components (CTRL+T) > Check/centang = Microsoft Data Bound Grid Control 5.0

Coding Form Petugas :


'FORM LOAD
Private Sub Form_Load()
Data1.DatabaseName = App.Path + "\SPAREPART.Mdb"
Data1.RecordSource = "Select tb_petugas.id_petugas,
tb_petugas.nama_petugas From tb_petugas"
SIMPAN.Enabled = False
HAPUS.Enabled = False
UBAH.Enabled = False
End Sub

Rizal Loa Wanda loawanda.com | macamateri.com

'UNTUK LIHAT PASSWORD <o>


Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y
As Single)
Text3.PasswordChar = ""
End Sub
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As
Single)
Text3.PasswordChar = "*"
End Sub
'ENTER Text1 Untuk Pengecekan Data
Private Sub Text1_KeyPress(KeyAscii As Integer)
On Error Resume Next
If KeyAscii = 13 And Not Text1.Text = "" Then
Data1.RecordSource = "select * From tb_petugas where id_petugas='" & Text1 & "'"
Data1.Refresh
With Data1.Recordset
If .EOF Then
SIMPAN.Enabled = True
HAPUS.Enabled = False
UBAH.Enabled = False
Text2.SetFocus
Else
Text1.Text = !id_petugas
Text2.Text = !nama_petugas
Text3.Text = !Password
Text1.Enabled = False
Text2.Enabled = False
Text3.Enabled = False
SIMPAN.Enabled = False
HAPUS.Enabled = True
UBAH.Enabled = True
BERSIH.SetFocus
MsgBox "Maaf Data Sudah Ada", vbInformation, "Data Sudah Ada"
End If
End With
End If
End Sub
'Enter untuk langsung fokus ke input selajutnya
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Not Text2.Text = "" Then
Text3.SetFocus
End If
End Sub
'BERSIH BUTTON
Private Sub BERSIH_Click()
On Error Resume Next
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
SIMPAN.Enabled = False
HAPUS.Enabled = False
UBAH.Enabled = False
UBAH.Caption = "UBAH"
Text1.Enabled = True
Text2.Enabled = True
Text3.Enabled = True
Text1.SetFocus
Data1.RecordSource = "Select tb_petugas.id_petugas, tb_petugas.nama_petugas From
tb_petugas"
Data1.Refresh
End Sub

Rizal Loa Wanda loawanda.com | macamateri.com

'SIMPAN BUTTON
Private Sub SIMPAN_Click()
On Error Resume Next
If Trim(Text1 = "" Or Text2 = "" Or Text3 = "") Then
MsgBox "Data Belum Dilengkapi", vbInformation, "Informasi"
Else
Data1.RecordSource = "Select * From tb_petugas Where id_petugas ='" &
Text1.Text & "'"
Data1.Refresh
If Data1.Recordset.EOF Then
With Data1.Recordset
.AddNew
!id_petugas = Text1.Text
!nama_petugas = Text2.Text
!Password = Text3.Text
.Update
End With
End If
End If
BERSIH_Click
End Sub
'UBAH BUTTON
Private Sub UBAH_Click()
Text1.Enabled = False
Text2.Enabled = True
Text3.Enabled = True
Data1.Recordset.Edit
Data1.Recordset.Fields("nama_petugas") = Text2
Data1.Recordset.Fields("password") = Text3
Data1.Recordset.Update
SIMPAN.Enabled = False
HAPUS.Enabled = False
UBAH.Caption = "SIMPAN"
End Sub
'HAPUS BUTTON
Private Sub HAPUS_Click()
On Error Resume Next
Data1.RecordSource = "Select * From tb_petugas Where id_petugas ='" &
Text1.Text & "'"
Data1.Refresh
X = MsgBox("Data Akan Dihapus ?", vbYesNo, "Delete")
If X = vbYes Then
If Not Data1.Recordset.EOF Then Data1.Recordset.Delete
BERSIH_Click
End If
End Sub

Rizal Loa Wanda loawanda.com | macamateri.com

PEMBUATAN FORM SPARE PART

Component
TextBox
TextBox
TextBox
TextBox
TextBox
CommandButton
CommandButton
CommandButton
CommandButton
Data
DBGrid

Name
Text1
Text2
Text3
Text4
Text5
BERSIH
SIMPAN
UBAH
HAPUS
Data1
DBGrid1

Caption

Properties Lain

BERSIH
SIMPAN
UBAH
HAPUS
Data Suku Cadang

Coding Form Spare Part :


'FORM LOAD
Private Sub Form_Load()
Data1.DatabaseName = App.Path + "\SPAREPART.Mdb"
Data1.RecordSource = "Select * From tb_sparepart"
SIMPAN.Enabled = False
HAPUS.Enabled = False
UBAH.Enabled = False
End Sub
'ENTER Text1 Untuk Pengecekan Data
Private Sub Text1_KeyPress(KeyAscii As Integer)
On Error Resume Next
If KeyAscii = 13 And Not Text1.Text = "" Then
Data1.RecordSource = "select * From tb_sparepart where id_sparepart='" & Text1 &
"'"
Data1.Refresh
With Data1.Recordset
If .EOF Then

Rizal Loa Wanda loawanda.com | macamateri.com

SIMPAN.Enabled = True
HAPUS.Enabled = False
UBAH.Enabled = False
Text2.SetFocus
Else
Text1.Text = !id_sparepart
Text2.Text = !nama_sparepart
Text3.Text = !merk_sparepart
Text4.Text = !harga_sparepart
Text5.Text = !stok
Text1.Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Text4.Enabled = False
Text5.Enabled = False
SIMPAN.Enabled = False
HAPUS.Enabled = True
UBAH.Enabled = True
BERSIH.SetFocus
MsgBox "Maaf Data Sudah Ada", vbInformation, "Data Sudah Ada"
End If
End With
End If
End Sub
'Enter untuk langsung fokus ke input selajutnya
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Not Text2.Text = "" Then
Text3.SetFocus
End If
End Sub
'BERSIH BUTTON
Private Sub BERSIH_Click()
On Error Resume Next
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
SIMPAN.Enabled = False
HAPUS.Enabled = False
UBAH.Enabled = False
UBAH.Caption = "UBAH"
Text1.Enabled = True
Text2.Enabled = True
Text3.Enabled = True
Text4.Enabled = True
Text5.Enabled = True
Text1.SetFocus
Data1.RecordSource = "Select * From tb_sparepart"
Data1.Refresh
End Sub
'SIMPAN BUTTON
Private Sub SIMPAN_Click()
On Error Resume Next
If Trim(Text1 = "" Or Text2 = "" Or Text3 = "" Or Text4 = "" Or Text5 = "") Then
MsgBox "Data Belum Dilengkapi", vbInformation, "Informasi"
Else
Data1.RecordSource = "Select * From tb_sparepart Where id_sparepart ='" &
Text1.Text & "'"
Data1.Refresh

Rizal Loa Wanda loawanda.com | macamateri.com

If Data1.Recordset.EOF Then
With Data1.Recordset
.AddNew
!id_sparepart = Text1.Text
!nama_sparepart = Text2.Text
!merk_sparepart = Text3.Text
!harga_sparepart = Text4.Text
!stok = Text5.Text
.Update
End With
End If
End If
BERSIH_Click
End Sub
'UBAH BUTTON
Private Sub UBAH_Click()
Text1.Enabled = False
Text2.Enabled = True
Text3.Enabled = True
Text4.Enabled = True
Text5.Enabled = True
Data1.Recordset.Edit
Data1.Recordset.Fields("nama_sparepart") = Text2
Data1.Recordset.Fields("merk_sparepart") = Text3
Data1.Recordset.Fields("harga_sparepart") = Text4
Data1.Recordset.Fields("stok") = Text5
Data1.Recordset.Update
SIMPAN.Enabled = False
HAPUS.Enabled = False
UBAH.Caption = "SIMPAN"
End Sub
'HAPUS BUTTON
Private Sub HAPUS_Click()
On Error Resume Next
Data1.RecordSource = "Select * From tb_petugas Where id_petugas ='" & Text1.Text
& "'"
Data1.Refresh
X = MsgBox("Data Akan Dihapus ?", vbYesNo, "Delete")
If X = vbYes Then
If Not Data1.Recordset.EOF Then Data1.Recordset.Delete
BERSIH_Click
End If
End Sub

Rizal Loa Wanda loawanda.com | macamateri.com

PEMBUATAN FORM TRANSAKSI

Component
Label
Label
Label
Label
Label
Label
Label
Label
Label
Label
Label
ListBox
ListBox
OptionButton
OptionButton
OptionButton
TextBox
TextBox
TextBox
TextBox
CommandButton

Name
LabelBintang
LabelNota
LabelTanggal
LabelStatus
LabelKode
LabelNama
LabelMerk
LabelHarga
LabelStok
LabelTotal
LabelKembalian
List1
List2
Option1
Option2
Option3
TextQuery
TextSearch
TextJumBel
TextBayar
Command1

Caption
(kosong)
00/00/0000
0
0

Properties Lain
ForeColor=(MERAH)

Kode
Nama Suku Cadang
Merk Suku Cadang

Value=TRUE

Visible=False

Cari

Rizal Loa Wanda loawanda.com | macamateri.com

CommandButton

BtnCart

CommandButton

HapusCart

CommandButton
CommandButton
CommandButton
CommandButton
Frame

Bayar
LihatNota
CetakNota
Command3
Frame4

Masukkan Ke
Keranjang
KOSONGKAN
KERANJANG
Proses
Lihat Nota
Cetak Nota
TRANSAKSI SELESAI
Selesaikan
Transaksi

*KETERANGAN : yang berwarna HIJAU Dibuat didalam Frame (FRAME4) GROUP.

Coding Form Transaksi :


Private Sub Form_Load()
'UNTUK MEMBERSIHKAN TRANSAKSI
LabelKode.Caption = "-"
LabelNama.Caption = "-"
LabelMerk.Caption = "-"
LabelHarga.Caption = "-"
LabelStok.Caption = "-"
LabelTanggal.Caption = Format(Date, "ddd, dd-mmm-yyyy")
Frame4.Width = 5055
'Untuk Mengisi LIST 1
List1.Clear
List1.Enabled = True
Call BukaDB
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
'UNTUK MENGAMBIL NO_TRANSAKSI YANG TERBESAR LALU DITAMBAH 1 UNTUK NOMOR
SELANJUTNYA
rsSPAREPART.Open "select COUNT(*) FROM tb_transaksi_final", koneksi
If rsSPAREPART.Fields(0) < 1 Then
LabelNota.Caption = 1
Else
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
rsSPAREPART.Open "Select max(CLng(tb_transaksi_final.no_transaksi)) as
nota From tb_transaksi_final", koneksi
If rsSPAREPART.EOF Then
LabelNota.Caption = 1
Else
LabelNota.Caption = Val(rsSPAREPART.Fields!nota) + 1
End If
End If
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
'HANYA YANG MEMPUNYAI STOK YANG TAMPIL DI LIST SUKU CADANG
rsSPAREPART.Open "Select * From tb_sparepart Where stok > 0 " & query &
"", koneksi
If rsSPAREPART.EOF Then
List1.Enabled = False
LabelStatus.Caption = "Tidak Ada Stok Suku Cadang"
Else

Rizal Loa Wanda loawanda.com | macamateri.com

Dim cnt As Integer


rsSPAREPART.MoveFirst
While Not rsSPAREPART.EOF
cnt = cnt + rsSPAREPART.Fields!stok
List1.AddItem (rsSPAREPART.Fields(0) & " | " & rsSPAREPART.Fields(1) &
" |
" & rsSPAREPART.Fields(2) & " | " & rsSPAREPART.Fields(3) & " | "
& rsSPAREPART.Fields(4))
rsSPAREPART.MoveNext
Wend
LabelStatus.Caption = "Jumlah Suku Cadang Yang Tersedia " & cnt
End If
End Sub
Private Sub List1_Click()
Dim newString As Variant
'MEMECAH STRING YANG DIBUAT SEBELUMNYA DENGAN PEMISAH |
newString = Split(Me.List1.List(Me.List1.ListIndex), " | ")
LabelKode.Caption = newString(0)
LabelNama.Caption = newString(1)
LabelMerk.Caption = newString(2)
LabelHarga.Caption = newString(4)
LabelStok.Caption = newString(3)
End Sub
Private Sub Command1_Click()
'MEMBUAT TAMBAHAN QUERY UNTUK PENCARIAN
If Option1 = True Then
TextQuery.Text = "AND id_sparepart='" & TextSearch.Text & "'"
End If
If Option2 = True Then
TextQuery.Text = "AND nama_sparepart LIKE '%" & TextSearch.Text &
"%'"
End If
If Option3 = True Then
TextQuery.Text = "AND merk_sparepart LIKE '%" & TextSearch.Text &
"%'"
End If
If TextSearch.Text = "" Then
TextQuery.Text = ""
End If
List1.Clear
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
rsSPAREPART.Open "Select * From tb_sparepart Where stok > 0 " &
TextQuery.Text, koneksi
If rsSPAREPART.EOF Then
List1.Enabled = False
LabelStatus.Caption = "Tidak Ada Stok Suku Cadang"
Else
Dim cnt As Integer
rsSPAREPART.MoveFirst
While Not rsSPAREPART.EOF
cnt = cnt + rsSPAREPART.Fields!stok
List1.AddItem (rsSPAREPART.Fields(0) & " | " &
rsSPAREPART.Fields(1) & " | " & rsSPAREPART.Fields(2) & " | " &
rsSPAREPART.Fields(3) & " | " & rsSPAREPART.Fields(4))
rsSPAREPART.MoveNext
Wend
List1.Enabled = True
LabelStatus.Caption = "Jumlah Suku Cadang Yang Tersedia " & cnt
End If
End Sub

Rizal Loa Wanda loawanda.com | macamateri.com

Private Sub TextSearch_KeyPress(KeyAscii As Integer)


On Error Resume Next
If KeyAscii = 13 Then
Command1_Click
End If
End Sub
Private Sub TextJumBel_Change()
'HANYA ANGKA YANG DIPERBOLEHKAN, MELAKUKAN VALIDASI DATA DENGAN JUMLAH STOK
If IsNumeric(LabelStok.Caption) Then
If Val(LabelStok.Caption) < TextJumBel.Text Then
TextJumBel.Text = LabelStok.Caption
End If
End If
If TextJumBel.Text < 1 Then
TextJumBel.Text = "1"
End If
If Not IsNumeric(TextJumBel.Text) Then
TextJumBel.Text = "1"
Else
End If
End Sub
Private Sub UpDown1_DownClick()
If TextJumBel.Text > 1 Then
TextJumBel.Text = Val(TextJumBel.Text) - 1
End If
End Sub
Private Sub UpDown1_UpClick()
TextJumBel.Text = Val(TextJumBel.Text) + 1
End Sub
Private Sub BtnCart_Click()
On Error Resume Next
If Trim(LabelKode.Caption = "-" Or LabelNama.Caption = "-" Or
LabelMerk.Caption = "-" Or LabelHarga.Caption = "-" Or LabelStok.Caption = "") Then
MsgBox "Mohon Suku Cadang Yang Ingin Dibeli Terlebih Dahulu",
vbInformation, "Informasi"
Else
If TextJumBel > Val(LabelStok.Caption) Then
MsgBox "Stok Tidak Mencukupi!", vbCritical, "Stok"
Else
Me.Height = 8655
LabelBintang.Caption = "*"
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
rsSPAREPART.Open "Select * From tb_transaksi", koneksi, 1, 2
With rsSPAREPART
.AddNew
!no_transaksi = LabelNota.Caption
!tgl_transaksi = Format(Date)
!id_sparepart = LabelKode.Caption
!jumlah_beli = TextJumBel.Text
!sub_total = Val(LabelHarga) * TextJumBel.Text
.Update
End With
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
rsSPAREPART.Open "Select * From tb_sparepart Where id_sparepart='" &
LabelKode.Caption & "'", koneksi, 1, 2
With rsSPAREPART
!stok = !stok - TextJumBel.Text
.Update
End With

Rizal Loa Wanda loawanda.com | macamateri.com

Bayar.Enabled = True
HapusCart.Enabled = True
List2.AddItem (LabelNama.Caption & " | " & LabelMerk.Caption & " |
" & TextJumBel.Text & " Item")
Form_Load
'UNTUK MENGHITUNG TOTAL BAYAR
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
rsSPAREPART.Open "Select sum(tb_transaksi.sub_total) As total From
tb_transaksi Where no_transaksi='" & LabelNota.Caption & "'", koneksi, 1, 2
If Not rsSPAREPART.EOF Then
LabelTotal.Caption = rsSPAREPART.Fields!total
End If
End If
End If
End Sub
Private Sub HapusCart_Click()
'MELAKUKAN PENGEMBALIAN STOK, Menggunakan 2 recordset
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
rsSPAREPART.Open "Select * From tb_transaksi Where no_transaksi='" &
LabelNota.Caption & "'", koneksi, 1, 2
While Not rsSPAREPART.EOF
If rsSPAREPART2.State = 1 Then rsSPAREPART2.Close
rsSPAREPART2.Open "Select * From tb_sparepart Where
id_sparepart='" & rsSPAREPART.Fields!id_sparepart & "'", koneksi, 1, 2
With rsSPAREPART2
!stok = !stok + rsSPAREPART.Fields!jumlah_beli
.Update
End With
rsSPAREPART.Delete
rsSPAREPART.Update
rsSPAREPART.MoveNext
Wend
List2.Clear
LabelBintang.Caption = ""
LabelTotal.Caption = "0"
LabelKembalian.Caption = "0"
TextBayar.Text = ""
Form_Load
End Sub
Private Sub Bayar_Click()
LabelKembalian.Caption = Val(TextBayar.Text) - Val(LabelTotal.Caption)
If Val(TextBayar.Text) < Val(LabelTotal.Caption) Then
MsgBox "Masa Iya Bayarnya Kurang", vbInformation, "Kurang"
Else
Frame4.Width = 11895
If rsSPAREPART.State = 1 Then rsSPAREPART.Close
rsSPAREPART.Open "Select * From tb_transaksi_final", koneksi, 1, 2
With rsSPAREPART
.AddNew
!no_transaksi = LabelNota.Caption
!id_petugas = Form_utama.LabelIDPetugas.Caption
!total_harga = LabelTotal.Caption
!total_bayar = TextBayar.Text
!kembalian = LabelKembalian.Caption
!tgl_transaksi = Format(Date)
.Update
End With

Rizal Loa Wanda loawanda.com | macamateri.com

Bayar.Enabled = False
BtnCart.Enabled = False
HapusCart.Enabled = False
List2.Clear
End If
End Sub
Private Sub LihatNota_Click()
If DataEnvironment1.rsTransaksi_Grouping.State = adStateOpen Then
DataEnvironment1.rsTransaksi_Grouping.Close
DataEnvironment1.Transaksi_Grouping LabelNota.Caption
DataReport1.Show
End Sub
Private Sub CetakNota_Click()
If DataEnvironment1.rsTransaksi_Grouping.State = adStateOpen Then
DataEnvironment1.rsTransaksi_Grouping.Close
DataEnvironment1.Transaksi_Grouping LabelNota.Caption
DataReport1.PrintReport True
End Sub
Private Sub Command3_Click()
LabelBintang.Caption = ""
HapusCart.Enabled = True
Me.Height = 6420
BtnCart.Enabled = True
Form_Load
End Sub
Private Sub Form_Unload(Cancel As Integer)
'UNTUK MENAHAN USER YANG BELUM MENYELESAIKAN TRANSAKSI TAPI MENUTUP WINDOW
Cancel = True
If LabelBintang.Caption = "*" Then
MsgBox "Transaksi Belum Diselesaikan!!! Selesaikan Atau Kosongkan Keranjang
Belanja", vbCritical, "TRANSAKSI PENDING"
Else
If MsgBox("Yakin Mau Keluar?", vbOKCancel, "Tutup Jendela?") = vbOK Then
Cancel = False
Unload Me
End If
End If
End Sub

Rizal Loa Wanda loawanda.com | macamateri.com

MEMBUAT DATAENVIRONMENT DAN


DATAREPORT UNTUK CETAK NOTA
Pada menubar pilih Project > Add Data Environment , maka akan muncul jendela baru,
SAVE terlebih dahulu dengan nama DataEnvironment1.Dsr .
Lalu Klik kanan pada Connection1, di tab Provider pilih Microsoft Jet 4.0 OLE Provider,
Next, Select Database > pilih database yang telah dibuat (SPAREPART.mdb) > Test
Connection, bila sukses berarti langkah sebelumnya sudah benar, Klik OK.

Selanjutnya pada Connection1 , klik kanan Add Command, Klik kanan pada Command
> Rename menjadi Transaksi.
Setelah itu Klik kanan pada Transaksi, pilih Properties, pada Tab General, pilih SQL
Statement, anda dapat membuat sendiri melalui sql builder ataupun langsung
merelasikan dengan kode SQL, seperti berikut :
SELECT tb_transaksi_final.tgl_transaksi, tb_transaksi_final.total_bayar,
tb_transaksi_final.total_harga, tb_transaksi_final.kembalian,
tb_petugas.nama_petugas, tb_transaksi.sub_total, tb_transaksi.jumlah_beli,
tb_sparepart.harga_sparepart, tb_sparepart.merk_sparepart,
tb_sparepart.nama_sparepart, tb_transaksi.no_transaksi AS Expr1,
tb_transaksi_final.no_transaksi FROM tb_transaksi_final, tb_petugas,
tb_transaksi, tb_sparepart WHERE tb_transaksi_final.id_petugas =
tb_petugas.id_petugas AND tb_transaksi_final.no_transaksi =
tb_transaksi.no_transaksi AND tb_transaksi.id_sparepart =
tb_sparepart.id_sparepart AND (tb_transaksi.no_transaksi = ?)

Rizal Loa Wanda loawanda.com | macamateri.com

Dengan cara merelasikan lewat SQL Builder :

Relasikan seperti yang digambar, pilih field/column yang ingin ditampilkan.


Pada no_transaksi (table : tb_transaksi) dibuat criteria =? untuk menangkap data dari
form transaksi yaitu where no_transaksi = yang berada pada form transaksi.
Setelah semua ter-hubung, SAVE dan klik kanan kembali pada Transaksi, pilih
Properties > Tab Grouping > Check/centang Group Command Object lalu pilih
tgl_transaksi, total_bayar, total_harga, kembalian, nama_petugas, no_transaksi

Apply dan Ok.


Jika berhasil maka akan seperti digambar.

Rizal Loa Wanda loawanda.com | macamateri.com

BUAT DATA REPORT


Project > Add Data Report maka akan muncul jendela desain report , SAVE dengan
nama default : DataReport1.Dsr . klik kanan pada desain report, pilih Insert Group
Header/Footer , maka akan muncul section6 dan section7.
Lalu drag n drop data yang ingin ditampilkan sesuai group ataupun detail, (lihat
gambar)

Menjadi seperti ini :

Rizal Loa Wanda loawanda.com | macamateri.com

HASIL PROGRAM
Menu Utama

Menu Entry Data dan Transaksi akan aktif bila user berhasil login, dan hanya petugas
yang mempunyai id admin yang dapat menambah/menghapus/mengubah data
petugas. Bila ingin mengubahnya edit kode di Form_login bagian :
If rsSPAREPART!id_petugas = "admin" Then
Form_utama.petugas.Enabled = True
End If

Data Petugas

Rizal Loa Wanda loawanda.com | macamateri.com

Data Suku Cadang

Transaksi Penjualan

Contoh pembelian yang sudah selesai dan siap dicetak bukti transaksinya.

Untuk Demo Program dan Source Program dapat dilihat melalui tautan dibawah ini :

http://loawanda.com/vbsparepart/ atau http://macamateri.com/?p=100


Sekian Tutorial Pembuatan Aplikasi Sederhana Penjualan Suku Cadang
Motor VB6.0 ini semoga bermanfaat, Terima kasih.

Rizal Loa Wanda loawanda.com | macamateri.com