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)");
});
}