Alhamdulillah, sebulan pegang Python dapet kasus yang sedikit menantang. Jadi begini problemnya, ada list berisi tanggal lahir, tempat lahir dan tahun lahir seseorang dengan karakter campuran latin dan non latin(kanji jepang). Yang lebih menarik/ menantang, formatnya tidak konsisten. Nah, seperti ini lengkapnya:

Tantangannya

Nah, tantangannya begini manteman. Bagaimana caranya mengambil data tanggal dari tiap list tersebut dengan requirement berikut ini.

  1. Jika terdapat format tanggal didalamnya, maka ambil lalu ubah ke format YYYY/MM/DD
  2. Jika hanya terdapat tahun saja, maka tampilkan YYYY/01/01
  3. Jika gagal atau tidak mengandung format yang diinginkan, maka tanpilkan None.

Berikut fungsi yang sudah kita buat. Tentu saja hasil trial & error, comot sana-sini, googling, stackoverflow dll:

Mari kita bahas alurnya.

Pattern Format Tanggal

Ini adalah beberapa format tanggal yang mungkin ditemui dalam teks. Format tersebut menggunakan regular expression untuk mencocokkan pola-pola tertentu yang dapat mewakili tanggal.

Pengecekan dan Konversi Tanggal

  • Jika panjang tanggal adalah 4 (hanya tahun), maka diasumsikan bulan dan hari adalah 1.
  • Jika tidak, mencoba untuk mengonversi tanggal menjadi objek datetime dan kemudian memformatnya ke dalam format yang diinginkan (“%Y/%m/%d”).
  • Menangani exception ValueError jika ada tanggal yang tidak dapat diuraikan.

Pengecekan Hasil Ekstraksi:

Ini akan mengembalikan tanggal pertama yang berhasil diekstrak jika ada, atau None jika tidak ada tanggal yang ditemukan.
Sekarang mari kita uji coba.

Walhamdulillah, outputnya sesuai dengan yang diharapkan.

Nah, begitu saja manteman.

Sekian, terimakasih.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.