APLIKASI TOKO BUKU
Desain Database
Sebelumnya membuat program aplikasi Sistem Informasi, maka terlebih
dahulu membuat
database yang nantinya akan
dikoneksikan dengan aplikasi Sistem Informasi. Dalam
pembuatan project kali ini
database yang akan dibuat diberi nama DB_TOKO_BUKU
dengan menggunakan SQL Server
2005. Dan berikut ini tabel
tabel yang akan dibuat
dalam database:
T_KARYAWAN
(NO_KTP, NAMA, ALAMAT, TELP, TMP_LAHIR,
TGL_LAHIR) tabel ini
digunakan untuk menampung data karyawan.
T_USER (ID_USER,
USERNAME, PASSWORD, NO_KTP, HAK_AKSES)
tabel ini digunakan untuk
menentukan hak akses karyawan yang ada.
T_PENJUALAN
(NO_JUAL, TANGGAL_JUAL, NO_KTP, TOTAL)
merupakan tabel parent pada
transaksi penjualan.
T_DETAIL_PENJUALAN
(NO_JUAL, NO_ISBN, JUMLAH,
HARGA_JUAL,
SUB_TOTAL) merupakan
tabel yang menyimpan detail data
transaksi penjualan.
T_BUKU (NO_ISBN,
JUDUL, PENGARANG, THN_TERBIT, PENERBIT,
STOK_AWAL,
HARGA_JUAL, NO_SUPPLIER, HPP) tabel yang
menampung data barang.
T_PEMBELIAN
(NO_BELI, TANGGAL_BELI, NO_KTP, NO_SUPPLIER,
TOTAL) merupakan tabel
parent pada transaksi pembelian.
T_DETAIL_PEMBELIAN
(NO_BELI, NO_ISBN, JUMLAH, HARGA,
SUB_TOTAL) merupakan tabel
yang menyimpan detail data transaksi
pembelian.
T_SUPPLIER (
NO_SUPPLIER, NAMA, ALAMAT, TELP) tabel yang
menampung data supplier.
Dari desain di atas, maka
struktur tabel yang dibuat pada database adalah sebagai
berikut:
T_KARYAWAN
NO FIELD TIPE DATA KETERANGAN
1 NO_KTP VARCHAR
(30) NOT NULL, PRIMARY KEY
2 NAMA VARCHAR
(255) NOT NULL
3 ALAMAT VARCHAR (255) NOT NULL
4 TELP VARCHAR (15) NOT NULL
5 TMP_LAHIR VARCHAR (50) NOT NULL
6 TGL_LAHIR DATETIME NOT NULL
T_USER
NO FIELD TIPE DATA KETERANGAN
1 ID_USER INTEGER NOT NULL
2 USERNAME VARCHAR (50) NOT NULL
3 PASSWORD VARCHAR (50) NOT NULL
4 NO_KTP VARCHAR (30) NOT NULL
5 HAK_AKSES VARCHAR (50) NOT NULL
T_BUKU
NO FIELD TIPE DATA KETERANGAN
1 NO_ISBN VARCHAR (20) NOT NULL, PRIMARY KEY
2 JUDUL VARCHAR (255) NOT NULL
3 PENGARANG VARCHAR (255) NOT NULL
4 THN_TERBIT INTEGER) NOT NULL
5 PENERBIT VARCHAR (255) NOT NULL
6 STOK_AWAL INTEGER NOT NULL
7 HARGA_JUAL MONEY NOT NULL
8 NO_SUPPLIER VARCHAR (25) NOT NULL
9 HPP MONEY NOT NULL
T_SUPPLIER
NO FIELD TIPE DATA KETERANGAN
1 NO_SUPPLIER VARCHAR (25) NOT NULL, PRIMARY KEY
2 USERNAME VARCHAR (50) NOT NULL
3 PASSWORD VARCHAR (50) NOT NULL
4 NO_KTP VARCHAR (30) NOT NULL
5 HAK_AKSES VARCHAR (50) NOT NULL
T_PEMBELIAN
NO FIELD TIPE DATA KETERANGAN
1 NO_BELI INTEGER NOT NULL,
PRIMARY KEY
2 TGL_BELI DATE NOT
NULL
3 NO_KTP VARCHAR (30) NOT NULL
4 NO_SUPPLIER VARCHAR (25) NOT NULL
5 TOTAL MONEY NOT
NULL
T_PEMBELIAN_DETAIL
NO FIELD TIPE DATA KETERANGAN
1 NO_BELI INTEGER NOT NULL
2 NO_ISBN VARCHAR (20) NOT
NULL
3 JUMLAH INTEGER
NOT
NULL
4 HARGA MONEY NOT NULL
5 SUB_TOTAL MONEY NOT NULL
T_PENJUALAN
NO FIELD TIPE DATA KETERANGAN
1 NO_JUAL INTEGER NOT NULL, PRIMARY KEY
2 TGL_JUAL DATE NOT NULL
3 NO_KTP VARCHAR (30) NOT NULL
4 TOTAL MONEY NOT NULL
T_PENJUALAN_DETAIL
NO FIELD TIPE DATA KETERANGAN
1 NO_JUAL INTEGER NOT NULL
2 NO_ISBN VARCHAR (20) NOT NULL
3 JUMLAH INTEGER NOT NULL
4 HARGA MONEY NOT NULL
5 SUB_TOTAL MONEY NOT NULL
Desain Diagram
Relasi antar Tabel
Pembuatan
Form Pendataan Data Buku
Form Data Buku ini digunakan untuk me-manage data buku yang terdapat
pada Toko Buku.
Berikut ini merupakan tampilan Form Data Buku.
Gambar
Tampilan form Data Buku
Keterangan:
Label, digunakan
untuk menampilkan teks pada aplikasi, Berada pada toolbox
Button, digunakan untuk
membuat sebuah tombol.
Text Box, adalah
komponen yang digunakan sebagai inputan.
DBGridView,
berfungsi untuk menampilkan data dari suatu tabel tertentu
Object Name Propertise Value
Label1 Text ISBN:
Label2 Text Judul:
Label3 Text
Pengarang:
Label4 Text Tahun Terbit:
Label5 Text Penerbit:
Label6 Text Jumlah:
Label7 Text HPP:
Label8 Text Harga Jual:
Label9 Text No Supplier
TextBox1 Name txt_ISBN
TextBox2 Name txt_Judul
TextBox3 Name txt_pengarang
TextBox4 Name txt_penerbit
TextBox5 Name txt_pengarang
TextBox6 Name txt_hpp
TextBox7 Name txt_hrg_jual
TextBox8 Name txt_no_supplier
TextBox9 Name Txt_Thn_terbit
Button1 Text Tambah
Button2 Text Edit
Button3 Text Hapus Beberapa
Data
Button4 Text Hapus Semua
Data
Button4 Text Selesai
DBGrid Name DBBuku
Source
Koneksi Database
Imports System.Data.SqlClient
Public Class Form3
'Load
database
Private Sub Form3_Load(ByVal sender As Object, ByVal e As
System.EventArgs)
Handles Me.Load
Dim con As New SqlConnection
Dim cmd As New SqlCommand("select * from t_buku ")
Dim ds As New DataSet()
con.ConnectionString
= "server = MAKIIN-9FA75BB6;Database =
toko_buku;integrated
security=true"
Try
con.Open()
cmd.Connection
= con
Dim dataRead As New SqlDataAdapter(cmd)
dataRead.Fill(ds,
"t_buku")
Me.DataGridView1.DataSource = ds.Tables(0)
Catch ex As Exception
MsgBox("Database disconnected")
End Try
End Sub
'kembali
ke menu utama
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles Button5.Click
Me.Hide()
End Sub
Prosedur
Simpan
Prosedur ini digunakan
untuk menyimpan data pada tabel buku. Berikut kode untuk
prosedur Simpan :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles Button1.Click
Dim cmd As New SqlCommand
Dim con As New SqlConnection
Dim var_isbn, var_judul, var_pengarang, var_th_terbit, var_penerbit,
var_stok_awal,
var_harga_jual, var_no_supplier, var_hpp As String
var_isbn =
TextBox1.Text
var_judul =
TextBox2.Text
var_pengarang
= TextBox3.Text
var_th_terbit
= TextBox4.Text
var_penerbit
= TextBox5.Text
var_stok_awal
= TextBox6.Text
var_hpp =
TextBox7.Text
var_harga_jual
= TextBox8.Text
var_no_supplier
= TextBox9.Text
con.ConnectionString
= "server = MAKIIN-9FA75BB6;Database =
toko_buku;integrated
security=true"
con.Open()
cmd.Connection
= con
cmd.CommandText
= "insert into t_buku values ('" + var_isbn + _
"','"
+ var_judul + _
"','" + var_pengarang + _
"','"
+ var_th_terbit + _
"','"
+ var_penerbit + _
"','"
+ var_stok_awal + _
"','"
+ var_harga_jual + _
"','"
+ var_no_supplier + _
"','"
+ var_hpp + "')"
cmd.ExecuteNonQuery()
MsgBox("New data wes added")
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
TextBox7.Clear()
TextBox8.Clear()
TextBox9.Clear()
'merefresh
data grid view
Form3_Load(sender,
e)
End Sub
Prosedur
Cari
Prosedur ini
digunakan untuk mencari data pada tabel buku. Berikut kode untuk prosedur
cari :
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles Button4.Click
Dim con As New SqlConnection
Dim cmd As New SqlCommand("select * from t_buku where no_isbn = '" +
TextBox1.Text
+ "'")
Dim ds As New DataSet()
Dim i As Integer
DataGridView1.Refresh()
i =
DataGridView1.CurrentRow.Index
con.ConnectionString
= "server = MAKIIN-9FA75BB6;Database =
toko_buku;integrated
security=true"
Try
con.Open()
cmd.Connection
= con
Dim dataRead As New SqlDataAdapter(cmd)
dataRead.Fill(ds,
"no_isbn")
Me.DataGridView1.DataSource = ds.Tables(0)
Try
TextBox2.Text
= DataGridView1.Item(1, i).Value
TextBox3.Text
= DataGridView1.Item(2, i).Value
TextBox4.Text
= DataGridView1.Item(3, i).Value
TextBox5.Text
= DataGridView1.Item(4, i).Value
TextBox6.Text
= DataGridView1.Item(5, i).Value
TextBox7.Text
= DataGridView1.Item(8, i).Value
TextBox8.Text =
DataGridView1.Item(6, i).Value
TextBox9.Text
= DataGridView1.Item(7, i).Value
Catch ex As Exception
MsgBox("data tak ada")
End Try
Catch ex As Exception
MsgBox("Database disconnected")
End Try
End Sub
Prosedur
Hapus
Prosedur ini
digunakan untuk menghapus data pada tabel buku. Berikut kode untuk
prosedur Tabel:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles Button2.Click
Dim conn As New SqlConnection
Dim cmd As New SqlCommand
Dim sql, var_isbn As String
conn.ConnectionString
= "server = MAKIIN-9FA75BB6;Database =
toko_buku;integrated
security=true"
Try
conn.Open()
cmd.Connection
= conn
Dim pesan As DialogResult =
MsgBox("Apakah anda yakin Menghapus
data
ini", MsgBoxStyle.YesNo)
If pesan = DialogResult.Yes Then
var_isbn =
TextBox1.Text
sql = "delete from t_buku where no_isbn= '" + var_isbn + "' "
cmd.CommandText
= sql
cmd.ExecuteNonQuery()
Else
TextBox1.Clear()
End If
Catch ex As Exception
MsgBox("cek lagi")
End Try
'memnersihkan
tampilan edit
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
TextBox7.Clear()
TextBox8.Clear()
TextBox9.Clear()
'merefresh
data grid view
Form3_Load(sender, e)
End Sub
Prosedur
Edit
Prosedur ini
digunakan untuk mengedit data pada tabel buku. Berikut kode untuk
prosedur Edit :
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles Button3.Click
Dim cmd As New SqlCommand
Dim con As New SqlConnection
Dim var_isbn, var_judul, var_pengarang, var_th_terbit, var_penerbit,
var_stok_awal,
var_harga_jual, var_no_supplier, var_hpp As String
var_isbn =
TextBox1.Text
var_judul =
TextBox2.Text
var_pengarang
= TextBox3.Text
var_th_terbit
= TextBox4.Text
var_penerbit
= TextBox5.Text
var_stok_awal
= TextBox6.Text
var_hpp =
TextBox7.Text
var_harga_jual
= TextBox8.Text
var_no_supplier
= TextBox9.Text
con.ConnectionString
= "server = MAKIIN-9FA75BB6;Database =
toko_buku;integrated
security=true"
con.Open()
cmd.Connection
= con
cmd.CommandText
= "update t_buku set no_isbn='" + var_isbn + _
"',judul='"
+ var_judul + _
"',pengarang='"
+ var_pengarang + _
"',th_terbit='"
+ var_th_terbit + _
"',penerbit='"
+ var_penerbit + _
"',stok_awal='"
+ var_stok_awal + _
"',hpp='"
+ var_hpp + _
"',harga_jual='"
+ var_harga_jual + _
"',no_supplier='"
+ var_no_supplier + _
"'
where no_isbn='" + var_isbn + "'"
cmd.ExecuteNonQuery()
MsgBox("Proses Editing Berhasil")
'memnersihkan
tampilan edit
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
TextBox7.Clear()
TextBox8.Clear()
TextBox9.Clear()
Form3_Load(sender,
e)
End Sub
End Class
Pembuatan Form
Penjualan Buku
Form ini digunakan untuk mendata
setiap transaksi penjualan yang dilakukan. Berikut
tampilan awal form Transaksi Penjualan.
Gambar
Tampilan awal form Transaksi Penjualan
Object Name Properties Value
MenuStrip1 Items Sesuai dengan yang diinginkan
Label1 TextForeColor No.Nota Red
Label2 TextForeColor Petugas Kasir Red
Label3 TextForeColor Total Belanja Blue
Label4 TextForeColor Tanggal Red
Label5 TextForeColor 0 Black
TextBox1 Name Txt_no_notajual
TextBox2 Name Txt_ptgs_kasir
DateTimePicker Name Dtp_jual
Button1 NameText Btn_Tambah Tambah
Button2 NameText Btn_Hapus Hapus
Button1 Name Text Btn_Bayar Bayar
ListView1 Name LSV_penjualan
Source
Form Penjualan
Imports System.Data
Imports System.Data.SqlClient
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Public Class
FrmPenjualan
Public brg As Integer
Public ktp As String
'Fungsi
untuk menampilkan data barang di listview barang
Private Sub getData(ByVal command As String)
Dim server As String =
"server=Nureal\sqlexpress;Database=toko_buku;integrated
security=true"
Dim konek As New SqlClient.SqlConnection
konek.ConnectionString
= server
konek.Open()
Dim cmd As New SqlClient.SqlCommand(command)
Dim da As SqlClient.SqlDataReader
cmd.Connection
= konek
da =
cmd.ExecuteReader
Dim i As Integer = 0
Do While da.Read()
lv_brg.Items.Add(da!no_isbn)
lv_brg.Items(i).SubItems.Add(da!judul)
lv_brg.Items(i).SubItems.Add(da!pengarang)
lv_brg.Items(i).SubItems.Add(da!penerbit)
lv_brg.Items(i).SubItems.Add(da!th_terbit)
Dim harga(i) As Double
harga(i) = da!harga
lv_brg.Items(i).SubItems.Add(harga(i))
lv_brg.Items(i).SubItems.Add(da!stok_awal)
i += 1
Loop
konek.Close()
konek.Dispose()
End Sub
'Fungsi
untuk membuat nota otomatis
Private Sub autonota()
Dim cmd As New SqlCommand("select * from t_penjualan order by
no_jual
desc")
Dim server, nonota As String
server =
"server=Nureal\sqlexpress;Database=toko_buku;integrated
security=true"
Dim con As New SqlClient.SqlConnection(server)
con.Open()
cmd.Connection
= con
Dim dr As SqlDataReader
dr =
cmd.ExecuteReader()
If dr.HasRows Then
dr.Read()
Dim nota As String
nota =
Val(dr.Item(0))
If Len(nota) = 1 Then
If nota = 9 Then
nonota = "0000" & Trim(Str((nota + 1)))
Else
nonota = "00000" &
Trim(Str((nota + 1)))
End If
ElseIf Len(nota) = 2 Then
If nota = 99 Then
nonota = "000" & Trim(Str((nota + 1)))
Else
nonota = "0000" & Trim(Str((nota + 1)))
End If
ElseIf Len(nota) = 3 Then
If nota = 999 Then
nonota = "00" & Trim(Str((nota + 1)))
Else
nonota = "000" & Trim(Str((nota + 1)))
End If
ElseIf Len(nota) = 4 Then
If nota = 9999 Then
nonota = "0" & Trim(Str((nota + 1)))
Else
nonota = "00" & Trim(Str((nota + 1)))
End If
ElseIf Len(nota) = 5 Then
If nota = 99999 Then
nonota =
Trim(Str((nota + 1)))
Else
nonota = "0" & Trim(Str((nota + 1)))
End If
Else
nonota =
Str((nota + 1))
End If
tbNoNotaJual.Text
= nonota
tbNoNotaJual.Enabled
= False
Else
'MsgBox("No
data available")
tbNoNotaJual.Text
= "000001"
tbNoNotaJual.Enabled
= False
End If
con.Close()
End Sub
'Fungsi
untuk mengambil data karyawan
Private Sub getKaryawan()
Dim cmd As New SqlCommand("select * from t_karyawan")
Dim server, nama As String
server = "server=Nureal\sqlexpress;Database=toko_buku;integrated
security=true"
Dim con As New SqlClient.SqlConnection(server)
con.Open()
cmd.Connection
= con
Dim dr As SqlDataReader
dr =
cmd.ExecuteReader()
If dr.HasRows Then
dr.Read()
ktp =
dr.Item(0)
nama = dr.Item(1)
tbKasirJual.Text
= nama
tbKasirJual.Enabled
= False
Else
MsgBox("No data available!")
End If
con.Close()
End Sub
'Fungsi
untuk menghitung total belanja
Private Sub hitungTot()
Dim tot As Double = 0
For x As Integer = 0 To LV_jual.Items.Count
- 1
tot +=
Val(LV_jual.Items(x).SubItems(4).Text)
Next
lblTotal.Text
= Trim(Str(tot))
End Sub
'Prosedur
form on load
Private Sub FrmPenjualan_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
Dim server As String
lblTotal.Text
= "0"
server =
"server=Nureal\sqlexpress;Database=toko_buku;integrated
security=true"
Dim con As New SqlClient.SqlConnection(server)
Try
con.Open()
Catch ex As Exception
MsgBox("Database disconnected")
Application.Exit()
End Try
If con.State = ConnectionState.Open Then
autonota()
getKaryawan()
pnlTambahJual.Hide()
pnlByarJual.Hide()
End If
con.Close()
End Sub
'Menampilkan
panel barang
Private Sub btnTambahJual_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles btnTambahJual.Click
pnlTambahJual.Show()
btnHapusJual.Enabled
= False
btnBayarJual.Enabled
= False
btnTambahBrg.Enabled
= False
lblJmlItem.Text
= "0"
tbCariBrg.Text
= ""
cbCariBrg.Text
= "Pilih Pencarian"
tbJmlbrg.Text
= ""
lv_brg.Items.Clear()
getData("select * from t_buku")
End Sub
'Keluar
panel barang
Private Sub btnCloseBrg_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnCloseBrg.Click
pnlTambahJual.Hide()
btnHapusJual.Enabled
= True
btnBayarJual.Enabled
= True
End Sub
'Keluar
form penjualan
Private Sub btnTutupJual_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs)
Me.Close()
End Sub
'Listview
barang on click untuk menyeleksi barang
Private Sub lv_brg_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles lv_brg.Click
tbSelectedBrg.Text
= lv_brg.SelectedItems(0).SubItems(0).Text
lblJmlItem.Text
= lv_brg.SelectedItems(0).SubItems(6).Text
tbJmlbrg.Text
= "1"
btnTambahBrg.Enabled
= True
End Sub
'Untuk
mencari data barang
Private Sub TextBox1_TextChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles tbCariBrg.TextChanged
Dim pil, sql As String
pil = cbCariBrg.Text
sql = "select * from t_buku"
lv_brg.Items.Clear()
If pil = "NO ISBN" Then
getData(sql
& " where no_isbn like '%" & tbCariBrg.Text & "%'")
ElseIf pil = "JUDUL" Then
getData(sql
& " where judul like '%" & tbCariBrg.Text & "%'")
ElseIf pil = "PENGARANG" Then
getData(sql
& " where pengarang like '%" & tbCariBrg.Text & "%'")
ElseIf pil = "PENERBIT" Then
getData(sql
& " where penerbit like '%" & tbCariBrg.Text & "%'")
ElseIf pil = "TAHUN" Then
getData(sql
& " where th_terbit like '%" & tbCariBrg.Text & "%'")
Else
getData(sql)
End If
End Sub
'Untuk
menambahkan barang yang dipilih ke listview jual
Private Sub btnTambahBrg_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnTambahBrg.Click
Dim c As Integer
Dim subtot As Double
c =
LV_jual.Items.Count
Dim item As Integer = Val(lblJmlItem.Text)
If tbJmlbrg.Text = "" Then
MsgBox("Anda belum mengisi jumlah barang!!!")
ElseIf IsNumeric(tbJmlbrg.Text) = False Then
MsgBox("Jumlah yang anda masukkan salah. Jumlah harus
berupa
angka!!!")
ElseIf Val(tbJmlbrg.Text) > item Then
MsgBox("Jumlah yang anda masukkan lebih dari item tersedia!!!")
Else
LV_jual.Items.Add(lv_brg.SelectedItems(0).SubItems(0).Text)
LV_jual.Items(c).SubItems.Add(lv_brg.SelectedItems(0).SubItems(1).Text)
LV_jual.Items(c).SubItems.Add(lv_brg.SelectedItems(0).SubItems(5).Text)
LV_jual.Items(c).SubItems.Add(tbJmlbrg.Text)
subtot =
Val(tbJmlbrg.Text) *
Val(lv_brg.SelectedItems(0).SubItems(5).Text)
LV_jual.Items(c).SubItems.Add(subtot)
'Menghitung
Jumlah barang
If brg = 0 Then
brg =
Val(tbJmlbrg.Text)
Else
brg +=
Val(tbJmlbrg.Text)
End If
pnlTambahJual.Hide()
hitungTot()
btnHapusJual.Enabled
= True
btnBayarJual.Enabled
= True
End If
End Sub
'Untuk menghapus barang
yang dichekclist
Private Sub btnHapusJual_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnHapusJual.Click
Dim i As Integer = LV_jual.CheckedItems.Count
Dim a As Integer
For a = 1 To i
LV_jual.CheckedItems(0).Remove()
Next a
hitungTot()
End Sub
'Menampilkan
panel pembayaran
Private Sub btnBayarJual_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnBayarJual.Click
pnlByarJual.Show()
pnlByarJual.BringToFront()
btnHapusJual.Enabled
= False
btnTambahJual.Enabled
= False
pnlTambahJual.Hide()
tbTotBrg.Text
= Trim(Str(brg))
tbTotbelanja.Text
= Trim(lblTotal.Text)
tbTotbelanja.Enabled
= False
tbTotBrg.Enabled
= False
tbBayarJual.Text
= ""
tbBayarJual.Focus()
lblnonota.Text
= tbNoNotaJual.Text
btnPrintJual.Enabled
= False
End Sub
'Keluar
panel Bayar
Private Sub btnCloseBayar_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles btnCloseBayar.Click
pnlByarJual.Hide()
btnTambahJual.Enabled
= True
btnHapusJual.Enabled
= True
End Sub
'Untuk
menghitung jumlah kembalian setelah ditekan enter
Private Sub tbBayarJual_KeyPress(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.KeyPressEventArgs)
Handles
tbBayarJual.KeyPress
If e.KeyChar = Chr(13) Then
If tbBayarJual.Text = "" Then
MsgBox("Kolom harus diisi!!!")
ElseIf IsNumeric(tbBayarJual.Text) = False Then
MsgBox("Jumlah bayar yang anda masukkan salah. Jumlah
bayar
harus berupa angka!!!")
Else
Dim tot, bayar As Double
tot =
Val(tbTotbelanja.Text)
bayar =
Val(tbBayarJual.Text)
lblKembali.Text
= Trim(Str(bayar - tot))
btnPrintJual.Enabled
= True
btnPrintJual.Select()
End If
End If
End Sub
'Menyimpan
data penjualan serta mengurangi jumlah stok barang
Private Sub btnSimpanJual_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles btnSimpanJual.Click
Dim cmd As New SqlCommand()
Dim server, noisbn, stok As String
server =
"server=Nureal\sqlexpress;Database=toko_buku;integrated
security=true"
Dim con As New SqlClient.SqlConnection(server)
con.Open()
cmd.Connection
= con
cmd.CommandText
= "Insert into t_penjualan values('" +
tbNoNotaJual.Text
+ "','" _
+
dtpJual.Text + "','" + ktp + "','" + lblTotal.Text
+ "')"
cmd.ExecuteNonQuery()
Dim x As Integer = LV_jual.Items.Count
For i As Integer = 0 To x - 1
'Mencari
no isbn dan stok awal
cmd.CommandText
= "select no_isbn,stok_awal from t_buku
where
no_isbn='" + LV_jual.Items(i).SubItems(0).Text +
"'"
Dim da(i) As SqlDataReader
da(i) =
cmd.ExecuteReader
da(i).Read()
noisbn =
da(i)!no_isbn
stok =
da(i)!stok_awal
Dim stk, kurang As Integer
stk =
Val(stok)
kurang =
Val(LV_jual.Items(i).SubItems(3).Text)
stk = stk -
kurang
'Mengurangi
stok barang
con.Close()
con.Open()
cmd.CommandText
= "update t_buku set stok_awal=" + Str(stk)
+ " where no_isbn='" + noisbn + "'"
cmd.ExecuteNonQuery()
'Masuk ke
tabel penjualan detail
cmd.CommandText
= "insert into t_penjualan_detail values('" _
+
tbNoNotaJual.Text + "','" +
LV_jual.Items(i).SubItems(0).Text
+ "','" _
+
LV_jual.Items(i).SubItems(3).Text + "','"
+
LV_jual.Items(i).SubItems(2).Text
+ "','" _
+
LV_jual.Items(i).SubItems(4).Text + "')"
cmd.ExecuteNonQuery()
Next
'MsgBox("Data
telah disimpan")
End Sub
'Menampilkan form Nota Jual
Private Sub btnPrintJual_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnPrintJual.Click
LapJual.TextBox1.Text
= lblnonota.Text
btnSimpanJual_Click(sender,
e)
LapJual.Show()
btnCloseBayar_Click(sender,
e)
LV_jual.Items.Clear()
lblTotal.Text
= "0"
autonota()
End Sub
'Menampilkan
form laporan penjualan
Private Sub LaporanToolStripMenuItem_Click(ByVal sender As
System.Object,
ByVal e As System.EventArgs) Handles
LaporanToolStripMenuItem.Click
LapPerBln.ShowDialog()
End Sub
'Keluar
form penjualan
Private Sub ExitToolStripMenuItem_Click(ByVal sender As
System.Object,
ByVal e As System.EventArgs) Handles
ExitToolStripMenuItem.Click
Me.Close()
End Sub
End Class
Tambahakan
Fungsi Berikut dibawah Public Class
Public brg As Integer
Public ktp As String
Private Sub getData(ByVal command As String)
Dim server As String = "server=KOMPUTER-17\Komputer
17;Database=toko_buku;integrated
security=true"
Dim konek As New SqlClient.SqlConnection
konek.ConnectionString
= server
konek.Open()
Dim cmd As New SqlClient.SqlCommand(command)
Dim da As SqlClient.SqlDataReader
cmd.Connection
= konek
da =
cmd.ExecuteReader
Dim i As Integer = 0
Do While da.Read()
lv_brg.Items.Add(da!no_isbn)
lv_brg.Items(i).SubItems.Add(da!judul)
lv_brg.Items(i).SubItems.Add(da!pengarang)
lv_brg.Items(i).SubItems.Add(da!penerbit)
lv_brg.Items(i).SubItems.Add(da!th_terbit)
Dim harga(i) As Double
harga(i) =
da!harga
lv_brg.Items(i).SubItems.Add(harga(i))
lv_brg.Items(i).SubItems.Add(da!stok_awal)
i += 1
Loop
konek.Close()
konek.Dispose()
End Sub
Private Sub autonota()
Dim cmd As New SqlCommand("select * from t_penjualan order by no_jual
desc")
Dim server, nonota As String
server = "server=KOMPUTER-17\Komputer
17;Database=toko_buku;integrated
security=true"
Dim con As New SqlClient.SqlConnection(server)
con.Open()
cmd.Connection
= con
Dim dr As SqlDataReader
dr =
cmd.ExecuteReader()
If dr.HasRows Then
dr.Read()
Dim nota As String
nota =
Val(dr.Item(0))
If Len(nota) = 1 Then
If nota = 9 Then
nonota = "0000" & Trim(Str((nota + 1)))
Else
nonota = "00000" &
Trim(Str((nota + 1)))
End If
ElseIf Len(nota) = 2 Then
If nota = 99 Then
nonota = "000" & Trim(Str((nota + 1)))
Else
nonota = "0000" & Trim(Str((nota + 1)))
End If
ElseIf Len(nota) = 3 Then
If nota = 999 Then
nonota = "00" & Trim(Str((nota + 1)))
Else
nonota = "000" & Trim(Str((nota + 1)))
End If
ElseIf Len(nota) = 4 Then
If nota = 9999 Then
nonota = "0" & Trim(Str((nota + 1)))
Else
nonota = "00" & Trim(Str((nota + 1)))
End If
ElseIf Len(nota) = 5 Then
If nota = 99999 Then
nonota =
Trim(Str((nota + 1)))
Else
nonota = "0" & Trim(Str((nota + 1)))
End If
Else
nonota =
Str((nota + 1))
End If
tbNoNotaJual.Text
= nonota
tbNoNotaJual.Enabled = False
'MsgBox("No
data available")
tbNoNotaJual.Text
= "000001"
tbNoNotaJual.Enabled
= False
End If
con.Close()
End Sub
Private Sub getKaryawan()
Dim cmd As New SqlCommand("select * from t_karyawan")
Dim server, nama As String
server = "server=KOMPUTER-17\Komputer
17;Database=toko_buku;integrated
security=true"
Dim con As New SqlClient.SqlConnection(server)
con.Open()
cmd.Connection
= con
Dim dr As SqlDataReader
dr =
cmd.ExecuteReader()
If dr.HasRows Then
dr.Read()
ktp =
dr.Item(0)
nama =
dr.Item(1)
tbKasirJual.Text
= nama
tbKasirJual.Enabled
= False
Else
MsgBox("No data available!")
End If
con.Close()
End Sub
Private Sub hitungTot()
Dim tot As Double = 0
For x As Integer = 0 To LV_jual.Items.Count
- 1
tot += Val(LV_jual.Items(x).SubItems(4).Text)
Next
lblTotal.Text =
Trim(Str(tot))
End Sub
Prosedur
Tambah
Prosedur ini
digunakan untuk menambah data yang diinputkan oleh user ke tabel data Penjualan
Untuk memasukkan
kode, klik 2x tombol Tambah. Berikut ini kode untuk tombol Tambah
PrivateSub btnTambahJual_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles btnTambahJual.Click
pnlTambahJual.Show()
btnHapusJual.Enabled
= False
btnBayarJual.Enabled
= False
btnTambahBrg.Enabled
= False
lblJmlItem.Text
= "0"
tbCariBrg.Text
= ""
cbCariBrg.Text
= "Pilih Pencarian"
tbJmlbrg.Text
= ""
lv_brg.Items.Clear()
getData("select * from t_buku")
EndSub
Prosedur
Hapus
Prosedur ini
digunakan untuk menghapus data yang terdapat pada tabel Data penjualan. Berikut
kode untuk prosedur
Hapus data:
PrivateSub btnHapusJual_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles btnHapusJual.Click
Dim i AsInteger = LV_jual.CheckedItems.Count
Dim a AsInteger
For a = 1 To i
LV_jual.CheckedItems(0).Remove()
Next a
hitungTot()
EndSub
Prosedur
Bayar
Prosedur ini
digunakan untuk melakukan transaksi pembayaran, Berikut kode untuk prosedur
bayar:
PrivateSub btnBayarJual_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles btnBayarJual.Click
pnlByarJual.Show()
pnlByarJual.BringToFront()
btnHapusJual.Enabled
= False
btnTambahJual.Enabled
= False
pnlTambahJual.Hide()
tbTotBrg.Text
= Trim(Str(brg))
tbTotbelanja.Text
= Trim(lblTotal.Text)
tbTotbelanja.Enabled
= False
tbTotBrg.Enabled
= False
tbBayarJual.Text
= ""
tbBayarJual.Focus()
lblnonota.Text
= tbNoNotaJual.Text
btnPrintJual.Enabled = False
EndSuB
Nice Broooooo...
BalasHapusMantep Banget haha itu kalo ngerjain rumus segitu banyak tanpa liat trs di waktu 45 menit kayanya ga mungkin deh wkwkwk
BalasHapusTerimakasih tutorial nya sangat membantu.
BalasHapusJangan lupa kunjungi alamat kami.
My blog