Saturday, April 2, 2011



Regular Expression (regex) - Salah satu teknik optimasi yang ampuh untuk beberapa kasus adalah menggunakan regular expression (regex). Memang tidak semua bahasa pemrograman memiliki built-in regular expression, bahasa pemrograman seperti Java, Perl, PHP, memiliki regular expression yang powerful.

Apa kegunaan regex ? Kegunaannya adalah untuk membentuk suatu pola/pattern dalam suatu rangkaian string. 

Salah satu contoh penggunaan regex yang umum adalah untuk melakukan validasi alamat e-mail.
Regular Expression (regex)
Contoh Regular Expression
Apakah kita menyadari bahwa untuk melakukan validasi email, cukup banyak kondisi yang harus dipenuhi? Seperti kita ketahui, alamat e-mail kurang lebih memiliki format nama@domain.ext,  dan tidak memiliki kondisi-kondisi dasar seperti tidak mengandung spasi, harus mengandung sebuah karakter “@”, ataupun harus terdapat karakter “.” setelah domain.

Masih ada beberapa syarat yang mungkin yang luput dari perhatian kita, misalnya ext atau akhiran domain harus terdiri dari 2 hingga 6 karakter (test.cc adalah valid, sementara test. c adalah invalid), juga ext dapat mengandung karakter “.”, seperti misalnya co.id.

Berbagai kondisi tersebut pasti dapat kita tuliskan ke dalam kode program, tetapi akan cukup memerlukan logika dan penulisan yang panjang. Kita tidak akan menghabiskan tempat dengan menuliskannya di sini, tetapi kita akan menuliskan kode program untuk validasi e-mail dengan menggunakan regex, sebagai berikut (menggunakan bahasa Visual Basic 6):

Dim regEx As RegExp
Dim Match As MatchCollection
Dim sEmail As String
Set regEx = New RegExp
sEmail = “joko.nurjadi@pcmedia.co.id”
regEx.Pattern = “^[\_]*([a-z0-9]+(\.|\_*)?)+@([a-z][a-z0-9\-
]+(\.|\-*\.))+[a-z]{2,6}$”
regEx.IgnoreCase = True
Set Match = regEx.Execute(sEmail)
If Match.Count = 1 Then
MsgBox “Email Valid”
Else
MsgBox “Email Tidak Valid”
End If

Ganti variabel sEmail dengan string apa saja sebagai e-mail yang ingin kita periksa. Karena kode program di atas menggunakan Visual Basic 6, maka memerlukan reference Microsoft VBScript Regular Expression (yang digunakan penulis adalah versi 5.5), cara untuk menambahkan reference adalah dengan mengakses menu Project – References - Microsoft VBScript Regular Expression versi tertinggi yang kita miliki.

Baiklah, sekarang kita kembali melakukan hitung-hitungan untung-rugi. Keuntungan yang mencolok menggunakan regex adalah kode program yang singkat, tetapi kerugian yang tidak kalah menyoloknya adalah kompleksitas regex yang jika dilihat sekilas lebih mirip rumus acak-acakan yang tidak manusiawi.

Untuk mengenali dan menulis regex memang bukan pekerjaan ringan, bekal untuk mempelajarinya adalah kesabaran. Untuk menguji kesabaran kita, kita juga dapat mempelajari regex pada salah satu referensi, misalnya di http://en.wikipedia.org/wiki/Regular_expression, tetapi pasti ada hasil dari kesabaran dan ketekunan belajar, karena regex dapat diaplikasikan untuk kasus-kasus pengolahan string yang sederhana hingga kompleks.