Quiz IPA SMU Kelas 1

Quiz IPA SMU Kelas 1

Score: 0
Hadiah: Rp. 0
; let currentQuestion = 0; let score = 0; let userName = ''; let totalReward = 0; function showNameInput() { const quizContainer = document.getElementById('quiz-container'); quizContainer.innerHTML = ''; const formElement = document.createElement('form'); formElement.id = 'nameForm'; const nameLabel = document.createElement('label'); nameLabel.setAttribute('for', 'name'); nameLabel.textContent = 'Masukkan Nama Anda:'; formElement.appendChild(nameLabel); const nameInput = document.createElement('input'); nameInput.type = 'text'; nameInput.id = 'name'; nameInput.className = 'form-control'; nameInput.required = true; formElement.appendChild(nameInput); const buttonElement = document.createElement('button'); buttonElement.type = 'submit'; buttonElement.className = 'btn btn-purple mt-3'; buttonElement.textContent = 'Mulai Quiz'; formElement.appendChild(buttonElement); formElement.addEventListener('submit', function(e) { e.preventDefault(); userName = document.getElementById('name').value; loadQuestion(); }); quizContainer.appendChild(formElement); } function loadQuestion() { const quizContainer = document.getElementById('quiz-container'); quizContainer.innerHTML = ''; const questionElement = document.createElement('h4'); questionElement.textContent = `Pertanyaan ${currentQuestion + 1}: ${questions[currentQuestion].question}`; quizContainer.appendChild(questionElement); const formElement = document.createElement('form'); formElement.id = 'quizForm'; questions[currentQuestion].options.forEach((option, index) => { const divElement = document.createElement('div'); divElement.className = 'form-check'; const inputElement = document.createElement('input'); inputElement.type = 'radio'; inputElement.name = 'option'; inputElement.className = 'form-check-input'; inputElement.id = `option${index}`; inputElement.value = index; const labelElement = document.createElement('label'); labelElement.className = 'form-check-label'; labelElement.htmlFor = `option${index}`; labelElement.textContent = option; divElement.appendChild(inputElement); divElement.appendChild(labelElement); formElement.appendChild(divElement); }); const buttonElement = document.createElement('button'); buttonElement.type = 'button'; buttonElement.className = 'btn btn-purple mt-3'; buttonElement.textContent = 'Submit'; buttonElement.addEventListener('click', checkAnswer); formElement.appendChild(buttonElement); quizContainer.appendChild(formElement); } function checkAnswer() { const selectedOption = document.querySelector('input[name="option"]:checked'); const feedbackContainer = document.getElementById('feedback-container'); const feedbackElement = document.getElementById('feedback'); const stickerElement = document.getElementById('sticker'); const rewardElement = document.getElementById('reward'); if (selectedOption) { const answer = parseInt(selectedOption.value); if (answer === questions[currentQuestion].answer) { score++; feedbackElement.innerHTML = 'Benar! Bagus sekali!'; stickerElement.src = 'https://kerajaanusaha.my.id/uploads/banner-20240829-025650anak happy.webp'; totalReward += 10000; rewardElement.innerHTML = `Anda mendapatkan Rp. 10,000! Total Hadiah: Rp. ${totalReward}`; speak('Jawaban Anda benar! Bagus sekali!'); } else { feedbackElement.innerHTML = `Salah! Jawaban yang benar adalah: ${questions[currentQuestion].options[questions[currentQuestion].answer]}`; stickerElement.src = 'https://kerajaanusaha.my.id/uploads/banner-20240829-030002anak sedih.webp'; rewardElement.innerHTML = 'Tidak ada hadiah kali ini.'; speak('Jawaban Anda salah. Jawaban yang benar adalah: ' + questions[currentQuestion].options[questions[currentQuestion].answer]); } currentQuestion++; if (currentQuestion < questions.length) { setTimeout(() => { feedbackContainer.style.display = 'none'; loadQuestion(); }, 3000); } else { setTimeout(showFinalScore, 3000); } feedbackContainer.style.display = 'block'; } else { alert('Silakan pilih salah satu jawaban.'); } updateScore(); } function updateScore() { const scoreElement = document.getElementById('score'); const totalRewardElement = document.getElementById('totalReward'); scoreElement.textContent = `Score: ${score}`; totalRewardElement.textContent = `Hadiah: Rp. ${totalReward}`; } function showFinalScore() { const quizContainer = document.getElementById('quiz-container'); quizContainer.innerHTML = `

Quiz Selesai, ${userName}!

Skor Akhir Anda adalah: ${score} dari ${questions.length} pertanyaan.

Total Hadiah Anda: Rp. ${totalReward}

`; saveScore(); } function saveScore() { let savedScores = JSON.parse(localStorage.getItem('quizScores')) || []; savedScores.push({ userName, score, totalReward }); localStorage.setItem('quizScores', JSON.stringify(savedScores)); } function viewSavedScores() { const storedScores = JSON.parse(localStorage.getItem('quizScores')) || []; const storedScoreElement = document.getElementById('storedScore'); storedScoreElement.innerHTML = ''; if (storedScores.length === 0) { storedScoreElement.textContent = 'Tidak ada skor tersimpan.'; return; } const tableElement = document.createElement('table'); tableElement.className = 'table table-bordered'; const theadElement = document.createElement('thead'); theadElement.innerHTML = ` Nama Skor Total Hadiah `; tableElement.appendChild(theadElement); const tbodyElement = document.createElement('tbody'); storedScores.forEach(({ userName, score, totalReward }) => { const trElement = document.createElement('tr'); trElement.innerHTML = ` ${userName} ${score} Rp. ${totalReward} `; tbodyElement.appendChild(trElement); }); tableElement.appendChild(tbodyElement); storedScoreElement.appendChild(tableElement); } function speak(text) { const utterance = new SpeechSynthesisUtterance(text); utterance.lang = 'id-ID'; // Set bahasa Indonesia window.speechSynthesis.speak(utterance); } document.getElementById('viewScoreButton').addEventListener('click', viewSavedScores); showNameInput();