);
};
// --- SECTION 3: KUIS ---
const KuisSection = ({ userName }) => {
const [currentQ, setCurrentQ] = useState(0);
const [score, setScore] = useState(0);
const [showResult, setShowResult] = useState(false);
const questions = [
{
q: "Apa sebutan lain dari 'Loop' dalam bahasa Indonesia?",
opts: ["Perulangan", "Pencabangan", "Penjumlahan"],
ans: 0
},
{
q: "Mengapa kita menggunakan Loop dalam memprogram komputer?",
opts: ["Biar komputer cepat rusak", "Agar tidak capek menulis perintah yang sama berulang-ulang", "Supaya layarnya warna-warni"],
ans: 1
},
{
q: "Jika kamu ingin robot maju 10 langkah, perintah mana yang benar?",
opts: ["Tulis 'Maju' sebanyak 10 baris", "Ulangi 1 kali: [Maju 10]", "Ulangi 10 kali: [Maju]"],
ans: 2
},
{
q: "Apa yang membuat komputer sangat cocok untuk melakukan tugas Loop?",
opts: ["Komputer bisa tidur", "Komputer tidak pernah merasa bosan atau capek mengulang", "Komputer suka bermain game"],
ans: 1
},
{
q: "Jika perintahnya adalah 'Ulangi 3 kali: [Lompat, Jongkok]', berapa kali total kamu akan Jongkok?",
opts: ["1 kali", "3 kali", "6 kali"],
ans: 1
},
{
q: "Di antara kegiatan ini, mana yang merupakan contoh Loop di kehidupan sehari-hari?",
opts: ["Makan permen 1 kali", "Membaca 1 halaman buku", "Mengayuh pedal sepeda berulang kali"],
ans: 2
},
{
q: "Apa bahasa Inggris dari 'Perulangan'?",
opts: ["Loop", "Jump", "Run"],
ans: 0
},
{
q: "Jika kamu disuruh menulis angka 1 sampai 100, lebih cepat pakai cara apa?",
opts: ["Menulis manual dengan tangan", "Menyuruh teman menuliskannya", "Pakai perintah Loop di komputer"],
ans: 2
},
{
q: "Gambar sebuah kotak persegi punya 4 sisi. Perintah Loop apa yang cocok untuk menggambar kotak?",
opts: ["Ulangi 4 kali: [Maju, Belok]", "Ulangi 1 kali: [Kotak]", "Ulangi 2 kali: [Maju]"],
ans: 0
},
{
q: "Apa yang terjadi jika kita menyuruh komputer mengulang tanpa henti (Loop selamanya)?",
opts: ["Komputernya jadi lebih cepat", "Komputernya akan terus bekerja tanpa henti/hang", "Komputernya akan meledak"],
ans: 1
}
];
const handleAnswer = (optIndex) => {
if (optIndex === questions[currentQ].ans) {
setScore(score + 1);
}
if (currentQ < questions.length - 1) {
setCurrentQ(currentQ + 1);
} else {
setShowResult(true);
}
};
const restartQuiz = () => {
setCurrentQ(0);
setScore(0);
setShowResult(false);
};
if (showResult) {
return (