Laravel Filament adalah salah satu library yang sangat membantu dalam membuat CRUD dashboard dengan cepat dan mudah. Artikel ini akan membahas langkah-langkah untuk membuat CRUD dashboard menggunakan Laravel Filament, mulai dari instalasi hingga konfigurasi.
Langkah 1: Instal Laravel
Pertama-tama, buatlah proyek Laravel baru dengan perintah berikut:
composer create-project laravel/laravel example-appLangkah 2: Setup Database
Konfigurasikan database di file .env. Pada contoh ini, kita menggunakan SQLite:
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
DB_DATABASE=path/to/database.sqlite
# DB_USERNAME=root
# DB_PASSWORD=Setelah itu, buat file database SQLite:
touch database/database.sqliteLangkah 3: Migrasi Schema
Jalankan migrasi untuk membuat struktur tabel dasar:
php artisan migrateLangkah 4: Jalankan Proyek Laravel
Jalankan server lokal untuk memastikan proyek Laravel berjalan dengan baik:
php artisan serveLangkah 5: Instal Filament
Tambahkan Filament ke dalam proyek dengan perintah berikut:
composer require filament/filamentLangkah 6: Instal Admin Panel
Instalasi panel admin Filament dilakukan dengan perintah:
php artisan filament:install --panelsLangkah 7: Buat User Admin
Tambahkan user admin untuk mengakses panel Filament:
php artisan make:filament-userLangkah 8: Akses Admin Panel
Buka panel admin Filament di browser melalui URL berikut:
http://127.0.0.1:8000/admin/login
Langkah 9: Buat Model Players
Buat model Player dengan migrasi:
php artisan make:model Player -mLangkah 10: Ubah Schema Tabel Players
Edit file migrasi di database/migrations untuk menambahkan schema berikut:
Schema::create('players', function (Blueprint $table) {
$table->id();
$table->string('nim')->unique();
$table->string('nama');
$table->enum('kelas', ['MIPA', 'IPS']);
$table->timestamps();
});Langkah 11: Lindungi Model Player
Tambahkan properti fillable di model Player agar dapat diisi secara massal:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Player extends Model
{
protected $fillable = ['nim', 'nama', 'kelas'];
}Langkah 12: Migrasi Schema
Jalankan migrasi untuk membuat tabel players:
php artisan migrateLangkah 13: Buat Resource Filament
Buat resource Filament untuk model Player:
php artisan make:filament-resource PlayerResourceLangkah 14: Tambahkan Schema Form untuk Menambah Data
Edit file app/Filament/Resources/PlayerResource.php untuk menambahkan schema form:
return $form
->schema([
Card::make()
->schema([
TextInput::make('nim')->required(),
TextInput::make('nama')->required(),
Select::make('kelas')
->options([
'MIPA' => 'MIPA',
'IPS' => 'IPS'
]),
])
->columns(2),
]);Langkah 15: Tambahkan Kolom Tabel untuk Menampilkan Data
Tambahkan konfigurasi tabel di file app/Filament/Resources/PlayerResource.php:
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('nim')->sortable()->searchable(),
TextColumn::make('nama')->sortable()->searchable(),
TextColumn::make('kelas')->sortable()->searchable(),
])
->filters([
// Tambahkan filter jika diperlukan
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}Langkah 16: Tambahkan Validasi untuk Kolom Unik
Untuk menghindari duplikasi, tambahkan validasi unik di form:
return $form
->schema([
Card::make()
->schema([
TextInput::make('nim')->required()->unique(ignorable: fn($record) => $record),
])
]);Dengan mengikuti langkah-langkah di atas, Anda dapat dengan mudah membuat CRUD dashboard menggunakan Laravel Filament. Selamat mencoba!


