Database Laravel (Eloquent ORM & PostgreSQL)
Memahami konsep Model, Migration, Query Builder, dan Eloquent ORM pada Laravel
1. Konsep Database pada Laravel
Laravel menyediakan sistem pengolahan database menggunakan Eloquent ORM.
Eloquent ORM memungkinkan developer berinteraksi dengan database menggunakan objek PHP tanpa menulis query SQL secara langsung.
Pada Laravel berlaku konsep penting yaitu:
1 Model mewakili 1 tabel pada database.
Contoh:
Tabel database:
mahasiswa
Model Laravel:
Mahasiswa.php
Artinya:
- Model Mahasiswa → tabel mahasiswa
- Model User → tabel users
- Model Post → tabel posts
Laravel otomatis mengubah nama Model menjadi nama tabel dalam bentuk plural
Mahasiswa → mahasiswa
User → users
Post → posts
Jika nama tabel berbeda:
protected $table = ‘mahasiswa’;
2. Konfigurasi Database PostgreSQL
Sebelum menggunakan database, Laravel harus dikonfigurasi terlebih dahulu melalui file .env.
File ini berisi konfigurasi koneksi database yang digunakan aplikasi.
File .env
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=laravel_db
DB_USERNAME=postgres
DB_PASSWORD=postgres
Pastikan extension PHP aktif:
pdo_pgsql dan pgsql
3. Migration Laravel
Migration digunakan untuk membuat struktur tabel database menggunakan kode PHP.
Dengan migration, struktur database dapat dikelola seperti version control.
Buat migration
php artisan make:migration create_mahasiswa_table
Edit migration
Schema::create(‘mahasiswa’, function (Blueprint $table) {
$table->id();
$table->string(‘nama’);
$table->string(‘nim’);
$table->string(‘jurusan’);
$table->timestamps();
});
Penjelasan field:
- id → primary key auto increment
- nama → nama mahasiswa
- nim → nomor induk mahasiswa
- jurusan → program studi
- timestamps → created_at & updated_at
php artisan migrate
4. Model Laravel
Model digunakan untuk berinteraksi langsung dengan tabel database.
Model bertugas mengambil data, menyimpan data, mengupdate data, dan menghapus data.
Buat model
php artisan make:model Mahasiswa
app/Models/Mahasiswa.php
class Mahasiswa extends Model
{
protected $table = ‘mahasiswa’;
protected $fillable = [
‘nama’,
‘nim’,
‘jurusan’
];
}
Penjelasan:
- $table → nama tabel database
- $fillable → field yang boleh diinsert
5. Insert Data (Create)
Data dapat disimpan ke database menggunakan method create().
Method ini menggunakan mass assignment sesuai field fillable.
Mahasiswa::create([
‘nama’ => ‘Budi’,
‘nim’ => ‘2023001’,
‘jurusan’ => ‘Informatika’
]);
6. Select Data (Read)
Laravel menyediakan berbagai cara untuk mengambil data dari database menggunakan Eloquent.
Ambil semua data
$data = Mahasiswa::all();
Ambil berdasarkan id
$data = Mahasiswa::find(1);
Menggunakan where
$data = Mahasiswa::where(‘jurusan’,’TI’)->get();
7. Update Data
Data dapat diperbarui menggunakan method update().
$data = Mahasiswa::find(1);
$data->update([
‘nama’ => ‘Andi’
]);
8. Delete Data
Data dapat dihapus menggunakan method delete().
$data = Mahasiswa::find(1);
$data->delete();
9. Query Builder Laravel
Selain Eloquent ORM, Laravel menyediakan Query Builder untuk menulis query database secara fleksibel.
use Illuminate\Support\Facades\DB;
$data = DB::table(‘mahasiswa’)->get();
Insert
DB::table(‘mahasiswa’)->insert([
‘nama’=>’Budi’,
‘nim’=>’001’,
‘jurusan’=>’TI’
]);
Update
DB::table(‘mahasiswa’)
->where(‘id’,1)
->update([‘nama’=>’Andi’]);
Delete
DB::table(‘mahasiswa’)
->where(‘id’,1)
->delete();
10. Seeder Laravel
Seeder digunakan untuk mengisi data awal ke database secara otomatis.
php artisan make:seeder MahasiswaSeeder
Seeder
DB::table(‘mahasiswa’)->insert([
‘nama’=>’Budi’,
‘nim’=>’001’,
‘jurusan’=>’TI’
]);
Jalankan seeder
php artisan db:seed
11. Perintah Migration
Rollback
php artisan migrate:rollback
Refresh
php artisan migrate:refresh
Fresh
php artisan migrate:fresh
Mahasiswa telah memahami:
- Konsep database Laravel
- 1 Model = 1 Tabel
- Koneksi PostgreSQL
- Migration
- Model
- Eloquent ORM
- Query Builder
- Seeder
