Pertemuan 9
Debugging & Troubleshooting Umum
Tujuan Pembelajaran
- Mampu mengidentifikasi sumber masalah umum pada rangkaian elektronika.
- Mampu melakukan debugging kode secara sistematis.
- Memahami teknik isolasi masalah (menguji per bagian, bukan seluruh sistem sekaligus).
Penjelasan Konsep
Kenapa debugging itu skill penting?
Hampir setiap project elektronika/robotika akan mengalami masalah di tengah jalan - ini normal. Yang membedakan adalah kemampuan menemukan dan memperbaiki masalah secara sistematis, bukan asal coba-coba.
Masalah umum pada rangkaian (hardware)
- Kabel putus/kendor - penyebab paling sering, terutama di breadboard. Coba goyangkan kabel satu per satu sambil mengamati.
- Sensor salah baca - cek kembali wiring VCC/GND/Data, dan apakah sensor butuh kalibrasi ulang.
- Board tidak terdeteksi komputer - cek kabel USB (beberapa kabel USB hanya untuk charging, tidak mendukung transfer data), cek driver, cek pemilihan Port yang benar.
- Komponen terasa panas - matikan segera, kemungkinan ada VCC/GND yang terbalik atau korsleting.
Masalah umum pada kode (software)
- Program ter-upload tapi tidak berjalan sesuai harapan - tambahkan
Serial.print()di banyak titik untuk melacak nilai variabel dan alur program. - Program macet (hang) - periksa apakah ada
whileataudelayyang terlalu lama/tidak pernah terpenuhi kondisinya. - Error saat compile - baca pesan error dari bawah ke atas, biasanya menunjukkan baris & jenis kesalahan (tanda kurung/titik koma hilang, nama variabel salah ketik, dll).
Strategi isolasi masalah
Saat project besar tidak berjalan, jangan mencoba memperbaiki semuanya sekaligus. Lepas kembali ke komponen per komponen - uji satu sensor/aktuator secara terpisah seperti di pertemuan 4-6, baru gabungkan lagi setelah masing-masing dipastikan bekerja.
Kesalahan umum dalam proses debugging itu sendiri
- Mengubah banyak hal sekaligus lalu menguji - jika 3 baris kode diubah bersamaan lalu tiba-tiba berhasil/gagal, sulit tahu perubahan mana yang sebenarnya berpengaruh. Ubah satu hal, uji, baru ubah hal berikutnya.
- Tidak mencatat apa yang sudah dicoba - tanpa catatan, siswa sering mencoba solusi yang sama berulang-ulang tanpa sadar, atau lupa detail penting (misalnya "sudah pernah dicoba ganti pin, tidak berpengaruh").
- Panik dan mengganti komponen tanpa memastikan dulu itu sumber masalahnya - mengganti sensor yang dikira rusak padahal masalahnya di kode bisa membuang komponen kelas dan waktu secara tidak perlu.
- Menganggap "sudah pernah jalan sebelumnya, pasti masih benar" - bagian kode/wiring yang sebelumnya terbukti bekerja tetap bisa jadi sumber masalah baru (misalnya kabel yang tergeser saat merakit bagian lain); jangan langsung dicoret dari daftar kemungkinan.
Komponen yang Dibutuhkan
- Rangkaian project yang sudah dibangun sejauh ini
- Multimeter (jika tersedia, untuk mengecek tegangan/koneksi)
Diagram / Skema Pengkabelan
Tidak ada wiring baru - pertemuan ini berupa sesi troubleshooting rangkaian project yang sudah ada. Siapkan rangkaian project-mu dalam kondisi yang ingin diperbaiki/disempurnakan.
Contoh Kode Program
// Contoh teknik debugging dengan Serial.print() di banyak titik program
void loop() {
Serial.println("Mulai loop"); // penanda 1
int nilaiSensor = analogRead(A0);
Serial.print("Nilai sensor: ");
Serial.println(nilaiSensor); // penanda 2
bool kondisiAktif = nilaiSensor > 500;
Serial.print("Kondisi aktif: ");
Serial.println(kondisiAktif); // penanda 3
// Dengan penanda-penanda ini, kamu bisa melihat di titik mana
// program berhenti bekerja sesuai harapan.
delay(500);
}Tugas / Latihan
- Buat daftar masalah yang sudah/sedang dialami di project-mu sejauh ini.
- Terapkan strategi isolasi masalah (uji per komponen) untuk minimal 1 masalah yang belum terpecahkan.
- Dokumentasikan solusi yang ditemukan - ini akan berguna sebagai catatan project di presentasi akhir nanti.
- (Tantangan) Untuk satu masalah yang berhasil diperbaiki, tuliskan proses debugging-nya secara berurutan (dugaan awal, apa yang dicoba, hasilnya, dugaan berikutnya, dst) - susun sebagai "jurnal debugging" yang bisa jadi bukti proses berpikir sistematis, bukan hanya hasil akhirnya.