Programer Hebat Melihat Kesalahan Menjadi Wawasan

Arif Akbarul Huda
3 min readOct 26, 2024

--

Dalam sebuah momentum santai Python Conference Asia Pacific 2024, kami berkelakar. Berbincang santai diantara sesi bertubi. Mulai dari topik politik, pengalaman worklife hingga fenomena perilaku programmer.

Salah satu keynote speaker — Georgi Ker Director — Python Software Foundation

Saya sering dapat DM. Kak, tiba-tiba aplikasi saya crash. Apa yang terjadi?” Celetuk Kang Imre Nagi. Seketika saya refleksi, keseharian di Kampus. Ternyata keluhan serupa sering terdengar dalam aktifitas praktikum. Fenomena ini ter-capture dari tingkat mahasiswa hingga programmer fresh grade yang tersebar di Tech Startup. Semoga programer senior tidak mengeluh hal serupa.

Sepertinya ada kemampuan yang semakin tergerus yakni critical thinking” saya menimpali. Akan segera tiba generasi programmer pemula, dalam kondisi minim literasi, less curiosity, dan low endurance. Somehow hal ini sangat terasa, namun saya tidak memiliki datanya. Jadi highlight pernyataan tersebut jika Kamu merasakan yang sama.

Pressman, Roger S. dalam bukunya Software Engineering: A Practitioner’s Approach menjelaskan konsep Debugging. Debugging itu semacam proses detektifnya para programmer dalam dunia rekayasa perangkat lunak. Ini adalah langkah-langkah yang dipakai buat cari tahu, menganalisis, dan memperbaiki bug atau kesalahan dalam kode. Ibaratnya, kalau ada aplikasi atau program yang tiba-tiba error, debugging adalah cara buat mencari tahu apa yang salah, kenapa bisa begitu, dan gimana caranya supaya program kembali normal.

Jadi, langkah-langkahnya mulai dari paham dulu masalahnya apa, coba ulangin kejadian errornya (biar jelas apa yang bikin rusak), terus cek kode mana yang bikin masalah, dan terakhir, ya, diperbaiki deh! Setelah itu, cek lagi biar yakin kalau perbaikannya benar-benar bikin aplikasi beres tanpa nimbulin masalah baru.

Singkatnya, debugging itu cara programmer buat jadi problem solver — ngacak-ngacak kode sampai ketemu titik error, lalu diberesin biar aplikasi bisa jalan sesuai harapan.

Alur debugging — critical thinking-nya programmer

Berikut penjelasan setiap langkahnya, kamu bisa salin-terapkan dalam keseharianmu.

Issue Identification. Proses debugging dimulai ketika suatu kesalahan ditemukan dalam perangkat lunak. Ini bisa terjadi selama pengujian, penggunaan oleh pengguna akhir, atau selama pengembangan itu sendiri. Masalah ini bisa berupa crash, perilaku yang tidak sesuai harapan, atau hasil yang tidak akurat.

Reproduction of the problem. Langkah penting dalam debugging adalah mampu mereproduksi masalah secara konsisten. Jika masalah bisa diproduksi ulang dalam lingkungan yang terkontrol, ini memudahkan untuk memverifikasi bahwa masalah sudah benar-benar diidentifikasi dan untuk menguji perbaikan di kemudian hari.

Issue Analysis. Setelah masalah teridentifikasi dan direproduksi, langkah selanjutnya adalah menganalisis kode yang menyebabkan masalah. Pada tahap ini, pengembang biasanya menggunakan alat debugging (seperti debugger) atau menganalisis log untuk menemukan bagian spesifik dari kode yang menyebabkan masalah.

Root Cause Identification. Pengembang kemudian mencari akar penyebab dari bug. Ini melibatkan memeriksa aliran kontrol program, mengecek variabel yang salah, atau menemukan ketidaksesuaian antara desain yang diharapkan dengan implementasi kode. Sebenarnya jika kamu sabar, error itu akan dirilis sendiri oleh compiler atau logger. Ini contohnya. Sayangnya hanya orang terlatih yang bisa memaknai ini.

Tampilan error yang dijelasakan sendiri oleh intepreter. Diambil dari matsci.org

Fix The Bug. Setelah akar penyebabnya ditemukan, pengembang memperbaiki kode tersebut dengan menulis ulang bagian yang bermasalah atau mengubah alur logika program.

Test The Fix. Setelah perbaikan dilakukan, penting untuk menguji kembali perangkat lunak untuk memastikan bahwa masalah sudah teratasi dan tidak ada masalah baru yang muncul akibat perbaikan tersebut.

Regresi Testing. Setelah bug diperbaiki, pengembang sering kali melakukan regresi testing untuk memastikan bahwa perbaikan tersebut tidak menyebabkan bug baru atau masalah pada bagian lain dari perangkat lunak.

Programmer hebat selalu memandang kesalahan bukan sebagai hambatan, tapi sebagai peluang untuk belajar dan berkembang. Dalam proses debugging, mereka tidak hanya fokus memperbaiki bug, tetapi juga menggali wawasan lebih dalam tentang bagaimana sistem bekerja dan bagaimana meningkatkan kualitas kode.

Setiap masalah adalah pelajaran, dan melalui debugging, mereka mendapatkan pemahaman yang lebih luas tentang desain dan performa perangkat lunak. Jadi, alih-alih takut menghadapi error, mereka justru melihatnya sebagai kesempatan untuk menjadi lebih baik. Itulah kunci dari seorang programmer hebat — melihat kesalahan menjadi wawasan.

--

--

No responses yet