com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
4. Klik OK
97
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
1. Tabel User
2. Tabel Barang
3. Tabel Customer
4. Tabel Kurir
5. Tabel Pesanan
6. Tabel DetailPesanan
7. Tabel Kiriman
8. Tabel DetailKiriman
98
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
99
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
100
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Bentuk relasi tabel dapat anda lihat seperti gambar di bawah ini. Gambar ini diambil dari hasil
relasi menggunakan crystal report. Konsep relasi pada tabel ini adalah One To Many level 3NF.
101
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Setelah dipastikan desain semua tabel dapat terhubung dengan baik, maka segera lanjutkan
dengan membuat project baru dengan nama Aplikasi Pemesanan dan pengiriman Barang.
3. Klik add
Imports System.Data.SqlClient
Module Module1
Public CONN As SqlConnection
Public DA As SqlDataAdapter
Public DS As New DataSet
Public CMD As SqlCommand
Public DR As SqlDataReader
Public STR As String
Sub Koneksi()
102
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Logika program dalam form login dalam buku semuanya hampir sama. Silakan lihat kembali logika
program login pada aplikasi pembayaran SPP.
Coding :
Imports System.Data.SqlClient
Mencari nama dan password user, jika datanya ditemukan maka tampil
menuutama dan masing-masing panel diisi dengan data user yang login
Call Koneksi()
103
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
End Class
104
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
105
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Pada bab ini dibuatkan model pengolahan data master yang berbeda dengan bab sebelumnya,
yaitu proses input, edit dan delete harus diawali dengan melakukan klik pada button TAMBAH.
Konsekuensinya pembuatan program menjadi lebih banyak karena harus mengendalikan button-
button.
Coding :
Imports System.Data.SqlClient
Sub Kosongkan()
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
ComboBox1.Text = ""
TextBox5.Clear()
End Sub
Sub DataBaru()
TextBox2.Clear()
TextBox3.Clear()
ComboBox1.Text = ""
TextBox5.Clear()
TextBox2.Focus()
End Sub
Sub Ketemu()
On Error Resume Next
TextBox2.Text = DR.Item("nama_User")
TextBox3.Text = DR.Item("Pwd_user")
ComboBox1.Text = DR.Item("Status_User")
TextBox2.Focus()
End Sub
Sub KondisiAwal()
BTNTambah.Enabled = True
BTNTutup.Enabled = True
BTNSimpan.Enabled = False
BTNEdit.Enabled = False
BTNHapus.Enabled = False
BTNBatal.Enabled = False
BTNTambah.Focus()
TextBox1.Enabled = False
TextBox2.Enabled = False
TextBox3.Enabled = False
ComboBox1.Enabled = False
End Sub
Sub KondisiSimpan()
BTNTambah.Enabled = False
BTNSimpan.Enabled = True
106
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
BTNEdit.Enabled = False
BTNHapus.Enabled = False
BTNBatal.Enabled = True
BTNTutup.Enabled = False
TextBox2.Enabled = True
TextBox3.Enabled = True
ComboBox1.Enabled = True
TextBox2.Focus()
End Sub
Sub KondisiEdiHapus()
BTNTambah.Enabled = False
BTNSimpan.Enabled = False
BTNEdit.Enabled = True
BTNHapus.Enabled = True
BTNBatal.Enabled = True
BTNTutup.Enabled = False
TextBox1.Enabled = False
TextBox2.Enabled = True
TextBox3.Enabled = True
ComboBox1.Enabled = True
TextBox2.Focus()
End Sub
Sub TampilGrid()
Call Koneksi()
DA = New SqlDataAdapter("select * from tblUser", CONN)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.ReadOnly = True
End Sub
Call Koneksi()
CMD = New SqlCommand("select * from tblUser where
kode_User='" & TextBox1.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
Call DataBaru()
107
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Call KondisiSimpan()
Else
Call Ketemu()
Call KondisiEdiHapus()
End If
End If
End Sub
108
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
CMD.ExecuteNonQuery()
Call Kosongkan()
Call TampilGrid()
Call KondisiAwal()
End If
End Sub
109
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Private Sub TextBox5_TextChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles TextBox5.TextChanged
Call Koneksi()
DA = New SqlDataAdapter("select * from tblUser where nama_User
like '%" & TextBox5.Text & "%' or status_user like '%" & TextBox5.Text
& "%'", CONN)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
End Sub
110
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
111
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
112
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
1. Customer memesan barang (cara pembayaran boleh cash atau dengan uang muka)
2. Jumlah barang yang tidak tersedia akan diberi catatan Barang Kurang sekian
3. Setelah proses entri pesanan, langsung cetak faktur pesanan agar petugas mencari
(menyiapkan barang) yang dipesan di gudang
4. Setelah semua barang pesanan disiapkan, lanjutkan ke proses pengiriman oleh kurir
5. Pemesanan yang dilakukan dengan DP, akan diminta pelunasan oleh kurir saat barang
dikirimkan (catatannya tercantum dalam faktur pengiriman barang)
6. Setelah kurir mengirimkan barang ke customer, kurir kembali lagi ke toko (gudang) untuk
validasi pengiriman sekaligus update status pemesanan menjadi SUDAH DITERIMA
CUSTOMER
113
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
7. Proses update inipun terjadi pada kolom status pembayaran dan sisa
Coding :
Imports System.Data.SqlClient
Sub Nomorotomatis()
Call Koneksi()
CMD = New SqlCommand("select * from tblPesanan where
No_Pesanan in(select max(No_Pesanan) from tblPesanan)", CONN)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
LBLNomor.Text = "PS" + Format(Now, "yyMMdd") + "01"
Else
If Microsoft.VisualBasic.Mid(DR.Item("No_Pesanan"), 3, 6)
= Format(Now, "yyMMdd") Then
LBLNomor.Text =
Microsoft.VisualBasic.Right(DR.Item("No_Pesanan"), 8) + 1
LBLNomor.Text = "PS" + LBLNomor.Text
Else
LBLNomor.Text = "PS" + Format(Now, "yyMMdd") + "01"
End If
End If
End Sub
114
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Sub TampilCustomer()
Call Koneksi()
CMD = New SqlCommand("select * from tblcustomer", CONN)
DR = CMD.ExecuteReader
Do While DR.Read
ComboBox1.Items.Add(DR.Item("kode_customer") & Space(2) &
DR.Item("nama_customer"))
Loop
End Sub
Sub HitungBarang()
Dim hitung As Integer = 0
For baris As Integer = 0 To DGV.RowCount - 1
hitung = hitung + DGV.Rows(baris).Cells(5).Value
LBLTotalBarang.Text = FormatNumber(hitung, 0)
Next
End Sub
Sub HitungHarga()
Dim hitung As Integer = 0
For baris As Integer = 0 To DGV.RowCount - 1
hitung = hitung + DGV.Rows(baris).Cells(6).Value
LBLTotalHarga.Text = FormatNumber(hitung, 0)
Next
End Sub
3. Ketik kode barang di kolom kode misal B01, jika datanya ada maka akan tampil nama barang,
harga dan stok
4. Jika data tidak ada maka akan tampil daftar nama barang berikut kodenya, silakan pilih
datanya lalu tekan enter
5. Ketik jumlah pesanan dari customer, jika stok cukup maka pesanan terpenuhi, jika stok kurang
maka akan muncul keterangan jumlah kekurangannya
115
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
6. Mengisi uang muka (DP) sifanya opsional, apakah lebih kecil dari jumlah total harga, lebih
besar ataupun sama dengan jumlah total harga akan mempengaruhi proses program
selanjutnya
7. Ketika di klik button simpan maka akan muncul pertanyaan untuk pencetakan faktur
pemesanan barang.
Coding :
Private Sub DGV_CellEndEdit(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
DGV.CellEndEdit
If e.ColumnIndex = 0 Then
Call Koneksi()
CMD = New SqlCommand("select * from tblbarang where
kode_barang='" & DGV.Rows(e.RowIndex).Cells(0).Value & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
DGV.Rows(e.RowIndex).Cells(1).Value =
DR.Item("Nama_barang")
DGV.Rows(e.RowIndex).Cells(2).Value =
DR.Item("harga_Barang")
DGV.Columns(2).DefaultCellStyle.Format = "###,###,###"
DGV.Rows(e.RowIndex).Cells(3).Value = DR.Item("stok")
DGV.CurrentCell = DGV(4, DGV.CurrentCell.RowIndex)
SendKeys.Send("{UP}")
Else
Try
MsgBox("Kode barang tidak terdaftar")
DGV.Rows(e.RowIndex).Cells(0).Value = ""
DaftarBarang.Show()
DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)
SendKeys.Send("{down}")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End If
Try
If e.ColumnIndex = 4 Then
If DGV.Rows(e.RowIndex).Cells(4).Value >
DGV.Rows(e.RowIndex).Cells(3).Value Then
DGV.Rows(e.RowIndex).Cells(5).Value =
DGV.Rows(e.RowIndex).Cells(3).Value
DGV.Rows(e.RowIndex).Cells(6).Value =
DGV.Rows(e.RowIndex).Cells(2).Value *
DGV.Rows(e.RowIndex).Cells(4).Value
DGV.Rows(e.RowIndex).Cells(7).Value = "Barang
Kurang " & DGV.Rows(e.RowIndex).Cells(4).Value -
DGV.Rows(e.RowIndex).Cells(3).Value & ""
ElseIf DGV.Rows(e.RowIndex).Cells(4).Value <=
DGV.Rows(e.RowIndex).Cells(3).Value Then
DGV.Rows(e.RowIndex).Cells(5).Value =
DGV.Rows(e.RowIndex).Cells(4).Value
116
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
DGV.Rows(e.RowIndex).Cells(6).Value =
DGV.Rows(e.RowIndex).Cells(2).Value *
DGV.Rows(e.RowIndex).Cells(4).Value
DGV.Rows(e.RowIndex).Cells(7).Value = "OK"
End If
DGV.Columns(6).DefaultCellStyle.Format = "###,###,###"
DGV.CurrentCell = DGV(0, DGV.CurrentCell.RowIndex)
Call HitungBarang()
Call HitungHarga()
End If
Catch ex As Exception
MsgBox("harus angka")
DGV.Rows(e.RowIndex).Cells(4).Value = 0
SendKeys.Send("{up}")
End Try
End Sub
DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)
Call HitungBarang()
Call HitungHarga()
End If
TXTUangMuka.Text = FormatNumber(TXTUangMuka.Text, 0)
If TXTUangMuka.Text < LBLTotalHarga.Text Then
LBLSisa.Text = FormatNumber((LBLTotalHarga.Text) -
(TXTUangMuka.Text), 0)
LBLStatusPembayaran.Text = "BELUM LUNAS"
Button1.Focus()
End If
If Val(Microsoft.VisualBasic.Str(TXTUangMuka.Text)) >
Val(Microsoft.VisualBasic.Str(LBLTotalHarga.Text)) Then
LBLSisa.Text = 0
117
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
LBLStatusPembayaran.Text = "LUNAS"
Button1.Focus()
End If
LBLStatusPesanan.Text = "BELUM DIKIRIM"
End If
End Sub
Sub Bersihkan()
ComboBox1.Text = ""
LBLTotalBarang.Text = ""
LBLTotalHarga.Text = ""
TXTUangMuka.Text = ""
LBLSisa.Text = ""
LBLStatusPembayaran.Text = ""
LBLStatusPesanan.Text = ""
DGV.Rows.Clear()
End Sub
118
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
4. Pilih kurir
5. Klik simpan
Transaksi pengiriman barang diambil dari nomor pemesanan customer sebelumnya. Jika proses ini
sudah dilakukan maka nomor pemesanan tersebut akan hilang dari combo.
Coding :
Imports System.Data.SqlClient
Sub Nomorotomatis()
Call Koneksi()
119
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Sub TampilNomorPesanan()
Call Koneksi()
CMD = New SqlCommand("select * from tblpesanan where
status_pesanan='BELUM DIKIRIM'", CONN)
DR = CMD.ExecuteReader
ComboBox1.Items.Clear()
Do While DR.Read
ComboBox1.Items.Add(DR.Item("NO_PESANAN"))
Loop
End Sub
Sub TampilKurir()
Call Koneksi()
CMD = New SqlCommand("select * from tblkurir", CONN)
DR = CMD.ExecuteReader
ComboBox2.Items.Clear()
Do While DR.Read
ComboBox2.Items.Add(DR.Item("kode_kurir"))
Loop
End Sub
120
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Call Koneksi()
CMD = New SqlCommand("SELECT * FROM tblpesanan where
no_pesanan='" & ComboBox1.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
LblTanggalPesanan.Text = DR.Item("tgl_pesanan")
LBLTotalBarang.Text = DR.Item("total_barang")
LBLTotalHarga.Text = FormatNumber(DR.Item("total_harga"),
0)
TXTUangMuka.Text = FormatNumber(DR.Item("uang_muka"), 0)
LBLSisa.Text = FormatNumber(DR.Item("sisa"), 0)
LBLStatusPembayaran.Text = DR.Item("status_pembayaran")
Call Koneksi()
DGV.Columns.Clear()
DA = New SqlDataAdapter("select
tbldetailpesanan.kode_barang as
Kode,tblbarang.Nama_Barang,tbldetailpesanan.Harga_Satuan,Jumlah,SubTot
al from tbldetailpesanan,tblbarang where
tbldetailpesanan.kode_barang=tblbarang.kode_barang and
tbldetailpesanan.no_pesanan='" & ComboBox1.Text & "'", CONN)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.Columns(1).Width = 200
DGV.ReadOnly = True
DGV.Columns(2).DefaultCellStyle.Format = "###,###,###"
DGV.Columns(2).DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleRight
DGV.Columns(4).DefaultCellStyle.Format = "###,###,###"
DGV.Columns(4).DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleRight
Else
MsgBox("Nomor pesanan tidak valid")
End If
End Sub
121
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
LBLNamaKurir.Text = DR.Item("nama_kurir")
Else
MsgBox("Kode kurir tidak valid")
End If
End Sub
Sub Bersihkan()
ComboBox1.Text = ""
ComboBox2.Text = ""
LblTanggalPesanan.Text = ""
LBLNamaKurir.Text = ""
DataCustomer.Clear()
LBLTotalBarang.Text = ""
LBLTotalHarga.Text = ""
TXTUangMuka.Text = ""
LBLSisa.Text = ""
LBLStatusPembayaran.Text = ""
DGV.Columns.Clear()
End Sub
End Class
122
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Coding :
123
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Imports System.Data.SqlClient
Sub TampilData()
Call Koneksi()
DA = New SqlDataAdapter("select
TblKurir.Nama_Kurir,tblpesanan.No_Pesanan,Total_Harga,Uang_Muka,Sisa,S
tatus_Pembayaran,tblcustomer.Nama_Customer,Alamat_Customer,tblpesanan.
status_pesanan as [Status] from
tblpesanan,tblkiriman,tblcustomer,tblkurir where status_pesanan='DALAM
PENGIRIMAN' AND tblpesanan.no_pesanan=tblkiriman.no_pesanan and
tblkiriman.kode_kurir=tblkurir.kode_kurir and
tblcustomer.kode_customer=tblpesanan.kode_customer order by 1", CONN)
DS = New DataSet
DA.Fill(DS)
DGV.DataSource = DS.Tables(0)
DGV.ReadOnly = True
Me.Text = DGV.RowCount - 1
End Sub
Call Koneksi()
Dim updateKiriman As String = "update tblpesanan set
status_pesanan='SUDAH DITERIMA
CUSTOMER',status_pembayaran='LUNAS',Sisa=0 where no_pesanan='" &
DGV.Rows(DGV.CurrentCell.RowIndex).Cells(1).Value & "'"
CMD = New SqlCommand(updateKiriman, CONN)
CMD.ExecuteNonQuery()
Call TampilData()
End Sub
End Class
124
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Coding :
125
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Coding :
Coding :
126
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Coding :
127
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
End Sub
128
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
Private Sub ListBox2_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ListBox2.SelectedIndexChanged
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.SelectionFormula = "({tblpesanan.status_pembayaran})='" &
ListBox2.Text & "'"
CRV.ReportSource = "master pesanan.rpt"
End Sub
129
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
130