Elektronika & Robotika Dasar

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 while atau delay yang 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

  1. Buat daftar masalah yang sudah/sedang dialami di project-mu sejauh ini.
  2. Terapkan strategi isolasi masalah (uji per komponen) untuk minimal 1 masalah yang belum terpecahkan.
  3. Dokumentasikan solusi yang ditemukan - ini akan berguna sebagai catatan project di presentasi akhir nanti.
  4. (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.