Anda di halaman 1dari 34

www.konsultasivb.

com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

APLIKASI PEMESANAN DAN PENGIRIMAN


BARANG - VB.NET
Sebelum membahas aplikasi pemesanan dan pengiriman barang ini, anda harus menyiapkan
database dengan cara attach atau restore seperti yang telah dibahas pada bab sebelumnya. Jika
anda ingin memulainya dari awal maka ikutilah langkah-langkah yang akan dijelaskan di bawah ini.

6.1 Membuat Database


Untuk membuat database lakukanlah langkah-langkah di bawah ini:

1. Buka sql server

2. Klik kanan databases > new database

3. Ketik nama database baru misal DBPemesanan

4. Klik OK

97
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.1 Membuat database

6.2 Membuat Tabel


Setelah membuat database, lanjutkan dengan membuat beberapa buah tabel yang diperlukan
antara lain :

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

Gambar 6.2 Membuat tabel

Struktur masing-masing tabel dapat dilihat pada gambar-gambar berikut ini:

Gambar 6.3 Tabel user

Gambar 6.4 Tabel barang

Gambar 6.5 Tabel customer

99
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.6 Tabel kurir

Gambar 6.7 Tabel pesanan

Gambar 6.8 Tabel detail pesanan

100
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.9 Tabel kiriman

Gambar 6.10 Tabel detail kiriman

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.

Gambar 6.10 Relasi tabel

6.3 Membuat Project Baru

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.

6.3.1 Memberi Nama Project

Gambar 6.11 Memberi nama project

6.3.2 Membuat Module


Setelah project terbuka, buatlah module dengan cara sebagai berikut:

1. Klik menu project

2. Pilih add module

3. Klik add

4. Lalu ketik koding berikut ini

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

STR = "data source=user-pc\sqlexpress;initial


catalog=DBPemesanan;integrated security =true"
CONN = New SqlConnection(STR)
If CONN.State = ConnectionState.Closed Then
CONN.Open()
End If
End Sub
End Module

6.4 Form login

Gambar 6.12 Form Login

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

Public Class Login

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 If
End Sub

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 If
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles Button1.Click

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

CMD = New SqlCommand("select * from tbluser where nama_user='"


& TextBox1.Text & "' and pwd_user='" & TextBox2.Text & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
MsgBox("Login gagal, Password Case Sensitive")
TextBox1.Clear()
TextBox2.Clear()
TextBox1.Focus()
Else
Me.Visible = False
MenuUtama.Show()
MenuUtama.Panel1.Text = DR.Item("kode_user")
MenuUtama.Panel2.Text = DR.Item("nama_user")
MenuUtama.Panel3.Text = DR.Item("statuS_user")

If MenuUtama.Panel3.Text = "USER" Or MenuUtama.Panel3.Text


= "OPERATOR" Then
MenuUtama.UserToolStripMenuItem.Enabled = False
Else
MenuUtama.UserToolStripMenuItem.Enabled = True
End If
End If
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles Button2.Click
End
End Sub

End Class

6.5 Form Menu Utama


Dalam menu utama terdapat objek PictureBox yang digunakan untuk menampilkan gambar
background agar tampilan aplikasi lebih menarik.

104
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.13 Menu Utama

6.6 Form User

105
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.14 Form user

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

Public Class MasterUser

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

Private Sub MasterUser_Load(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call Kosongkan()
Call TampilGrid()
Call KondisiAwal()
BTNTambah.Focus()
End Sub

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
Mencari data user, jika datanya tidak ada maka akan ditampilkan jika
data tidak ada maka dianggap data baru

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

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

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

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 <> "ADMIN" And ComboBox1.Text <>
"OPERATOR" And ComboBox1.Text <> "USER" Then
MsgBox("Status user tidak valid, pilih saja dalam
combo")
Exit Sub
End If
If BTNSimpan.Enabled = True Then
BTNSimpan.Focus()
ElseIf BTNEdit.Enabled = True Then
BTNEdit.Focus()
End If
End If
If ((e.KeyChar >= "0" And e.KeyChar <= "9") And e.KeyChar <>
vbBack) Then e.Handled = True
End Sub

Private Sub BTNTambah_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles BTNTambah.Click
BTNTambah.Enabled = False
BTNBatal.Enabled = True
TextBox1.Enabled = True
TextBox1.Focus()
End Sub

Private Sub BTNSimpan_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles BTNSimpan.Click
If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text =
"" Or ComboBox1.Text = "" Then
MsgBox("Data Belum lengkap")
Exit Sub
Else
Call Koneksi()
Menyimpan data ke tabel user

CMD = New SqlCommand("insert into tblUser values ('" &


TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','"
& ComboBox1.Text & "')", CONN)

108
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir
CMD.ExecuteNonQuery()
Call Kosongkan()
Call TampilGrid()
Call KondisiAwal()
End If
End Sub

Private Sub BTNEdit_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles BTNEdit.Click
If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text =
"" Or ComboBox1.Text = "" Then
MsgBox("Data Belum lengkap")
Exit Sub
Else
Call Koneksi()
Mengedit data user

CMD = New SqlCommand("update tblUser set Nama_User='" &


TextBox2.Text & "',Pwd_user='" & TextBox3.Text & "',Status_User='" &
ComboBox1.Text & "' where kode_User='" & TextBox1.Text & "'", CONN)
CMD.ExecuteNonQuery()
Call Kosongkan()
Call TampilGrid()
Call KondisiAwal()
End If
End Sub

Private Sub BTNHapus_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles BTNHapus.Click
If MessageBox.Show("Yakin akan dihapus...", "Peratian",
MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
Call Koneksi()
Menghapus data user

CMD = New SqlCommand("delete from tblUser where


kode_User='" & TextBox1.Text & "'", CONN)
CMD.ExecuteNonQuery()
Call Kosongkan()
Call TampilGrid()
Call KondisiAwal()
Else
Call Kosongkan()
Call KondisiAwal()
End If
End Sub

Private Sub BTNBatal_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles BTNBatal.Click
Call Kosongkan()
Call KondisiAwal()
End Sub

Private Sub BTNTutup_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles BTNTutup.Click
Me.Close()
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

Private Sub DGV_CellMouseClick(ByVal sender As Object, ByVal e As


System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles
DGV.CellMouseClick
On Error Resume Next
TextBox1.Text = DGV.Rows(e.RowIndex).Cells(0).Value
TextBox2.Text = DGV.Rows(e.RowIndex).Cells(1).Value
TextBox3.Text = DGV.Rows(e.RowIndex).Cells("Pwd_user").Value
ComboBox1.Text =
DGV.Rows(e.RowIndex).Cells("Status_User").Value
Call KondisiEdiHapus()
End Sub

Private Sub ComboBox1_LostFocus(ByVal sender As Object, ByVal e As


System.EventArgs) Handles ComboBox1.LostFocus
If ComboBox1.Text <> "ADMIN" And ComboBox1.Text <> "OPERATOR"
And ComboBox1.Text <> "USER" Then
MsgBox("Status user tidak valid, pilih saja dalam combo")
Exit Sub
End If
End Sub
End Class

6.7 Form Barang

110
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.15 Form barang

6.8 Form Customer

111
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.16 Form customer

6.9 Form Kurir

112
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.17 Form kurir

6.10 Form Pemesanan Barang


Sebelum membahas lebih jauh tentang pemesanan barang, sebaiknya kita pahami proses
bisnisnya.

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

Gambar 6.18 Transaksi pemesanan barang

Coding :

Imports System.Data.SqlClient

Public Class Pemesanan

Membuat nomor pemesanan otomatis dengan pola PSyyMMdd + nomor urut

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

Menampilkan customer di combobox1

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

Private Sub Pemesanan_Load(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call Nomorotomatis()
Call TampilCustomer()
End Sub

Menghitung jumlah barang di kolom qty pesanan

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

Menghitung total harga di kolom sub total

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

Proses entri data dalam datagrid adalah sebagai berikut :

1. Pilih tanggal transaksi

2. Pilih customer pada combobox

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

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
Menghapus baris tertentu dan menghitungkembali jumlah harga dan jumlah
barang

DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)
Call HitungBarang()
Call HitungHarga()
End If

If e.KeyChar = Chr(13) Then


TXTUangMuka.Focus()
End If
End Sub

Private Sub TxtUangMuka_KeyPress(ByVal sender As Object, ByVal e


As System.Windows.Forms.KeyPressEventArgs) Handles
TXTUangMuka.KeyPress
If e.KeyChar = Chr(13) Then

Proses pembayaran akan mempengaruhi status pesanan dan pembayaran

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 TXTUangMuka.Text = LBLTotalHarga.Text Then


LBLSisa.Text = 0
LBLStatusPembayaran.Text = "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

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub

Sub Bersihkan()
ComboBox1.Text = ""
LBLTotalBarang.Text = ""
LBLTotalHarga.Text = ""
TXTUangMuka.Text = ""
LBLSisa.Text = ""
LBLStatusPembayaran.Text = ""
LBLStatusPesanan.Text = ""
DGV.Rows.Clear()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles Button2.Click
Call Bersihkan()
End Sub
End Class

Gambar 6.19 Konfirmasi cetak faktur

118
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.20 Faktur pemesanan barang

6.11 Form Pengiriman Barang


Proses transaksi dalam form pengiriman barang adalah sebagai berikut :

1. Nomor pengiriman muncul secara otomatis dengan pola KRyyMMdd + 01

2. Pilih tanggal pengiriman

3. Pilih nomor pesanan

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.

Gambar 6.21 Transaksi pengiriman barang

Coding :

Imports System.Data.SqlClient

Public Class Pengiriman

Sub Nomorotomatis()
Call Koneksi()

119
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

CMD = New SqlCommand("select * from tblkiriman where


No_Kiriman in(select max(No_Kiriman) from tblkiriman)", CONN)
DR = CMD.ExecuteReader
DR.Read()
If Not DR.HasRows Then
LBLNomor.Text = "KR" + Format(Now, "yyMMdd") + "01"
Else
If Microsoft.VisualBasic.Mid(DR.Item("No_Kiriman"), 3, 6)
= Format(Now, "yyMMdd") Then
LBLNomor.Text =
Microsoft.VisualBasic.Right(DR.Item("No_Kiriman"), 8) + 1
LBLNomor.Text = "KR" + LBLNomor.Text
Else
LBLNomor.Text = "KR" + Format(Now, "yyMMdd") + "01"
End If
End If
End Sub

Menapilkan data pesanan yang belum dikirim

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

Menampilkan data kurir dalam combo2

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

Private Sub Pengiriman_Load(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call Nomorotomatis()
Call TampilNomorPesanan()
Call TampilKurir()
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
ComboBox1.SelectedIndexChanged

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")

Dim CariCustomer As String = DR.Item("kode_customer")


Call Koneksi()
CMD = New SqlCommand("SELECT * FROM tblcustomer where
kode_customer='" & CariCustomer & "'", CONN)
DR = CMD.ExecuteReader
DR.Read()
If DR.HasRows Then
DataCustomer.Text = DR.Item("nama_customer") &
Space(1) & DR.Item("alamat_customer") & Space(1) &
DR.Item("hp_telp_customer")
End If

Mengambil kembali data pesanan customer untuk ditampilkan dalam grid

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

Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
ComboBox2.SelectedIndexChanged
Call Koneksi()
CMD = New SqlCommand("SELECT * FROM tblkurir where
kode_kurir='" & ComboBox2.Text & "'", CONN)

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

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles Button2.Click
Call Bersihkan()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub

End Class

Gambar 6.22 Konfirmasi cetak faktur pengiriman barang

122
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.23 Faktur pengiriman barang

6.12 Form Laporan Pegiriman Oleh Kurir


Setelah transaksi pengiriman dilakukan, maka barang dan faktur siap diantar oleh kurir kepada
customer. Setelah barang dan faktur diterima oleh customer, maka kurir akan kembali ke operator
untuk melakukan konfirmasi bahwa barang sudah diterima customer dan proses tersebut
dilakukan pada form di bawah ini.

Gambar 6.24 Form laporan pengiriman barang oleh kurir

Coding :

123
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Imports System.Data.SqlClient

Public Class LaporanKurir

Menampilkan data pesanan customer

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

Private Sub LaporanKurir_Load(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles MyBase.Load
Call TampilData()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles Button1.Click

Melakukan update data pesanan yang sudah dikirimkan ke customer

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

6.13 Laporan Data Master

6.13.1 Laporan Data User

124
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.25 Laporan data user

Coding :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.ReportSource = "laporan user.rpt"
End Sub

6.13.2 Laporan Data Customer

Gambar 6.26 Laporan data customer

125
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Coding :

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button2.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.ReportSource = "laporan customer.rpt"
End Sub

6.13.3 Laporan Data Kurir

Gambar 6.27 Laporan data kurir

Coding :

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button3.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.ReportSource = "laporan kurir.rpt"
End Sub

6.13.4 Laporan Data Barang

126
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.28 Laporan data barang

Coding :

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button4.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.ReportSource = "laporan barang.rpt"
End Sub

6.14 Laporan Pemesanan Barang

127
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

Gambar 6.28 Laporan pemesanan barang

6.14.1 Laporan Harian


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.SelectionFormula = "totext({tblpesanan.tgl_pesanan})='" &
DateTimePicker1.Text & "'"
CRV.ReportSource = "master pesanan.rpt"
End Sub

6.14.2 Laporan Periodik


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.SelectionFormula = "({tblpesanan.tgl_pesanan}) in date ('"
& DateTimePicker2.Text & "') to date ('" & DateTimePicker3.Text & "')
"
CRV.ReportSource = "master pesanan.rpt"

End Sub

6.14.3 Laporan Bulanan


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.SelectionFormula = "month({tblpesanan.tgl_pesanan})=(" &
Month(DateTimePicker4.Text) & ") and year({tblpesanan.tgl_pesanan})
=(" & Year(DateTimePicker4.Text) & ") "
CRV.ReportSource = "master pesanan.rpt"
End Sub

6.14.4 Laporan Per Status Pesanan


Private Sub ListBox1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ListBox1.SelectedIndexChanged
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.SelectionFormula = "({tblpesanan.status_pesanan})='" &
ListBox1.Text & "'"
CRV.ReportSource = "master pesanan.rpt"
End Sub

6.14.5 Laporan Per Status Pembayaran

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

6.15 Laporan Pengiriman Barang

Gambar 6.37 Laporan pengirman barang

6.15.1 Laporan Harian


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.SelectionFormula = "totext({tblkiriman.tgl_kiriman})='" &
DateTimePicker1.Text & "'"
CRV.ReportSource = "master kiriman.rpt"
End Sub

6.15.2 Laporan Periodik


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()

129
www.konsultasivb.com
Pusat Kursus VB.Net & Bimbingan Tugas Akhir

CRV.SelectionFormula = "({tblkiriman.tgl_kiriman}) in date ('"


& DateTimePicker2.Text & "') to date ('" & DateTimePicker3.Text & "')
"
CRV.ReportSource = "master kiriman.rpt"
End Sub

6.15.3 Laporan Bulanan


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.SelectionFormula = "month({tblkiriman.tgl_kiriman})=(" &
Month(DateTimePicker4.Text) & ") and year({tblkiriman.tgl_kiriman})
=(" & Year(DateTimePicker4.Text) & ") "
CRV.ReportSource = "master kiriman.rpt"
End Sub

6.15.4 Laporan Status Pengiriman


Private Sub ListBox1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ListBox1.SelectedIndexChanged
CRV.ReportSource = Nothing
CRV.RefreshReport()
CRV.SelectionFormula = "({tblPesanan.status_Pesanan})='" &
ListBox1.Text & "'"
CRV.ReportSource = "master kiriman.rpt"
End Sub

6.15.5 Laporan Status Pembayaran


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 kiriman.rpt"
End Sub

130

Anda mungkin juga menyukai