Rasanya tidak ada aplikasi berbasis web yang tidak lepas dari pengelolaan data Master/Detail. Yang dimaksud dengan data Master/Detail adalah data yang memiliki relasi antara data induk (parent) dan data anak (child). Istilah Parent/Child jarang sekali digunakan. Orang lebih sering menggunakan istilah Master/Detail. Salah satu contoh data yang memiliki relasi Master/Detail adalah data “Pesanan” (Master), dan data “Detail Pesanan” (Detail). Contoh lainnya: data “Mahasiswa” (Master) dengan data “Mata Kuliah yang Diambil” (Detail), dan sebagainya. Karena data “Master/Detail”, maka relasinya adalah One-To-Many. Satu record Master bisa memiliki beberapa record Detail.
Semakin beragam dan kompleksnya kebutuhan dalam pengolahan data yang memiliki relasi Master/Detail di dunia nyata, menyebabkan relasi data Master/Detail mengalami perkembangan. Relasi yang biasanya hanya antara satu tabel master dengan satu tabel detail, sekarang menjadi antara satu tabel master dengan banyak tabel detail. Istilah “Master/Detail” akhirnya mengalami pergeseran menjadi “Master/Multi-Detail”. Contoh data yang memiliki relasi “Master/Multi-Detail” adalah data “Karyawan” (Master) dengan data “Kompetensi Karyawan” (Detail 1), “Pelatihan Karyawan” (Detail 2), “Anggota Keluarga” (Detail 3), “Penempatan Karyawan” (Detail 4), dan seterusnya.
Perkembangan ini tentu saja menuntut aplikasi web yang kita kembangkan, harus bisa mengakomodir kebutuhan untuk pengelolaan data Master/Multi-Detail secara efektif dan efisien. Tidak hanya bagaimana cara kita bisa menampilkan data Master/Multi-Detail dalam mode read-only pada halaman View (yang menampilkan per satu record Master). Tapi juga bagaimana caranya kita harus bisa menyajikan Form untuk menginput dan mengubah data dalam tampilan Master/Multi-Detail sekaligus kepada Pengguna.
Tentu hal ini tidak mudah dilakukan oleh Web Developer, karena dibutuhkan penanganan validasi yang melibatkan beberapa (minimal tiga) tabel sekaligus untuk Master/Multi-Detail tadi. Atau dalam contoh data Karyawan di atas, maka kita akan melibatkan lima tabel sekaligus! Dibutuhkan cara efektif supaya kita bisa membagi data Detail yang lebih dari satu tadi ke dalam layout yang mudah dilihat (eye-catching dan user-friendly) dan mudah dibuka oleh Pengguna tanpa harus memuat ulang halaman setiap kali berpindah antar tabel detail. Dibutuhkan juga cara yang efektif yang memungkinkan Pengguna dapat menambahkan baris baru atau bahkan menghapus baris yang sudah ada di setiap area Detail sebelum data disimpan ke database.
Dan yang terakhir adalah, bagaimana cara kita harus bisa menangani proses penyimpanan data sekaligus ke semua tabel-tabel yang terkait tadi, ketika pengguna cukup hanya menekan satu tombol saja. Apalagi jika kita harus menerapkan business-logic khusus seperti: “Referential Integrity”, “Cascade Update”, dan “Cascade Delete” untuk seluruh tabel-tabel yang terkait tersebut, betapa kompleksnya kode PHP yang harus kita tulis.
Bayangkanlah jika Anda tidak bisa menerapkan kebutuhan yang kompleks ini pada aplikasi web yang Anda kembangkan, maka berapa lama Pengguna membutuhkan waktu untuk melakukan satu siklus penginputan atau perubahan data yang memiliki relasi Master/Multi-Detail? Dalam contoh di atas yang melibatkan satu tabel Master dan empat tabel Detail, maka Anda harus melakukan empat kali proses berulang untuk setiap relasi “Master/Detail” jika tidak bisa mengimplementasikan “Master/Multi-Detail” sekaligus. Jika saya yang menjadi Penggunanya, rasanya jengkel juga mengoperasikan aplikasi web yang seperti itu!
Oleh karena itu, sudahkah aplikasi web yang Anda kembangkan mampu mengelola data yang memiliki relasi sebagai “Master/Detail” maupun “Master/Multi-Detail”? 🙂
hendra mengatakan
contoh aplikasinya ini link nya apa pak ?
Masino Sinaga mengatakan
Belum ada contoh aplikasinya. Yang jelas, memang bisa dibuat dari PHPMaker.
Ahmad Sukri mengatakan
Bagiamana cara kita pilih kolom yang tampil di master ketika link detailnya di klik. karena master yang tampil bisa kita tetntukan sediri ?
Masino Sinaga mengatakan
Anda bisa menggunakan fitur Custom Templates dari dalam project PHPMaker, lokasinya ada di: Code (Server Events, Client Scripts and Custom Templates) -> Custom Templates -> Table-Specific -> Master Record Page -> Custom Template. Silahkan baca topik Custom Templates dari menu Help PHPMaker untuk info dan contoh lebih lanjut.