Membangun Fitur Pencarian Instan (Live Search) Menggunakan PHP, MySQL, dan jQuery

Membangun Fitur Pencarian Instan (Live Search) Menggunakan PHP, MySQL, dan jQuery

Membangun Fitur Pencarian Instan (Live Search) Menggunakan PHP, MySQL, dan jQuery
12 min read

Pencarian instan (live search) adalah fitur yang memungkinkan pengguna untuk melihat hasil pencarian langsung saat mereka mengetikkan kata kunci, tanpa harus menekan tombol submit atau me-reload halaman. Fitur ini memberikan pengalaman pengguna yang lebih baik dan terlihat lebih interaktif. Dalam tutorial ini, kita akan membuat fitur pencarian instan menggunakan PHP, MySQL, dan jQuery.

Langkah 1: Persiapan Database

Pertama, kita memerlukan database MySQL untuk menyimpan data yang akan dicari. Buat database dan tabel berikut:

CREATE DATABASE tutorial_live_search;
USE tutorial_live_search;

CREATE TABLE produk (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama_produk VARCHAR(255) NOT NULL,
    deskripsi TEXT
);

Kemudian, tambahkan beberapa data sampel:

INSERT INTO produk (nama_produk, deskripsi) VALUES
('Laptop Lenovo', 'Laptop dengan prosesor i5 dan RAM 8GB.'),
('Smartphone Samsung', 'Smartphone dengan layar 6.5 inci dan kapasitas 128GB.'),
('Headphone Sony', 'Headphone dengan kualitas suara tinggi dan fitur noise-canceling.'),
('Tablet Apple', 'Tablet dengan layar retina dan penyimpanan 64GB.'),
('Smartwatch Huawei', 'Jam pintar dengan fitur pelacak kebugaran dan notifikasi.');

Langkah 2: Membuat Tampilan Pencarian di HTML

Selanjutnya, kita buat form pencarian sederhana menggunakan HTML. Form ini akan berisi input untuk mengetik kata kunci yang ingin dicari.

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Live Search dengan PHP, MySQL, dan jQuery</title>
    <style>
        /* Styling sederhana untuk hasil pencarian */
        .hasil-pencarian {
            margin-top: 10px;
            border: 1px solid #ddd;
            padding: 10px;
            background-color: #f9f9f9;
        }
        .hasil-item {
            padding: 5px 0;
            border-bottom: 1px solid #ccc;
        }
    </style>
</head>
<body>

<h1>Pencarian Produk</h1>
<input type="text" id="kataKunci" placeholder="Cari produk...">
<div id="hasilPencarian" class="hasil-pencarian"></div>

<!-- jQuery Library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="script.js"></script>
</body>
</html>

Pada contoh di atas, kita memiliki elemen input untuk mengetik kata kunci dan sebuah <div> dengan id hasilPencarian yang akan menampilkan hasil pencarian.

Langkah 3: Membuat File PHP untuk Proses Pencarian

Kita buat file pencarian.php yang akan menangani permintaan pencarian dari JavaScript dan mengembalikan hasilnya dalam format HTML.

<?php
// Koneksi ke database
$conn = new mysqli("localhost", "root", "", "tutorial_live_search");

if ($conn->connect_error) {
    die("Koneksi gagal: " . $conn->connect_error);
}

$kataKunci = $_POST['kataKunci'];
$query = "SELECT * FROM produk WHERE nama_produk LIKE '%$kataKunci%' OR deskripsi LIKE '%$kataKunci%'";
$result = $conn->query($query);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo "<div class='hasil-item'><strong>" . $row['nama_produk'] . "</strong><br>" . $row['deskripsi'] . "</div>";
    }
} else {
    echo "<div class='hasil-item'>Tidak ada hasil ditemukan.</div>";
}

$conn->close();
?>

Pada file ini:

  • Kita terima kata kunci dari input yang dikirim oleh JavaScript.
  • Kita gunakan query LIKE untuk mencocokkan kata kunci dengan data di kolom nama_produk atau deskripsi.
  • Jika hasil ditemukan, kita tampilkan dalam format HTML.

Langkah 4: Menambahkan Fungsi jQuery untuk Mengirim Data ke PHP

Kita tambahkan file JavaScript script.js untuk menangani input dari pengguna dan mengirim permintaan pencarian ke server menggunakan AJAX.

$(document).ready(function(){
    $("#kataKunci").on("keyup", function() {
        let kataKunci = $(this).val();
        if (kataKunci.length > 2) { // Minimal 3 karakter
            $.ajax({
                url: "pencarian.php",
                method: "POST",
                data: { kataKunci: kataKunci },
                success: function(data) {
                    $("#hasilPencarian").html(data);
                }
            });
        } else {
            $("#hasilPencarian").html("");
        }
    });
});

Pada script.js ini:

  • Kita menggunakan event keyup pada input #kataKunci untuk menangkap setiap perubahan saat pengguna mengetik.
  • Jika panjang kata kunci lebih dari dua karakter, kita kirimkan data ke pencarian.php menggunakan AJAX dengan metode POST.
  • Jika ada hasil, kita tampilkan di dalam <div id="hasilPencarian">.

Langkah 5: Menjalankan dan Menguji Aplikasi

Sekarang, coba akses file HTML dan ketik kata kunci dalam kolom pencarian. Hasil pencarian akan muncul di bawah input secara instan, tanpa perlu me-reload halaman.

Kesimpulan

Dengan menggabungkan PHP, MySQL, dan jQuery, kita bisa membuat fitur pencarian instan yang ringan dan user-friendly. Teknik ini juga bisa diterapkan pada proyek lain seperti pencarian produk, artikel, atau data pengguna di berbagai aplikasi berbasis web.

Recommended for you