Pemrograman Visual 1 (VB Fund) Database Control Multi Table

Pemrograman Visual 1 (VB Fund)
Database Control Multi Table
Agung Sasongko, M.Kom

Multi Table






Database biasanya terdiri dari tabel-tabel yang saling
berelasi
Sebuah Form pada aplikasi memungkinkan mengendalikan
lebih dari satu tabel bahkan lebih dari satu database.
Setiap komponen ADO biasanya digunakan untuk
menangani satu buah tabel.
Untuk dapat mengendalikan lebih dari satu tabel maka
diperlukan lebih dari satu komponen ADO pada sebuah
Form


Komponen ADO Untuk Multi-table

Membuat Form Pengisian Data Buku Pada
Aplikasi Perpustakaan



Program untuk menyimpan Data Buku.
Data terdiri dari:




Kode Buku
Judul Buku
Penerbit (Relasi)

Component Yang Dibutuhkan



Gunakan Komponen


Microsoft ADO Data Control 6.0 (OLEDB)



Microsoft DataGrid Control 6.0 (OLEDB)



Microsoft Windows Common Control-2 6.0

Buat Database





Buatlah database menggunakan Ms.Access

format Database Ms. Access 2000 s/d 2003.
Nama file dbperpus.mdb,
Letakkan di folder yang sudah dipersiapkan. Contoh:
d:\vbperpusku\

Buat Tabel


Tabel Penerbit:
No. Field Name



Field Type

1

ID

Autonumber


2

penerbit

Text

Size

Keterangan
PK

50

Tabel Buku
No. Field Name

Field Type

Size


1

kd_buku

Text

10

2

judul

Text

80

3

Id_penerbit


Number

Integer

Keterangan
PK

Direlasikan

Isi Tabel Penerbit

Design

Beri Icon Command:
Style = 1 – Graphical
Picture = Pilih gambar

Adodc1
Database dbperpus.mdb

Tabel : Penerbit

Adodc2
Database dbperpus.mdb
Tabel : buku

Simpan Project


Gantilah nama Project
sesuai yang anda inginkan,
misalkan Perpustakaan.
Perubahan Nama Projek
melalui menu : Project ->
Project1 Properties



Simpanlah project di satu
folder dengan basis data

disimpan.

Pastikan Project VB dan DB berada di satu
folder yang sama




Keluar dari Visual Basic, dan pastikan file Project Visual
Basic dan Basis Data dbperpus.mdb berada di folder
yang sama. Hal ini untuk bertujuan konfigurasi koneksi
nantinya dapat berjalan secara fleksibel.
Kemudian buka project Visual Basic Perpustakaan yang
sudah dibuat melalui folder ini.

Setting Koneksi Ke Basis Data





Gunakan Adodc1 untuk mengatur koneksi.
Pilih Adodc1, Masuk ke properties->(Custom)
Pilih Use Connection String, tekan tombol [Build]

Pilih Provider Konektor Basis Data




Pilih Provider : Microsoft
Jet 4.0 OLE DB Provider
Kemudian [Next]

Tentukan Basis Data




Isikan Nama Database. Nama database yang sudah dibuat
adalah dbperpus.mdb

Kemudian uji
[Test Connection]
Bila pengaturan benar, maka
akan tampil pesan koneksi
sukses.

Bila sudah klik OK…OK…

Pengaturan Koneksi Tabel






Masih di Properties ADODC1, masuk ke RecordSource
Set CommandType = 2-adCmdTable
Set Table = penerbit
Bila sudah OK


Atur Pengaturan Adodc2




Lakukan hal yang serupa dengan pengaturan Database
pada Adodc1. Perbedaannya terletak pada RecordSource
untuk nama tabel.
Pilih Tabel = Buku

Kaitkan Adodc menjadi Datasource Pada
Komponen Di Form


Atur objek Combo Penerbit pada properti DataSource
menjadi DataSource = ADODC1

Kaitkan Adodc menjadi Datasource Pada
Komponen Di Form (2)


Atur objek DataGrid pada properti DataSource
menjadi DataSource = ADODC2

Melihat Hasil Koneksi


Untuk Memastikan Visual
Basic telah terhubung ke
Basisdata, sekarang
jalankan Program.

Buat Procedure IsiComboPenerbit
Procedure IsiCombo berguna untuk membaca isi tabel Penerbit dan
diisikan ke combobox Penerbit

Procedure Bersih


Letakkan perintah procedure bersih

Procedure AktifInputan(state)


Procedure aktifinputan bertugas untuk meng-aktifkan dan
menon-aktifkan inputan sesuai parameter yang dimasukkan.
Serta merubah warna inputan menjadi putih bila status aktif, dan
buttonface bila status non-aktif

Implementasi Procedure IsiComboPenerbit,
Bersih dan aktifInputan


Letakkan perintah berikut pada [Form] event [Load]



Jalankan program, lihatlah hasil pada combobox penerbit.
Apakah sudah ada item terisi didalamnya????
Apakah semua isi inputan sudah kosong?
Apakah warna inputan menjadi abu-abu saat non-aktif?
Bila belum ada maka ada yang salah pada kode program yang
anda ketikan, periksa kembali 





Implementasi Procedure IsiComboPenerbit,
Bersih dan aktifInputan di [Command Baru]


Letakkan kode berikut di [command Baru] event [Click]

Simpan Data




Untuk menyimpan data gunakan komponen Adodc pada
objek Recordset untuk melakukan penyimpanan data.
Struktur:
With Adodc1.Recordset
.addNew
!namaField = dataYangInginDisimpan

.update
end with

Fungsi Simpan

Implementasi Fungsi Simpan


Letakkan kode berikut pada [Command Simpan] event
[Click]

Testing Simpan Data

Membaca Isi DataGrid




Pada Datagrid yang sudah dikaitkan dengan ADODC pada
dasarnya informasi yang ingin didapatkan bisa langsung
mengakses ke ADODC nya.
Sebagai contoh, ingin mendapati informasi dari item yang
terpilih dari daftar yang ada di DataGrid.

with Adodc1.Recordset
namaObjekPenerima = !nama_field
end With
Contoh:
With Adodc1.RecordSet
txtNama.text = !nm_pegawai
end With

Procedure Edit


Procedure ini digunakan untuk menampilkan isi data yang
terpilih pada datagrid ke masing-masing inputan

Implementasi Procedure Edit


Letakkan kode berikut pada [command edit] event [Click]



Coba jalankan program. Pilihlah salah satu item dari data
yang telah disimpan pada Datagrid
Kemudian Klik tombol Edit. Apa kah masing-masing
inputan telah terisi data sesuai data yang dipilih pada
datagrid????
Apakah kegunaan perintah setFocus???





Perbaiki Data / Update
Perbaiki data atau melakukan perubahan data yang telah
ada di dalam tabel dapat dilakukan melalui objek
Adodc1.Recordset. Dengan mencari terlebih dahulu data
yang ingin di ubah dengan method find.
 Biasanya pencarian berdasarkan data primary key nya.
Struktur


with Adodc1.Recordset
.find “nama_field_primary = „”+nilai_id_yg_dicari+”‟”

!nama_field = isiDataBaru
end With

Fungsi Update

Implementasi Fungsi Update


Letakkan kode berikut di [Command Perbaiki] event
[Click]

Testing Update Data







Pilih Salah satu data pada Datagrid
Klik Tombol Edit
Ubah data pada inputan
Klik Perbaiki
Lihat hasilnya????

Implementasi Tombol Batal


Letakkan kode berikut di [Command Bata] Event [Click]

Hapus Data
Untuk menghapus data, gunakan method Delete pada
Recordset di Adodc.
 Pertama pilihlah data yang ingin di hapus, dapat
menggunakan method find seperti yang digunakan pada
update.
Struktur:


with Adodc1.Recordset
.find “nama_field_pk=„” & nilai & ”‟”
.delete
end wtih

Fungsi Hapus(kdbuku)

Implementasi Fungsi Hapus


Letakkan kode berikut pada [Command Hapus] event
[Click]

Testing Hapus





Jalankan Program
Pilih salah satu
item data yang
ingin dihapus pada
DataGrid
Klik Tombol
Hapus

Jalankan Program


Testing semua fungsi apa sudah berjalan dengan baik apa
belum 

Tambah Tabel





Tambahkan Table pada database dbperpus.mdb sbb:
Tabel Anggota
No

Field Name

Field Type

Size

1

*no_anggota

TEXT

6

2

nama

Text

50

3

Alamat

Text

250

4

notelp

Text

14

Isi Tabel Anggota

Tambah Tabel




Tabel “peminjaman”
No

Field Name

Field Type

Size

1

*no_pinjam

TEXT

6

2

Tgl_pinjam

Date/Time

3

Tgl_kembali

Date/Time

4

No_anggota

Text

6

Tabel “detail_pinjam”
No

Field Name

Field Type

Size

1

*id

Autonumber

2

*no_pinjam

Text

6

3

Kd_buku

Text

10

Tambah Tabel


Tabel “detail_sementara”
No

Field Name

Field Type

Size

1

*Kd_buku

Text

10

2

judul

Text

80

Relasi Table

Tambahkan form Peminjaman




Form peminjaman adalah form untuk mencatat buku yang
dipinjam oleh peminjam
Tabel yang digunakan:









Anggota
Buku
Penerbit
Detail_pinjam
Detail_sementara

Tambahkan Form
Menu [Project]->[Add Form]

Ubah nama ADODC


Ubah Nama Adodc:







ADODC1
ADODC2
ADODC3
ADODC4
ADODC5

=
=
=
=
=

AdoSementara
AdoAnggota
AdoBuku
AdoPeminjaman
AdoDetailPinjam

Setting Koneksi Ke Basis Data


Atur masing-masing Datasource komponen ADODC sebagai berikut:










AdoSementara : adCmdTabel - Table = detail_sementara
AdoAnggota : adCmdTabel – Table = Anggota
AdoBuku : adCmdText - SQL =SELECT a.*, b.penerbit FROM buku
a LEFT JOIN penerbit b ON a.id_penerbit=b.id
AdoPeminjaman : adCmdTabel - Table = Peminjaman
AdoDetailPinjam: adCmdTabel - Table = detail_peminjaman

Atur Objek Form untuk Datasource






DataGrid : DataSource = AdoSementara
txtnoAnggota : DataSource = AdoAnggota
txtkdBuku : DataSource = AdoBuku
txtnoPinjam : DataSource = AdoPeminjaman
Txtjudulbuku : DataSource = AdoDetailPinjam

BUAT FORM INDUK

Tambahkan Form Utama




Form utama digunakan sebagai induk form pada program.
Form yang digunakan untuk membuka form-form lainnya.
Buat melalui


Menu [Project]->Add MDI Form->[Open]

Menambah Menu Pada MDI Form


Pada design form MDI, Klik kanan, pilih [Menu Editor]

Menambah Menu Pada MDI Form




Buatlah Menu Master, menu ini digunakan untuk Top Menu.
Cara buat seperti berikut:
Bila sudah selesai [Next]

Menambah SubMenu Pada Menu Master



Buatlah Sub Menu “Buku”
Agar dapat menjadi sub
Menu, click tombol Panah
ke kanan

Menambah Menu Transaksi





Buatlah Menu Transaksi, menu ini
digunakan untuk Top Menu. Cara
buat seperti berikut:
Bila sudah selesai [Next]
Jika Posisi menu transaksi masuk ke
dalam, klik panah Kiri, sehingga
seperti gambar di samping.

Menambah Sub Menu Transaksi


Buatlah Sub Menu
“Peminjaman” di bawah
menu Transaksi

Hasil MDI Form

Beri Kode Form Show Pada Masing-Masing
Menu


Pilih Sub-Menu Buku. Ketikkan Kode Berikut:
call [nama_form_Buku].show()



Pilih Sub-Menu Peminjaman. Ketikan kode berikut:
call [nama_form_Peminjaman].show()

Atur Start-Up Object








Pengaturan Start-Up Object
harus dilakukan untuk
menentukan Form atau
bagian mana yang terlebih
dulu berjalan.
Masuk ke Project->
Properties…
Ganti Start-Up Object ke
MDIForm yang barusan
dibuat
Jika sudah selesai klik OK

Atur Form Menjadi MDIChild




Agar form-form yang dipanggil melalui MDIForm menjadi
anak dari MDIForm, maka harus dilakukan pengaturan
Pada Form-Form tsb.
Caranya pilih Form, lihat pada Properties, ganti
MDIChild = true

Contoh sbb:

Lakukan hal yang sama
Pada Form Buku

Testing Form Utama







Jalankan Program….
Bila yang tampil adalah MDIForm berarti sudah benar
pengaturan Start-Up Object
Pilih menu Buku. Apakah Form buku tampil?
Pilih menu Peminjaman. Apakah Form Peminjaman Tampil?
Bila tidak tampil, maka ada yang salah pada kode program
anda. Koreksi kembali 

Hasil Testing Menu Buku

Hasil Testing Menu Peminjaman

LANJUT FORM PEMINJAMAN

Procedure BersihkanSementara


Procedure ini untuk menghapus isi tabel detail_sementara

Procedure Bersih

Procedure aktifInputan(state)

Implementasi Procedure Bersih,
AktifInputan, BersihSementara


Letakkan kode berikut di [Form] event [Load]



Letakkan Kode berikut di [Command Pinjam Baru] event
[Click]

Implementasi Procedure Bersih,
AktifInputan, BersihSementara


Letakkan Kode berikut di [Command Batal] event [Click]



Jalankan program. Pilih menu Peminjaman
Apakah saat program tampil semua inputan dalam keadaan non
aktif?
Jika tombol Simpan Baru di klik, apakah semua inputan menjadi
aktif?
Apakah posisi pengisian fokus pada no pinjam?
Jika tidak, maka ada yang salah pada kode program anda.
Periksa kembali 







Function cariAnggota(kdanggota)


Fungsi ini digunakan untuk mencari data anggota
berdasarkan kd anggota yang dicari. Nilai balik adalah
Object Recordset (Seperangkat Data)

Implementasi Fungsi cariAnggota


Letakkan kode berikut di [textbox No. Anggota] event
[KeyPress]

Testing Cari Anggota





Jalankan program. Pilih menu Peminjaman
Isikan kode Anggota sesuai data yang telah diinput di tabel
anggota. Misalkan AN-002
Kemudian tekan ENTER
Apakah nama, alamat dan no telepon tampil sesuai kode
anggota yang diinputkan????

Function cariBuku(kdbuku)


Fungsi ini digunakan untuk mencari data buku berdasarkan
kd buku yang dicari. Nilai balik adalah Object Recordset
(Seperangkat Data)

Implementasi fungsi cariBuku


Letakkan kode berikut di [TextBox Kode Buku] event
[KeyPress]

Testing Cari Buku





Jalankan Program. Pilih menu Peminjaman
Isikan Kode Buku sesui data yang telah tersimpan di buku.
Jika Belum ada, isikan terlebih dahulu.
Setelah diisi kode buku, tekan ENTER
Apakah tampil judul dan nama penerbit????

Fungsi addPinjam(kdbuku)


Fungsi ini berguna untuk menyimpan kode buku yang ingin
dipinjam secara sementara di tabel detail_sementara

Implementasi fungsi addPinjam


Letakkan kode berikut di [Command Pinjam] event
[Click]

Testing Fungsi add Pinjam




Jalankan Program. Pilih menu peminjaman
Isikan kode buku terlebih dahulu. Tekan Enter. Bila sudah
tampil judulnya, tekan tombol [Pinjam]
Apakah data buku masuk ke DataGrid????

Fungsi simpanPeminjaman


Fungsi ini untuk menyimpan data
peminjaman ke tabel Peminjaman

Fungsi simpanDetail(kdbuku)


Fungsi ini untuk menyimpan data detail peminjaman ke
tabel detail_peminjaman per kode buku. Hasil balik
adalah 1 untuk kesalahan, dan 0 untuk keberhasilan
simpan

Fungsi simpanDetailPinjam()


Fungsi ini untuk menyalin isi dari tabel_sementara ke
tabel_Detail. Nilai balik berupa jumlah kesalahan yang
terjadi

Implementasi Fungsi SimpanPeminjaman


Ketikkan kode berikut di [Command Simpan] event
[Click]

Testing Simpan Peminjaman










Jalankan Program. Pilih Peminjaman
Klik Baru Pinjam
Isikan No. Pinjam
Isikan No. Anggota
Isikan Kode buku yang dipinjam
Klik Tombol Pinjam
Klik tombol Simpan
Apakah Berhasil?????

Latihan


Buatlah Form untuk pengisian data anggota.






Buatlah form untuk pengisian data penerbit





Bisa menampilkan isi data dari tabel anggota
Bisa menambah, merubah, menghapus data anggota
Bisa menampilkan isi data dari tabel penerbit
Bisa menambah, merubah dan menghapus data penerbit

Buatlah program penjualan, yang terdiri dari:



Pengelolaan data barang
Pengelolaan transaksi penjualan