5

Programming : Membuat Validasi Email Dengan Regex Dan PHP

Dalam membangun sebuah aplikasi ada kalanya aplikasi tersebut membutuhkan sebuah form yang berfungsi untuk melakukan input data, registrasi ataupun login.

Untuk memastikan data yang dikirim melalui form itu benar atau tidak, tentunya kita harus melakukan filter atau validasi terhadap data-data tersebut. Validasi itu mungkin bisa saja seperti “form input tidak boleh kosong” atau “data harus diisi”.

Mungkin sangat mudah untuk melakukan validasi bahwa data yang dimasukan melalui form tidak boleh kosong, tapi bagaimana jika data yang dimasukan melalui form harus berformat email?

Disini kita bisa menggunakan regex  untuk memvalidasi format data yang dimasukan tersebut telah sesuai dengan format email atau belum. Jika belum mengetahui apa itu regex, ada baiknya terlebih dahulu belajar dasar- dasar regex.

Yang pertama harus kita pikirkan untuk membuat validasi format email adalah mengetahui pola dari email itu sendiri. Sebagai contoh, sebuah email pastinya mengangun karakter @ , titik(.)com. seperti ini : me@gungunst.com. Dengan memperhatikan dan memahami format email tersebut, seharunya kita dapat dengan mudah untuk membuat validasi dengan regex.

Maka validasi dengan menggunakan regex secara sederhananya adalah sebagai berikut

[a-z0-9]@[a-z0-9].[a-z0-9]

Regex diatas menyatakan bahwa pola string atau teks harus berupa huruf atau angka kemudian karakter @ kemudian karakter bebas, huruf atau angka kemudian karakter titik(.)  lalu karakter bebas, huruf atau angka.  Jika diurutkan, maka pola yang sesuai dengan regex diatas adalah seperti ini :  me@gungunst.com . 

Jika kita coba implemntasikan dengan fungsi PHP maka seperti ini contohnya :

$email = "me@gungunst.com";
if(preg_match('/[a-z0-9]@[a-z0-9].[a-z0-9]/i', $email))
{
  echo "sama";
}else{
  echo "tidak sama";
}

output:

sama

Coba kita isi string $email dengan format sembarang misalnya seperti ini :

$email = "megungunst.com";
if(preg_match('/[a-z0-9]@[a-z0-9].[a-z0-9]/i', $email))
{
  echo "sama";
}else{
  echo "tidak sama";
}

Output :

tidak sama

mengapa output di kasus kedua adalah “no” ? itu karena ada pola yang hilang dari string email. Pola yang hilang itu adalah tidak adanya karakter @.

Selain contoh diatas kita juga bisa menentukan validasi yang lebih spesifik lagi untuk format email misalnya dengan mengharuskan akhiran domain hanya .com saja.  Maka regex nya akan seperti ini :

$email = "me@gungunst.com";
if(preg_match('/[a-z0-9]@[a-z0-9].com/i', $email))
{
  echo "sama";
}else{
  echo "tidak sama";
}

Output :

sama


Bagaimana jika kita hanya menginginkan pola email dari akun gmail saja?  maka regex nya akan seperti ini :

$email = "me@gungunst.com";
if(preg_match('/[a-z0-9]@gmail.com/i', $email))
{
  echo "sama";
}else{
  echo "tidak sama";
}

Output :

sama

Bagaimana? mudahkan belajar regex? jika ada pertanyaan jangan ragu untuk menanyakannya disini.



Rekomendasikan Artikel Ini ?

Gungun Septian

Bukan Ustad, bukan Politisi, bukan Artis. Cuma Programmer yang hobi nulis.

5 Comments

  1. Saya jg lg belajar nih soal validate email form. Kalau untuk buath array’nya bisa gak untuk akhiran pada validasi ?
    Example : .com .org .net
    Thanks..

    • Bisa gan :). Kalau untuk validasi URL sebenarnya di PHP bisa dengan menggunakan fungsi filter_var($url, FILTER_VALIDATE_URL)

Leave a Reply

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