Apa itu debouncing?
Debouncing adalah proses menghilangkan noise input yang tidak diinginkan dari tombol, sakelar, atau input pengguna lainnya. Debouncing mencegah aktivasi berlebihan atau fungsi yang berjalan terlalu sering. Debouncing digunakan dalam sakelar perangkat keras, program, dan situs web.
Debouncing pada sakelar perangkat keras
Sakelar fisik adalah perangkat mekanis yang memiliki sedikit efek pantulan alami. Pegas dan kontak logam dapat menyebabkan koneksi terputus dan tersambung beberapa kali setiap kali sakelar ditekan. Untuk hal-hal sederhana, seperti sakelar lampu, pantulan ini tidak dapat dideteksi oleh manusia, sehingga tidak menjadi masalah. Namun, dalam elektronika digital, pantulan tambahan dapat dideteksi dan diinterpretasikan sebagai input yang disengaja sehingga menyebabkan masalah. Misalnya, jika Anda menekan tombol ganti saluran di TV dan saluran berubah dua kali, itu mungkin karena input tidak mengalami debouncing dengan benar.

Debouncing sakelar dapat dilakukan dalam perangkat keras atau perangkat lunak. Debouncing perangkat keras sederhana dapat dibuat dengan komponen pasif. Menggunakan filter resistor–kapasitor dengan pemicu Schmitt dioda dapat memperhalus transisi menjadi kurva. Debouncer digital dapat dibuat dengan latch set/reset. Sirkuit terpadu khusus untuk debouncing sakelar dan tombol tersedia dan dapat ditambahkan ke desain. Semua metode debouncing perangkat keras memerlukan komponen tambahan dan, oleh karena itu, menambah biaya desain.
Menambahkan debouncing sakelar dalam perangkat lunak adalah praktik umum dengan mikrokontroler. Sakelar dapat langsung dihubungkan ke input mikrokontroler, dan fungsi debouncing dapat diterapkan untuk menyaring pantulan fisik pada sakelar.
Debouncing dalam pemrograman
Dalam pemrograman, debouncing adalah ketika sebuah fungsi menyaring input pengguna sebelum memicu suatu tindakan. Input pengguna yang tidak mengalami debouncing dengan benar dapat menyebabkan kinerja buruk, aktivasi ganda, atau frustrasi pengguna. Sering kali, fungsi debouncing umum digunakan daripada menulis kode baru untuk setiap aktivitas input. Fungsi debouncing ditempatkan setelah input pengguna dan kemudian memanggil aksi target dari tombol. Banyak pustaka pemrograman menyertakan fungsi debounce bawaan.
Contoh kasus penggunaan fungsi debouncing dapat diterapkan dalam JavaScript atau bahasa pemrograman lainnya:
- Untuk situs web yang memiliki tombol submit untuk melakukan pemesanan, jika pengguna mengklik tombol dua kali, mereka mungkin secara tidak sengaja membeli pesanan dua kali. Fungsi debounce akan memastikan bahwa hanya satu permintaan yang dikirim.
- Untuk situs yang menerima input dari kotak teks dengan autofill atau kotak pencarian yang disarankan, debounce dapat memastikan bahwa input diterima hanya setelah setiap huruf diketik ke dalam kotak. Aktivasi lainnya dapat menyebabkan kinerja buruk, beban server tinggi, atau kebingungan pengguna. Fungsi debounce mungkin menunggu satu atau dua detik setelah huruf terakhir diketik sebelum mengambil tindakan.
- Contoh lainnya adalah elemen grafis atau pesan yang diprogram untuk mengikuti kursor di sekitar layar atau saat halaman web di-scroll. Tindakan ini dapat berjalan ratusan kali per detik dan menyebabkan kinerja halaman buruk atau penggunaan sumber daya yang tinggi. Fungsi debounce dapat membatasi skrip script agar hanya berjalan beberapa kali per detik untuk menjaga kelancaran kinerja.