Kita telah menempuh 39 Section materi Python, mulai dari Pengenalan Python hingga Dokumentasi dan Maintainability. Proyek ini adalah tempat semua pengetahuan tersebut dipakai membangun satu program utuh: kalkulator terminal interaktif yang membaca input pengguna, menghitung empat operasi aritmatika, menolak input yang tidak valid tanpa crash, dan terlindungi rangkaian test pytest.
Program yang akan kita bangun bekerja dalam satu sesi terminal:
- menampilkan menu lima pilihan (Tambah, Kurang, Kali, Bagi, Keluar),
- membaca dua angka dari pengguna, termasuk bilangan desimal,
- menampilkan hasil perhitungan, lalu menawarkan menghitung lagi,
- menolak input yang tidak dikenal dan meminta pengguna mencoba ulang,
- berakhir dengan sopan ketika pengguna memilih keluar.
Tampilan Program Akhir #
Sesi pemakaian berikut menunjukkan hasil akhir proyek. Teks yang diketik pengguna tampil tepat setelah setiap prompt:
=== Kalkulator Terminal ===
1. Tambah
2. Kurang
3. Kali
4. Bagi
5. Keluar
Pilih operasi (1-5): 4
Angka pertama: 10
Angka kedua: 4
Hasil: 10 / 4 = 2.5
Hitung lagi? (y/t): y
=== Kalkulator Terminal ===
1. Tambah
2. Kurang
3. Kali
4. Bagi
5. Keluar
Pilih operasi (1-5): 1
Angka pertama: 2.5
Angka kedua: 1.5
Hasil: 2.5 + 1.5 = 4
Hitung lagi? (y/t): t
Terima kasih telah menggunakan Kalkulator Terminal.Tampilan sederhana, tetapi di baliknya tersimpan keputusan arsitektur yang menjadi inti proyek ini: pemisahan logika hitung dari input/output, lapisan penanganan error yang terpusat, dan test yang membuktikan semuanya bekerja.
Tujuan Pembelajaran #
Setelah menyelesaikan proyek ini, kita mampu:
- menstrukturkan program interaktif menjadi fungsi-fungsi kecil dengan tanggung jawab tunggal,
- melakukan dispatch operasi menggunakan dictionary, bukan rantai
ifyang panjang, - memvalidasi input dengan dua pola: daftar putih (whitelist) dan
try/exceptdengan coba-ulang, - memisahkan fungsi murni dari efek samping agar mudah diuji,
- menulis test pytest, termasuk test yang memeriksa exception dengan
pytest.raises.
Prasyarat #
Proyek ini tidak memperkenalkan materi baru, melainkan memakai materi yang sudah dibahas. Chapter yang paling sering dirujuk:
- Membaca Input Pengguna dan Type Conversion — fungsi
input()dan konversifloat(), - while Loops serta break dan continue — loop utama program,
- Mendefinisikan Fungsi, Return Value, dan Dictionary — struktur program dan dispatch operasi,
- try dan except serta raise — validasi input dan penanganan error,
- Main Module dan name — titik masuk program yang aman diimpor,
- Menulis Test dengan pytest dan Testing Exceptions — pengujian proyek.
Tahapan Pengerjaan #
Proyek dikerjakan dalam empat bagian berurutan. Setiap bagian menghasilkan program yang dapat dijalankan penuh:
- Bagian 1: Fondasi Program — membangun kerangka menu, loop utama, dan pembacaan dua angka dengan struktur fungsi yang rapi.
- Bagian 2: Operasi Aritmatika — mengimplementasikan empat operasi, dispatch berbasis dictionary, dan pertanyaan hitung lagi.
- Bagian 3: Validasi Input — menolak input yang tidak valid dengan pola coba-ulang pada seluruh titik masukan.
- Bagian 4: Penanganan Error dan Testing — me-refactor logika menjadi fungsi murni
hitung(), memusatkan penanganan error, dan menulis test pytest.
Mulailah dari Bagian 1 dan ikuti urutannya karena setiap bagian dibangun di atas berkas bagian sebelumnya. Berkas sumber setiap bagian tersedia pada bagian Berkas Sumber di bawah halaman masing-masing.
Bangun kerangka kalkulator: menu, loop utama, dan pembacaan dua angka dalam struktur fungsi.
Buka → # Bagian 2: Operasi AritmatikaImplementasikan empat operasi aritmatika dengan dispatch dictionary dan penanganan awal pembagian nol.
Buka → # Bagian 3: Validasi InputValidasi seluruh input pengguna dengan pola coba-ulang: daftar putih menu dan try/except angka.
Buka → # Bagian 4: Penanganan Error dan TestingRefactor logika menjadi fungsi murni hitung(), tangani error terpusat, dan uji dengan pytest.
Buka →