Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Tugas:
- # Mewakili satu tugas dalam daftar
- def __init__(self, deskripsi):
- self.deskripsi = deskripsi
- self.selesai = False
- # Menandai tugas sebagai selesai
- def tandai_selesai(self):
- self.selesai = True
- # Representasi string dari objek Tugas
- def __str__(self):
- if self.selesai:
- status = "β"
- else:
- status = "β"
- return f"[{status}] {self.deskripsi}"
- class DaftarTugas:
- # Mewakili koleksi dari banyak objek Tugas dan iterable
- def __init__(self):
- self._koleksi_tugas = []
- # Untuk melacak posisi saat iterasi
- self._indeks = 0
- # Menambahkan tugas baru ke dalam koleksi
- def tambah_tugas(self, deskripsi_tugas):
- self._koleksi_tugas.append(Tugas(deskripsi_tugas))
- # Mengembalikan objek iterator (dirinya sendiri) dan mereset indeks setiap kali iterasi baru dimulai
- def __iter__(self):
- self._indeks = 0
- return self
- # Mengembalikan elemen berikutnya dari koleksi
- def __next__(self):
- if self._indeks < len(self._koleksi_tugas):
- hasil = self._koleksi_tugas[self._indeks]
- self._indeks += 1
- return hasil
- else:
- # Sinyal bahwa iterasi telah selesai
- raise StopIteration
- # Buat instance dari koleksi
- daftar_belanja = DaftarTugas()
- # Tambahkan beberapa objek ke dalamnya
- daftar_belanja.tambah_tugas("Beli Apel")
- daftar_belanja.tambah_tugas("Beli Susu")
- daftar_belanja.tambah_tugas("Bayar Tagihan Listrik")
- # Akses isinya dengan for loop sederhana
- print("--- Daftar Belanja ---")
- for tugas in daftar_belanja:
- print(tugas)
- # Tandai satu tugas selesai (contoh modifikasi objek)
- daftar_belanja._koleksi_tugas[1].tandai_selesai()
- print("\n--- Daftar Belanja ---")
- # Lakukan iterasi lagi
- for tugas in daftar_belanja:
- print(tugas)
Add Comment
Please, Sign In to add comment