; Query Builder : Mengambil Data dari Database - Blog Rudi Kurniawan

Blog Laravel Indonesia

Belajar Laravel dengan Mudah dan Menyenangkan

Query Builder : Mengambil Data  dari Database
12-07-2025 | Admin User Programming 30 x dilihat

Query Builder : Mengambil Data dari Database

Apa Itu Query Builder?

Query Builder adalah fitur Laravel untuk berinteraksi dengan database menggunakan sintaks PHP yang sederhana, tanpa menulis perintah SQL langsung. Berbeda dengan Eloquent ORM yang berbasis model, Query Builder bekerja langsung dengan tabel dan lebih fleksibel untuk query kompleks.

Hubungan dengan Database

Query Builder digunakan untuk mengambil data dari tabel (misalnya, posts) dengan metode seperti get(), first(), atau where(). Ini cocok untuk situasi di mana kamu tidak ingin menggunakan model atau perlu query khusus.

Tutorial Mengambil Data dengan Query Builder

Berikut langkah-langkah mengambil data dari tabel posts (dengan kolom id, title, content).

Persiapan

Pastikan kamu sudah:

  • Menginstal Laravel dan mengatur koneksi database di file .env.
  • Membuat tabel posts dengan migration dan mengisi data (misalnya, via seeder).
  • Menjalankan php artisan migrate untuk membuat tabel.

Langkah-Langkah

  1. Mengambil Semua Data
    Buka routes/web.php dan tambahkan rute untuk mengambil semua data dari tabel posts:

    use Illuminate\Support\Facades\DB;
    
    Route::get('/posts', function () {
        $posts = DB::table('posts')->get();
        return $posts;
    });
    

    Penjelasan:

    • DB::table('posts'): Memilih tabel posts.
    • get(): Mengambil semua baris dari tabel sebagai koleksi.
  2. Mengambil Satu Data
    Tambahkan rute untuk mengambil postingan berdasarkan ID:

    Route::get('/posts/{id}', function ($id) {
        $post = DB::table('posts')->where('id', $id)->first();
        return $post ?: 'Postingan tidak ditemukan';
    });
    

    Penjelasan:

    • where('id', $id): Memfilter data berdasarkan kolom id.
    • first(): Mengambil baris pertama yang cocok.
  3. Mengambil Data dengan Kondisi
    Tambahkan rute untuk mengambil postingan dengan kondisi tertentu (misalnya, title mengandung "Laravel"):

    Route::get('/posts/search', function () {
        $posts = DB::table('posts')
            ->where('title', 'like', '%Laravel%')
            ->get();
        return $posts;
    });
    

    Penjelasan:

    • where('title', 'like', '%Laravel%'): Mencari judul yang mengandung kata "Laravel".
    • get(): Mengembalikan semua baris yang memenuhi kondisi.
  4. Jalankan Server
    Jalankan server Laravel dengan:

    php artisan serve
    

    Uji rute:

    • http://localhost:8000/posts: Menampilkan semua postingan.
    • http://localhost:8000/posts/1: Menampilkan postingan dengan ID 1.
    • http://localhost:8000/posts/search: Menampilkan postingan dengan "Laravel" di judul.

Mengapa Query Builder Penting?

  • Sederhana: Sintaks mudah tanpa perlu model.
  • Fleksibel: Mendukung query kompleks seperti filter, pengurutan, atau penggabungan tabel.
  • Aman: Otomatis mencegah SQL injection.

Contoh Hasil

Jika tabel posts berisi:

[
    {"id": 1, "title": "Belajar Laravel", "content": "Laravel sangat mudah..."},
    {"id": 2, "title": "PHP dan Laravel", "content": "Framework terbaik..."}
]
  • /posts mengembalikan semua data.
  • /posts/1 mengembalikan data dengan ID 1.
  • /posts/search mengembalikan postingan dengan "Laravel" di judul.

Langkah Selanjutnya

  • Pelajari metode lain seperti orderBy(), select(), atau join() untuk query lebih kompleks.
  • Kombinasikan Query Builder dengan view untuk menampilkan data di Blade.
  • Baca dokumentasi Query Builder untuk fitur seperti aggregates atau pagination.

Selamat! Kamu sudah menguasai dasar Query Builder untuk mengambil data di Laravel!

Share this

Facebook Whatsapp