Regular Expression di Python

Post image

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.

Apa Itu Regular Expression?

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?

  • Mencari kata atau pola tertentu dalam teks (search)
  • Memvalidasi format input (misal email, password)
  • Mengganti/menghapus bagian teks tertentu (replace)
  • Memecah string berdasarkan pola (split)

Tanpa RegEx, kamu harus menulis kode panjang untuk mencari atau memvalidasi pola tertentu. Dengan RegEx, cukup satu baris kode!

Modul re di Python

Python 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 Dasar Regular Expression

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.

Contoh Penggunaan RegEx di Python

Mari kita lihat contoh-contoh nyata penggunaan RegEx di Python, lengkap dengan penjelasan.

1. Mencari Pola dalam String

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.

2. Mencari Semua Angka dalam Teks

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.

3. Memvalidasi Email Sederhana

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.

4. Mengganti/Menghapus Pola Tertentu

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).

5. Memecah String Berdasarkan Pola

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.

Studi Kasus: Validasi Nomor HP Indonesia

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.

Best Practice dan Tips RegEx di Python

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.

FAQ Seputar Regular Expression di Python

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.

Kesimpulan

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!

comments powered by Disqus

You May Also Like

Manipulasi File dan I/O di Python

Manipulasi File dan I/O di Python

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.