Proyek Akhir: Manajer Tugas

Menggabungkan class, list, dict, error handling, dan JSON dalam satu aplikasi.

Part 24 dari 24 ± 60 menit Gratis

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:

MethodTugas
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

  1. Simpan tugas di self.tugas (list of dict) dan hitung id berikutnya dengan self._id_berikut.
  2. tambah: validasi judul (strip() lalu cek kosong), buat dict, tambahkan, naikkan id.
  3. selesai: cari dengan loop; jika tidak ketemu raise KeyError(...).
  4. daftar: kembalikan seluruh list atau filter.
  5. ke_json: json.dumps(self.tugas).
  6. dari_json: buat objek baru, isi tugas dari json.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) dan ubah(id, judul_baru).
  • Simpan dan muat dari file dengan open().
  • Tambahkan prioritas dan tanggal tenggat (datetime).
  • Buat antarmuka teks: menu dengan while True dan input().
  • Tambahkan test dengan modul unittest atau pytest.
  • Ubah menjadi dataclass atau API dengan FastAPI.

Langkah selanjutnya setelah course ini

  1. Latihan berkelanjutan: selesaikan soal di platform latihan dan buat proyek kecil tiap minggu.
  2. Pilih jalur: web (Flask/Django/FastAPI), data (pandas, NumPy), otomasi, atau AI.
  3. Pelajari alat: Git, virtual environment, pytest, dan debugging dengan pdb.
  4. Bangun portofolio di GitHub.

Setelah lulus bab ini, kerjakan quiz akhir. Nilai minimal 70 membuka sertifikat kelulusanmu. Selamat — dasar Python sudah kamu kuasai! 🎉

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X