• Home
  • /
  • PHP
  • /
  • Penggunaan Function ereg() di PHP untuk Pattern Matching
PHP

Penggunaan Function ereg() di PHP untuk Pattern Matching

 

Istilah pattern matching (pencocokan pola) biasa digunakan dalam aplikasi berwujud form. Sebagai contoh misalnya untuk email. Alamat email memiliki pola xxxx@xxxx.xxx. Nah… untuk mencegah user dalam mengisikan email yang sembarangan (tidak sesuai pola) maka perlulah adanya suatu mekanisme pencocokan pola ini. Adapun contoh lain adalah nomor telepon dan kode wilayah atau kode pos. Kesemuanya itu pastilah memiliki pola-pola tertentu.

Pada artikel ini akan dibahas tentang penggunaan function ereg() di PHP untuk pattern matching ini.

Ok kita mulai saja pembahasannya.

Function ereg() dalam PHP memiliki sintaks

ereg("pattern", variabel)

Function tersebut akan mencocokkan value dari variabel dengan pattern yang diberikan. Apabila cocok, maka function akan mengembalikan nilai TRUE sedangkan bila tidak cocok hasilnya FALSE.

Sebelum kita menginjak ke contoh-contoh penggunaannya, terlebih dahulu akan kita bahas mengenai karakter khusus yang digunakan untuk mengatur pattern pada function ereg() ini.

Simbol Karakter  : ^
Makna            : penanda awal dari baris
Contoh           : ^k
Pola yang cocok  : kucing
Pola tdk cocok   : ekor kucing
Simbol Karakter  : $
Makna            : penanda akhir dari baris
Contoh           : n$
Pola yang cocok  : zaman
Pola tdk cocok   : amanah
Simbol Karakter  : .
Makna            : sebarang karakter tunggal
Contoh           : ..
Pola yang cocok  : ad
Pola tdk cocok   : adj
Simbol Karakter  : ?
Makna            : karakter di sebelah kirinya sifatnya 
                   optional
Contoh           : rosih?an
Pola yang cocok  : rosihan, rosian
Pola tdk cocok   : rasihan, kasihan, rosiman
Simbol Karakter  : ( )
Makna            : karakter yang diapit tanda kurung ini harus cocok
Contoh           : m(ea)n
Pola yang cocok  : mean
Pola tdk cocok   : men, man
Simbol Karakter  : [ ]
Makna            : karakter yang diapit tanda kurung digunakan 
                   salah satu
Contoh           : m[ea]n
Pola yang cocok  : men, man
Pola tdk cocok   : mean, mn
Simbol Karakter  : -
Makna            : menyatakan semua karakter antara dua karakter
Contoh           : m[a-c]n
Pola yang cocok  : man, mbn, mcn
Pola tdk cocok   : mdn, maan
Simbol Karakter  : +
Makna            : di sebelah kiri simbol boleh terdiri dari 1 atau 
                   lebih karakter
Contoh           : m[a-c]+n
Pola yang cocok  : man, mbbbbbn, mcaabbcn
Pola tdk cocok   : mdn, mn
Simbol Karakter  : *
Makna            : di sebelah kiri simbol boleh terdiri dari 0 atau 
                   lebih karakter
Contoh           : m[a-c]*n
Pola yang cocok  : man, mbbbbbbn, mcaabbacn, mn
Pola tdk cocok   : mdn, meen
Simbol Karakter  : {  ,  }
Makna            : menyatakan perulangan karakter
Contoh           : m{2, 5}n
Pola yang cocok  : maan, maaaan, maaaaan
Pola tdk cocok   : man, maaaaaaaaaan
Simbol Karakter  : {  |  |  }
Makna            : menyatakan alternatif string
Contoh           : m{aku|dia|saya}n
Pola yang cocok  : makun, mdian, msayan
Pola tdk cocok   : man, mkamun
Simbol Karakter  : /
Makna            : menyatakan karakter literal di sebelah kanan 
                   simbol
Contoh           : m/-n
Pola yang cocok  : m-n
Pola tdk cocok   : mn, man

Nah dari penjelasan beberapa simbol di atas untuk menyatakan pattern yang akan kita gunakan, selanjutnya kita bisa mulai membuat contohnya.

Dalam contoh pertama ini, kita akan mengecek validitas email yang dimasukkan user via form.

<?php
$email = $_POST['email']; // membaca value email dari form

$pattern = "^.+@.+\.com$";
if (ereg($pattern, $email))
{
	echo "Email valid";
}
else echo "Email tidak valid";

?>

Contoh script di atas akan memvalidasi pola email. Dalam hal ini yang dianggap valid adalah email dengan format xxx@xxx.com

Penjelasan Pattern:

^.+ maksudnya adalah alamat email diawali dengan sebarang karakter dengan jumlah karakter 1 atau lebih.
@ maksudnya adalah dalam alamat email harus memuat simbol @. Setelah tanda @ berikutnya boleh diisi dengan sebarang karakter dengan panjang karakter 1 atau lebih (Lihat simbol .+). Berikutnya ada simbol \.com$. Simbol ini bermakna bahwa email (yang dianggap valid) harus berakhiran .com. Mengapa tanda titik di depan ‘com’ ini harus diawali dengan tanda slash (\)?. Seandainya tidak diberi tanda slash, maka titik ini akan dianggap simbol untuk pattern yang bermakna sebarang karakter tunggal (lihat penjelasan di atas).

Contoh lain penggunaan pattern matching, misalkan untuk validasi nomor telepon. Misalkan kita menganggap nomor telepon yang valid di Indonesia adalah berformat 0xxx-yyyyyyyy dengan aturan bahwa untuk ‘xxx’ (kode area) harus berupa angka 1-9, serta bisa dinyatakan dalam 2 sampai 3 digit. Sedangkan ‘yyyyyyyy’ adalah berupa angka dengan digit pertama harus angka 1-9 dan digit berikutnya berisi angka 0-9. Dalam hal ini total jumlah digit setelah kode area ini bisa 6 s/d 8.

Nah, bagaimana script pattern untuk mengecek validitas nomor telepon yang dimasukkan user via form? Ini dia scriptnya

<?php
$telp = $_POST['telp']; // membaca value no telp dari form

$pattern = "^0[1-9]{2,3}\-[1-9][0-9]{5, 7}";
if (ereg($pattern, $telp))
{
	echo "Nomor telepon valid";
}
else echo "Nomor telepon tidak valid";

?>

Semoga tutorial di atas membantu Anda. Jangan lupa untuk selalu mengunjungi blog ini, karena selalu ada tips dan trik programming yang OK punya.

 

Bagikan artikel ini jika bermanfaat !

Assalaamu'alaikum.. aktivitas keseharian saya mengajar di Universitas Sebelas Maret, dengan matakuliah pemrograman dan basis data. Adapun bidang penelitian saya tentang computational thinking dan computer-aided learning.

Leave a Reply