Penerapan Konsep Master - Detail atau One to Many

Form Master - Detail adalah form yang memiliki dua buah block yang keduanya direlasikan dalam hubungan Master dan Detail. Dalam ER-Diagram, relasi Master-Detail ini sama dengan relasi “One to Many”, artinya pada desain database secara fisik, satu record tunggal dalam table Master memiliki referensi satu atau lebih record yang ada pada table Detail.

Konsep Master - Detail atau One to Many ini biasanya digunakan saat membuat form transaksi seperti pada form tansaksi penjualan, pembelian, peminjaman buku dan lain - lain. Sekarang kita akan mencoba untuk membuat aplikasi sederhana yang menerapkan konsep tersebut. Sebagai contoh anggap saja kita akan membuat sebuah form transaksi dimana dalam form tersebut terdapat 3 tabel yang saling berhubungan, field dan relasi tabel tersebut ditunjukkan dengan gambar di bawah ini.

Tabel diatas adalah cuplikan keterkaitan table pada  konsep Master - Detail yang ada di aplikasi penjualan. Field di masing - masing tabel tersebut memang sengaja dibuat sederhana dan hanya mengambil field - field pentingnya saja, biar lebih mudah kita gunakan untuk belajar. Desain tampilan dari form transaksi yang menggabungkan ke tiga tabel tersebut contohnya adalah seperti gambar di bawah ini.
Logika untuk melakukan penyimpanan pada form transaksi yang menggunakan konsep Master - Detail atau One to Many dengan contoh seperti gambar di atas, berbeda jika dibandingkan bila kita membuat form master atau di dalam form hanya menggunakan satu table. Salah satu konsep logika yang bisa digunakan untuk melakukan penyimpanan data dengan konsep Master - Detail atau One to Many ini adalah :

  1. Saat form dijalankan secara otomatis membuat table temporary, bisa menggunakan Cursor atau Table biasa. Struktur dari table temporary ini intinya harus ada Field kunci dari tabel master, dalam contoh di atas adalah KdBrg yang merupakan kunci dari table barang, dan selanjutnya bisa ditambahkan field - field informasi mengenai data dari table master yang digunakan dalam contoh seperti harga dan nama barang. Selain field dari table barang dalam contoh, harus di tambahkan juga salah satu field dari table detail yaitu jumlah jual yang berguna untuk mendapatkan informasi subtotal dari jumlah penjualan barang tertentu per transaksi. Contoh struktur dari table temporary adalah seperti yang ditampilkan di grid pada gambar diatas.
  2. Saat melakukan operasi penambahan barang, yang berfungsi adalah table temporary tersebut.
  3. Setelah penambahan barang selesai dan dilakukan penyimpanan, maka data yang ada disimpan ke table penjualan dan khusus untuk table detail akan diisi dengan data yang ada di table temporary atau dengan kata lain saat melakukan simpan ini data yg ada di table temporary di salin ke dalam table detail. Jadi dalam satu penyimpanan ada kemungkinan record yang bertambah di dalam table detail bisa lebih dari satu data sedangkan record yang masuk di table penjualan tetap satu data, Inilah makanya dinamai juga dengan One to Many.

Konsep logika  penyimpanan diatas, hanya salah satu cara, karena pasti akan ada berbagai macam cara dan logika untuk melakukan hal ini yang tergantung kreatifitas dari masing - masing programmer. Bila teman - teman ingin langsung mengutak - atik contoh dari project untuk penerapan konsep Master - Detail atau One to Many ini, silahkan downoad project sederhananya di link di bawah ini. Khusus bagi teman - teman yang baru belajar, bisa juga belajar membuat No Transaksi otomatis dengan contoh project ini.





SEMOGA BERMANFAAT...!!

6 Response to "Penerapan Konsep Master - Detail atau One to Many"

alambahri mengatakan...

Makasih banyak bos foxpromania atas tutorialnya...sy mencoba menerapkan konsep one to many dlm program sy..tp kenapa ya record yg ditambahkan dalam tabel sementara error..jd record pertama yg dimasukan berubah menjadi record kedua..waduh maf bngt ne ngrepotin bos foxpromania...tenkyu

Andy Prasetyo Utomo mengatakan...

@alambahri : sama - sama mas..:)

waduh maaf kalau error seperti itu ada banyak kemungkinan, dan kemungkinan besarnya pasti ada kesalahan di dalam coding yang menyangkut logika dalam penambahan record tersebut, untuk tau jelasnya salahnya dimana harus tau codingnya seperti apa dulu mas.

alambahri mengatakan...

SELECT 3
APPEND BLANK
replace artikel WITH thisform.txtartikel.Value
replace nama WITH thisform.txtnama.Value
replace jenis WITH thisform.txtjenis.Value
replace harga WITH thisform.txtharga.Value
replace st WITH thisform.txtstatus.Value
replace m WITH thisform.txtm.Value
replace l WITH thisform.txtl.Value
replace xl WITH thisform.txtxl.Value
replace xxl WITH thisform.txtxxl.Value
replace total WITH thisform.txttotal.Value

thisform.grid1.Refresh
thisform.Refresh
thisform.kosong
thisform.txtcari.Enabled = .T.
thisform.cmdcari.Enabled = .T.
thisform.txtcari.SetFocus


codingnya spt itu mas dimn

SELECT 3
USE tbrepeat_sementara

mohon pencerahanya bos foxpromania...tenkyu

Andy Prasetyo Utomo mengatakan...

apakah yg mas gunakan ini adalah table sementara dalam bentuk fisik???(dalam bentuk file dbf)...mungkin saran saya...coba buat seperti yang ada di contoh saja...yang menggunakan table cursor dalam menampung data sementara seperti contoh project sederhana yang ada di posting ini. Kalau dalam coding yang mas tampilkan belum, mencermin kan eror yg alamin..coz mungkin aja terpengaruh dengn kondisi coding yg lain yang ada di bagian lain di form.

alambahri mengatakan...

iya bos admin, sy buat file tbrepeat_sementara.dbf

ok bos,,,dicoba lagi...
sekali lagi tararenkyu :)

melanidiam mengatakan...

salam kenal gan, maaf saya mau tanya kalo sistem bersifat clien server apa codingnya sama seperti itu??terimakasih

Poskan Komentar

Bila komentar tidak tampil, silahkan ke page Welcome dan beritahukan melalui email yang tertera disana, kemungkinan komentar anda dianggap sebagai spam, biar nanti admin yang akan merubahnya, Terima kasih.

Related Posts Plugin for WordPress, Blogger...