Laravel Eloquent ORM

Hallo kreatif readers..
Di era pengembangan aplikasi sekarang banyak yang menggunakan Laravel. Dengan kerangka kerja Laravel, anda memiliki akses ke Eloquent ORM yang merupakan salah satu fitur penting untuk mengatasi berbagai tantangan.

Apa sih Eloquent ORM?
Eloquent ORM adalah sistem ORM (Object-Relational Mapping) yang terdapat di dalam framework PHP Laravel, yang memungkinkan pengembang untuk berinteraksi dengan basis data menggunakan objek dan kelas daripada menulis query SQL secara langsung. Eloquent menyediakan antarmuka yang ekspresif dan intuitif untuk mengelola data dalam basis data menggunakan model PHP.

Beberapa fitur utama dari Eloquent ORM

  • Model: Eloquent dapat merepresentasikan tabel dalam basis data. Pengembang dapat menentukan relasi antara model, seperti one-to-one, one-to-many, dan many-to-many.
  • Query Builder: untuk membangun query basis data dengan sintaks yang ekspresif dan mudah dipahami. Ini memungkinkan pengembang untuk menulis query kompleks tanpa perlu menulis SQL mentah.
  • Eloquent Collections: Hasil query dikembalikan dalam bentuk koleksi yang merupakan objek terstruktur yang dapat diiterasi dan dimanipulasi dengan mudah.
  • Soft Deletes: memungkinkan penghapusan data dengan menandai data yang dihapus daripada menghapusnya secara permanen dari basis data.
  • Event System: memungkinkan pengembang untuk menetapkan tindakan sebelum atau sesudah operasi dasar pada model, seperti menyimpan, menghapus, atau memperbarui.

Penggunaan Eloquent ORM di Laravel
laravel-eloquent-2-1

  1. Pastikan sudah menginstal Laravel dan mengonfigurasi proyek. Jika belum melakukannya, Anda dapat mengikuti panduan instalasi resmi Laravel di (https://laravel.com/docs/10.x/installation).
  2. Lakukan pembuatan model yang akan mewakili tabel dalam basis data. Anda juga perlu membuat migrasi untuk tabel tersebut. Berikut cara melakukannya:
    #Membuat Model
    php artisan make:model Article
    
    #Membuat Migrasi
    php artisan make:migration create_articles_table

    Selanjutnya dapat mengedit file migrasi yang baru dibuat dan menentukan skema tabel. Kemudian jalankan migrasi untuk membuat tabel:

    php artisan make:model Article

Salah satu kekuatan terbesar Laravel Eloquent adalah kemampuannya untuk menangani relasi antar tabel, berikut ini merupakan jenis relasi yang dapat di definisikan dalam model Eloquent:

  • Relasi BelongsTo
    Misalnya, jika setiap artikel “memiliki” satu penulis:
class Article extends Model {
 public function author() {
  return $this->belongsTo(User::class, 'user_id');
 }
}
  • Relasi HasOne
    Misalnya, jika anda ingin menetapkan bahwa setiap pengguna “memiliki” satu profil:
class User extends Model {
 public function profile() {
  return $this->hasOne(Profile::class);
 }
}
  • Relasi HasMany
    Misalnya, hubungan antara pengguna dan komentar. Setiap pengguna dapat memiliki banyak komentar:
class User extends Model {
 public function comments() {
  return $this->hasMany(Comment::class);
 }
}
  • Relasi BelongsToMany
    Misalnya, pengguna dan peran. Diman, setiap pengguna nantinya bisa mempunyai banyak peran dan setiap peran dapat dimiliki oleh banyak pengguna:
class User extends Model {
 public function roles() {
  return $this->belongsToMany(Role::class);
 }
}

Kesimpulan
Eloquent sangat membantu dalam pengelolaan basis data dengan mudah dan efisien. Dengan memahami konsep dasar, relasi, pengoptimalan query, dan fitur-fitur terbaru dalam Laravel. Anda akan menjadi pengembang yang lebih produktif dan terampil dalam mengelola data untuk proyek PHP Laravel.

Referensi
[1] Febryan Akhdani dan Danur Wijayanto, 2022, Comparison of Eloquent ORM with Query Builder in Work Management System, Faculty of Science and Technology, Universitas Aisyiyah Yogyakarta Indonesia.
[2] M. Mahdi Maulana Lubis, Tommy, Divi Handoko, Nur Wulan, 2023, Analisis Implementasi Laravel 9 pada Website E-Book Dalam Mengatasi N+1 Problem serta Penyerangan Csrf dan Xss, Prodi Teknik Informatika Universitas Harapan Medan.
[3] Laravel Eloquent ORM 

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>