; Memahami Eloquent ORM (Object-Relational Mapping) - Blog Rudi Kurniawan

Blog Laravel Indonesia

Belajar Laravel dengan Mudah dan Menyenangkan

Memahami Eloquent ORM (Object-Relational Mapping)
11-07-2025 | Admin User Programming 20 x dilihat

Memahami Eloquent ORM (Object-Relational Mapping)

Apa Itu Eloquent ORM?

Eloquent ORM (Object-Relational Mapping) adalah fitur Laravel untuk mengelola data di database menggunakan kode PHP yang sederhana, tanpa menulis perintah SQL. Setiap tabel di database diwakili oleh sebuah model, dan kamu bisa melakukan operasi seperti membuat, membaca, memperbarui, dan menghapus data dengan mudah.

Hubungan dengan Tabel Database

Eloquent menghubungkan model (misalnya, Post) dengan tabel di database (misalnya, posts). Kamu bisa mengakses dan memanipulasi data tabel melalui model, seperti mengambil semua postingan atau menambah postingan baru.

Tutorial Menggunakan Eloquent ORM

Berikut langkah-langkah sederhana untuk menggunakan Eloquent ORM dengan tabel posts (dengan kolom id, title, content, created_at, updated_at).

Persiapan

Pastikan kamu sudah:

  • Menginstal Laravel dan Composer.
  • Mengatur koneksi database di file .env.
  • Membuat tabel posts menggunakan migration dan menjalankan php artisan migrate.
  • Membuat seeder atau factory (opsional) untuk mengisi data awal.

Langkah-Langkah

  1. Buat Model
    Jalankan perintah berikut untuk membuat model Post:

    php artisan make:model Post
    

    File Post.php akan dibuat di folder app/Models. Pastikan model ini terhubung dengan tabel posts (secara default, Laravel mengasumsikan nama tabel adalah versi jamak dari nama model).

  2. Operasi Dasar Eloquent
    Gunakan Eloquent di file routes/web.php untuk mencoba operasi CRUD (Create, Read, Update, Delete). Contoh kode:

    use App\Models\Post;
    use Illuminate\Http\Request;
    
    // Menampilkan semua postingan (Read)
    Route::get('/posts', function () {
        $posts = Post::all(); // Ambil semua data dari tabel posts
        return $posts;
    });
    
    // Menampilkan satu postingan berdasarkan ID (Read)
    Route::get('/posts/{id}', function ($id) {
        $post = Post::find($id); // Ambil postingan dengan ID tertentu
        return $post ?: 'Postingan tidak ditemukan';
    });
    
    // Membuat postingan baru (Create)
    Route::post('/posts', function (Request $request) {
        $post = Post::create([
            'title' => $request->title,
            'content' => $request->content,
        ]);
        return 'Postingan berhasil dibuat: ' . $post->title;
    });
    
    // Memperbarui postingan (Update)
    Route::put('/posts/{id}', function (Request $request, $id) {
        $post = Post::find($id);
        if ($post) {
            $post->update([
                'title' => $request->title,
                'content' => $request->content,
            ]);
            return 'Postingan berhasil diperbarui';
        }
        return 'Postingan tidak ditemukan';
    });
    
    // Menghapus postingan (Delete)
    Route::delete('/posts/{id}', function ($id) {
        $post = Post::find($id);
        if ($post) {
            $post->delete();
            return 'Postingan berhasil dihapus';
        }
        return 'Postingan tidak ditemukan';
    });
    
  3. Uji Operasi

    • Read: Buka http://localhost:8000/posts untuk melihat semua postingan atau http://localhost:8000/posts/1 untuk postingan dengan ID 1.
    • Create: Gunakan alat seperti Postman untuk mengirim permintaan POST ke /posts dengan data title dan content.
    • Update: Kirim permintaan PUT ke /posts/1 dengan data baru.
    • Delete: Kirim permintaan DELETE ke /posts/1 untuk menghapus postingan.

    Untuk menjalankan server, gunakan:

    php artisan serve
    
  4. Cek Hasil di Database
    Gunakan alat seperti phpMyAdmin atau TablePlus untuk memeriksa tabel posts dan melihat perubahan data setelah menjalankan operasi di atas.

Mengapa Eloquent Penting?

  • Sederhana: Kamu tidak perlu menulis perintah SQL, cukup gunakan metode seperti find(), create(), atau delete().
  • Efisien: Eloquent otomatis menangani hubungan tabel dan waktu pembuatan/pembaruan (timestamps).
  • Fleksibel: Mendukung query kompleks, seperti where(), orderBy(), dan relasi antar tabel.

Contoh Hasil

Jika tabel posts sudah diisi data (misalnya, via seeder), maka Post::all() mungkin mengembalikan:

[
    {"id": 1, "title": "Belajar Laravel", "content": "Ini adalah artikel pertama...", "created_at": "2025-07-11 07:00:00", "updated_at": "2025-07-11 07:00:00"},
    {"id": 2, "title": "Eloquent ORM", "content": "Mengelola data dengan mudah...", "created_at": "2025-07-11 07:00:00", "updated_at": "2025-07-11 07:00:00"}
]

Langkah Selanjutnya

  • Pelajari relasi Eloquent (misalnya, one-to-many untuk menghubungkan users dan posts).
  • Coba query lanjutan seperti Post::where('title', 'like', '%Laravel%')->get().
  • Baca dokumentasi Eloquent untuk fitur seperti scopes atau mutators.

Selamat! Kamu sudah menguasai dasar Eloquent ORM dan bisa mengelola data dengan mudah di Laravel!

Share this

Facebook Whatsapp