Belajar Database MySQL #6: Mencari dan Menyaring Data (Where, Limit, Like, Order By)

Heru Iryanto
Heru Iryanto
Teacher, Content Creator and Full-Stack Developer

(Penting: Sebelum kita memulai bab ini, mari jalankan perintah SQL ini agar kita memiliki beberapa data tambahan di tabel kita untuk diuji coba):

INSERT INTO tabel_buku (judul_buku, nama_penulis, tahun_terbit) VALUES 
('Belajar PHP Dasar', 'Budi Programmer', 2023),
('Mastering MySQL', 'Budi Programmer', 2024),
('Figma untuk Desainer', 'Siti UIUX', 2021),
('Cara Menjadi Kaya', 'Budi Pengusaha', 2018);

Ketika database Anda sudah memiliki ribuan artikel, memanggil semuanya dengan perintah SELECT * FROM tabel_buku akan membuat browser Anda hang dan meledak! Kita harus mulai menyaring (Filter) dan mencari data yang spesifik.

1️⃣ Menyaring dengan WHERE Tepat

Kita sudah belajar WHERE di materi sebelumnya untuk ID, tapi WHERE juga bisa untuk Teks!

Kasus: Carikan saya HANYA buku yang ditulis oleh “Budi Programmer”.

SELECT * FROM tabel_buku WHERE nama_penulis = 'Budi Programmer';

Hasil: MySQL hanya akan menampilkan 2 buku (Buku PHP dan MySQL), mengabaikan buku milik Siti UIUX.

2️⃣ Fitur Pencarian / Kolom Search (LIKE)

Klausa sama dengan (=) sangat kaku. Anda harus tahu persis ketikan huruf besarnya. Bagaimana cara kerja fitur Pencarian di situs web? Mereka menggunakan logika “Kira-kira mirip”. Di SQL, ini disebut LIKE.

Kasus: Pengunjung mengetik kata "belajar" di kotak pencarian web. Carikan buku yang di judulnya mengandung kata belajar!

SELECT * FROM tabel_buku WHERE judul_buku LIKE '%belajar%';

Analisis Sihir Simbol Persen (%):

  • Tanda % berarti “Teks bebas acak apa saja”.
  • %belajar% artinya: Boleh ada huruf acak di depan, lalu wajib ada kata “belajar”, lalu boleh ada huruf acak lagi di belakangnya. (Ia akan memunculkan buku “Belajar PHP Dasar”).
  • Belajar% artinya: Kata awalnya wajib “Belajar”, setelahnya bebas.
  • %dasar artinya: Akhiran kalimatnya wajib “dasar”.

3️⃣ Mengurutkan Data (ORDER BY)

Secara bawaan (default), SELECT * akan menjejerkan data dari buku tertua/paling atas (Berdasarkan urutan ID 1, 2, 3). Bagaimana jika kita ingin menampilkan “Buku Terbaru” (Tahun rilis paling baru diletakkan di paling atas urutan)?

Kita gunakan ORDER BY ... DESC.

SELECT * FROM tabel_buku ORDER BY tahun_terbit DESC;
  • DESC (Descending): Mengurutkan Menurun (Z-A / Besar ke Kecil / 2024 ke 2018).
  • ASC (Ascending): Mengurutkan Naik (A-Z / Kecil ke Besar / Default).

4️⃣ Membatasi Tampilan Layar (LIMIT)

Situs besar seperti Google tidak menampilkan 1 juta hasil pencariannya sekaligus dalam satu halaman (Kertasnya tidak akan cukup!). Mereka membatasinya misal “10 hasil per halaman” (Pagination).

Dalam MySQL, ini adalah fungsi pamungkas: LIMIT.

Kasus Gabungan: “Tolong carikan buku yang penulisnya ada kata ‘Budi’, urutkan dari tahun termuda, tapi tolong tampilkan HANYA 2 BUKU TERATAS SAJA!”

SELECT * FROM tabel_buku 
WHERE nama_penulis LIKE '%Budi%' 
ORDER BY tahun_terbit DESC 
LIMIT 2;

(Cobalah jalankan! Mesin database sangat jenius dan patuh. Kombinasi 4 baris kode di atas adalah bentuk dasar 80% halaman website berita di internet saat ini).

🗽 Kesimpulan

Jika Anda menyatukan SELECT, WHERE, LIKE, ORDER BY, dan LIMIT, Anda secara sah telah memiliki kemampuan memanipulasi tampilan data (Data Fetching) standar Web Developer.

Lalu bagaimana jika Bos kita tidak ingin melihat daftar bukunya, dia hanya bertanya: “Ada BERAPA TOTAL BUKU milik Siti UIUX di perpus kita? Tolong hitung secara otomatis!” MySQL bisa menjelma menjadi mesin penghitung pintar. Mari kita bedah fungsi matematika SQL di materi Fungsi Agregasi (Count, Sum).