Menambahkan JS ke HTML
Pelajari cara menyisipkan kode JavaScript ke dalam dokumen HTML Anda menggunakan metode internal, eksternal (paling direkomendasikan), dan inline (event handler).
Nyambungin JavaScript ke HTML: Ini Dia 3 Cara Utamanya!
Udah siap ngasih "otak" ke halaman HTML-mu pake JavaScript? Keren! Tapi, sebelum kita bisa nulis kode-kode ajaib JavaScript, kita perlu tau dulu gimana caranya biar kode JavaScript itu bisa "nyambung" dan jalan di halaman HTML kita.
Sama kayak CSS, ada beberapa cara buat nambahin JavaScript ke dokumen HTML. Masing-masing punya tempat dan waktu yang pas buat dipake. Yuk, kita bedah tiga cara utamanya!
1. External JavaScript (JavaScript Eksternal) - Cara Paling Pro!
Ini adalah cara yang paling umum, paling rapi, dan paling direkomendasikan, apalagi buat kode JavaScript yang udah mulai banyak atau mau dipake di beberapa halaman.
-
Gimana Caranya?
- Kamu nulis semua kode JavaScript-mu di file terpisah yang punya akhiran
.js
(misalnya,skripku.js
,main-logic.js
). - Terus, di dalem file HTML-mu, kamu tambahin tag
<script>
dengan atributsrc
yang nunjuk ke file.js
tersebut.
- Kamu nulis semua kode JavaScript-mu di file terpisah yang punya akhiran
-
Contoh:
Anggap kamu punya file
aplikasi.js
dengan isi:javascript // File: aplikasi.js console.log("Halo dari file JavaScript eksternal!"); function sapaPengguna(nama) { alert("Halo, " + nama + "! Selamat datang."); }
Terus, di file HTML-mu (misalnya
index.html
), kamu panggil kayak gini:html <!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <title>Halaman dengan JS Eksternal</title> <link rel="stylesheet" href="style.css"> </head> <body> <h1>Belajar JavaScript Eksternal</h1> <button onclick="sapaPengguna('Budi')">Sapa Saya!</button> <!-- Konten HTML lainnya --> <script src="aplikasi.js"></script> <!-- Ini dia penghubungnya! --> </body> </html>
<script src="aplikasi.js"></script>
: Tag ini ngasih tau browser buat nge-load dan ngejalanin kode dari fileaplikasi.js
.- PENTING SOAL PENEMPATAN: Praktik terbaik umumnya adalah naruh tag
<script>
yang nge-link ke file eksternal tepat sebelum tag penutup</body>
. Kenapa?- Biar HTML & CSS ке-load dulu: Browser bakal nampilin konten halaman dulu, jadi pengguna gak nungguin skrip selesai di-load baru halaman muncul. Ini bikin halaman kerasa lebih cepet.
- Elemen DOM Udah Siap: Kalau skripmu butuh ngakses atau manipulasi elemen HTML (misalnya, mau ganti teks paragraf), naruh skrip di akhir
<body>
mastiin elemen-elemen HTML itu udah ada di DOM (Document Object Model) pas skripnya dijalanin. Jadi, gak ada error "elemen tidak ditemukan".
-
Kelebihan External JavaScript:
- Pemisahan Concerns: Kode HTML (struktur), CSS (tampilan), dan JavaScript (perilaku) jadi bener-bener terpisah. Ini bikin kode lebih bersih, terorganisir, dan gampang di-manage.
- Reusable: Satu file
.js
bisa dipake di banyak halaman HTML. Kalau ada perubahan logika, cukup ubah di satu file itu aja. - Caching Browser: Browser bisa nyimpen (cache) file
.js
eksternal. Jadi, pas pengunjung pindah halaman atau balik lagi, browser gak perlu download ulang skripnya (kalau gak ada perubahan), bikin loading lebih cepet. - Maintenance Lebih Mudah: Lebih gampang buat ngedit dan nge-debug kode JavaScript kalau ada di file sendiri.
-
Kapan Dipake?
- Hampir selalu ini cara terbaik, terutama kalau kode JavaScript-mu udah lebih dari beberapa baris atau mau dipake di banyak tempat.
2. Internal JavaScript (JavaScript Internal / Embedded) - Buat yang Simpel & Spesifik Halaman
Cara kedua adalah nulis kode JavaScript langsung di dalem file HTML-nya, di antara tag <script>
dan </script>
.
-
Gimana Caranya?
- Di file HTML-mu (biasanya di dalem
<head>
atau sebelum penutup</body>
), tambahin tag<script>
. - Tulis semua kode JavaScript-mu di antara tag pembuka
<script>
dan tag penutup</script>
.
- Di file HTML-mu (biasanya di dalem
-
Contoh:
html <!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <title>Halaman dengan JS Internal</title> <script> // Kode JavaScript ditulis langsung di sini console.log("Halo dari JavaScript internal di head!"); function tampilkanPesan() { document.getElementById("pesan-demo").innerHTML = "Pesan ini dari JS internal!"; } </script> </head> <body> <h1>Belajar JavaScript Internal</h1> <p id="pesan-demo">Tunggu pesan...</p> <button onclick="tampilkanPesan()">Tampilkan Pesan</button> <script> console.log("Halo dari JavaScript internal di akhir body!"); // Kamu juga bisa taruh skrip internal di sini </script> </body> </html>
- Kalau skrip internalmu butuh ngakses elemen DOM, pastikan tag
<script>
-nya ditaruh setelah elemen HTML itu ada (misalnya, di akhir<body>
), atau bungkus kodenya di dalem fungsi yang baru dipanggil setelah halaman selesai load.
- Kalau skrip internalmu butuh ngakses elemen DOM, pastikan tag
-
Kelebihan Internal JavaScript:
- Praktis buat Skrip Kecil & Spesifik Halaman: Kalau kode JavaScript-mu cuma sedikit dan bener-bener cuma buat satu halaman itu aja, internal JS bisa jadi pilihan cepet.
- Gak Perlu File Tambahan: Semua ada di satu file HTML.
-
Kekurangan Internal JavaScript:
- Kurang Reusable: Kode JS-nya cuma berlaku buat halaman HTML tempat dia ditulis.
- Bikin File HTML Jadi "Gendut": Kalau kode JS-nya banyak, file HTML jadi rame.
- Pemisahan Concerns Kurang Baik: Struktur dan perilaku jadi nyampur.
-
Kapan Dipake?
- Buat skrip yang sangat pendek dan bener-bener cuma relevan buat satu halaman itu aja.
- Kadang dipake buat ngetes atau prototyping cepet sebelum dipindahin ke file eksternal.
3. Inline JavaScript (JavaScript Sejajar pada Atribut Event) - Jurus Darurat (Hindari Sebisa Mungkin!)
Ini cara nulis JavaScript langsung di dalem atribut HTML, biasanya atribut event handler kayak onclick
, onmouseover
, dll.
-
Gimana Caranya?
- Di tag HTML yang mau dikasih aksi, tambahin atribut event (misal,
onclick
), terus nilainya diisi sama kode JavaScript yang mau dijalanin.
- Di tag HTML yang mau dikasih aksi, tambahin atribut event (misal,
-
Contoh:
html <!DOCTYPE html> <html lang="id"> <head> <title>Contoh Inline JS</title> </head> <body> <!-- Kode JS langsung di atribut onclick --> <button onclick="alert('Tombol ini diklik! Halo dari inline JS.'); console.log('Tombol diklik via inline');">Klik Saya (Inline)</button> <p onmouseover="this.style.color='red';" onmouseout="this.style.color='black';"> Arahkan mouse ke sini! </p> </body> </html>
-
Kelebihan Inline JavaScript:
- Sangat Langsung: Kode langsung nempel di elemen yang beraksi.
-
Kekurangan Inline JavaScript:
- SANGAT TIDAK DIREKOMENDASIKAN untuk kode yang lebih dari satu perintah simpel.
- Mencampuradukkan HTML dan JavaScript: Bikin kode susah dibaca, susah di-debug, dan susah di-maintain. Ini melanggar prinsip pemisahan concerns secara parah.
- Susah Di-reuse: Kodenya nempel di satu elemen itu aja.
- Masalah Keamanan (Content Security Policy): Beberapa konfigurasi keamanan server bisa ngeblok eksekusi inline JavaScript.
-
Kapan (Terpaksa Banget) Dipake?
- Mungkin buat demo yang super duper simpel atau buat ngejalanin satu fungsi yang udah didefinisiin di tempat lain (meskipun ada cara yang lebih baik pake
addEventListener
). - Intinya: Sebisa mungkin, HINDARI penggunaan inline JavaScript! Lebih baik pake
addEventListener
di file JS eksternal buat nanganin event.
- Mungkin buat demo yang super duper simpel atau buat ngejalanin satu fungsi yang udah didefinisiin di tempat lain (meskipun ada cara yang lebih baik pake
defer
dan async
: Ngatur Perilaku Skrip di <head>
(Opsional buat Diketahui)
Kalau kamu terpaksa naruh tag <script src="...">
di dalem <head>
(misalnya karena ada library yang nyuruh gitu), ada dua atribut yang bisa ngebantu biar gak terlalu ngeblok rendering halaman:
-
async
:- Browser bakal nge-download file skrip secara asinkron (barengan sama nge-parsing HTML).
- Begitu skrip selesai di-download, browser bakal langsung ngejeda parsing HTML buat ngejalanin skrip itu.
- Urutan eksekusi skrip dengan
async
gak dijamin kalau ada beberapa skripasync
. Mana yang selesai download duluan, itu yang jalan duluan. - Cocok buat skrip independen yang gak bergantung sama skrip lain atau DOM yang udah ke-load penuh (misal, skrip tracking analitik).
html <script src="skrip-analitik.js" async></script>
-
defer
:- Browser juga bakal nge-download file skrip secara asinkron.
- TAPII, eksekusi skripnya bakal ditunda (deferred) sampe setelah seluruh dokumen HTML selesai di-parsing, tapi sebelum event
DOMContentLoaded
nyala. - Kalau ada beberapa skrip
defer
, mereka bakal dieksekusi sesuai urutan kemunculannya di HTML. - Ini sering jadi pilihan yang lebih aman dan lebih baik daripada
async
kalau skripmu butuh ngakses DOM atau bergantung sama urutan.
html <script src="library-utama.js" defer></script> <script src="skrip-saya-yang-butuh-library.js" defer></script>
Meskipun ada async
dan defer
, praktik paling simpel dan aman buat pemula tetep naruh <script>
di akhir <body>
.
Komentar di JavaScript: Jangan Lupa Ngasih Catatan!
Sama kayak HTML dan CSS, JavaScript juga punya cara buat nulis komentar:
-
Komentar Satu Baris: Diawali dengan dua garis miring
//
. Semua teks setelah//
di baris itu bakal dianggap komentar.javascript // Ini adalah komentar satu baris let nama = "Budi"; // Inisialisasi variabel nama
-
Komentar Multi-Baris: Diawali dengan
/*
dan diakhiri dengan*/
. Semua teks di antaranya bakal jadi komentar.javascript /* Ini adalah contoh komentar yang terdiri dari beberapa baris. */ function hitungLuas(panjang, lebar) { /* Fungsi ini mengembalikan luas persegi panjang */ return panjang * lebar; }
Biasain ngasih komentar buat ngejelasin bagian kode yang rumit atau niat di balik logikamu.
Sekarang kamu udah tau gimana cara "masukin" kode JavaScript ke halaman web-mu. Ingat, External JavaScript itu cara yang paling oke buat proyek yang lebih serius. Dengan kode JS yang terpisah, proyekmu jadi lebih rapi dan gampang diurus.
Di materi berikutnya, kita bakal mulai "ngobrol" sama JavaScript itu sendiri pake console.log()
dan liat outputnya di browser. Siap buat ngasih perintah pertama?
Kuis Cara Menambahkan JS ke HTML
Pertanyaan 1 dari 4
Manakah metode yang PALING DIREKOMENDASIKAN untuk menambahkan kode JavaScript yang cukup kompleks atau akan digunakan di banyak halaman?