Pernah mengalami kesulitan ketika Anda harus membuat fitur pencarian data di sebuah Aplikasi Web, di mana data yang akan dicari oleh Pengguna formatnya teks bebas (Deskripsi), tapi data yang tersimpan di Database adalah Kode? Bingung maksudnya? Tenang, jangan bingung dulu. Simak penjelasan berikut.
Bayangkan sekarang Anda memiliki sebuah table customers. Di dalam table ini ada field Propinsi, Kabupaten_Kota, Kecamatan, dan Kelurahan_Desa. Data yang tersimpan di keempat field tersebut adalah Kode Wilayah-nya masing-masing, dan bukan dalam bentuk Deskripsi Wilayah-nya.
Supaya lebih jelas, mari simak contoh berikut. Salah satu record di table tersebut memiliki data di field Propinsi bernilai 32, data di field Kabupaten bernilai 32.75, data di field Kecamatan bernilai 32.75.06, dan data di field Kelurahan bernilai 32.75.06.1003. Sementara yang kita ketahui, masing-masing Deskripsi Wilayah dari keempat field itu nilainya adalah: propinsi Jawa Barat, kabupaten/kota Bekasi, kecamatan Medan Satria, dan kelurahan/desa Pejuang.
Mungkin Anda bertanya, mengapa data yang disimpan adalah Kode Wilayah-nya dan bukan Deskripsi Wilayah-nya? Jawaban, atau lebih tepatnya, alasannya adalah, karena keempat field ini harus lookup ke 4 table berbeda, yaitu: propinsi, kabupaten, kecamatan, dan kelurahan untuk mendapatkan data Deskripsi Wilayah-nya masing-masing. Alasan lainnya, jika data Deskripsi Wilayah berubah, maka kita cukup hanya mengubah dari keempat table tersebut saja.
Oke, saya yakin sekarang pasti sudah jelas maksudnya. Selanjutnya, mari kita kembali ke topik semula. Sekarang, bayangkanlah lagi, Anda harus membuat fitur pencarian yang memungkinkan Pengguna memasukkan data Deskripsi Wilayah, dan Aplikasi Web yang Anda bangun harus mampu mencari berdasarkan masukan kata kunci Deskripsi Wilayah, sementara yang kita ketahui, table customers tadi menyimpan data Kode Wilayah. Artinya, Pengguna harus dapat mencari berdasarkan kata kunci seperti Bekasi.
Sebagian besar Web Developer biasanya langsung membayangkan akan membuat View di dalam Database (selanjutnya mari kita sebut dengan Database View) yang akan menampilkan data Deskripsi Wilayah untuk keempat field tadi dengan join ke empat table tersebut di atas, lalu menggunakan Database View ini sebagai data sumber. Tentu tidak ada yang salah dengan hal ini. Sah-sah saja bukan?
Betul, tapi tunggu dulu. Tahukah Anda jika harus membuat Database View untuk pencarian data, maka itu artinya Anda hanya bisa menggunakan Database View tersebut untuk fitur pencarian saja. Selain itu, tentu sangat tidak efektif jika kita harus join ke empat table tersebut, apalagi jika jumlah record di table terkait relatif banyak? Di lain sisi, kita juga mengetahui, bahwa table customers digunakan juga sebagai dasar untuk membuat fitur CRUD (Create, Read, Update, Delete) data.
Pertanyaan selanjutnya, lalu bagaimana cara kita supaya table customers saja yang akan digunakan untuk membuat fitur pencarian berdasarkan data Deskripsi Wilayah-nya (dan bukan pencarian berdasarkan kata kunci Kode Wilayah-nya) sekaligus untuk membuat fitur CRUD tadi?
Aplikasi Web yang dihasilkan oleh PHPMaker dapat mengatasi kebutuhan ini dengan sangat mudah, cepat, dan yang paling penting lagi: menyenangkan! Artinya, Anda sebagai Web Developer cukup hanya mengoptimalkan table customers tadi untuk menciptakan fitur pencarian data. Tidak perlu membuat Database View secara terpisah hanya untuk membuat fitur pencarian berdasarkan kata kunci Deskripsi Wilayah.
Penasaran ingin tahu caranya meskipun tidak menggunakan contoh kasus di atas? Baiklah, silahkan simak artikel Hebatnya Fitur Pencarian pada Field Lookup di Aplikasi Web dari PHPMaker.
pagi pak, bagaimana cara menampilkan data 32.75.06.1003 tersebut yg tampil di tabel list yg seharusnya terlihat data deskripsinya Jawa Barat, Bekasi, Medan Satria, Desa Pejuang? karena di tabel list pasti hanya tampak dari link ID dari tabel fieldnya saja ( 32.75.06.1003 ) dan bukan nama deskripsinya, terimakasih.
Tinggal diatur saja dari panel Lookup Table di bawah tab Fields untuk setiap field yang terkait tadi.
Karena data induk/parent mulai dari Propinsi, Kabupaten/Kota, dan Kecamatan juga sudah terbawa/termasuk di table Kelurahan/Desa itu, maka seharusnya bisa diatasi dengan mudah. Cukup dengan memilih pada bagian Display field #1 .. #4 untuk menampilkan data Deskripsi dari setiap field parent tadi.
terimakasih pak. di bagian security ada Advanced Security – User ID Security, setelah memilih User ID field (employeeID) maka menambahkan Parent User ID (report to). bagaimana caranya kalau saya ingin menambahkan 1 lagi field Parent User ID selain report to misalnya departemen, jadi ada 2 Parent User ID : report to dan departemen, ini bagaimana caranya pak? terimakasih.
Parent User ID hanya diperbolehkan satu saja.
saya coba memasukkan username&password anggota baru, saya lihat dimysql fullnamenya berisi seperti ini: a:2:{s:15:”LoginRetryCount”;i:0;s:23:”LastPasswordChangedDate”;s:10:”2015/06/24″;}
dan bukan nama lengkap, sedangkan isian form lainnya biasa saja, itu kenapa ya pak? terimakasih.
Itu terjadi karena Anda memilih field fullname sebagai Profile field (memo) dari bagian Advanced Security -> User Login Options -> User Table Fields.
Solusinya, jangan pilih field fullname sebagai Profile field, tapi pilih field lain yang tipe-nya memo atau text dan dibuat khusus untuk menampung data user profile di atas.
awalnya krn field lastname-firstname saya coba ganti jadi 1 fullname biar lbh ringkas. tanya lg pak, tiba2 data dimysql ditabel userlevelpermissions hilang semua setelah saya generate semua file yg baru diubah, lalu saya coba masukkan tambahan 1 userlevel baru (marketing) dari webnya tapi tidak bisa dan ada warning : Anda tidak dapat menambah atau memperbarui data karena nilai kunci tidak terdapat di tabel master.
lalu saya coba tambahkan 1 user (marketing) dari advanced security/userlevel tapi ga otomatis nyimpan ke mysql setelah generate, userlevelpermissions tetap kosong, lalu saya kembalikan tabel data sql userlevelpermissions yg lama dan saya coba masukkan 1 user level baru tapi tetap tidak bisa. pesan eror masih sama spt yg diatas. itu kira2 apa yg salah pak? terimakasih.
Data di table userlevelpermissions bisa Anda generate dari dalam project PHPMaker, dari bagian Security -> Advanced -> User Levels -> Dynamic User Levels -> lalu klik tombol Migrate.
Pastikan sebelumnya Anda sudah menambahkan terlebih dulu User Level yang diinginkan, klik kanan di bagian User Levels, lalu klik Add user level.
saya sudah migrate, didatabase sudah tampak lagi yg baru tetapi sewaktu saya login sbg administrator dan ingin lihat dihalaman web userlevels / User Level Permissions tanda2 check boxnya tidak ada satupun yg tampak dicentang tanda checknya. lalu saya coba beri tanda check ulang/ubah tanda check di webnya lalu klik update tapi tetap tdk tampak tanda centang ditiap checkbox, kosong tetapi didatabase tetap ada datanya. itu karna apa pak kira2? terimakasih.
Pastikan Anda sudah men-generate semua file script, termasuk yang ada di bagian Other Files di jendela dialog Generate.