MEMBUAT APLIKASI TOKO BUKU DENGAN VB.NET

07/03/13


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







3 komentar:

  1. Mantep Banget haha itu kalo ngerjain rumus segitu banyak tanpa liat trs di waktu 45 menit kayanya ga mungkin deh wkwkwk

    BalasHapus
  2. Terimakasih tutorial nya sangat membantu.
    Jangan lupa kunjungi alamat kami.
    My blog


    BalasHapus