LATIHAN 4 Database Master-Detail ARSys Software Developed/AbdRohim 43
Hubungan antara dua file atau tabel ada yang bersifat Melengkapi/menjelaskan/memberikan keterangan dari suatu field, bisanya field tersebut selalu menjadi sebuah foreigkey. Selain itu ada juga hubungan yang bersifat ketergantungan artinya suatu file (Anak) tidak akan mempunyai artinya bila tidak ada file (Induk), bentuk seperti ini sering disebut dengan Master- Detail atau Induk-Anak. Contoh kasus (untuk model yang pertama) yang akan diambil dalam modul ini akan mengembangkan kasus pada modul sebelumnya. Pada kasus tersebut diinginkan untuk menampilkan kategori dalam bentuk sebuah kata (Unit, Aksesories, Periperal) sementara saat disimpan dalam file yang ditulis hanya nomor urutnya saja (1,2,3). Hal ini dibuat seperti ini guna mengatisipasi perkembangan dimasa mendatang, jika terjadi pemambahan kategori maka tidak perlu merubah source program tetapi cukup dengan menambahkan jenis kategorinya saja. Bentuk hubungan Master-Detail ini banyak sekali terdapat dalam permasalahan umum, misalnya sebuah Faktur pembelian atau penjualan, Kartu Studi Mahasiswa, Kartu Peminjaman buku diperpustakaan dll, kesemuanya mempunyai keteraturan yang sama. Contoh. Dalam faktur terdapat data-data sbb: No. Faktur, Tanggal faktur, Kepada atau Dari (Konsumen/Produsen), Nomor urut, Nama barang, Satuan, Jumlah barang, Harga, Total. Jika digambarkan dalam sebuah tabel akan berbentuk sbb: No.Faktur Tanggal Kepada NamaBarang Satuan Jumlah Harga Total Jika dimasukan satu buah transaksi dimana seseorang membeli tiga macam barang maka data yang akan disimpan sbb No.Faktur Tanggal Kepada NamaBarang Satuan Jumlah Harga Total 1 01/01/99 Adi Kopi buah 10 1000 10000 1 01/01/99 Adi Gula buah 10 500 5000 1 01/01/99 Adi Susu kaleng 1 5000 5000 dari tabel akan terlihat ada tiga field yang ditulis berulang (No. Faktur, Tanggal, Kepada). Dalam teori database, dalam file tersebut ada redudansi oleh sebab itu harus dipecah untuk menghilangkan redudansi tersebut, sehingga bentuknya akan menjadi seperti berikut: Tabel-A No.Faktur Tanggal Kepada 1 01/01/99 Adi Tabel-B No. Faktur NamaBarang Unit Jumlah Harga Total 1 Kopi buah 10 1000 10000 1 Gula buah 10 500 5000 1 Susu kaleng 1 5000 5000 Tabel-A biasanya disebut dengan Master/Induk dan Tabel-B disebut dengan Detail/Anak yang dihubungkan dengan sebuah key (No.Faktur). Dalam proses manipulasi terhadap filenya (Input, Edit dan Delete) untuk file-file tersebut sama dengan yang dilakukan pada modul sebelumnya, bisa dengan cara tidak langsung (dengan Tedit) atau dengan cara langsung (TDBEdit) atau kombinasi diantara keduanya. Tetapi sebelumya kedua file tersebut harus dikaitkan dahulu dan harus diketahui secara persis nama yang akan menjadi induk dan mana yang akan menjadi anak. ARSys Software Developed/AbdRohim 44
Cara menghubungkan dua buah tabel dengan hubungan relasi Master-Detail adalah dengan menggunakan dialog Field Link Design. Dialog ini harus dipanggil dari tabel yang bersifat Detail / Anak yang akan menunjukan tabel Masternya. Sebagai contoh kasus akan dibuat sebuah program yang kan menelusuri data pembelian seorang pelanggan. Ingin diketahui telah membeli barang apa sajakan pelanggan ini dari order no berapa, seberapa sering berbelanja. Telah tersedia tabel Customers, Orders, Items dan Part yang menyimpan data-data penjualan ini. Tabel Customers dengan tabel Orders terdapat hubungan dimana setiap dilakukan penjualan barang pasti diketahui siapa yang membeli barang tersebut. Data penjulan barang disimpan pada tabel Orders dan data pembeli disimpan pada tabel Customers. Hubungan antar tabel Customers dengan tabel Orders tidak secara jelas menunjukan Master-Detail tetapi lebih condong kepada melengkapi/menjelaskan, tidak ada ketergantungan antar dua file ini. Hubungan yang jelas Master-Detail ini terlihat antara tabel Orders dan tabel Items. Dimana tabel Item akan mempunyai arti jika atau memberikan informasi jika ada tabel Orders, dan begitupun sebaliknya tabel Orders memerlukan tabel Items untuk uraian Ordernya. Yang bertindak sebagai tabel anak adalah tabel Items dan yang bertindak sebagi tabel Induk adalah Tabel Orders. Hunbungan antara tabel Items dengan tabel Part hampir sama dengan hunbungan antara tabel Customers dengan tabel Orders. Dalam hal ini yang bertindak sebagai tabel anak adalah tabel Part dan yang bertindak sebagi induk adalah tabel Items. Jadi sebenarnya yang ingin diperlihatkan disini adalah bahwa tabel-tabel yang terdapat dalam sebuah database yang saling terkait, terhubung satu sama lain, suatu saat tabel tersebut bisa bertindak sebagai tabel induk, tetapi disaat lain tabel tersebut bisa bertindak sebagi tabel anak. design databaselah yang sangat menentukan untuk hal ini. ARSys Software Developed/AbdRohim 45
Buatlah program seperti berikut ini: Lakukanlah langkah-langkah berikut ini: 1. Bukalah project baru 2. Tepatkan pada form tersebut 1 buah panel, 1 buah DBNavigator, 1 buah groupbox, 4 buah table, 4 buah datasource, 7 buah label, 7 buah DBEdit, 2 buah DBGrid dan 1 buah BitBtn 3. Isikan nilai-nilai ini pada properti untuk masing-masing komponen sebagai berikut: Komponen Properti Nilai Form1 Panel1 Table1 1 Position Align BevelOuter DatabBase Table DataSet ShowHints Tabel Master-Detail FmLatih4a poscreencenter AlTop BvLowered (Kosongkan) tbcustomer CUSTOMER.DB TbCustomer true DBNavigator1 GroupBox1 Tabel Master Customers Label1 Customers Number ARSys Software Developed/AbdRohim 46
Label2 Company Label3 City Label4 Address Label5 Country DBEdit1 DBEdit2 DBEdit3 DBEdit4 DBEdit5 DBEdit6 Label6 Table2 2 DBGrid1 Label7 Table3 Font DatabBase Table DataSet +Option (Double klik pada kata tersebut) dgindicator dgrowlines dgrowselect dgalwayshow Font DatabBase Table CustNo Company City Addr1 Addr2 Country Orders Ms Sans Serif 12 Bold tborder Orders.DB TbOrder DsOrder dsorder 3 DataSet DBGrid2 DsItem Items Ms Sans Serif 12 Bold tbitem Items.DB TbItem DsItem ARSys Software Developed/AbdRohim 47
Label7 Table4 4 DBEdit7 +Option (Double klik pada kata tersebut) dgindicator dgrowlines dgrowselect dgalwayshow Font DatabBase Table DataSet BitBtn1 Kind bkclose Part Description Ms Sans Serif 12 Bold tbpart Parts.DB TbPart DsPart DsPart Description 4. Simpanlah project ini. Aturlah direktori ke tempat penyimpanan datanya. Gantilah Unit1 dengan Latih4a.Pas dan Project1 dengan Latihan4a. 5. Jalankanlah programnya 6. Kliklah tombol-tombol navigatornya. Apa yang terjadi??? ARSys Software Developed/AbdRohim 48