Web Development May 16, 2026 · 5 min read · 0 dilihat

Source Code Laravel 11 CRUD Filament 3 Gratis & Siap Pakai

Kamu pemula Laravel dan pengin bikin CRUD admin panel tanpa ribet? Filament 3 adalah jawabnya. Admin panel yang biasanya memakan waktu berminggu-minggu, sekarang bisa selesai dalam hitungan jam — bahkan untuk fresh graduate sekalipun. Artikel ini memberikan source code lengkap Laravel 11 + Filament 3 yang siap clone dan dijalankan. Kita akan walk-through struktur folder, install dependencies, setup database, sampai kamu bisa lihat admin panel Filament di browser. Cocok banget untuk portfolio project atau starter learning kamu.

IKHSAN MAULANA

IKHSAN MAULANA

Web, Android, and RPA Development

Filament 3 mengubah cara kita develop CRUD di Laravel. Alih-alih bikin controller, view, dan form validation manual, Filament menangani semua itu dengan cuma perlu generate Resource dan tulis beberapa baris config. Hasilnya? Admin panel modern, responsif, dan siap production — tanpa modal tambahan.

Artikel ini tidak cuma teori. Kami kasih step-by-step langsung dari clone project sampai bisa akses admin panel di browser lokal kamu.

Struktur Project & Folder

Source code kita punya struktur standar Laravel 11 dengan penambahan folder Filament:

laravel-filament-crud/
├── app/
│   ├── Models/
│   │   ├── Product.php
│   │   ├── Category.php
│   │   └── User.php
│   ├── Filament/
│   │   └── Resources/
│   │       ├── ProductResource.php
│   │       └── CategoryResource.php
│   └── Http/
│       └── Middleware/
├── database/
│   ├── migrations/
│   └── seeders/
├── resources/
│   └── views/
├── .env
├── .env.example
└── composer.json

Folder app/Filament/Resources/ adalah jantung admin panel kita — di sini Resource Filament dikonfigurasi dan diatur fieldnya.

Install & Setup Project

Kamu perlu PHP 8.2+, Composer, dan MySQL/SQLite siap. Ikuti langkah berikut:

  1. Clone atau download project:
    git clone https://github.com/duamasa-tech/laravel-filament-crud.git
    cd laravel-filament-crud
  2. Install dependencies:
    composer install
  3. Copy .env file:
    cp .env.example .env
  4. Generate app key:
    php artisan key:generate
  5. Setup database di .env:
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=laravel_filament
    DB_USERNAME=root
    DB_PASSWORD=
  6. Jalankan migration:
    php artisan migrate --seed
  7. Start dev server:
    php artisan serve
  8. Akses admin panel: Buka http://localhost:8000/admin dan login dengan email admin@example.com password password

Model & Database Structure

Project ini punya 3 model utama: User, Category, dan Product. Relasi: User has many Products, Category has many Products.

Berikut contoh Model Product:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class Product extends Model
{
    protected $fillable = ['name', 'description', 'price', 'category_id', 'user_id', 'stock'];

    public function category(): BelongsTo
    {
        return $this->belongsTo(Category::class);
    }

    public function user(): BelongsTo
    {
        return $this->belongsTo(User::class);
    }
}

Dan migration-nya:

<?php

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

return new class extends Migration
{
    public function up(): void
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->text('description')->nullable();
            $table->decimal('price', 10, 2);
            $table->foreignId('category_id')->constrained();
            $table->foreignId('user_id')->constrained();
            $table->integer('stock')->default(0);
            $table->timestamps();
        });
    }

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

Filament Resource & Admin Panel

Ini bagian magic. Resource Filament handle semua CRUD — Create, Read, Update, Delete — tanpa kita perlu tulis form manual:

<?php

namespace App\Filament\Resources;

use App\Models\Product;
use Filament\Resources\Resource;
use Filament\Forms;
use Filament\Tables;
use Filament\Forms\Form;
use Filament\Tables\Table;

class ProductResource extends Resource
{
    protected static ?string $model = Product::class;
    protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                Forms\Components\TextInput::make('name')
                    ->required()
                    ->maxLength(255),
                Forms\Components\Textarea::make('description')
                    ->columnSpanFull(),
                Forms\Components\TextInput::make('price')
                    ->numeric()
                    ->required(),
                Forms\Components\Select::make('category_id')
                    ->relationship('category', 'name')
                    ->required(),
                Forms\Components\Select::make('user_id')
                    ->relationship('user', 'name')
                    ->required(),
                Forms\Components\TextInput::make('stock')
                    ->numeric()
                    ->default(0),
            ]);
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                Tables\Columns\TextColumn::make('name')
                    ->searchable(),
                Tables\Columns\TextColumn::make('price')
                    ->money('usd'),
                Tables\Columns\TextColumn::make('category.name'),
                Tables\Columns\TextColumn::make('stock'),
                Tables\Columns\TextColumn::make('created_at')
                    ->dateTime(),
            ])
            ->filters([])
            ->actions([
                Tables\Actions\EditAction::make(),
                Tables\Actions\DeleteAction::make(),
            ])
            ->bulkActions([
                Tables\Actions\BulkActionGroup::make([
                    Tables\Actions\DeleteBulkAction::make(),
                ]),
            ]);
    }
}

Resource ini handle semuanya: form input dengan tipe data tepat, table display dengan search dan sorting, serta bulk actions. Filament juga auto-generate sidebar menu, validasi, pagination, dan dark mode — tanpa kita konfigurasi lagi.

Keuntungan Filament 3 vs CRUD Manual

  • Waktu development 80% lebih cepat — Cuma perlu tulis Resource dan Form schema, sisanya Filament generate
  • UI/UX sudah modern — Responsive, dark mode, accessibility built-in, tanpa CSS tambahan
  • Validation & authorization terintegrasi — Setup gate/policy di satu tempat
  • Extensible tanpa kompleks — Tambah custom field, action, atau table filter dengan 10 baris code
  • Dokumentasi lengkap — Community besar dan dokumentasi resmi excellent

Tips Customization

Setelah project running, kamu bisa customize lebih lanjut:

  • Ubah branding: edit config/filament.php untuk logo dan warna tema
  • Tambah relasi baru: generate Resource dengan php artisan make:filament-resource --model=ModelName
  • Custom validasi: gunakan ->rules() di Form schema atau Rule class Laravel
  • Permission & Role: install package filament/spatie-laravel-permission untuk multi-role admin

Kesimpulan

Source code Laravel 11 + Filament 3 ini adalah starting point sempurna untuk project kamu berikutnya — entah itu portfolio, client work, atau sekadar eksperimen. Setup cuma 8 langkah, dan kamu langsung punya admin panel production-ready. Tidak perlu bikin form manual, controller logic untuk CRUD, atau struggle dengan form validation — Filament handle semuanya.

Dari sini, kamu bisa eksplorasi fitur Filament lebih dalam, tambah authentication dengan Laravel Breeze, atau deploy ke cloud. Kalau pengin memperdalam Laravel lebih lanjut, cek artikel kami tentang optimization, testing, dan advanced topics di blog DuaMasa Tech.

Tags:

#Source Code #Laravel 11 #Filament 3 #CRUD #Admin Panel

Share this article:

IKHSAN MAULANA

Tentang Penulis

IKHSAN MAULANA

Web, Android, and RPA Development

I am an experienced IT programmer specializing in Web Development (Laravel/PHP), Android (Dart/Flutter), and RPA (UiPath). I love building clean, efficient solutions that solve real-world problems. With 4+ years of hands...

Download CV

Sebelum download, boleh kenalan dulu? Form ini opsional — kosongin juga gak apa-apa, langsung klik Download.