Misi kamu
Kali ini tidak ada materi baru. kamu akan mendapatkan daftar tugas, dan kamu sudah mengetahui semua yang kamu perlukan untuk tugas tersebut. Seperti inilah pekerjaan pengembang sebenarnya: kamu mendapatkan serangkaian persyaratan dan menyusunnya dari hal-hal yang sudah kamu ketahui.
Bagian yang diperlukan 🎯
Buka situs web kamu dan pastikan kelima mantra dari level ini aktif di dalamnya:
- Skrip terhubung di setiap halaman dan tidak ada kesalahan di konsol (F12 – tidak ada warna merah yang muncul).
- Mode gelap – tombol di header pada setiap halaman, dan pilihannya diingat.
- Tombol atau penghitung interaktif – setidaknya satu mantra dengan variabel dan kondisi.
- Galeri foto dengan lightbox – mengklik akan membuat foto lebih besar.
- Kuis atau formulir dengan validasi – setidaknya salah satunya. Jangan ragu untuk melakukan keduanya!
Ekstensi opsional 🌟
Pilih setidaknya satu (atau buat sendiri):
Situs web menyambut secara berbeda di pagi dan sore hari:
<p id="day-greeting"></p>
const dayGreeting = document.getElementById("day-greeting");
const hour = new Date().getHours();
if (hour < 9) {
dayGreeting.textContent = "Good morning! ☀️";
} else if (hour < 18) {
dayGreeting.textContent = "Hi there, have a nice day!";
} else {
dayGreeting.textContent = "Good evening! 🌙";
}
new Date() mengembalikan tanggal dan waktu saat ini, .getHours() mengeluarkan jamnya.
Lelucon, ide perjalanan, atau nyanyian tim yang berbeda setiap saat:
const messages = [
"Practice makes perfect!",
"Let's go, Eagles! 🦅",
"You miss every shot you don't take.",
"Fans are the twelfth player.",
];
const messageButton = document.getElementById("message-button");
const messageEl = document.getElementById("message");
messageButton.addEventListener("click", () => {
const random = Math.floor(Math.random() * messages.length);
messageEl.textContent = messages[random];
});
Math.random() mengembalikan angka acak antara 0 dan 1, dan baris lainnya mengubahnya menjadi posisi acak dalam array.
Berapa kali kamu membuka situs web kamu? Simpan di Penyimpanan lokal:
let visits = Number(localStorage.getItem("visits") ?? 0);
visits++;
localStorage.setItem("visits", visits);
console.log("You've opened this page " + visits + " times now");
Nomor(...) mengubah teks dari memori menjadi angka, dan ?? 0 artinya “jika tidak ada apa-apa di sana, mulailah dari nol.”
Sembunyikan menu atau daftar panjang di bawah judul yang dapat diklik:
const sectionHeading = document.getElementById("expand-heading");
const sectionContent = document.getElementById("expand-content");
sectionHeading.addEventListener("click", () => {
sectionContent.classList.toggle("hidden");
});
kamu sudah memiliki .hidden { display: none !important; } kelas dari pelajaran galeri.
Unggah versi baru ke internet
Website kamu di Halaman GitHub masih versi lama dari Level 1! Unggah yang baru:
- Buka repositori kamu di github.com,
- Tambahkan file → Unggah file,
- seret file yang diubah (terutama
script.js,style.css, dan semua file.html) dan klik Komit perubahan.
Sebentar lagi, mantramu akan terlihat oleh semua orang.
Selamat, Penyihir! 🪄 Situs web kamu tidak hanya cantik lagi – namun hidup. Ia bereaksi terhadap klik, mengingat pilihan, mengajukan pertanyaan dan menjawabnya. Dan kamu tahu cara kerja setiap baris. Di Level 3 – Master, kamu akan belajar membuat situs web seperti para profesionalnya: React, komponen, dan server kamu sendiri.
Apa yang dapat diambil dari level ini
- JavaScript: variabel, kondisi, fungsi, array, objek, loop – dasar-dasar semua pemrograman.
- Rumus mantra: temukan elemen → dengarkan suatu peristiwa → ambil tindakan.
localStorageuntuk mengingat sesuatu,querySelectorAll+forEachuntuk grup elemen, memeriksa input formulir.
© 2026 Ing. Martin Polak / AlgoRhino · Ketentuan penggunaan konten