MySQL - 18 - LIKE QUERY (Pencarian String)
Jagat Koding - Pencarian data suda umum digunakan pada kehidupan sehari-hari. Contoh yang nyata adalah yang sering kita lakukan ketika mencari suatu data pada sebuah kumpulan data. Ketika kita memiliki 1000 data mahasiswa, kita bisa menggunakan fitur pencarian untuk mencari suatu data mahasiswa misalnya berdasarkan nama depan atau bahkan kandungan karakter yang ada dalam sebuah nama mahasiswa.
Pada MySQL, kita juga bisa melakukan pencarian terhadap suatu data yang terdapat di sebuah tabel dengan memanfaatkan query 'LIKE'. Berikut adalah struktur penulisan query Like pada DBMS MySQL:
SELECT [kolom] FROM [nama_tabel] WHERE [kolom] LIKE [kata kunci];
Agar kita tidak berangan - angan tentang pemanfaatan query Like, mari kita praktekkan menggunakan database dan juga tabel yang sebelumnya sudah pernah kalian buat.
Persiapan
Sebelum melakukan pencarian dengan menggunakan QUERY LIKE, di sini saya sudah memiliki sebuah database dengan nama db_kampus. Di dalam database db_kampus, saya juga sudah memiliki sebuah tabel dengan nama tb_mahasiswa. Untuk struktur tabel atau spesifikasi dari tabel tb_mahasiswa adalah sebagai berikut:
MariaDB [db_kampus]> DESC tb_mahasiswa;
+----------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+----------------+
| id_mahasiswa | int(11) | NO | PRI | NULL | auto_increment |
| nama_mahasiswa | varchar(50) | YES | | NULL | |
| jenis_kelamin | varchar(10) | YES | | NULL | |
| umur | int(11) | YES | | NULL | |
+----------------+-------------+------+-----+---------+----------------+
4 rows in set (0.06 sec)
tb_mahasiswa tersebut sudah saya isi dengan beberapa data dengan menggunakan query INSERT. Bagi kalian yang belum mengisikan data pada tb_mahasiswa, kalian bisa mempelajari pembahasan Insert Into pada DBMS mysql terlebih dahulu. Untuk data yang berada di tb_mahasiswa adalah sebagai berikut:
MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa;
+--------------+---------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa | jenis_kelamin | umur |
+--------------+---------------------+---------------+------+
| 1 | Alexander Kurniawan | Laki-laki | 22 |
| 2 | Hendrik Setiawan | Laki-laki | 23 |
| 3 | Dita Leni | Perempuan | 21 |
| 4 | Adi Luhung | Laki-laki | 22 |
| 5 | Lusi Arianti | Perempuan | 23 |
| 6 | Bima Santosa | Laki-laki | 22 |
| 7 | Bayu Pamungkas | Laki-laki | 22 |
| 8 | Eka Puspita Sari | Perempuan | 22 |
+--------------+---------------------+---------------+------+
8 rows in set (0.00 sec)
Jika tabel tb_mahasiswa kalian sudah berisi beberapa data, selanjutnya kita akan mencoba melakukan pencarian menggunakan QUERY LIKE. Terdapat beberapa metode pencarian sederhana yang dapat kita lakukan pada mysql, diantaranya adalah mencari data berdasarkan kata awal, kata akhir, dan mengandung kata/kalimat/karakter. Berikut penerapannya:
Pencarian Penuh
Kita bisa melakukan pencarian pada suatu data berdasarkan value atau nilai secara penuh pada sebuah kolom. Sebenarnya pencarian ini konsepnya sama seperti ketika kita menampilkan data dengan menggunakan statement WHERE pada QUERY SELECT. Berikut adalah contoh pemanfaatannya:
MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa WHERE nama_mahasiswa LIKE 'Dita Leni';
+--------------+----------------+---------------+------+
| id_mahasiswa | nama_mahasiswa | jenis_kelamin | umur |
+--------------+----------------+---------------+------+
| 3 | Dita Leni | Perempuan | 21 |
+--------------+----------------+---------------+------+
1 row in set (0.00 sec)
Setelah di eksekusi akan tampil data sesuai dengan kondisi yang diketikkan di dalam statement LIKE. Pada pembahasan tersebut saya ingin menampilkan data di tabel tb_mahasiswa yang mana atribut nama_mahasiswa bernilai 'Dita Leni'. Bagaimana jika saya mengubah nilai di parameter pencarian yang awalnya 'Dita Leni' menjadi 'Dita'? Apakah data tersebut akan tetap ditampilkan?. Berikut percobaannya:
MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa WHERE nama_mahasiswa LIKE 'Dita';
Empty set (0.00 sec)
Ternyata setelah di eksekusi, data tidak ditampilkan. Mengapa demikian? Karena format yang kita ketikkan pada pencarian menggunakan statement LIKE digunakan untuk melakukan pencarian berdasarkan data penuh. Kita tidak bisa melakukan pencarian dengan format ini untuk mencari suatu data berdasarkan sebagian nilai dari suatu atribut. Lalu bagaimana jika kita ingin menampilkan data berdasarkan sebagian nilai dari suatu atribut? Mari kita lanjut ke pembahasan selanjutnya!.
Pencarian dengan Awalan Tertentu
Selain menggunakan data penuh, kita juga bisa melakukan pencarian dengan menggunakan sebagian nilai awal dari suatu atribut. Misalnya didalam sebuah tabel terdapat sebuah data dengan nilai atribut nama_mahasiswa 'Dita Leni'. Kita bisa melakukan pencarian dengan hanya memberikan parameter pada pencarian berupa kata 'Dit'. Berikut adalah format penulisan querynya:
SELECT [kolom] FROM [nama_tabel] WHERE [kolom] LIKE [kata kunci]%;
Perbedaannya adalah kita memberikan karakter prosen (%) diakhir kata yang kita jadikan sebagai parameter atau kata kunci pada pencarian. Prosen tersebut berarti pengabaian karakter atau statement setelah kata kunci yang kita tentukan. Berikut adalah contoh penggunaannya:
MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa WHERE nama_mahasiswa LIKE 'Dit%';
+--------------+----------------+---------------+------+
| id_mahasiswa | nama_mahasiswa | jenis_kelamin | umur |
+--------------+----------------+---------------+------+
| 3 | Dita Leni | Perempuan | 21 |
+--------------+----------------+---------------+------+
1 row in set (0.00 sec)
Meskipun saya hanya memberikan kata kunci 'Dit%', data mahasiswa di tabel tb_mahasiswa dengan nama 'Dita Leni' tetap ditampilkan. Karena simbol % mejadikan query LIKE mengabaikan akhiran dari data yang akan dicari. Coba saya akan mencari data mahasiswa dengan nama yang mengandung awalan huruf 'A'.
MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa WHERE nama_mahasiswa LIKE 'A%';
+--------------+---------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa | jenis_kelamin | umur |
+--------------+---------------------+---------------+------+
| 1 | Alexander Kurniawan | Laki-laki | 22 |
| 4 | Adi Luhung | Laki-laki | 22 |
+--------------+---------------------+---------------+------+
2 rows in set (0.00 sec)
Akan muncul 2 data mahasiswa yang memiliki nama dengan karakter awal huruf 'A'. Akan tetapi format ini hanya berlaku untuk mencari suatu nila yang memiliki awalan tertentu. Bagaimana jika kita ingin menampilkan suatu data dengan menggunakan kata kunci akhiran dari suatu nilai data? Mari kita lanjut ke percobaan selanjutnya!.
Pencarian dengan Akhiran Tertentu
Jika sebelumnya kita sudah berhasil menampilkan data pencarian nama mahasiswa berdasarkan awalan tertentu. Kali ini kita akan mencoba menggunakan akhiran tertentu. Sebenarnya konsepnya sama, hanya saja kita akan memindah simbol '%' didepan kata kunci yang akan kita cari. Berikut adalah formatnya:
SELECT [kolom] FROM [nama_tabel] WHERE [kolom] LIKE %[kata kunci];
Tanda prosen di depan kata kunci akan mengabaikan karakter yang berada didepan simbol %, sehingga ketika di eksekusi akan menampilkan data dengan akhiran sesuai yang kita ketikkan di belakang simbol %. Berikut contohnya:
MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa WHERE nama_mahasiswa LIKE '%Santosa';
+--------------+----------------+---------------+------+
| id_mahasiswa | nama_mahasiswa | jenis_kelamin | umur |
+--------------+----------------+---------------+------+
| 6 | Bima Santosa | Laki-laki | 22 |
+--------------+----------------+---------------+------+
1 row in set (0.00 sec)
Di atas merupakan hasil dari pencarian data mahasiswa yang memiliki nama akhir 'Santosa'. Silahkan kalian eksplorasi dengan menggunakan kata kunci berupa akhiran tertentu sesuai dengan data yang tersedia di tabel kalian.
Bagaimana jika kita ingin mencari data mahasiswa berdasarkan kata kunci yang letaknya berada di tengah nama mahasiswa? Apakah kita bisa melakukan pencarian tersebut?. Langsung saja kita lanjut ke pembahasan selanjutnya!
Kata Kunci di tengah Nilai
Ketika kata kunci berada di tengah - tengah nilai, kita bisa memberikan simbol '%' sebelum dan sesudah kata kunci yang ingin kita cari. Contoh kita memiliki data mahasiswa dengan nama 'Alexander Kurniawan'. Kalian bisa mencari data tersebut dengan menggunakan kata kunci '%ander%'. Berikut adalah contoh penerapannya:
MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa WHERE nama_mahasiswa LIKE '%ander%';
+--------------+---------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa | jenis_kelamin | umur |
+--------------+---------------------+---------------+------+
| 1 | Alexander Kurniawan | Laki-laki | 22 |
+--------------+---------------------+---------------+------+
1 row in set (0.01 sec)
Coba kalian melakukan percobaan dengan mengetikkan query berikut ini dan amati mengapa data tersebut bisa ditampilkan? Dimanakah letak dari kata kunci pada data mahasiswa yang ditampilkan? Silahkan amati agar kalian dapat memahami konsep dasar dari pencarian menggunakan QUERY LIKE pada MySQL!.
MariaDB [db_kampus]> SELECT * FROM tb_mahasiswa WHERE nama_mahasiswa LIKE '%ka%';
+--------------+------------------+---------------+------+
| id_mahasiswa | nama_mahasiswa | jenis_kelamin | umur |
+--------------+------------------+---------------+------+
| 7 | Bayu Pamungkas | Laki-laki | 22 |
| 8 | Eka Puspita Sari | Perempuan | 22 |
+--------------+------------------+---------------+------+
2 rows in set (0.00 sec)
Sekian pembahasan kali ini tentang QUERY LIKE pada MySQL dalam melakukan pencarian dengan beberapa format sesuai kegunaannya masing - masing. Semoga bisa menjadi bahan belajar untuk kita semua. Sampai jumpa di postingan selanjutnya, Terimakasih ...
0 Response to "MySQL - 18 - LIKE QUERY (Pencarian String)"
Post a Comment