Modul Pemrograman Komputer 2 –Teknik Informatika- 29
Pengenalan Database
S
ebelum kita membuat aplikasi kita terlebih dahulu merancang susunan database yang akan kita gunakan. DBMS (Database Management System) yang digunakan adalah Microsoft Access 2000.
Aplikasi yang akan kita buat adalah pengolahan data Penjualan. Aplikasi Penjualan melibatkan entitas barang, pembeli (customer). Dalam mengolah data dalam DBMS kita akan menggunakan perintah SQL (Structure Query Language).
Rancangan ERD (Entity Relationship Diagram) KodeCus
NamaCus
Customer
NoNota
TglNota
Transaksi/ Membeli
KodeBr
NamaBr
Barang/Stok
AlamatCus
JumlahBr
HargaBr
ItemBeli Nonota
KodeBr
Keterangan ERD: Customer membeli barang, satu customer boleh membeli banyak barang dan satu barang boleh dibeli banyak customer sehingga ada hubungan many to many.
Relasi Antar Tabel Dari Entity Relationship Diagram dapat disusun Relasi Antar Tabel sebagai berikut. Customer KodeCus * NamaCus AlamatCus
Transaksi NoNota * TglNota KodeCus **
Stok KodeBr * NamaBr HargaBr JumlahBr
Item INoNota ** IKodeBr ** IJumlah ITotal
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 30 Ket: Yang bergambar * (asterik) berarti berfungsi sebagai Primary Key, yang pada aplikasi sebenarnya datanya tidak boleh ada yang sama. ** adalah Foreinger Key yang merupakan kunci tamu (Primary Key ditabel lain). Gambaran data ketika masuk kedalam database.
Customer KodeCus
NamaCus
Stok
AlamatCus
KodeBr
NamaBr
HargaBr JumlahBr
C01
Andi Sunyoto Jl. Gejayan No. xx
002
Mouse Logitech
C02
M. Indrajati
003
Intel Pentium 4 1,7
004
Matherboard ASUSs
Jl. Kaliurang No. 60 B
23000
484
1200000
85
500000
140
Item
Transaksi NoNota KodeCus TglNota
iNonota iKodeBr iJumlah iTotal
N001
N001
004
2 1000000
N001
002
3
N001
003
5 6000000
C01
7/13/03
69000
Setelah kita desain Relasi Antar Tabelnya sekarang kita mendesain tabel yang kita perlukan.
Desain Tabel dalam Microsoft Access 2000 1. Memulai Microsoft Acces 2000 Panggil Aplikasi Microsoft Access 200 dari Start Menu. Sekarang kita akan membuat rancangan database Penjualan. Setelah tampil halaman Acces pada konfirmasi Create a new database using, pilih Blank Access Database. Kemudian simpan pada folder anda (seperti gambar di sebelahnya) dengan nama Penjualan.Mdb.
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 31 Setelah Anda membuat database buku dengan menekan tombol Create, maka Access akan menampilkan menu utama seperti ditunjukkan pada gambar di bawah
Sebelum membuat database pada Access, terlebih dulu Anda harus membuat model data, apa saja informasi yang akan ditampilkan: Untuk membuat rancangannya dari menu gambar diatas kita doble klik Create table in Desain View. Kemudian isi seperti berikut:
2. Merancang Tabel dalam Microsoft Access 2000 Desain Tabel “Customer”
Field Name Data Type Field Size
Required Allow Zero Length
KodeCus
Text
5
Yes
No
NamaCus
Text
30
No
Yes
AlamatCus
Text
50
No
Yes
Untuk membuat Primary Key Anda Klik Field yang akan Anda jadikan Primary Key kemudian pilih tombol bergambar
pada toolbar menu. Filed Primary Key kami tandai
huruf tebal (KodeCus) dan berlaku pada semua desain tabel. Kemudian anda simpan dengan nama “Customer” (Nama tabel adalah yang diapit tanda “…” pada desain.
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 32 Anda ulangi langkah diatas untuk membuat tabel-tabel di bawah ini. Desain Tabel “Stok” Field Name Data Type
Field Size
Required Allo Zero Length
KodeBr
Text
5
Yes
No
NamaBr
Text
30
No
Yes
JumlahBr
Number
Long Integer
No
Desain Tabel “Transaksi” Field Name Data Type
Field Size
Required Allo Zero Length
NoNota
Text
5
Yes
No
KodeCus
Text
5
No
Yes
TglNota
Date/Time
No
Desain Tabel “Item” Field Name Data Type
Field Size
Required Allo Zero Length
iNonota
Text
5
Yes
No
iKodeBr
Text
5
No
Yes
iJumlah
Number
Integer
No
iTotal
Number
Long Integer
No
1. Ketika barang dibeli maka jumlah barang pada stok akan berkurang. 2. Nonota disimpan dalam tabel Transaksi, sedangkan data barang yang dibeli disimpan dalam tabel Item.
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 33
Aplikasi Penjualan dengan Visual Basic
S
etelah desain database selesai sekarang kita merancang aplikasi yang akan kita buat dengan Visual Basic. Untuk membuat aplikasi penjualan kita akan melibatkan beberapa form yaitu: 1. Form Password -> untuk menentukan hak akses pengguna diijinkan apa tidak. Akan kita panggil pertama kali saat program dijalankan. 2. Form Utama -> untuk tampilan utama program awal 3. Input Customer -> untuk memasukkan data customer(pembeli) 4. Input Stok -> untuk memasukkan data barang 5. Transaksi -> untuk transaksi penjualan 6. Data Transaksi -> untuk melihat data transaksi 7. Laporan-laporan -> untuk menampilkan data tertentu yang akan diprint 8. About -> menampilkan informasi program Karena pada ToolBox standar tidak belum dilengkapi dengan koneksi database dengan
Adodc dan menampilkan data DataGrid maka kita perlu menambahkan komponen tersebut. Langkah-langkahnya sebagai berikut: 1. Penambahan Komponen Dari menu Project – Components (Ctrl+T) kemudian pilih komponen di bawah dengan mencentang pada textboxnya. 1. Microsoft ADO Data Control 6.0 (OLEDB) 2. Microsoft DataGrid Control 6.0 (OLEDB) Kemudian klik Apply - OK Pengaruh penambahan diatas pada ToolBox akan ada 2 tambahan komponen baru: untuk Adodc dan
untuk DataGrid.
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 34 2. Penambahan References Dari menu Project – Referrences, kemudian pilih komponen di bawah dengan mencentang pada textboxnya. 1. Microsoft ActiveX Data Object 2.1 Library 2. Microsoft Data Report Designer v6.0 3. Microsoft Data Formating Object Library 4. Microsoft Data Binding Collection Kemudian klik OK
Bagan hierarkhi susunan project Aplikasi Penjualan Penjualan.vbp
FrmUtama.frm
Module1.bas
FrmPassword.frm DataEnvironment1.Dsr FrmInputStok.frm FrmInputCustomer.frm
DataReport1.Dsr
FrmTransaksi.frm FrmDataTransaksi.frm FrmAbout.frm Catatan: Satu Project terdiri dari banyak form (*.frm), module (*.bas), desain environment (*.Dsr).
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 35
Membuat Project Aplikasi Penjualan Barang Anda buat file project anda simpan dengan nama Penjualan.vbp semua form dan module yang di bawah ini berada dalam project Penjualan.vbp.
File Modul : Module1.bas Fungsi : Untuk membuat module koneksi dengan database, module bisa dipanggil di semua form Cara menambahkan modul : 1. Anda pilih menu toolbar seperti gambar disamping (panahnya). 2. Pilih menu Module 3. Klik Open 4. Anda tuliskan kode program dibawah
Kode Program Public Public Public Public
Conn As New ADODB.Connection Rs As New ADODB.Recordset StrConnect As String StrSQL As String
Public Sub Konek() StrConnect = "Provider=Microsoft.Jet.OleDB.4.0;Data Source=" + App.Path © + "\penjualan.mdb" If Conn.State = adStateOpen Then Conn.Close Set Conn = New ADODB.Connection Conn.Open StrConnect Else Conn.Open StrConnect End If End Sub
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 36 File Form
: FrmInputStok.frm
Fungsi
: Form untuk mengolah data Stok Barang (Insert, Update, Delete, Edit)
Desain Form 6
3
7
8
9
11
1
10
12
13
2
15
4
14
5
17 16
19
20 18
No
1 2 3 4 5 6 7 8 9 10 11
Nama Object
Properti
Nilai
Form
Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Text Name Text Name Text Name Text Name Text Visible Name
FrmInputStok Input Data Stok Barang Frame1 Input Data Barang Label1 Kode Barang Label2 Nama Barang Label3 Harga Barang Label4 Jumlah Barang TxtKodeBr (dikosongkan) TxtNamaBr (dikosongkan) TxtHargaBr (dikosongkan) TxtJumlahBr (dikosongkan) FtxtKodeBr (dikosongkan) False CmdCari
Frame Label Label Label Label TextBox TextBox TextBox TextBox TextBox CommandButton
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 37 No
12 13 14 15 16 17 18
Nama Object CommandButton CommandButton CommandButton CommandButton CommandButton CommandButton Adodc DataGrid
19
11 20
CommandButton Label
Properti
Nilai
Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name AllowAddnew AllowArrows AllowDelete AllowUpdate Name Caption Name Caption Font
Ca&ri CmdTambah &Tambah CmdUpdate &Update CmdSimpan &Simpan CmdHapus &Hapus CmdEdit &Edit CmdTutup &Tutup Adodc1 Data Stok Barang DataGrid1 False True False False CmdHapus &Hapus LblJumlah (dikosongkan) Bold
Kode Program 1. General, Declaration 'Nama : Andi Sunyoto 'Last Modify : 07/07/2003 16:05 WIB 'Email :
[email protected] Sub RefreshTampilan() Call Konek Adodc1.ConnectionString = StrConnect Adodc1.RecordSource = "SELECT * FROM stok" Adodc1.Refresh LblJumlah.Caption = "Jumlah Data : " & Adodc1.Recordset.RecordCount Set DataGrid1.DataSource = Adodc1 End Sub Sub TxtKeadaan(stat As Boolean) TxtNamaBr.Enabled = stat TxtHargaBr.Enabled = stat TxtJumlahBr.Enabled = stat End Sub
2. Komponen Form, Event Load (Ketika dipanggil/ diLoad) Private Sub Form_Load() Call TxtKeadaan(False) Call RefreshTampilan CmdEdit.Enabled = False CmdHapus.Enabled = False CmdSimpan.Enabled = False
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 38 CmdUpdate.Enabled = False TxtKodeBr.TabIndex = 0 End Sub
3. Komponen CmdCari, Event Click (Ketika diklik) Private Sub CmdCari_Click() If TxtKodeBr.Text = "" Then MsgBox "Kode Barang masih kosong !" Else StrSQL = "SELECT * FROM stok WHERE KodeBr='" & TxtKodeBr.Text & "'" Set Rs = Conn.Execute(StrSQL) If Rs.EOF Then MsgBox "Data dengan Kode """ + TxtKodeBr.Text + """ Tidak Ada ! ", © vbExclamation + vbOKOnly, "Peringatan" TxtKodeBr.SetFocus Else FTxtKodeBr.Text = "" + Rs("KodeBr") TxtKodeBr.Text = "" + Rs("KodeBr") TxtNamaBr.Text = "" + Rs("NamaBr") TxtHargaBr.Text = Rs("HargaBr") TxtJumlahBr.Text = Rs("JumlahBr") CmdEdit.Enabled = True CmdHapus.Enabled = True CmdSimpan.Enabled = True CmdUpdate.Enabled = True End If End If End Sub
4. Komponen CmdTambah, Event Click (Ketika diklik) Private Sub CmdTambah_Click() TxtKodeBr.Text = "" TxtNamaBr.Text = "" TxtHargaBr.Text = 0 TxtJumlahBr.Text = 0 Call TxtKeadaan(True) TxtKodeBr.SetFocus CmdSimpan.Enabled = True End Sub
5. Komponen CmdSimpan, Event Click (Ketika diklik) Private Sub CmdSimpan_Click() If TxtKodeBr.Text = "" Then MsgBox "Kode Barang belum diisi", vbExclamation + vbOKOnly, "Informasi" Else StrSQL = "SELECT KodeBr FROM stok WHERE KodeBr='" & TxtKodeBr.Text & "'" Set Rs = Conn.Execute(StrSQL) If Not Rs.EOF Then MsgBox "Data Sudah Ada", vbInformation + vbOKOnly, "Information" TxtKodeBr.SetFocus Else StrSQL = "INSERT INTO stok (KodeBr, NamaBr, HargaBr, JumlahBr) VALUES © ('" & TxtKodeBr.Text & "','" & TxtNamaBr.Text & "'," & TxtHargaBr.Text & "," © & TxtJumlahBr.Text & ")" Conn.Execute (StrSQL) RefreshTampilan End If End If End Sub
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 39 6. Komponen DataGrid1, Event RowColChange (Baris dan kolom Berubah) Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As © Integer) If Adodc1.Recordset.BOF Or Adodc1.Recordset.EOF Then MsgBox "Sudah di Akhir atau Awal data" Else With Adodc1 FTxtKodeBr.Text = .Recordset.Fields("KodeBr") TxtKodeBr.Text = .Recordset.Fields("KodeBr") TxtNamaBr.Text = .Recordset.Fields("NamaBr") TxtHargaBr.Text = .Recordset.Fields("HargaBr") TxtJumlahBr.Text = .Recordset.Fields("JumlahBr") End With CmdEdit.Enabled = True CmdHapus.Enabled = True End If End Sub
7. Komponen CmdEdit, Event Click (Ketika diklik) Private Sub CmdEdit_Click() Call TxtKeadaan(True) CmdUpdate.Enabled = True End Sub
8. Komponen CmdUpdate, Event Click (Ketika diklik) Private Sub CmdUpdate_Click() StrSQL = "SELECT KodeBr FROM stok WHERE KodeBr='" & TxtKodeBr.Text & "'" Set Rs = Conn.Execute(StrSQL) If (TxtKodeBr.Text <> FTxtKodeBr.Text) And (Not Rs.EOF) Then MsgBox "Data dengan kode " + TxtKodeBr.Text + " Sudah ada !", vbInformation © + vbOKOnly, "Information" TxtKodeBr.SetFocus Else StrSQL = "UPDATE stok SET KodeBr='" & _ TxtKodeBr.Text & "',NamaBr='" & TxtNamaBr.Text & "',HargaBr=" & _ TxtHargaBr.Text & ",JumlahBr=" & TxtJumlahBr.Text & _ " WHERE KodeBr='" & FTxtKodeBr.Text & "'" Conn.Execute (StrSQL) Call RefreshTampilan End If End Sub
9. Komponen CmdHapus, Event Click (Ketika diklik) Private Sub CmdHapus_Click() Dim pesan As Integer pesan = MsgBox("Apakah Anda yakin akan menghapus", vbQuestion + vbYesNo, © "Konfirmai") If pesan = 6 Then StrSQL = "DELETE FROM stok WHERE KodeBr='" & FTxtKodeBr.Text & "'" Conn.Execute StrSQL Call RefreshTampilan End If End Sub
10. Komponen CmdTutup, Event Click (Ketika diklik) Private Sub CmdTutup_Click() Unload Me End Sub
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 40
File Form Fungsi
: FrmInputCustomer.frm : Form untuk mengolah data Pembeli(Insert, Update, Delete, Edit)
Desain Form 5
3
6
7
9
1
8
10
11
13
2 12
15
4 14
17
18 16
No
1 2 3 4 5 6 7 8 9 10
Nama Object
Properti
Nilai
Form
Name Caption Name Caption Name Caption Name Caption Name Caption Name Text Name Text Name Text Name Text Visible Name Caption Name Caption
FrmInputCustomer Input Data Customer Frame1 Input Data Pembeli Label1 Kode Customer Label2 Nama Customer Label3 Alamat Customer TxtKodeCus (dikosongkan) TxtNamaCus (dikosongkan) TxtAlamatCus (dikosongkan) FTxtKodeCus (dikosongkan) False CmdCari Ca&ri CmdTambah &Tambah
Frame Label Label Label TextBox TextBox TextBox TextBox CommandButton CommandButton
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 41 No 11 12 13 14 15 16
Nama Object
Properti
Nilai
CommandButton
Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name AllowAddnew AllowArrows AllowDelete AllowUpdate Name Caption Font
CmdUpdate &Update CmdSimpan &Simpan CmdHapus &Hapus CmdEdit &Edit CmdTutup &Tutup Adodc1 Data Customer DataGrid1 False True False False LblJumlah (dikosongkan) Bold
CommandButton CommandButton CommandButton CommandButton Adodc DataGrid
17
18
Label
Kode Program 1. General, Declarations 'Nama : Andi Sunyoto 'Last Modify : 07/07/2003 16:05 WIB 'Email :
[email protected] Sub RefreshTampilan() Call Konek Adodc1.ConnectionString = StrConnect Adodc1.RecordSource = "SELECT * FROM customer" Adodc1.Refresh LblJumlah.Caption = "Jumlah Data : " & Adodc1.Recordset.RecordCount Set DataGrid1.DataSource = Adodc1 End Sub
Sub TxtKeadaan(stat As Boolean) TxtNamaCus.Enabled = stat TxtAlamatCus.Enabled = stat End Sub
2. Komponen Form, Event Load (Ketika dipanggil/ diLoad) Private Sub Form_Load() Call TxtKeadaan(False) Call RefreshTampilan CmdEdit.Enabled = False CmdHapus.Enabled = False CmdSimpan.Enabled = False CmdUpdate.Enabled = False TxtKodeCus.TabIndex = 0 End Sub
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 42 3. Komponen CmdCari, Event Click (Ketika diklik) Private Sub CmdCari_Click() If TxtKodeCus.Text = "" Then MsgBox "Kode Customer masih kosong !" Else StrSQL = "SELECT * FROM customer WHERE KodeCus='" & TxtKodeCus.Text & "'" Set Rs = Conn.Execute(StrSQL) If Rs.EOF Then MsgBox "Data dengan Kode """ + TxtKodeCus.Text + """ Tidak Ada ! ", © vbExclamation + vbOKOnly, "Peringatan" TxtKodeCus.SetFocus Else FTxtKodeCus.Text = "" + Rs("KodeCus") TxtKodeCus.Text = "" + Rs("KodeCus") TxtNamaCus.Text = "" + Rs("NamaCus") TxtAlamatCus.Text = Rs("AlamatCus") CmdEdit.Enabled = True CmdHapus.Enabled = True CmdSimpan.Enabled = True CmdUpdate.Enabled = True End If End If End Sub
4. Komponen CmdTambah, Event Click (Ketika diklik) Private Sub CmdTambah_Click() TxtKodeCus.Text = "" TxtNamaCus.Text = "" TxtAlamatCus.Text = "" Call TxtKeadaan(True) TxtKodeCus.SetFocus CmdSimpan.Enabled = True End Sub
5. Komponen CmdSimpan, Event Click (Ketika diklik) Private Sub CmdSimpan_Click() If TxtKodeCus.Text = "" Then MsgBox "Kode Customer belum diisi", vbExclamation + vbOKOnly, "Informasi" Else StrSQL = "SELECT KodeCus FROM Customer WHERE KodeCus='" & TxtKodeCus.Text & © "'" Set Rs = Conn.Execute(StrSQL) If Not Rs.EOF Then MsgBox "Data Sudah Ada", vbInformation + vbOKOnly, "Information" TxtKodeCus.SetFocus Else StrSQL = "INSERT INTO customer (KodeCus, NamaCus, AlamatCus) VALUES ('" © & TxtKodeCus.Text & "','" & TxtNamaCus.Text & "','" & TxtAlamatCus.Text & © "')" Conn.Execute (StrSQL) RefreshTampilan End If End If End Sub
6. Komponen DataGrid1, Event RowColChange (Baris dan kolom Berubah) Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As © Integer) If Adodc1.Recordset.BOF Or Adodc1.Recordset.EOF Then MsgBox "Sudah di Akhir atau Awal data" Else With Adodc1
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 43 FTxtKodeCus.Text = .Recordset.Fields("KodeCus") TxtKodeCus.Text = .Recordset.Fields("KodeCus") TxtNamaCus.Text = .Recordset.Fields("NamaCus") TxtAlamatCus.Text = .Recordset.Fields("AlamatCus") End With CmdEdit.Enabled = True CmdHapus.Enabled = True End If End Sub
7. Komponen CmdEdit, Event Click (Ketika diklik) Private Sub CmdEdit_Click() Call TxtKeadaan(True) CmdUpdate.Enabled = True End Sub
8. Komponen CmdUpdate, Event Click (Ketika diklik) Private Sub CmdUpdate_Click() StrSQL = "SELECT KodeCus FROM customer WHERE KodeCus='" & TxtKodeCus.Text & "'" Set Rs = Conn.Execute(StrSQL) If (TxtKodeCus.Text <> FTxtKodeCus.Text) And (Not Rs.EOF) Then MsgBox "Data dengan kode " + TxtKodeCus.Text + " Sudah ada !", © vbInformation + vbOKOnly, "Information" TxtKodeCus.SetFocus Else StrSQL = "UPDATE customer SET KodeCus='" & _ TxtKodeCus.Text & "',NamaCus='" & TxtNamaCus.Text & _ "',AlamatCus='" & TxtAlamatCus.Text & _ "' WHERE KodeCus='" & FTxtKodeCus.Text & "'" Conn.Execute (StrSQL) Call RefreshTampilan End If End Sub
9. Komponen CmdHapus, Event Click (Ketika diklik) Private Sub CmdHapus_Click() Dim pesan As Integer pesan = MsgBox("Apakah Anda yakin akan menghapus", vbQuestion + vbYesNo, © "Konfirmai") If pesan = 6 Then StrSQL = "DELETE FROM customer WHERE KodeCus='" & FTxtKodeCus.Text & "'" Conn.Execute StrSQL Call RefreshTampilan End If End Sub
10. Komponen CmdTutup, Event Click (Ketika diklik) Private Sub CmdTutup_Click() Unload Me End Sub
Note: Dalam Menjalankan sebuah form dan jika jumlah form lebih dari satu maka
harus di set dulu sebagai StartUp Object. Dari menu Project - Penjualan Properties. berarti FrmInputCustomer yang dijalankan pertama kali. Pilih form mana yang akan anda jalankan.
“Set dalam menu ini setiap Anda membuat Form baru dan akan dijalankan.”
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 44
File Form Fungsi
: FrmTransaksi.frm : Form untuk mengolah data Transaksi Penjualan Barang
Desain Form 7 11
6
9
12 1
2
8
3
13
4
14 5 10
15
20 19
16
18
17 21
22 25
23
24 25 26
No
1 2 3 4 5 6 7 8 9 10 11
Nama Object
Properti
Nilai
Form
Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption
FrmTransaksi Form Transaksi Barang Frame1 Data Transaksi Penjualan Barang Frame1 Data Pembelian Label1 Kode Customer Label2 Nama Customer Label3 Alamat Customer LblNamaCus (dikosongkan) LblAlamatCus (dikosongkan) Label4 No Nota * Label5 Tanggal Label6 Kode Nama Barang Beli Stok Total TxtKodeCus (dikosongkan)
Frame Frame Label Label Label Label Label Label Label Label TextBox
Name Text
Harga
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 45 No 13 14 15 16 17 18 19 20 21
Nama Object
Properti
Nilai
TextBox
Name Text Name Text Name Text Name Text Name Text Name Text Name Text Name Text Name Caption Name AllowAddnew AllowArrows AllowDelete AllowUpdate Name Caption Name Caption Name Caption Name Caption Font
TxtNoNota (dikosongkan) TxtTgl (dikosongkan) CmbKodeBr (dikosongkan) TxtNamaBr (dikosongkan) TxtJumlahBeli 0 TxtHarga (dikosongkan) TxtStok (dikosongkan) TxtTotal 0 Adodc1 Adodc1 DataGrid1 False True False False CmdHapus Ca&ri CmdOK &OK CmdTutup &Tutup LblTotalHarga (dikosongkan) Bold
TextBox ComboBox TextBox TextBox TextBox TextBox TextBox Adodc DataGrid
22
23 24 25 18
CommandButton CommandButton CommandButton Label
Kode Program 1. General, Declarations 'Nama : Andi Sunyoto 'Last Modify : 07/07/2003 16:05 WIB 'Email :
[email protected] Sub RefreshBeli() Call Konek Adodc1.ConnectionString = StrConnect Adodc1.RecordSource = "SELECT iKodeBr, NamaBr, HargaBr, iJumlah, iTotal, © iNonota FROM stok, item WHERE stok.KodeBr=item.iKodeBr AND iNonota='" & © TxtNoNota.Text & "'" Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 End Sub Sub SUMBeli() StrSQL = "SELECT SUM(iTotal) As TotalHarga FROM item WHERE iNonota='" & © TxtNoNota.Text & "'" Set Rs = Conn.Execute(StrSQL)
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 46 LblTotalHarga.Caption = "Total Harga : " & Rs("TotalHarga") End Sub
2. Komponen Form, Event Load (Ketika dipanggil/ diLoad) Private Sub Form_Load() TxtNoNota.Enabled = False TxtTgl.Enabled = False CmbKodeBr.Enabled = False TxtJumlahBeli.Enabled = False TxtTgl.Text = Format(Date, "dd - mmm - yyyy") End Sub
3. Komponen TxtKodeCus, Event KeyPress (ditekan tombol pada keyborad) Private Sub TxtKodeCus_KeyPress(KeyAscii As Integer) Dim pesan As Integer If KeyAscii = 13 Then ‘jika tombol enter ditekan If TxtKodeCus.Text = "" Then MsgBox "Kode Customer masih kosong !" Else StrSQL = "SELECT * FROM customer WHERE KodeCus='" & TxtKodeCus.Text & © "'" Set Rs = Conn.Execute(StrSQL) If Rs.EOF Then pesan = MsgBox("Data dengan Kode """ + TxtKodeCus.Text + """ Tidak © Ada ! " + Chr(13) + "Apakah Anda Akan menambahkannya ?", vbQuestion + © vbYesNo, "Konfirmasi") If pesan = 6 Then FrmInputCustomer.Show Else TxtKodeCus.SetFocus End If Else LblNamaCus.Caption = "" + Rs("NamaCus") LblAlamatCus.Caption = Rs("AlamatCus") TxtNoNota.Enabled = True TxtTgl.Enabled = True TxtNoNota.SetFocus End If End If End If End Sub
4. Komponen TxtNoNota, Event KeyPress (ditekan tombol pada keyborad) Private Sub TxtNoNota_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then StrSQL = "SELECT Nonota FROM Transaksi WHERE NoNota='" & TxtNoNota.Text & © "'" Set Rs = Conn.Execute(StrSQL) If Not Rs.EOF Then MsgBox "No Nota Sudah Ada, No yang Lain", vbInformation + vbOKOnly, © "Information" TxtNoNota.SetFocus Else StrSQL = "SELECT KodeBr FROM stok" Set Rs = Conn.Execute(StrSQL) CmbKodeBr.Clear Do While Not Rs.EOF CmbKodeBr.AddItem Rs("KodeBr") Rs.MoveNext Loop CmbKodeBr.Enabled = True
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 47 CmbKodeBr.SetFocus DataGrid1.Enabled = True End If End If End Sub
5. Komponen CmbKodeBr, Event Click Private Sub CmbKodeBr_Click() StrSQL = "SELECT * FROM stok WHERE KodeBr='" & CmbKodeBr.Text & "'" Set Rs = Conn.Execute(StrSQL) If Not Rs.EOF Then TxtNamaBr.Text = "" & Rs.Fields("NamaBr") TxtHarga.Text = Rs.Fields("HargaBr") TxtStok.Text = Rs.Fields("JumlahBr") Else TxtNamaBr.Text = "" TxtHarga.Text = 0 TxtStok.Text = 0 MsgBox "Kode Barang Tidak Ada" CmbKodeBr.SetFocus End If End Sub
6. Komponen CmbKodeBr, Event KeyPress (ditekan tombol pada keyborad) Private Sub CmbKodeBr_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Call CmbKodeBr_Click If TxtNamaBr.Text <> "" Then TxtJumlahBeli.Enabled = True TxtJumlahBeli.SetFocus End If End If End Sub
7. Komponen TxtJumlahBeli, Event Change Private Sub TxtJumlahBeli_Change() If TxtJumlahBeli.Text <> "" Then If CInt(TxtJumlahBeli.Text) <= CInt(TxtStok.Text) Then TxtTotal.Text = TxtJumlahBeli.Text * TxtHarga.Text CmdOK.Enabled = True Else MsgBox "Stok Tidak Cukup", vbExclamation + vbInformation, "Informasi" TxtJumlahBeli.SetFocus End If End If End Sub
8. Komponen TxtJumlahBeli, Event KeyPress (ditekan tombol pada keyborad) Private Sub TxtJumlahBeli_KeyPress(KeyAscii As Integer) If (KeyAscii = 13) Then If CInt(TxtJumlahBeli.Text) <= CInt(TxtStok.Text) Then StrSQL = "INSERT INTO item (iNonota, iKodeBr, iJumlah, iTotal) VALUES © ('" & TxtNoNota.Text & "', '" & CmbKodeBr.Text & "'," & TxtJumlahBeli.Text © & "," & TxtTotal.Text & ")" Conn.Execute (StrSQL) StrSQL = "UPDATE stok SET JumlahBr=" & TxtStok.Text –
© TxtJumlahBeli.Text & " WHERE KodeBr='" & CmbKodeBr.Text & "'" Conn.Execute (StrSQL)
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 48 TxtNamaBr.Text = "" TxtHarga.Text = 0 TxtStok.Text = 0 Call RefreshBeli Call SUMBeli CmbKodeBr.SetFocus Else MsgBox "Stok Tidak Cukup", vbExclamation + vbInformation, "Informasi" TxtJumlahBeli.SetFocus End If End If End Sub
9. Komponen CmdHapus, Event Click Private Sub CmdHapus_Click() Dim KodeBr, Nonota As String Dim JumlahBeli As Integer KodeBr = Adodc1.Recordset("iKodeBr") Nonota = Adodc1.Recordset("iNonota") JumlahBeli = Adodc1.Recordset("iJumlah") If KodeBr = "" Then MsgBox "Anda pilih mana yang batal beli !" DataGrid1.SetFocus Else StrSQL = "DELETE FROM item WHERE iKodeBr ='" & KodeBr & "' AND iNoNota='" & © Nonota & "'" Conn.Execute (StrSQL) StrSQL = "UPDATE stok SET JumlahBr= JumlahBr + " & JumlahBeli & " WHERE © KodeBr='" & KodeBr & "'" Conn.Execute (StrSQL) Call RefreshBeli Call SUMBeli CmdOK.Enabled = False End If End Sub
10. Komponen CmdOK, Event Click Private Sub cmdOK_Click() Dim pesan As Integer StrSQL = "INSERT INTO transaksi (Nonota, KodeCus, TglNota) VALUES ('" & © TxtNoNota.Text & "', '" & TxtKodeCus.Text & "','" & TxtTgl.Text & "')" Conn.Execute (StrSQL) MsgBox "Data transaksi sudah terekam", vbInformation + vbOKOnly, "Informasi" TxtKodeCus.SetFocus CmbKodeBr.Enabled = False DataGrid1.Enabled = False End Sub
11. Komponen CmdTutup, Event Click (ketika diklik) Private Sub CmdTutup_Click() Unload Me End Sub
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 49 File Form
: FrmDataTransaksi.frm
Fungsi
: Form melihat Transaksi (No Nota) dan apa barang yang dibeli
Desain Form 5
6
7
1
2
3
9
4
8
No
1 2 3 4
Nama Object
Properti
Nilai
Form
Name Caption Name Caption Name Caption Name Caption Name Caption Name AllowAddnew AllowArrows AllowDelete AllowUpdate Name AllowAddnew AllowArrows AllowDelete AllowUpdate Name Caption Name Caption Name Caption Font
FrmDataTransaksi Form Data Transaksi Dan Detail Transaksi Frame1 Data Transaksi Frame1 Detail Barang Yang dibeli Adodc1 No Nota Adodc2 Detail Penjualan DataGrid1 False True False False DataGrid2 False True False False CmdDelete Delete Transaksi CmdTutup &Tutup LblTotalHarga (dikosongkan) Bold
Frame Frame Adodc Adodc DataGrid
5 DataGrid 6
7 8 9
CommandButton CommandButton Label
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 50 Kode Program 1. General, Declarations 'Nama : Andi Sunyoto 'Last Modify : 07/07/2003 16:05 WIB 'Email :
[email protected] Sub RefreshTransaksi() Call Konek Adodc1.ConnectionString = StrConnect Adodc1.RecordSource = "SELECT * FROM transaksi" Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 DataGrid1.Columns(2).NumberFormat = "dd - mmm - yyyy" End Sub Sub RefreshDetail(DataDetail As String) Call Konek Adodc2.ConnectionString = StrConnect If DataDetail <> "" Then Adodc2.RecordSource = "SELECT iKodeBr As Kode, NamaBr As [Nama Barang] , © HargaBr As Harga, iJumlah As Jumlah, iNonota As [No Nota] FROM stok, item © WHERE stok.KodeBr=item.iKodeBr AND iNonota='" & DataDetail & "'" Else Adodc2.RecordSource = "SELECT iKodeBr As Kode, NamaBr As [Nama Barang] , © HargaBr As Harga, iJumlah As Jumlah, iNonota As [No Nota] FROM stok, item © WHERE stok.KodeBr=item.iKodeBr" End If Adodc2.Refresh Set DataGrid2.DataSource = Adodc2 End Sub
2. Komponen Form, Event Load (Ketika dipanggil/ diLoad) Private Sub Form_Load() Call RefreshTransaksi Call RefreshDetail("") End Sub
3. Komponen DataGrid1, Event RowColChange (Baris dan kolom pada grid berubah) Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As © Integer) Dim Nonota As String Nonota = Adodc1.Recordset("Nonota") Call RefreshDetail(Nonota) StrSQL = "SELECT SUM(iTotal) As TotalHarga FROM item WHERE iNonota='" & Nonota © & "'" Set Rs = Conn.Execute(StrSQL) LblTotalHarga.Caption = "Total Harga : " & Rs("TotalHarga") End Sub
4. Komponen CmdDelete, Event Click (Ketika diclick) Private Sub CmdDelete_Click() Dim pesan As Integer Dim Nonota As String Nonota = Adodc1.Recordset("Nonota") pesan = MsgBox("Apakah Anda yakin akan menghapus", vbQuestion + vbYesNo, © "Konfirmasi") If pesan = 6 Then StrSQL = "DELETE FROM transaksi WHERE Nonota='" & Nonota & "'"
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 51 Conn.Execute StrSQL Call RefreshTransaksi StrSQL = "DELETE FROM item WHERE iNonota='" & Nonota & "'" Conn.Execute StrSQL Call RefreshDetail("") End If End Sub
5. Komponen CmdTutup, Event Click Private Sub CmdTutup_Click() Unload Me End Sub
File Form Fungsi
: FrmAbout.frm : Menampilkan data tentang program dan programmer
Desain Form Dari Menu Toolbar seperti gambar (1) dibawah Pilih Form – About Dialog – Open.
1
2
Dari langkah langkah diatas kemudian Anda Modifikasi Labelnya menjadi seperti gambar dibawah. Untuk Kode program yang terbentuk secara otomatis di biarkan saja.
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 52
Membuat Laporan/ Report
File Form
: DataEnvironment1.Dsr dan DataReport1.Dsr
Fungsi
: Membuat laporan (Report)
Berikut langkah-langkah membuat laporan Stok barang. A. Membuat Data Sumber Untuk Laporan (Data Environment) 1. Pilih menu Project - More ActiveX Designers – Data Environment 2. Klick kanan pada Connection1 – Properties – Microsoft Jet 4.0 OLEDB Provider – Next
3. Pada select or enter database name isikan Nama database yang telah dibuat yaitu penjualan.mdb 4. Klik tombol Test Connection, jika sudah muncul pesan Success berarti database sudah terhubung.
5. Klik kanan pada Connection1 - Add Command, kemudian terbentuk Command1 6. Klik kana pada Command1, kemudian setting seperti gambar dibawah. SELECT * FROM stok berarti menampilkan seluruh data stok barang. Klik Apply dan OK.
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 53
7. Simpan dengan nama DataEnvironment1.Dsr
B. Membuat Desain Laporan (Data Report) Langlah: 1. Pilih menu Project – Add Data Report 2.
Anda Drag Drop Command1 ke area Data Report bagian Detail (Section1)
3. Silakan Anda lihat gambar dibawah.
Anda
tata
pada
gambar 1 di bagian Page Header.
1
2
4. Anda desain seperti gambar dibawah. setelah seperti gambar dibawah berarti desain laporan Anda selesai.
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 54
1
5. Simpan desain laporan yang telah dibuat dengan nama DataReport1.Dsr
No
Nama Object DataReport
1
RptLabel
Properti
Nilai
Name
DataRepot1
Caption
Laporan Data Stok
DataSource
DataEnvironmen1
DataMember
Command1
Name
Label5
Caption
LAPORAN DATA STOK BARANG
Hasil Running DataReport1
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 55
File Form Fungsi
: FrmUtama.frm : Membuat Form dan Menu Utama yang menyatukan seluruh form
Desain Form
1
2
3
No
1
Nama Object
Properti
Nilai
Form
Name Caption Name Caption Font Name Picture
FrmPassword Password Label1 Aplikasi Penjualan Barang Style: Bold, Size:24 Image1 C:\Program Files\Microsoft Visual Studio\Common\Graphics\Metafile\Business\3DLRSIGN.WMF True Label2 PT. Myandisun Co.Ltd Style: Bold, Size:24
Label Image
2
3
Strecth Name Caption Font
Label
Desain Menu Membuat Menu Utama 1. Klik
pada toolbar.
2. Susun Menu sebagai berikut.
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 56
1
2
3
4
5
6
7
8
9
10
Untuk membuat Level pada menu gunakan panah yang telah disediakan. Contoh Kita membuat menu Input Stok Barang pertama anda klik pana ke kanan. Maka dia akan terbentuk Level ke 2 dengan tanda …
No 1 2 3 4 5 6 7 8 9 10
Caption File &Master Input &Stok Barang Input &Customer &Transaksi Penjualan Data Transaksi &Laporan Laporan Data Barang &About &Exit
Name
Level
MnMaster MnInputStok MnInputCus MnTransaksi MnPenjualan MnDataTransaksi MnLaporan MnLapDataBarang MnAbout MnExit
1 2 2 1 2 2 1 2 1 1
Shortcut
Ctrl+S Ctrl+C Ctrl+P Ctrl+T Ctrl+L
Kode Program 1. Komponen Form, Event Load Private Sub Form_Load() Call Konek
End Sub 2. Komponen MnInputStok, Event Click Private Sub MnInputStok_Click() FrmInputStok.Show End Sub
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 57 3. Komponen MnInputCus, Event Click Private Sub MnInputCus_Click() FrmInputCustomer.Show End Sub 4. Komponen MnPenjualan, Event Click Private Sub MnPenjualan_Click() FrmTransaksi.Show End Sub 5. Komponen MnDataTransaksi, Event Click Private Sub MnDataTransaksi_Click() FrmDataTransaksi.Show End Sub 6. Komponen MnLapDataBarang, Event Click Private Sub MnLapDataBarang_Click() Dim de As DataEnvironment1 Set de = New DataEnvironment1 Set DataReport1.DataSource = de DataReport1.Show End Sub 7. Komponen MnAbout, Event Click Private Sub MnAbout_Click() frmAbout.Show End Sub 8. Komponen MnExit, Event Click Private Sub MnExit_Click() Dim pesan As Integer pesan = MsgBox("Anda yakin keluar ?", vbQuestion + vbYesNo, © "Konfirmasi") If pesan = 6 Then Conn.Close
Unload Me End If End Sub
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 58
File Form Fungsi
: FrmPassword.frm : Untuk menjadi keamanan program dari orang yang tidak berhak
Desain Form 1
2
3
No
1 2 3 4
4
Nama Object
Properti
Nilai
Form
Name Caption StartUpPosition Name Caption Name Text PasswordChar Name Caption Name Caption
FrmPassword Password 2 - CenterScreen Label1 Password TxtPassword (dikosongkan) * CmdOk OK CmdBatal Batal
Label TextBox CommandButton CommandButton
Kode Program 1. Komponen CmdOK, Event Click Private Sub cmdOK_Click() If TxtPassword.Text = "" Then MsgBox "Password belum diisi", vbExclamation + vbOKOnly, "Informasi" TxtPassword.SetFocus Else If TxtPassword.Text = "amikom" Then FrmUtama.Show Else MsgBox "Password Anda Salah", vbCritical + vbOKOnly, "Information" TxtPassword.SetFocus End If End If End Sub
2. Komponen CmdBatal, Event Click Private Sub CmdBatal_Click() Unload Me End Sub
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 59
Langkah Terakhir Setelah semua Form telah dibuat set FrmPassword sebagai yang pertama dipanggil dalam Project.
Anda pindah ke Tab Make
Simpan program Anda. Dan Anda jalankan.
Note: Untuk mengamankan aplikasi yang telah dibuat sebaiknya aplikasi anda diberi password dan database yang dibuat di MS. Access juga diberi password. Karena jika pengamanan password hanya diberikan pada program aplikasinya maka data-data yang ada didalam database tetap dapat diakses oleh orang lain karena database-nya tidak diberi password.
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 60
MODUL TAMBAHAN (Cara Lain Membuat Aplikasi Basis data)
1) Panggil Visual Basic 2) Tambahkan komponen dari menu Project Æ Component a. Microsoft ADO Data Control 6.0 (OLEDB) b. Microsoft DataGrid Control 6.0 (OLEDB)
A. Penanganan Dengan Konfigurasi Visual Setting Komponen Adodc 1) Pilih Komponen Adodc, DataGrid, dan Label dan setting seperti gambar dibawah:
2) Aktifkan Adodc1 3) Masukkan Properti pilih Use Connection String Æ Build
4) Data Links Properties 5) Pilih Microsoft Jet 4.0 OLE DB Provider Æ Next
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 61
6) Klick
Æ Pilih Database yang diinginkan, jika tempat penyimpanan
program dan database menjadi satu bisa langsung menuliskan nama file Databasenya.
7) Klik tombol Test Connection, lihat pesan yang muncul (pesan dibawah Success)
8) OK -> Apply
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 62
9) Klik tombol OK 10) Properti RecordSource Klik 11) Command Type: adCmdText 12) Command Text (SQL) : SELECT * FROM stok
13) Apply -> OK
Setting DataGrid 1. Aktifkan Komponen DataGrid 2. Setting Properti Data Source : Adodc1 3. Silakan Program Anda di Running/ dijalankan (Tekan F5)
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 63
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 64
B. Penanganan Dengan Kode Program Keuntungan Bisa diubah saat RunTime 1) Pilih Komponen Seperti dibawah
Setting: 2) Masuk Ke Code Editor 3) Pilih Komponen Form Event Load Private Sub Form_Load() Dim StrKonek As String StrKonek = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path ©+ "\penjualan.mdb;" Adodc1.ConnectionString = StrKonek Adodc1.RecordSource = "SELECT * FROM stok" Set DataGrid1.DataSource = Adodc1 End Sub
4) Jalankan Program Anda
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-
Modul Pemrograman Komputer 2 –Teknik Informatika- 65
Catatan: 1. Silakan Bandingkan Contoh diatas. 2. Biasanya yang programmer VB menggunakan Cara dengan source code (cara B). 3. Keuntungan Cara B, kita bisa merubah action program di saat RunTime (ketika dijalankan).
STMIK AMIKOM YOGYAKARTA –www.amikom.ac.id-