Berbicara tentang PHPMaker memang tidak akan ada habis-habisnya. Ada saja bahan yang bisa di-share dan layak untuk diketahui oleh seluruh Web Developer. Sekalipun bagi mereka yang sudah mengetahui PHPMaker, apalagi yang belum mengetahui sama sekali, sayang untuk dilewatkan.
Dan yang uniknya, topik yang dibahas itu selalu menyenangkan. Terbukti bisa membuat pekerjaan di bidang Web Development menjadi jauh lebih mudah dan cepat. Bahkan bisa membuat hidup Web Developer menjadi sangat menyenangkan.
Sebelum mengenal PHPMaker, rasanya dulu tidak semangat jika ingin membuat sebuah aplikasi web. Terbayang betapa banyak dan rumitnya hal-hal yang serupa yang harus dilakukan berulang-ulang, apalagi harus dikerjakan secara manual. Wuiiiih! Pokoknya, gak jaman lagi deh pakai cara-cara konvensional seperti itu!
Sudah hampir dua bulan terakhir saya selalu menyempatkan diri untuk menulis artikel mengenai PHPMaker di situs ini. Sekalipun di kantor disibukkan dengan pekerjaan rutin, waktu untuk mengulas tentang PHPMaker selalu saya alokasikan secara khusus. Entah itu sore menjelang pulang, atau malam hari sebelum tidur. Minimal satu artikel dalam satu hari.
Semakin lama saya mengenal PHPMaker, semakin ada saja hal-hal baru yang sering kali tidak saya duga sudah tersedia di PHPMaker. Dari sini saja sudah dapat membuktikan bahwa tools PHP code generator seperti PHPMaker memang sangat cocok dan layak digunakan oleh para Web Developer.
Kadang-kadang, artikel yang saya tulis tidak mengenal tempat. Seperti contohnya artikel ini, saya tulis di atas sebuah bus yang membawa saya dari Bandung ke Bekasi (memang siapa yang nanya, ya? hehehe…). Baiklah kalau begitu.
Kali ini saya akan membahas dan mengulas mengenai Custom View di PHPMaker. Apa itu Custom View? Kapan sebaiknya kita menggunakan Custom View? Apakah Custom View sama dengan View yang terdapat di database (Database View)?
Custom View, seperti namanya, merupakan View yang bisa dikostumais dari dalam project PHPMaker. Custom View berisi sebuah pernyataan (statemen) SQL yang paling sederhana, yaitu SELECT. Dia tidak dirancang untuk menggantikan View di dalam Database. Artinya, PHPMaker memiliki kemampuan untuk membuat View yang tidak disimpan di dalam database, tetapi disimpan di dalam file project PHPMaker. Artinya lagi, Custom View cocok digunakan jika database yang digunakan oleh project PHPMaker tidak mendukung View (memang masih ada, gitu? hehehe…).
Meskipun PHPMaker mendukung pemakaian Custom View, PHPMaker juga mendukung penggunaan View yang dibuat di dalam Database (Database View).
Seperti yang sudah saya sebutkan sekilas di atas, bahwa Custom View hanya bisa mengandung sebuah pernyataan SELECT yang sederhana saja. Jika Anda membuat Custom View yang mengandung pernyataan SELECT yang memiliki klausa yang lebih kompleks, atau yang memiliki pernyataan UNION daripada sebuah pernyataan SELECT saja, maka fungsi pengurutan sorting atau pencarian tidak akan berfungsi. Untuk kasus seperti itu, maka Anda sebaiknya mengganti Custom View menjadi View yang dibuat di database.
Enaknya, PHPMaker memiliki kemampuan untuk mengkonversi Custom View menjadi View di database, selama Anda diberikan hak akses untuk membuat View di database menggunakan statement CREATE VIEW.
Setelah memuat database dari file project PHPMaker, maka object-object yang terdapat di dalam PHPMaker (Tables, Views, Custom Views, dan Reports) akan ditampilkan di panel sebelah kiri (panel Database). Untuk mengkonversi sebuah Custom View menjadi View di dalam database, cukup klik kanan pada Custom View yang Anda inginkan di panel Database tadi, lalu pilih [Convert Custom View to View].
Sebagai alternatif, Anda juga dapat memilih Custom View, lalu klik [Edit] di menu utama, kemudian pilih [Convert Custom View to View]. Setelah membuat View, pengaturan Fields dan Custom View yang ada akan dipindahkan ke View yang baru tersebut. Jika project PHPMaker Anda terhubung ke database development, ekspor View yang baru tersebut lalu buat ulang mereka pada database production selama proses pengembangan berlangsung.
Untuk membuat sebuah Custom View dari PHPMaker, cukup klik kanan di area panel Database lalu pilih
Cara alternatif untuk membuat sebuah Custom View adalah dengan mengklik [Edit] di menu utama, lalu pilih [Add Custom View]. Selanjutnya jendela pengaturan Custom View akan muncul. PHPMaker akan otomatis memberikan nama Custom View yang baru dengan nama sementara; dengan format: CustomView<n>, di mana n adalah nilai angka/integer. Jika Anda ingin mengganti namanya, cukup masukkan nama baru dari bagian [Custom View name] pada toolbar utama jendela tadi.
Sangat disarankan agar Anda menggunakan Pembangun Kueri secara Visual yang sudah disediakan oleh PHPMaker (Built-in Visual Query Builder) untuk membuat SQL, untuk menghindari adanya salah sintaks. Dengan cara ini, maka Anda dapat memilih field-field mana saja yang akan Anda ikutkan di dalam Custom View tersebut. Antarmuka Query Builder bersifat intuitive dan mendukung pemakaian drag-n-drop. Anda bahkan tidak perlu sama sekali mengetikkan nama Table atau nama Field.
Di bagian sebelah kanan dari jendela Query Builder, Tabel yang tersedia ditampilkan dalam panel Table. Sedangkan di sebelah kirinya, terdapat tiga tab, yaitu: [Builder], [SQL], dan [Result]. Tab [Result] hanya akan terlihat setelah Anda mengeksekusi SQL. Tab [Builder] memungkinkan Anda membangun pernyataan SQL secara visual, tanpa harus mengetik pernyataan SQL. Tab [SQL] menampilkan pernyataan SQL yang dihasilkan setelah Anda membangun pernyataan SQL dari tab [Builder] tadi.
Nanda mengatakan
setelah saya baca beberapa artikel di blog ini sepertinya untuk membuat sebuah sebuah halaman List Page/ Form Input yg Dinamis (Tabel Transaksi/ Form Transaksi yg membutuhkan Lokkup ke Satu atau Lebih Tabel Master) membutuhkan ‘Database View’ untuk mengatasi hal tersebut
dan dlm membuat sebuah aplikasi ada kememungkinkan membutuhkan beberapa Form Input yg hanya Untuk mengarahkan/ Nyimpan data ke satu buah ‘Tabel Transaksi’.
artinya akan ada kemungkinan beberapa ‘Database View’ di tiap Satu buah ‘Tabel Transaksi’ atau paling tidak ada Satu Buah Database View pada tiap ‘Tabel Transaksi’,
sehingga didalam satu buah Project PHP Maker (yang komplek) akan ada banyak ‘Database View’.
…. mohon koreksi jika salah.
yang ingin saya tanyakan adalah jika Didalam sebuah Database ( dlm hal ini MySQL) dimana didalamnya terdapat Beberapa Database View , apakah akan mengakibatkan Efek Negatif pada Database/ Aplikasi Web tersebut ,misalnya :
Aplikasi/ Server Jadi Lemot, Ukuran File DB Bertambah Besar dll… ? atau justru malah lebih stabil dengan adanya ‘Database View’ ?
Masino Sinaga mengatakan
Iya, menggunakan Database View lebih disarankan untuk membuat beberapa form dari table yang sama.
Tidak ada efek negatif seharusnya.
Nanda mengatakan
Ooh berarti memang harus membuat Database View ya Pak utk membuat Form Transaksi ?
untuk Custom View sendiri sepertinya tidak bisa memunculkan Halaman Add/ Edit benarkah ?
padahal seandainya ada fitur semacam Custom View / Form Builder/ Custom Form yg bisa membuat Form (dr beberapa Tabel) tanpa harus membuat Database View pasti lebih mantap ?
Paling tidak ada pilihan, seperti kalo bikin PHP Manual.
Masino Sinaga mengatakan
Iya. Custom View bisa saja digunakan, tapi lebih disarankan menggunakan Database View (View yang dibuat di dalam Database). Jadi bukan menggunakan Custom View yang dibuat dari project PHPMaker.
PHPMaker sampai versi 12 ini memang sengaja tidak memiliki Form Builder yang bersifat visual. Tapi dia menyediakan fitur Custom Template jika ingin mengubah tampilan form standar yang dihasilkan oleh PHPMaker.
Ulil Albab Rabbani mengatakan
Pak Masino, saya mau tanya..
Saya buat view untuk menampilkan beberapa data pegawai dengan anak, nah masalahnya ada pegawai yang memiliki lebih dari satu anak dan ketika di view datanya muncul double walaupun nomor pegawai sama, atau malah triple jika ia memiliki tiga anak, dan ketika diview menggunakan nomor pegawai, dan hasilnya yang terbaca hanyalah anak yang pertama saja, padahal saya klik tombol gambar lup (view) pada baris kedua pegawai (anak yang kedua), nah untuk menampilkan data semua anak dalam satu view dgn satu nomor pegawai gmn ya pak?
Terimakasih sebelumnya.
Masino Sinaga mengatakan
Jangan gunakan satu View saja.
Gunakan konsep Master/Detail dengan bantuan dua View, satu untuk data Pegawai (master), dan yang satunya untuk data Anak (detail.). Kedua View tersebut selanjutnya direlasikan sebagai Master/Detail.
Baca topik Tutorial – Master/Detail dari menu Help PHPMaker.
Ulil Albab Rabbani mengatakan
Nah saya sudah berhasil buat View nih pak, tapi yg aneh ketika saya jalankan di localhost view tidak bisa muncul (hanya blank page), lalu ketika saya upload ke online (server saya) muncul. itu kenapa ya pak view hanya muncul blank page saja?
Masino Sinaga mengatakan
Aktifkan Debug mode dari menu Tools -> Advanced Settings, lalu generate ulang file ewcfg12.php, untuk melihat apakah ada pesan error dari database-nya.
Jika masih belum ketahuan penyebabnya, aktifkan setting di file php.ini yang memungkinkan pesan warning/error ditampilkan pada browser.
Nanda mengatakan
Pak Masino, secara Default ketika membuat Database View di PHP Maker akan menghasilkan kode seperti ini (ketika akan di Eksport) :
dimana dalam kode tersebut terdapat User (root) sesuai pada Database MySQL/ View di buat.
ketika Program Running di localhost dengan User = Root dan Host = localhost berjalan lancar.
tapi terjadi masalah ketika Program dijalankan di Server Live/ Server lain yang Nama User nya selain ‘Root’ / bukan server ‘localhost’ sehingga Database View menjadi error / tidak Jalan.
apakah kode tersebut bisa di rubah/ Edit di Server baru/ Server Lain atau apakah ada Cara nya agar View tersebut bisa tetap di jalankan ketika berpindah Server yang Nama User dan Passwordnya berbeda ?
Masino Sinaga mengatakan
Bisa. Tinggal hapus saja code yang ini:
Bagja mengatakan
Pak Masino,
Saya mencoba membuat custome view tapi tidak bs disave ya, pesannya tidak ada ada privilege atau tdk punya hak, padahal kan custome view tdk di save sebagai table view di database, apakah saya salah mengerti ya?
Masino Sinaga mengatakan
Wah, saya sudah gak pernah lagi pakai Custom View, selama ini selalu menggunakan Database View.