Last Updated on September 19, 2023 by
JavaScript adalah salah satu hal penting dalam pengembangan web. Salah satu aspek kunci dalam pengembangan web adalah menangani interaksi pengguna seperti mengklik tombol atau mengisi formulir. Dalam tutorial kali ini kita akan mempelajari tentang JavaScript addEventListener yaitu sebuah metode yang sangat berguna untuk menangani peristiwa (event) dalam halaman web kalian. Yuk simak!
Images by Freepik
Table of Contents
Apa Itu Javascript addEventListener?
addEventListener adalah metode bawaan dalam JavaScript yang memungkinkan kalian menambahkan event listener (pemantau acara) pada elemen HTML. Sebuah event listener adalah fungsi yang menunggu terjadinya suatu peristiwa tertentu pada elemen HTML seperti mengklik tombol, menggerakkan mouse atau menekan tombol pada keyboard. Ketika peristiwa yang ditentukan terjadi nantinya fungsi terkait yang disebut event handler akan dieksekusi.
Bagaimana Javascript addEventListener Bekerja?
Untuk memahami bagaimana addEventListener bekerja, mari kita lihat lebih dalam tentang mekanisme kerjanya.
Fase-fase Peristiwa (Event Phases)
Sebelum kita masuk ke dalam addEventListener, penting untuk memahami konsep fase-fase peristiwa (event phases) dalam HTML DOM (Document Object Model). Ketika peristiwa (event) terjadi pada elemen HTML, peristiwa tersebut melalui tiga fase utama. Berikut adalah tiga fase utamanya.
Fase Penangkapan (Capture Phase)
Peristiwa ini mulai dari elemen terluar dan bergerak menuju elemen target (target elemen yang menjadi sumber peristiwa). Ini adalah fase dimana elemen-elemen induk lebih tinggi dalam hirarki DOM menangkap peristiwa sebelum mencapai elemen target.
Fase Target (Target Phase)
Ini adalah fase dimana peristiwa mencapai elemen target itu sendiri.
Fase Penyebaran (Bubbling Phase)
Peristiwa bergerak kembali ke atas dalam hirarki DOM, melewati elemen target dan terus bergerak hingga mencapai elemen terluar. Selama fase ini, elemen-elemen yang lebih tinggi dalam hirarki DOM dapat menangkap peristiwa lagi.
Pemahaman addEventListener
addEventListener memungkinkan kita untuk memasang event listener pada elemen HTML dan mengontrol fase mana yang akan mendengarkan peristiwa (event).
element.addEventListener(event, function, useCapture);
- element: Elemen HTML yang ingin kalian pasang event listener-nya.
- event: String yang menentukan jenis peristiwa (event) yang ingin kalian dengarkan (misalnya, “click,” “mouseover,” “keydown,” dll.).
- function: Fungsi yang akan dieksekusi ketika peristiwa terjadi.
- useCapture (opsional): Nilai Boolean yang menentukan apakah peristiwa harus ditangkap selama fase penyebaran (biasanya diatur ke false).
Fase Penangkapan dan Fase Penyebaran
Kalian dapat mengendalikan apakah event listener kalian bekerja selama fase penangkapan atau fase penyebaran dengan mengatur parameter useCapture. Jika useCapture diatur ke true, event listener akan bekerja selama fase penangkapan. Jika diatur ke false atau diabaikan, maka event listener akan bekerja selama fase penyebaran.
element.addEventListener('click', function, true); // Selama fase penangkapan element.addEventListener('click', function, false); // Selama fase penyebaran (default) element.addEventListener('click', function); // Juga selama fase penyebaran (default)
Penting untuk diingat bahwa jika kalian tidak mengatur useCapture secara eksplisit, addEventListener akan mengasumsikan false (fase penyebaran).
Images by Freepik
Mengapa Fase Penangkapan Penting?
Fase penangkapan (capture phase) bermanfaat ketika kalian memiliki elemen yang bersarang (nested elements) dan ingin mengontrol peristiwa dari atas ke bawah dalam hirarki DOM. Ini berguna untuk manajemen peristiwa yang lebih kompleks seperti event delegation di mana elemen induk menangani peristiwa untuk banyak elemen anak.
Dengan memahami fase-fase peristiwa dan mengendalikan kapan event listener kalian aktif selama fase penangkapan atau fase penyebaran, kalian dapat mengontrol dengan lebih baik cara peristiwa (event) ditangani dalam halaman web kalian. Ini adalah salah satu alat yang kuat untuk membuat interaksi pengguna yang lebih kompleks dan responsif.
Cara Menggunakan addEventListener di JavaScript
addEventListener adalah metode yang digunakan untuk menambahkan event listener ke elemen HTML. Ini memungkinkan kalian untuk mendengarkan dan menanggapi berbagai peristiwa (event) seperti klik mouse, penekanan tombol keyboard, perubahan nilai elemen dan banyak lagi. Berikut adalah cara penggunaan addEventListener.
// Menentukan elemen HTML yang akan diberi event listener const elemen = document.getElementById('contoh-elemen'); // Menambahkan event listener untuk menghandle peristiwa 'click' elemen.addEventListener('click', function() { // Kode yang akan dijalankan saat elemen tersebut diklik alert('Elemen ini diklik!'); });
Dalam contoh di atas, kami melakukan hal berikut.
Mengidentifikasi elemen HTML yang ingin kita tambahkan event listener-nya dengan menggunakan document.getElementById() dan memberikan ID elemen tersebut.
Menggunakan metode addEventListener pada elemen tersebut. Kami menentukan jenis peristiwa yang akan dipantau (dalam hal ini, ‘click’) dan menyediakan sebuah fungsi (biasanya disebut event handler) yang akan dijalankan saat peristiwa tersebut terjadi.
Dalam contoh ini fungsi tersebut hanya memunculkan sebuah peringatan (alert) saat elemen diklik, tetapi kalian dapat melakukan apa saja sesuai kebutuhan seperti mengubah konten elemen, melakukan validasi atau mengirimkan data ke server.
Catatan
Kalian juga dapat menggunakan addEventListener pada elemen HTML lainnya seperti elemen dengan tag ‘button’, ‘input’, atau ‘div’ dengan cara yang serupa.
Kalian dapat menambahkan lebih dari satu event listener untuk jenis peristiwa yang sama pada elemen yang sama. Ini memungkinkan kalian untuk menjalankan beberapa tindakan berbeda saat peristiwa tersebut terjadi.
Ingatlah untuk memastikan bahwa elemen yang kalian targetkan sudah ada dalam DOM (Document Object Model) sebelum kalian mencoba menambahkan event listener. Jika elemen tersebut belum tersedia saat kode dijalankan, kalian perlu menunggu hingga elemen tersebut dimuat.
Manfaat Menggunakan addEventListener
Menggunakan addEventListener memiliki beberapa keuntungan yang membuatnya menjadi salah satu alat yang sangat berguna dalam pengembangan web.
Berikut adalah beberapa manfaat utama dari penggunaan addEventListener.
Multiple Event Listeners
Kalian dapat menambahkan beberapa event listener pada satu elemen. Ini berarti kalian dapat merespons berbagai peristiwa (event) yang berbeda pada elemen yang sama. Misalnya kalian bisa memiliki event listener untuk mengatasi klik dan yang lain untuk mengatasi perubahan nilai.
Pemisahan Concern
Dengan menggunakan addEventListener, kalian dipaksa untuk memisahkan struktur HTML dari perilaku JavaScript. Ini mengarah pada penulisan kode yang lebih bersih dan terorganisir yang mempermudah pemeliharaan kode di masa depan.
Tanpa Overwrite
Dalam metode lama seperti penggunaan atribut onclick, menambahkan lebih dari satu event listener bisa menjadi masalah karena akan menggantikan yang sudah ada. addEventListener memungkinkan kalian menambahkan beberapa event listener tanpa menggantikan yang sudah ada.
Delegasi Event
Kalian dapat menggunakan konsep event delegation dengan addEventListener. Ini memungkinkan kalian untuk mendengarkan peristiwa pada elemen-elemen induk bahkan jika elemen anaknya dibuat secara dinamis atau jika kalian memiliki daftar item yang besar. Dengan ini kalian dapat menghindari penambahan event listener berlebihan pada banyak elemen.
Kontrol Fase Penangkapan dan Penyebaran
Kalian dapat mengontrol apakah event listener kalian akan berfungsi selama fase penangkapan atau penyebaran dengan mengatur parameter useCapture. Hal ini memungkinkan kalian untuk lebih fleksibel dalam menangani peristiwa yang melibatkan elemen bersarang.
Kesimpulan
JavaScript adalah bahasa pemrograman yang krusial dalam pengembangan web dan menangani interaksi pengguna merupakan aspek penting. addEventListener memungkinkan kita untuk menambahkan event listener pada elemen HTML yang bekerja dengan cara mendengarkan peristiwa yang terjadi pada elemen tersebut. Fungsi yang dieksekusi saat peristiwa terjadi disebut event handler.
Fase-fase peristiwa (event phases) dalam HTML DOM yaitu fase penangkapan, fase target dan fase penyebaran. addEventListener memungkinkan kita untuk mengontrol pada fase mana event listener akan merespons peristiwa.
Ada beberapa manfaat utama dalam menggunakan addEventListener yaitu kemampuan untuk menambahkan banyak event listener pada satu elemen, pemisahan antara HTML dan JavaScript, kemampuan untuk menambahkan event listener tanpa menggantikan yang sudah ada, penggunaan event delegation untuk elemen-elemen induk dan kontrol atas fase penangkapan dan penyebaran.
Dengan menguasai addEventListener kalian dapat membuat halaman web yang lebih interaktif dan responsif serta memahami lebih baik cara peristiwa ditangani dalam aplikasi web kalian. Ini adalah alat penting dalam pengembangan web modern yang perlu kalian kuasai untuk menciptakan pengalaman pengguna yang lebih baik.
Temukan lebih banyak artikel seri belajar Javascript maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis. Sampai bertemu lagi!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.