game noun and colour
Find the Hidden Words
Find 3 hidden words about classroom things and colours!
jangan pernah lupa untuk selalu bersyukur. dan berbagi adalah satu cara untuk bersyukur atas nikmat nya.
Find 3 hidden words about classroom things and colours!
Buat buku pembelajaran Bahasa Inggris lengkap & siap pakai
import React, { useState, useEffect, useMemo } from 'react'; import { Volume2, ArrowLeft, Book, Activity, Trophy, LogIn, RefreshCcw, XCircle, Award, CheckCircle2, ChevronRight, PlayCircle, Headphones } from 'lucide-react'; const App = () => { // --- STATE --- const [view, setView] = useState('login'); const [userName, setUserName] = useState(''); const [category, setCategory] = useState(null); const [questions, setQuestions] = useState([]); const [quizIndex, setQuizIndex] = useState(0); const [score, setScore] = useState(0); const [timeLeft, setTimeLeft] = useState(10); const [isFinished, setIsFinished] = useState(false); const [feedback, setFeedback] = useState(null); // --- DATA (Sesuai vocabulary_list.md) --- const vocabData = { noun: [ { en: "Book", id: "Buku" }, { en: "Pen", id: "Pena" }, { en: "Pencil", id: "Pensil" }, { en: "Bag", id: "Tas" }, { en: "Table", id: "Meja" }, { en: "Chair", id: "Kursi" }, { en: "Phone", id: "HP" }, { en: "Laptop", id: "Laptop" }, { en: "Door", id: "Pintu" }, { en: "Window", id: "Jendela" }, { en: "School", id: "Sekolah" }, { en: "Classroom", id: "Kelas" }, { en: "Teacher", id: "Guru" }, { en: "Student", id: "Siswa" }, { en: "Friend", id: "Teman" }, { en: "Food", id: "Makanan" }, { en: "Water", id: "Air" }, { en: "House", id: "Rumah" }, { en: "Car", id: "Mobil" }, { en: "Road", id: "Jalan" }, { en: "Library", id: "Perpustakaan" }, { en: "Park", id: "Taman" }, { en: "Market", id: "Pasar" }, { en: "Office", id: "Kantor" }, { en: "Store", id: "Toko" }, { en: "Bed", id: "Tempat tidur" }, { en: "Pillow", id: "Bantal" }, { en: "Blanket", id: "Selimut" }, { en: "Clock", id: "Jam" }, { en: "Mirror", id: "Cermin" }, { en: "Shoes", id: "Sepatu" }, { en: "Clothes", id: "Pakaian" }, { en: "Hat", id: "Topi" }, { en: "Bottle", id: "Botol" }, { en: "Glass", id: "Gelas" }, { en: "Computer", id: "Komputer" }, { en: "Internet", id: "Internet" }, { en: "Game", id: "Permainan" }, { en: "Music", id: "Musik" }, { en: "Movie", id: "Film" }, { en: "Teacherโs desk", id: "Meja guru" }, { en: "Whiteboard", id: "Papan tulis" }, { en: "Eraser", id: "Penghapus" }, { en: "Ruler", id: "Penggaris" }, { en: "Notebook", id: "Buku catatan" }, { en: "City", id: "Kota" }, { en: "Village", id: "Desa" }, { en: "Beach", id: "Pantai" }, { en: "Mountain", id: "Gunung" }, { en: "River", id: "Sungai" } ], verb: [ { en: "Go", id: "Pergi" }, { en: "Come", id: "Datang" }, { en: "Eat", id: "Makan" }, { en: "Drink", id: "Minum" }, { en: "Study", id: "Belajar" }, { en: "Read", id: "Membaca" }, { en: "Write", id: "Menulis" }, { en: "Speak", id: "Berbicara" }, { en: "Listen", id: "Mendengar" }, { en: "Watch", id: "Menonton" }, { en: "Play", id: "Bermain" }, { en: "Run", id: "Berlari" }, { en: "Walk", id: "Berjalan" }, { en: "Sit", id: "Duduk" }, { en: "Stand", id: "Berdiri" }, { en: "Open", id: "Membuka" }, { en: "Close", id: "Menutup" }, { en: "Bring", id: "Membawa" }, { en: "Take", id: "Mengambil" }, { en: "Give", id: "Memberi" }, { en: "Help", id: "Membantu" }, { en: "Ask", id: "Bertanya" }, { en: "Answer", id: "Menjawab" }, { en: "Learn", id: "Belajar" }, { en: "Try", id: "Mencoba" }, { en: "Make", id: "Membuat" }, { en: "Clean", id: "Membersihkan" }, { en: "Cook", id: "Memasak" }, { en: "Buy", id: "Membeli" }, { en: "Sell", id: "Menjual" }, { en: "Call", id: "Menelepon" }, { en: "Send", id: "Mengirim" }, { en: "Wait", id: "Menunggu" }, { en: "Meet", id: "Bertemu" }, { en: "Visit", id: "Mengunjungi" }, { en: "Think", id: "Berpikir" }, { en: "Know", id: "Mengetahui" }, { en: "Understand", id: "Mengerti" }, { en: "Remember", id: "Mengingat" }, { en: "Forget", id: "Lupa" }, { en: "Start", id: "Memulai" }, { en: "Finish", id: "Menyelesaikan" }, { en: "Stop", id: "Berhenti" }, { en: "Continue", id: "Melanjutkan" }, { en: "Change", id: "Mengubah" }, { en: "Work", id: "Bekerja" }, { en: "Rest", id: "Istirahat" }, { en: "Sleep", id: "Tidur" }, { en: "Wake up", id: "Bangun" }, { en: "Travel", id: "Bepergian" } ] }; // --- AUDIO --- const speak = (text) => { const utterance = new SpeechSynthesisUtterance(text); utterance.lang = 'en-US'; window.speechSynthesis.speak(utterance); }; // --- LOGIC --- const shuffle = (arr) => [...arr].sort(() => Math.random() - 0.5); const prepareQuiz = () => { const pool = vocabData[category]; const selected = shuffle(pool).slice(0, 25); const quizItems = selected.map((item) => { const others = pool.filter(p => p.en !== item.en); const wrongOptions = shuffle(others).slice(0, 3).map(o => o.id); const options = shuffle([item.id, ...wrongOptions]); return { word: item.en, correct: item.id, options: options }; }); setQuestions(quizItems); setQuizIndex(0); setScore(0); setTimeLeft(10); setIsFinished(false); setFeedback(null); setView('quiz'); }; useEffect(() => { let timer; if (view === 'quiz' && !isFinished && !feedback) { if (timeLeft > 0) { timer = setInterval(() => setTimeLeft(prev => prev - 1), 1000); } else { handleAnswer(-1); } } return () => clearInterval(timer); }, [view, timeLeft, isFinished, feedback]); const handleAnswer = (idx) => { const currentQ = questions[quizIndex]; const isCorrect = idx !== -1 && currentQ.options[idx] === currentQ.correct; setFeedback({ isCorrect, selectedIdx: idx }); if (isCorrect) setScore(s => s + 1); setTimeout(() => { if (quizIndex < questions.length - 1) { setQuizIndex(prev => prev + 1); setTimeLeft(10); setFeedback(null); } else { setIsFinished(true); setView('result'); } }, 1200); }; // --- VIEWS --- if (view === 'login') return (
Kuasai 100 kosakata bahasa Inggris utama!
Pilih kategori kosakata untuk dipelajari.
Mempelajari 50 kata benda seperti Buku, HP, dan Tempat Umum.
Mempelajari 50 kata kerja aksi seperti Makan, Lari, dan Belajar.
Klik ikon suara untuk mendengarkan
Pilih arti yang benar
Hasil Latihan {category}