Proyek Akhir: Manajer Tugas
Menggabungkan class, list, dict, error handling, dan JSON dalam satu aplikasi.
Selamat sampai di proyek akhir!
Kamu akan membangun inti sebuah manajer tugas (to-do list) yang menyimpan data ke JSON. Proyek ini memakai hampir semua konsep: class, list, dict, function, error handling, dan JSON.
Rancangan
Data satu tugas disimpan sebagai dict:
{"id": 1, "judul": "Belajar Python", "selesai": False}
Class ManajerTugas menyimpan daftar tugas dan menyediakan method:
| Method | Tugas |
|---|---|
tambah(judul) | Membuat tugas baru dengan id otomatis (1, 2, 3, ...) dan selesai=False; me-return dict tugas. Judul kosong → ValueError |
selesai(id) | Menandai tugas selesai; id tidak ada → KeyError |
daftar(hanya_belum=False) | Me-return list tugas; bila hanya_belum=True hanya yang belum selesai |
ke_json() | Me-return seluruh daftar sebagai string JSON |
dari_json(teks) | Method class yang membuat ManajerTugas dari string JSON |
Langkah berpikir
- Simpan tugas di
self.tugas(list of dict) dan hitung id berikutnya denganself._id_berikut. tambah: validasi judul (strip()lalu cek kosong), buat dict, tambahkan, naikkan id.selesai: cari dengan loop; jika tidak ketemuraise KeyError(...).daftar: kembalikan seluruh list atau filter.ke_json:json.dumps(self.tugas).dari_json: buat objek baru, isitugasdarijson.loads, dan atur ulang id berikutnya = id terbesar + 1.
Method class dengan @classmethod
dari_json tidak butuh objek yang sudah ada; ia membuat objek. Gunakan @classmethod:
class ManajerTugas:
@classmethod
def dari_json(cls, teks):
objek = cls() # cls = class itu sendiri
...
return objek
Dipanggil dengan ManajerTugas.dari_json(teks).
Mengembangkan sendiri
- Tambahkan
hapus(id)danubah(id, judul_baru). - Simpan dan muat dari file dengan
open(). - Tambahkan prioritas dan tanggal tenggat (
datetime). - Buat antarmuka teks: menu dengan
while Truedaninput(). - Tambahkan test dengan modul
unittestataupytest. - Ubah menjadi dataclass atau API dengan FastAPI.
Langkah selanjutnya setelah course ini
- Latihan berkelanjutan: selesaikan soal di platform latihan dan buat proyek kecil tiap minggu.
- Pilih jalur: web (Flask/Django/FastAPI), data (pandas, NumPy), otomasi, atau AI.
- Pelajari alat: Git, virtual environment,
pytest, dan debugging denganpdb. - Bangun portofolio di GitHub.
Setelah lulus bab ini, kerjakan quiz akhir. Nilai minimal 70 membuka sertifikat kelulusanmu. Selamat — dasar Python sudah kamu kuasai! 🎉