
Bekerja dengan Date dan Time di Python
Bekerja dengan tanggal dan waktu (date & time) adalah salah satu kebutuhan paling umum dalam pemrograman Python, baik untuk mencatat waktu transaksi, membuat laporan, atau sekadar menampilkan waktu saat ini.
Regular Expression (RegEx) adalah salah satu alat paling ampuh dalam pemrograman Python untuk memproses dan memanipulasi teks. Dengan RegEx, kamu bisa mencari, memvalidasi, atau mengganti pola tertentu dalam string dengan sangat efisien. Namun, banyak pemula yang merasa RegEx itu rumit dan sulit dipahami. Artikel ini akan membantumu memahami konsep dasar RegEx di Python, lengkap dengan contoh dan penjelasan yang mudah diikuti.
Regular Expression (RegEx) adalah pola (pattern) yang digunakan untuk mencocokkan (match) urutan karakter dalam string. Bayangkan RegEx seperti “bahasa mini” untuk mencari teks tertentu, misal: email, nomor telepon, kata tertentu, atau pola khusus lainnya.
Kapan RegEx digunakan?
Tanpa RegEx, kamu harus menulis kode panjang untuk mencari atau memvalidasi pola tertentu. Dengan RegEx, cukup satu baris kode!
re
di PythonPython menyediakan modul built-in bernama re
untuk bekerja dengan Regular Expression. Modul ini menyediakan berbagai fungsi utama:
Fungsi | Kegunaan |
---|---|
re.search() |
Mencari pola di string, hasil pertama saja |
re.match() |
Cek apakah string diawali pola tertentu |
re.findall() |
Mengambil semua kemunculan pola di string |
re.sub() |
Mengganti pola tertentu dengan string lain |
re.split() |
Memecah string berdasarkan pola |
Sebelum masuk ke contoh, yuk kenali dulu beberapa simbol dasar RegEx.
Simbol | Arti | Contoh |
---|---|---|
. |
Satu karakter apa saja | a.b cocok acb , a1b |
^ |
Awal string | ^abc cocok abcde |
$ |
Akhir string | abc$ cocok xxabc |
* |
0 atau lebih kemunculan | ab* cocok a , ab , abb |
+ |
1 atau lebih kemunculan | ab+ cocok ab , abb |
? |
0 atau 1 kemunculan | ab? cocok a , ab |
[] |
Salah satu karakter di dalam kurung | [abc] cocok a , b , c |
{n} |
Tepat n kali | a{3} cocok aaa |
| |
Atau (OR) | a|b cocok a atau b |
() |
Grup | (abc)+ cocok abc , abcabc |
Tips:
Simbol RegEx bisa digabung untuk membuat pola yang lebih kompleks.
Mari kita lihat contoh-contoh nyata penggunaan RegEx di Python, lengkap dengan penjelasan.
Misal, kamu ingin mencari apakah ada kata “python” dalam sebuah kalimat.
import re
teks = "Saya sedang belajar python di hobikoding."
hasil = re.search(r"python", teks)
if hasil:
print("Kata 'python' ditemukan!")
else:
print("Kata 'python' tidak ditemukan.")
Kata 'python' ditemukan!
Penjelasan:
re.search()
mencari pola di seluruh string.r"python"
adalah raw string, supaya karakter khusus di RegEx tidak di-escape oleh Python.import re
teks = "Nomor: 0812-3456-7890, umur: 21 tahun."
angka = re.findall(r"\d+", teks)
print(angka)
['0812', '3456', '7890', '21']
Penjelasan:
\d
artinya digit (angka 0-9).+
artinya satu atau lebih digit.re.findall()
mengembalikan semua kemunculan pola.import re
email = "[email protected]"
pola = r"^[\w\.-]+@[\w\.-]+\.\w+$"
if re.match(pola, email):
print("Format email valid.")
else:
print("Format email tidak valid.")
Format email valid.
Penjelasan:
^
dan $
memastikan pola di awal dan akhir string.[\w\.-]+
artinya karakter huruf, angka, titik, atau strip, satu atau lebih.@
adalah karakter @.\.
adalah titik (harus di-escape).\w+
adalah domain.Misal, ingin menghapus semua angka dari string.
import re
teks = "Python123 adalah bahasa 456pemrograman."
hasil = re.sub(r"\d+", "", teks)
print(hasil)
Python adalah bahasa pemrograman.
Penjelasan:
re.sub(pola, pengganti, string)
mengganti semua pola dengan string pengganti (di sini, kosong).Misal, memecah kalimat berdasarkan spasi atau koma.
import re
teks = "apel, jeruk pisang, mangga"
hasil = re.split(r"[ ,]+", teks)
print(hasil)
['apel', 'jeruk', 'pisang', 'mangga']
Penjelasan:
[ ,]+
artinya satu atau lebih spasi atau koma.Misal kamu ingin memvalidasi nomor HP Indonesia yang dimulai dengan 08 dan terdiri dari 10-13 digit.
import re
def validasi_nomor_hp(nomor):
pola = r"^08\d{8,11}$"
return bool(re.match(pola, nomor))
print(validasi_nomor_hp("081234567890"))
print(validasi_nomor_hp("0899"))
True
False
Penjelasan:
^08
harus diawali 08.\d{8,11}
diikuti 8-11 digit angka.$
di akhir string.No | Tips | Penjelasan |
---|---|---|
1 | Selalu gunakan raw string (r"..." ) |
Agar karakter khusus tidak di-escape |
2 | Uji pola RegEx di regex101.com | Untuk eksperimen dan debugging |
3 | Gunakan re.compile() untuk pola yang sering dipakai |
Lebih efisien untuk banyak pencarian |
4 | Jangan buat pola terlalu rumit | Pecah jadi beberapa langkah jika perlu |
5 | Dokumentasikan pola RegEx di kode | Agar mudah dipahami tim lain |
Penjelasan tambahan:
RegEx sangat powerful, tapi juga bisa membingungkan jika polanya terlalu kompleks. Selalu uji dan dokumentasikan pola yang kamu buat.
Q: Apa beda re.search()
dan re.match()
?
A: re.match()
hanya cocokkan di awal string, re.search()
di seluruh string.
Q: Bagaimana cara mencari kata tanpa memperhatikan huruf besar/kecil?
A: Tambahkan flag re.IGNORECASE
:
re.search(r"python", "Saya belajar PYTHON", re.IGNORECASE)
Q: Bagaimana cara mengambil grup tertentu dari hasil pencarian?
A: Gunakan tanda kurung ()
di pola, lalu akses dengan .group(1)
:
hasil = re.search(r"Nama: (\w+)", "Nama: Budi")
print(hasil.group(1)) # Output: Budi
Q: Apakah RegEx bisa digunakan untuk parsing HTML?
A: Tidak disarankan. Gunakan library seperti BeautifulSoup untuk HTML.
Regular Expression adalah alat wajib untuk memproses teks di Python. Dengan memahami dasar-dasarnya, kamu bisa mencari, memvalidasi, dan memanipulasi string dengan sangat efisien. Jangan takut mencoba dan bereksperimen dengan pola RegEx, karena semakin sering digunakan, kamu akan semakin mahir.
Selamat mencoba dan happy coding!
Bekerja dengan tanggal dan waktu (date & time) adalah salah satu kebutuhan paling umum dalam pemrograman Python, baik untuk mencatat waktu transaksi, membuat laporan, atau sekadar menampilkan waktu saat ini.
Module dan package adalah dua konsep penting dalam pemrograman Python yang wajib kamu pahami jika ingin membuat program yang rapi, terstruktur, dan mudah dikembangkan.
Exception Handling adalah salah satu konsep penting dalam pemrograman Python yang wajib kamu kuasai, terutama jika ingin membuat program yang robust dan tidak mudah error.
Manipulasi file dan operasi I/O (Input/Output) adalah salah satu kemampuan penting yang harus dikuasai oleh setiap programmer Python, baik untuk membaca data dari file, menulis hasil ke file, atau memproses data eksternal.