
Bagaimana Cara Mengatasi Masalah javascript:void(0)? Simak Caranya!
_Simak_Caranya!.png)
javascript:void(0) sering muncul dalam pengembangan web, terutama di dalam tag <a>. Sederhananya, kode ini digunakan untuk mencegah aksi default tautan ketika diklik. Dengan menempatkan javascript:void(0) di atribut href, browser tidak akan menavigasi ke halaman lain maupun me-refresh halaman. Cara ini memungkinkan Anda menjalankan skrip JavaScript tanpa mengganggu tampilan halaman. Sebagai contoh, jika ada <a href="javascript:void(0)" onclick="doSomething()"> maka klik tautan tersebut hanya akan memicu fungsi doSomething() dan tetap berada di halaman yang sama. Namun, penggunaan ini perlu hati-hati karena dapat menimbulkan masalah semantik dan aksesibilitas. Pada artikel ini, kita bahas secara mendalam apa itu javascript:void(0), bagaimana cara kerjanya, masalah umum yang ditimbulkannya, serta solusi dan alternatif yang lebih baik dalam pengembangan web.
Apa itu javascript:void(0)?

Dalam pengembangan web, javascript:void(0) adalah suatu ekspresi yang sering dipakai pada atribut href elemen <a>. Konsep dasarnya adalah mencegah navigasi default. Sebagaimana dijelaskan CodeRavo, penggunaan javascript:void(0) pada elemen anchor berarti mencegah browser melakukan navigasi ke halaman lain, tetapi tetap menjalankan kode JavaScript yang ada. Di sini, bagian javascript: adalah pseudo-protokol yang memberitahu browser untuk menjalankan JavaScript, bukan mengunjungi URL. Sedangkan void(0) adalah operator yang mengevaluasi 0 dan mengembalikan undefined. Dengan mengembalikan undefined, browser tidak punya nilai untuk dimuat sebagai halaman baru, sehingga tidak terjadi navigasi sama sekali. Misalnya, kode berikut hanya menjalankan alert() tanpa berpindah halaman:
<a href="javascript:void(0)" onclick="alert('Halo!')">Klik Saya</a>
Ketika diklik, kotak dialog muncul tetapi halaman tetap seperti semula. Dengan demikian, javascript:void(0) sebenarnya bukan instruksi untuk mengosongkan halaman, melainkan trik untuk menjaga agar aksi klik tidak mengarahkan pengguna ke mana pun.
Fungsi Operator void dalam JavaScript
Operator void dalam JavaScript berfungsi mengevaluasi ekspresi yang diberikan lalu mengembalikan undefined. Yang umum digunakan adalah void(0) (sama dengan void 0), karena sederhana dan selalu menghasilkan undefined. MDN menjelaskan bahwa operator void digunakan ketika Anda membutuhkan sebuah undefined yang pasti. Misalnya:
console.log(void(0)); // undefined
Pada konteks hyperlink, ini berguna untuk memastikan tautan tidak mengembalikan apapun ke browser. Jadi, ketika <a href="javascript:void(0)"> dijalankan, hasilnya adalah undefined dan browser tidak melakukan apa-apa. Singkatnya, penggunaan void(0) adalah cara eksplisit untuk memberitahu browser “tidak perlu navigasi atau reload halaman”.
Alternatif: Beberapa pengembang kadang menggunakan javascript:void(null) atau bahkan javascript:;, tetapi konsepnya sama – menghasilkan undefined atau tidak ada aksi. Namun perlu diingat, MDN tidak menyarankan penggunaan pseudo-protokol javascript: ini. MDN menegaskan bahwa protokol javascript: sebenarnya tidak disarankan, dan lebih baik menggunakan event handler JavaScript murni. Jika memungkinkan, gunakan mekanisme JavaScript terpisah atau tombol <button> untuk aksi interaktif demi praktik terbaik.
Baca Juga: Tutorial Penyimpanan Data Menggunakan Javascript LocalStorage
Masalah Umum dengan javascript:void(0)
Meskipun berguna untuk mencegah navigasi, penggunaan javascript:void(0) dapat menimbulkan beberapa masalah. Berikut masalah utama yang sering ditemui:
- Semantik HTML yang keliru. Anchor (
<a>) semestinya digunakan untuk tautan navigasi. Ketika Anda menggunakan<a href="javascript:void(0)">sebagai tombol interaktif, makna semantiknya tidak tepat. MDN memperingatkan bahwa elemen<a>sering disalahgunakan sebagai tombol palsu denganhref="#"ataujavascript:void(0), dan ini membawa masalah seperti kesalahan saat menyalin/drag tautan, membuka di tab baru, atau menandai bookmark. Tautan semu semacam ini juga menyulitkan pengguna pembaca layar (screen reader) karena mereka tidak mengarah ke konten nyata. Oleh karena itu, rekomendasinya adalah menggunakan elemen<button>untuk aksi yang bukan navigasi. - Tidak ada nilai SEO. Setiap tautan idealnya memberikan nilai SEO berupa rujukan ke konten lain. Namun, tautan
javascript:void(0)tidak mengarah ke mana pun, sehingga mesin pencari tidak mendapatkan informasi tautan konten. CoreUI menekankan bahwa penggunaanjavascript:void(0)tidak memberikan nilai apa pun ke mesin pencari dan justru dapat merugikan SEO situs Anda. Oleh karena itu, untuk keperluan SEO dan keterbacaan konten, sebaiknya gunakan tautan nyata jika memungkinkan. - Ketergantungan pada JavaScript. Jika JavaScript dinonaktifkan di browser pengguna, tautan dengan
javascript:void(0)tidak berfungsi sama sekali. Ini bisa merusak pengalaman pengguna. Misalnya, pengguna yang menonaktifkan skrip tidak bisa mengakses fungsi yang seharusnya dijalankan oleh tautan tersebut, karena sebenarnya tautan itu hanyalah placeholder kosong. - Masalah kompatibilitas. Walaupun jarang, beberapa browser (terutama versi sangat lama) mungkin menangani
javascript:void(0)dengan cara berbeda. Ini dapat menghasilkan perilaku tak terduga di browser tertentu. Oleh karena itu, penting untuk menguji fungsi ini di beberapa browser populer. - Performa dan Debugging. Jika kode JavaScript yang dipanggil mengandung kesalahan sintaks atau variabel tidak terdefinisi, maka fungsi tidak akan berjalan dan pengguna tidak mendapatkan umpan balik apapun. Kesalahan seperti ini sering disebabkan oleh penulisan kode yang kurang teliti atau konflik dengan skrip lain di halaman.
Cara Kerja javascript:void(0)
Pada bagian ini kita melihat langkah demi langkah bagaimana javascript:void(0) bekerja saat tautan diklik:
-
Pengenalan pseudo-protocol
javascript:. Ketika browser menemuihref="javascript:...;", ia mengerti bahwa yang dijalankan adalah skrip JavaScript, bukan permintaan navigasi biasa. Dengan kata lain,javascript:menginstruksikan browser untuk menjalankan kode daripada membuka URL. -
Evaluasi operator
void. Di dalam tautan, setelahjavascript:, terdapatvoid(0). Browser akan mengevaluasi ekspresivoid(0). Karena0adalah operandnya, fungsivoidmengembalikanundefined. Dengan kata lain, tidak ada nilai konkret yang dihasilkan. -
Tidak ada navigasi. Setelah
void(0)dievaluasi, browser melihat bahwa hasilnya adalahundefined. Karenaundefinedbukan URL, browser tidak berpindah halaman atau me-refresh. Halaman tetap berada dalam kondisi sama, namun jika ada event sepertionclicksetelahnya, event tersebut tetap dieksekusi. -
Contoh praktis. Misalnya kode berikut:
<a href="javascript:void(0)" onclick="alert('Halo!')">Tampilkan Pesan</a>Saat diklik, browser menjalankan
void(0)lalualert('Halo!'). Hasilnya hanya tampilan pesan “Halo!” tanpa memuat ulang halaman atau berpindah ke halaman lain. -
Tidak berubah posisi gulir. Berbeda dengan penggunaan
href="#",javascript:void(0)tidak membuat halaman menggulir ke atas. Jika Anda menggunakan<a href="#">, browser akan berusaha menggulir ke anchor#di atas halaman. Denganjavascript:void(0), halaman benar-benar tetap di tempatnya karena tidak ada tindakan scroll yang terjadi.
Baca Juga: Perbandingan npm, npx, pnpm, dan yarn Perangkat Pengelolaan Paket untuk Ekosistem JavaScript
Cara Mengatasi Masalah javascript:void(0)
Berikut ini langkah-langkah praktis untuk mengatasi atau menghindari masalah terkait penggunaan javascript:void(0):
-
1. Periksa Penulisan Kode Pastikan kode JavaScript Anda bebas dari kesalahan sintaks dan variabel telah didefinisikan dengan benar. Kesalahan seperti tanda kurung yang hilang atau variabel yang belum ada bisa membuat fungsi tidak berjalan. Selalu cek konsol browser saat debugging. Selain itu, perhatikan bahwa beberapa fungsi mungkin berbenturan jika ada nama fungsi atau variabel yang sama di skrip lain. Sebaiknya pisahkan logika ke modul atau file tersendiri untuk menghindari konflik.
-
2. Gunakan Elemen
<button>untuk Interaksi Jika tujuan elemen tersebut adalah aksi interaktif (misalnya memicu fungsi), gunakanlah elemen<button>alih-alih<a>semu. Elemen<button>memiliki semantik yang tepat untuk tindakan dan memberikan aksesibilitas lebih baik, seperti navigasi keyboard dan indikasi pada screen reader. MDN menekankan bahwa jika aksi tidak melibatkan navigasi ke URL tertentu, lebih baik menggunakan<button>. Anda masih bisa men-styling<button>agar mirip tautan jika diperlukan. -
3. Alternatif
href="#"denganevent.preventDefault()Daripada menggunakanjavascript:void(0), Anda dapat menyetel atributhref="#"dan mencegah aksi default denganevent.preventDefault(). Contohnya:<a href="#" onclick="event.preventDefault(); doSomething()">Klik Aksi</a>Dengan cara ini, ketika tautan diklik, fungsi
doSomething()akan dipanggil, danevent.preventDefault()memastikan halaman tidak berpindah ke bagian atas. Pendekatan ini sering disarankan karena lebih mudah dipahami, terutama ketikajavascript:dianggap tidak ideal. Jika menggunakan handler JavaScript terpisah, Anda bisa menulis:document.querySelector('.myLink').addEventListener('click', function(e) { e.preventDefault(); myFunction(); });Penempatan
return false;di dalam fungsi onclick juga efektif mencegah reload. -
4. Penanganan Error dan Degradasi Baik Selalu bungkus kode sensitif dengan blok
try...catchuntuk menghindari error yang menghentikan eksekusi JavaScript lainnya. Misalnya:try { // kode yang mungkin gagal doSomething(); } catch(err) { console.error(err); }Selain itu, terapkan progressive enhancement: sediakan alternatif non-JavaScript saat memungkinkan. Jika tautan atau tombol penting, pertimbangkan menyediakan URL fallback atau elemen tambahan sehingga pengguna tanpa JavaScript tetap bisa mengakses fungsi dasar. CodeRavo dan best practice lain menyarankan menyediakan fallback bagi pengguna yang menonaktifkan JS.
-
5. Uji Lintas Browser Untuk memastikan kompatibilitas, lakukan pengujian di berbagai browser (Chrome, Firefox, Edge, Safari, dll.). Walaupun
javascript:void(0)umumnya didukung luas, pengujian sangat penting menghindari perilaku yang tidak diinginkan akibat perbedaan implementasi browser. Juga, tes dalam mode tanpa JavaScript untuk melihat bagaimana situs Anda terdegradasi.
Implementasi dalam Kode JavaScript
Setelah memahami konsep dan solusi, berikut cara menggunakan javascript:void(0) dengan benar dalam kode Anda:
-
1. Definisikan Fungsi JavaScript dengan Benar Pastikan fungsi yang dipanggil sudah ada. Contoh:
<script> function showAlert() { alert("Halo, dunia!"); } </script> <a href="javascript:void(0)" onclick="showAlert()">Tampilkan Alert</a>Di contoh ini, fungsi
showAlert()sudah didefinisikan sehingga tidak ada error saat tautan diklik. Jika fungsi belum terdefinisi, tautan tersebut tidak akan berfungsi. -
2. Tempatkan Kode di Event Handler Saat Anda menggunakan
javascript:void(0), letakkan kode Anda dalam event handler (onclick,onsubmit, dll.). Misalnya:<a href="javascript:void(0)" onclick="doSomething()">Lakukan Aksi</a>Browser akan menjalankan
void(0)terlebih dahulu (menghasilkanundefined), lalu melanjutkan eksekusi fungsidoSomething(). Halaman tidak berpindah ke mana pun, namun fungsi tetap dipanggil saat elemen diklik. -
3. Cukup Pakai
void(0)untuk Mencegah Navigasi Jika Anda benar-benar ingin memastikan link “tidak melakukan apa-apa” selain event handler,javascript:void(0)sudah cukup. Contoh pemakaian di atas menunjukkan cara cepat membuat tautan tidak navigatif. Kode ini efektif untuk interaksi dinamis: pengguna klik, kemudian JavaScript yang Anda tulis menangani aksinya tanpa reload. -
4. Contoh Penerapan Berikut contoh lengkap:
<html> <head><title>Contoh void(0)</title></head> <body> <a href="javascript:void(0)" onclick="alert('Selamat Datang!')">Klik Saya</a> </body> </html>Saat link “Klik Saya” ditekan, hanya muncul pesan “Selamat Datang!” tanpa memuat ulang halaman. Ini adalah cara interaksi dinamis tanpa mengganggu alur pengguna.
Praktik Terbaik dan Pertimbangan Lanjutan
Untuk web interaktif yang lebih baik, pahami hal-hal berikut:
-
SEO dan Tautan: Seperti disebutkan, tautan
javascript:void(0)tidak mendukung SEO. StackOverflow menyarankan menggunakan rute URL yang ramah SEO dan hanya menggunakanjavascript:void(0)jika memang sudah jelas JavaScript aktif. Jika Anda memiliki halaman atau sumber konten, tautkan langsung ke sana daripada ke void. Cara ini juga lebih baik untuk kecepatan halaman dan validasi HTML. -
Kegunaan untuk Pengguna: Beberapa pengguna menganggap tautan yang tidak bergerak itu membingungkan. Jika tautan tidak mengarahkan siapa pun, pertimbangkan untuk memberikan umpan balik visual (misalnya mengubah kursor) agar pengguna tahu ini tombol aksi. Aksesibilitas penting: pastikan elemen Anda masih dapat dinavigasi dengan keyboard. Sebagaimana CoreUI sarankan, pertimbangkan elemen
<button>untuk aksi agar sesuai dengan harapan pengguna dan teknologi bantu. -
Gaya dan Semantik: Jika Anda menyukai tampilan link namun butuh fungsi tombol, Anda bisa menata
<button>dengan CSS agar tampak seperti link. Misalnya menambahkan kelas khusus atau menghapus style default. Dengan begitu, semantic HTML tetap terjaga meski tampilannya mirip tautan biasa. -
Debugging: Manfaatkan konsol browser (DevTools) untuk melihat apakah ada error saat event terjadi. Pesan kesalahan akan membantu Anda menemukan masalah dengan fungsi JavaScript yang terhubung. Hal ini mengurangi risiko tautan void tiba-tiba berhenti bekerja tanpa alasan jelas.
Kesimpulan
Bagi pemula, memahami javascript:void(0) berarti memahami cara mencegah navigasi tautan default saat menjalankan kode JavaScript. Meskipun trik ini berguna untuk membuat web interaktif tanpa reload, perlu hati-hati karena bisa menimbulkan masalah semantik, SEO, dan aksesibilitas. Praktek terbaiknya adalah menggunakan elemen yang sesuai (seperti <button>) dan menjaga kode Anda tetap bersih. Jika tetap menggunakan javascript:void(0), periksa sintaks secara teliti, gunakan event.preventDefault(), dan selalu sediakan alternatif bagi pengguna tanpa JavaScript. Dengan langkah-langkah tersebut, Anda dapat membuat aplikasi web yang lebih stabil dan ramah pengguna.
Jika ingin memperdalam pengetahuan dan keterampilan pengembangan web secara menyeluruh, KelasFullstack dari CodePolitan adalah pilihan tepat. Program KelasFullstack menawarkan materi dari A to Z untuk menjadi Fullstack Web Developer, disusun oleh praktisi industri. Materi lengkap, mentor ahli, serta dukungan komunitas besar akan membantu Anda mempersiapkan karier dengan skill yang dibutuhkan industri dan gaji tinggi. Pelajari lebih lanjut dan bergabunglah untuk membangun portofolio web atau aplikasi Anda sendiri.
Sumber: Penjelasan di atas mengacu pada dokumentasi dan diskusi pengembang (termasuk MDN Web Docs, forum StackOverflow, dan blog pengembangan web)
What do you think?
Reactions





