Front End Masterclass · Semester 1
JS
</>
{ }
( )
=>

BAB 9 — JavaScript Dasar

Pertama kalinya kamu memberi perintah hidup kepada halaman web. Dari HTML & CSS yang diam — kini menuju web yang berpikir & bergerak.

Kelas: 10 SMA Mapel: Informatika / RPL Durasi: ± 2 JP

Gunakan atau tombol di bawah untuk navigasi

Slide 02

🎯 Tujuan Pembelajaran

Setelah menyelesaikan bab ini, kamu akan mampu:

  • 1

    Memahami peran JavaScript

    Tahu apa itu JS dan posisinya bersama HTML & CSS.

  • 2

    Menyimpan data dengan variabel & tipe data

    String, Number, Boolean, dan Array.

  • 3

    Mengolah data dengan operator

    Aritmatika, perbandingan, dan logika.

  • 4

    Membuat keputusan & perulangan

    If–Else, Switch, For, dan While.

  • 5

    Membungkus logika dalam Function

    Membuat & memanggil fungsi dengan parameter dan return.

  • 6

    Membangun Mini Project

    Aplikasi Nilai Siswa: input nilai → hitung rata-rata → tampilkan grade.

💡 Cara belajar di modul ini: setiap konsep selalu kamu temui dalam urutan Konsep → Analogi nyata → Penjelasan → Kode → Demo langsung yang bisa kamu jalankan sendiri.
Slide 03 · Konsep

Apa itu JavaScript?

JavaScript adalah bahasa pemrograman yang membuat halaman web menjadi interaktif & hidup — bisa merespons klik, menghitung, mengubah isi halaman, dan mengambil keputusan.

🚗 Analogi: Membangun Mobil

HTML = rangka & bodi mobil (struktur). CSS = cat, velg, interior (tampilan). JavaScript = mesin & sistem kontrol — yang membuat mobil benar-benar bergerak & merespons saat kamu menyetir.

🧱

HTML

Struktur & isi konten

🎨

CSS

Gaya & tampilan

JavaScript

Perilaku & interaksi

🌐 JavaScript berjalan langsung di dalam browser (Chrome, Edge). Tidak perlu install apa pun — browser sudah punya "mesin" untuk menjalankannya.
Slide 04 · Konsep + Demo

✍️ Syntax Dasar

Syntax = "aturan tata bahasa" agar perintahmu dimengerti komputer.

• Setiap perintah idealnya diakhiri titik koma ;

• Komentar pakai // (1 baris) — diabaikan komputer.

• JavaScript case-sensitive: namaNama.

console.log() = perintah untuk menampilkan sesuatu.

Anggap console.log() seperti pengeras suara di sekolah: apa pun yang kamu masukkan, akan "diumumkan" keluar agar terlihat.

// perintah pertamamu console.log("Halo, dunia! 👋"); console.log("Aku sedang belajar JavaScript");
Output akan muncul di sini…
Slide 05 · Konsep + Animasi + Demo

📦 Variable (let)

KonsepAnalogiPenjelasanKodeDemo

Variabel adalah wadah berlabel untuk menyimpan data agar bisa dipakai lagi nanti.

🏷️ Analogi: Kotak Berlabel

Bayangkan kotak penyimpanan yang diberi nama (label). Kamu masukkan barang ke dalamnya, lalu cukup sebut namanya untuk mengambil isinya.

nama"Sahil"
umur15

let

Bisa diubah isinya. Pakai ini.

const

Nilai tetap, tidak bisa diubah.

var

Gaya lama, sebaiknya dihindari.

let nama = "Sahil"; let umur = 15; umur = 16; // boleh diubah karena pakai let console.log(nama, "berumur", umur, "tahun");
Output akan muncul di sini…
Slide 06 · Tipe Data

🔤 Tipe Data: String

String = data berupa teks. Selalu dibungkus tanda kutip "…" atau '…'.

✉️ Analogi: Kalimat di dalam Surat

String itu seperti tulisan dalam surat — kumpulan huruf, spasi, dan tanda baca. Bisa "disambung" (digabung) jadi kalimat utuh.

Gunakan + untuk menyambung, atau template literal dengan backtick `…${ }`.

let depan = "Muhammad"; let belakang = "Sahil"; let penuh = depan + " " + belakang; console.log("Nama lengkap: " + penuh); console.log(`Halo, ${penuh}! Panjang nama: ${penuh.length} huruf`);
Output akan muncul di sini…
Slide 07 · Tipe Data

🔢 Tipe Data: Number

Number = data berupa angka (bulat maupun desimal). Tanpa tanda kutip.

🧮 Analogi: Angka di Kalkulator / Rapor

Number bisa langsung dihitung — ditambah, dikurang, dikali, dibagi — persis seperti angka di kalkulator atau nilai di rapor.

let mtk = 85; let ipa = 90; let bindo = 78; let total = mtk + ipa + bindo; let rata = total / 3; console.log("Total nilai:", total); console.log("Rata-rata:", rata.toFixed(2));
Output akan muncul di sini…
⚠️ Hati-hati: "5" + 5 hasilnya "55" (teks!), tapi 5 + 5 hasilnya 10. Tanda kutip mengubah segalanya.
Slide 08 · Tipe Data + Animasi

💡 Tipe Data: Boolean

Boolean hanya punya dua kemungkinan: true (benar) atau false (salah).

🔌 Analogi: Saklar Lampu Kamar

Lampu hanya bisa nyala (true) atau mati (false). Tidak ada "setengah nyala". Boolean dipakai komputer untuk mengambil keputusan.

true · NYALA
false · MATI
let sudahMengerjakanPR = true; let sedangHujan = false; let nilai = 80; let lulus = nilai >= 75; // hasil perbandingan = boolean console.log("Sudah PR?", sudahMengerjakanPR); console.log("Lulus KKM?", lulus);
Output akan muncul di sini…
Slide 09 · Tipe Data + Animasi

🗄️ Tipe Data: Array

Array = satu wadah berisi banyak data sekaligus, tersusun rapi dan bernomor.

🔢 Analogi: Rak Loker Bernomor

Bayangkan deretan loker di sekolah. Setiap loker punya nomor (index) yang dimulai dari 0. Untuk ambil isi, sebut nomornya: loker[0].

[0]"Sahil"
[1]"Rifqi"
[2]"Fahmi"
[3]"Aira"
let siswa = ["Sahil", "Rifqi", "Fahmi", "Aira"]; console.log("Loker ke-0:", siswa[0]); console.log("Jumlah siswa:", siswa.length); siswa.push("Bima"); // tambah data baru console.log("Setelah ditambah:", siswa);
Output akan muncul di sini…
Slide 10 · Konsep + Demo Interaktif

Operator

Operator = simbol untuk mengolah data. Ada 3 kelompok utama.

Aritmatika

+ - * / % (sisa bagi)

Perbandingan

> < >= <= === !== → hasil boolean

Logika

&& (dan) || (atau) ! (tidak)

🧮 Analogi: Mesin Hitung

Operator adalah tombol-tombol pada mesin hitung. Kamu masukkan dua angka, pilih tombol operasi, lalu mesin mengeluarkan hasilnya.

Masukkan dua angka lalu klik Hitung…
Slide 11 · Logika + Flowchart

🔀 If–Else

If–Else membuat program mengambil keputusan: "JIKA kondisi benar, lakukan A; JIKA TIDAK, lakukan B".

🛣️ Analogi: Persimpangan Jalan

Di persimpangan kamu memeriksa kondisi: "Apakah lampu hijau?" — JIKA ya, jalan terus; JIKA tidak, berhenti. Komputer memilih jalur berdasarkan kondisi.

Mulai nilai >= 75 ? (kondisi) true "LULUS" false "REMEDIAL"
let nilai = 82; if (nilai >= 75) { console.log("Selamat, kamu LULUS! 🎉"); } else { console.log("Belum lulus, ikuti REMEDIAL."); }
Output akan muncul di sini…
Slide 12 · Logika + Flowchart

🍽️ Switch–Case

Switch dipakai saat ada banyak pilihan tetap dari satu nilai — lebih rapi dibanding if bertingkat.

📋 Analogi: Memesan Menu di Kantin

Kamu sebut satu kode menu, dan dapur menyiapkan tepat menu itu. Setiap case = satu menu. default = "menu tidak tersedia".

cek hari "Senin" "Selasa" default
let hari = 3; switch (hari) { case 1: console.log("Senin — Upacara"); break; case 2: console.log("Selasa — Olahraga"); break; case 3: console.log("Rabu — Praktikum"); break; default: console.log("Hari tidak dikenali"); }
Output akan muncul di sini…
🔑 Jangan lupa break; di tiap case, agar program berhenti setelah menemukan pilihan yang cocok.
Slide 13 · Perulangan + Animasi + Flowchart

🔁 For Loop

For loop mengulang perintah dengan jumlah yang sudah diketahui.

🙋 Analogi: Guru Mengabsen Siswa 1–10

Guru memanggil nomor 1, 2, 3, … sampai 10 — perbuatan yang sama diulang, hanya nomornya bertambah. Itulah cara kerja for loop.

🚶
12345

let i = 1 → mulai dari mana

i <= 10 → ulang selama benar

i++ → naik 1 tiap putaran

i = 1 i <= 10 ? absen + i++ true
for (let i = 1; i <= 5; i++) { console.log("Absen nomor " + i); } console.log("Selesai mengabsen ✅");
Output akan muncul di sini…
Slide 14 · Perulangan + Animasi

While Loop

While loop mengulang selama kondisi masih benar — dipakai saat jumlah ulangan belum pasti.

💊 Analogi: Minum Obat Sampai Sembuh

"SELAMA masih sakit → minum obat." Kamu tidak tahu pasti berapa hari, yang penting diulang sampai kondisinya berubah jadi sembuh.

🤒
sakit = true
😊
sembuh!
let hari = 1; let sembuh = false; while (sembuh === false) { console.log("Hari " + hari + ": minum obat 💊"); if (hari >= 3) sembuh = true; // kondisi berubah hari++; } console.log("Alhamdulillah, sembuh! 😊");
Output akan muncul di sini…
🚨 Wajib ada hal yang mengubah kondisi (di sini hari++ & sembuh). Tanpa itu loop berputar selamanya (infinite loop)!
Slide 15 · Function + Animasi Mesin + Flowchart

⚙️ Function

Function = mesin pengolah yang bisa dipakai berulang: beri input (parameter), proses, lalu keluarkan hasil (return).

☕ Analogi: Mesin Kopi Pabrik

Masukkan biji kopi (input) → mesin memproses → keluar secangkir kopi (output). Mesin yang sama bisa dipakai berkali-kali untuk biji yang berbeda.

🫘
FUNCTION
// deklarasi: bikin "mesin" bernama luasPersegi function luasPersegi(sisi) { // sisi = parameter (input) let hasil = sisi * sisi; return hasil; // keluarkan output } // pemanggilan: pakai mesinnya console.log("Luas sisi 4:", luasPersegi(4)); console.log("Luas sisi 7:", luasPersegi(7));
Output akan muncul di sini…
Slide 16 · Mini Project

🏆 Mini Project: Aplikasi Nilai Siswa

Gabungkan semua yang sudah dipelajari: variabel, array, operator, perulangan, if-else, dan function!

1️⃣ Input beberapa nilai (Array)

2️⃣ Jumlahkan semua nilai (For Loop)

3️⃣ Hitung rata-rata (Operator)

4️⃣ Tentukan grade (If-Else)

5️⃣ Tampilkan hasil (Function + console)

≥ 90 → A (Sangat Baik)

≥ 80 → B (Baik)

≥ 75 → C (Cukup / Lulus KKM)

< 75 → D (Remedial)

Contoh: 85, 90, 78, 95 → klik Proses Nilai…
Slide 17 · Mini Project · Pembedahan Kode

🔍 Kode Lengkap Langkah-per-Langkah

Inilah otak dari aplikasi di slide sebelumnya. Baca komentarnya — lalu jalankan!

// 1) Data nilai disimpan dalam Array let nilai = [85, 90, 78, 95]; // 2) Function menghitung rata-rata pakai For Loop function hitungRata(data) { let total = 0; for (let i = 0; i < data.length; i++) { total = total + data[i]; // jumlahkan tiap loker } return total / data.length; // kembalikan rata-rata } // 3) Function menentukan grade pakai If-Else function tentukanGrade(rata) { if (rata >= 90) return "A (Sangat Baik)"; else if (rata >= 80) return "B (Baik)"; else if (rata >= 75) return "C (Cukup)"; else return "D (Remedial)"; } // 4) Jalankan & tampilkan hasil let rata = hitungRata(nilai); console.log("Nilai:", nilai); console.log("Rata-rata:", rata.toFixed(2)); console.log("Grade:", tentukanGrade(rata));
Output akan muncul di sini…
🎓 Perhatikan: program besar = gabungan dari konsep-konsep kecil yang sudah kamu kuasai. Itulah inti pemrograman!
Slide 18 · Latihan

📝 Latihan 1 — Variabel & Operator

Tingkat⭐ Mudah TopikVariabel, Number, String Waktu± 15 menit

Buat program yang menyimpan nama, panjang, dan lebar sebuah taman dalam variabel. Lalu hitung dan tampilkan luas (panjang × lebar) dan keliling (2 × (panjang + lebar)) taman tersebut dengan kalimat yang rapi.

Taman Melati → Luas: 50 m², Keliling: 30 m
Output jawabanmu muncul di sini…
Slide 19 · Latihan

📝 Latihan 2 — Logika & Perulangan

Tingkat⭐⭐ Sedang TopikFor Loop + If-Else Waktu± 20 menit

Gunakan for loop untuk menampilkan angka 1 sampai 20. Untuk setiap angka:

• Jika angka genap → tampilkan "... GENAP"

• Jika angka ganjil → tampilkan "... GANJIL"

💡 Petunjuk: gunakan operator sisa bagi %. Angka genap → angka % 2 === 0.

Output jawabanmu muncul di sini…
Slide 20 · Tugas Akhir

🎓 Tugas Akhir Bab 9

Tingkat⭐⭐⭐ Menantang TopikFunction + Array + Loop + If Deadline1 minggu (15 Juni 2026) PengumpulanFile .js / screenshot

Buat sebuah function bernama olahKelas(daftarNilai) yang menerima sebuah array nilai satu kelas, lalu:

1. Menghitung rata-rata kelas (pakai loop).

2. Mencari nilai tertinggi dan terendah.

3. Menghitung berapa siswa yang LULUS (nilai ≥ 75).

4. Menampilkan ringkasan rapi memakai console.log.

  • Program berjalan tanpa error (25%)
  • Penggunaan function dengan parameter & return yang benar (25%)
  • Logika perhitungan tepat: rata-rata, max, min, jumlah lulus (30%)
  • Kode rapi, ada komentar, output jelas & mudah dibaca (20%)
Output jawabanmu muncul di sini…
🌟 Selamat! Kamu telah menyelesaikan Bab 9 — fondasi JavaScript. Teruslah berlatih, karena programmer hebat lahir dari ribuan baris kode percobaan. Semangat! 🚀
Tekan / untuk pindah slide