BLOG | eabil-PLC

Profile

Bil'ticle

Week11 - 4 - Penanganan Error Handling pada Frontend: Menampilkan Alert dan Dialog yang Komunikatif - Perwira Learning Center

By nabil alifah rahman • April 23, 2026

 


1. Latar Belakang

Tidak ada aplikasi yang sempurna. Koneksi internet bisa tiba-tiba terputus di tengah transaksi, server bisa mengalami gangguan, pengguna bisa salah memasukkan nominal, atau saldo mungkin tidak mencukupi saat hendak membayar tagihan. Kondisi-kondisi seperti ini adalah hal yang pasti terjadi dalam siklus penggunaan sebuah aplikasi — bukan pengecualian, melainkan bagian yang harus direncanakan sejak awal.

Yang membedakan aplikasi yang baik dengan yang biasa adalah bagaimana aplikasi tersebut merespons kesalahan. Bayangkan dua skenario: pertama, pengguna menekan tombol "Kirim" untuk transfer, lalu tiba-tiba muncul tulisan merah kecil "Error 422: Unprocessable Entity". Kedua, muncul dialog dengan ikon dompet dan kalimat "Saldo Anda tidak mencukupi. Saldo saat ini Rp 50.000, sedangkan nominal transfer adalah Rp 100.000. Silakan top up terlebih dahulu." Keduanya menyampaikan hal yang sama — transaksi gagal karena saldo kurang — namun pengalaman yang diberikan kepada pengguna sangat berbeda.

Dalam konteks SmartPay Purbalingga yang menyasar masyarakat Purbalingga dengan beragam tingkat melek digital, pesan error yang komunikatif dan humanis bukan sekadar fitur tambahan, melainkan fondasi kepercayaan pengguna terhadap sistem.

 

2. Pengertian

2.1 Error Handling pada Frontend

Error handling pada sisi frontend adalah proses mendeteksi, menangkap, dan merespons kondisi kesalahan — baik yang berasal dari kesalahan input pengguna, gangguan jaringan, maupun respons error dari server — lalu menyajikannya kepada pengguna dalam format yang bisa dipahami dan ditindaklanjuti. Singkatnya, error handling adalah seni "menerjemahkan" bahasa mesin ke dalam bahasa manusia.

2.2 Jenis-Jenis Komponen UI untuk Error

Tidak semua error harus ditangani dengan cara yang sama. Pilihan komponen UI untuk menampilkan error harus disesuaikan dengan tingkat keparahan dan urgensi pesan tersebut:


















3. Pembahasan: Prinsip dan Kategori Error Handling

3.1 Formula Pesan Error yang Baik

Menulis pesan error yang baik adalah seni tersendiri. Ada formula sederhana yang bisa digunakan sebagai panduan: sebuah pesan error yang komunikatif harus menjawab tiga hal sekaligus — apa yang terjadi, mengapa terjadi, dan apa yang harus dilakukan pengguna selanjutnya.

Pesan Error yang Buruk:
"Error 500: Internal Server Error"
"Terjadi kesalahan."
"Request failed with status code 422"
 Pesan Error yang Baik:
"Sistem sedang mengalami gangguan sementara. Tim kami sudah mengetahui masalah ini dan sedang memperbaikinya. Silakan coba lagi dalam beberapa menit."

"Saldo Anda tidak mencukupi untuk transaksi ini. Saldo saat ini: Rp 50.000. Silakan top up terlebih dahulu."

"Data yang Anda masukkan tidak lengkap. Pastikan nomor rekening tujuan sudah diisi dengan benar (10–16 digit angka)."

Perbedaannya sangat jelas. Pesan error yang baik tidak menyalahkan pengguna, tidak menggunakan jargon teknis, dan selalu menyertakan langkah yang bisa dilakukan pengguna untuk menyelesaikan masalah. Tone yang digunakan pun lebih seperti seorang asisten yang membantu, bukan mesin yang mencatat kesalahan.

 

3.2 Kategori Error dalam Aplikasi SmartPay Purbalingga

Dalam pengembangan SmartPay Purbalingga, error diklasifikasikan ke dalam lima kategori utama berdasarkan penyebab dan cara penangannya:

1. Validation Error (Kesalahan Input Pengguna)
Ini adalah jenis error yang paling sering terjadi dan paling bisa dicegah. Validation error muncul ketika pengguna memasukkan data yang tidak sesuai dengan format atau syarat yang ditentukan — misalnya nominal transfer yang mengandung huruf, nomor rekening yang terlalu pendek, atau kolom yang dibiarkan kosong. Pendekatan terbaik untuk jenis error ini adalah inline validation real-time, yakni pesan error ditampilkan langsung di bawah field yang bermasalah, segera setelah pengguna berhenti mengetik, tanpa harus menunggu tombol submit ditekan. Dengan begitu, pengguna bisa memperbaiki kesalahan sebelum proses pengiriman dimulai.

2. Network Error (Masalah Koneksi)
Network error terjadi ketika perangkat pengguna tidak terhubung ke internet atau koneksinya terlalu lambat. Ini adalah error yang sepenuhnya di luar kendali pengguna, sehingga pesan yang ditampilkan harus empatis dan tidak menyalahkan. SmartPay Purbalingga menampilkan dialog khusus untuk kondisi ini, dilengkapi dengan tombol "Coba Lagi" yang memungkinkan pengguna untuk langsung mencoba ulang tanpa harus menutup dialog dan memulai proses dari awal.

3. Server Error (Gangguan Sistem)
Server error terjadi ketika permintaan dari aplikasi sudah sampai ke server, namun server mengalami masalah dalam memprosesnya. Kode HTTP yang umum untuk kondisi ini adalah 500, 502, dan 503. Pada jenis error ini, pengguna tidak bisa berbuat banyak — mereka hanya perlu tahu bahwa masalah sedang ditangani dan kapan kira-kira bisa mencoba lagi. Hindari menampilkan kode error teknis; cukup sampaikan bahwa sistem sedang dalam pemeliharaan atau mengalami gangguan sementara.

4. Business Logic Error (Aturan Bisnis)
Ini adalah jenis error yang paling perlu penjelasan mendalam karena menyangkut kondisi finansial pengguna secara langsung. Contohnya: saldo tidak mencukupi, batas transfer harian sudah tercapai, nomor rekening tujuan tidak ditemukan, atau rekening tujuan diblokir. Setiap kondisi ini memiliki pesan yang berbeda dan sering kali membutuhkan panduan tindak lanjut yang spesifik.

5. Authentication Error (Masalah Keamanan)
Authentication error terjadi ketika sesi pengguna sudah berakhir (session expired) atau ketika PIN/kata sandi yang dimasukkan salah. Ini adalah kondisi yang paling sensitif karena menyangkut keamanan akun. Aplikasi SmartPay Purbalingga menangani kondisi ini dengan sangat hati-hati: jika PIN salah tiga kali berturut-turut, akun dikunci sementara selama 5 menit dengan penjelasan yang jelas bahwa ini dilakukan demi keamanan pengguna, bukan sebagai hukuman.

 

3.3 Sistem Error Handling yang Terpusat

Salah satu kesalahan umum dalam pengembangan frontend adalah menangani error secara tersebar — setiap layar atau fungsi menulis logika error handling-nya sendiri secara mandiri. Akibatnya, pesan error yang muncul tidak konsisten: untuk error jaringan yang sama, satu layar mungkin menampilkan dialog, layar lain menampilkan snackbar, dan layar lainnya bahkan tidak menampilkan apa-apa.

Di SmartPay Purbalingga, solusi untuk masalah ini adalah membangun sistem error handling terpusat. Konsepnya adalah: semua error yang terjadi di seluruh aplikasi diproses terlebih dahulu oleh satu komponen pusat (disebut ErrorHandler) sebelum ditampilkan ke pengguna. Komponen ini bertanggung jawab untuk mengklasifikasikan jenis error, menentukan pesan yang tepat, dan memilih komponen UI yang sesuai untuk menampilkannya.

Dengan pendekatan ini, konsistensi pesan error terjaga di seluruh aplikasi. Jika suatu saat kata-kata dalam pesan error perlu diubah — misalnya dari "Tidak ada koneksi" menjadi "Periksa koneksi internet Anda" — cukup dilakukan perubahan di satu tempat saja, bukan di setiap layar secara manual.

 

3.4 Prinsip Tambahan: Jangan Membuat Pengguna Takut

Khusus untuk aplikasi keuangan, ada prinsip tambahan yang sangat penting dalam error handling: jangan membuat pengguna panik. Pesan error dalam konteks keuangan sering kali menimbulkan kecemasan lebih dari yang seharusnya — pengguna khawatir uang mereka hilang, transaksi ganda terjadi, atau akun mereka diretas.

Oleh karena itu, setiap pesan error di SmartPay Purbalingga dirancang dengan tone yang tenang dan meyakinkan. Ketika transfer gagal karena server error, aplikasi tidak hanya memberitahu bahwa proses gagal, tetapi juga secara eksplisit menyatakan "Uang Anda tidak terpotong dari saldo" sehingga pengguna tahu kondisi keuangan mereka aman meski transaksi tidak berhasil. Transparansi seperti ini adalah kunci membangun kepercayaan jangka panjang.

 

3.5 Validasi Form: Mencegah Error Sebelum Terjadi

Filosofi terbaik dalam error handling adalah mencegah error sebelum terjadi, bukan sekadar menanganinya setelah terjadi. Pada halaman-halaman yang melibatkan input pengguna seperti form transfer, form pembayaran, atau registrasi akun, SmartPay Purbalingga menerapkan validasi berlapis:

  • Validasi format real-time: Segera memberi tahu pengguna jika format yang dimasukkan salah, seperti nomor rekening yang mengandung huruf atau nominal yang bernilai negatif. Validasi ini terjadi saat pengguna masih mengetik.
  • Validasi logika bisnis: Mengecek apakah nominal transfer melebihi saldo yang tersedia, atau apakah nominal memenuhi batas minimum transfer. Validasi ini dilakukan sebelum data dikirim ke server.
  • Validasi dari server: Beberapa validasi hanya bisa dilakukan oleh server, seperti mengecek apakah nomor rekening tujuan benar-benar ada. Respons dari server ini kemudian ditampilkan kepada pengguna dalam format yang mudah dipahami.
🔍 Contoh Kasus: Pengguna SmartPay ingin transfer Rp 200.000 ke rekening teman, namun saldo hanya Rp 150.000. Alih-alih menunggu pengguna menekan tombol kirim lalu menampilkan error, aplikasi sudah menampilkan peringatan kecil berwarna oranye di bawah field nominal begitu pengguna selesai mengetik angka tersebut: "Saldo tidak mencukupi. Saldo Anda: Rp 150.000." Pengguna langsung tahu masalahnya dan bisa memutuskan apakah akan mengubah nominal atau top up terlebih dahulu. 
 

4. Dokumentasi Pembelajaran dan Pengerjaan

4.1 Peta Error Handling SmartPay Purbalingga

Selama proses pembelajaran di Perwira Learning Center, tim membuat peta komprehensif yang mendokumentasikan setiap skenario error yang mungkin terjadi beserta respons yang seharusnya diberikan aplikasi. Proses ini terasa seperti memetakan semua "what if" yang bisa terjadi — dan ternyata jumlahnya cukup banyak.



























4.2 Refleksi Pembelajaran

Proses merancang error handling mengajarkan satu hal yang sangat berharga: menulis untuk pengguna itu sulit. Jauh lebih mudah untuk membiarkan pesan error teknis dari server langsung ditampilkan apa adanya. Tapi ketika harus "menerjemahkan" pesan teknis itu ke dalam kalimat yang empatis, jelas, dan actionable — itulah tantangan sesungguhnya.

Dalam sesi review di Perwira Learning Center, setiap pesan error yang dibuat dibacakan keras-keras dan kemudian ditanyakan kepada rekan yang berpura-pura menjadi pengguna awam: "Apakah kamu mengerti apa yang harus dilakukan setelah membaca ini?" Cara sederhana ini ternyata sangat efektif untuk mengidentifikasi pesan error yang masih terlalu teknis atau membingungkan.

 

5. Kesimpulan

 Error handling yang baik adalah cermin dari seberapa jauh sebuah aplikasi benar-benar memperhatikan penggunanya. Dalam SmartPay Purbalingga, setiap kondisi error diperlakukan sebagai kesempatan untuk berkomunikasi dengan pengguna secara jujur, empatis, dan memberdayakan — bukan sebagai situasi yang memalukan yang perlu disembunyikan. Dengan sistem error handling terpusat, kategori error yang jelas, formula pesan yang terstruktur, dan validasi proaktif, SmartPay Purbalingga berhasil membangun lapisan kepercayaan yang kuat antara aplikasi dan penggunanya.

Daftar Pustaka

  1. Nielsen Norman Group. (2023). Error Message Guidelines. https://www.nngroup.com/articles/error-message-guidelines/
  2. Krug, S. (2014). Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability. New Riders Press.
  3. Google Material Design 3. (2024). Communication: Dialogs, Snackbars, Alerts. https://m3.material.io/components/dialogs
  4. Flutter Documentation. (2024). Handle errors in Flutter. https://docs.flutter.dev/testing/errors
  5. Babich, N. (2021). Form Design Best Practices. Smashing Magazine.
  6. Wroblewski, L. (2008). Web Form Design: Filling in the Blanks. Rosenfeld Media.