www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
APLIKASI PEMESANAN DAN PENGIRIMAN BARANG - SQL SERVER Peminat silakan hubungi : Email :
[email protected] Facebook :
[email protected] (Uus Rusmawan) Phone : 0812 8438 1118 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. Membuat Database
Membuat database Membuat Tabel
Membuat tabel
1
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Tabel user
Tabel barang
Tabel customer
Tabel kurir
2
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Tabel pesanan
Tabel detail pesanan
Tabel kiriman
3
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
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.
Relasi tabel Membuat Module 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
4
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Public STR As String Sub Koneksi() 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
Form Login
5
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Menu Utama
6
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Form user
7
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Form barang
8
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Form customer
9
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Form kurir 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”
10
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 7.
Proses update inipun terjadi pada kolom status pembayaran dan sisa
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
11
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi LBLNomor.Text = "PS" + Format(Now, "yyMMdd") + "01" End If End If End Sub Menampilkan customer di combobox1 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 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
12
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 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
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_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
13
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 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 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
14
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Call Bersihkan() End Sub End Class
Konfirmasi cetak faktur
Faktur pemesanan barang 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
15
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Transaksi pengiriman barang diambil dari nomor pemesanan customer sebelumnya. Jika proses ini sudah dilakukan maka nomor pemesanan tersebut akan hilang dari combo.
Transaksi pengiriman barang Coding : Imports System.Data.SqlClient Public Class Pengiriman Sub Nomorotomatis() Call Koneksi() 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
16
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 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() 17
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 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) 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 End Class
Faktur pengiriman barang
Laporan Pemesanan Barang 18
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Laporan pemesanan barang
Laporan harian
Laporan periodik
19
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Laporan bulanan
Laporan pemesanan belum dikirim
Laporan pemesanan dalam pengiriman
Laporan pemesanan sudah dikirim
20
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Laporan pembayaran belum lunas
Laporan pesanan sudah diterima customer
Laporan pengirman barang
21
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 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 = "({tblkiriman.tgl_kiriman}) in date ('" & DateTimePicker2.Text & "') to date ('" & DateTimePicker3.Text & "') " CRV.ReportSource = "master kiriman.rpt" End Sub 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 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
22
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 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
23