Membuat Aplikasi Penjualan Buku Sederhana
Langkah-langkah dalam membuat aplikasi adalah sebagai berikut :
1.
Buat project baru dengan nama
Aplikasi Penjualan
lalu simpan pada Local Disc di PC atau Laptop
Anda.
2.
Buatlah database dengan nama
JualBuku.accdb
lalu simpan kedalam folder
Aplikasi Penjualan
>
bin
>
debug
kemudian rancanglah struktur tabel seperti berikut ini :
Nama Tabel :
Jenis
Field
Type
Size
Keterangan
KodeJenis
Text
2
Primary Key (PK)
Jenis
Text
50
Nama Tabel :
Buku
Field
Type
Size
Keterangan
KodeBuku
Text
3
Primary Key (PK)
KodeJenis
Text
2
Foreign Key (FK)
Judul
Text
100
Pengarang
Text
50
Penerbit
Text
50
Jumlah
Number
Harga
Number
Deskripsi
Text
200
Nama Tabel :
Transaksi
Field
Type
Size
Keterangan
NoFaktur
Text
11
Primary Key (PK)
TglFaktur
Date/Time
Pukul
Date/Time
NamaPembeli
Text
50
NoTelp
Text
12
Total
Number
Dibayar
Number
Kembali
Number
Item
Number
Nama Tabel :
DetailTransaksi
Field
Type
Size
Keterangan
NoFaktur
Text
11
KodeBuku
Text
3
Judul
Text
150
Jumlah
Number
HargaJual
Number
Entity Relationship Diagram (ERD) Aplikasi Penjualan Buku Komputer
Gambar 1. Rancangan ERD
Rancanglah Form Menu, Form Jenis Buku, dan Form Data Buku, Form Transaksi Penjualan Buku
seperti gambar berikut :
Gambar 2. Menu Aplikasi Penjualan Buku Komputer
Tulislah koding menunya sebagai berikut :
Public Class Form1Private Sub DataJenisBukuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles DataJenisBukuToolStripMenuItem.Click Form2.Show()
MenuStrip1
StatusStrip1
GroupBox1
Private Sub DataBukuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles DataBukuToolStripMenuItem.Click Form3.Show()
End Sub
Private Sub KeluarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles KeluarToolStripMenuItem.Click
If MessageBox.Show("Yakin akan menutup aplikasi ini..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
End
End If
End Sub End Class
Gambar 3. Rancangan Form Data Jenis Buku
TextBox3
TextBox1
TextBox2
Button1
Button2
Button3
Button4
Gambar 4. Rancangan Form Data Buku
Gambar 5. Rancangan Form Transaksi Penjualan Buku
DataGridView1
TextBox2
TextBox3
TextBox4
TextBox5
TextBox8
TextBox7
TextBox9
Button5
Button4
Button3
Button2
Button1
ComboBox1
TextBox6
TextBox1
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
Button1
Button2
Button3
TextBox6
Label10
TextBox7
TextBox8
TextBox9
DataGridView1
Tambahkan sebuah module kemudian tulislah koding dibawah ini :
Imports System.Data.OleDbModule Module1
Public Conn As OleDbConnection Public da As OleDbDataAdapter Public ds As DataSet
Public cmd As OleDbCommand Public rd As OleDbDataReader Public Str As String
Public Sub Koneksi()
Str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath &
"\JualBuku.accdb"
Conn = New OleDbConnection(Str)
If Conn.State = ConnectionState.Closed Then
Conn.Open() End If
End Sub End Module
Hasil Form2 (Jenis Buku) setelah dijalankan
Gambar 6. Hasil Form2 (Jenis Buku)
Kodingnya sebagai berikut :
Imports System.Data.OleDbPublic Class Form2 Sub Kosong()
TextBox1.Clear() TextBox2.Clear() TextBox1.Focus() End Sub
Sub Isi()
TextBox2.Clear() TextBox2.Focus() End Sub
DataGridView1.Columns(0).HeaderText = "KODE JENIS"
DataGridView1.Columns(1).HeaderText = "NAMA JENIS"
End Sub
Private Sub DataGridView1_CellContentClick(ByVal sender As Object, ByVal e As
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) TextBox3.Text & "%'", Conn)
ds = New DataSet da.Fill(ds, "Dapat")
DataGridView1.ReadOnly = True
Else
MsgBox("Data tidak ditemukan") End If
End Sub End Class
Hasil Form3 (Data Buku) setelah dijalankan
Gambar 7. Hasil Form3 (Data Buku)
Kodingnya sebagai berikut :
Imports System.Data.OleDbPublic Class Form3 Sub Kosong()
TextBox1.Clear() ComboBox1.Text = ""
TextBox2.Clear() TextBox3.Clear() TextBox4.Clear() TextBox5.Clear() TextBox6.Clear() TextBox7.Clear() TextBox8.Clear() TextBox1.Focus() End Sub
Sub Isi()
ComboBox1.Text = ""
Sub TampilBuku()
DataGridView1.Columns(0).HeaderText = "KODE BARANG"
DataGridView1.Columns(1).HeaderText = "KODE JENIS"
DataGridView1.Columns(2).HeaderText = "JUDUL"
DataGridView1.Columns(3).HeaderText = "PENGARANG"
DataGridView1.Columns(4).HeaderText = "PENERBIT"
DataGridView1.Columns(5).HeaderText = "JUMLAH"
DataGridView1.Columns(6).HeaderText = "HARGA"
DataGridView1.Columns(7).HeaderText = "DESKRIPSI"
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As
Private Sub DataGridView1_CellContentClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
& TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text &
"','" & TextBox7.Text & "')"
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
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
Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress If e.KeyChar = Chr(13) Then
TextBox6.Text = UCase(TextBox6.Text) TextBox7.Focus()
End If
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button5.Click Me.Close() End Sub
Private Sub TextBox9_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox9.TextChanged
cmd = New OleDbCommand("Select * From Buku where Judul like '%" & TextBox9.Text &
"%'", Conn)
rd = cmd.ExecuteReader rd.Read()
If rd.HasRows Then
da = New OleDbDataAdapter("Select * From Buku where Judul like '%" & TextBox9.Text & "%'", Conn)
ds = New DataSet da.Fill(ds, "Dapat")
DataGridView1.DataSource = ds.Tables("Dapat") DataGridView1.ReadOnly = True
Else
MsgBox("Data tidak ditemukan") End If
End Sub
Private Sub TextBox7_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox7.KeyPress TextBox6.MaxLength = 225
If e.KeyChar = Chr(13) Then
TextBox7.Text = UCase(TextBox7.Text) Button1.Focus()
End If
End Sub
Hasil Form4 (Transaksi Penjualan Buku Komputer) setelah dijalankan
Gambar 8. Hasil Form4 (Transaksi Penjualan)
Kodingnya sebagai berikut :
Imports System.Data.OleDbPublic Class Form4
Sub Kosong()
TextBox4.Clear() TextBox5.Clear() TextBox6.Clear() TextBox7.Clear() TextBox8.Clear() TextBox4.Focus() End Sub
Sub TidakAktif()
TextBox1.Enabled = False
TextBox2.Enabled = False
TextBox3.Enabled = False
End Sub
Sub KolomBaru()
DataGridView1.Columns.Add("Kode", "KODE BUKU") DataGridView1.Columns.Add("Nama", "NAMA BUKU") DataGridView1.Columns.Add("Harga", "HARGA") DataGridView1.Columns.Add("Jumlah", "QTY") DataGridView1.Columns.Add("Total", "SUB TOTAL") Call LebarKolom()
End Sub
Sub LebarKolom()
Private Sub Otomatis()
cmd = New OleDbCommand("Select * from Transaksi where NoFaktur in (select max(NoFaktur) from Transaksi) order by NoFaktur desc", Conn)
Dim urutan As String
HitungHarga = HitungHarga + Val(DataGridView1.Rows(I).Cells(4).Value) TextBox6.Text = HitungHarga
DataGridView1.CurrentCell = DataGridView1.Rows(0).Cells(3) End If
Private Sub DataGridView1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) On Error Resume Next
If e.KeyChar = Chr(27) Then
DataGridView1.Rows.RemoveAt(DataGridView1.CurrentCell.RowIndex) Call TotalItem()
Call TotalHarga() TextBox7.Clear() TextBox8.Text = ""
End If
End Sub
Private Sub TextBox7_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox7.KeyPress If e.KeyChar = Chr(13) Then
If Val(TextBox7.Text) < Val(TextBox6.Text) Then
MsgBox("Pembayaran kurang") TextBox8.Text = ""
TextBox7.Focus() Exit Sub
ElseIf Val(TextBox7.Text) = Val(TextBox6.Text) Then
TextBox8.Text = 0 Button2.Focus() Else
TextBox8.Text = Val(TextBox7.Text) - Val(TextBox6.Text) Button2.Focus()
End If
End If
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then
e.Handled() = True
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click Call Kosong()
DataGridView1.Columns.Clear() Call KolomBaru()
DataGridView1.Focus() End Sub
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) If e.Control.GetType.ToString() =
"System.Windows.Forms.DataGridViewTextBoxEditingControl" Then
Dim c As DataGridViewTextBoxEditingControl = CType(e.Control, DataGridViewTextBoxEditingControl)
RemoveHandler c.KeyPress, AddressOf GridViewTextBox_KeyPress AddHandler c.KeyPress, AddressOf GridViewTextBox_KeyPress End If
End Sub
Private Sub GridViewTextBox_KeyPress(ByVal sender As Object, ByVal ex As
KeyPressEventArgs)
If DataGridView1.CurrentCell.ColumnIndex = 3 Then
If ((Asc(ex.KeyChar) < 48 Or Asc(ex.KeyChar) > 57) And Asc(ex.KeyChar) <> 8) Then
ex.Handled = True
End If
End If
End Sub
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 = "" Or TextBox7.Text = "" Or TextBox8.Text = ""
Then
MsgBox("Data belum lengkap, tidak ada transaksi atau pembayaran masih kosong") Exit Sub
End If
'Simpan ke tabel Transaksi
Dim SimpanTransaksi As String = "Insert into
Transaksi(NoFaktur,TglFaktur,Pukul,NamaPembeli,NoTelp,Total,Dibayar,Kembali,Item) values " & _ "('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" &
TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & TextBox7.Text & "','"
& TextBox8.Text & "','" & TextBox9.Text & "')"
cmd = New OleDbCommand(SimpanTransaksi, Conn) cmd.ExecuteNonQuery()
For baris As Integer = 0 To DataGridView1.Rows.Count - 2 'Simpan ke tabel DetailTransaksi
Dim SimpanDetailTransaksi As String = "Insert into DetailTransaksi (NoFaktur,KodeBuku,Judul,HargaJual,Jumlah,SubTotal) values " & _
"('" & TextBox1.Text & "','" & DataGridView1.Rows(baris).Cells(0).Value & "','" & DataGridView1.Rows(baris).Cells(1).Value & "','" & DataGridView1.Rows(baris).Cells(2).Value &
"','" & DataGridView1.Rows(baris).Cells(3).Value & "','" & DataGridView1.Rows(baris).Cells(4).Value & "')"
cmd = New OleDbCommand(SimpanDetailTransaksi, Conn) cmd.ExecuteNonQuery()
'Kurangi stok Buku
cmd = New OleDbCommand("select * from Buku where KodeBuku='" & DataGridView1.Rows(baris).Cells(0).Value & "'", Conn)
rd = cmd.ExecuteReader rd.Read()
If rd.HasRows Then
Dim KurangiStok As String = "update Buku set JumlahBuku= '" & rd.Item(5) - DataGridView1.Rows(baris).Cells(3).Value & "' where KodeBuku='" &
DataGridView1.Rows(baris).Cells(0).Value & "'"
cmd = New OleDbCommand(KurangiStok, Conn) cmd.ExecuteNonQuery()
End If
Next baris
DataGridView1.Columns.Clear() Call KolomBaru()
Call Otomatis() Call Kosong() End Sub
Sub kena(ByVal myGrid As DataGrid)
myGrid.CurrentCell = New DataGridCell(1, 1) End Sub
Private Sub DataGridView1_CellEndEdit1(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit If e.ColumnIndex = 0 Then
cmd = New OleDbCommand("select * from Buku where KodeBuku='" & DataGridView1.Rows(e.RowIndex).Cells(0).Value & "'", Conn)
rd = cmd.ExecuteReader DataGridView1.Rows(e.RowIndex).Cells(0).Value & "'", Conn)
rd = cmd.ExecuteReader