APLIKASI PERSEDIAAN BARANG VB 6.0 (VERSI 2) Peminat silakan hubungi : Email : uusrusmawan71@gmail.com Facebook : konsultasivb@ymail.com (Uus Rusmawan) Phone : 0812 8438 1118 Program ini merupakan suatu ilustrasi tentang aplikasi persediaan barang yang dimulai dari pengolahan tabel master (barang, supplier, customer dan pengguna aplikasi) kemudian dilanjutkan dengan pengolahan tabel transaksi dimulai dari pengecekan stok barang minumum untuk dilaporkan ke bagian pembelian barang, penerimaan barang dari supplier, permintaan barang dari customer dan pengeluaran barang kepada customer. Setelah pengolahan data transaksi selesai maka dibuatlah laporan yang meliputi laporan tabel master dan laporan data transaksi. 3.1 Merancang Database Dan Bentuk Relasi Tabel Dalam aplikasi persediaan barang ini desain database dan relasi tabel terlihat pada gambar di bawah ini Gambar 3.1 Desain Database Dan Relasi Tabel 1
3.2 Membuat Module Tujuan dibuatnya module ini adalah untuk mempermudah mengakses database dan tabel-tabel yang diperlukan. Untuk membuat module lakukanlah langkah-langkah berikut ini : a. Klik menu project b. Pilih add module c. Klik OK d. Tulis koding berikut ini e. Simpan module Public Conn As New ADODB.Connection Public RSBarang As ADODB.Recordset Public RSSupplier As ADODB.Recordset Public RSCustomer As ADODB.Recordset Public RSDetailKeluar As ADODB.Recordset Public RSDetailMinta As ADODB.Recordset Public RSPemakai As ADODB.Recordset Public RSDetailTerima As ADODB.Recordset Public RSPenerimaan As ADODB.Recordset Public RSPengeluaran As ADODB.Recordset Public RSMintaBeli As ADODB.Recordset Public RSPermintaanUser As ADODB.Recordset Public PathData As String Public Sub Koneksi() Set Conn = New ADODB.Connection Set RSBarang = New ADODB.Recordset Set RSSupplier = New ADODB.Recordset Set RSCustomer = New ADODB.Recordset Set RSDetailKeluar = New ADODB.Recordset Set RSDetailMinta = New ADODB.Recordset Set RSPemakai = New ADODB.Recordset Set RSDetailTerima = New ADODB.Recordset Set RSPenerimaan = New ADODB.Recordset Set RSPengeluaran = New ADODB.Recordset Set RSMintaBeli = New ADODB.Recordset Set RSPermintaanUser = New ADODB.Recordset PathData = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DBPersediaan.mdb" Conn.Open PathData 3.3 Pengolahan Data Master 3.3.1 Data Barang 2
3.3.2 Data Pemakai Gambar 3.2 Form Barang 3.3.3 Data Supplier Gambar 3.3 Form Pemakai Aplikasi 3
Gambar 3.4 Form Supplier 3.3.4 Data Customer 3.4 Data Transaksi Gambar 3.5 Form Customer 4
3.4.1 Cek Stok Barang Minimal Gambar 3.6 Form Cek Stok Barang 5
3.4.2 Penerimaan Barang Dari Supplier Gambar 3.7 Laporan Stok Barang Minimum 6
.4.3 Permintaan Barang Dari Customer Gambar 3.8 Form Penerimaan Barang Dari Supplier 7
Gambar 3.9 Form Permintaan Barang Dari Customer 3.4.4 Pengeluaran Barang Kepada Customer 8
Koding : Gambar 3.10 Form Pengeluaran Barang Private Sub Form_Activate() Call Koneksi ADO.ConnectionString = PathData ADO.RecordSource = "TMPKeluarUser" ADO.Refresh Set DG.DataSource = ADO DG.Refresh TanggalKlr = Date 'tampilkan data permintaan user yang belum dikirim RSPermintaanUser.Open "select * from permintaanuser where ketkirim='belum Dikirim'", Conn Combo1.Clear Do While Not RSPermintaanUser.EOF Combo1.AddItem RSPermintaanUser!NomorMnt RSPermintaanUser.MoveNext Loop Call TabelKosong Private Sub Form_Load() Call KondisiAwal Call TabelKosong Sub TabelKosong() Call Koneksi Dim hapus As String 9
hapus = "delete * from TMPKELUARuSER" Conn.Execute hapus Private Sub CmdSimpan_Click() If Combo1 = "" Then MsgBox "Pilih nomor permintaan di combo1" Combo1.SetFocus Exit Sub Else Call Koneksi RSPermintaanUser.Open "select * from permintaanuser where nomormnt='" & Combo1 & "'", Conn If Not RSPermintaanUser.EOF Then Dim edit As String 'edit data permintaan bahwa nomor ini SUDAH DIKIRIM edit = "update permintaanuser set ketkirim='sudah Dikirim' where nomormnt='" & Combo1 & "'" Conn.Execute edit Dim Simpan As String 'simpan ke tabel pengeluaran Simpan = "insert into pengeluaran(nomorklr,tanggalklr,kodecus,nomorbon,totalmnt,totalkrm,kodepmk,ket,ketkirim) values " & _ "('" & NomorKlr & "','" & TanggalKlr & "','" & KodeCus & "','" & NomorReffUser & "','" & TotalMnt & "','" & TotalKrm & "','" & Menu.STBar.Panels(1).Text & "','" & LblKet & "','Sudah Dikirim')" Conn.Execute Simpan 'simpan ke tabel detailkeluar ADO.Recordset.MoveFirst Do While Not ADO.Recordset.EOF Dim simpan2 As String simpan2 = "insert into Detailkeluar(nomorklr,KODEBRG,stok,QTYMnt,dikirim,ket) values " & _ "('" & NomorKlr & "','" & ADO.Recordset!Kode & "','" & ADO.Recordset!stok & "','" & ADO.Recordset!qtymnt & "','" & ADO.Recordset!dikirim & "','" & ADO.Recordset!ket & "')" Conn.Execute simpan2 ADO.Recordset.MoveNext Loop 'kurangi jumlah barang ADO.Recordset.MoveFirst Do While Not ADO.Recordset.EOF If ADO.Recordset!Kode <> vbnullstring Then Call Koneksi RSBarang.Open "Select * from Barang where Kodebrg='" & ADO.Recordset!Kode & "'", Conn If Not RSBarang.EOF Then Dim KurangiStokBarang As String KurangiStokBarang = "update barang set jumlahbrg='" & RSBarang!jumlahbrg - ADO.Recordset!dikirim & "' where kodebrg='" & ADO.Recordset!Kode & "'" Conn.Execute (KurangiStokBarang) End If End If ADO.Recordset.MoveNext Loop Form_Activate Call KondisiAwal 'Call CetakPengeluaranBarang End If End If 10
Sub CetakPengeluaranBarang() CR.ReportFileName = App.Path & "\master pengeluaran.rpt" CR.WindowState = crptmaximized CR.RetrieveDataFiles CR.Action = 1 'nomor pengeluaran akan secara otomatis 'diambil dari nomor permintaan 'hanya dibedakan 2 huruf depannya saja Private Sub COMBO1_Click() NomorKlr = "KL" + Right(Combo1, 8) Call Koneksi Dim RSCari As New ADODB.Recordset 'mencari dan menampilkan data permintaan RSCari.Open "select * from permintaanuser where nomormnt='" & Combo1 & "'", Conn If Not RSCari.EOF Then TanggalMnt = RSCari!TanggalMnt NomorReffUser = RSCari!NomorReffUser TotalMnt = RSCari!TotalMnt TotalKrm = RSCari!TotalKrm LblKet = RSCari!ket 'mencari dan menampilkan data customer RSCustomer.Open "select * from customer where kodecus='" & RSCari!KodeCus & "'", Conn If Not RSCustomer.EOF Then KodeCus = RSCari!KodeCus NamaCus = RSCustomer!NamaCus PersonCus = RSCustomer!PersonCus End If End If 'jika data ditemukan, tampilkan datanya dalam grid ADO.ConnectionString = PathData ADO.RecordSource = "SELECT BARANG.KODEBRG AS KODE,NAMABRG AS NAMA,STOK,QTYMNT,DIKIRIM,KET FROM BARANG,DETAILMINTAUSER WHERE BARANG.KODEBRG=DETAILMINTAUSER.KODEBRG AND NOMORMNT='" & Combo1 & "'" ADO.Refresh Set DG.DataSource = ADO DG.Refresh Private Sub CmdBatal_Click() Call KondisiAwal Form_Activate Combo1.SetFocus Private Sub CmdTutup_Click() Unload Me Sub TutupCus() KodeCus.Enabled = False NamaCus.Enabled = False PersonCus.Enabled = False NomorReffUser.Enabled = False Sub KondisiAwal() TanggalKlr = Date Call TutupCus Call KosongkanCus TanggalMnt = "" TanggalKlr = "" 11
NomorReffUser = "" TotalMnt = "" TotalKrm = "" LblKet = "" NomorKlr = "" Combo1 = "" Sub KosongkanCus() KodeCus = "" NamaCus = "" PersonCus = "" 3.5 Pembuatan Laporan 3.5.5 Laporan Permintaan Barang Gambar 3.15 Form Laporan Transaksi 12
Gambar 3.16 Laporan Harian Permintaan Barang Dari User Gambar 3.17 Laporan Bulanan Permintaan Barang Dari User 13
3.5.6 Laporan Penerimaan Barang Koding : Gambar 3.18 Form Laporan Transaksi Penerimaan Barang Private Sub Combo4_Click() CR.SelectionFormula = "Totext({Penerimaan.Tanggaltrm})='" & CDate(Combo4) & "'" CR.ReportFileName = App.Path & "\LAP TERIMA HARIAN.rpt" CR.WindowState = crptmaximized CR.RetrieveDataFiles CR.Action = 1 Private Sub Combo6_Click() Call Koneksi RSPenerimaan.Open "select * from PENERIMAAN where month(tanggaltrm)='" & Val(Left(Combo5, 2)) & "' and year(tanggaltrm)='" & (Combo6) & "'", Conn If RSPenerimaan.EOF Then MsgBox "Data tidak ditemukan" Exit Sub Combo4.SetFocus End If CR.SelectionFormula = "Month({PENERIMAAN.TanggalTRM})=" & Val(Left(Combo5, 2)) & " and Year({PENERIMAAN.TanggalTRM})=" & Val(Combo6.Text) CR.ReportFileName = App.Path & "\LAP TERIMA BULANAN.rpt" CR.WindowState = crptmaximized CR.RetrieveDataFiles CR.Action = 1 Hasil : 14
Gambar 3.19 Laporan Harian Penerimaan Barang Dari Supplier 3.5.7 Laporan Pengeluaran Barang Gambar 3.20 Laporan Bulanan Penerimaan Barang 15
Koding : Gambar 3.21 Form Laporan Pengeluaran Barang Private Sub Combo7_Click() CR.SelectionFormula = "Totext({pengeluaran.TanggalKlr})='" & CDate(Combo7) & "'" CR.ReportFileName = App.Path & "\LAP keluar HARIAN.rpt" CR.WindowState = crptmaximized CR.RetrieveDataFiles CR.Action = 1 Private Sub Combo9_Click() Call Koneksi RSPengeluaran.Open "select * from PENGELUARAN where month(tanggalklr)='" & Val(Left(Combo8, 2)) & "' and year(tanggalklr)='" & (Combo9) & "'", Conn If RSPengeluaran.EOF Then MsgBox "Data tidak ditemukan" Exit Sub Combo4.SetFocus End If CR.SelectionFormula = "Month({PENGELUARAN.TanggalKLR})=" & Val(Left(Combo8, 2)) & " and Year({PENGELUARAN.TanggalKLR})=" & Val(Combo9.Text) CR.ReportFileName = App.Path & "\LAP KELUAR BULANAN.rpt" CR.WindowState = crptmaximized CR.RetrieveDataFiles CR.Action = 1 Hasil : 16
Gambar 3.22 Laporan Harian Pengeluaran Barang Gambar 3.23 Laporan Bulanan Pengeluaran Barang 3.6 Rincian Transaksi 17
3.6.1 Transaksi Permintaan Barang Koding : Gambar 3.24 Form Rincian Transaksi Permintaan Dan Pengeluaran Barang Private Sub Form_Load() Call Koneksi RSPermintaanUser.Open "permintaanuser", Conn List1.Clear Do While Not RSPermintaanUser.EOF List1.AddItem RSPermintaanUser!NomorMnt RSPermintaanUser.MoveNext Loop RSPengeluaran.Open "pengeluaran", Conn List2.Clear Do While Not RSPengeluaran.EOF List2.AddItem RSPengeluaran!NomorKlr RSPengeluaran.MoveNext Loop Private Sub List1_Click() Call Koneksi ADO.ConnectionString = PathData ADO.RecordSource = "select barang.kodebrg as kode,namabrg as nama,stok,qtymnt,dikirim,detailmintauser.ket from barang,detailmintauser,permintaanuser where barang.kodebrg=detailmintauser.kodebrg and permintaanuser.nomormnt=detailmintauser.nomormnt and permintaanuser.nomormnt='" & List1.Text & "'" ADO.Refresh Set DG.DataSource = ADO DG.Refresh Dim CariData As New ADODB.Recordset CariData.Open "select * from permintaanuser where nomormnt='" & List1 & "'", Conn NotaCus = CariData!NomorReffUser TanggalMnt = CariData!TanggalMnt LblKet = CariData!ket 18
RSCustomer.Open "select * from customer where kodecus='" & CariData!KodeCus & "'", Conn NamaCus = RSCustomer!NamaCus PersonCus = RSCustomer!PersonCus Dim CariQtyMnt As New ADODB.Recordset CariQtyMnt.Open "select sum(qtymnt) as KetemuQtyMnt from detailmintauser where nomormnt='" & List1 & "'", Conn TotalMnt = CariQtyMnt!ketemuQtyMnt Dim CariDikirim As New ADODB.Recordset CariDikirim.Open "select sum(dikirim) as KetemuDikirim from detailmintauser where nomormnt='" & List1 & "'", Conn TotalKrm = CariDikirim!ketemuDikirim 3.6.2 Transaksi Pengeluaran Barang Koding : Gambar 3.25 Form Rincian Transaksipermintaan Dan Pengeluaran Barang Private Sub List2_Click() Call Koneksi ADO.ConnectionString = PathData ADO.RecordSource = "select barang.kodebrg as kode,namabrg as nama,stok,qtymnt,dikirim,detailkeluar.ket from barang,detailkeluar,pengeluaran where barang.kodebrg=detailkeluar.kodebrg and pengeluaran.nomorklr=detailkeluar.nomorklr and pengeluaran.nomorklr='" & List2.Text & "'" ADO.Refresh Set DG.DataSource = ADO DG.Refresh Dim CariData As New ADODB.Recordset CariData.Open "select * from pengeluaran where nomorklr='" & List2 & "'", Conn NotaCus = CariData!nomorbon TanggalMnt = CariData!TanggalKlr LblKet = CariData!ket RSCustomer.Open "select * from customer where kodecus='" & CariData!KodeCus & "'", Conn NamaCus = RSCustomer!NamaCus 19
PersonCus = RSCustomer!PersonCus Dim CariQtyMnt As New ADODB.Recordset CariQtyMnt.Open "select sum(qtymnt) as KetemuQtyMnt from detailkeluar where nomorklr='" & List2 & "'", Conn TotalMnt = CariQtyMnt!ketemuQtyMnt Dim CariDikirim As New ADODB.Recordset CariDikirim.Open "select sum(dikirim) as KetemuDikirim from detailkeluar where nomorklr='" & List2 & "'", Conn TotalKrm = CariDikirim!ketemuDikirim 3.6.3 Rincian Stok Barang Per Tanggal Gambar 3.26 Form Laporan Stok Barang Per Tanggal Terima Hasil cetakan : 20
Gambar 3.27 Laporan Stok Barang Per Tanggal Gambar 3.28 Form Rincian Stok Barang Per Tanggal Keluar Hasil : 21
Gambar 3.29 Laporan Stok Barang Per Tanggal Keluar Gambar 3.30 Form Rincian Stok Barang Per Tanggal Masuk Dan Tanggal Keluar 22
Gambar 3.31 Laporan Stok Barang Per Tanggal Masuk Dan Tanggal Keluar 23