www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
APLIKASI PEMBELIAN BARANG - VB.Net Peminat silakan hubungi : Email :
[email protected] Facebook :
[email protected] (Uus Rusmawan) Phone : 0812 8438 1118 Membuat Project Baru Tahapan pertama dalam pembuatan aplikasi pembelian barang ini adalah membuat project baru dengan langkah sebagai berikut: 1.
Buka visual studio 2008
2.
Klik create project
Memberi Nama Project
1
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Setelah membuat project baru dan menyimpannya di posisi tertentu, maka akan terbentuk folder project secara otomatis yang di dalamnya terdapat folder ... >> BIN>> DEBUG. Folder inilah yang akan dijadikan tempat menyimpan database. Membuat Database Dan Tabel Langkah selanjutnya adalah membuat database yang pada umumnya dilakukan dengan cara sebagai berikut: 1.
Buka database access 2003. Jika anda menginstal beberapa versi office, misalnya office 2003 dan office 2007, maka tampilan mungkin akan mengikuti versi office 2007
2.
Buatlah sebuah database yang baru kemudian tulis nama database dan simpan di posisi DEBUG project anda
3.
Kemudian buatlah tabel barang dengan cara klik menu Create >> Table >> Klik kanan table1 >> Design View dan tulis nama tabel
Menyimpan tabel barang 4.
Selanjutnya buatlah beberapa tabel dengan struktur berikut ini :
Tabel barang
Tabel user 2
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Tabel supplier
Tabel perusahaan
Tabel pembelian
Tabel detail
3
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Bentuk Relasi Tabel Bentuk relasi tabel dapat dilihat pada ilustrasi di bawah ini. Gambar ini diambil dari hasil relasi pada crystal report.
Relasi tabel Membuat Module Koneksi Database
Membuat module Imports System.Data.OleDb Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Module Module1 'mendefinisikan variabel untuk koneksi dan query 4
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Public Public Public Public Public
Conn As OleDbConnection DA As OleDbDataAdapter DS As DataSet CMD As OleDbCommand DR As OleDbDataReader
'mendefinisikan variabel agar laporan dapat dipanggil dengan aman tanpa peduli posisi folder Public cryRpt As New ReportDocument Public crtableLogoninfos As New TableLogOnInfos Public crtableLogoninfo As New TableLogOnInfo Public crConnectionInfo As New ConnectionInfo Public CrTables As Tables Public Sub seting_laporan() With crConnectionInfo .ServerName = (Application.StartupPath.ToString & "\database.mdb") .DatabaseName = (Application.StartupPath.ToString & "\database.mdb") .UserID = "" .Password = "" End With CrTables = cryRpt.Database.Tables For Each CrTable In CrTables crtableLogoninfo = CrTable.LogOnInfo crtableLogoninfo.ConnectionInfo = crConnectionInfo CrTable.ApplyLogOnInfo(crtableLogoninfo) Next End Sub Public Sub Koneksi() Try 'string koneksi untuk database access 2003 Conn = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=database.mdb") Conn.Open() Catch ex As Exception MsgBox(ex.Message) End End Try
5
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi End Sub End Module jika penulisan coding anda mengalami error, maka anda harus tambahkan references dengan cara sebagai berkut : 1.
Klik menu project >> Pilih add reference
2.
Pilih crystalldecisions.crystalreport.engine >> ok
3.
Lakukan hal yang sama untuk crystalldecisions.share >> ok
Menambah reference
Form login Logika program dalam form login adalah sebagai berikut : 1.
Setelah mengisi nama user lalu menekan enter maka kursor pindah ke password
2.
Setelah mengisi password lalu menekan enter maka kursor pindah ke button Login
3.
Pada saat Login di klik maka cari nama user dan password di tabel user
6
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 4.
Jika data tidak ditemukan maka munculkan pesan “password salah”
5.
Jika data ditemukan, maka form login disembunyikan dan menu utama ditampilkan
6.
Pada Menu utama panel1 tampilkan kode user, di panel2 tampilkan nama user, di panel3 tampilkan status user
7.
jika panel3 di menu utama statusnya USER atau OPERATOR, maka matikan menu user
Catatan : Sebelumnya menu utama harus dibuat terlebih dahulu dengan menambahkan MenuStrip dan StatusStrip. Pembahasan tentang hal dapat dilihat dalam video tutorial.
Form menu utama Form User Logika dan proses program dalam form User adalah sebagai berikut : 1.
kode user dibuat secara otomatis dengan pola “USR01” dan seterusnya
2.
Anda cukup mengetik nama user, password dan memilih statusnya
7
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 3.
Pada saat button simpan di klik maka, program akan mencari kode tersebut ke dalam tabel user
4.
Jika kodenya tidak ada maka data tersebut akan disimpan sebagai data baru (proses Insert)
5.
Jika kode tersebut ada maka data tersebut akan diedit (proses update)
6.
Proses edit dan hapus cukup dengan memilih data user dalam grid maka data akan masuk ke masing-masing textbox atau combo, kemudian lakukan proses edit atau hapus sesuai kebutuhan.
Form user Form Barang Logika dan proses program dalam form barang adalah sebagai berikut : 1.
Kode barang dibuat secara otomatis dengan pola “B0001” dan seterusnya
2.
Anda cukup mengetik nama barang, satuan dan seterusnya
3.
Pada saat button simpan di klik maka, program akan mencari kode tersebut ke dalam tabel barang
4.
Jika kodenya tidak ada maka data tersebut akan disimpan sebagai data baru (proses Insert)
5.
Jika kode tersebut ada maka data tersebut akan diedit (proses update) 8
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi 6.
Proses edit dan hapus cukup dengan memilih data user dalam grid maka data akan masuk ke masing-masing textbox atau combo, kemudian lakukan proses edit atau hapus sesuai kebutuhan.
Form Barang Form Supplier Proses program dalam pengolahan data supplier sama dengan data user dan barang
9
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Form supplier Form Profil Perusahaan Tujuan dibuatnya form perusahaan ini adalah agar header dalam laporan dapat secara dinamis berubah sesuai dengan isi data dalam tabel tersebut.
Form profil perusahaan
10
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Transaksi Pembelian Logika dan proses program dalam transaksi pembelian adalah sebagai berikut : 1.
Nomor pembelian tampil secara otomatis dengan pola “F0001”
2.
Tanggal diambil dari sistem komputer
3.
Supplier dipilih dari listbox di kanan atas
4.
Kode barang dipilih dari listbox di kanan. Jika data barang sudah terlalu banyak maka silakan ketik nama barang di kotak cari barang, maka data barang akan difilter
5.
Jumlah barang diisi secara manual dan akan menghasilkan jumlah total di sebelah kanannya
6.
Secara otomatis jumlah barang, grand total dan ppn tampil setelah mengisi jumlah barang dalam grid
7.
Diskon dilakukan secara manual dalam bentuk jumlah nominal uang dan secara otomatis mempengaruhi total harga
8.
Pembayaran dilakukan secara manual dan menghasilkan jumlah kembali
Form transaksi pembelian
Imports System.Data.OleDb 11
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Public Class TransaksiPembelian Private Sub TransaksiPembelian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call Koneksi() Call Bersihkan() Call FakturOtomatis() Label4.Text = Today 'menampilkan kode dan nama supplier dalam listbox1 CMD = New OleDbCommand("select * from tblSupplier", Conn) DR = CMD.ExecuteReader ListBox1.Items.Clear() Do While DR.Read ListBox1.Items.Add(DR.Item(0) & Space(2) & DR.Item(1)) Loop 'menampilkan kode dan nama barang dalam listbox2 CMD = New OleDbCommand("select * from tblbarang", Conn) DR = CMD.ExecuteReader ListBox2.Items.Clear() Do While DR.Read ListBox2.Items.Add(DR.Item(0) & Space(2) & DR.Item(1)) Loop End Sub Private Sub DGV_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DGV.KeyPress On Error Resume Next 'jika menekan escape maka hapus data di baris tersebut If e.KeyChar = Chr(27) Then DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex) Call Hitungtransaksi() End If 'jika menekan enter maka pindahkan kursor ke pembayaran If e.KeyChar = Chr(13) Then TextBox1.Focus() End If
12
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi End Sub Sub Bersihkan() DGV.Rows.Clear() Label6.Text = 0 Label8.Text = 0 Label10.Text = 0 Label15.Text = 0 Label16.Text = 0 TextBox1.Text = 0 TextBox2.Text = 0 TextBox3.Clear() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() 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 TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress 'hanya boleh diisi data angka 0 - 9 If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled = True If e.KeyChar = Chr(13) Then Label15.Text = Val(Microsoft.VisualBasic.Str(Label8.Text)) + Val(Microsoft.VisualBasic.Str(Label10.Text)) Label15.Text = FormatNumber(Label15.Text, 0) TextBox1.Text = FormatNumber(TextBox1.Text, 0) Label15.Text = Val(Microsoft.VisualBasic.Str(Label15.Text)) Val(Microsoft.VisualBasic.Str(TextBox1.Text)) Label15.Text = FormatNumber(Label15.Text, 0) TextBox2.Focus() End If
13
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi End Sub End Class Pesan ini muncul sesaat setelah melakukan klik pada button “Simpan”.
Msgbox pencetakan faktur Sesaat setelah klik pilihan YES, maka akan tampil faktur pembelian dengan bentuk seperti gambar di bawah ini.
Bukti Pembelian Laporan Master Tahapan pembuatan laporan dengan crystal report telah dibahas pada bab sebelumnya, untuk itu silakan dipelajari kembali.
14
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Laporan Data User Langkah – langkah pembuatan laporan data user dpat anda lihat pada video tutorial dalam buku ini. Sebelum memanggil laporan data user buatlah sebuah form yang terdiri dari empat buah button dan satu buah Crystal Report Viewer. adapun bentuk laporan data user terlihat pada gambar di bawah ini.
Laporan data user Cara memanggil laporan data user dilakukan dengan membuat coding berikut ini. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click cryRpt.Load("LAPORAN User.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
15
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Laporan Data Barang Langkah – langkah pembuatan laporan data barang dpat anda lihat pada video tutorial dalam buku ini. Adapun bentuk laporan data barang terlihat pada gambar di bawah ini.
Laporan data barang Untuk memaanggil laporan data barang diakukan dengan membuat coding berikut ini. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click cryRpt.Load("LAPORAN BARANG.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
Laporan Data Supplier Langkah – langkah pembuatan laporan data supplier dpat anda lihat pada video tutorial dalam buku ini. Adapun bentuk laporan data supplier terlihat pada gambar di bawah ini.
16
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Laporan data supplier Adapun coding untuk memanggil laporan data supplier dilakukan dengan cara di bawah ini. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click cryRpt.Load("LAPORAN Supplier.rpt") Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub Laporan Pembelian Tahapan pembuatan laporan dimulai dengan mendesain bentuk-bentuk laporan yang diperlukan, silakan gunakan Ms. Word atau Ms. Excel sebagai model awalnya atau bahkan dengan coretan tangan pada lembaran kertas kosong, kemudian masing-masing laporan tersebut diprediksi tabel apa yang terlibat di dalamnya. Setelah desain selesai dan prediksi tabel-tabel yang diperlukan diketahui, maka mulailah membuat laporan dengan Crystal report. Laporan Harian Sebelum memanggil laporan data pembelian, buatlah sebuah form seperti gambar di bawah ini.
17
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Laporan harian Laporan Periodik Laporan periodik yang dimaksud disini adalah laporan yang dipilih mulai dari tanggal awal hingga tanggal akhir.
18
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi
Laporan mingguan Coding yang digunakan untuk memanggil laporan periodik adalah sebagai berikut: Private Sub ComboBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox3.SelectedIndexChanged If ComboBox2.Text = "" Then MsgBox("Tanggal awal harus diisi") Exit Sub End If Formula untuk memanggil laporan mingguan (periodik) CRV.SelectionFormula = "{tblPembelian.TANGGAL} in date ('" & ComboBox2.Text & "') to date ('" & ComboBox3.Text & "')" cryRpt.Load("laporan mingguan.rpt") Call seting_laporan() CRV.ReportSource = cryRpt
19
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi CRV.RefreshReport() End Sub
Laporan Bulanan Bentuk laporan bulanan dapat anda lihat pada gambar di bawah ini.
Laporan Bulanan Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Formula untuk memanggil laporan bulanan CRV.SelectionFormula = "month({tblPembelian.TANGGAL}) = (" & Month(DateTimePicker1.Text) & ") and year({tblPembelian.TANGGAL}) = (" & Year(DateTimePicker1.Text) & ")" cryRpt.Load("LAPORAN bulanan.rpt")
20
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
Laporan grafik Laporan grafik dapat dikombinasikan dengan formula sesuai kebutuhan. Private Sub ComboBox5_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox5.SelectedIndexChanged If ComboBox4.Text = "" Then MsgBox("Tanggal awal harus diisi") Exit Sub End If CRV.SelectionFormula = "{tblPembelian.TANGGAL} in date ('" & ComboBox4.Text & "') to date ('" & ComboBox5.Text & "')" cryRpt.Load("grafik.rpt") 21
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Call seting_laporan() CRV.ReportSource = cryRpt CRV.RefreshReport() End Sub
Jejak Transaksi Pembelian Pembuatan jejak transaksi pembelian diawali dengan membuat form dengan bentuk seperti gambar di bawah ini.
Form jejak transaksi pembelian Imports System.Data.OleDb Public Class RincianPembelian Sub Bersihkan() DGV.Columns.Clear() Label6.Text = 0 Label8.Text = 0 Label10.Text = 0
22
www.konsultasivb.com Pusat Kursus VB 6.0 - VB.Net - Bimbingan Tugas Akhir & Skripsi Label15.Text = 0 Label16.Text = 0 TextBox1.Text = 0 TextBox2.Text = 0 End Sub Private Sub RincianPembelian_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call Koneksi() Call Bersihkan() CMD = New OleDbCommand("select no_faktur from tblPembelian", Conn) DR = CMD.ExecuteReader ListBox1.Items.Clear() Do While DR.Read ListBox1.Items.Add(DR.Item(0)) Loop End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged DA = New OleDbDataAdapter("select tbldetail.kode_barang as [Kode Barang],tblbarang.nama_barang as [Nama Barang],tbldetail.harga_BELI as Harga,Qty,Total from tblbarang,tbldetail where tbldetail.kode_barang=tblbarang.kode_barang and tbldetail.no_faktur='" & ListBox1.Text & "'", Conn) DS = New DataSet DA.Fill(DS) DGV.DataSource = DS.Tables(0) DGV.ReadOnly = True End Sub
23