Eloquent ORM (Object-Relational Mapping) adalah salah satu fitur utama Laravel yang memungkinkan pengembang untuk berinteraksi dengan database menggunakan sintaks yang bersih dan intuitif.

Dengan Eloquent, Anda dapat melakukan operasi database tanpa harus menulis query SQL yang rumit.

Artikel ini akan membahas cara membuat dan mengelola database menggunakan Eloquent ORM, serta menjelaskan penggunaan model dan migration dalam konteks Laravel.

Apa Itu Eloquent ORM?

Eloquent adalah implementasi Active Record di Laravel, yang berarti setiap model Eloquent berhubungan langsung dengan tabel di database. Dengan Eloquent, Anda dapat melakukan operasi CRUD (Create, Read, Update, Delete) dengan mudah dan efisien. Eloquent juga mendukung relasi antar model, sehingga Anda dapat mengelola hubungan antara tabel dengan lebih baik.

1. Membuat Database

Sebelum menggunakan Eloquent, Anda perlu membuat database. Anda dapat menggunakan alat manajemen database seperti phpMyAdmin atau MySQL Workbench, atau Anda dapat membuat database menggunakan command line.

Berikut adalah contoh perintah untuk membuat database menggunakan MySQL:

CREATE DATABASE nama_database;

Setelah database dibuat, Anda perlu mengonfigurasi koneksi database di file .env di root proyek Laravel Anda. Berikut adalah contoh konfigurasi untuk MySQL:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=username
DB_PASSWORD=password

2. Menggunakan Migration

Migration adalah fitur Laravel yang memungkinkan Anda untuk mengelola skema database dengan mudah. Dengan migration, Anda dapat membuat, mengubah, dan menghapus tabel di database menggunakan kode PHP.

Ini sangat berguna dalam tim pengembangan, di mana beberapa pengembang mungkin bekerja pada database yang sama.

Membuat Migration

Untuk membuat migration baru, Anda dapat menggunakan perintah Artisan. Misalnya, untuk membuat migration untuk tabel users, jalankan perintah berikut:

php artisan make:migration create_users_table

Perintah ini akan membuat file migration baru di folder database/migrations/. Buka file migration yang baru dibuat dan tambahkan kolom yang diperlukan:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }
}

Dalam contoh di atas, kita mendefinisikan kolom untuk tabel users, termasuk id, name, email, dan password. Metode up() digunakan untuk membuat tabel, sedangkan metode down() digunakan untuk menghapus tabel jika migration dibatalkan.

Menjalankan Migration

Setelah migration dibuat, Anda dapat menjalankannya dengan perintah berikut:

php artisan migrate

Perintah ini akan menjalankan semua migration yang belum dijalankan dan membuat tabel di database sesuai dengan definisi yang Anda buat.

3. Menggunakan Model Eloquent

Setelah tabel dibuat, langkah selanjutnya adalah membuat model Eloquent yang akan berfungsi sebagai representasi dari tabel di database. Model Eloquent biasanya terletak di folder app/Models/.

Membuat Model

Untuk membuat model baru, Anda dapat menggunakan perintah Artisan. Misalnya, untuk membuat model User, jalankan perintah berikut:

php artisan make:model User

Perintah ini akan membuat file model User.php di folder app/Models/. Berikut adalah contoh isi file model User:

namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    use HasFactory;
    protected $fillable = ['name', 'email', 'password'];
}

Dalam contoh di atas, kita menggunakan trait HasFactory untuk mendukung pembuatan data palsu dan mendefinisikan properti $fillable untuk menentukan kolom yang dapat diisi secara massal.

Operasi CRUD dengan Eloquent

Setelah model dibuat, Anda dapat melakukan operasi CRUD dengan mudah. Berikut adalah contoh penggunaan Eloquent untuk melakukan operasi CRUD pada model User:

Create: Menambahkan pengguna baru ke database.

User::create([
        'name' => 'John Doe',
        'email' => '[email protected]',
        'password' => bcrypt('password123'),
]);

Read: Mengambil semua pengguna dari database.

$users = User::all();

Update: Memperbarui informasi pengguna.

$user = User::find(1);

$user->name = 'Jane Doe';

$user->save();

Delete: Menghapus pengguna dari database.

$user = User::find(1);

$user->delete();

4. Relasi Antar Model

Eloquent juga mendukung relasi antar model, seperti one-to-one, one-to-many, dan many-to-many. Misalnya, jika Anda memiliki model Post yang berhubungan dengan model User, Anda dapat mendefinisikan relasi di dalam model:

class User extends Model
{
    use HasFactory;
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

Dengan mendefinisikan relasi ini, Anda dapat dengan mudah mengambil semua postingan yang dibuat oleh pengguna tertentu:

$user = User::find(1);

$posts = $user->posts;

Kesimpulan

Eloquent ORM adalah alat yang sangat kuat untuk mengelola database di Laravel. Dengan menggunakan migration, Anda dapat dengan mudah mengelola skema database, sementara model Eloquent memungkinkan Anda untuk berinteraksi dengan data menggunakan sintaks yang bersih dan intuitif.

Dengan memahami cara membuat dan mengelola database menggunakan Eloquent, Anda dapat membangun aplikasi yang lebih efisien dan terstruktur.

Tags: laravel laravel mvc orm laravel laravel database database structure laravel php database management management database laravel object oriented laravel laravel migration laravel model model database laravel laravel database design