diff --git a/Tanggal Yang Tak Pasti/Tanggal Yang Tak Pasti.py b/Tanggal Yang Tak Pasti/Tanggal Yang Tak Pasti.py new file mode 100644 index 0000000..d5fe0db --- /dev/null +++ b/Tanggal Yang Tak Pasti/Tanggal Yang Tak Pasti.py @@ -0,0 +1,56 @@ +def evaluasi_tanggal(tanggal_list): + hasil = [] + nama_bulan = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', + 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'] + + for tanggal in tanggal_list: + tgl_lower = tanggal.lower() + # Jika mengandung nama bulan (tidak ambigu) + if any(bln in tgl_lower for bln in nama_bulan): + hasil.append((tanggal, "YA")) + continue + + # Ganti pemisah agar seragam + parts = tanggal.replace("/", "-").split("-") + try: + parts_int = [int(p) for p in parts] + except ValueError: + hasil.append((tanggal, "TIDAK")) + continue + + if len(parts_int) != 3: + hasil.append((tanggal, "TIDAK")) + continue + + # Identifikasi tahun (4 digit) + tahun = next((x for x in parts_int if x > 999), None) + if not tahun: + hasil.append((tanggal, "TIDAK")) + continue + + lainnya = [x for x in parts_int if x != tahun] + if all(x <= 12 for x in lainnya): + hasil.append((tanggal, "TIDAK")) + else: + hasil.append((tanggal, "YA")) + + return hasil + + +# Contoh data +tanggal_data = [ + "15/02/1998", + "04/05/2010", + "1-3-2004", + "2011-08-22", + "23-mar-2000", + "04/07/2010", + "1965-3-4" +] + +# Jalankan evaluasi +hasil_cek = evaluasi_tanggal(tanggal_data) + +# Cetak hasil +for tgl, status in hasil_cek: + print(f"{tgl}: {status}") \ No newline at end of file