
Daftar Isi
Apakah Anda pernah merasa bingung saat mencoba membuat fitur CRUD (Create, Read, Update, Delete) di Laravel? Atau mungkin Anda baru mengenal Laravel dan ingin belajar bagaimana cara membuat form input data yang bisa disimpan ke database?
Tenang—Anda tidak sendiri. Banyak pemula yang merasa kebingungan di tahap awal ini. Mulai dari instalasi Laravel, membuat route, hingga menampilkan data ke tampilan (view), semuanya bisa tampak rumit jika tidak dijelaskan langkah demi langkah.
Dalam artikel ini, Anda akan menemukan panduan lengkap dan praktis untuk membuat CRUD pertama menggunakan Laravel—dengan fokus pada pembuatan form input data. Kita akan membahasnya secara bertahap, jelas, dan mudah diikuti, bahkan jika Anda baru pertama kali menyentuh framework ini.
Mari kita mulai membangun CRUD pertama Anda dengan Laravel. Pastikan Anda sudah memiliki PHP, Composer, dan Laravel terinstal di komputer Anda. Jika belum, Anda bisa mengikuti dokumentasi resmi Laravel di laravel.com/docs.
1. Membuat Proyek Laravel Baru
Langkah pertama adalah membuat project baru menggunakan Composer.
composer create-project laravel/laravel crud-form
Setelah instalasi selesai, masuk ke folder project:
cd crud-form
Kemudian jalankan server Laravel:
php artisan serve
Akses proyek Anda di browser melalui http://127.0.0.1:8000 untuk memastikan semuanya berjalan lancar.
Membuat Database dan Konfigurasi .env
Selanjutnya, buat database baru (misalnya crud_db) melalui phpMyAdmin atau terminal MySQL Anda.
Kemudian buka file .env di root project dan sesuaikan bagian konfigurasi database:
DB_DATABASE=crud_db
DB_USERNAME=root
DB_PASSWORD=
Pastikan koneksi database sudah benar agar Laravel bisa berinteraksi dengan database Anda.
Membuat Model dan Migration
Untuk contoh ini, kita akan membuat tabel produk.
php artisan make:model Product -m
Perintah di atas akan membuat model Product dan migration untuk tabelnya.
Sekarang buka file migration yang baru dibuat di folder database/migrations/.
Tambahkan struktur tabel seperti berikut:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->text('description')->nullable();
$table->integer('price');
$table->timestamps();
});
}
Jalankan migration:
php artisan migrate
4. Membuat Controller
Buat controller untuk mengatur logika CRUD:
php artisan make:controller ProductController --resource
Perintah ini otomatis membuat controller dengan metode untuk semua operasi CRUD (create, store, show, edit, update, destroy).
5. Menambahkan Route
Buka file routes/web.php dan tambahkan route resource:
use App\Http\Controllers\ProductController;
Route::resource('products', ProductController::class);
Laravel akan otomatis membuat semua route untuk CRUD produk.
6. Membuat Form Input Data (Create)
Sekarang mari buat tampilan form untuk menambahkan produk baru.
Buat folder resources/views/products, lalu file create.blade.php.
Isi dengan kode berikut:
<!DOCTYPE html>
<html>
<head>
<title>Tambah Produk</title>
</head>
<body>
<h1>Tambah Produk Baru</h1>
<form action="{{ route('products.store') }}" method="POST">
@csrf
<label>Nama Produk:</label><br>
<input type="text" name="name"><br><br>
<label>Deskripsi:</label><br>
<textarea name="description"></textarea><br><br>
<label>Harga:</label><br>
<input type="number" name="price"><br><br>
<button type="submit">Simpan</button>
</form>
</body>
</html>
7. Menyimpan Data ke Database
Sekarang buka app/Http/Controllers/ProductController.php, lalu ubah method store() menjadi seperti ini:
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'price' => 'required|numeric',
]);
Product::create($request->all());
return redirect()->route('products.index')
->with('success', 'Produk berhasil ditambahkan!');
}
Jangan lupa aktifkan mass assignment pada model Product:
protected $fillable = ['name', 'description', 'price'];8. Menampilkan Data Produk
Untuk menampilkan data produk, ubah method index() di ProductController:
public function index()
{
$products = Product::all();
return view('products.index', compact('products'));
}
Buat file resources/views/products/index.blade.php:
<h1>Daftar Produk</h1>
<a href="{{ route('products.create') }}">+ Tambah Produk</a>
<table border="1" cellpadding="10">
<tr>
<th>Nama</th>
<th>Deskripsi</th>
<th>Harga</th>
</tr>
@foreach ($products as $product)
<tr>
<td>{{ $product->name }}</td>
<td>{{ $product->description }}</td>
<td>{{ $product->price }}</td>
</tr>
@endforeach
</table>
Sekarang, coba buka http://127.0.0.1:8000/products di browser. Anda akan melihat daftar produk yang berhasil ditambahkan melalui form.
Anda baru saja menyelesaikan CRUD dasar dengan Laravel—mulai dari form input, menyimpan data, hingga menampilkannya kembali di tampilan.
Dengan memahami konsep dasar ini, Anda sudah memiliki pondasi kuat untuk melangkah lebih jauh ke fitur yang lebih kompleks seperti edit, update, dan delete data, serta validasi dan upload file.
👉 Baca juga: Membuat Fitur Edit dan Hapus Data di Laravel
