Blog

My Blog

Selamat datang di Personal Website Muhammad Sabiran, S.Kom

Belajar dari Bug: Cerita Debugging yang Mengajarkan sebagai Full Stack Web Developer

Tips & Best Practice 20 Jun 2025
Belajar dari Bug: Cerita Debugging yang Mengajarkan sebagai Full Stack Web Developer

Kalau ada satu hal yang pasti dalam dunia pengembangan web, itu adalah: bug akan selalu datang. Bahkan ketika kamu sudah merasa menulis kode dengan rapi, selalu saja ada satu baris kecil yang bisa membuat semuanya rusak. Tapi dari semua itu, ada satu pelajaran besar yang saya dapatkan sebagai Full Stack Web Developer: bug bukanlah musuh, tapi guru yang menyamar.

Di blog ini, saya ingin berbagi cerita nyata saat saya dihadapkan pada bug yang tidak hanya membuat frustrasi, tapi juga membuka wawasan saya akan pentingnya debugging yang sistematis, kesabaran, dan keinginan untuk terus belajar.


Cerita: API Error 500 Tanpa Jejak

Beberapa waktu lalu, saya membangun aplikasi web sederhana dengan Next.js di front-end dan Express.js di back-end. Semuanya berjalan lancar… hingga suatu pagi aplikasi tiba-tiba menampilkan error 500 Internal Server Error setiap kali saya mengakses halaman dashboard.

Masalahnya? Tidak ada stack trace. Tidak ada log error di terminal. Hanya putih polos dan angka 500.

Saya sempat panik. Tapi kemudian saya ambil napas dan kembali ke prinsip dasar debugging:


Langkah-Langkah yang Saya Ambil

1. Reproduksi Masalah secara Konsisten

Langkah pertama adalah memastikan masalah terjadi secara konsisten. Saya temukan bahwa error hanya muncul jika user login, dan hanya saat data tertentu diambil dari database.

2. Periksa Log & Tambahkan Logging Manual

Karena tidak ada log berarti, saya tambahkan console.log() di setiap blok kode yang berpotensi error. Dari sini, saya tahu error terjadi saat melakukan query ke database menggunakan findOne().

3. Cek Struktur Data & Validasi Input

Ternyata, data yang dikirimkan ke query memiliki field undefined. Ketika field ini dipakai untuk filtering di MongoDB, query gagal secara diam-diam.

4. Solusi: Tambahkan Validasi dan Fallback

Saya tambahkan pengecekan untuk memastikan field tersebut tidak kosong sebelum query dilakukan. Hanya butuh dua baris kode, dan masalah pun selesai.


Pelajaran yang Saya Dapatkan

Logging itu Penting

Tanpa log, debugging adalah menebak dalam gelap. Sejak saat itu, saya mulai menggunakan library logging seperti winston untuk mencatat error dengan lebih detail.

Jangan Langsung Menyalahkan Framework

Awalnya saya curiga ini bug dari Next.js. Ternyata, itu murni kesalahan di logic saya sendiri. Framework hanya mematuhi perintah yang saya berikan—baik maupun buruk.

Pahami Alur Data dengan Jelas

Debugging seringkali bukan soal sintaks, tapi soal memahami bagaimana data bergerak di dalam aplikasi.

Sabar & Fokus Lebih Efektif daripada Panik

Butuh waktu hampir 3 jam untuk menyelesaikannya. Tapi saat saya berhenti panik dan mulai mengurai masalah satu per satu, progres pun terjadi.


Penutup

Debugging mungkin adalah bagian paling menyebalkan dalam coding, tapi juga bagian yang paling mendidik. Setiap bug mengajarkan kita untuk lebih teliti, lebih terstruktur, dan lebih memahami aplikasi yang kita bangun.

Jadi lain kali kamu bertemu bug aneh dan menyebalkan, jangan langsung kesal. Bisa jadi, di balik error itu ada pelajaran penting yang akan membentukmu jadi developer yang lebih matang.