PAS bahasa Indonesia Kelas 4 Sekolah Dasar

import React, { useState, useEffect } from 'react'; // Data kuis (contoh, Anda bisa menambahkan hingga 40 soal) const quizData = [ { question: "Apa nama ibu kota Indonesia?", options: ["Surabaya", "Bandung", "Jakarta", "Medan"], answer: "Jakarta", }, { question: "Kata 'rajin' adalah lawan kata dari...", options: ["pintar", "malas", "giat", "tekun"], answer: "malas", }, { question: "Bacalah kalimat berikut: 'Ani pergi ke pasar membeli sayur.' Subjek dari kalimat tersebut adalah...", options: ["Ani", "pergi", "pasar", "sayur"], answer: "Ani", }, { question: "Penulisan huruf kapital yang benar terdapat pada kalimat...", options: ["saya suka makan nasi goreng.", "Budi dan siti bermain bola.", "Indonesia adalah negara kepulauan.", "kota jakarta sangat ramai."], answer: "Indonesia adalah negara kepulauan.", }, { question: "Pilihlah kata yang memiliki arti 'tempat tinggal'.", options: ["sekolah", "kantor", "rumah", "toko"], answer: "rumah", }, { question: "Apa arti dari peribahasa 'Berat sama dipikul, ringan sama dijinjing'?", options: ["Bekerja sendiri lebih baik", "Hidup harus mandiri", "Saling membantu dalam suka dan duka", "Berhati-hati dalam setiap tindakan"], answer: "Saling membantu dalam suka dan duka", }, { question: "Kata dasar dari 'pekerjaan' adalah...", options: ["kerja", "bekerja", "kerjakan", "pekerja"], answer: "kerja", }, { question: "Manakah kalimat yang menggunakan tanda baca koma (,) dengan benar?", options: ["Ibu membeli sayur, buah, dan daging.", "Ayah membaca koran dan minum kopi.", "Adik bermain sepeda di taman.", "Kakak sedang belajar matematika."], answer: "Ibu membeli sayur, buah, dan daging.", }, { question: "Sinonim dari kata 'cantik' adalah...", options: ["jelek", "buruk", "indah", "kecil"], answer: "indah", }, { question: "Bacalah paragraf berikut: 'Pohon mangga di depan rumahku berbuah lebat. Buahnya manis sekali.' Topik utama paragraf tersebut adalah...", options: ["Buah-buahan", "Pohon mangga yang berbuah lebat", "Rumahku", "Rasa buah mangga"], answer: "Pohon mangga yang berbuah lebat", }, // Anda bisa menambahkan 30 soal lagi di sini untuk mencapai 40 soal // Contoh: // { // question: "Apa nama hewan yang bisa terbang dan bertelur?", // options: ["Kucing", "Ikan", "Burung", "Anjing"], // answer: "Burung", // }, ]; function App() { const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0); const [userAnswers, setUserAnswers] = useState(Array(quizData.length).fill(null)); const [isSubmitted, setIsSubmitted] = useState(false); const [score, setScore] = useState(0); const [studentEmail, setStudentEmail] = useState(''); const [teacherEmail, setTeacherEmail] = useState(''); const [classEmail, setClassEmail] = useState(''); const [showConfirmation, setShowConfirmation] = useState(false); const [confirmationMessage, setConfirmationMessage] = useState(''); // Function to show a custom message box instead of alert() const showMessageBox = (message) => { setConfirmationMessage(message); setShowConfirmation(true); }; const closeMessageBox = () => { setShowConfirmation(false); setConfirmationMessage(''); }; const handleOptionSelect = (option) => { const newAnswers = [...userAnswers]; newAnswers[currentQuestionIndex] = option; setUserAnswers(newAnswers); }; const handleNextQuestion = () => { if (currentQuestionIndex < quizData.length - 1) { setCurrentQuestionIndex(currentQuestionIndex + 1); } }; const handlePreviousQuestion = () => { if (currentQuestionIndex > 0) { setCurrentQuestionIndex(currentQuestionIndex - 1); } }; const handleSubmitQuiz = () => { // Basic validation for emails if (!studentEmail || !teacherEmail || !classEmail) { showMessageBox("Harap lengkapi semua alamat email sebelum mengirimkan kuis."); return; } // Calculate score let newScore = 0; for (let i = 0; i < quizData.length; i++) { if (userAnswers[i] === quizData[i].answer) { newScore++; } } setScore(newScore); setIsSubmitted(true); }; const handleRetakeQuiz = () => { setCurrentQuestionIndex(0); setUserAnswers(Array(quizData.length).fill(null)); setIsSubmitted(false); setScore(0); setStudentEmail(''); setTeacherEmail(''); setClassEmail(''); }; return (

Kuis Bahasa Indonesia Kelas 4 SD

{showConfirmation && (

{confirmationMessage}

)} {!isSubmitted ? ( <>
setStudentEmail(e.target.value)} className="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent transition duration-200" /> setTeacherEmail(e.target.value)} className="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent transition duration-200" /> setClassEmail(e.target.value)} className="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent transition duration-200" />

Soal {currentQuestionIndex + 1} dari {quizData.length}

{quizData[currentQuestionIndex].question}

{quizData[currentQuestionIndex].options.map((option, index) => ( ))}
{currentQuestionIndex === quizData.length - 1 ? ( ) : ( )}
) : (

Kuis Selesai!

Skor Anda: {score} dari{" "} {quizData.length}

Lembar Jawaban

{quizData.map((q, index) => (

{index + 1}. {q.question}

Jawaban Anda:{" "} {userAnswers[index] || "Tidak dijawab"}

{userAnswers[index] !== q.answer && (

Jawaban Benar: {q.answer}

)}
))}
)}
); } export default App;

Tidak ada komentar:

Posting Komentar

LogosCyberSchool

PAS Agama Kelas 4 SD

PAS Agama Kristen Kelas 4 SD Penilaian Akhir Semester (PAS) Agama ...