From 1c6b0618597613ba6bfc34311e0f744136efeb9a Mon Sep 17 00:00:00 2001 From: 202410715241 NABILAH PUTRI AZZAHRAH <202410715241@mhs.ubharajaya.ac.id> Date: Thu, 8 May 2025 11:46:05 +0700 Subject: [PATCH] Add Tanggal Yang Tak Pasti --- Tanggal Yang Tak Pasti | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Tanggal Yang Tak Pasti diff --git a/Tanggal Yang Tak Pasti b/Tanggal Yang Tak Pasti new file mode 100644 index 0000000..2730b2d --- /dev/null +++ b/Tanggal Yang Tak Pasti @@ -0,0 +1,57 @@ +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