118
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar =
vbBack) Then e.Handled() = True
End Sub
12. Masukkan kode pada objek textbox5 prosedur KeyPress sebagai berikut
Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
If e.KeyChar = Chr(13) Then TextBox6.Focus()
End Sub
13. Masukkan kode pada objek textbox6 prosedur KeyPress sebagai berikut
Private Sub combobox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs)
If e.KeyChar = Chr(13) Then Button1.Focus()
End Sub
Pada kode objek textbox2, textbox3, textbox4, textbox5 dan textbox6 prosedur KeyPress
berfungsi jika nilai telah diisi pada textbox2 maka kursor akan dilanjutkan pada combobox1
dan seterusnya pada button1.
14. Masukkan kode pada button1 yang berfungsi untuk menyimpan data pamasok ke tabel
pemasok
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = ""
Or TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Then
MsgBox("Data Belum Lengkap")
Exit Sub
Else
CMD = New OleDbCommand("Select * from Pemasok where KodePms='"
& TextBox1.Text & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If Not RD.HasRows Then
Dim sqltambah As String = "Insert into
Pemasok(KodePms,NamaPms,AlamatPms,TeleponPms,PersonPms,EmailPms) values " &
_
"('" & TextBox1.Text & "','" & TextBox2.Text & "','" &
TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" &
TextBox6.Text & "')"
CMD = New OleDbCommand(sqltambah, CONN)
119
CMD.ExecuteNonQuery()
Call Kosongkan()
Call Tampilkan()
Else
Dim sqledit As String = "Update Pemasok set " & _
"NamaPms='" & TextBox2.Text & "', " & _
"AlamatPms='" & TextBox3.Text & "', " & _
"TeleponPms='" & TextBox4.Text & "', " & _
"PersonPms='" & TextBox5.Text & "', " & _
"EmailPms='" & TextBox6.Text & "' " & _
"where KodePms='" & TextBox1.Text & "'"
CMD = New OleDbCommand(sqledit, CONN)
CMD.ExecuteNonQuery()
Call Kosongkan()
Call Tampilkan()
End If
End If
End Sub
15. Masukkan kode pada button2 berfungsi untuk menghapus data Pemasok
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
If TextBox1.Text = "" Then
MsgBox("Isi kode Pemasok terlebih dahulu")
TextBox1.Focus()
Exit Sub
Else
If MessageBox.Show("Yakin akan dihapus..?", "",
MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
CMD = New OleDbCommand("Delete * from Pemasok where
KodePms='" & TextBox1.Text & "'", CONN)
CMD.ExecuteNonQuery()
Call Kosongkan()
Call Tampilkan()
Else
Call Kosongkan()
End If
End If
End Sub
120
16. Masukkan kode pada button3 berfungsi untuk menghilangkan nilai pada textbox dan
combobox
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Call Kosongkan()
End Sub
17. Masukkan kode pada button4 untuk menutup form pemasok
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
Me.Close()
End Sub
18. Hasil dari kode program diatas, dapat dilihat pada gambar 7.7 berikut ini :
Gambar 7.7 Hasil Form Pemasok
7.7 Membuat Form Pemakai
Untuk membuat form pemakai ikuti langkah berikut ini :
1. Desain Form Pemakai seperti pada gambar 7.8 dibawah ini :
121
Gambar 7.8 Form Pemakai
2. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.11 Pengaturan Properties Form Pemakai
Object Properties Value
Form1 Text Form : Pemakai
Form1 Name Pemakai
Form1 Start Position CenterScreen
Label1 Text Kode
Label2 Text Nama
Label3 Text Password
Label4 Text Status
Botton1 Text &Simpan
Botton2 Text &Hapus
Botton3 Text &Batal
Botton4 Text &Tutup
DataGridView1 Name DGV
3. Masukkan kode berikut diatas Public Class Pemakai bertujuan untuk memanggil
driver dengan koneksi oleDB
Imports System.Data.OleDb
4. Dengan membuat prosedur kosongkan yang berfungsi untuk menghilangkan nilai pada
textbox, Masukkan kode berikut ini :
Sub Kosongkan()
TextBox1.Text = ""
TextBox2.Text = ""
122
TextBox3.Text = ""
ComboBox1.Text = ""
TextBox1.Focus()
End Sub
5. Tambahkan kembali prosedur DataBaru dengan kode sebagai berikut :
Sub DataBaru()
TextBox2.Text = ""
TextBox3.Text = ""
ComboBox1.Text = ""
TextBox2.Focus()
End Sub
6. Pada prosedur Tampilkan berfungsi untuk mengambil data dari tabel pemasok dengan
kode sebagai berikut :
Sub Tampilkan()
DA = New OleDbDataAdapter("Select * from Pemakai ORDER BY 1", CONN)
DS = New DataSet
DS.Clear()
DA.Fill(DS, "Pemakai")
DGV.DataSource = (DS.Tables("Pemakai"))
DGV.ReadOnly = True
End Sub
7. Masukkan kode berikut ini pada objek form atau pemakai prosedur load sebagai berikut :
Private Sub Pemakai_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call Tampilkan()
ComboBox1.Items.Add("ADMINISTRATOR")
ComboBox1.Items.Add("OPERATOR")
ComboBox1.Items.Add("KASIR")
End Sub
8. Masukkan kode berikut ini pada objek Textboxt1 prosedur KeyPress :
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
TextBox1.MaxLength = 5
If e.KeyChar = Chr(13) Then
CMD = New OleDbCommand("select * from Pemakai where
kodePMK='" & TextBox1.Text & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows = True Then
123
TextBox2.Text = RD.GetString(1)
TextBox3.Text = RD.GetString(2)
ComboBox1.Text = RD.GetString(3)
TextBox2.Focus()
Else
Call DataBaru()
TextBox2.Focus()
End If
End If
End Sub
Kode diatas berfungsi ketika nilai yang sama dimasukkan pada textbox1 maka akan
dimunculkan data pemakai yang sebelumnya telah terinput.
9. Masukkan kode pada objek textbox2 prosedur KeyPress sebagai berikut :
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Chr(13) Then TextBox3.Focus()
End Sub
10. Masukkan kode pada objek textbox3 prosedur KeyPress sebagai berikut :
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If e.KeyChar = Chr(13) Then ComboBox1.Focus()
End Sub
11. Masukkan kode pada objek combobox1 prosedur KeyPress sebagai berikut
Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox4.KeyPress
If e.KeyChar = Chr(13) Then Button1.Focus()
End Sub
Pada kode objek textbox2, textbox3 dan combobox1 prosedur KeyPress berfungsi jika
nilai telah diisi pada textbox2 maka kursor akan dilanjutkan pada combobox1 dan seterusnya
pada button1.
12. Masukkan kode pada button1 yang berfungsi untuk menyimpan data pamasok ke tabel
pemasok
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = ""
Or ComboBox1.Text = "" Then
124
MsgBox("Data Belum Lengkap")
Exit Sub
Else
CMD = New OleDbCommand("Select * from Pemakai where kodePMK='"
& TextBox1.Text & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If Not RD.HasRows Then
Dim sqltambah As String = "Insert into
Pemakai(kodePMK,namaPMK,PassPMK,StatusPMK) values " & _
"('" & TextBox1.Text & "','" & TextBox2.Text & "','" &
TextBox3.Text & "','" & ComboBox1.Text & "')"
CMD = New OleDbCommand(sqltambah, CONN)
CMD.ExecuteNonQuery()
Call Kosongkan()
Call Tampilkan()
Else
Dim sqledit As String = "Update Pemakai set " & _
"NamaPMK='" & TextBox2.Text & "', " & _
"PassPMK='" & TextBox3.Text & "', " & _
"StatusPMK='" & ComboBox1.Text & "' where kodePMK='" &
TextBox1.Text & "'"
CMD = New OleDbCommand(sqledit, CONN)
CMD.ExecuteNonQuery()
Call Kosongkan()
Call Tampilkan()
End If
End If
End Sub
13. Masukkan kode pada button2 berfungsi untuk menghapus data Pemasok
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
If TextBox1.Text = "" Then
MsgBox("Isi kode Pemakai terlebih dahulu")
TextBox1.Focus()
Exit Sub
Else
If MessageBox.Show("Yakin akan dihapus..?", "",
MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
125
CMD = New OleDbCommand("Delete * from Pemakai where
kodePMK='" & TextBox1.Text & "'", CONN)
CMD.ExecuteNonQuery()
Call Kosongkan()
Call Tampilkan()
Else
Call Kosongkan()
End If
End If
End Sub
14. Masukkan kode pada button3 berfungsi untuk menghilangkan nilai pada textbox dan
combobox
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Call Kosongkan()
End Sub
15. Masukkan kode pada button4 untuk menutup form pemasok
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
Me.Close()
End Sub
16. Hasil dari kode program diatas, dapat dilihat pada gambar 7.9 berikut ini :
Gambar 7.9 Hasil Form Pemakai
7.8 Membuat Form Penerimaan Barang
Form penerimaan barang berfungsi untuk mencatat dan menambah stok pada tabel barang,
setiap barang yang diterima akan didata sehingga jumlah stok barang akan bertambah sesuai
126
dengan jumlah yang diterima. Untuk membuat form penerimaan barang ikuti langkah berikut
ini:
1. Desain Form Penerimaan Barang seperti pada gambar 7.10 dibawah ini :
Gambar 7.10 Form Penerimaan Barang
2. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.10 Pengaturan Properties Form Penerimaan Barang
Object Properties Value
Form1 Text Form : Penerimaan
Form1 Name Penerimaan
Form1 Start Position CenterScreen
Label1 Text Nomor
Label2 Text Kode Pemasok
Label3 Text Contact Person
Label4 Text Tanggal
Label5 Text Nama Pemasok
Label6 Text Nomor Reff
Label7 Name LBLNomor
Label8 Name LBLTanggal
Label9 Name LBLNama
Label10 Name LBLPerson
Label11 Name TotalTerima
ComboBox1 - -
TextBoxt1 Name TKode
127
TextBoxt2 Name TNama
TextBoxt3 Name TStok
TextBoxt5 Name TTerima
TextBoxt6 Name TotalTerima
Botton1 Text Simpan
Botton2 Text Batal
Botton3 Text Tutup
DataGridView1 Name DGV
3. Masukkan kode berikut diatas Public Class Pemakai bertujuan untuk memanggil
driver dengan koneksi oleDB
Imports System.Data.OleDb
4. Dengan membuat prosedur kosongkan yang berfungsi untuk menghilangkan nilai pada
textbox, Masukkan kode berikut ini :
Sub Kosongkan()
TKode.Text = ""
TNama.Text = ""
TStok.Text = ""
TTerima.Text = ""
TKode.Focus()
End Sub
5. Pada prosedur Tampilkan berfungsi untuk mengambil data dari tabel TMPTerima dengan
kode sebagai berikut :
Sub Tampilkan()
DA = New OleDbDataAdapter("Select * from TMPTerima", CONN)
DS = New DataSet
DS.Clear()
DA.Fill(DS, "TMPTerima")
DGV.DataSource = (DS.Tables("TMPTerima"))
DGV.ReadOnly = True
Call AturKolom()
End Sub
6. Pada prosedur AturKolom berfungsi untuk mengatur panjang kolom dengan kode sebagai
berikut:
Sub AturKolom()
DGV.Columns("kode").Width = 50
DGV.Columns(1).Width = 250
128
DGV.Columns(2).Width = 75
DGV.Columns(3).Width = 75
End Sub
7. Pada prosedur HapusGrid berfungsi untuk menghapus data pada tabel TMPTerima dengan
kode sebagai berikut:
Sub HapusGrid()
DA = New OleDbDataAdapter("Delete * from TMPTerima", CONN)
DS = New DataSet
DS.Clear()
DA.Fill(DS, "TMPTerima")
DGV.DataSource = (DS.Tables("TMPTerima"))
End Sub
8. Pada prosedur CariTotalTerima berfungsi untuk melakukan penjumlahan pada kolom
jumlah terima barang dengan kode sebagai berikut:
Sub CariTotalTerima()
On Error Resume Next
CMD = New OleDbCommand("select sum(Diterima) as ketemu from
TMPTerima", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
TotalTerima.Text = RD.GetValue(0)
Else
TotalTerima.Text = 0
End If
End Sub
9. Pada prosedur Otomatis berfungsi untuk membuat kode pada nomor transaksi dengan
ketentuan 2 digit didepan adalah “TR” ditambah dengan tanggal transaksi dan 2 digit
penomoran. Contoh: TR1902201601 yang berarti TR adalah kode transaksi, 19022016
adalah tanggal transaksi dan 01 merupakan nomor urut pertama transaksi. kode sebagai
berikut:
Private Sub Otomatis()
CMD = New OleDbCommand("Select * from Penerimaan where NomorTrm in
(select max(NomorTrm) from Penerimaan) order by NomorTrm desc", CONN)
Dim urutan As String
Dim hitung As Long
RD = CMD.ExecuteReader
RD.Read()
If Not RD.HasRows Then
129
urutan = "TR" + Format(Now, "yyMMdd") + "01"
Else
If Microsoft.VisualBasic.Mid(RD.GetString(0), 3, 6) <>
Format(Now, "yyMMdd") Then
urutan = "TR" + Format(Now, "yyMMdd") + "01"
Else
hitung = Microsoft.VisualBasic.Right(RD.GetString(0), 2) +
1
urutan = "TR" + Format(Now, "yyMMdd") +
Microsoft.VisualBasic.Right("00" & hitung, 2)
End If
End If
LBLNomor.Text = urutan
End Sub
10. Pada prosedur TampilPemasok berfungsi untuk menampilkan data pemasok ke
combobox1 dengan kode sebagai berikut:
Sub TampilPemasok()
CMD = New OleDbCommand("select * from Pemasok", CONN)
RD = CMD.ExecuteReader
ComboBox1.Items.Clear()
Do While RD.Read
ComboBox1.Items.Add(RD.Item(0))
Loop
End Sub
11. Pada objek form penerimaan prosedur Actived berfungsi untuk memanggil koneksi,
prosedur otomatis dan pengaturan LBLTanggal untuk waktu berikut kode sebagai berikut:
Private Sub Penerimaan_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
Koneksi()
Call Otomatis()
LBLTanggal.Text = Today
End Sub
12. Pada objek form penerimaan prosedur load berfungsi untuk memanggil koneksi, prosedur
hapus grid, tampilkan dan memanggil data pemasok ketika form dijalankan, berikut kode
sebagai berikut:
Private Sub Penerimaan_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call HapusGrid()
Call Tampilkan()
130
Call TampilPemasok()
End Sub
13. Masukkan kode berikut ini pada DataGridView prosedur CellEndEdit :
Private Sub DGV_CellEndEdit(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs)
If e.ColumnIndex = 3 Then
DGV.Rows(e.RowIndex).Cells(4).Value =
DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value
Call CariTotalTerima()
Call Kosongkan()
End If
End Sub
14. Masukkan kode berikut ini pada DataGridView prosedur CellValidating :
Private Sub DGV_CellValidating(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellValidatingEventArgs)
On Error Resume Next
If e.ColumnIndex = 0 Then
CMD = New OleDbCommand("Select * from barang where KodeBrg='" &
e.FormattedValue.ToString & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
DGV.Rows(e.RowIndex).Cells(0).Value = RD.GetString(0)
DGV.Rows(e.RowIndex).Cells(1).Value = RD.GetString(1)
DGV.Rows(e.RowIndex).Cells(2).Value = RD.GetValue(2)
Exit Sub
Else
Beep()
End If
End If
If e.ColumnIndex = 3 Then
DGV.Rows(e.RowIndex).Cells(4).Value =
DGV.Rows(e.RowIndex).Cells(2).Value * e.FormattedValue.ToString
End If
End Sub
131
15. Masukkan kode berikut pada objek botton1:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
If ComboBox1.Text = "" Or NomorReff.Text = "" Or TotalTerima.Text =
"" Then
MsgBox("Data belum lengkap")
Exit Sub
End If
Try
'simpan ke tabel Penerimaan
'MenuUtama.Panel1.Text
Dim Simpan As String
Simpan = "insert into
Penerimaan(nomorTrm,tanggalTrm,KodePms,nomorbon,totalTrm,kodepmk) values "
&_
"('" & LBLNomor.Text & "','" & LBLTanggal.Text & "','" &
ComboBox1.Text & "','" & NomorReff.Text & "','" & TotalTerima.Text & "','"
& MenuUtama.Panel1.Text & "')"
CMD = New OleDbCommand(Simpan, CONN)
CMD.ExecuteNonQuery()
'baca tabel TMPTerima
DA = New OleDbDataAdapter("select * from TMPTerima", CONN)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
Dim TBL As DataTable = DS.Tables(0)
For baris As Integer = 0 To TBL.Rows.Count - 1
Dim sqlsimpan As String = "insert into
DetailTerima(nomorTrm,KODEBRG,stokawal,qtytrm,stokakhir) values " & _
"('" & LBLNomor.Text & "','" & TBL.Rows(baris)(0) & "','" &
TBL.Rows(baris)(2) & "','" & TBL.Rows(baris)(3) & "','" &
TBL.Rows(baris)(2) + TBL.Rows(baris)(3) & "')"
CMD = New OleDbCommand(sqlsimpan, CONN)
CMD.ExecuteNonQuery()
'tambahstok barang
CMD = New OleDbCommand("select * from barang where
KodeBrg='" & TBL.Rows(baris)(0) & "'", CONN)
132
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
Dim TambahStok As String = "update barang set
JumlahBrg= '" & RD.GetValue(3) + TBL.Rows(baris)(3) & "' where KodeBrg='" &
TBL.Rows(baris)(0) & "'"
CMD = New OleDbCommand(TambahStok, CONN)
CMD.ExecuteNonQuery()
End If
Next baris
Call HapusGrid()
Call Tampilkan()
Call Kosongkan()
Call Otomatis()
Call HapusMaster()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
16. Masukkan kode berikut ini pada objek TKode prosedur KeyPress:
Private Sub Tkode_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TKode.KeyPress
If e.KeyChar = Chr(13) Then
If TKode.Text = "" Then
'DaftarBarang.Show()
MsgBox("kode barang masih kosong")
Else
CMD = New OleDbCommand("Select * from TMPTerima where
kode='" & TKode.Text & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
TNama.Text = RD.GetString(1)
TStok.Text = RD.GetValue(2)
MsgBox("kode barang sudah ada dalam transaksi, edit
saja jumlahnya")
'Call Kosongkan()
TStok.Focus()
133
Exit Sub
Else
CMD = New OleDbCommand("Select * from barang where
KodeBrg='" & TKode.Text & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
TNama.Text = RD.GetString(1)
TStok.Text = RD.GetValue(3)
TTerima.Focus()
Else
MsgBox("Kode tidak terdaftar")
TKode.Text = ""
TKode.Focus()
End If
End If
End If
End If
If e.KeyChar = Chr(27) Then
CMD = New OleDbCommand("select * from TMPTerima where kode='" &
TKode.Text & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
Dim sqlhapus As String = "delete * from TMPTerima where
kode='" & TKode.Text & "'"
CMD = New OleDbCommand(sqlhapus, CONN)
CMD.ExecuteNonQuery()
Call Tampilkan()
Call CariTotalTerima()
If DGV.Rows.Count - 1 = 0 Then
Call HapusMaster()
End If
TKode.Text = ""
Else
MsgBox("Kode tidak ada dalam transaksi")
TKode.Focus()
End If
End If
134
'If e.KeyChar = Chr(9) Then TDibayar.Focus()
End Sub
Kode diatas berfungsi ketika nilai yang sama dimasukkan pada textbox1 atau Tkode maka
akan dimunculkan data penerimaan yang sebelumnya telah terinput.
17. Masukkan kode berikut ini pada objek TTerima prosedur KeyPress:
Private Sub TTerima_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TTerima.KeyPress
If e.KeyChar = Chr(13) Then
CMD = New OleDbCommand("select * from TMPTerima where kode='" &
TKode.Text & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
Dim editjumlah As String = "update TMPTerima set diterima='" & TTerima.Text
& "' where kode='" & TKode.Text & "'"
CMD = New OleDbCommand(editjumlah, CONN)
CMD.ExecuteNonQuery()
Call Tampilkan()
Call CariTotalTerima()
Call Kosongkan()
Else
Dim sqlsimpan As String = "Insert into TMPTerima
(kode,nama,stokawal,diterima) values " & _
"('" & TKode.Text & "','" & TNama.Text & "','" & TStok.Text
& "','" & TTerima.Text & "')"
CMD = New OleDbCommand(sqlsimpan, CONN)
CMD.ExecuteNonQuery()
Call Tampilkan()
Call CariTotalTerima()
Call Kosongkan()
End If
End If
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar =
vbBack) Then e.Handled() = True
End Sub
18. Pada prosedur HapusMaster berfungsi untuk membersihkan nilai pada textboxt dan
combobox, dengan kode sebagai berikut:
Sub HapusMaster()
135
ComboBox1.Text = ""
LBLPerson.Text = ""
LBLNama.Text = ""
NomorReff.Text = ""
TotalTerima.Text = ""
ComboBox1.Focus()
End Sub
19. Masukkan kode pada objek button2 atau tombol batal sebagai berikut :
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Call Kosongkan()
Call HapusGrid()
Call HapusMaster()
Call Tampilkan()
End Sub
20. Masukkan kode pada objek button3 atau tombol tutup sebagai berikut :
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
21. Masukkan kode pada objek combobox1 prosedur KeyPress sebagai berikut
Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
If e.KeyChar = Chr(13) Then
If ComboBox1.Text = "" Then
MsgBox("Kode Pemasok masih kosong")
Else
NomorReff.Focus()
End If
End If
End Sub
22. Masukkan kode pada objek combobox1 prosedur SelectedIndexChanged sebagai berikut
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
CMD = New OleDbCommand("select * from Pemasok where KodePms='" &
ComboBox1.Text & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
136
LBLPerson.Text = RD.Item(5)
LBLNama.Text = RD.Item(2)
Else
MsgBox("Kode Pemasok tidak terdaftar")
End If
End Sub
23. Masukkan kode pada objek NomorReff prosedur KeyPress sebagai berikut
Private Sub NomorReff_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles NomorReff.KeyPress
If e.KeyChar = Chr(13) Then TKode.Focus()
End Sub
24. Hasil dari kode program diatas, dapat dilihat pada gambar 7.11 berikut ini :
Gambar 7.11 Hasil Form Penerimaan Barang
Form Penerimaan pada gambar 7.11 pada pencarian kode barang masih mengetikkan
kode, apabila kasir tidak mengingat seluruh kode barang maka dibutuhkan pencarian barang
dengan memilih pada daftar barang. Maka, dibutuhkan form pencarian barang apabila daftar
barang di klik maka akan dimunculkan pada kolom kode barang, nama barang dan stok.
Berikut langkah pembuatan form pencarian barang
1. Buatlah form baru dengan klik menu Project dan pilih Add Windows Form
2. Desain Form Daftar Barang seperti pada gambar 7.12 dibawah ini:
137
Gambar 7.8 Form Daftar Barang
3. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.11 Pengaturan Properties Form Daftar Barang
Object Properties Value
Form1 Text Daftar Barang
Form1 Name D_Barang
Form1 Start Position CenterScreen
DataGridView1 Name DGV
4. Masukkan kode berikut diatas Public Class D_barang bertujuan untuk memanggil
driver dengan koneksi oleDB
Imports System.Data.OleDb
5. Pada prosedur Tampilkan berfungsi untuk menampilkan data barang ke DataGridView
dengan kode sebagai berikut:
Sub Tampilkan()
DA = New OleDbDataAdapter("Select KodeBrg,NamaBrg,StokMinimal from
barang", CONN)
ds = New DataSet
ds.Clear()
da.Fill(ds, "Barang")
DGV.DataSource = (ds.Tables("Barang"))
DGV.ReadOnly = True
End Sub
6. Masukkan kode pada objek form D_Barang prosedur Load berikut ini:
Private Sub D_Barang_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
138
Call Koneksi()
Call Tampilkan()
End Sub
7. Masukkan kode berikut pada objek DataGridView prosedur CellClick :
Private Sub DGV_CellClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellClick
Dim i As Integer
i = Me.DGV.CurrentRow.Index
With DGV.Rows.Item(i)
Penerimaan.TKode.Text = .Cells(0).Value
Penerimaan.TNama.Text = .Cells(1).Value
Penerimaan.TStok.Text = .Cells(2).Value
End With
Penerimaan.Show()
Me.Close()
Penerimaan.TTerima.Focus()
End Sub
End Class
8. Hasil dari kode program diatas, dapat dilihat pada gambar 7.12 berikut ini :
Gambar 7.12 Hasil Form Penerimaan Barang
7.9 Membuat Form Transaksi
Form transaksi penjualan berfungsi untuk mencatat setiap transaksi penjualan barang
kepada pelanggan, setiap barang yang dijual maka jumlah stok barang akan berkurang sesuai
dengan jumlah yang dijual. Untuk membuat form transaksi ikuti langkah berikut ini:
1. Desain Form transaksi penjualan barang seperti pada gambar 7.13 berikut ini :
139
Gambar 7.13 Form Transaksi Penjualan Barang
2. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.12 Pengaturan Properties Form Transaksi Barang
Object Properties Value
Form1 Text Form : Transaksi
Form1 Name Transaksi
Form1 Start Position CenterScreen
Label1 Text Faktur
Label2 Text Tanggal
Label3 Text Jam
Label4 Text Kode
Label5 Text Nama
Label6 Text Alamat
Label7 Text Telepon
Label8 Text Jenis Kelamin
Label9 Text Email
Label10 Text Total
Label11 Text Item
Label12 Text Dibayar
Label13 Text Kembali
TextBoxt1 - -
TextBoxt2 - -
TextBoxt3 - -
TextBoxt5 - -
140
TextBoxt6 Name Faktur
TextBoxt7 Name Tanggal
TextBoxt8 Name Jam
TextBoxt9 Name Item
TextBoxt10 Name Dibayar
TextBoxt11 Name Kembali
Combobox2 - -
Botton1 Text Daftar Barang
Botton2 Text …
Botton3 Name BTNSimpan
Botton3 Text Simpan
Botton4 Name BTNBatal
Botton4 Text Batal
Botton5 Name BTNTutup
Botton6 Text Tutup
Timer1 Enabled True
1. Masukkan kode berikut diatas Public Class Pemakai bertujuan untuk memanggil
driver dengan koneksi oleDB
Imports System.Data.OleDb
2. Dengan membuat prosedur BersihkanText yang berfungsi untuk menghilangkan nilai pada
textbox, Masukkan kode berikut ini :
Sub BersihkanText()
Total.Text = ""
Dibayar.Text = ""
Kembali.Text = ""
Item.Text = ""
End Sub
3. Pada prosedur BuatKolomBaru berfungsi untuk membuat kolom dengan kode sebagai
berikut :
Sub BuatKolomBaru()
DGV.Columns.Add("Kode", "Kode")
DGV.Columns.Add("Nama", "Nama Barang")
DGV.Columns.Add("Harga", "Harga")
DGV.Columns.Add("Jumlah", "Jumlah")
DGV.Columns.Add("Total", "SubTotal")
141
Call AturLebarKolom()
End Sub
4. Pada prosedur AturLebarKolom berfungsi untuk mengatur panjang kolom dengan kode
sebagai berikut:
Sub AturLebarKolom()
DGV.Columns(0).Width = 50
DGV.Columns(1).Width = 175
DGV.Columns(2).Width = 75
DGV.Columns(3).Width = 75
DGV.Columns(4).Width = 100
End Sub
5. Pada prosedur FakturOtomatis berfungsi untuk membuat penomoran otomatis dengan 6
digit pertama adalah tanggal dan pada 4 digit terakhir adalah penomoran selanjutnya,
dengan kode sebagai berikut:
Sub FakturOtomatis()
cmd = New OleDbCommand("Select * from penjualan where faktur in
(select max(faktur) from penjualan) order by faktur desc", Conn)
Dim urutan As String
Dim hitung As Long
rd = cmd.ExecuteReader
rd.Read()
If Not rd.HasRows Then
urutan = Format(Now, "yyMMdd") + "0001"
Else
If Microsoft.VisualBasic.Left(rd.GetString(0), 6) <>
Format(Now, "yyMMdd") Then
urutan = Format(Now, "yyMMdd") + "0001"
Else
hitung = rd.GetString(0) + 1
urutan = Format(Now, "yyMMdd") +
Microsoft.VisualBasic.Right("0000" & hitung, 4)
End If
End If
Faktur.Text = urutan
End Sub
6. Pada objek form transaksi prosedur active berfungsi untuk memanggil prosedur faktur
otomatis dan mengatur tanggal berdasarkan format komputer, dengan kode sebagai
berikut :
142
Private Sub Transaksi_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
Call FakturOtomatis()
Tanggal.Text = Today
End Sub
7. Pada prosedur TampilPelanggan berfungsi untuk memanggil data pelanggan dan
ditampilkan pada combobox1, dengan kode sebagai berikut:
Sub TampilPelanggan()
CMD = New OleDbCommand("select * from Pelanggan", CONN)
RD = CMD.ExecuteReader
ComboBox1.Items.Clear()
Do While RD.Read
ComboBox1.Items.Add(RD.Item(0))
Loop
End Sub
8. Pada objek form transaksi prosedur load berfungsi untuk memanggil prosedur koneksi,
buatkolombaru dan tampil pelanggan, dengan kode sebagai berikut :
Private Sub Transaksi_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call BuatKolomBaru()
Call TampilPelanggan()
End Sub
9. Pada objek timer1 prosedur tick berfungsi untuk mengatur waktu pada textbox jam
dengan kode sebagai berikut:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
Jam.Text = TimeOfDay
End Sub
10. Pada objek Datagrid1 atau DGV prosedur CellEndEdit berfungsi untuk memanggil data,
mengubah dan melakukan perkalian penjumlahan jumlah barang dengan harga barang,
dengan kode sebagai berikut:
Private Sub DGV_CellEndEdit(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellEndEdit
If e.ColumnIndex = 0 Then
CMD = New OleDbCommand("select * from barang where KodeBrg='" &
DGV.Rows(e.RowIndex).Cells(0).Value & "'", CONN)
RD = CMD.ExecuteReader
143
RD.Read()
If RD.HasRows Then
DGV.Rows(e.RowIndex).Cells(1).Value = RD.Item(1)
DGV.Rows(e.RowIndex).Cells(2).Value = RD.Item(5)
DGV.Rows(e.RowIndex).Cells(3).Value = 1
DGV.Rows(e.RowIndex).Cells(4).Value =
DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value
Call TotalItem()
Call TotalHarga()
Else
MsgBox("Kode barang tidak terdaftar")
End If
End If
If e.ColumnIndex = 3 Then
CMD = New OleDbCommand("select * from barang where KodeBrg='" &
DGV.Rows(e.RowIndex).Cells(0).Value & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
If DGV.Rows(e.RowIndex).Cells(3).Value > RD.Item(4) Then
MsgBox("Stok barang hanya ada " & RD.Item(4) & "")
DGV.Rows(e.RowIndex).Cells(3).Value = 1
DGV.Rows(e.RowIndex).Cells(4).Value =
DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value
Call TotalItem()
Call TotalHarga()
Else
DGV.Rows(e.RowIndex).Cells(4).Value =
DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value
Call TotalItem()
Call TotalHarga()
End If
End If
DGV.CurrentCell = DGV.Rows(0).Cells(0)
End If
End Sub
11. Pada prosedur kena berfungsi untuk mengatur cell pada datagrid, denga kode sebagai
berikut:
144
Sub kena(ByVal myGrid As DataGrid)
myGrid.CurrentCell = New DataGridCell(1, 1)
End Sub
12. Pada prosedur TotalItem berfungsi untuk mengitung jumlah item pada cell, dengan kode
sebagai berikut:
Sub TotalItem()
Dim HitungItem As Integer = 0
For I As Integer = 0 To DGV.Rows.Count - 1
HitungItem = HitungItem + Val(DGV.Rows(I).Cells(3).Value)
Item.Text = HitungItem
Next
End Sub
13. Pada prosedur TotalHarga berfungsi untuk mengitung harga pada cell, dengan kode
sebagai berikut:
Sub TotalHarga()
Dim HitungHarga As Integer = 0
For I As Integer = 0 To DGV.Rows.Count - 1
HitungHarga = HitungHarga + Val(DGV.Rows(I).Cells(4).Value)
Total.Text = HitungHarga
Next
End Sub
14. Pada prosedur HapusBaris berfungsi untuk menghilangkan nilai pada cell , dengan kode
sebagai berikut:
Sub HapusBaris()
On Error Resume Next
Dim baris As Integer = DGV.CurrentCell.RowIndex
DGV.Rows(baris).Cells(0).Value = ""
Chr(30)
End Sub
15. Pada objek DGV prosedur KeyDown berfungsi untuk mengatur cell yang bisa diubah
pada cell, dengan kode sebagai berikut:
Private Sub DGV_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles DGV.KeyDown
If e.KeyCode = Keys.Up Then
DGV.CurrentCell = DGV.Rows(0).Cells(3)
End If
End Sub
145
16. Pada objek DGV prosedur KeyPress berfungsi untuk memanggil prosedur TotalItem,
TotalHarga dan mengembalikan nilai pada cell, dengan kode sebagai berikut:
Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress
On Error Resume Next
If e.KeyChar = Chr(27) Then
DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)
Call TotalItem()
Call TotalHarga()
Dibayar.Clear()
Kembali.Text = ""
End If
End Sub
17. Pada objek textbox dibayar prosedur Keypress berfungsi untuk menghitung jumlah bayar
dengan total bayar sehingga nilai sisa akan ditampilkan pada textbox kembali, kode
sebagai berikut:
Private Sub Dibayar_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles Dibayar.KeyPress
If e.KeyChar = Chr(13) Then
If Val(Dibayar.Text) < Val(Total.Text) Then
MsgBox("Pembayaran kurang")
Kembali.Text = ""
Dibayar.Focus()
Exit Sub
ElseIf Val(Dibayar.Text) = Val(Total.Text) Then
Kembali.Text = 0
BTNSimpan.Focus()
Else
Kembali.Text = Val(Dibayar.Text) - Val(Total.Text)
BTNSimpan.Focus()
End If
End If
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar =
vbBack) Then e.Handled() = True
End Sub
18. Masukkan kode berikut pada objek BTNSimpan :
Private Sub BTNSimpan_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNSimpan.Click
146
If Total.Text = "" Or Dibayar.Text = "" Or Kembali.Text = "" Or
Item.Text = "" Then
MsgBox("Data belum lengkap, tidak ada transaksi atau pembayaran
masih kosong")
Exit Sub
End If
'simpan ke tabel penjualan
Dim simpanmaster As String = "Insert into
penjualan(faktur,tanggal,item,total,dibayar,kembali,KodePmk,KodePlg) values
"&_
"('" & Faktur.Text & "','" & Tanggal.Text & "','" & Item.Text &
"','" & Total.Text & "','" & Dibayar.Text & "','" & Kembali.Text & "','" &
Menuutama.Panel1.Text & "','" & ComboBox1.Text & "')"
CMD = New OleDbCommand(simpanmaster, CONN)
CMD.ExecuteNonQuery()
For baris As Integer = 0 To DGV.Rows.Count - 2
'simpan ke tabel detail
Dim sqlsimpan As String = "Insert into detailjual
(faktur,KodeBrg,nama_Barang,harga_Jual,jumlah,subtotal) values " & _
"('" & Faktur.Text & "','" & DGV.Rows(baris).Cells(0).Value &
"','" & DGV.Rows(baris).Cells(1).Value & "','" &
DGV.Rows(baris).Cells(2).Value & "','" & DGV.Rows(baris).Cells(3).Value &
"','" & DGV.Rows(baris).Cells(4).Value & "')"
CMD = New OleDbCommand(sqlsimpan, CONN)
CMD.ExecuteNonQuery()
'kurangi stok barang
CMD = New OleDbCommand("select * from barang where KodeBrg='" &
DGV.Rows(baris).Cells(0).Value & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
Dim kurangistok As String = "update barang set JumlahBrg=
'" & RD.Item(3) - DGV.Rows(baris).Cells(3).Value & "' where KodeBrg='" &
DGV.Rows(baris).Cells(0).Value & "'"
CMD = New OleDbCommand(kurangistok, CONN)
CMD.ExecuteNonQuery()
End If
Next baris
147
DGV.Columns.Clear()
Call BuatKolomBaru()
Call FakturOtomatis()
Call BersihkanText()
End Sub
19. Masukkan kode berikut pada objek BTNBatal
Private Sub BTNBatal_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNBatal.Click
Call BersihkanText()
DGV.Columns.Clear()
Call BuatKolomBaru()
DGV.Focus()
End Sub
20. Masukkan kode berikut pada objek BTNTutup
Private Sub BTNTutup_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BTNTutup.Click
Me.Close()
End Sub
21. Masukkan kode berikut pada Button1 atau Daftar Barang
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
D_Barang.ShowDialog()
End Sub
22. Masukkan kode berikut pada Button2 atau tombol cari
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
D_Pelanggan.ShowDialog()
End Sub
23. Masukkan kode berikut pada objek combobo1 prosedur SelectedIndexChange
Private Sub combobox1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
CMD = New OleDbCommand("select * from Pelanggan where KodePlg='" &
ComboBox1.Text & "'", CONN)
RD = CMD.ExecuteReader
RD.Read()
If RD.HasRows Then
TextBox1.Text = RD.Item(1)
TextBox2.Text = RD.Item(2)
148
TextBox3.Text = RD.Item(3)
TextBox4.Text = RD.Item(4)
TextBox5.Text = RD.Item(5)
Else
MsgBox("Kode Pelanggan tidak terdaftar")
End If
End Sub
24. Hasil dari kode program diatas, dapat dilihat pada gambar 7.14 berikut ini :
Gambar 7.14 Hasil Form Transaksi Barang
Form transaksi barang pada gambar 7.14 pada pencarian kode pelanggan masih
mengetikkan kode, apabila kasir tidak mengingat seluruh kode pelanggan maka dibutuhkan
pencarian pelanggan dengan memilih pada daftar pelanggan. Maka, dibutuhkan form
pencarian pelanggan apabila daftar pelanggan di klik maka akan dimunculkan pada textboxt
kode pelanggan, nama, alamat, telepon, jenis kelamin dan email. Berikut langkah pembuatan
form pencarian pelanggan
1. Buatlah form baru dengan klik menu Project dan pilih Add Windows Form
2. Desain form daftar pelanggan seperti pada gambar 7.15 dibawah ini:
Gambar 7.15 Form Daftar Pelanggan
149
3. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.13 Pengaturan Properties Form Daftar Pelanggan
Object Properties Value
Form1 Text Daftar Pelanggan
Form1 Name D_ Pelanggan
Form1 Start Position CenterScreen
DataGridView1 Name DGV
4. Masukkan kode berikut diatas Public Class D_Pelanggan bertujuan untuk memanggil
driver dengan koneksi oleDB
Imports System.Data.OleDb
5. Pada prosedur Tampilkan berfungsi untuk menampilkan data barang ke DataGridView
dengan kode sebagai berikut:
Sub Tampilkan()
DA = New OleDbDataAdapter("Select * from Pelanggan", CONN)
DS = New DataSet
DS.Clear()
DA.Fill(DS, "Pelanggan")
DGV.DataSource = (DS.Tables("Pelanggan"))
DGV.ReadOnly = True
End Sub
6. Masukkan kode pada objek form D_Pelanggan prosedur Load berikut ini:
Private Sub D_Pelanggan_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call Tampilkan()
End Sub
7. Masukkan kode berikut pada objek DataGridView prosedur CellClick :
Private Sub DGV_CellClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellClick
Dim i As Integer
i = Me.DGV.CurrentRow.Index
With DGV.Rows.Item(i)
Transaksi.ComboBox1.Text = .Cells(0).Value
Transaksi.TextBox1.Text = .Cells(1).Value
Transaksi.TextBox2.Text = .Cells(2).Value
Transaksi.TextBox3.Text = .Cells(3).Value
Transaksi.TextBox4.Text = .Cells(4).Value
150
Transaksi.TextBox5.Text = .Cells(5).Value
End With
Transaksi.Show()
Me.Close()
End Sub
8. Hasil dari kode program diatas, dapat dilihat pada gambar 7.16 berikut ini :
Gambar 7.16 Hasil Form Transaksi Penjualan Barang
7.10 Membuat Form Pencarian
Pada pembuatan form pencarian hanya pada rincian stok barang dan transaksi
penjualan, pada rincian stok barang akan dimunculkan data stok barang minimal yang tersedia
sedangkan pada form rincian transaksi penjualan memuat informasi penjualan barang.
7.10.1 Membuat Form Rincian Stok Barang
Untuk membuat form rincian stok barang ikuti langkah berikut ini:
1. Desain Form rincian stok barang seperti pada gambar 7.17 berikut ini :
Gambar 7.17 Form Rincian Stok Barang
151
2. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.14 Pengaturan Properties Form Rincian Stok Barang
Object Properties Value
Form1 Text Form : Rincian
Stok
Form1 Name RincianStok
Form1 Start Position CenterScreen
Label1 Text Tanggal
Label2 Name LBLTanggal
TextBoxt1 Name TotalBarang
Botton1 Text Cek Stok Minimum
Botton2 Text Cetak
Botton3 Text Batal
Botton4 Text Tutup
DataGridView1 Name DGV
3. Masukkan kode berikut diatas Public Class RincianStok bertujuan untuk memanggil
driver dengan koneksi oleDB
Imports System.Data.OleDb
4. Dengan membuat prosedur AturKolom yang berfungsi untuk mengatur besar kolom,
masukkan kode berikut ini :
Sub AturKolom()
DGV.Columns(0).Width = 60
DGV.Columns(1).Width = 150
DGV.Columns(2).Width = 60
DGV.Columns(3).Width = 60
DGV.Columns(4).Width = 60
End Sub
5. Pada objek form RincianStok prosedur Actived masukkan kode sebagai berikut :
Private Sub RincianStok_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
LBLTanggal.Text = Today
End Sub
6. Pada objek form RincianStok prosedur Load masukkan kode sebagai berikut :
Private Sub RincianStok_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
152
Koneksi()
End Sub
7. Pada prosedur HitungTotal berfungsi untuk menghitung nilai total bayar pada cell data
grid, kode sebagai berikut:
Sub HitungTotal()
Dim subtot As Integer = 0
For I As Integer = 0 To DGV.Rows.Count - 1
subtot += Val(DGV.Rows(I).Cells(3).Value)
TotalBarang.Text = subtot
Next
End Sub
8. Masukkan kode berikut pada button 1.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
DA = New OleDbDataAdapter("select * from barang where
jumlahbrg<=stokminimal", CONN)
DS = New DataSet
DS.Clear()
DA.Fill(DS, "barang")
DGV.DataSource = DS.Tables("Barang")
Call AturKolom()
Call HitungTotal()
End Sub
9. Masukkan kode berikut pada button 3.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
If TotalBarang.Text = "" Then
MsgBox("klik dulu tombol Cek Stok Minimum")
Else
DGV.DataSource = DS.Tables()
TotalBarang.Text = ""
End If
End Sub
10. Masukkan kode berikut pada button 4.
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
Me.Close()
End Sub
11. Hasil dari kode program diatas, dapat dilihat pada gambar 7.18 berikut ini :
153
Gambar 7.18 Hasil Form Rincian Stok Barang
7.10.2 Membuat Form Rincian Transaksi Penjualan
Untuk membuat form rincian transaksi ikuti langkah berikut ini:
1. Desain Form rincian transaksi barang seperti pada gambar 7.19 berikut ini :
Gambar 7.19 Form Rincian Transaksi Penjualan Barang
2. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.15 Pengaturan Properties Form Rincian Transaksi Barang
Object Properties Value
Form1 Text Form : Rincian
Transaksi
Form1 Name RincianTransaksi
Form1 Start Position CenterScreen
ComboBox1 - -
DataGridView1 Name DGV
154
3. Masukkan kode berikut diatas Public Class RincianTransaksi bertujuan untuk
memanggil driver dengan koneksi oleDB
Imports System.Data.OleDb
4. Prosedur TampilFaktur berfungsi untuk menampilkan data nomor faktur pada
combobox1, masukkan kode berikut ini :
Sub TampilFaktur()
cmd = New OleDbCommand("select * from penjualan", Conn)
rd = cmd.ExecuteReader
Do While rd.Read
combobox1.Items.Add(rd.GetString(0))
Loop
End Sub
5. Prosedur TampilData berfungsi untuk menampilkan rincian tabel transaksi pada tabel
penjualan dan detail jual dan ditampilkan pada data grid, masukkan kode sebagai berikut :
Sub TampilData()
da = New OleDbDataAdapter("select
nama_barang,Harga_Jual,jumlah,subtotal from detailjual where faktur='" &
combobox1.Text & "' ", Conn)
ds = New DataSet
da.Fill(ds, "Detail")
DGV.DataSource = ds.Tables("Detail")
DGV.ReadOnly = True
CMD = New OleDbCommand("select
tanggal,item,total,dibayar,kembali,NamaPmk from penjualan,Pemakai where
faktur='" & ComboBox1.Text & "' and penjualan.KodePmk=Pemakai.KodePmk ",
CONN)
rd = cmd.ExecuteReader
rd.Read()
End Sub
6. Pada objek form RincianStok prosedur Load masukkan kode sebagai berikut :
Private Sub RincianStok_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Koneksi()
End Sub
7. Pada objek form RincianTransaksi prosedur Load masukkan kode sebagai berikut:
Private Sub RincianTransaksi_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call TampilFaktur()
155
End Sub
8. Masukkan kode pada objek combobox1 prosedur SelectedIndexChange berikut.
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Call TampilData()
End Sub
9. Hasil dari kode program diatas, dapat dilihat pada gambar 7.20 berikut ini :
Gambar 7.20 Hasil Form Rincian Transaksi Penjualan Barang
7.11 Membuat Form Menu Utama
Menu merupakan bagian utama dalam pembuatan aplikasi, pada umumnya menu
utama merupakan form utama untuk mengakses form lainnya. Pada Visual BASIC 2015
kontrol yang digunakan untuk membuat menu adalah MenuStrip. Ada 4 bagian dalam control
MenuStrip :
1. Images (Gambar)
2. Acces Keys (Tombol Akses)
3. Shortcut Keys (Tombol Pintas)
4. Check Mark (Penanda)
Gambaran pada bagian control MenuStrip dapa dilihat pada gambar 7.21 berikut.
156
Gambar 7.21 Bagian Kontrol MenuStrip MDIForm
Selain menggunakan kontrol MenuStrip dan Form MDIForm, Anda bisa
menambahhkan komponen atau kontrol untuk membuat tampilan menu semakin menarik.
Contoh komponen tambahan; CloudToolkitN6, DevComponentsDotNetBar2,
DXperienceUniversal-11.1.6, ElegantRibbonSetup-v.3.8, QDevSuiteSetup3.0.0.20 dan masih
banyak lagi.
Untuk membuat form menu utama ikuti langkah berikut ini:
1. Klik menu Project > Add Windows Form dan pilih MDI Parent Form
2. Desain form menu utama seperti pada gambar 7.22 berikut ini :
Gambar 7.22 Form Menu Utama
3. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.16 Pengaturan Properties Form Menu Utama
157
Object Properties Value
MDIForm1 Text Menu Utama
MDIForm1 Name MenuUtama
MDIForm1 Start Position CenterScreen
MDIForm1 WindowState Maximized
StatusStrip1 Name StatusStrip1
StatusStrip1 Item : Name Panel1
StatusStrip1 Item : Name Panel2
StatusStrip1 Item : Name Panel3
4. Susunlah menu sesuai pada gambar 7.23 berikut:
Menu Utama
Master Transaksi Pencarian Laporan
Barang Master
Penerimaan Rincian Stok
Pelanggan Barang Penerimaan
Pemasok Rincian Penjualan
Penjualan Penjualan
Pemakai
Gambar 7.23 Bagan Menu Utama
5. Masukkan kode berikut pada sub menu barang.
Private Sub BarangToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BarangToolStripMenuItem.Click
Barang.ShowDialog()
End Sub
6. Masukkan kode berikut pada sub menu pelanggan.
Private Sub PelangganToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PelangganToolStripMenuItem.Click
Pelanggan.ShowDialog()
End Sub
7. Masukkan kode berikut pada sub menu pemasok.
Private Sub PemasokToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PemasokToolStripMenuItem.Click
158
Pemasok.ShowDialog()
End Sub
8. Masukkan kode berikut pada sub menu pemakai.
Private Sub PemakaiToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PemakaiToolStripMenuItem.Click
Pemakai.ShowDialog()
End Sub
9. Masukkan kode berikut pada sub menu penerimaan barang.
Private Sub PenerimaanBarangToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
PenerimaanBarangToolStripMenuItem.Click
Penerimaan.ShowDialog()
End Sub
10. Masukkan kode berikut pada sub menu penjualan.
Private Sub PenjualanToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles PenjualanToolStripMenuItem.Click
Transaksi.ShowDialog()
End Sub
11. Masukkan kode berikut pada sub menu rincian stok.
Private Sub RincianStokToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
RincianStokToolStripMenuItem.Click
RincianStok.ShowDialog()
End Sub
12. Masukkan kode berikut pada sub menu rincian penjualan.
Private Sub RIncianPenjualanToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
RIncianPenjualanToolStripMenuItem.Click
RincianTransaksi.ShowDialog()
End Sub
13. Hasil dari kode program diatas, dapat dilihat pada gambar 7.24 berikut ini :
159
Gambar 7.24 Hasil Form Menu Utama
7.12 Membuat Form Login
Form login berfungsi untuk memberikan dan membatasi hak akses terhadap pengguna
aplikasi. pada form login aplikasi kasir memiliki 3 level yaitu; Administrator, User dan Kasir.
Untuk membuat form login ikuti langkah berikut ini:
1. Klik menu Project > Add Windows Form dan pada name ketikkan “Login”
2. Desain form login seperti pada gambar 7.25 berikut ini :
Gambar 7.25 Form Login
3. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.17 Pengaturan Properties Form Login
Object Properties Value
Form1 Text Login
Form1 Name Login
Form1 Start Position CenterScreen
Label1 Text Username
Label2 Text Password
TextBox1 - -
160
TextBox2 - -
TextBox2 PasswordChar *
Button1 Text Login
Button2 Text Tutup
4. Masukkan kode berikut diatas Public Class Login bertujuan untuk memanggil driver
dengan koneksi oleDB
Imports System.Data.OleDb
5. Masukkan kode berikut pada button1 atau tombol login :
Koneksi()
CMD = New OleDbCommand("select * from Pemakai where NamaPmk='" &
TextBox1.Text & "' and PassPmk='" & TextBox2.Text & "'", CONN)
rd = cmd.ExecuteReader
rd.Read()
If rd.HasRows Then
Me.Visible = False
Menuutama.Show()
Menuutama.Panel1.Text = RD.GetString(0)
Menuutama.Panel2.Text = RD.GetString(1)
Menuutama.Panel3.Text = RD.GetString(3)
If Menuutama.Panel3.Text <> "ADMINISTRATOR" Then
MenuUtama.StatusStrip1.Enabled = False
Else
MenuUtama.StatusStrip1.Enabled = True
End If
Else
MsgBox("login salah, periksan kembali user name dan password")
TextBox1.Focus()
End If
6. Masukkan kode berikut pada button2 atau tombol tutup :
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
End
End Sub
7. Masukkan kode berikut pada objek textbox1 prosedur Keypress:
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Chr(13) Then TextBox2.Focus()
End Sub
161
8. Masukkan kode berikut pada objek textbox2 prosedur Keypress:
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = Chr(13) Then Button1.Focus()
End Sub
9. Hasil dari kode program diatas, dapat dilihat pada gambar 7.26 berikut ini :
Gambar 7.26 Hasil Form Login
7.13 Membuat Form Splash Screen
Splash Screen adalah form yang ditampilkan pada awal program dijalankan. Menurut
fungsinya splash screen dibagi menjadi 3 bagian:
1. Sebagai penghibur user ketika menunggu loading data/setting program yang lama.
2. Berfungsi untuk estetika yang menujukan identitas program saja, tanpa fungsi lainnya.
3. Gabungan kedua fungsi diatas.
Untuk menambah splash screen pada Visual BASIC telah disediakan dengan model
sederhana, caranya sama seperti menambah form, untuk menambahkan sebuah splash screen
pilih menu Project > Add Windows Form > Splash Screen. Berikut tampilan splash screen
pada Visual BASIC 2015:
Gambar 7.26 Hasil Form Login
162
Pada umumnya, splash screen digunakan pada startup-nya untuk melakukan
konfigurasi kebutuhan aplikasi, kebanyakan aplikasi kecil penggunaan splash screen hanya
pada penggunaan kontrol timer dan bersifat efek bergerak (text, label, gambar, dan
sebagainya).
Untuk membuat form splash screen ikuti langkah berikut ini:
1. Klik menu Project > Add Windows Form dan pada name ketikkan “Splash”
2. Desain form splash screen seperti pada gambar 7.27 berikut ini :
Gambar 7.27 Form Splash Screen
3. Gantilah properti masing-masing komponen seperti tertera dibawah ini :
Tabel 7.17 Pengaturan Properties Form Splash Screen
Object Properties Value
Form1 Text Splash
Form1 Name Splash
Form1 Start Position CenterScreen
Form1 Form Border Style None
Form1 Background Image Gambar
Label1 - -
ProgressBar1 - -
Timer1 - -
4. Masukkan kode berikut pada objek form splash prosedur load:
Private Sub Splash_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Timer1.Start()
End Sub
163
5. Masukkan kode berikut pada objek timer1 prosedur Tick:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
If ProgressBar1.Value = 100 Then
Timer1.Stop()
Dim lanjut As New MenuUtama
lanjut.Visible = True
Me.Close()
Else
ProgressBar1.Value += 1
Label1.Text = ProgressBar1.Value
End If
End Sub
6. Hasil dari kode program diatas, dapat dilihat pada gambar 7.28 berikut ini :
Gambar 7.28 Hasil Form Splash Screen
7.14 Membuat Laporan
Dalam pembuatan aplikasi kasir dibagi menjadi 2 bagian form; laporan data master,
transaksi penerimaan barang dan transaksi penjualan. Untuk membuat laporan digunakan
crystal report 8.5 dan komponen crystal report viewer.
7.14.1 Laporan Master Barang
Untuk membuat laporan master barang ikuti langkah berikut ini:
1. Buka Software Crystal Report
2. Pada tampilan utama crystal report pilih Using the Report Expert
3. Pada tampilan Crytal Report Gallery pilih Using the Report Expert dan format Standard
4. Pada tampilan Standard Report Expert tab Data pilih Database
164
5. Pada tampilan Data Explorer pilih Database File dan klik Add
6. Pilih database pada folder project ../Bin/ Debug
7. Pilih tabel barang seperti ditunjukkan pada gambar 7.29 berikut:
Gambar 7.29 Crsytal Report Pilihan Tabel Barang
8. Pada tab Field pilih semua field barang ke Field to Display, seperti ditunjukkan pada
gambar 7.30 berikut ini:
Gambar 7.30 Crsytal Report Pilihan Field to Display
9. Lewati setiap tab hingga pada tab style ketikkan “Laporan Master Barang” pada Title
seperti ditunjukkan pada gambar 7.31 berikut.
165
Gambar 7.31 Crsytal Report Pilihan Style
10. Simpan Laporan dengan nama “LapBarang” pada direktori folder project ../Bin/Debug
11. Desain Laporan pada tab design dengan menggunakan tolls line dan box seperti
ditunjukkan pada gambar 7.32 berikut.
Gambar 7.32 Hasil Laporan Master Barang
7.14.2 Laporan Master Pelanggan
Membuat laporan master pelanggan langkah-langkahnya sama dengan membuat
laporan master barang. Simpan Laporan dengan nama “LapPelanggan” pada direktori folder
project ../Bin/Debug. Desain laporan master pelanggan pada tab design dengan menggunakan
tolls line dan box seperti ditunjukkan pada gambar 7.33 berikut.
Gambar 7.33 Hasil Laporan Master Pelanggan
166
7.14.3 Laporan Master Pemasok
Membuat laporan master pemasok langkah-langkahnya sama dengan membuat
laporan sebelumnya. Simpan Laporan dengan nama “LapPemasok” pada direktori folder
project ../Bin/Debug. Desain laporan master pemasok pada tab design dengan menggunakan
tolls line dan box seperti ditunjukkan pada gambar 7.34 berikut.
Gambar 7.34 Hasil Laporan Master Pemasok
7.14.4 Laporan Master Pemakai/ User
Membuat laporan master pemakai/ user langkah-langkahnya sama dengan membuat
laporan sebelumnya. Simpan Laporan dengan nama “LapPemakai” pada direktori folder
project ../Bin/Debug. Desain laporan master pemakai pada tab design dengan menggunakan
tolls line dan box seperti ditunjukkan pada gambar 7.35 berikut.
Gambar 7.35 Hasil Laporan Master Pemakai/User
7.14.5 Laporan Transaksi Penerimaan Barang
Laporan transaksi penerimaan barang melibatkan banyak tabel master, tabel tersebut
adalah tabel detailTerima, Barang, Penerimaan dan Pemasok. maka Buatlah query seperti
ditunjukkan pada gambar 3.36 berikut:
167
Gambar 7.36 Query Penerimaan Barang
Ada dua bentuk laporan penerimaan barang yaitu; detailpenerimaan dan laporan
penerimaan. Membuat laporan transaksi penerimaan barang langkah-langkahnya sama dengan
membuat laporan sebelumnya. Simpan Laporan dengan nama “DetailPenerimaan” pada
direktori folder project ../Bin/Debug. Desain laporan detail penerimaan barang pada tab
design dengan menggunakan tolls line dan box seperti ditunjukkan pada gambar 7.37 berikut.
Gambar 7.37 Hasil Laporan Transaksi Detail Penerimaan Barang
Membuat laporan transaksi penerimaan barang langkah-langkahnya sama dengan
membuat laporan sebelumnya. Simpan Laporan dengan nama “LapPenerimaan” pada
direktori folder project ../Bin/Debug. Desain laporan transaksi penerimaan barang pada tab
design dengan menggunakan tolls line dan box seperti ditunjukkan pada gambar 7.38 berikut.