- Bab 11 dari 11
- 35 menit
- 1 latihan kode
- 4 soal kuis
Proyek Mini Kalkulator Nilai, Praktik Terbaik, dan Latihan Soal
Di bab ini (7 bagian)
Tujuan bab ini
- Membangun proyek mini kalkulator nilai siswa yang menggabungkan fungsi, kondisi, dictionary, perulangan, dan f-string.
- Menerapkan praktik terbaik: PEP 8,
snake_case, nama yang jelas, fungsi kecil, dan kebiasaan membaca error. - Mengerjakan latihan soal mandiri dan tahu sumber belajar untuk langkah berikutnya.
Proyek mini: kalkulator nilai siswa
Saatnya merangkai semua yang sudah kamu pelajari jadi satu program utuh. Targetnya: program mencatat nama dan nilai beberapa siswa, menentukan grade, lalu menampilkan tabel rapi dan rata-rata kelas.
Langkah 1: fungsi penentu grade
Mulai dari bagian paling kecil. Satu fungsi, satu tugas: menerima angka, mengembalikan huruf.
Output:
Urutan kondisi penting. Karena dicek dari yang terbesar, nilai 88 berhenti di "A" dan tidak ikut diperiksa di cabang berikutnya. return "D" di akhir menangkap semua sisanya.
Langkah 2: menyimpan data di dictionary
Nama siswa jadi kunci, nilainya jadi value. Versi di slide mengisi data dengan input() di dalam for i in range(3). Supaya mudah diuji, kita isi langsung dulu:
Versi interaktifnya seperti ini. Jalankan di komputermu sendiri:
Langkah 3: mencetak tabel dengan f-string
Output:
Format di dalam kurung kurawal membuat tabel rapi:
| Format | Arti |
|---|---|
:<8 | Rata kiri, lebar 8 karakter |
:>5.1f | Rata kanan, lebar 5, satu angka di belakang koma |
:.1f | Satu angka di belakang koma |
Langkah 4: membuat input lebih tahan banting
Kalau pengguna mengetik "delapan puluh", float() memunculkan ValueError dan program berhenti. Pakai try/except dari bab sebelumnya:
Ide pengembangan lain: simpan hasilnya ke file dengan with open("nilai.txt", "a", encoding="utf-8"), atau tolak nilai di luar 0 sampai 100 dengan raise ValueError.
Latihan soal
Kerjakan sendiri dulu, sekitar 10 sampai 15 menit per soal, baru intip kuncinya.
| No | Soal | Level | Kunci |
|---|---|---|---|
| 1 | Ganjil/genap: tampilkan apakah sebuah angka ganjil atau genap | Mudah | angka % 2 == 0 berarti genap |
| 2 | FizzBuzz: cetak 1 sampai 100, kelipatan 3 "Fizz", 5 "Buzz", keduanya "FizzBuzz" | Mudah | for + if dengan range(1, 101) |
| 3 | Konversi suhu: fungsi celcius_ke_fahrenheit(c) | Sedang | (c * 9/5) + 32 |
| 4 | Daftar belanja: barang dan harga di dictionary, hitung total | Sedang | Dictionary dan perulangan |
| 5 | Rekening bank: class Rekening dengan setor(), tarik(), cek_saldo() | Menantang | Lihat bab OOP |
Petunjuk FizzBuzz: periksa kelipatan 15 lebih dulu. Kalau % 3 dicek duluan, angka 15 hanya akan mencetak "Fizz".
Output:
Sumber belajar dan langkah berikutnya
| Sumber | Kegunaan |
|---|---|
| docs.python.org | Dokumentasi dan tutorial resmi, rujukan paling akurat |
| pypi.org | Katalog library Python yang bisa dipasang dengan pip |
| Google Colab | Coding Python di browser tanpa instalasi |
| Stack Overflow | Tanya jawab masalah kode |
Setelah kelas ini, pilih satu arah dan buat proyek kecil: analisis data dengan Pandas, web sederhana dengan Flask, atau bot otomatisasi tugas harian. Proyek nyata, sekecil apa pun, mengajarkan lebih banyak daripada membaca sepuluh tutorial.
Kesalahan umum
- Langsung menulis program besar tanpa memecahnya jadi fungsi kecil, lalu bingung saat ada bug.
- Mencampur gaya nama, misalnya
totalHargadantotal_hargadi file yang sama. - Menyalin jawaban dari internet tanpa memahami, sehingga tidak bisa memperbaikinya saat error.
- Membagi dengan
len(data)tanpa memeriksa apakah data kosong, sehingga munculZeroDivisionError. - Menyerah saat melihat traceback panjang, padahal baris terakhirnya biasanya sudah menjelaskan masalah.
Rangkuman
- Proyek kalkulator nilai siswa menggabungkan fungsi, kondisi, dictionary, perulangan, input, dan f-string.
- Bangun program dari bagian kecil: fungsi
grade(), penyimpanan data, lalu tampilan. - PEP 8 adalah panduan gaya resmi: indentasi 4 spasi,
snake_caseuntuk variabel dan fungsi, nama yang jelas. - Latihan rutin lewat soal ganjil/genap, FizzBuzz, konversi suhu, daftar belanja, dan rekening bank menguatkan dasar.
- Lanjutkan belajar lewat docs.python.org, pypi.org, Google Colab, dan Stack Overflow, lalu buat proyek nyata.
Slide 28 sampai 33 dari deck Pemrograman Python: Dari Nol sampai Proyek Mini. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Latihan kode (1)
- 3. Kuis (4 soal)
Latihan kode: Kalkulator nilai siswa
Lengkapi dua fungsi untuk proyek kalkulator nilai.
grade(n)mengembalikan"A"jikan >= 85,"B"jikan >= 70,"C"jikan >= 55, selain itu"D".rata_rata(data)menerima dictionary{nama: nilai}dan mengembalikan rata-rata nilainya. Jika dictionary kosong, kembalikan0supaya tidak terjadiZeroDivisionError.
Cek pemahaman
1Nama variabel mana yang sesuai PEP 8?
2Apa yang dicetak kode berikut?
for i in [3, 10, 15]: if i % 15 == 0: print("FizzBuzz", end=" ") elif i % 3 == 0: print("Fizz", end=" ") elif i % 5 == 0: print("Buzz", end=" ") else: print(i, end=" ")3PEP 8 menganjurkan indentasi 4 spasi per level.
4Berapa hasil `celcius_ke_fahrenheit(100)` dengan rumus `(c * 9 / 5) + 32`?
