# Debugging

Debugging adalah proses mengidentifikasi, memahami, dan memperbaiki kesalahan atau bug dalam kode. Berikut adalah beberapa teknik debugging yang umum digunakan dalam JavaScript:

1. **Console.log():** Salah satu teknik debugging paling sederhana adalah dengan menggunakan `console.log()` untuk mencetak nilai variabel atau pesan ke konsol browser. Ini membantu Anda melacak nilai variabel atau aliran program pada titik tertentu dalam kode.

```javascript
let x = 5;
console.log(x); // Cetak nilai variabel x ke konsol
```

2. **Debugger Statement:** Anda dapat menempatkan pernyataan `debugger` di kode JavaScript Anda. Ini akan memberi tahu debugger browser untuk menghentikan eksekusi kode di titik tersebut, memungkinkan Anda untuk memeriksa nilai variabel dan status program.

```javascript
let x = 5;
debugger; // Program akan berhenti di sini
console.log(x);
```

3. **DevTools:** Browser modern seperti Chrome, Firefox, dan Edge menyediakan alat pengembangan (DevTools) yang kuat. Anda dapat membuka DevTools dengan menekan F12 atau klik kanan di halaman web dan pilih "Inspect". Di bagian DevTools, Anda akan menemukan tab "Console" untuk mencetak pesan atau debug, tab "Sources" untuk melihat kode Anda, serta banyak alat lainnya untuk memeriksa jaringan, kinerja, dan elemen DOM.
4. **Breakpoints:** Anda dapat menetapkan breakpoint di baris kode tertentu di DevTools. Saat program mencapai breakpoint, eksekusi akan dihentikan dan Anda dapat memeriksa nilai variabel, ekspresi, dan status program.
5. **Step Through Code:** Di DevTools, Anda dapat menggunakan fungsi step through code seperti "step into", "step over", dan "step out" untuk melihat bagaimana program berperilaku baris per baris.
6. **Error Messages:** Jika terjadi kesalahan dalam kode, browser akan menampilkan pesan kesalahan di konsol DevTools. Pesan kesalahan ini dapat memberi petunjuk tentang di mana kesalahan terjadi dan apa yang perlu diperbaiki.

Dengan kombinasi teknik-teknik ini, Anda dapat mengidentifikasi dan memperbaiki bug dalam kode JavaScript Anda dengan lebih efisien.
