Apa itu JavaScript?

JavaScript adalah bahasa pemrograman yang digunakan untuk membuat halaman web menjadi interaktif dan dinamis.

Jika:

  • HTML → struktur
  • CSS → tampilan
  • JavaScript → interaksi & logika

Contoh:

  • Klik tombol → muncul alert
  • Input → langsung tampil di halaman
  • Validasi form sebelum dikirim

Penggunaan JavaScript

1. Inline

Menuliskan kode JavaScript langsung ke dalam elemen HTML, biasanya menggunakan atribut event handler seperti onclick, onmouseover, atau onload.

<button onclick="alert('Halo! Ini adalah Inline JavaScript')">Klik Saya</button>

2. Internal

Kode JavaScript ditulis di dalam tag script dan ditempatkan di dalam file HTML yang sama. Biasanya diletakkan di bagian head atau di bagian paling bawah body

<!DOCTYPE html>
<html>
<head>
    <title>Internal JS</title>
</head>
<body>
    <h1 id="teks">Teks Asli</h1>

    <script>
        // Ini adalah Internal JavaScript
        document.getElementById("teks").innerHTML = "Teks ini diubah oleh JavaScript!";
    </script>
</body>
</html>

3. External

Kode JavaScript ditulis di file yang berbeda dan disimpan dengan ekstensi .js (misalnya app.js). Kemudian, file tersebut dipanggil ke dalam HTML.

<script src="script.js"></script>

Variabel

Variabel digunakan untuk menyimpan data.

let nama = "Nadia";
const umur = 20;

Penjelasan:

  • let → nilainya bisa berubah
  • const → nilainya tetap

Tipe Data

let teks = "Hello";     // String
let angka = 10;         // Number
let aktif = true;       // Boolean
let kosong = null;
let belum;

Tipe kompleks:

let mahasiswa = {
    nama: "Nadia",
    umur: 20
};

let nilai = [80, 90, 100];

Output Dasar

console.log("Hello");
alert("Halo");

Digunakan console.log() untuk debugging


Fungsi & Logika

Fungsi

Fungsi itu ibarat "perintah yang disimpan". Daripada menulis kode yang sama berulang kali, kita masukkan kode tersebut ke dalam satu bungkus bernama function.

function sapa(nama) {
    return "Halo " + nama;
}

console.log(sapa("Nadia"));
  • Parameter: Data yang kamu kirim ke dalam fungsi untuk diolah.

  • Return: Hasil akhir yang dikembalikan oleh fungsi setelah selesai menjalankan tugasnya.

  • Contoh: Kalau kamu sering menghitung pajak, buat satu fungsi hitungPajak(). Setiap butuh hitungan, kamu tinggal panggil nama fungsi itu saja.


Arrow Function (Modern)

Menuliskan fungsi yang lebih pendek. Kalau fungsi biasa butuh kata function dan kurung kurawal, arrow function menggunakan simbol panah =>.

const tambah = (a, b) => {
    return a + b;
};
  • Sintaks =>: Menggantikan kata kunci function dan menghubungkan parameter dengan isi fungsinya.

  • Sangat praktis digunakan, terutama untuk fungsi-fungsi sederhana atau callback (fungsi yang dijalankan di dalam fungsi lain).

  • Catatan: Jika isinya hanya satu baris, kamu bahkan bisa menghapus kurung kurawal {} dan kata kunci return untuk membuatnya lebih singkat lagi.


Percabangan (If...Else)

Percabangan adalah mekanisme kontrol alur yang memungkinkan program menjalankan kode yang berbeda berdasarkan kondisi tertentu.

let nilai = 80;

if (nilai >= 75) {
    console.log("Lulus");
} else {
    console.log("Tidak lulus");
}
  • Logika: Program akan mengevaluasi apakah sebuah kondisi bernilai true (benar) atau false (salah).
  • Alur: * if: Menjalankan kode jika kondisi terpenuhi.
  • else: Menjalankan kode alternatif jika kondisi di if tidak terpenuhi.
  • Contoh: If (jika) saldo cukup, beli barang. Else (kalau tidak), tampilkan pesan "saldo kurang".

Perulangan (Loop)

Perulangan adalah cara mengulang perintah otomatis. Kamu memberi tahu komputer: "kerjakan ini berkali-kali sampai batas yang saya tentukan."

for (let i = 0; i < 5; i++) {
    console.log(i);
}
  • Kenapa perlu: Kita tidak mungkin menulis perintah console.log sebanyak 100 kali kalau mau mencetak angka 1 sampai 100.

  • Cara kerja: * Tentukan mulai dari angka berapa.

Tentukan kapan harus berhenti. Tentukan seberapa cepat menambah angkanya (misal: tambah 1 terus).

DOM (Document Object Model)

Apa itu DOM?

DOM adalah representasi HTML dalam bentuk objek yang bisa diakses dan dimanipulasi oleh JavaScript.

JavaScript bisa:

  • Mengubah isi teks
  • Mengubah tampilan
  • Menambah atau menghapus elemen

Mengambil Elemen

querySelector mengambil elemen menggunakan aturan CSS:

const judul = document.querySelector("h1");    // Ambil tag
const tombol = document.querySelector("#btn"); // Ambil ID
const item = document.querySelector(".menu");  // Ambil Class
Poin Utama:
  • Satu Elemen: Hanya mengambil elemen pertama yang ditemukan.
  • Sintaks CSS: Gunakan # untuk ID, . untuk Class, atau nama tag langsung.
  • Jika Tidak Ada: Mengembalikan null (tidak akan error, tapi elemen tidak ditemukan).
Butuh ambil banyak elemen?

Gunakan querySelectorAll(".class") untuk mendapatkan kumpulan elemen (NodeList) sekaligus.


Mengubah Konten

Setelah elemen didapatkan, kamu bisa mengubah isinya dengan cara berikut:

judul.innerHTML = "<strong>Judul Baru</strong>"; // Render sebagai HTML
judul.textContent = "Judul Baru";              // Render sebagai teks biasa
Perbedaan Utama:
Metode Hasil Kegunaan
innerHTML Memproses tag HTML menyisipkan elemen (seperti <b> atau <span>)
textContent Menampilkan teks murni Lebih aman dan cepat untuk teks biasa

Mengubah Style

Kamu bisa memodifikasi tampilan elemen langsung melalui properti .style:

judul.style.color = "red";           // Mengubah warna teks
judul.style.backgroundColor = "blue"; // Menggunakan camelCase
judul.style.display = "none";        // Menyembunyikan elemen

Catatan Penting:

  • CamelCase: Nama properti CSS yang menggunakan dash (seperti background-color) harus ditulis dalam format camelCase (backgroundColor).
  • Langsung ke Elemen: Cara ini mengubah CSS inline (langsung di dalam tag HTML), sehingga memiliki prioritas paling tinggi.

Form

<input type="text" id="nama">
<button onclick="cek()">Submit</button>

<script>
function cek() {
  let nama = document.getElementById("nama").value;
  
  if (nama == "") {
    alert("Nama tidak boleh kosong");
  } else {
    alert("Berhasil");
  }
}
</script>

Event (Interaksi User)

Apa itu Event?

Event adalah aksi atau kejadian pada elemen yang memicu kode JavaScript untuk berjalan. Contoh umumnya:

  • click: Pengguna mengklik elemen.
  • input: Pengguna mengetik di form.
  • mouseover: Pengguna mengarahkan kursor di atas elemen.

addEventListener

Ini adalah metode untuk "mendengarkan" aksi yang dilakukan pengguna. Berikut adalah contoh kode lengkap yang bisa dijalankan:

<button id="myBtn">Klik Saya!</button>

<script>
  // 1. Ambil elemen
  const btn = document.querySelector("#myBtn");

  // 2. Tambahkan Event Listener
  btn.addEventListener("click", () => {
      alert("Tombol berhasil diklik!");
  });
</script>

Contoh

Berikut adalah contoh manipulasi DOM gabungan: ketika tombol diklik, konten teks pada elemen <h1> akan berubah secara otomatis.

<h1 id="judul">Teks Awal</h1>
<button id="tombolUbah">Ubah Teks</button>

<script>
  // 1. Ambil elemen
  const judul = document.querySelector("#judul");
  const tombol = document.querySelector("#tombolUbah");

  // 2. Tambahkan interaksi
  tombol.addEventListener("click", () => {
      judul.textContent = "Teks sudah berubah!";
      judul.style.color = "blue";
  });
</script>

Tips:

  • Parameter 1: Jenis event (misal: "click").
  • Parameter 2: Callback function (kode yang akan dijalankan saat event terjadi).

Contoh Integrasi

<input type="text" id="nama">
<button id="btn">Tampilkan</button>
<p id="hasil"></p>

<script>
const btn = document.querySelector("#btn");

btn.addEventListener("click", function() {
    const nama = document.querySelector("#nama").value;
    document.querySelector("#hasil").innerHTML = nama;
});
</script>