Cara Membuat Fitur Pencarian (Search) Data di Laravel

Fitur pencarian hampir selalu dibutuhkan โ€” untuk mencari artikel, produk, atau user. Di Laravel, membuatnya cukup sederhana dengan Eloquent. Artikel ini memandu Anda membuat pencar...

Cara Membuat Fitur Pencarian (Search) Data di Laravel

Fitur pencarian hampir selalu dibutuhkan โ€” untuk mencari artikel, produk, atau user. Di Laravel, membuatnya cukup sederhana dengan Eloquent. Artikel ini memandu Anda membuat pencarian yang rapi, termasuk di beberapa kolom sekaligus.

Langkah 1: Form Pencarian

Buat form sederhana dengan method GET agar kata kunci muncul di URL (bagus untuk berbagi & SEO):

<form action="/artikel" method="GET">
    <input type="text" name="q" value="{{ request('q') }}" placeholder="Cari...">
    <button type="submit">Cari</button>
</form>

Langkah 2: Query Pencarian di Controller

public function index(Request $request)
{
    $query = Post::query();

    if ($request->filled('q')) {
        $keyword = $request->q;
        $query->where('title', 'like', "%{$keyword}%")
              ->orWhere('content', 'like', "%{$keyword}%");
    }

    $posts = $query->latest()->paginate(10);

    return view('posts.index', compact('posts'));
}

Langkah 3: Pencarian di Banyak Kolom dengan Aman

Saat menggabungkan pencarian dengan filter lain, bungkus kondisi orWhere dalam grup agar logikanya tidak bocor:

$query->where(function ($q) use ($keyword) {
    $q->where('title', 'like', "%{$keyword}%")
      ->orWhere('content', 'like', "%{$keyword}%");
});

Tanpa pembungkus function, kondisi orWhere bisa membatalkan filter status/kategori Anda.

Langkah 4: Pertahankan Kata Kunci Saat Pagination

Agar kata kunci tidak hilang saat pindah halaman, tambahkan query string ke link pagination:

{{ $posts->withQueryString()->links() }}

Langkah 5: Menampilkan Hasil

@forelse ($posts as $post)
    <h3>{{ $post->title }}</h3>
@empty
    <p>Tidak ada hasil untuk "{{ request('q') }}".</p>
@endforelse

Tips Performa

  • Untuk tabel besar, LIKE %kata% bisa lambat karena tidak memakai index. Pertimbangkan fulltext index MySQL untuk pencarian teks.
  • Untuk pencarian skala besar, gunakan Laravel Scout dengan driver seperti Meilisearch atau Algolia.

Kesimpulan

Membuat fitur pencarian di Laravel cukup dengan where('kolom', 'like', "%kata%"), dibungkus grup kondisi bila digabung filter lain, dan withQueryString() agar kata kunci bertahan saat pagination. Untuk data yang sangat besar, tingkatkan ke fulltext index atau Laravel Scout. Untuk memahami query relasi, lihat panduan Eloquent Relationship kami.

fitur pencarian laravel search laravel cara membuat search laravel laravel where like pencarian data laravel
Bagikan artikel
Kembali

Komentar (0)

Punya pertanyaan atau tambahan? Tulis di bawah โ€” tak perlu login.

Membalas komentarโ€ฆ batal

Belum ada komentar. Jadilah yang pertama!

๐Ÿš€ Partner Recommendation

Butuh Source Code & Aplikasi Premium?

Download aplikasi Laravel, POS, Sekolah, Klinik, ERP, dan source code siap pakai di GudangCode.

GudangCode
  • โœ” Source Code Premium
  • โœ” Sistem Siap Pakai
  • โœ” Lifetime Update
  • โœ” Membership Lifetime
  • โœ” Update Aplikasi Harian
Daftar Membership โ†’