Jokowi dan PHPMaker. Nah, lho… apalagi ini? Apa hubungannya, ya? Tentu saja, ada! Jadi begini. Seperti yang sudah kita ketahui bersama, Jokowi merupakan sosok sederhana yang jika bekerja selalu berusaha untuk menyelesaikannya secepat mungkin. Hasilnya pun ada, berkualitas lagi; dan tidak setengah-setengah. Terbukti dari prestasi yang sudah diukirnya sejak menjabat Walikota Solo sampai menjadi Gubernur DKI Jakarta. Hanya kurang dari 3 tahun saja di DKI Jakarta, Jokowi sudah menghasilkan banyak karya yang benar-benar bermanfaat buat masyarakat. Tentu kita tidak akan membahas lebih detail mengenai Jokowi di tulisan ini.
Saya hanya ingin mengatakan bahwa ada persamaan antara Jokowi dengan PHPMaker. Setidaknya itu yang saya rasakan saat menggunakan PHPMaker. Lalu saya bandingkan dengan sosok seseorang yang akhir-akhir ini banyak mencuri perhatian masyarakat, khususnya menjelang Pilpres 2014. Kalau selama ini kita sudah mengetahui bahwa Jokowi bekerja dengan cepat dan hasil pekerjaannya pun berkualitas, maka seperti itu jugalah Tools PHP Code Generator PHPMaker dapat digunakan oleh Web Developer untuk menghasilkan Aplikasi Web. Cepat dan berkualitas!
Anda dapat menggunakan PHPMaker untuk menghasilkan Aplikasi Web dengan waktu yang sangat super cepat. Bayangkan, hanya dalam hitungan beberapa menit saja, Anda sudah bisa menghasilkan sebuah Aplikasi Web yang dilengkapi dengan sebagian besar fitur yang dibutuhkan dan wajib ada dalam sebuah aplikasi berbasis web. Output dari Aplikasi Web yang dihasilkannya pun tentu saja berkualitas. Tidak sekedarnya saja. Semua itu bisa terwujud karena PHPMaker sudah menyediakan kemudahan bagi Web Developer untuk menambahkan business-logic tertentu tanpa harus menulis kode secara langsung ke file script di sisi Aplikasi Web.
Event yang paling sering terjadi di sebuah Aplikasi Web adalah ketika Pengguna menginput kemudian menyimpan data yang baru ke Database. Biasanya, ketika event ini terjadi, Anda sebagai Web Developer harus menambahkan business-logic tertentu. Katakanlah ketika data transaksi di sebuah Record sedang disimpan ke Database, maka ada kebutuhan untuk memvalidasi terlebih dulu nilai Persentase dari transaksi tadi.
PHPMaker sudah menyediakan sebuah server event yang bernama Row_Inserting yang lokasinya berada di bawah Server Events -> Table-Specific -> Common yang berada di dalam project PHPMaker Anda. Pastikan sebelumnya Anda sudah memilih salah satu Table yang Anda inginkan dari panel Database di sebelah kiri dari project PHPMaker Anda, untuk memastikan Anda menambahkan kode di server event pada Table yang tepat.
Server event Row_Inserting akan dipanggil sebelum sistem memasukkan sebuah Record ke Database. Argumen dari server event ini merupakan array dari Record yang lama (jika menggunakan fitur penyalinan (Copy) Record), yaitu: $rsold, dan array dari Record baru yang akan dimasukkan, yaitu: $rsnew. Anda sebagai Web Developer dapat mengganti nilai di argumen $rsnew.
Server event Row_Inserting merupakan member dari Class Table. Anda sebagai Web Developer dapat menggunakan member lainnya yang terdapat di Class ini (jika dibutuhkan). Dengan menggunakan server event ini, Anda sebagai Web Developer masih diberi kesempatan oleh PHPMaker untuk menambahkan proses validasi di sisi server. Jika validasi yang Anda inginkan tidak sah, maka cukup kembalikan nilai FALSE, sebaliknya jika validasi sukses cukup kembalikan nilai TRUE. Mudah sekali, bukan? 🙂
Supaya lebih mudah dipahami, silahkan simak contoh kode yang sederhana berikut ini.
function Row_Inserting(&$rsold, &$rsnew) { if ($rsnew["Persentase"] > 100) $rsnew["Persentase"] = 100; if ($rsnew["Persentase"] < 0) $rsnew["Persentase"] = 0; // To cancel, set return value to False return TRUE; }
Dari kode di atas, ditunjukkan bahwa jika data pada field Persentase yang diinput lebih besar dari nilai 100, maka sistem harus membatasinya dengan nilai maksimal 100. Demikian juga jika data persentase yang diinput lebih kecil dari nilai 0, maka sistem harus membatasinya dengan nilai minimal 0. Artinya, sistem akan otomatis membetulkan nilai batas minimum dan maksimum dengan nilai valid.
Nah, biasanya ada pertanyaan lanjutan seperti ini. Bagaimana caranya jika saya ingin menampilkan pesan kepada Pengguna bahwa nilai yang dimasukkannya tidak valid? Gampang. Cukup ubah kode di atas menjadi seperti ini:
function Row_Inserting(&$rsold, &$rsnew) { if ($rsnew["Persentase"] > 100) { $this->setWarningMessage("Nilai Persentase lebih besar dari 100. Silahkan perbaiki!"); return FALSE; } if ($rsnew["Persentase"] < 0) $this->setWarningMessage("Nilai Persentase lebih kecil dari 0. Silahkan perbaiki!"); return FALSE; } // To cancel, set return value to False return TRUE; }
Setelah Anda men-generate ulang kode tersebut dari PHPMaker, lalu menjalankan Aplikasi Web lewat browser, maka ketika Pengguna menginput nilai yang lebih besar dari 100 atau lebih kecil dari 0, maka sistem akan menampilkan pesan peringatan kepada Pengguna. Seketika itu juga proses penyimpanan data akan dibatalkan oleh sistem.
Perlu Anda ketahui bahwa server event Row_Inserting memiliki persamaan dengan server event Row_Deleting dalam hal pengeksekusiannya yang berbasis Record per Record atau Row per Row. Artinya, server event Row_Inserting akan dipanggil untuk setiap satu Record atau Row yang sedang ditambahkan ke Database. Dengan kata lain, server event ini juga akan dipanggil secara berulang-ulang sejumlah banyaknya Record yang sedang dimasukkan dan disimpan pada satu kesempatan ke Database menggunakan fitur Grid-Add atau Grid-Edit yang disediakan oleh PHPMaker.
Betapa mudah, cepat, dan menyenangkan sekali Anda sebagai Web Developer dapat menambahkan business-logic sendiri pada saat sistem sedang menyimpan data ke Database melalui penggunaan Server Event di PHPMaker. 🙂
[…] ingat dengan server event Row_Inserting di PHPMaker yang memungkinkan Web Developer dapat menambahkan kode untuk business-logic tertentu […]