P. 1
Program Aplikasi Stok Barang Plus Report

Program Aplikasi Stok Barang Plus Report

4.0

|Views: 15,782|Likes:
Dipublikasikan oleh Eko Sugiharto
Tutorial sederhana pembuatan aplikasi database menggunakan Visual Basic 6.0 - Ms. Access disertai Data Report. Studi kasus Program Aplikasi Stok Barang.
Tutorial sederhana pembuatan aplikasi database menggunakan Visual Basic 6.0 - Ms. Access disertai Data Report. Studi kasus Program Aplikasi Stok Barang.

More info:

Published by: Eko Sugiharto on Jan 09, 2012
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/18/2015

pdf

text

original

Program Aplikasi Persediaan Barang

Oleh : Eko Sugiharto, S.Kom. Buatlah database dan beberapa tabel menggunakan program Microsoft Access sesuai dengan ketentuan berikut ini : Nama database : database.mdb Daftar tabel 1. Nama Tabel : Barang Field Name *Kode_Brg Nama_Brg Satuan Stok 2. Nama Tabel : Supplier Field Name *Kode_Supp Nama_Supp Alamat Kota Telepon 3. Nama Tabel : Pembelian Field Name *No_Faktur Tanggal Kode_Supp Nama_Supp Total 4. Nama Tabel : Detail_Beli Field Name No_Faktur Kode_Brg Nama_Brg Jumlah Keterangan : Tanpa Primary Key 5. Nama Tabel : Pengeluaran Field Name *No_Keluar Tanggal Total 6. Nama Tabel : Detail_Keluar Field Name No_Keluar Kode_Brg Nama_Brg Stok Jumlah Keterangan : Tanpa Primary Key 7. Nama Tabel : Admin Field Name *Username Password

Data Type (Length) Text(10) Text(30) Text(20) Number(Integer)

Data Type (Length) Text(10) Text(30) Text(150) Text(30) Text(20)

Data Type (Length) Text(10) Date Text(10) Text(30) Number(Integer)

Data Type (Length) Text(10) Text(10) Text(30) Number(Integer)

Data Type (Length) Text(10) Date Number(Integer)

Data Type (Length) Text(10) Text(10) Text(30) Number(Integer) Number(Integer)

Data Type (Length) Text(16) Text(16)

Eko Sugiharto, S.Kom

1

Setelah pembuatan database dan tabel menggunakan Microsoft Access selesai, selanjutnya ikuti langkah-langkah berikut ini : 1. Aktifkan Microsoft Visual Basic 6.0 2. Kemudian klik Project – References untuk menambahkan Reference Microsoft ActiveX Data Objects 2.0 Library.

3.

Pilih Microsoft ActiveX Data Objects 2.0 Library pada kotak dialog References

4.

Tambahkan Module untuk menuliskan deklarasi variabel global dan procedure untuk koneksi database

Eko Sugiharto, S.Kom

2

5.

Ketik kode program sesuai contoh berikut ini :
Explicit KonekDB As ADODB.Connection Rs_Barang As New ADODB.Recordset Rs_Supplier As New ADODB.Recordset Rs_Beli As New ADODB.Recordset Rs_Keluar As New ADODB.Recordset

Option Public Public Public Public Public

'Deklarasi Variabel Public strKonekDB As String Public SQL As String Public Sub BukaDatabase() Set KonekDB = New ADODB.Connection strKonekDB = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Source=" & App.Path + "\database.mdb" 'Untuk membuka koneksi On Error Resume Next If KonekDB.State = adStateOpen Then KonekDB.Close Set KonekDB = New ADODB.Connection Else KonekDB.Open strKonekDB End If 'Periksa status koneksi If Err.Number <> 0 Then MsgBox "Koneksi Database vbInformation, "Informasi" End Else 'Koneksi Database Sukses End If End Sub Security Info=False;Data

Gagal,

Silakan

Periksa

Kembali..!!",

vbOKOnly

+

6. 7.

Simpan Module tersebut dengan nama Config Tambahkan komponen Microsoft FlexGrid Control 6.0 dengan cara klik kanan pada area Toolbox kemudian pilih Components

Eko Sugiharto, S.Kom

3

8.

Rancanglah form Data Barang dengan menambahkan 4 Label, 3 TextBox, 1 ComboBox, 1 Frame, 4 CommandButton dan 1 MsFlexGrid seperti contoh berikut ini:

9.

Kemudian atur properti masing-masing objek seperti tertera pada tabel berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmBarang Caption Data Barang Label1 Caption Kode Barang Label2 Caption Nama Barang Label3 Caption Satuan Label4 Caption Stok Text1 Name txtKode Text (Kosongkan) Text2 Name txtNama Text (Kosongkan) Text3 Name txtStok Text (Kosongkan) Combo1 Name cbSatuan Text Kosongkan Frame1 Caption Proses Command1 Name cmdInput Caption &Input Command2 Name cmdEdit Caption &Edit Command3 Name cmdHapus Caption &Hapus Command4 Name cmdTutup Caption &Tutup MsFlexGrid1 Name GridData

Eko Sugiharto, S.Kom

4

10. Sehingga tampilan akhirnya menjadi seperti berikut ini :

11. Kemudian tambahkan kode program sesuai contoh berikut ini :
Dim GridBaris As Byte Sub NonAktif() txtKode.Enabled = False txtNama.Enabled = False cbSatuan.Enabled = False txtStok.Enabled = False cmdEdit.Enabled = False cmdHapus.Enabled = False cmdInput.Enabled = True cmdInput.Caption = "&Input" cmdTutup.Caption = "&Tutup" End Sub Sub Aktif() txtKode.Enabled = True txtNama.Enabled = True cbSatuan.Enabled = True txtStok.Enabled = True End Sub Sub Kosong() txtKode.Text = "" txtNama.Text = "" cbSatuan.Text = "" txtStok.Text = "" End Sub Private Sub cmdEdit_Click() If MsgBox("Apakah Anda yakin mau mengedit data ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then If txtNama.Text = "" Then MsgBox "Nama Barang tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtNama.SetFocus ElseIf cbSatuan.Text = "" Then MsgBox "Satuan tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" cbSatuan.SetFocus ElseIf txtStok.Text = "" Then MsgBox "Stok tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtStok.SetFocus ElseIf Not IsNumeric(txtStok.Text) Then MsgBox "Stok harus diisi dengan tipe number!", vbInformation + vbOKOnly, "Informasi" txtStok.SetFocus

Eko Sugiharto, S.Kom

5

Else SQL = "" SQL = "SELECT * FROM Barang WHERE Kode_Brg = '" & txtKode.Text & "'" Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic If Not Rs_Barang.BOF Then With Rs_Barang .Fields!Kode_Brg = Trim(txtKode.Text) .Fields!Nama_Brg = Trim(txtNama.Text) .Fields!Satuan = Trim(cbSatuan.Text) .Fields!Stok = Trim(txtStok.Text) .Update End With Rs_Barang.Requery Call Kosong Call NonAktif Call TampilGrid MsgBox "Data berhasil diedit", vbOKOnly + vbInformation, "Informasi" Else MsgBox "Data gagal diedit", vbOKOnly + vbInformation, "Informasi" End If End If End If End Sub Private Sub cmdHapus_Click() If MsgBox("Apakah Anda yakin mau menghapus data ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then SQL = "DELETE FROM Barang WHERE Kode_Brg='" & txtKode.Text & "'" KonekDB.Execute SQL, , adCmdText Rs_Barang.Requery Call Kosong Call NonAktif Call TampilGrid MsgBox "Data berhasil dihapus", vbOKOnly + vbInformation, "Informasi" End If End Sub Private Sub cmdInput_Click() If cmdInput.Caption = "&Input" Then Call Aktif cmdInput.Caption = "&Simpan" cmdTutup.Caption = "&Batal" txtKode.SetFocus Else If txtKode.Text = "" Then MsgBox "Kode Barang tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtKode.SetFocus ElseIf txtNama.Text = "" Then MsgBox "Nama Barang tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtNama.SetFocus ElseIf cbSatuan.Text = "" Then MsgBox "Satuan tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" cbSatuan.SetFocus ElseIf txtStok.Text = "" Then MsgBox "Stok tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtStok.SetFocus ElseIf Not IsNumeric(txtStok.Text) Then MsgBox "Stok harus diisi dengan tipe number!", vbInformation + vbOKOnly, "Informasi" txtStok.Text = "" txtStok.SetFocus Else SQL = "" SQL = "SELECT * FROM Barang WHERE Kode_Brg = '" & txtKode.Text & "'" Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic If Rs_Barang.BOF Then With Rs_Barang .AddNew .Fields!Kode_Brg = Trim(txtKode.Text) .Fields!Nama_Brg = Trim(txtNama.Text) .Fields!Satuan = Trim(cbSatuan.Text) .Fields!Stok = Trim(txtStok.Text) .Update End With

Eko Sugiharto, S.Kom

6

Rs_Barang.Requery Call Kosong Call NonAktif Call TampilGrid MsgBox "Data berhasil tersimpan", vbOKOnly + vbInformation, "Informasi" MsgBox "Data tidak tersimpan", vbOKOnly + vbInformation, "Informasi" End If End If End If End Sub Private Sub cmdTutup_Click() If cmdTutup.Caption = "&Tutup" Then If MsgBox("Apakah Anda mau menutup "Konfirmasi") = vbYes Then Unload Me End If Else Call Kosong Call NonAktif End If End Sub Private Sub Form_Load() Call BukaDatabase Call TampilGrid Call NonAktif End Sub Sub AktifGrid() With GridData .Cols = 5 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "No" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .RowHeightMin = 300 .Col = 1 .Row = 0 .Text = "Kode Barang" .CellFontBold = True .ColWidth(1) = 1750 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "Nama Barang" .CellFontBold = True .ColWidth(2) = 2500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "Satuan" .CellFontBold = True .ColWidth(3) = 1500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "Stok" .CellFontBold = True .ColWidth(4) = 1000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub Else

form

ini?",

vbYesNo

+

vbQuestion,

Eko Sugiharto, S.Kom

7

Sub TampilGrid() Dim baris As Integer GridData.Clear Call AktifGrid GridData.Rows = 2 baris = 0 Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT * FROM Barang", KonekDB, adOpenDynamic, adLockOptimistic If Rs_Barang.BOF Then Exit Sub Else With Rs_Barang .MoveFirst Do While Not .EOF On Error Resume Next baris = baris + 1 GridData.Rows = baris + 1 GridData.TextMatrix(baris, 0) = baris GridData.TextMatrix(baris, 1) = !Kode_Brg GridData.TextMatrix(baris, 2) = !Nama_Brg GridData.TextMatrix(baris, 3) = !Satuan GridData.TextMatrix(baris, 4) = !Stok .MoveNext Loop End With End If End Sub Private Sub GridData_DblClick() GridBaris = GridData.Row Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT * FROM Barang WHERE Kode_Brg='" GridData.TextMatrix(GridBaris, 1) & "'", KonekDB, adOpenDynamic, adLockOptimistic If Rs_Barang.BOF Then MsgBox "TABEL MASIH KOSONG!", vbOKOnly + vbInformation, "Error" Exit Sub Else Rs_Barang.MoveFirst Do While Not Rs_Barang.EOF On Error Resume Next txtKode.Text = Rs_Barang!Kode_Brg txtNama.Text = Rs_Barang!Nama_Brg cbSatuan.Text = Rs_Barang!Satuan txtStok.Text = Rs_Barang!Stok Rs_Barang.MoveNext Loop cmdEdit.Enabled = True cmdHapus.Enabled = True cmdTutup.Caption = "&Batal" cmdInput.Caption = "&Input" cmdInput.Enabled = False Call Aktif txtKode.Enabled = False txtNama.SetFocus End If End Sub &

12. Simpan form tersebut dengan nama frmBarang

Eko Sugiharto, S.Kom

8

13. Tambahkan form baru dan rancanglah form Data Supplier dengan menambahkan 5 Label, 5 TextBox, 1 Frame, 4 CommandButton dan 1 MsFlexGrid seperti contoh berikut ini:

14. Atur properti masing-masing objek seperti tertera pada tabel berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmSupplier Caption Data Supplier Label1 Caption Kode Supplier Label2 Caption Nama Supplier Label3 Caption Alamat Label4 Caption Kota Label5 Caption Telepon Text1 Name txtKode Text (Kosongkan) Text2 Name txtNama Text (Kosongkan) Text3 Name txtAlamat Text (Kosongkan) Text4 Name txtKota Text (Kosongkan) Text5 Name txtTelepon Text (Kosongkan) Frame1 Caption Proses Command1 Name cmdInput Caption &Input Command2 Name cmdEdit Caption &Edit Command3 Name cmdHapus Caption &Hapus Command4 Name cmdTutup Caption &Tutup MsFlexGrid1 Name GridData

Eko Sugiharto, S.Kom

9

15. Sehingga tampilan akhirnya menjadi seperti berikut ini :

16. Kemudian tambahkan kode program seperti contoh berikut ini :
Dim GridBaris As Byte Sub NonAktif() txtKode.Enabled = False txtNama.Enabled = False txtAlamat.Enabled = False txtKota.Enabled = False txtTelepon.Enabled = False cmdEdit.Enabled = False cmdHapus.Enabled = False cmdInput.Enabled = True cmdInput.Caption = "&Input" cmdTutup.Caption = "&Tutup" End Sub Sub Aktif() txtKode.Enabled = True txtNama.Enabled = True txtAlamat.Enabled = True txtKota.Enabled = True txtTelepon.Enabled = True End Sub Sub Kosong() txtKode.Text = "" txtNama.Text = "" txtAlamat.Text = "" txtKota.Text = "" txtTelepon.Text = "" End Sub Private Sub cmdEdit_Click() If MsgBox("Apakah Anda yakin mau mengedit data ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then If txtNama.Text = "" Then MsgBox "Nama Supplier tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtNama.SetFocus ElseIf txtAlamat.Text = "" Then MsgBox "Alamat tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtAlamat.SetFocus ElseIf txtKota.Text = "" Then MsgBox "Kota tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtKota.SetFocus ElseIf txtTelepon.Text = "" Then MsgBox "No. Telepon tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtTelepon.SetFocus

Eko Sugiharto, S.Kom

10

Else SQL = "" SQL = "SELECT * FROM Supplier WHERE Kode_Supp = '" & txtKode.Text & "'" Set Rs_Supplier = New ADODB.Recordset Rs_Supplier.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic If Not Rs_Supplier.BOF Then With Rs_Supplier .Fields!Kode_Supp = Trim(txtKode.Text) .Fields!Nama_Supp = Trim(txtNama.Text) .Fields!Alamat = Trim(txtAlamat.Text) .Fields!Kota = Trim(txtKota.Text) .Fields!Telepon = Trim(txtTelepon.Text) .Update End With Rs_Supplier.Requery Call Kosong Call NonAktif Call TampilGrid MsgBox "Data berhasil diedit", vbOKOnly + vbInformation, "Informasi" Else MsgBox "Data gagal diedit", vbOKOnly + vbInformation, "Informasi" End If End If End If End Sub Private Sub cmdHapus_Click() If MsgBox("Apakah Anda yakin mau menghapus data ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then SQL = "DELETE FROM Supplier WHERE Kode_Supp='" & txtKode.Text & "'" KonekDB.Execute SQL, , adCmdText Rs_Supplier.Requery Call Kosong Call NonAktif Call TampilGrid MsgBox "Data berhasil dihapus", vbOKOnly + vbInformation, "Informasi" End If End Sub Private Sub cmdInput_Click() If cmdInput.Caption = "&Input" Then Call Aktif cmdInput.Caption = "&Simpan" cmdTutup.Caption = "&Batal" txtKode.SetFocus Else If txtKode.Text = "" Then MsgBox "Kode Supplier tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtKode.SetFocus ElseIf txtNama.Text = "" Then MsgBox "Nama Supplier tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtNama.SetFocus ElseIf txtAlamat.Text = "" Then MsgBox "Alamat tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtAlamat.SetFocus ElseIf txtKota.Text = "" Then MsgBox "Kota tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtKota.SetFocus ElseIf txtTelepon.Text = "" Then MsgBox "No. Telepon tidak boleh kosong!", vbInformation + vbOKOnly, "Informasi" txtTelepon.SetFocus ElseIf Not IsNumeric(txtTelepon.Text) Then MsgBox "No. Telepon harus diisi dengan tipe Number!", vbInformation + vbOKOnly, "Informasi" txtTelepon.Text = "" txtTelepon.SetFocus Else SQL = "" SQL = "SELECT * FROM Supplier WHERE Kode_Supp = '" & txtKode.Text & "'" Set Rs_Supplier = New ADODB.Recordset Rs_Supplier.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic If Rs_Supplier.BOF Then With Rs_Supplier .AddNew .Fields!Kode_Supp = Trim(txtKode.Text)

Eko Sugiharto, S.Kom

11

.Fields!Nama_Supp = Trim(txtNama.Text) .Fields!Alamat = Trim(txtAlamat.Text) .Fields!Kota = Trim(txtKota.Text) .Fields!Telepon = Trim(txtTelepon.Text) .Update End With Rs_Supplier.Requery Call Kosong Call NonAktif Call TampilGrid MsgBox "Data berhasil tersimpan", vbOKOnly + vbInformation, "Informasi" MsgBox "Data tidak tersimpan", vbOKOnly + vbInformation, "Informasi" End If End If End If End Sub Private Sub cmdTutup_Click() If cmdTutup.Caption = "&Tutup" Then If MsgBox("Apakah Anda mau menutup "Konfirmasi") = vbYes Then Unload Me End If Else Call Kosong Call NonAktif End If End Sub Private Sub Form_Load() Call BukaDatabase Call TampilGrid Call NonAktif End Sub Sub AktifGrid() With GridData .Cols = 6 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "No" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .RowHeightMin = 300 .Col = 1 .Row = 0 .Text = "Kode Supplier" .CellFontBold = True .ColWidth(1) = 1750 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "Nama Supplier" .CellFontBold = True .ColWidth(2) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "Alamat" .CellFontBold = True .ColWidth(3) = 3000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "Kota" .CellFontBold = True .ColWidth(4) = 1500 .AllowUserResizing = flexResizeColumns Else

form

ini?",

vbYesNo

+

vbQuestion,

Eko Sugiharto, S.Kom

12

.CellAlignment = flexAlignCenterCenter .Col = 5 .Row = 0 .Text = "Telepon" .CellFontBold = True .ColWidth(5) = 1500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub Sub TampilGrid() Dim baris As Integer GridData.Clear Call AktifGrid GridData.Rows = 2 baris = 0 Set Rs_Supplier = New ADODB.Recordset Rs_Supplier.Open "SELECT * FROM Supplier", KonekDB, adOpenDynamic, adLockOptimistic If Rs_Supplier.BOF Then Exit Sub Else With Rs_Supplier .MoveFirst Do While Not .EOF On Error Resume Next baris = baris + 1 GridData.Rows = baris + 1 GridData.TextMatrix(baris, 0) = baris GridData.TextMatrix(baris, 1) = !Kode_Supp GridData.TextMatrix(baris, 2) = !Nama_Supp GridData.TextMatrix(baris, 3) = !Alamat GridData.TextMatrix(baris, 4) = !Kota GridData.TextMatrix(baris, 5) = !Telepon .MoveNext Loop End With End If End Sub Private Sub GridData_DblClick() GridBaris = GridData.Row Set Rs_Supplier = New ADODB.Recordset Rs_Supplier.Open " SELECT * FROM Supplier WHERE Kode_Supp='" GridData.TextMatrix(GridBaris, 1) & "'", KonekDB, adOpenDynamic, adLockOptimistic If Rs_Supplier.BOF Then MsgBox "TABEL MASIH KOSONG!", vbOKOnly + vbInformation, "Error" Exit Sub Else Rs_Supplier.MoveFirst Do While Not Rs_Supplier.EOF On Error Resume Next txtKode.Text = Rs_Supplier!Kode_Supp txtNama.Text = Rs_Supplier!Nama_Supp txtAlamat.Text = Rs_Supplier!Alamat txtKota.Text = Rs_Supplier!Kota txtTelepon.Text = Rs_Supplier!Telepon Rs_Supplier.MoveNext Loop cmdEdit.Enabled = True cmdHapus.Enabled = True cmdTutup.Caption = "&Batal" cmdInput.Caption = "&Input" cmdInput.Enabled = False Call Aktif txtKode.Enabled = False txtNama.SetFocus End If End Sub &

17. Simpan form tersebut dengan nama frmSupplier

Eko Sugiharto, S.Kom

13

18. Tambahkan komponen Microsoft Windows Common Controls-2.6.0

19. Kemudian tambahkan form baru dan rancanglah form Data Pembelian dengan menambahkan 8 Label, 7 TextBox, 1 DTPicker, 1 Frame, 6 CommandButton seperti contoh berikut ini :

20. Atur properti masing-masing objek seperti tertera pada tabel berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmPembelian Caption Data Pembelian Label1 Caption No. Faktur Label2 Caption Tanggal Label3 Caption Kode Supplier Label4 Caption Nama Supplier Label5 Alignment Center BackColor (Pilih Warna) Caption Kode Barang Label6 Alignment Center BackColor (Pilih Warna) Caption Nama Barang

Eko Sugiharto, S.Kom

14

Alignment Center BackColor (Pilih Warna) Caption Jumlah Label8 Caption Total Text1 Name txtNoFak Text Kosongkan Text2 Name txtKdSupp Text Kosongkan Text3 Name txtNmSupp Text Kosongkan Text4 Name txtKdBrg Text Kosongkan Text5 Name txtNmBrg Text Kosongkan Text6 Name txtJumlah Text Kosongkan Text7 Name txtTotal Text Kosongkan DTPicker1 Name dtTanggal Frame1 Caption Proses Command1 Name cmdCariSupp Caption ... Command2 Name cmdCariBrg Caption ... Command3 Name cmdOK Caption &OK Command4 Name cmdSimpan Caption &Simpan Command5 Name cmdBatal Caption &Batal Command6 Name cmdTutup Caption &Tutup MsFlexGrid1 Name GridData 21. Sehingga tampilan akhirnya menjadi seperti berikut ini :

Label7

Eko Sugiharto, S.Kom

15

22. Kemudian tambahkan kode program seperti contoh berikut ini :
Dim i, baris As Integer Private Sub cmdBatal_Click() Kosong End Sub Private Sub cmdCariSupp_Click() frmCariSupplier.Show End Sub Private Sub cmdCariBrg_Click() frmCariBarang.Show End Sub Private Sub Kosong() txtNoFak.Text = "" dtTanggal.Value = Format(Now, "dd-mm-yyyy") txtKdSupp.Text = "" txtNmSupp.Text = "" txtKdBrg.Text = "" txtNmBrg.Text = "" txtJumlah.Text = "" txtTotal.Text = "" baris = 1 GridData.Clear GridData.Rows = 2 AktifGridData End Sub Private Sub cmdOK_Click() On Error Resume Next If txtKdBrg = "" Then MsgBox "Kode Barang tidak boleh kosong..!!", vbInformation + vbOKOnly, "Informasi" txtKdBrg.SetFocus ElseIf txtNmBrg = "" Then MsgBox "Kode Barang tidak terdaftar..!", vbInformation + vbOKOnly, "Informasi" txtKdBrg = "" txtJumlah = "" txtKdBrg.SetFocus ElseIf txtJumlah = "" Then MsgBox "Jumlah tidak boleh kosong..!!", vbInformation + vbOKOnly, "Informasi" txtJumlah.SetFocus ElseIf Not IsNumeric(txtJumlah) Then MsgBox "Jumlah harus diisi dengan tipe Number!", vbInformation + vbOKOnly, "Informasi" txtJumlah = "" txtJumlah.SetFocus Else GridData.Rows = baris + 1 GridData.TextMatrix(baris, 0) = txtKdBrg.Text GridData.TextMatrix(baris, 1) = txtNmBrg.Text GridData.TextMatrix(baris, 2) = txtJumlah.Text txtTotal.Text = Val(txtTotal.Text) + Val(txtJumlah.Text) baris = baris + 1 txtKdBrg = "" txtNmBrg = "" txtJumlah = "" txtKdBrg.SetFocus End If Rs_Barang.Requery End Sub Private Sub AktifGridData() With GridData .Cols = 3 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "Kode Barang" .CellFontBold = True .ColWidth(0) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

Eko Sugiharto, S.Kom

16

.Col = 1 .Row = 0 .Text = "Nama Barang" .CellFontBold = True .ColWidth(1) = 4000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "Jumlah" .CellFontBold = True .ColWidth(2) = 1000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub Private Sub cmdSimpan_Click() If baris <> 1 Then If txtNoFak = "" Then MsgBox "No. Faktur tidak boleh kosong!", vbOKOnly + vbInformation, "Informasi" txtNoFak.SetFocus ElseIf txtKdSupp = "" Then MsgBox "Kode Supplier tidak boleh kosong!", vbOKOnly + vbInformation, "Informasi" txtKdSupp.SetFocus Else 'Proses penyimpanan ke Pembelian SQL = "" SQL = "INSERT INTO Pembelian(No_Faktur,Tanggal,Kode_Supp,Nama_Supp,Total) VALUES('" & txtNoFak.Text & "','" & dtTanggal.Value & "','" & txtKdSupp.Text & "','" & txtNmSupp.Text & "','" & txtTotal.Text & "')" KonekDB.Execute SQL, , adCmdText 'Proses penyimpanan ke Detail_Beli For i = 1 To baris - 1 SQL = "" SQL = "INSERT INTO Detail_Beli(No_Faktur,Kode_Brg,Nama_Brg,Jumlah) VALUES('" & txtNoFak.Text & "','" & GridData.TextMatrix(i, 0) & "','" & GridData.TextMatrix(i, 1) & "','" & GridData.TextMatrix(i, 2) & "')" KonekDB.Execute SQL, , adCmdText Dim StokBaru As Integer Dim Kode As String StokBaru = Val(GridData.TextMatrix(i, 2)) Kode = GridData.TextMatrix(i, 0) SQL = "" SQL = "UPDATE Barang SET Stok=Stok + " & StokBaru & " WHERE Kode_Brg='" &

Kode & "'"

Else

KonekDB.Execute SQL, , adCmdText Next i MsgBox "Data Pembelian telah tersimpan.", vbInformation + vbOKOnly, "Informasi" Kosong End If Data pembelian barang masih kosong.", vbOKOnly + vbInformation,

MsgBox "Maaf! "Informasi" End If End Sub

Private Sub cmdTutup_Click() If MsgBox("Apakah Anda mau menutup form ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then Unload Me End If End Sub Private Sub Form_Load() Call BukaDatabase Call Kosong End Sub Private Sub TampilBarang() If txtKdBrg <> "" Then SQL = "" SQL = "SELECT * FROM Barang WHERE Kode_Brg='" & txtKdBrg.Text & "'" Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic

Eko Sugiharto, S.Kom

17

If Not Rs_Barang.BOF Then txtNmBrg = Rs_Barang.Fields!Nama_Brg txtJumlah.SetFocus End If End If End Sub Private Sub TampilSupplier() If txtKdSupp <> "" Then SQL = "" SQL = "SELECT * FROM Supplier WHERE Kode_Supp='" & txtKdSupp.Text & "'" Set Rs_Supplier = New ADODB.Recordset Rs_Supplier.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic If Not Rs_Supplier.BOF Then txtNmSupp = Rs_Supplier.Fields!Nama_Supp txtKdBrg.SetFocus End If End If End Sub Private Sub txtKdBrg_Change() TampilBarang End Sub Private Sub txtKdSupp_Change() TampilSupplier End Sub

23. Simpan form tersebut dengan nama frmPembelian 24. Tambahkan form baru dan rancanglah form Pencarian Supplier dengan menambahkan 1 Frame, 1 TextBox, 1 CommandButton dan 1 MsFlexGrid seperti contoh berikut ini :

25. Atur properti masing-masing seperti tertera pada tabel berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmCariSupplier Caption Pencarian Frame1 Caption Kata Kunci Text1 Name txtCari Text (Kosongkan) Command1 Name cmdTutup Caption &Tutup MsFlexGrid1 Name GridData

Eko Sugiharto, S.Kom

18

26. Sehingga tampilan akhirnya menjadi seperti berikut ini :

27. Tambahkan kode program seperti contoh berikut ini :
Private Sub cmdTutup_Click() Unload Me End Sub Private Sub Form_Load() Call BukaDatabase Set Rs_Supplier = New ADODB.Recordset Rs_Supplier.Open "SELECT * FROM Supplier", KonekDB, adOpenDynamic, adLockOptimistic Call TampilGridData GridData.Cols = 6 End Sub Sub AktifGridData() With GridData .Cols = 6 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "No" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 1 .Row = 0 .Text = "Kode Supplier" .CellFontBold = True .ColWidth(1) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "Nama Supplier" .CellFontBold = True .ColWidth(2) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "Alamat" .CellFontBold = True .ColWidth(3) = 3500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 4 .Row = 0 .Text = "Kota" .CellFontBold = True .ColWidth(4) = 1500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

Eko Sugiharto, S.Kom

19

.Col = 5 .Row = 0 .Text = "Telepon" .CellFontBold = True .ColWidth(5) = 1800 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub Sub TampilGridData() Dim baris As Byte GridData.Clear Call AktifGridData GridData.Rows = 2 baris = 0 If Rs_Supplier.BOF Then MsgBox "Data Supplier Masih Kosong..", vbInformation + vbOKOnly, "Informasi" Exit Sub Else With Rs_Supplier .MoveFirst Do While Not .EOF baris = baris + 1 GridData.Rows = baris + 1 GridData.TextMatrix(baris, 0) = baris GridData.TextMatrix(baris, 1) = !Kode_Supp GridData.TextMatrix(baris, 2) = !Nama_Supp GridData.TextMatrix(baris, 3) = !Alamat GridData.TextMatrix(baris, 4) = !Kota GridData.TextMatrix(baris, 5) = !Telepon .MoveNext Loop End With End If End Sub Private Sub GridData_DblClick() Dim b As Byte b = GridData.Row If GridData.Rows <> 1 Then With frmPembelian .txtKdSupp.Text = GridData.TextMatrix(b, 1) .txtNmSupp.Text = GridData.TextMatrix(b, 2) .txtKdBrg.SetFocus End With Else Exit Sub End If Unload Me End Sub Private Sub txtCari_Change() If txtCari.Text <> Empty Then Set Rs_Supplier = New ADODB.Recordset Rs_Supplier.Open "SELECT * FROM Supplier WHERE Kode_Supp LIKE '%" & txtCari.Text & "%' OR Nama_Supp LIKE'%" & txtCari.Text & "%'", KonekDB, adOpenDynamic, adLockBatchOptimistic If Rs_Supplier.BOF Then MsgBox "Data Yang Anda Cari Tidak Ditemukan..!", vbInformation + vbOKOnly, "Informasi" txtCari.Text = "" txtCari.SetFocus Else Call TampilGridData End If End If End Sub

28. Simpan form tersebut dengan nama frmCariSupplier

Eko Sugiharto, S.Kom

20

29. Tambahkan form baru dan rancanglah form Pencarian Barang dengan menambahkan 1 Frame, 1 TextBox, 1 CommandButton dan 1 MsFlexGrid seperti contoh berikut ini :

30. Atur properti masing-masing seperti tertera pada tabel berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmCariBarang Caption Pencarian Frame1 Caption Kata Kunci Text1 Name txtCari Text (Kosongkan) Command1 Name cmdTutup Caption &Tutup MsFlexGrid1 Name GridData 31. Sehingga tampilan akhirnya menjadi seperti berikut ini :

32. Tambahkan kode program seperti contoh berikut ini :
Private Sub cmdTutup_Click() Unload Me End Sub Private Sub Form_Load() Call BukaDatabase Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT * FROM Barang", KonekDB, adOpenDynamic, adLockOptimistic Call TampilGridData GridData.Cols = 4 End Sub Sub AktifGridData() With GridData .Cols = 4 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "No" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

Eko Sugiharto, S.Kom

21

.Col = 1 .Row = 0 .Text = "Kode Barang" .CellFontBold = True .ColWidth(1) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "Nama Barang" .CellFontBold = True .ColWidth(2) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "Stok" .CellFontBold = True .ColWidth(3) = 1500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub Sub TampilGridData() Dim baris As Byte GridData.Clear Call AktifGridData GridData.Rows = 2 baris = 0 If Rs_Barang.BOF Then MsgBox "Data Barang Masih Kosong..", vbInformation + vbOKOnly, "Informasi" Exit Sub Else With Rs_Barang .MoveFirst Do While Not .EOF baris = baris + 1 GridData.Rows = baris + 1 GridData.TextMatrix(baris, 0) = baris GridData.TextMatrix(baris, 1) = !Kode_Brg GridData.TextMatrix(baris, 2) = !Nama_Brg GridData.TextMatrix(baris, 3) = !Stok .MoveNext Loop End With End If End Sub Private Sub GridData_DblClick() Dim b As Byte b = GridData.Row If GridData.Rows <> 1 Then With frmPembelian .txtKdBrg.Text = GridData.TextMatrix(b, 1) .txtNmBrg.Text = GridData.TextMatrix(b, 2) .txtJumlah.SetFocus End With Else Exit Sub End If Unload Me End Sub Private Sub txtCari_Change() If txtCari.Text = Empty Then ' Else Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT * FROM Barang WHERE Kode_Brg LIKE '%" & txtCari.Text & "%' OR Nama_Brg LIKE'%" & txtCari.Text & "%'", KonekDB, adOpenDynamic, adLockBatchOptimistic

Eko Sugiharto, S.Kom

22

If Rs_Barang.BOF Then MsgBox "Data Yang Anda Cari Tidak Ditemukan..!", vbInformation + vbOKOnly, "Informasi" txtCari.Text = "" txtCari.SetFocus Else Call TampilGridData End If End If End Sub

33. Simpan form tersebut dengan nama frmCariBarang 34. Tambahkan form baru dan rancanglah form Data Pengeluaran dengan menambahkan 7 Label, 6 TextBox, 1 DTPicker, 1 Frame, 5 CommandButton, dan MsFlexGrid seperti contoh berikut ini :

35. Aturlah properti masing-masing objek seperti tertera pada tabel berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmPengeluaran Caption Data Pengeluaran Label1 Caption No. Keluar Label2 Caption Tanggal Label3 Alignment Center BackColor (Pilih Warna) Caption Kode Barang Label4 Alignment Center BackColor (Pilih Warna) Caption Nama Barang Label5 Alignment Center BackColor (Pilih Warna) Caption Stok Label6 Alignment Center BackColor (Pilih Warna) Caption Qty Minta Label7 Caption Total Minta Text1 Name txtNo Text Kosongkan Text2 Name txtKdBrg Text Kosongkan Text3 Name txtNmBrg Text Kosongkan Text4 Name txtStok Text Kosongkan Text5 Name txtJumlah Text Kosongkan

Eko Sugiharto, S.Kom

23

Text6 DTPicker1 Frame1 Command1 Command2 Command3 Command4 Command5 MsFlexGrid1

Name Text Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name

txtTotal Kosongkan dtTanggal Proses cmdCariBrg ... cmdOK &OK cmdSimpan &Simpan cmdBatal &Batal cmdTutup &Tutup GridData

36. Sehingga tampilan akhirnya menjadi seperti berikut ini :

37. Tambahkan kode program seperti contoh berikut ini ;
Dim i, baris As Integer Private Sub cmdBatal_Click() Kosong End Sub Private Sub cmdCariBrg_Click() frmCariBarang2.Show End Sub Private Sub Kosong() txtNo.Text = "" dtTanggal.Value = Format(Now, "dd-mm-yyyy") txtKdBrg.Text = "" txtNmBrg.Text = "" txtJumlah.Text = "" txtTotal.Text = "" baris = 1 GridData.Clear GridData.Rows = 2 AktifGridData End Sub

Eko Sugiharto, S.Kom

24

Private Sub cmdOK_Click() On Error Resume Next Dim cekKode As String If txtKdBrg = "" Then MsgBox "Kode Barang tidak boleh kosong..!!", vbInformation + vbOKOnly, "Informasi" txtKdBrg.SetFocus ElseIf txtNmBrg = "" Then MsgBox "Kode Barang tidak terdaftar..!", vbInformation + vbOKOnly, "Informasi" txtKdBrg = "" txtJumlah = "" txtKdBrg.SetFocus ElseIf txtJumlah = "" Then MsgBox "Jumlah tidak boleh kosong..!!", vbInformation + vbOKOnly, "Informasi" txtJumlah.SetFocus ElseIf Not IsNumeric(txtJumlah) Then MsgBox "Jumlah harus diisi dengan tipe Number!", vbInformation + vbOKOnly, "Informasi" txtJumlah = "" txtJumlah.SetFocus ElseIf Val(txtJumlah.Text) > Val(txtStok.Text) Then MsgBox "Stok barang tidak mencukupi!", vbInformation + vbOKOnly, "Informasi" txtJumlah = "" txtJumlah.SetFocus Else GridData.Rows = baris + 1 GridData.TextMatrix(baris, 0) = txtKdBrg.Text GridData.TextMatrix(baris, 1) = txtNmBrg.Text GridData.TextMatrix(baris, 2) = txtStok.Text GridData.TextMatrix(baris, 3) = txtJumlah.Text txtTotal.Text = Val(txtTotal.Text) + Val(txtJumlah.Text) baris = baris + 1 txtKdBrg = "" txtNmBrg = "" txtStok = "" txtJumlah = "" txtKdBrg.SetFocus End If Rs_Barang.Requery End Sub Private Sub AktifGridData() With GridData .Cols = 4 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "Kode Barang" .CellFontBold = True .ColWidth(0) = 1500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 1 .Row = 0 .Text = "Nama Barang" .CellFontBold = True .ColWidth(1) = 3500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "Stok" .CellFontBold = True .ColWidth(2) = 1000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "Qty Minta" .CellFontBold = True .ColWidth(2) = 1200 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub

Eko Sugiharto, S.Kom

25

Private Sub cmdSimpan_Click() If baris <> 1 Then If txtNo = "" Then MsgBox "No. Keluar tidak boleh kosong!", vbOKOnly + vbInformation, "Informasi" txtNo.SetFocus Else 'Proses penyimpanan ke Pengeluaran SQL = "" SQL = "INSERT INTO Pengeluaran(No_Keluar,Tanggal,Total) VALUES('" & txtNo.Text & "','" & dtTanggal.Value & "','" & txtTotal.Text & "')" KonekDB.Execute SQL, , adCmdText 'Proses penyimpanan ke Detail_Keluar For i = 1 To baris - 1 SQL = "" SQL = "INSERT INTO Detail_Keluar(No_Keluar,Kode_Brg,Nama_Brg,Stok,Jumlah) VALUES('" & txtNo.Text & "','" & GridData.TextMatrix(i, 0) & "','" & GridData.TextMatrix(i, 1) & "','" & GridData.TextMatrix(i, 2) & "','" & GridData.TextMatrix(i, 3) & "')" KonekDB.Execute SQL, , adCmdText Dim JumKeluar As Integer Dim Kode As String JumKeluar = Val(GridData.TextMatrix(i, 3)) Kode = GridData.TextMatrix(i, 0) SQL = "" SQL = "UPDATE Barang SET Stok=Stok - " & JumKeluar & " WHERE Kode_Brg='" &

Kode & "'"

KonekDB.Execute SQL, , adCmdText Next i MsgBox "Data Pengeluaran telah tersimpan.", vbInformation + vbOKOnly, "Informasi" Kosong End If Else MsgBox "Maaf! Data Pengeluaran barang masih kosong.", vbOKOnly + vbInformation, "Informasi" End If End Sub Private Sub cmdTutup_Click() If MsgBox("Apakah Anda mau menutup form ini?", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then Unload Me End If End Sub Private Sub Form_Load() Call BukaDatabase Call Kosong End Sub Private Sub TampilBarang() If txtKdBrg <> "" Then SQL = "" SQL = "SELECT * FROM Barang WHERE Kode_Brg='" & txtKdBrg.Text & "'" Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open SQL, KonekDB, adOpenDynamic, adLockOptimistic If Not Rs_Barang.BOF Then txtNmBrg = Rs_Barang.Fields!Nama_Brg txtJumlah.SetFocus End If End If End Sub Private Sub txtKdBrg_Change() TampilBarang End Sub

38. Simpan form tersebut dengan nama frmPengeluaran

Eko Sugiharto, S.Kom

26

39. Tambahkan form baru dan rancanglah form Pencarian Barang dengan menambahkan 1 Frame, 1 TextBox, 1 CommandButton dan 1 MsFlexGrid seperti contoh berikut ini :

40. Atur properti masing-masing seperti tertera pada tabel berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmCariBarang2 Caption Pencarian Frame1 Caption Kata Kunci Text1 Name txtCari Text (Kosongkan) Command1 Name cmdTutup Caption &Tutup MsFlexGrid1 Name GridData 41. Sehingga tampilan akhirnya menjadi seperti berikut ini :

42. Tambahkan kode program seperti contoh berikut ini :
Private Sub cmdTutup_Click() Unload Me End Sub Private Sub Form_Load() Call BukaDatabase Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT * FROM Barang", KonekDB, adOpenDynamic, adLockOptimistic Call TampilGridData GridData.Cols = 4 End Sub Sub AktifGridData() With GridData .Cols = 4 .RowHeightMin = 300 .Col = 0 .Row = 0 .Text = "No" .CellFontBold = True .ColWidth(0) = 400 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter

Eko Sugiharto, S.Kom

27

.Col = 1 .Row = 0 .Text = "Kode Barang" .CellFontBold = True .ColWidth(1) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 2 .Row = 0 .Text = "Nama Barang" .CellFontBold = True .ColWidth(2) = 2000 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter .Col = 3 .Row = 0 .Text = "Stok" .CellFontBold = True .ColWidth(3) = 1500 .AllowUserResizing = flexResizeColumns .CellAlignment = flexAlignCenterCenter End With End Sub Sub TampilGridData() Dim baris As Byte GridData.Clear Call AktifGridData GridData.Rows = 2 baris = 0 If Rs_Barang.BOF Then MsgBox "Data Barang Masih Kosong..", vbInformation + vbOKOnly, "Informasi" Exit Sub Else With Rs_Barang .MoveFirst Do While Not .EOF baris = baris + 1 GridData.Rows = baris + 1 GridData.TextMatrix(baris, 0) = baris GridData.TextMatrix(baris, 1) = !Kode_Brg GridData.TextMatrix(baris, 2) = !Nama_Brg GridData.TextMatrix(baris, 3) = !Stok .MoveNext Loop End With End If End Sub Private Sub GridData_DblClick() Dim b As Byte b = GridData.Row If GridData.Rows <> 1 Then With frmPengeluaran .txtKdBrg.Text = GridData.TextMatrix(b, 1) .txtNmBrg.Text = GridData.TextMatrix(b, 2) .txtStok.Text = GridData.TextMatrix(b, 3) .txtJumlah.SetFocus End With Else Exit Sub End If Unload Me End Sub Private Sub txtCari_Change() If txtCari.Text = Empty Then ' Else Set Rs_Barang = New ADODB.Recordset Rs_Barang.Open "SELECT * FROM Barang WHERE Kode_Brg LIKE '%" & txtCari.Text & "%' OR Nama_Brg LIKE'%" & txtCari.Text & "%'", KonekDB, adOpenDynamic, adLockBatchOptimistic

Eko Sugiharto, S.Kom

28

If Rs_Barang.BOF Then MsgBox "Data Yang Anda Cari Tidak Ditemukan..!", vbInformation + vbOKOnly, "Informasi" txtCari.Text = "" txtCari.SetFocus Else Call TampilGridData End If End If End Sub

43. Simpan form tersebut dengan nama frmCariBarang2 44. Tambahkan form baru untuk membuat form Login seperti contoh berikut ini :

45. Aturlah properti masing-masing objek seperti tertera pada tabel berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmLogin Caption Login Label1 Caption Username Label2 Caption Password Text1 Name txtUser Text (Kosongkan) Text2 Name txtPassword PasswordChar * Text (Kosongkan) Command1 Name cmdOK Caption &OK Command1 Name cmdBatal Caption &Batal 46. Sehingga tampilan akhirnya menjadi seperti berikut ini :

47. Tambahkan kode program seperti contoh berikut ini :
Dim Dim Dim Dim db As ADODB.Connection rs As ADODB.Recordset SQL As String salah As Byte

Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data "\database.mdb;Persist Security Info=False" End Sub Private Sub cmdBatal_Click() End End Sub

Source="

&

App.Path

&

Private Sub cmdOK_Click() If txtUser = "" Then MsgBox "Nama user tidak boleh kosong..!!", vbOKOnly + vbInformation, "Login" txtUser.SetFocus

Eko Sugiharto, S.Kom

29

ElseIf txtPassword = "" Then MsgBox "Password tidak boleh kosong..!!", vbOKOnly + vbInformation, "Login" txtPassword.SetFocus Else koneksi SQL = "SELECT * FROM admin WHERE username='" & txtUser.Text & "' AND password='" & txtPassword.Text & "'" Set rs = db.Execute(SQL) 'Jika data user ditemukan If Not rs.BOF Then frmUtama.Show Unload Me Else If salah < 2 Then MsgBox "Nama user atau Password Salah..!! Silakan ulangi lagi..", vbCritical + vbOKOnly, "Login" txtUser.Text = "" txtPassword.Text = "" txtUser.SetFocus salah = salah + 1 Else MsgBox "Kesalahan Password 3 kali berturut-turut.., Silakan Login ulang..", vbCritical + vbOKOnly, "Login" salah = 0 End End If End If End If End Sub Private Sub txtPassword_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdOK_Click End If End Sub Private Sub txtUser_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then txtPassword.SetFocus End If End Sub Private Sub txtUser_Change() txtPassword.Text = "" End Sub

48. Simpan form tersebut dengan nama frmLogin 49. Tambahkan form baru sebagai form utama Program Aplikasi Stok Barang, kemudian tambahkan menu dan submenu menggunakan Menu Editor sesuai dengan ketentuan berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmUtama Caption Aplikasi Persediaan Barang WindowState Maximized Menu Editor Caption &Master Name mnuMaster Caption Data &Barang Name mnuBarang Caption Data &Supplier Name mnuSupplier Caption Name mnuGaris Caption &Keluar Name mnuKeluar Caption &Transaksi Name mnuTransaksi Caption Pembelian Name mnuPembelian Caption Pengeluaran Name mnuPengeluaran Caption Laporan Name mnuLaporan

Eko Sugiharto, S.Kom

30

Caption Name Caption Name Caption Name Caption Name Caption Name

Barang mnuLapBarang Supplier mnuLapSupplier mnuGaris2 Pembelian mnuLapBeli Pengeluaran mnuLapKeluar

Keterangan : Untuk membuat sub menu seperti Data Barang yaitu dengan klik ikon panah arah ke kanan ( ) 50. Tambahkan kode program seperti contoh berikut ini :
Private Sub Form_Unload(Cancel As Integer) If MsgBox("Apakah Anda yakin mau keluar dari aplikasi ini???", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then End Else Cancel = 1 End If End Sub Private Sub mnuBarang_Click() frmBarang.Show End Sub Private Sub mnuKeluar_Click() If MsgBox("Apakah Anda yakin mau keluar dari aplikasi ini???", vbYesNo + vbQuestion, "Konfirmasi") = vbYes Then End End If End Sub Private Sub mnuLapBarang_Click() lapBarang.Refresh lapBarang.Show End Sub Private Sub mnuLapBeli_Click() frmLapBeli.Show End Sub Private Sub mnuLapKeluar_Click() frmLapKeluar.Show End Sub

Eko Sugiharto, S.Kom

31

Private Sub mnuLapSupplier_Click() LapSupplier.Refresh LapSupplier.Show End Sub Private Sub mnuPembelian_Click() frmPembelian.Show End Sub Private Sub mnuPengeluaran_Click() frmPengeluaran.Show End Sub Private Sub mnuSupp_Click() frmSupplier.Show End Sub

51. Simpan form tersebut dengan nama frmUtama 52. Tambahkan form baru dan rancanglah form Laporan Pembelian dengan menambahkan 1 Label, 1 Frame, 4 OptionButton, 1 ComboBox, 3 DTPicker, dan 2 CommandButton seperti contoh berikut ini:

53. Aturlah properti masing-masing objek seperti tertera pada tabel berikut ini : Nama Objek Properti Nilai Pengaturan Form1 Name frmLapBeli Caption Laporan Label1 Alignment 2 - Center Caption Laporan Pembelian Barang Font (Size) 14 Frame1 Caption Kategori Option1 Name opt1 Caption No. Faktur Tab Index 1 Option2 Name opt2 Caption Tanggal Tab Index 2 Option3 Name opt3 Caption Per Periode Tab Index 3 Option4 Name opt4 Caption Seluruh Tab Index 0 Combo1 Name cbNo Text (Kosongkan) DTPicker1 Name dtTanggal DTPicker2 Name dtAwal DTPicker3 Name dtAkhir Command1 Name cmdTampilkan Caption Tampilkan

Eko Sugiharto, S.Kom

32

Name cmdTutup Caption Tutup 54. Sehingga tampilan akhirnya menjadi seperti berikut ini :

Command2

55. Tambahkan kode seperti contoh berikut ini :
Private Sub NonAktif() cbNo.Clear dtTanggal = Format(Date, "dd-mm-yyyy") dtAwal = Format(Date, "dd-mm-yyyy") dtAkhir = Format(Date, "dd-mm-yyyy") cbNo.Enabled = False dtTanggal.Enabled = False dtAwal.Enabled = False dtAkhir.Enabled = False NoFaktur End Sub Private Sub NoFaktur() Set Rs1 = New ADODB.Recordset Rs1.Open "SELECT No_Faktur adOpenDynamic, adLockOptimistic cbNo.Clear Do While Not Rs1.EOF cbNo.AddItem Rs1!No_Faktur Rs1.MoveNext Loop End Sub Private Sub Lap_PembelianNo() If cbNo = "" Then MsgBox "Pilihan No. Faktur tidak boleh kosong..!!", vbOKOnly + vbInformation, "Informasi" cbNo.SetFocus Else DELaporan.rsPembelian.Filter = "No_Faktur='" & cbNo.Text & "'" LapBeli.Refresh LapBeli.Show End If End Sub Private Sub Lap_PembelianTanggal() DELaporan.rsPembelian.Filter = "Tanggal='" & dtTanggal.Value & "'" LapBeli.Refresh LapBeli.Show End Sub Private Sub Lap_PembelianPeriode() If dtAwal > dtAkhir Then MsgBox "Tanggal Awal lebih besar dari Tanggal Akhir..!!", vbOKOnly + vbInformation, "Informasi" dtAwal.SetFocus Else DELaporan.rsPembelian.Filter = "Tanggal>='" & dtAwal.Value & "' AND Tanggal<='" & dtAkhir.Value & "'" LapBeli.Refresh LapBeli.Show

FROM

Pembelian

ORDER

BY

No_Faktur",

KonekDB,

Eko Sugiharto, S.Kom

33

End If End Sub Private Sub LapPembelianAll() DELaporan.rsPembelian.Filter = "" LapBeli.Refresh LapBeli.Show End Sub Private Sub cmdTampil_Click() If opt1 Then 'menampilkan laporan per No. Faktur Lap_PembelianNo ElseIf opt2 Then 'menampilkan laporan per Tanggal Lap_PembelianTanggal ElseIf opt3 Then 'menampilkan laporan per Periode Lap_PembelianPeriode Else 'menampilkan laporan seluruh data NonAktif LapPembelianAll End If End Sub Private Sub cmdTutup_Click() Unload Me End Sub Private Sub Form_Load() BukaDatabase NonAktif End Sub Private Sub opt1_Click() NonAktif cbNo.Enabled = True cbNo.SetFocus End Sub Private Sub opt2_Click() NonAktif dtTanggal.Enabled = True dtTanggal.SetFocus End Sub Private Sub opt3_Click() NonAktif dtAwal.Enabled = True dtAkhir.Enabled = True dtAwal.SetFocus End Sub Private Sub opt4_Click() NonAktif End Sub

56. Simpan form dengan nama frmLapBeli 57. Tambahkan form baru untuk frmLapKeluar yang secara keseluruhan objek yang digunakannya hampir sama dengan frmLapBeli 58. Pengaturan properti objeknya pun sama dengan frmLapBeli pada halaman sebelumnya

Eko Sugiharto, S.Kom

34

59. Hingga tampilan akhirnya menjadi seperti berikut ini :

60. Tambahkan kode seperti berikut ini :
Private Sub NonAktif() cbNo.Clear dtTanggal = Format(Date, "dd-mm-yyyy") dtAwal = Format(Date, "dd-mm-yyyy") dtAkhir = Format(Date, "dd-mm-yyyy") cbNo.Enabled = False dtTanggal.Enabled = False dtAwal.Enabled = False dtAkhir.Enabled = False NoKeluar End Sub Private Sub NoKeluar() Set Rs1 = New ADODB.Recordset Rs1.Open "SELECT No_Keluar adOpenDynamic, adLockOptimistic cbNo.Clear Do While Not Rs1.EOF cbNo.AddItem Rs1!No_Keluar Rs1.MoveNext Loop End Sub Private Sub Lap_PengeluaranNo() If cbNo = "" Then MsgBox "Pilihan No. Keluar tidak boleh kosong..!!", vbOKOnly + vbInformation, "Informasi" cbNo.SetFocus Else DELaporan.rsPengeluaran.Filter = "No_Keluar='" & cbNo.Text & "'" LapKeluar.Refresh LapKeluar.Show End If End Sub Private Sub Lap_PengeluaranTanggal() DELaporan.rsPengeluaran.Filter = "Tanggal='" & dtTanggal.Value & "'" LapKeluar.Refresh LapKeluar.Show End Sub Private Sub Lap_PengeluaranPeriode() If dtAwal > dtAkhir Then MsgBox "Tanggal Awal lebih vbInformation, "Informasi" dtAwal.SetFocus Else DELaporan.rsPengeluaran.Filter Tanggal<='" & dtAkhir.Value & "'" LapKeluar.Refresh LapKeluar.Show End If End Sub

FROM

Pengeluaran

ORDER

BY

No_Keluar",

KonekDB,

besar

dari

Tanggal

Akhir..!!",

vbOKOnly

+

=

"Tanggal>='"

&

dtAwal.Value

&

"'

AND

Eko Sugiharto, S.Kom

35

Private Sub LapPengeluaranAll() DELaporan.rsPengeluaran.Filter = "" LapKeluar.Refresh LapKeluar.Show End Sub Private Sub cmdTampil_Click() If opt1 Then 'menampilkan laporan per No. Keluar Lap_PengeluaranNo ElseIf opt2 Then 'menampilkan laporan per Tanggal Lap_PengeluaranTanggal ElseIf opt3 Then 'menampilkan laporan per Periode Lap_PengeluaranPeriode Else 'menampilkan laporan seluruh data NonAktif LapPengeluaranAll End If End Sub Private Sub cmdTutup_Click() Unload Me End Sub Private Sub Form_Load() BukaDatabase NonAktif End Sub Private Sub opt1_Click() NonAktif cbNo.Enabled = True cbNo.SetFocus End Sub Private Sub opt2_Click() NonAktif dtTanggal.Enabled = True dtTanggal.SetFocus End Sub Private Sub opt3_Click() NonAktif dtAwal.Enabled = True dtAkhir.Enabled = True dtAwal.SetFocus End Sub Private Sub opt4_Click() NonAktif End Sub

61. Simpan form dengan nama frmLapKeluar

Eko Sugiharto, S.Kom

36

Langkah selanjutnya adalah membuat laporan menggunakan Data Report dengan cara sebagai berikut : 1. Klik Project – More ActiveX Designers – Data Environment

2.

Sehingga muncul tampilan berikut ini :

3. 4.

Atur properti name DataEnvironment1 menjadi DELaporan dan Connection1 menjadi Conn Selanjutnya klik kanan pada Conn kemudian klik Properties

Eko Sugiharto, S.Kom

37

5.

Pilih Microsoft Jet 4.0 OLE DB Provider, kemudian klik Next

6.

Pilih database yang akan dikoneksikan dengan cara klik tombol browse dan pilih database.mdb atau dengan mengetik nama database yaitu database.mdb pada bagian Select or enter a database name. Tetapi dengan catatan penyimpanan database.mdb harus satu folder/direktori dengan project VB yang kita buat.

Eko Sugiharto, S.Kom

38

7.

Untuk memastikan koneksi, Anda bisa menekan tombol Test Connection. Jika ada pesan sukses, berarti kita sukses untuk membuat koneksi ke database. Selanjutnya klik OK

Sebelum dilanjutkan, kita buka file database.mdb pada program aplikasi Microsoft Access 2007 untuk menambahkan 2 buah query yang digunakan untuk laporan Pembelian dan laporan Pengeluaran dengan langkah-langkah berikut ini : 1. Buka file database.mdb 2. Klik tombol Create, kemudian klik Query Design pada Ribbon

3.

Pilih tabel Pembelian dan Detail_Beli kemudian klik Add lalu klik Close

4.

Tambahkan field No_Faktur, Tanggal dan Nama_Supp dari tabel Pembelian dengan cara double klik pada masing-masing nama field

Eko Sugiharto, S.Kom

39

5. 6.

Tambahkan pula field Kode_Brg, Nama_Brg dan Jumlah dari tabel Detail_Beli Sehingga menjadi seperti contoh berikut ini :

7. 8. 9.

Simpan dengan nama QBeli Buat 1 buah query lagi dengan cara klik Create – Query Design Tambahkan tabel Pengeluaran dan Detail_Keluar kemudian klik Add lalu klik Close

10. Tambahkan field No_Keluar dan Tanggal dari tabel Pengeluaran dan field Kode_Brg, Nama_Brg dan Jumlah dari tabel Detail_Keluar 11. Sehingga menjadi seperti contoh berikut ini :

12. Simpan dengan nama QKeluar

Eko Sugiharto, S.Kom

40

Setelah selesai membuat 2 buah query pada Microsoft Access, kita kembali lagi ke Data Environment pada project Visual Basic. Kemudian ikuti langkah-langkah berikut ini : 1. Klik kanan pada Conn kemudian klik Add Command

2.

Klik kanan pada Command1 kemudian klik Properties

3.

Atur sesuai dengan contoh berikut ini :

Eko Sugiharto, S.Kom

41

4.

Tambahkan command baru pada bagian Conn, kemudian atur sesuai contoh berikut ini :

5.

Tambahkan command baru pada bagian Conn, kemudian atur sesuai contoh berikut ini :

Eko Sugiharto, S.Kom

42

6.

Terakhir tambahkan command baru pada bagian Conn, kemudian atur sesuai contoh berikut ini :

7.

Sehingga tampilan akhir dari Data Environment menjadi seperti berikut ini :

8. 9.

Selanjutnya menambahkan Data Report dengan cara klik Project – Add Data Report Kemudian atur propertiesnya sesuai dengan ketentuan berikut ini : Nama Objek Properti Nilai Pengaturan DataReport1 Name LapBarang Caption Laporan Barang DataSource DELaporan DataMember Barang GridX 10 GridY 10 WindowState 2 - vbMaximized

Eko Sugiharto, S.Kom

43

10. Klik tahan (drag) command Barang pada Data Environment ke bagian Detail (Section1) pada Data Report

11. Sehingga tampilannya menjadi seperti berikut ini :

Eko Sugiharto, S.Kom

44

12. Modifikasi report dengan memindahkan objek Label ke bagian Page Header (Section2) dan mengatur lebar masing-masing label sehingga menjadi seperti berikut ini :

13. Kita juga dapat menambahkan label pada bagian Report Header (Section4), mengatur Alignment label, kita juga dapat menambahkan RptShape dan RptLine untuk membuat bingkai pada report yang telah kita buat. Sehingga hasil akhirnya menjadi seperti berikut ini :

14. Beralih ke bagian Code, kemudian tambahkan kode berikut ini :
Private Sub DataReport_Terminate() DELaporan.rsBarang.Close End Sub

15. Simpan dengan nama LapBarang 16. Tambahkan Data Report baru dengan cara klik Project – Data Report 17. Kemudian atur propertiesnya sesuai dengan ketentuan berikut ini : Nama Objek Properti Nilai Pengaturan DataReport1 Name LapSupplier Caption Laporan Supplier DataSource DELaporan DataMember Supplier GridX 10 GridY 10 WindowState 2 - vbMaximized 18. Desain report hingga tampilan akhirnya menjadi seperti berikut ini :

Eko Sugiharto, S.Kom

45

19. Pada bagian code, tambahkan kode berikut ini :
Private Sub DataReport_Terminate() DELaporan.rsSupplier.Close End Sub

20. Simpan dengan nama LapSupplier 21. Tambahkan pula Data Report baru untuk membuat laporan Pembelian Barang 22. Atur propertiesnya sesuai ketentuan berikut ini : Nama Objek Properti Nilai Pengaturan DataReport1 Name LapBeli Caption Laporan Pembelian Barang DataSource DELaporan DataMember Pembelian GridX 10 GridY 10 WindowState 2 - vbMaximized 23. Desain report hingga tampilan akhirnya menjadi seperti berikut ini :

24. Tambahkan kode berikut ini :
Private Sub DataReport_Terminate() DELaporan.rsPembelian.Close End Sub

25. Simpan dengan nama LapBeli 26. Terakhir tambahkan Data Report baru untuk membuat laporan Pengeluaran Barang 27. Atur propertiesnya sesuai ketentuan berikut ini : Nama Objek Properti Nilai Pengaturan DataReport1 Name LapKeluar Caption Laporan Pengeluaran Barang DataSource DELaporan DataMember Pengeluaran GridX 10 GridY 10 WindowState 2 - vbMaximized 28. Desain report hingga tampilan akhirnya menjadi seperti berikut ini :

Eko Sugiharto, S.Kom

46

29. Tambahkan kode berikut ini :
Private Sub DataReport_Terminate() DELaporan.rsPengeluaran.Close End Sub

30. Simpan dengan nama LapKeluar Dan langkah terakhir adalah mengatur frmLogin sebagai Startup Project pada Project Properties sebagai form awal yang tampil pada Program Aplikasi Persediaan Barang dengan cara klik Project – Project (StokBarang) Properties kemudian atur seperti contoh berikut ini :

Dan untuk menjalankan program aplikasi kita bisa menekan tombol F5 dengan catatan tabel admin untuk field username dan password sudah diisi dengan username dan password yang digunakan untuk proses Login. Pada contoh Tutorial ini username dan password adalah admin.

.: Semoga Bermanfaat :.
TERIMA KASIH

Eko Sugiharto, S.Kom

47

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->