import React, { useState } from 'react';
// Fungsi helper untuk merender ekspresi matematika menjadi HTML
const renderMath = (text) => {
let formattedText = text;
let changed = true;
// Mengganti pangkat (misal: 2^3 menjadi 23)
// Menangani angka, variabel, atau ekspresi dalam kurung sebelum pangkat
// Menangani pangkat positif, negatif, atau dalam kurung
// Iterasi untuk menangani pangkat bersarang (misal: (a^m)^n)
while (changed) {
changed = false;
const newText = formattedText.replace(
/([a-zA-Z0-9_().]+)(\^)(\(?[-+]?[a-zA-Z0-9_]+\)?)/g,
(match, base, caret, exp) => {
// Hanya mengganti jika belum dalam tag untuk menghindari duplikasi
// dan memastikan ekspresi di dalam kurung sudah di-render jika ada pangkat di dalamnya
if (!base.includes('') && !exp.includes('')) {
changed = true;
return `${base}${exp}`;
}
return match; // Kembalikan yang asli jika sudah diformat
}
);
if (newText !== formattedText) {
formattedText = newText;
changed = true;
}
}
// Mengganti akar (misal: akar 2 menjadi √2)
formattedText = formattedText.replace(/akar (\d+)/g, '√$1');
// Mengganti akar pangkat n (misal: akar pangkat 5 dari 9 menjadi 5√9)
formattedText = formattedText.replace(/akar pangkat (\d+) dari ([\w\d]+)/g, '$1√$2');
// Mengganti "x" sebagai simbol perkalian
formattedText = formattedText.replace(/ x /g, ' × ');
// Mengganti ":" sebagai simbol pembagian
formattedText = formattedText.replace(/ : /g, ' ÷ ');
// Mengganti pecahan (misal: 1/16 menjadi 1⁄16, atau A / B menjadi A ⁄ B)
// Menggunakan spasi di sekitar slash untuk pecahan yang lebih kompleks agar tidak salah tangkap
formattedText = formattedText.replace(/(\d+)\s*\/\s*(\d+)/g, '$1⁄$2'); // Untuk angka saja
formattedText = formattedText.replace(/ \/ /g, ' ⁄ '); // Untuk slash dengan spasi di sekitarnya
return ;
};
// Komponen Reusable untuk Bagian Topik
const TopicSection = ({ title, material, examples, quizQuestions }) => {
return (
);
};
// Komponen Asesmen Interaktif
const Assessment = () => {
const allAssessmentQuestions = [
{
question: "Hasil dari 2^3 x 2^4 adalah...",
options: ["2^7", "2^12", "4^7", "4^12"],
correctAnswer: "2^7"
},
{
question: "Bentuk sederhana dari akar 72 adalah...",
options: ["6 akar 2", "2 akar 6", "36 akar 2", "2 akar 36"],
correctAnswer: "6 akar 2"
},
{
question: "Bentuk baku dari 0.0000056 adalah...",
options: ["5.6 x 10^(-5)", "5.6 x 10^(-6)", "5.6 x 10^5", "5.6 x 10^6"],
correctAnswer: "5.6 x 10^(-6)"
},
{
question: "Rasionalkan penyebut dari 3 / akar 5",
options: ["(3 akar 5) / 5", "3 akar 5", "(akar 5) / 5", "5 akar 3"],
correctAnswer: "(3 akar 5) / 5"
},
{
question: "Nilai dari (3^2)^3 adalah...",
options: ["3^5", "3^6", "9^3", "6^2"],
correctAnswer: "3^6"
},
{
question: "Tuliskan hasil dari 5^0.",
options: ["0", "1", "5", "Tidak terdefinisi"],
correctAnswer: "1"
},
{
question: "Sederhanakan akar 18 + akar 50.",
options: ["akar 68", "8 akar 2", "7 akar 2", "68"],
correctAnswer: "8 akar 2"
},
{
question: "Tuliskan 125,000,000 dalam bentuk baku.",
options: ["1.25 x 10^7", "1.25 x 10^8", "12.5 x 10^7", "0.125 x 10^9"],
correctAnswer: "1.25 x 10^8"
},
{
question: "Rasionalkan penyebut dari 2 / (3 - akar 2).",
options: ["(6 + 2 akar 2) / 7", "(6 - 2 akar 2) / 7", "2(3 + akar 2)", "2(3 - akar 2)"],
correctAnswer: "(6 + 2 akar 2) / 7"
}
];
const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0);
const [userAnswers, setUserAnswers] = useState(Array(allAssessmentQuestions.length).fill(null));
const [score, setScore] = useState(0);
const [showResults, setShowResults] = useState(false);
const [quizStarted, setQuizStarted] = useState(false);
const handleAnswerSelect = (selectedOption) => {
const updatedAnswers = [...userAnswers];
updatedAnswers[currentQuestionIndex] = selectedOption;
setUserAnswers(updatedAnswers);
};
const handleNextQuestion = () => {
if (currentQuestionIndex < allAssessmentQuestions.length - 1) {
setCurrentQuestionIndex(currentQuestionIndex + 1);
} else {
calculateScore();
setShowResults(true);
}
};
const calculateScore = () => {
let newScore = 0;
allAssessmentQuestions.forEach((q, index) => {
if (userAnswers[index] === q.correctAnswer) {
newScore++;
}
});
setScore(newScore);
};
const handleRestartQuiz = () => {
setCurrentQuestionIndex(0);
setUserAnswers(Array(allAssessmentQuestions.length).fill(null));
setScore(0);
setShowResults(false);
setQuizStarted(false);
};
const currentQuestion = allAssessmentQuestions[currentQuestionIndex];
return (
Asesmen Akhir
{!quizStarted ? (
Klik "Mulai Asesmen" untuk memulai asesmen akhir. Anda akan menjawab {allAssessmentQuestions.length} soal pilihan ganda.
Skor Anda akan ditampilkan setelah Anda menyelesaikan semua soal.
) : showResults ? (
Asesmen Selesai!
Skor Anda: {score} dari {allAssessmentQuestions.length}
) : (
Soal {currentQuestionIndex + 1} dari {allAssessmentQuestions.length}. {renderMath(currentQuestion.question)}
);
};
function App() {
const [currentPage, setCurrentPage] = useState('home');
const topics = [
{
id: 'exponents-understanding',
title: '1. Memahami Bilangan Berpangkat',
material: `Bilangan berpangkat atau eksponen adalah bentuk perkalian berulang dari suatu bilangan yang sama. Bentuk umum bilangan berpangkat adalah a^n, di mana a disebut basis (bilangan pokok) dan n disebut eksponen (pangkat).
Contoh: 2^3 = 2 x 2 x 2 = 8. Di sini, 2 adalah basis dan 3 adalah eksponen.`,
examples: [
{
question: "Tentukan hasil dari 3^4.",
solution: "3^4 = 3 x 3 x 3 x 3 = 81"
},
{
question: "Tentukan hasil dari (-2)^3.",
solution: "(-2)^3 = (-2) x (-2) x (-2) = 4 x (-2) = -8"
}
],
quizQuestions: [
{
question: "Berapakah hasil dari 5^3?",
options: ["15", "25", "125", "625"],
correctAnswer: "125"
},
{
question: "Nilai dari 10^0 adalah...",
options: ["0", "1", "10", "100"],
correctAnswer: "1"
}
]
},
{
id: 'exponents-properties',
title: '2. Memahami Sifat-Sifat Bilangan Berpangkat',
material: `Bilangan berpangkat memiliki beberapa sifat penting yang memudahkan dalam perhitungan:
1. Perkalian: a^m x a^n = a^(m+n)
2. Pembagian: a^m : a^n = a^(m-n)
3. Pangkat dari Pangkat: (a^m)^n = a^(m x n)
4. Pangkat Nol: a^0 = 1 (untuk a tidak sama dengan 0)
5. Pangkat Negatif: a^(-n) = 1/a^n
6. Perkalian berpangkat: (ab)^n = a^n b^n
7. Pembagian berpangkat: (a/b)^n = a^n / b^n`,
examples: [
{
question: "Sederhanakan 2^5 x 2^3.",
solution: "Menggunakan sifat a^m x a^n = a^(m+n), maka 2^5 x 2^3 = 2^(5+3) = 2^8 = 256"
},
{
question: "Sederhanakan (3^2)^4.",
solution: "Menggunakan sifat (a^m)^n = a^(m x n), maka (3^2)^4 = 3^(2 x 4) = 3^8 = 6561"
}
],
quizQuestions: [
{
question: "Hasil dari x^6 : x^2 adalah...",
options: ["x^8", "x^4", "x^3", "x^12"],
correctAnswer: "x^4"
},
{
question: "Bentuk sederhana dari 4^(-2) adalah...",
options: ["16", "-16", "1/16", "-1/16"],
correctAnswer: "1/16"
}
]
},
{
id: 'exponents-operations',
title: '3. Menyelesaikan Operasi Bilangan Berpangkat',
material: `Untuk menyelesaikan operasi bilangan berpangkat, kita menerapkan sifat-sifat yang telah dipelajari. Penting untuk memperhatikan urutan operasi (PEMDAS/BODMAS) jika ada kombinasi operasi.`,
examples: [
{
question: "Hitunglah nilai dari (2^3 x 3^2)^2.",
solution: "(2^3 x 3^2)^2 = (2^3)^2 x (3^2)^2 = 2^(3 x 2) x 3^(2 x 2) = 2^6 x 3^4 = 64 x 81 = 5184"
},
{
question: "Sederhanakan (5^7 / 5^4) x 5^2.",
solution: "(5^7 / 5^4) x 5^2 = 5^(7-4) x 5^2 = 5^3 x 5^2 = 5^(3+2) = 5^5 = 3125"
}
],
quizQuestions: [
{
question: "Hasil dari (2^2)^3 : 2^4 adalah...",
options: ["2^2", "2^3", "2^4", "2^5"],
correctAnswer: "2^2"
},
{
question: "Nilai dari (3x^2)^3 adalah...",
options: ["3x^6", "9x^6", "27x^6", "27x^5"],
correctAnswer: "27x^6"
}
]
},
{
id: 'radicals-understanding',
title: '4. Memahami Bilangan Bentuk Akar',
material: `Bentuk akar adalah akar dari suatu bilangan rasional yang hasilnya adalah bilangan irasional. Bentuk umum adalah akar pangkat n dari a, di mana n adalah indeks akar dan a adalah radikan. Jika n=2, biasanya ditulis sebagai akar a.
Bentuk akar dapat diubah menjadi bilangan berpangkat pecahan: akar pangkat n dari a^m = a^(m/n).`,
examples: [
{
question: "Ubahlah akar 8 ke bentuk sederhana.",
solution: "akar 8 = akar (4 x 2) = akar 4 x akar 2 = 2 akar 2"
},
{
question: "Ubahlah 3^(2/5) ke bentuk akar.",
solution: "3^(2/5) = akar pangkat 5 dari 3^2 = akar pangkat 5 dari 9"
}
],
quizQuestions: [
{
question: "Bentuk sederhana dari akar 48 adalah...",
options: ["4 akar 3", "3 akar 4", "16 akar 3", "12 akar 4"],
correctAnswer: "4 akar 3"
},
{
question: "Bentuk pangkat pecahan dari akar pangkat 3 dari 7^2 adalah...",
options: ["7^(2/3)", "7^(3/2)", "7^6", "7^(-2/3)"],
correctAnswer: "7^(2/3)"
}
]
},
{
id: 'radicals-operations',
title: '5. Menyelesaikan Operasi Bilangan Bentuk Akar',
material: `Operasi pada bentuk akar meliputi penjumlahan, pengurangan, perkalian, dan pembagian.
1. Penjumlahan/Pengurangan: Hanya bisa dilakukan jika radikan dan indeks akarnya sama. Contoh: a akar c + b akar c = (a+b) akar c.
2. Perkalian: akar a x akar b = akar (ab).
3. Pembagian: akar a / akar b = akar (a/b).`,
examples: [
{
question: "Hitunglah akar 12 + akar 27.",
solution: "akar 12 + akar 27 = akar (4 x 3) + akar (9 x 3) = 2 akar 3 + 3 akar 3 = (2+3) akar 3 = 5 akar 3"
},
{
question: "Hitunglah akar 6 x akar 3.",
solution: "akar 6 x akar 3 = akar (6 x 3) = akar 18 = akar (9 x 2) = 3 akar 2"
}
],
quizQuestions: [
{
question: "Hasil dari 5 akar 2 - 2 akar 2 adalah...",
options: ["3 akar 2", "7 akar 2", "3", "akar 2"],
correctAnswer: "3 akar 2"
},
{
question: "Hasil dari akar 5 x akar 20 adalah...",
options: ["akar 100", "10", "5 akar 4", "25"],
correctAnswer: "10"
}
]
},
{
id: 'radicals-rationalizing',
title: '6. Merasionalkan Penyebut Bentuk Akar',
material: `Merasionalkan penyebut berarti mengubah penyebut yang berbentuk akar menjadi bilangan rasional. Ini dilakukan dengan mengalikan pembilang dan penyebut dengan bentuk sekawan dari penyebut.
1. Bentuk a / akar b: Kalikan dengan akar b / akar b.
2. Bentuk a / (b + akar c): Kalikan dengan (b - akar c) / (b - akar c).
3. Bentuk a / (akar b + akar c): Kalikan dengan (akar b - akar c) / (akar b - akar c).`,
examples: [
{
question: "Rasionalkan penyebut dari 2 / akar 3.",
solution: "(2 / akar 3) x (akar 3 / akar 3) = (2 akar 3) / 3"
},
{
question: "Rasionalkan penyebut dari 4 / (2 + akar 2).",
solution: "(4 / (2 + akar 2)) x ((2 - akar 2) / (2 - akar 2)) = (4(2 - akar 2)) / (2^2 - (akar 2)^2) = (8 - 4 akar 2) / (4 - 2) = (8 - 4 akar 2) / 2 = 4 - 2 akar 2"
}
],
quizQuestions: [
{
question: "Bentuk rasional dari 1 / akar 7 adalah...",
options: ["(akar 7) / 7", "akar 7", "7 akar 7", "1"],
correctAnswer: "(akar 7) / 7"
},
{
question: "Rasionalkan penyebut dari 6 / (akar 5 - 1).",
options: ["(3(akar 5 + 1)) / 2", "3(akar 5 + 1)", "6(akar 5 + 1)", "(6(akar 5 + 1)) / 4"],
correctAnswer: "(3(akar 5 + 1)) / 2"
}
]
},
{
id: 'standard-form',
title: '7. Menulis Bentuk Baku Bilangan',
material: `Bentuk baku (notasi ilmiah) adalah cara menulis bilangan yang terlalu besar atau terlalu kecil agar lebih mudah dibaca. Bentuk umum adalah a x 10^n, di mana 1 <= |a| < 10 dan n adalah bilangan bulat.
Untuk bilangan besar, n positif. Untuk bilangan kecil (desimal), n negatif.`,
examples: [
{
question: "Tuliskan 1,230,000 dalam bentuk baku.",
solution: "Geser koma 6 tempat ke kiri: 1.23 x 10^6"
},
{
question: "Tuliskan 0.000000045 dalam bentuk baku.",
solution: "Geser koma 8 tempat ke kanan: 4.5 x 10^(-8)"
}
],
quizQuestions: [
{
question: "Bentuk baku dari 98,700,000 adalah...",
options: ["9.87 x 10^7", "9.87 x 10^8", "98.7 x 10^6", "0.987 x 10^8"],
correctAnswer: "9.87 x 10^7"
},
{
question: "Bentuk baku dari 0.000123 adalah...",
options: ["1.23 x 10^(-3)", "1.23 x 10^(-4)", "1.23 x 10^4", "12.3 x 10^(-5)"],
correctAnswer: "1.23 x 10^(-4)"
}
]
}
];
return (
Modul ini akan membantu Anda memahami konsep bilangan berpangkat dan bentuk akar,
serta cara menyelesaikan berbagai operasi terkait.
Gunakan navigasi di atas untuk menjelajahi materi, contoh soal, kuis interaktif, dan asesmen akhir.
Kelas 9 - Sebuah alat bantu belajar untuk memahami konsep eksponen secara mendalam.
Selamat Datang! Mari Kita Mulai Petualangan Eksponen!
Bagian ini akan memantik rasa ingin tahu Anda tentang mengapa bilangan berpangkat itu penting. Konsep ini bukan hanya sekumpulan angka, tetapi cara hebat untuk menyederhanakan sesuatu yang besar dan rumit. Mari kita lihat bagaimana perkalian berulang bisa ditulis dengan lebih elegan.
🤔 Pernahkah Kamu Berpikir?
Bagaimana ilmuwan menulis jarak antar bintang yang triliunan kilometer?
Bagaimana ahli biologi menghitung pertumbuhan bakteri yang berlipat ganda setiap jam?
Bagaimana kapasitas penyimpanan komputer (Kilobyte, Megabyte, Gigabyte) dihitung?
Jawabannya ada pada kekuatan bilangan berpangkat!
Contoh Sederhana
Bayangkan ada 3 teman, masing-masing membawa 3 kotak, dan setiap kotak berisi 3 bola. Berapa total bola?
Perkalian berulangnya adalah:
3 × 3 × 3 = 27
Dengan notasi pangkat, kita bisa menuliskannya secara ringkas:
33
Di sini, '3' adalah basis dan '3' yang di atas adalah eksponen atau pangkat.
Eksplorasi Sifat-Sifat Bilangan Berpangkat
Di sini, Anda tidak akan sekadar menghafal rumus. Anda akan menemukan sendiri sifat-sifat bilangan berpangkat melalui pola dan contoh interaktif. Mari menjadi detektif matematika!
1. Sifat Perkalian: $a^m \times a^n = a^{m+n}$
Ketika mengalikan dua bilangan berpangkat dengan basis yang sama, kita hanya perlu menjumlahkan pangkatnya. Coba lihat mengapa!
Apa yang terjadi jika pangkatnya 0 atau negatif? Mari kita temukan polanya dengan terus membagi dengan basis (angka 2).
Kalkulator Sifat Eksponen
Uji pemahaman Anda tentang sifat-sifat eksponen. Masukkan basis dan pangkat, lalu biarkan kalkulator ini menunjukkan langkah-langkah penyederhanaannya. Ini adalah cara yang bagus untuk berlatih.
Sederhanakan: $a^m \times a^n$
×2
Sederhanakan: $a^m / a^n$
÷3
Tantangan Kontekstual: Pertumbuhan Bakteri
Bilangan berpangkat sangat berguna untuk memodelkan situasi di dunia nyata, seperti pertumbuhan dan peluruhan. Mari kita pecahkan masalah pertumbuhan bakteri ini dan lihat bagaimana visualisasi data dapat membantu kita memahaminya.
Studi Kasus
Sebuah koloni bakteri dimulai dengan 100 bakteri. Jumlahnya menjadi dua kali lipat setiap 30 menit. Berapa banyak bakteri yang akan ada setelah beberapa jam?
Setelah 3 jam
Asesmen Formatif Cepat
Waktunya menguji pemahamanmu! Jawablah beberapa pertanyaan berikut untuk melihat sejauh mana kamu telah menguasai konsep bilangan berpangkat. Jangan khawatir, ini hanya latihan untuk belajar.
Informasi Modul
Bagian ini berisi detail tentang modul ajar yang menjadi dasar dari aplikasi interaktif ini, termasuk tujuan pembelajaran dan catatan penting bagi para pendidik.
Tujuan Pembelajaran
Mengidentifikasi dan menjelaskan konsep bilangan berpangkat.
Menganalisis dan menemukan sifat-sifat operasi bilangan berpangkat.
Menjelaskan dan menerapkan konsep pangkat nol dan negatif.
Menyederhanakan ekspresi aljabar yang melibatkan eksponen.
Memecahkan masalah kontekstual yang berkaitan dengan bilangan berpangkat.
Mengembangkan kemampuan berpikir kritis, logis, dan analitis.
Berkolaborasi secara efektif dalam kegiatan kelompok.
Catatan untuk Guru
Gunakan aplikasi ini sebagai alat demonstrasi di kelas untuk memvisualisasikan konsep.
Tugaskan siswa untuk bereksplorasi secara mandiri sebagai bagian dari pembelajaran berdiferensiasi.
Bagian "Tantangan Kontekstual" dapat menjadi pemicu diskusi atau proyek kelompok kecil.
Gunakan hasil "Asesmen" untuk mengidentifikasi miskonsepsi umum di kelas.
Hubungkan konsep ini dengan mata pelajaran lain seperti IPA (notasi ilmiah) dan TIK (ukuran data).