laravel CRUD eloquent ORM | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: laravel CRUD eloquent ORM

Saturday, April 11, 2026

laravel CRUD eloquent ORM

📚 Seri Belajar Laravel Lengkap Artikel 14 dari 50

CRUD Lengkap dengan
Eloquent ORM 🚀

Dari migration Laravel sampai operasi Create, Read, Update, Delete — semua dikupas tuntas dengan contoh nyata yang langsung bisa kamu praktikkan.

#Laravel #EloquentORM #CRUD #MigrationLaravel #PHP
⏱️
Estimasi Baca
12 Menit
🎯
Level
Pemula → Menengah
📅
Update
2025
🛠️
Versi Laravel
10 / 11

Pernah nggak kamu nulis query SQL mentah berjam-jam hanya untuk bikin fitur tambah data sederhana, terus sadar ada cara yang jauh lebih elegan? Nah, itulah momen seseorang pertama kali ketemu Eloquent ORM di Laravel — dan hidupnya berubah. Di artikel seri ke-14 ini, kita akan belajar cara melakukan operasi CRUD lengkap, mulai dari menyiapkan struktur database lewat migration Laravel, mendefinisikan Model, hingga menulis kode Create, Read, Update, dan Delete yang bersih dan efisien.

Kalau kamu sudah baca Artikel 13 tentang Query Builder vs Eloquent, kamu udah tahu kenapa Eloquent lebih powerfull. Sekarang saatnya kita tahu bagaimana cara pakainya. Siap? Let's go! 💪

🧩 Formula Konsep

Apa itu Eloquent ORM?

Eloquent ORM (Object Relational Mapper) adalah sistem bawaan Laravel yang memungkinkan kamu berinteraksi dengan database menggunakan objek PHP, bukan query SQL mentah. Setiap tabel database direpresentasikan oleh sebuah Model, dan setiap baris di tabel adalah sebuah instance dari model tersebut.

Tabel `products` → Model Product → Operasi CRUD via PHP Objects

01. Menyiapkan Database dengan Migration Laravel

Bayangkan migration Laravel seperti version control untuk database kamu. Sama seperti Git yang mencatat setiap perubahan kode, migration mencatat setiap perubahan struktur database — mulai dari bikin tabel baru, tambah kolom, sampai hapus index. Hasilnya? Semua anggota tim kamu bisa punya struktur database yang persis sama hanya dengan satu perintah.

🔥
Fakta Menarik

Migration di Laravel pertama kali diperkenalkan di versi 3.0 (2012). Lebih dari 12 tahun kemudian, fitur ini masih jadi salah satu alasan utama developer jatuh cinta sama Laravel! ❤️

Langkah-langkah Membuat Migration

1
Buat file migration baru via Artisan CLI

Jalankan perintah ini di terminal. Laravel otomatis membuat file migration di folder database/migrations/

$ php artisan make:migration create_products_table
2
Definisikan struktur tabel di dalam method up()

Buka file yang baru dibuat, lalu isi kolom-kolom yang dibutuhkan menggunakan Schema Builder:

public function up(): void
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->text('description')->nullable();
        $table->decimal('price', 8, 2);
        $table->integer('stock')->default(0);
        $table->boolean('is_active')->default(true);
        $table->timestamps();
    });
}
3
Jalankan migration ke database

Setelah file migration siap, eksekusi dengan perintah berikut. Tabel products akan langsung terbuat di database kamu!

$ php artisan migrate

📋 Tipe Kolom Populer dalam Migration Laravel

Method Tipe Data SQL Kegunaan
$table->id() BIGINT UNSIGNED Primary key auto-increment
$table->string('col') VARCHAR(255) Teks pendek (nama, email, dll)
$table->text('col') TEXT Teks panjang (deskripsi, artikel)
$table->integer('col') INTEGER Angka bulat (jumlah, stok)
$table->decimal('col', 8, 2) DECIMAL(8,2) Harga, nilai desimal
$table->boolean('col') TINYINT(1) Status true/false
$table->timestamps() DATETIME x2 created_at & updated_at otomatis

02. Membuat Model Eloquent & Konfigurasinya

Kalau migration Laravel itu adalah cetak biru struktur tabel, maka Model Eloquent adalah juru bicara tabel tersebut di dalam kode PHP kamu. Melalui Model inilah semua operasi CRUD akan dilakukan — tanpa perlu nulis SQL satu baris pun.

💡
Tips Pro

Gunakan flag -m saat membuat model untuk sekaligus membuat file migration-nya: php artisan make:model Product -m. Efisiensi level dewa! 🧙

Buat model dengan perintah Artisan, lalu konfigurasikan propertinya:

// app/Models/Product.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class Product extends Model
{
    use HasFactory;

    // Kolom yang boleh diisi massal (Mass Assignment)
    protected $fillable = [
        'name',
        'description',
        'price',
        'stock',
        'is_active',
    ];

    // Cast otomatis tipe data
    protected $casts = [
        'price' => 'decimal:2',
        'is_active' => 'boolean',
    ];
}
⚠️
Perhatian!

Selalu definisikan properti $fillable atau $guarded di Model kamu. Tanpanya, Eloquent akan memblokir operasi mass assignment dan aplikasimu bisa error 500 tiba-tiba. Sudah banyak yang tertipu bug ini! 😅

03. Operasi CRUD Lengkap dengan Eloquent ORM

Inilah bagian yang paling sering dicari developer. Setelah migration Laravel selesai dijalankan dan Model siap, saatnya kita lakukan 4 operasi fundamental: Create, Read, Update, dan Delete.

⚡ Peta CRUD di Eloquent

✍️
CREATE
create() / save()
🔍
READ
all() / find() / where()
✏️
UPDATE
update() / save()
🗑️
DELETE
delete() / destroy()

✍️ CREATE — Tambah Data Baru

Ada dua cara membuat data baru dengan Eloquent. Metode create() lebih ringkas, sementara instansiasi manual memberi kontrol lebih:

// Cara 1: Menggunakan create() — lebih ringkas ✅
$product = Product::create([
    'name' => 'Laptop Gaming RTX 4060',
    'price' => 12500000,
    'stock' => 15,
    'is_active' => true,
]);

// Cara 2: Instansiasi manual — lebih fleksibel
$product = new Product();
$product->name = 'Laptop Gaming RTX 4060';
$product->price = 12500000;
$product->stock = 15;
$product->save(); // ← Jangan lupa save()!

🔍 READ — Ambil & Tampilkan Data

Eloquent menyediakan berbagai cara untuk mengambil data, dari yang paling sederhana hingga yang sangat spesifik:

// Ambil SEMUA produk
$products = Product::all();

// Ambil berdasarkan ID (auto throw 404 jika tidak ada)
$product = Product::findOrFail(1);

// Filter dengan kondisi WHERE
$activeProducts = Product::where('is_active', true)->get();

// Chaining: filter + sort + limit
$cheapProducts = Product::where('price', '<', 5000000)
    ->orderBy('price', 'asc')
    ->limit(10)
    ->get();

// Pagination otomatis (15 data per halaman)
$paginatedProducts = Product::paginate(15);

✏️ UPDATE — Ubah Data yang Ada

Untuk update, kamu perlu ambil data dulu, ubah nilainya, lalu simpan. Atau gunakan method update() langsung pada query:

// Cara 1: Find → Ubah → Save
$product = Product::findOrFail(1);
$product->price = 11000000;
$product->stock = 20;
$product->save();

// Cara 2: update() massal — satu baris! ✅
Product::findOrFail(1)->update([
    'price' => 11000000,
    'stock' => 20,
]);

// Update banyak record sekaligus
Product::where('stock', 0)->update(['is_active' => false]);

🗑️ DELETE — Hapus Data

Eloquent memiliki dua jenis delete: hard delete (permanen) dan soft delete (data disembunyikan, bukan benar-benar dihapus). Untuk sementara, kita pakai hard delete dulu:

// Hapus satu record berdasarkan ID
Product::findOrFail(1)->delete();

// Cara lebih singkat: destroy() dengan ID
Product::destroy(1);

// Hapus banyak ID sekaligus (array)
Product::destroy([1, 2, 5]);

// Hapus berdasarkan kondisi WHERE
Product::where('is_active', false)->delete();
Insight Penting

Di aplikasi production, hindari hard delete untuk data penting seperti transaksi atau user. Gunakan Soft Delete bawaan Laravel dengan menambahkan trait SoftDeletes di Model dan kolom $table->softDeletes() di migration-mu. Data akan tetap ada di database, hanya disembunyikan! 🛡️

04. Migration Laravel Lanjutan: Rollback & Modifikasi Tabel

Salah satu kekuatan terbesar migration Laravel adalah kemampuan untuk "mundur" ke versi database sebelumnya. Ini seperti tombol CTRL+Z untuk struktur database kamu!

1
Rollback migration terakhir
$ php artisan migrate:rollback
2
Reset semua migration (fresh start)
$ php artisan migrate:fresh --seed
3
Tambah kolom baru ke tabel yang sudah ada

Buat migration baru khusus untuk modifikasi kolom. Jangan edit file migration lama yang sudah berjalan!

$ php artisan make:migration add_category_to_products_table

// Di dalam method up():
Schema::table('products', function (Blueprint $table) {
    $table->string('category')->nullable()->after('name');
});
Insight: Ini bagian dari 50 Artikel!

Artikel ini adalah bagian dari Seri Belajar Laravel Lengkap — 50 Artikel. Di setiap artikel, kita membangun fondasi yang lebih kuat. Pastikan kamu sudah baca dari Artikel 1 agar pemahaman tentang migration Laravel dan Eloquent jauh lebih solid dan terhubung dengan konteks yang lebih besar. 🏗️

🎯 Kesimpulan

Kamu Sekarang Sudah Bisa CRUD Pakai Eloquent! 🚀

Di artikel ini kita sudah melewati perjalanan lengkap: dari menyiapkan struktur tabel lewat migration Laravel, mendefinisikan Model Eloquent dengan properti $fillable, hingga melakukan operasi CRUD — Create, Read, Update, Delete — dengan cara yang bersih dan elegan. Tidak ada SQL mentah, tidak ada kode yang verbose. Hanya PHP yang berbicara secara natural dengan database.

✅ Migration Laravel dibuat & dijalankan
✅ Model Eloquent dikonfigurasi
✅ CRUD Create, Read, Update, Delete dikuasai
✅ Rollback & modifikasi tabel dipahami

💬 Pertanyaan untuk kamu: Bagian CRUD mana yang paling sering kamu pakai di project-mu? Create? Atau justru Query Read yang complex? Ceritakan di kolom komentar di bawah — komunitas ini tumbuh dari diskusi kalian! Dan jangan lupa share artikel ini ke teman yang masih nulis SQL manual 😄

🏷️ Tags Artikel

#Laravel #EloquentORM #MigrationLaravel #CRUD #PHP #BelajarLaravel #Database #Tutorial #50ArtikelLaravel

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux