Eloquent ORM dan Database di Laravel

Eloquent ORM dan Database - ulin00

Apa Itu Eloquent ORM?

Eloquent ORM adalah sistem ORM (Object-Relational Mapping) di Laravel yang memudahkan pengelolaan database dengan sintaks yang lebih intuitif dan berbasis objek.

Mengapa Menggunakan Eloquent ORM?

  • Mempermudah interaksi dengan database tanpa menulis SQL secara langsung.
  • Mendukung berbagai jenis relasi database.
  • Memudahkan debugging dan pemeliharaan kode.

Perbedaan Eloquent ORM dengan Query Builder

Fitur Eloquent ORM Query Builder
Sintaks Lebih Mudah
Mendukung Relasi
Performa Cepat

Dasar-Dasar Eloquent ORM

Struktur Model di Laravel

Setiap tabel database di Laravel memiliki model yang merepresentasikan data tersebut.

Membuat Model di Laravel

Gunakan perintah berikut untuk membuat model:

php artisan make:model Post

Konvensi Nama Model dan Tabel

Laravel secara otomatis mencocokkan model Post dengan tabel posts dalam database.

Operasi Database dengan Eloquent ORM

Insert Data dengan Eloquent

$post = new Post;
$post->title = 'Judul Post';
$post->content = 'Isi dari post ini';
$post->save();

Read Data dengan Eloquent

$posts = Post::all();

Update Data dengan Eloquent

$post = Post::find(1);
$post->title = 'Judul Baru';
$post->save();

Delete Data dengan Eloquent

Post::destroy(1);

Relasi dalam Eloquent ORM

One to One Relationship

class User extends Model {
    public function profile() {
        return $this->hasOne(Profile::class);
    }
}

One to Many Relationship

class Post extends Model {
    public function comments() {
        return $this->hasMany(Comment::class);
    }
}

Many to Many Relationship

class Post extends Model {
    public function tags() {
        return $this->belongsToMany(Tag::class);
    }
}

Has Many Through Relationship

class Country extends Model {
    public function posts() {
        return $this->hasManyThrough(Post::class, User::class);
    }
}

Polymorphic Relationship

class Image extends Model {
    public function imageable() {
        return $this->morphTo();
    }
}

Query Lanjutan dengan Eloquent ORM

Filtering Data

$posts = Post::where('status', 'published')->get();

Sorting dan Pagination

$posts = Post::orderBy('created_at', 'desc')->paginate(10);

Aggregation dan Grouping

$totalPosts = Post::count();

Soft Deletes dan Restoring Data

Post::withTrashed()->restore();

Kesimpulan

Eloquent ORM adalah fitur powerful di Laravel untuk mengelola database dengan lebih mudah dan efisien.

FAQ

1. Apa keuntungan menggunakan Eloquent ORM dibanding Query Builder?

Eloquent ORM lebih mudah dipahami, mendukung relasi database, dan memungkinkan kode yang lebih bersih dan terstruktur.

2. Bagaimana cara menonaktifkan timestamps pada model?

Tambahkan properti berikut dalam model:

Baca Juga: loading
public $timestamps = false;

3. Apakah Eloquent ORM lebih lambat dibanding query SQL langsung?

Tergantung pada skenario, namun untuk pengembangan yang lebih cepat dan fleksibel, Eloquent ORM lebih disarankan.

4. Bagaimana cara melakukan eager loading?

Gunakan with() untuk menghindari N+1 Query Problem:

$users = User::with('posts')->get();

5. Bagaimana cara menghapus data dengan Soft Deletes?

Gunakan:

Post::find(1)->delete();

Data akan tetap ada di database tetapi diberi tanda sebagai terhapus.


Itulah panduan lengkap mengenai Eloquent ORM dan Database di Laravel! 🚀

Muhammad Ulin Nuha
Muhammad Ulin Nuha PEEKCODE CHANNEL YOUTUBE Developer Android | Networking | Konten Creator peekcode YT | Galery | Pecinta Sholawat |

Posting Komentar