Event Listener: Menjadikan Website Hidup dan Interaktif
Bayangkan Anda memiliki sebuah tombol di halaman web. Tanpa Event Listener, tombol tersebut hanyalah sekumpulan piksel warna yang tidak berguna. Event Listener adalah cara JavaScript "mendengarkan" apa yang dilakukan pengguna (seperti klik, ketikan, atau gulir layar) dan memberikan respon yang sesuai.
1. Apa Itu Event Listener?
Event adalah sebuah kejadian atau tindakan yang terjadi di browser (misalnya: pengguna mengklik tombol).
Listener adalah fungsi yang "menunggu" kejadian tersebut terjadi untuk menjalankan kode tertentu.
Dalam dunia nyata, analoginya adalah seperti Sensor Lampu Otomatis:
-
Event: Ada orang lewat (Gerakan).
-
Listener: Sensor mendeteksi gerakan tersebut.
-
Action: Lampu menyala.
2. Sintaks Dasar addEventListener
Cara paling modern dan direkomendasikan untuk menangani event adalah menggunakan metode .addEventListener().
elemen.addEventListener('jenisEvent', fungsiYangDijalankan);
-
jenisEvent: Nama kejadian (misal:
'click','mouseover','keyup'). -
fungsiYangDijalankan: Fungsi (callback) yang akan dieksekusi saat event terjadi.
3. Tutorial Praktis: Merespon Klik Tombol
Mari kita buat contoh sederhana di mana teks berubah saat sebuah tombol diklik.
Langkah 1: Struktur HTML
<h1 id="pesan">Halo!</h1>
<button id="btn-ubah">Klik Saya!</button>
Langkah 2: Logika JavaScript
// 1. Tangkap elemennya
const tombol = document.getElementById('btn-ubah');
const teks = document.getElementById('pesan'); // 2. Tambahkan Event Listener
tombol.addEventListener('click', function() { teks.innerText = "Tombol telah diklik!"; teks.style.color = "red";
});
4. Jenis-Jenis Event yang Sering Digunakan
JavaScript bisa mendengarkan banyak hal. Berikut adalah kategori yang paling populer:
A. Mouse Events
-
click: Saat elemen diklik. -
dblclick: Saat elemen diklik dua kali. -
mouseover: Saat kursor masuk ke area elemen (hover). -
mouseout: Saat kursor keluar dari area elemen.
B. Keyboard Events
-
keydown: Saat tombol keyboard ditekan. -
keyup: Saat tombol keyboard dilepaskan.
C. Form Events
-
submit: Saat formulir dikirim. -
change: Saat nilai input berubah. -
focus: Saat kolom input diklik (aktif).
5. Mengambil Data dari Event (Objek Event)
Setiap kali event terjadi, JavaScript secara otomatis mengirimkan sebuah Objek Event (e atau event) yang berisi informasi detail tentang kejadian tersebut.
const inputNama = document.querySelector('#nama'); inputNama.addEventListener('keyup', function(e) { // e.key berisi tombol apa yang ditekan console.log("Anda menekan tombol: " + e.key);
});
6. Mengapa Menggunakan addEventListener?
Dulu, orang menggunakan atribut HTML seperti onclick="jalankan()". Namun, addEventListener jauh lebih baik karena:
-
Multiple Listeners: Anda bisa menambahkan lebih dari satu fungsi pada satu kejadian yang sama.
-
Separation of Concerns: Kode HTML tetap bersih, logika sepenuhnya ada di file JavaScript.
-
Kontrol Lebih: Anda bisa menghapus listener kapan saja menggunakan
removeEventListener.
7. Latihan Mandiri: Mode Gelap (Dark Mode)
Cobalah gabungkan pengetahuan classList dan Event Listener untuk membuat fitur Dark Mode sederhana:
const btnMode = document.querySelector('#mode-toggle'); btnMode.addEventListener('click', () => { document.body.classList.toggle('dark-theme');
});
Kesimpulan
Event Listener adalah jembatan antara pengguna dan aplikasi Anda. Dengan menguasai konsep ini, Anda bisa membangun fitur-fitur kompleks seperti validasi form, galeri gambar, hingga game berbasis browser.
Ingat: Website yang baik adalah website yang memberikan respon yang jelas terhadap setiap tindakan penggunanya.
