Dalam membuat sebuah sistem yang mengambil data dari database, hal yang seringkali dilupakan adalah antisipasi ketika tidak ada data yang dikembalikan oleh sistem. Atau NULL. Ini bisa saja karena belum ada datanya, atau tidak ada data yang sesuai dengan parameter/kriteria yang diinginkan.

Misalnya saja, saya ingin mengambil data semua agenda dari table agenda. Namun karena sistem itu baru saja diluncurkan, maka belum ada agenda. Atau ketika saya ingin mengambil agenda di tanggal 12 Juni 2009, namun karena tidak ada agenda pada tanggal tersebut, maka sistem mengembalikan nilai NULL. Dan akan muncul halaman/bagian halaman yang kosong.

Alangkah baiknya jika kita mengantisipasinya. Misalnya dengan kata ‘Belum ada agenda’ atau ‘Agenda tidak ditemukan’.

Selanjutnya yang sering dilupakan adalah pemeriksaan tipe variable yang digunakan untuk query ke dalam database (Selain untuk query dari database, bisa saja untuk keperluan lain dalam sistem.). Misalnya kita menggunakan ‘id’ yang berupa angka sebagai primary key. Dan kita mengambilnya dari segment URL. Misalnya http://example.com/berita/11. Dimana ‘11′ adalah nilai id yang akan digunakan untuk query ke dalam database. Misalnya masih berupa angka, maka semua akan baik-baik saja. Namun ketika dimasukkan huruf, maka akan menghasilkan pesan eror. Yang kemudian mungkin bisa digunakan untuk ‘keperluan lain’, misalnya SQL injection.

Kemudian menyambung dari sebelumnya, yang sering dilupakan lagi adalah menyembunyikan pesan error dari eksekusi sistem. Pesan error yang saya maksud misalnya eror parsing halaman, query ke database dan pesan error dari sistem yang lain. Dan bukan pesan error yang memang sengaja dimunculkan untuk notifikasi ke user. Misalnya page not found, error dalam pengisian form dan lain sebagainya.

Pesan eror sangat berguna ketika sistem belum online maupun masih dalam pengembangan. Namun ketika sistem sudah online, maka pesan eror bisa menjadi bumerang karena bisa dianalisa untuk ‘keperluan lain’, misalnya saja mencari kelemahan sistem. Menurut saya, ketika eror itu terjadi, sebaiknya user diarahkan ke halaman error not found. Dan tidak memunculkan log error dari sistem.

Mohon koreksi kalau ada kesalahan.

(Ditulis dalam ‘kekacauan jiwa’..hehe)

Gambar diambil dari sini