18 Dec 2015

Error Handling Demi Kemaslahatan Umat

Sore ini di timeline nemu berita mengejutkan. Tentang seorang guru yang meninggal akibat serangan jantung setelah pekerjaannya input rapor online hilang ketika dicek satu persatu.

Kalo dilihat dari sisi korban, mungkin korban sedang terlalu lelah hingga hal itu bisa terjadi. Itu memang musibah. Tapi, dari sudut pandang gue sebagai developer, ada hal-hal kecil yang sebenarnya bisa ditangani agar kejadian tersebut (input rapor online hilang) tidak terjadi.

Kejadian tersebut ngingetin gue ke program try-out online yang diadakan secara offline di sebuah kampus. Gue diundang dosen buat bantu acara tersebut, tapi bukan sebagai developer yang mengembangkan aplikasi web onlinenya, tapi hanya bantu-bantu guide siswa peserta untuk menggunakan web tersebut.

Ada satu kesalahan fatal di aplikasi web tersebut. Data jawaban dari soal-soal yang dikerjakan siswa dikirim dengan method POST melalui element FORM HTML biasa yang membuat halaman aplikasi web akan terefresh ketika melakukannya.

Dua tiga siswa berhasil input jawaban ke server dan mendapatkan skor. Tapi sisanya, karna kebanyakan siswa selesai bersamaan, BOTTLENECT!. Data siswa gagal terkirim ke server. Dan karna method pengirimannya membuat halaman terefresh, maka muncul halaman browser kosong. Ketika tekan tombol back, form jawaban kebanyakan siswa hilang. Banyak siswa panik. Try-Out kacau. Developernya pusing. Gue pulang 🙂

Dari dua kejadian itu, satu hal yang harus benar-benar diperhatikan oleh developer. Error handling. Hal tersebut harus jadi prioritas bagi developer. Kapan kira-kira aplikasi akan error karna kesalahan koding, atau karna user error.

Dari kasus gue misalnya, developer bisa handling data siswa dengan menyimpannya di localStorage. Lalu pengiriman data menggunakan AJAX secara berkala sehingga tidak membutuhkan refresh user. Dengan menyimpan data di localStorage, bahkan bila terjadi hal yang tidak diinginkan seperti batre laptop mati, ketika laptop dihidupkan kembali, data masih bisa di restore.

Tinggalkan Komentar?

Your email address will not be published.

*