Pencarian Data dari Tabel MySQL Menggunakan Regular [removed]REGEXP)

27 Sep 2019 15:05 6565 Hits 0 Comments Approved by Plimbi
Selain menggunakan query SELECT..LIKE kita juga bisa menggunakan Regular [removed]REGEXP) untuk pencarian data tabel MySQL

Untuk pencarian data sederhana, MySQL telah menyediakan query SELECT..LIKE yang sudah kita bahas pada artikel sebelumnya. Namun untuk teknik pencarian data yang lebih rumit, MySQL menyediakan query SELECT..REGEXP yang akan kita bahas pada artikel kali ini.

Yang pertama kita siapkan terlebih dahulu tabelnya. Sebagai sampel, disini saya membuat sebuah tabel dengan nama “daftar_guru”.

Sebelumnya kita akan jelaskan dulu pengertian dari regular expression. Mungkin bagi beberapa orang yang pernah mengenal bahasa pemoraman, kata regular expression atau disingkat dengan RexExp atau RE tidak asing lagi.

Dalam bahasa sederhananya, regular expression adalah kumpulan huruf atau karakter yang digunakan untuk pencocokan pola (pattern mtching). Pola disini contohnya pola untuk kata yang diawali dengan huruf a dan diakhiri dengan huruf j, atau yang sedikit rumit seperti pola untuk kata yang diawali dengan huruf a, b, c dengan panjang maksimal 5 huruf, yang mengandung minimal sebuah angka.

Cakupan regular expression ini cukup luas dan tidak terbatas hanya pada MySQL saja. Hampir semua bahasa pemrograman komputer menyediakan fungsi khusus untuk regular expression.

Jika pada query SELECT..LIKE kita menggunakan pola ‘s%’ sebagai kata kunci yang berarti “kata yang diawali dengan huruf s dan memiliki banyak huruf 1 atau lebih dalam regular expression, penulisannya menjadi ‘^S.*’. Memang  terlihat sedikit rumit, tapi mari kita coba pelajari lagi aturan penulisan RegExp:

  1. Tanda titik (.)

Tanda titik dalam RegExp berarti sebuah karakter apa saja.

 

  1. Tanda kurung siku ([..])

Tanda siku ini berarti kumpulan karakter. Misalnya [abc] akan cocok dengan ‘a’, ‘b’, atau ‘c’. Kita juga bisa menggunakan jangkauan (range), contohnya [a-z] akan cocok dengan seluruh huruf, [0-9] akan cocok dengan seluruh angka.

 

  1. Tanda Bintang (*)

Tanda bintang ini akan cocok dengan 0 atau lebih karakter sebelumnya. Misalkan ‘a*’ berarti akan cocok dengan seluruh kata yang mengandung 0 atau lebih a.

 

  1. Tanda Pangkat (^)

Tanda pangkat atau topi ini menandakan berada diawal kata.

 

  1. Tanda dollar ($)

Tanda dollar ini berarti bahwa pola berada diakhir kata.

Contoh penggunaan pola RegExp:

  • ‘ab*’

Pola ini berarti akan cocok dengan seluruh kata yang mengandung a dan diikuti oleh b atau tidak sama sekali. Contohnya: ‘a’, ‘ab’, ‘abbb’, dan juga ‘kebab’.

  • ‘^ab*’

Pola ini sama artinya dengan ‘ab*’ seperti diatas, namun tanda ^ menyatakan bahwa pola ini harus berada diawal kata, sehingga kata ‘kebab’ tidak akan cocok.

  • ‘^s..i$’

Pola ini akan cocok dengan seluruh kata yang diawali dengan s, dan diakhiri dengan i, terdiri dari 4 huruf. Contohnya: susi dan siti.

Pencarian Data Tabel MySQL Menggunakan SELECT..REGEXP

Format dasar querynya adalah sebagai berikut:

SELECT nama_kolom_tampil FROM nama_tabel WHERE nama_kolom_cari REGEXP keyword_reguler_expression.

Nama_kolom tampil adalah nama dari kolom yang akan kita tampilkan, bisa semua kolom dalam tabel, atau hanya kolom tertentu saja.

Nama_tabel adalah nama tabel dimana nama_kolom_tampil berada.

Nama_kolom_cari adalah kolom yang akan kita gunakan untuk pencarian.

Keyword_regular_expression adalah kata kunci dalam bentuk regular expression yang digunakan untuk pencarian.

Sebagai perbandingan dengan query SELECT..LIKE , dengan menggunakan Regular Expression, pencarian nama_dosen yang diawali dengan huruf ‘S’ adalah:

Penggunaan Regular Expression ini akan diperlukan jika kita butuh pencarian yang lebih rumit. Contohnya jika kita ingin mencari nama_guru yang diawali dengan huruf ‘M’ atau ‘S’, dan diakhiri dengan huruf vocal. Maka pencarian ini bisa kita lakukan dengan menggunakan query SELECT..LIKE, namun akan menggunakan operator OR yang banayak, karena untuk huruf vocal berarti nama_guru dapat berakhir dengan huruf a, i, u, e, dan o. Dalam regular expression, pola itu akan berbentuk:

‘^[ms].*[aiueo]$’

RegExp dalam MySQL akan bersifat case insensitif untuk tipe data CHAR, VARCHAR atau TEXT, dan bersifat case sensitif untuk tipe data tabel BINARY, VARBINARY dan BLOB.

Tags

About The Author

Tineu Nursyifa 42
Ordinary
Plimbi adalah tempat menulis untuk semua orang.
Yuk kirim juga tulisanmu sekarang
Submit Artikel