Top Banner

of 47

Program Aplikasi Stok Barang Plus Report

Jul 13, 2015

Download

Documents

Eko Sugiharto

Tutorial sederhana pembuatan aplikasi database menggunakan Visual Basic 6.0 - Ms. Access disertai Data Report. Studi kasus Program Aplikasi Stok Barang.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Program Aplikasi Persediaan BarangOleh : 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