Kalkulator Sederhana
Kalkulator dengan tombol angka dan operasi yang berfungsi penuh.
Kenapa Kalkulator?
Kalkulator mengajarkan state management mini: aplikasi harus "ingat" angka pertama, operasi yang dipilih, dan angka kedua, lalu menghitung saat tombol = ditekan. Ini pola state yang sama dipakai di form multi-langkah dan game.
Langkah Membangun
HTML: Layar display (<div class="layar">) dan grid tombol: angka 0-9, operasi + − × ÷, tombol C (hapus), ⌫ (hapus satu digit), dan =.
CSS: Grid 4 kolom untuk tombol (grid-template-columns: repeat(4, 1fr)). Tombol operasi warna berbeda, tombol = lebih mencolok. Layar: background gelap, teks kanan, font besar.
JS: Tiga variabel state:
let angkaSekarang = "0";
let angkaSebelum = null;
let operasi = null;Alur: klik angka -> tempel ke angkaSekarang. Klik operasi -> simpan angkaSekarang ke angkaSebelum, simpan operasi, reset angkaSekarang. Klik = -> hitung berdasarkan operasi, tampilkan hasil, reset state. Tombol C mengembalikan semua ke awal.
Fungsi hitung memakai switch untuk 4 operasi. Tangani pembagian dengan nol ("Tidak bisa dibagi nol!") dan batasi desimal panjang dengan toFixed + parseFloat.
Kesalahan Umum
- Memakai
eval()untuk menghitung (berbahaya dan tidak mengajarkan logika). - State tidak di-reset setelah = sehingga operasi berikutnya memakai hasil lama secara salah (atau justru benar: kalkulator nyata melanjutkan dari hasil, pilih perilaku dan konsisten).
- Angka "0" di depan menumpuk ("0005") karena tidak menangani angka awal khusus.
export default function App(): JSX.Element { return <h1>Hello world</h1> }
Tantangan
Tantangan: Riwayat Perhitungan
Tambahkan panel riwayat di bawah kalkulator yang mencatat setiap perhitungan (misal "5 + 3 = 8"). Klik item riwayat untuk memuat hasilnya kembali ke layar.