Fitur Umum Sebuah CRUD yang Wajib Dikuasai Pemula

Ridwan Fajar 13 September 2015

Fitur Umum Sebuah CRUD yang Wajib Dikuasai Pemula

CRUD atau create, read, update, delete / destroy merupakan sebuah skema umum aplikasi yang dikembangkan oleh para software developer. CRUD biasa kita dengar di forum - forum web programming seperti grup PHP Indonesia, CodeIgniter Indonesia, Laravel PHP Indonesia, dan lain - lain. Sebenarnya dalam fitur CRUD ini ada beberapa bagian yang semestinya perlu dihafal dan tidak perlu ditanyakan lagi kepada project owner apakah fitur tersebut dibutuhkan atau tidak.

Terkadang untuk sebuah CRUD saja programmer pemula yang baru terjun di dunia kerja sering kebingungan harus menampilkan fitur apa saja dalam sebuah CRUD. Ada beberapa hal yang tidak harus ditanyakan lagi kepada atasan, dan ada beberapa yang harus didiskusikan terlebih dahulu. Oleh karena itu mari kita lihat beberapa fitur umum CRUD yang sudah tidak perlu ditanyakan lagi untuk meningkatkan efektivitas pengembangan aplikasi dan kualitas aplikasi.

Terlepas dari apapun bahasa pemrogramannya. Berikut adalah fitur umum CRUD yang harus selalu ada di sebuah CRUD:

Daftar Data

Daftar data biasanya ditampilkan dalam bentuk list atau tabel. Bila ditampilkan list biasanya jika harus menampilkan data kompleks seperti galeri atau peta. Bila ditampilkan dalam bentuk tabel, biasanya digunakan untuk menampilkan data yang tidak kompleks. Tentu di setiap item harus terdapat tombol paling tidak untuk melihat detail data, tombol untuk melakukan pengubahan data, dan tombol untuk melakukan penghapusan data. Alangkah lebih baiknya untuk menyediakan tombol yang dapat digunakan pengguna untuk melakukan penambahan data.

Pagination

Tidak mungkin menampilkan 1000 data dalam satu kali query kan? Apakah tidak akan memakan waktu lama jika menampilkan 1000 data dalam satu halaman dengan pemrosesan tampilan yang cukup kompleks kan? oleh karena itu tabel yang sudah memiliki jumlah data yang besar, perlu adanya pagination untuk memudahkan penampilan data. Dengan adanya pagination pengguna dapat melihat daftar data di bagian paling akhir, paling awal, dan halaman tertentu. Biasanya pagination memiliki pembatasan jumlah data yang ditampilkan sesuai dengan kebutuhan aplikasi, ada yang satu halaman cuma 5 data, hingga 100 data. Bila Anda menggunakan web framework biasanya sudah disediakan library untuk melakukan pagination yang terdapat di library tersebut. Sebagai contoh, web framework seperti Django, CodeIgniter, Yii2, dan FuelPHP sudah menyediakan built-in library untuk pagination

Ada juga yang menggunakan Datatables. Widget ini sekarang sudah umum digunakan oleh para web developer untuk melakukan penampilan data yang cukup banyak dan ingin melewati fase pembuatan penyaringan dan pengurutan serta pencarian. Memang widget yang satu ini sudah menyediakan fitur penyaringan dan pengurutan serta pencarian. Namun ada beberapa kesalahan penggunaan Datatables yang pada akhirnya membuat aplikasi menjadi optimal. Karena sebenarnya pagination di Datatable dilakukan dengan Javascript, ada web developer yang menampilkan melalui Datatable tapi secara serentak, ada yang 100 data langsung, ada juga yang 1000 data langsung. Cara tersebut dapat membuat waktu pemuatan halaman yang mengandung Datatable menjadi lama untuk diakses. Jika Anda menggunakan Datatables untuk menampilkan data yang cukup banyak, pastikan menggunakan Ajax Datatable.

Validasi Form dan Sanitasi

Apakah Anda mau apabila data yang dikirimkan dari pengguna adalah script jahat yang dapat memunculkan seluruh isi tabel tertentu dari aplikasi Anda? Apakah Anda ingin bila data yang dikirimkan pengguna memiliki inkonsistensi dan format yang keliru. Sudah menjadi hal lazim bila data yang dikirimkan dari pengguna terkadang tidak sesuai dengan yang dibutuhkan. Misal ketika ingin mengisi field umur yang harusnya diisi angka, malah terisi huruf. Atau mengisi field umur yang harusnya diisi angka lebih dari sama dengan 0 malah terisi -100. Ada juga field yang dibutuhkan harus berupa string dengan format e-mail atau URL, tapi malah terisi dengan string berformat tanggal. Tentu sangat tidak diharapkan bukan? Validasi dapat dilakukan di sisi backend dengan server side scripting yang digunakan ataupun di sisi frontend dengan bantuan Javascript.

Pilihannya beragam, mulai dari membangun sendiri kode program untuk validasi atau menggunakan library, bila Anda menggunakan web framework seperti Django, Laravel, FuelPHP, CodeIgniter, Ruby on Rails, dan Yii2 sudah terdapat library untuk melakukan validasi form dari sisi backend. Anda pun dapat menggunakan validasi di sisi frontend dengan menggunakan kode Javascript Anda atau menggunakan library Javascript yang siap pakai. Dengan melakukan validasi di sisi frontend Anda dapat membantu sebagian beban kerja yang akan dilakukan oleh backend, tentu validasi tidak hanya soal format data yang dibutuhkan, namun ada validasi lain seperti memeriksa validitas sebuah hak akses pengguna, memeriksa apakah tanggal yang dikirimkan masih berlaku untuk sebuah acara atau sudah lewat, dan validasi kompleks lainnya.

Menyoal validasi, biasanya sudah terdapat juga proses sanitasi data yang menjaga aplikasi Anda dari serangan seperti SQL Injection atau Cross-site Scripting. Anda dapat menggunakan library tambahan atau fungsi - fungsi tertentu untuk melakukan proses ini yang disediakan oleh bahasa pemrograman yang Anda gunakan.

Pencarian

Apakah pengguna aplikasi Anda mau mencari satu - satu data yang mempunyai nama yang berakhiran "n" satu persatu halaman? Apakah pengguna aplikasi Anda mau untuk mencari item yang mempunyai kode tertentu tapi berada di halaman ke 50? Itu berarti Anda memerlukan pencarian. Dengan pencarian, pengguna dapat mengetikkan beberapa bagian kata kunci yang ingin dicari atau langsung mencari suatu data berdasarkan kode tertentu. Hal ini diperlukan untuk memudahkan pengguna dalam melakukan proses bisnisnya dan tidak perlu membuang waktu banyak hanya untuk mencari data yang akan diproses. Pencarian ini dapat dilakukan dengan menggunakan Ajax sehingga Anda dapat menampilkan progress bar sebagai upaya membantu pengguna untuk melihat proses yang sedang terjadi.

Notifikasi, Konfirmasi, dan Progress State

Ketika pengguna akan melakukan penghapusan data apakah langsung dihapus begitu saja? atau membiarkan pengguna berpikir dahulu sebelum menghapus datanya? Lebih baik kita membantu pengguna untuk menentukan apakah data yang dipilihnya akan dihapus saat itu juga atau dipikirkan terlebih dahulu bila mempunyai pertimbangan lain. Dengan memunculkan pop up untuk melakukan konfirmasi, pengguna dapat menentukan keputusan apakah data yang dipilihnya akan dihapus atau tidak. Tentu kita tidak mau kan hanya karena salah klik akibat mouse yang rusak, tombol hapus pada baris data lain tidak sengaja tertekan oleh pengguna? dengan adanya konfirmasi maka pengguna akan membantu pengguna untuk menghapus data.

Notifikasi juga cukup diperlukan untuk membantu pengguna mengetahui kelanjutan sebuah proses apakah proses yang dilakukannya berhasil atau tidak. Notifikasi bisa Anda munculkan ketika sehabis menghapus data, menambahkan data, atau mengubah data. Anda dapat menampilkan juga notifikasi ini ketika proses validasi form gagal dengan menampilkan error - error yang didapatkan dari proses validasi. Atau dimunculkan ketika ada bagian form yang belum terisi.

Progress state yang umumnya diimplementasikan dalam loading bar atau progress bar merupakan sarana untuk membantu pengguna mengetahui sejauh mana proses yang sedang dilakukan atau paling tidak menjadi teman untuk menunggu bagi pengguna. Tanpa progress state pengguna dapat dipastikan akan kebingungan proses apa yang terjadi ketika sedang melakukan penghapusan data. Progress state ini cukup diperlukan sebelum menampilkan notifikasi. Terlebih bila aplikasi Anda menggunakan cukup banyak Ajax. Karena Ajax sendiri tidak akan menampilkan progress dari proses yang sedang dijalankan. Kita sendirilah yang harus menyiasati agar aplikasi tidak berkesan terjadi error saat suatu proses dijalankan.

Penyaringan dan Pengurutan

Sebenarnya fitur ini tidak terlalu mendesak untuk sebuah CRUD, namun alangkah lebih baik bila ada fitur ini untuk memudahkan pengguna memilah data yang ingin dilihat dan diproses. Anda dapat membuatnya dengan bantuan Javascript atau langsung mengurutkan dengan server side scripting yang Anda gunakan. Dapat juga menggunakan plugin - plugin dari JQuery atau MooTools untuk mengimplementasikakn fitur ini pada CRUD yang Anda buat.

Sebenarnya masih ada banyak fitur pendukung CRUD lain seperti ekspor ke file csv / excel / txt / pdf ketika masuk ke halaman daftar semua data, fitur yang telah dipaparkan sebelumnya hanya merupakan hal yang sudah biasa dikerjakan oleh para programmer yang sudah bekerja dengan CRUD. Alangkah lebih baiknya kalau programmer yang masih pemula dapat memahami fitur dasar ini sehingga dapat meningkatkan efektivitas pekerjaan bersama tim dan meningkatkan kualitas diri di dunia kerja.

(rfs)