Di chapter ini, kita bakal belajar cara mengelola tanggal dan waktu di Python pake modul datetime. Bayangin tanggal dan waktu itu kayak jam di dinding yang bantu kita tau kapan kita tanam pohon atau daur ulang sampah. Kita akan pake semua konsep dari Chapter 1-16, termasuk regex dari Chapter 16. Yuk, kita jadi penutur waktu bareng Arry Hutomo! 🚀
from datetime import datetime sekarang = datetime.now() print(f"Waktu sekarang: {sekarang}")
Output:
Waktu sekarang: 2025-05-16 07:10:00.123456
Penjelasan Output: Outputnya adalah "Waktu sekarang: 2025-05-16 07:10:00.123456" (angka mikrodetik bisa beda). Metode datetime.now() mengembalikan tanggal dan waktu saat ini, yang sesuai dengan tanggal sistem: 16 Mei 2025, pukul 07:10 WIB.
Penjelasan Query: Bayangin kamu punya jam dinding di rumah, dan kamu pengen tau waktu sekarang biar bisa catat kapan kamu mulai rencanain acara tanam pohon. Di Python, kita bisa pake modul datetime untuk ambil waktu saat ini, kayak liat jam dinding. Aku mulai dengan impor from datetime import datetime biar bisa pake kelas datetime. Aku pake datetime.now() untuk ambil tanggal dan waktu sekarang, trus simpen di variabel sekarang. Aku cetak langsung biar kamu lihat format defaultnya: tahun-bulan-tanggal jam:menit:detik.mikrodetik. Aku pilih tema lingkungan karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini sederhana banget, cocok buat pemula, kayak liat jam dinding buat tau waktu sekarang. Coba di VSCode, pasti langsung bisa! 🌱
from datetime import datetime sekarang = datetime.now() format_waktu = sekarang.strftime("%d-%m-%Y %H:%M:%S") print(f"Waktu sekarang: {format_waktu}")
Output:
Waktu sekarang: 16-05-2025 07:10:00
Penjelasan Output: Outputnya adalah "Waktu sekarang: 16-05-2025 07:10:00" karena metode strftime() mengubah objek datetime jadi string dengan format yang kita tentuin: %d (tanggal), %m (bulan), %Y (tahun), %H (jam), %M (menit), %S (detik).
Penjelasan Query: Bayangin kamu mau nulis waktu di buku harian, tapi kamu pengen formatnya rapi dan gampang dibaca, misalnya tanggal-bulan-tahun jam:menit:detik, kayak nyanyi lagu dengan irama yang teratur. Di Python, kita bisa pake metode strftime() untuk ubah waktu jadi format yang kita mau. Aku mulai dengan impor from datetime import datetime. Aku pake datetime.now() untuk ambil waktu sekarang, trus aku ubah formatnya pake strftime("%d-%m-%Y %H:%M:%S"), yang artinya: %d buat tanggal (2 digit), %m buat bulan (2 digit), %Y buat tahun (4 digit), %H buat jam (24 jam), %M buat menit, dan %S buat detik. Aku simpen hasilnya di variabel format_waktu dan cetak. Aku pilih tema lingkungan karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini gampang dipahami, kayak nulis waktu di buku harian dengan format yang rapi. Coba di VSCode, gampang kok! 🌳
from datetime import datetime sekarang = datetime.now() tahun = sekarang.year bulan = sekarang.month tanggal = sekarang.day print(f"Tanggal: {tanggal}-{bulan}-{tahun}")
Output:
Tanggal: 16-5-2025
Penjelasan Output: Outputnya adalah "Tanggal: 16-5-2025" karena kita ambil bagian tanggal, bulan, dan tahun dari objek sekarang pake atribut day, month, dan year. Tanggal sistem adalah 16 Mei 2025, jadi tanggal adalah 16, bulan adalah 5, dan tahun adalah 2025.
Penjelasan Query: Bayangin kamu lagi liat kalender di dinding, dan kamu cuma pengen tau tanggal, bulan, sama tahunnya aja, tanpa jam, biar bisa catat kapan kamu tanam pohon. Di Python, kita bisa ambil bagian tertentu dari objek datetime pake atribut seperti year, month, dan day, kayak nyanyi lagu cuma ambil nada-nada tertentu. Aku mulai dengan impor from datetime import datetime. Aku pake datetime.now() untuk ambil waktu sekarang, trus aku ambil bagian tahun pake sekarang.year, bulan pake sekarang.month, dan tanggal pake sekarang.day. Aku simpen masing-masing di variabel, trus cetak dalam format sederhana: tanggal-bulan-tahun. Aku pilih tema lingkungan karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini gampang dipahami, kayak liat kalender cuma ambil tanggalnya. Coba di VSCode, gampang kok! 🌳
from datetime import datetime tanggal_acara = datetime(2025, 6, 1, 9, 0) print(f"Acara tanam pohon: {tanggal_acara}")
Output:
Acara tanam pohon: 2025-06-01 09:00:00
Penjelasan Output: Outputnya adalah "Acara tanam pohon: 2025-06-01 09:00:00" karena kita bikin objek datetime dengan tanggal 1 Juni 2025, pukul 09:00. Format defaultnya adalah tahun-bulan-tanggal jam:menit:detik.
Penjelasan Query: Bayangin kamu mau rencanain acara tanam pohon di tanggal tertentu, misalnya 1 Juni 2025 jam 9 pagi, dan kamu mau catat di buku harian biar ga lupa. Di Python, kita bisa bikin tanggal spesifik pake kelas datetime dengan kasih tau tahun, bulan, tanggal, jam, dan menit, kayak nyanyi lagu dengan jadwal yang pasti. Aku mulai dengan impor from datetime import datetime. Aku bikin objek datetime(2025, 6, 1, 9, 0), yang artinya: tahun 2025, bulan 6 (Juni), tanggal 1, jam 9 pagi, dan menit 0. Aku simpen di variabel tanggal_acara dan cetak langsung. Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini gampang dipahami, kayak nulis jadwal acara di buku harian. Coba di VSCode, gampang kok! 🌳
from datetime import datetime sekarang = datetime.now() tanggal_acara = datetime(2025, 6, 1, 9, 0) selisih = tanggal_acara - sekarang print(f"Selisih waktu: {selisih.days} hari")
Output:
Selisih waktu: 16 hari
Penjelasan Output: Outputnya adalah "Selisih waktu: 16 hari" karena kita hitung selisih antara tanggal acara (1 Juni 2025) dan tanggal sekarang (16 Mei 2025). Aku hitung manual: dari 16 Mei sampai 31 Mei ada 15 hari, trus 1 Juni tambah 1 hari, jadi total 16 hari. Metode selisih.days ngasih jumlah hari dari objek timedelta.
Penjelasan Query: Bayangin kamu mau tau berapa hari lagi menuju acara tanam pohon, kayak nyanyi lagu sambil hitung mundur biar ga telat. Di Python, kita bisa hitung selisih waktu antara dua tanggal pake operator -. Aku mulai dengan impor from datetime import datetime. Aku pake datetime.now() untuk ambil waktu sekarang, yaitu 16 Mei 2025 jam 07:10. Aku bikin tanggal_acara untuk 1 Juni 2025 jam 9 pagi. Aku hitung selisih pake tanggal_acara - sekarang, yang ngasih objek timedelta, trus aku ambil bagian harinya pake selisih.days. Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara hitung selisih waktu, kayak hitung mundur ke acara di buku harian. Coba di VSCode, gampang kok! 🌳
from datetime import datetime, timedelta mulai = datetime(2025, 5, 16) for i in range(3): tanggal = mulai + timedelta(days=i) print(f"Hari ke-{i+1}: {tanggal.strftime('%d-%m-%Y')}")
Output:
Hari ke-1: 16-05-2025 Hari ke-2: 17-05-2025 Hari ke-3: 18-05-2025
Penjelasan Output: Outputnya mencetak tiga tanggal: 16, 17, dan 18 Mei 2025. Loop for berjalan tiga kali (range(3) menghasilkan i = 0, 1, 2). Tiap iterasi, kita tambah i hari ke tanggal mulai pake timedelta(days=i): i=0 (16 Mei), i=1 (17 Mei), i=2 (18 Mei). Tanggal diformat pake strftime().
Penjelasan Query: Bayangin kamu rencanain jadwal tanam pohon selama tiga hari berturut-turut mulai dari 16 Mei 2025, dan kamu mau catat tanggalnya satu per satu, kayak nyanyi lagu sambil catat jadwal hari demi hari. Di Python, kita bisa pake timedelta untuk nambah hari, trus loop pake for untuk buat daftar tanggal. Aku mulai dengan impor from datetime import datetime, timedelta. Aku bikin tanggal mulai 16 Mei 2025 pake datetime(2025, 5, 16). Aku loop tiga kali pake for i in range(3), yang artinya i akan jadi 0, 1, 2. Tiap iterasi, aku tambah i hari ke tanggal mulai pake timedelta(days=i), trus format tanggalnya pake strftime('%d-%m-%Y') biar rapi, dan cetak dengan nomor hari. Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara buat jadwal berurutan, kayak nulis jadwal acara di buku harian. Coba di VSCode, gampang kok! 🌳
from datetime import datetime, timedelta mulai = datetime(2025, 5, 16) i = 0 while i < 3: tanggal = mulai + timedelta(days=i) print(f"Hari ke-{i+1}: {tanggal.strftime('%d-%m-%Y')}") i = i + 1
Output:
Hari ke-1: 16-05-2025 Hari ke-2: 17-05-2025 Hari ke-3: 18-05-2025
Penjelasan Output: Outputnya sama seperti sebelumnya: tiga tanggal berurutan (16, 17, 18 Mei 2025). Kali ini, kita pake while loop untuk nambah hari satu per satu. Loop berjalan selama i kurang dari 3, dan i ditambah 1 tiap iterasi: i=0 (16 Mei), i=1 (17 Mei), i=2 (18 Mei).
Penjelasan Query: Bayangin kamu rencanain jadwal tanam pohon selama tiga hari, tapi kali ini kamu hitung hari satu per satu secara manual, kayak nyanyi lagu sambil catat nada satu per satu dengan tangan. Di Python, kita bisa pake while loop untuk nambah hari pake timedelta. Aku mulai dengan impor from datetime import datetime, timedelta. Aku bikin tanggal mulai 16 Mei 2025 pake datetime(2025, 5, 16). Aku inisialisasi i = 0 sebagai penghitung, trus loop pake while i < 3 biar berhenti setelah tiga hari. Tiap iterasi, aku tambah i hari ke tanggal mulai pake timedelta(days=i), format tanggal pake strftime(), cetak dengan nomor hari, dan tambah i pake i = i + 1. Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara buat jadwal dengan loop manual, kayak nulis jadwal acara satu per satu. Coba di VSCode, gampang kok! 🌳
from datetime import datetime sekarang = datetime.now() tanggal_acara = datetime(2025, 6, 1, 9, 0) if sekarang < tanggal_acara: print("Acara tanam pohon belum dimulai!") else: print("Acara tanam pohon sudah lewat atau sedang berlangsung!")
Output:
Acara tanam pohon belum dimulai!
Penjelasan Output: Outputnya adalah "Acara tanam pohon belum dimulai!" karena tanggal sekarang (16 Mei 2025, 07:10) lebih awal dari tanggal acara (1 Juni 2025, 09:00). Jadi, kondisi sekarang < tanggal_acara bernilai True, dan program masuk ke blok if.
Penjelasan Query: Bayangin kamu punya jadwal acara tanam pohon di buku harian, dan kamu mau cek apakah acara itu udah lewat atau belum, kayak nyanyi lagu sambil cek apakah nadanya udah selesai. Di Python, kita bisa bandingin dua objek datetime pake operator perbandingan seperti <. Aku mulai dengan impor from datetime import datetime. Aku pake datetime.now() untuk ambil waktu sekarang, yaitu 16 Mei 2025 jam 07:10. Aku bikin tanggal_acara untuk 1 Juni 2025 jam 9 pagi. Aku cek pake if sekarang < tanggal_acara: kalo True, berarti acara belum dimulai, jadi masuk ke blok if dan cetak pesan; kalo False, berarti acara udah lewat atau sedang berlangsung, jadi masuk ke blok else. Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara bandingin waktu, kayak cek jadwal acara di buku harian. Coba di VSCode, gampang kok! 🌳
from datetime import datetime tanggal = input("Masukkan tanggal acara (dd-mm-yyyy): ") try: tanggal_acara = datetime.strptime(tanggal, "%d-%m-%Y") print(f"Acara tanam pohon: {tanggal_acara}") except ValueError: print("Format tanggal salah! Gunakan dd-mm-yyyy.")
Output (misalnya user masukkan "01-06-2025"):
Masukkan tanggal acara (dd-mm-yyyy): 01-06-2025 Acara tanam pohon: 2025-06-01 00:00:00
Penjelasan Output: Outputnya adalah "Acara tanam pohon: 2025-06-01 00:00:00" karena user masukin "01-06-2025", dan metode datetime.strptime() ubah string itu jadi objek datetime. Karena ga ada jam yang dimasukin, defaultnya 00:00:00.
Penjelasan Query: Bayangin kamu minta orang kasih tau tanggal acara tanam pohon, misalnya dalam format tanggal-bulan-tahun, trus kamu ubah tanggal itu jadi format yang bisa diolah komputer, kayak nyanyi lagu dari lirik yang dikasih orang. Di Python, kita bisa pake datetime.strptime() untuk ubah string jadi objek datetime. Aku mulai dengan impor from datetime import datetime. Aku minta user masukin tanggal pake input() dengan format "dd-mm-yyyy", misalnya "01-06-2025". Dalam blok try, aku ubah string itu pake datetime.strptime(tanggal, "%d-%m-%Y"), yang artinya: %d untuk tanggal, %m untuk bulan, %Y untuk tahun. Kalo format salah, misalnya user masukin "2025-06-01" atau teks acak, aku tangkap error pake except ValueError dan kasih tau format yang bener. Aku simpen hasilnya di tanggal_acara dan cetak. Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara ubah input jadi waktu, kayak detektif yang ubah catatan jadi jadwal. Coba di VSCode, gampang kok! 🌳
from datetime import datetime, timedelta jadwal = [] mulai = datetime(2025, 5, 16) for i in range(3): tanggal = mulai + timedelta(days=i) jadwal.append(tanggal.strftime("%d-%m-%Y")) print(f"Jadwal tanam pohon: {jadwal}")
Output:
Jadwal tanam pohon: ['16-05-2025', '17-05-2025', '18-05-2025']
Penjelasan Output: Outputnya adalah "Jadwal tanam pohon: ['16-05-2025', '17-05-2025', '18-05-2025']" karena kita buat list jadwal selama tiga hari mulai dari 16 Mei 2025. Loop for berjalan tiga kali, menambah hari pake timedelta(days=i), dan tiap tanggal diformat jadi string pake strftime() sebelum dimasukin ke list jadwal.
Penjelasan Query: Bayangin kamu rencanain jadwal tanam pohon selama tiga hari, dan kamu mau simpen semua tanggalnya dalam daftar supaya gampang diliat, kayak nyanyi lagu sambil catat jadwal di buku kecil. Di Python, kita bisa pake list untuk simpen tanggal, trus buat jadwal pake loop dan timedelta. Aku mulai dengan impor from datetime import datetime, timedelta. Aku bikin list kosong jadwal untuk simpen tanggal-tanggal. Aku bikin tanggal mulai 16 Mei 2025 pake datetime(2025, 5, 16). Aku loop tiga kali pake for i in range(3), yang artinya i jadi 0, 1, 2. Tiap iterasi, aku tambah i hari ke tanggal mulai pake timedelta(days=i), format tanggal pake strftime('%d-%m-%Y'), trus masukin ke list jadwal pake append(). Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara simpen jadwal dalam list, kayak nulis daftar jadwal acara di buku kecil. Coba di VSCode, gampang kok! 🌳
from datetime import datetime, timedelta jadwal = {} mulai = datetime(2025, 5, 16) for i in range(3): tanggal = mulai + timedelta(days=i) jadwal[f"Hari ke-{i+1}"] = tanggal.strftime("%d-%m-%Y") print(f"Jadwal tanam pohon: {jadwal}")
Output:
Jadwal tanam pohon: {'Hari ke-1': '16-05-2025', 'Hari ke-2': '17-05-2025', 'Hari ke-3': '18-05-2025'}
Penjelasan Output: Outputnya adalah "Jadwal tanam pohon: {'Hari ke-1': '16-05-2025', 'Hari ke-2': '17-05-2025', 'Hari ke-3': '18-05-2025'}" karena kita buat dictionary jadwal selama tiga hari. Kunci dictionary adalah "Hari ke-1", "Hari ke-2", dst., dan nilai adalah tanggal yang diformat.
Penjelasan Query: Bayangin kamu rencanain jadwal tanam pohon selama tiga hari, tapi kali ini kamu mau simpen tanggalnya dalam folder berlabel, misalnya "Hari ke-1", "Hari ke-2", dst., kayak nyanyi lagu sambil simpen nada di album berlabel. Di Python, kita bisa pake dictionary untuk simpen tanggal dengan label, trus buat jadwal pake loop dan timedelta. Aku mulai dengan impor from datetime import datetime, timedelta. Aku bikin dictionary kosong jadwal untuk simpen tanggal-tanggal. Aku bikin tanggal mulai 16 Mei 2025, trus loop tiga kali pake for i in range(3). Tiap iterasi, aku tambah i hari, format tanggal, dan simpen di dictionary dengan kunci f"Hari ke-{i+1}". Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara simpen jadwal dalam dictionary, kayak simpen jadwal acara di folder berlabel. Coba di VSCode, gampang kok! 🌳
from datetime import datetime try: tanggal = "01-06-2025" tanggal_acara = datetime.strptime(tanggal, "%d-%m-%Y") if tanggal_acara < datetime.now(): raise ValueError("Tanggal acara sudah lewat!") print(f"Acara tanam pohon: {tanggal_acara}") except ValueError as e: print(f"Error: {e}")
Output:
Acara tanam pohon: 2025-06-01 00:00:00
Penjelasan Output: Outputnya adalah "Acara tanam pohon: 2025-06-01 00:00:00" karena string "01-06-2025" berhasil diubah jadi objek datetime. Tanggal acara (1 Juni 2025) lebih besar dari tanggal sekarang (16 Mei 2025), jadi ga ada error yang dilempar.
Penjelasan Query: Bayangin kamu punya catatan tanggal acara tanam pohon, tapi kamu mau pastiin tanggalnya belum lewat, dan kalo formatnya salah, kamu kasih tau, kayak nyanyi lagu sambil cek apakah nadanya pas. Di Python, kita bisa pake try-except untuk nangani error saat olah tanggal. Aku mulai dengan impor from datetime import datetime. Aku bikin string tanggal "01-06-2025", trus dalam blok try, aku ubah jadi objek datetime pake datetime.strptime(). Aku cek kalo tanggal acara lebih awal dari sekarang pake if tanggal_acara < datetime.now(), dan kalo iya, aku lempar error pake raise ValueError. Kalo format salah atau tanggal udah lewat, error ditangkap oleh except ValueError. Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara olah waktu dengan error handling, kayak detektif yang cek jadwal acara. Coba di VSCode, gampang kok! 🌳
from datetime import datetime # Simulasi file jadwal.txt berisi: # Acara tanam pohon: 01-06-2025 09:00 pesan = "Acara tanam pohon: 01-06-2025 09:00" tanggal_str = pesan.split(": ")[1] tanggal_acara = datetime.strptime(tanggal_str, "%d-%m-%Y %H:%M") print(f"Jadwal dari file: {tanggal_acara}")
Output:
Jadwal dari file: 2025-06-01 09:00:00
Penjelasan Output: Outputnya adalah "Jadwal dari file: 2025-06-01 09:00:00" karena kita ambil bagian tanggal dari string simulasi file ("01-06-2025 09:00") pake split(": "), trus ubah jadi objek datetime pake strptime().
Penjelasan Query: Bayangin kamu punya file berisi jadwal acara tanam pohon, dan kamu mau baca tanggalnya dari file itu, kayak nyanyi lagu dari lirik yang ada di buku. Di Python, kita bisa simulasi baca file dan ubah string tanggal jadi objek datetime. Aku mulai dengan impor from datetime import datetime. Aku simulasi isi file dengan string pesan. Aku pisah string pake split(": ") untuk ambil bagian tanggal ("01-06-2025 09:00"), trus ubah jadi objek datetime pake datetime.strptime(tanggal_str, "%d-%m-%Y %H:%M"). Aku simpen di tanggal_acara dan cetak. Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara olah waktu dari file, kayak detektif yang baca jadwal dari catatan. Coba di VSCode, gampang kok! 🌳
from datetime import datetime, timedelta class PenjadwalLingkungan: def __init__(self, tanggal_mulai): self.tanggal_mulai = tanggal_mulai def buat_jadwal(self, hari): jadwal = {} for i in range(hari): tanggal = self.tanggal_mulai + timedelta(days=i) jadwal[f"Hari ke-{i+1}"] = tanggal.strftime("%d-%m-%Y") return jadwal penjadwal = PenjadwalLingkungan(datetime(2025, 5, 16)) jadwal = penjadwal.buat_jadwal(3) print(f"Jadwal tanam pohon: {jadwal}")
Output:
Jadwal tanam pohon: {'Hari ke-1': '16-05-2025', 'Hari ke-2': '17-05-2025', 'Hari ke-3': '18-05-2025'}
Penjelasan Output: Outputnya sama seperti contoh sebelumnya: dictionary dengan tiga hari jadwal. Kelas PenjadwalLingkungan buat jadwal mulai dari 16 Mei 2025 selama tiga hari.
Penjelasan Query: Bayangin kamu punya robot penjadwal acara lingkungan yang bisa buat jadwal tanam pohon selama beberapa hari, kayak nyanyi lagu sambil pakai alat canggih untuk catat jadwal. Di Python, kita bisa pake OOP (Chapter 13-14) untuk bikin kelas penjadwal. Aku bikin kelas PenjadwalLingkungan dengan atribut tanggal_mulai. Metode buat_jadwal(hari) loop selama jumlah hari yang diminta, tambah hari pake timedelta, format tanggal, dan simpen dalam dictionary. Aku bikin objek penjadwal dengan tanggal mulai 16 Mei 2025, trus panggil metode buat_jadwal(3) untuk tiga hari. Aku pilih tema tanam pohon karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara buat jadwal pake OOP, kayak robot yang catat jadwal acara. Coba di VSCode, gampang kok! 🌳
# Simulasi file lingkungan.py from datetime import datetime, timedelta import re class PenjadwalLingkungan: def __init__(self, data): self.data = data def olah_jadwal(self): try: pola = r"\d{2}-\d{2}-\d{4} \d{2}:\d{2}" jadwal = {} total_hari = 0 i = 0 while i < len(self.data): kunci, pesan = list(self.data.items())[i] hasil = re.search(pola, pesan) if hasil: tanggal_str = hasil.group() tanggal = datetime.strptime(tanggal_str, "%d-%m-%Y %H:%M") if tanggal < datetime.now(): print(f"Di {kunci}, acara sudah lewat!") else: selisih = (tanggal - datetime.now()).days print(f"Di {kunci}, acara akan berlangsung {selisih} hari lagi!") total_hari += selisih jadwal[kunci] = tanggal.strftime("%d-%m-%Y %H:%M") else: print(f"Di {kunci}, format tanggal salah!") i = i + 1 return jadwal, total_hari except: print("Terjadi error saat mengolah jadwal!") return {}, 0 # File utama # from lingkungan import PenjadwalLingkungan data = {} for i in range(3): try: pesan = input(f"Masukkan jadwal lingkungan ke-{i+1} (format: Acara: dd-mm-yyyy hh:mm): ") data[f"jadwal{i+1}"] = pesan except: print("Error saat input data, coba lagi!") i = i - 1 penjadwal = PenjadwalLingkungan(data) jadwal, total_hari = penjadwal.olah_jadwal() print(f"Jadwal: {jadwal}") print(f"Total hari menuju semua acara: {total_hari}")
Output (misalnya user masukkan "Acara: 01-06-2025 09:00", "Acara: 15-05-2025 10:00", "Acara: 20-05-2025 08:00"):
Masukkan jadwal lingkungan ke-1 (format: Acara: dd-mm-yyyy hh:mm): Acara: 01-06-2025 09:00 Masukkan jadwal lingkungan ke-2 (format: Acara: dd-mm-yyyy hh:mm): Acara: 15-05-2025 10:00 Masukkan jadwal lingkungan ke-3 (format: Acara: dd-mm-yyyy hh:mm): Acara: 20-05-2025 08:00 Di jadwal1, acara akan berlangsung 16 hari lagi! Di jadwal2, acara sudah lewat! Di jadwal3, acara akan berlangsung 4 hari lagi! Jadwal: {'jadwal1': '01-06-2025 09:00', 'jadwal2': '15-05-2025 10:00', 'jadwal3': '20-05-2025 08:00'} Total hari menuju semua acara: 20
Penjelasan Output: Outputnya dimulai dengan prompt, user masukin tiga jadwal. Metode olah_jadwal() cari tanggal pake regex: jadwal1 (1 Juni 2025, 16 hari lagi), jadwal2 (15 Mei 2025, sudah lewat), jadwal3 (20 Mei 2025, 4 hari lagi). Total hari adalah 16 + 4 = 20 (jadwal2 ga dihitung karena sudah lewat).
Penjelasan Query: Bayangin kamu jadi robot penjadwal super canggih yang minta orang kasih tau jadwal acara lingkungan, trus kamu cek tanggalnya pake regex, bandingin dengan waktu sekarang, hitung selisih hari, simpen dalam folder, dan jumlahkan hari yang belum lewat, kayak nyanyi lagu sambil pakai alat super. Di Python, kita gabungin semua konsep: input(), for loop, while loop, dictionary, if-else, try-except, OOP, regex, dan datetime. Aku bikin kelas PenjadwalLingkungan dengan atribut data (dictionary). Metode olah_jadwal() loop pake while, cari tanggal pake regex, ubah jadi datetime, cek apakah udah lewat, hitung selisih, simpen dalam dictionary, dan jumlahkan hari. Aku pilih tema lingkungan karena Arry Hutomo peduli lingkungan, dan ini sesuai sama isu lingkungan. Struktur ini bikin kamu paham cara olah waktu kompleks, kayak robot penjadwal! Coba di VSCode, bakal bangga sama hasilnya! 🌳