let currentQuestion = 0; let score = 0; let waktu = 60; // detik let timerInterval; let namaSiswa = ""; function mulaiKuis() { namaSiswa = namaInput.value.trim(); if (namaSiswa === "") { alert("Silakan masukkan nama siswa terlebih dahulu!"); return; } startDiv.style.display = "none"; kuisDiv.style.display = "block"; score = 0; currentQuestion = 0; waktu = 60; scoreDisplay.textContent = `Skor: ${score}`; timerDisplay.textContent = `Waktu: ${waktu} detik`; resultDiv.textContent = ""; tampilkanSoal(); mulaiTimer(); } function mulaiTimer() { timerInterval = setInterval(() => { waktu--; timerDisplay.textContent = `Waktu: ${waktu} detik`; if (waktu <= 0) { clearInterval(timerInterval); selesaiKuis(); } }, 1000); } function tampilkanSoal() { resultDiv.textContent = ""; if (currentQuestion >= questions.length) { selesaiKuis(); return; } const soal = questions[currentQuestion]; questionText.textContent = `Soal ${currentQuestion + 1}: ${soal.q}`; gambarEl.src = soal.img; gambarEl.alt = `Gambar soal ${currentQuestion + 1}`; optionsDiv.innerHTML = ""; soal.options.forEach((option) => { const btn = document.createElement("button"); btn.textContent = option; btn.onclick = () => pilihJawaban(option); optionsDiv.appendChild(btn); }); } function speak(text) { speechSynthesis.cancel(); // hentikan suara lama jika ada const utterance = new SpeechSynthesisUtterance(text); utterance.lang = "id-ID"; speechSynthesis.speak(utterance); } function pilihJawaban(jawaban) { const soal = questions[currentQuestion]; if (jawaban === soal.a) { score++; scoreDisplay.textContent = `Skor: ${score}`; resultDiv.style.color = "green"; resultDiv.textContent = "Jawaban benar!"; speak("Benar!"); } else { resultDiv.style.color = "red"; resultDiv.textContent = `Salah! Jawaban benar: ${soal.a}`; speak("Salah!"); } currentQuestion++; setTimeout(() => { tampilkanSoal(); }, 1500); } function selesaiKuis() { clearInterval(timerInterval); questionText.textContent = "Kuis selesai!"; gambarEl.style.display = "none"; optionsDiv.innerHTML = ""; resultDiv.style.color = "#4b004b"; resultDiv.textContent = `Halo, ${namaSiswa}. Skor akhir Anda: ${score} dari ${questions.length}. Terima kasih sudah bermain!`; timerDisplay.textContent = ""; // Kirim ke Google Sheets simpanNilaiKeGoogleSheets(namaSiswa, score, questions.length); } function simpanNilaiKeGoogleSheets(nama, skor, total) { const url = "YOUR_GOOGLE_SCRIPT_URL"; // Ganti dengan URL script Google Apps Script Anda fetch(url, { method: "POST", mode: "no-cors", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ nama: nama, skor: skor, total: total, tanggal: new Date().toLocaleString() }) }).catch(() => { console.log("Data skor terkirim (tidak dapat konfirmasi di client karena no-cors)"); }); }