Tips Membuat CRUD di Laravel dalam 10 Menit


Sebagai mahasiswa IT atau programmer pemula, Anda pasti sudah tidak asing lagi dengan istilah sistem informasi. Entah itu tugas akhir membuat web perpustakaan, aplikasi kasir, hingga portal berita, semuanya memiliki satu kesamaan inti: mengelola data. Di sinilah CRUD Laravel menjadi solusi yang sangat membantu.

Sering kali, membayangkan proses pembuatan fitur untuk menambah, melihat, mengedit, dan menghapus data terasa mengintimidasi. Namun, dengan framework modern seperti Laravel, proses ini bisa dipersingkat secara drastis. Artikel ini adalah tutorial Laravel untuk pemula yang dirancang praktis dan langsung bisa dipraktikkan. Anda akan belajar cara membuat CRUD di Laravel, khususnya untuk Laravel 10 CRUD, dalam waktu kurang dari 10 menit.

Apa Itu CRUD dan Kenapa Penting di Laravel?

CRUD adalah singkatan dari:

  • Create (Membuat data)

  • Read (Menampilkan data)

  • Update (Mengubah data)

  • Delete (Menghapus data)

Keempat operasi ini adalah fondasi hampir semua aplikasi berbasis database.

Mengapa CRUD di Laravel sangat populer?

Laravel menyediakan fitur seperti:

  • Eloquent ORM → Mengelola database seperti objek PHP

  • Artisan Command → CLI pintar untuk otomatisasi

  • Struktur MVC yang rapi

Dengan kombinasi ini, Anda tidak perlu lagi menulis query SQL panjang secara manual.

Persiapan dan Tools yang Dibutuhkan

Sebelum mulai coding, pastikan environment Anda sudah siap:

  1. PHP minimal versi 8.1

  2. Composer

  3. MySQL atau MariaDB (XAMPP / Laragon / Docker)

  4. Visual Studio Code (disarankan)

Jika semua sudah siap, kita mulai!

Step-by-Step Membuat CRUD di Laravel

Kita akan membuat sistem manajemen artikel sederhana bernama Post.

1. Install Project Laravel

composer create-project laravel/laravel crud-app
cd crud-app

2. Konfigurasi Database

Buat database baru, misalnya: laravel_crud

Edit file .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_crud
DB_USERNAME=root
DB_PASSWORD=

3. Buat Model, Migration, dan Controller Sekaligus

Gunakan perintah berikut:

php artisan make:model Post -mcr

Keterangan:

  • m = migration

  • c = controller

  • r = resource

Edit Migration

Buka file di database/migrations/ dan ubah menjadi:

public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}

Jalankan migrasi:

php artisan migrate

Edit Model

Buka app/Models/Post.php dan tambahkan:

protected $fillable = ['title', 'content'];

4. Setup Controller

Isi PostController.php:

public function index()
{
$posts = Post::latest()->get();
return view('posts.index', compact('posts'));
}
public function create()
{
return view('posts.create');
}
public function store(Request $request)
{
$request->validate([
'title' => 'required',
'content' => 'required',
]);
Post::create($request->all());
return redirect()->route('posts.index')
->with('success', 'Artikel berhasil dibuat!');
}
public function edit(Post $post)
{
return view('posts.edit', compact('post'));
}
public function update(Request $request, Post $post)
{
$request->validate([
'title' => 'required',
'content' => 'required',
]);
$post->update($request->all());
return redirect()->route('posts.index')
->with('success', 'Artikel berhasil diupdate!');
}
public function destroy(Post $post)
{
$post->delete();
return redirect()->route('posts.index')
->with('success', 'Artikel berhasil dihapus!');
}

5. Tambahkan Route

Edit routes/web.php:

use App\Http\Controllers\PostController;
Route::resource('posts', PostController::class);

6. Buat Blade Views

Buat folder:
resources/views/posts

index.blade.php

<h1>Daftar Artikel</h1>
<a href="{{ route('posts.create') }}">Tambah Artikel</a>
@if(session('success'))
<p style="color: green;">{{ session('success') }}</p>
@endif
<table border="1">
<tr>
<th>Judul</th>
<th>Konten</th>
<th>Aksi</th>
</tr>
@foreach ($posts as $post)
<tr>
<td>{{ $post->title }}</td>
<td>{{ $post->content }}</td>
<td>
<a href="{{ route('posts.edit', $post->id) }}">Edit</a>
<form action="{{ route('posts.destroy', $post->id) }}"
method="POST" style="display:inline;">
@csrf
@method('DELETE')
<button type="submit">Hapus</button>
</form>
</td>
</tr>
@endforeach
</table>

create.blade.php

<h1>Tambah Artikel</h1>
<form action="{{ route('posts.store') }}" method="POST">
@csrf
<label>Judul</label><br>
<input type="text" name="title" required><br><br>
<label>Konten</label><br>
<textarea name="content" required></textarea><br><br>
<button type="submit">Simpan</button>
</form>

edit.blade.php

<h1>Edit Artikel</h1>
<form action="{{ route('posts.update', $post->id) }}" method="POST">
@csrf
@method('PUT')
<label>Judul</label><br>
<input type="text" name="title"
value="{{ $post->title }}" required><br><br>
<label>Konten</label><br>
<textarea name="content" required>
{{ $post->content }}
</textarea><br><br>
<button type="submit">Update</button>
</form>

7. Jalankan Project

php artisan serve

Buka browser:

http://localhost:8000/posts

Selamat! CRUD Anda sudah berjalan.

Tips Supaya Lebih Cepat

  • Gunakan --resource atau -mcr

  • Selalu isi $fillable

  • Gunakan php artisan route:list untuk cek routing

  • Gunakan validation agar data lebih aman

Kesalahan Umum

Error 419 Page Expired
→ Lupa menambahkan @csrf di form.

Mass Assignment Error
→ Lupa isi $fillable.

Target class does not exist
→ Lupa import controller di web.php.

Kesimpulan

Membuat CRUD di Laravel sebenarnya sangat cepat dan sistematis. Dengan memahami alur Migration → Model → Controller → Route → View, Anda bisa membangun sistem berbasis database dengan lebih percaya diri.

Jangan hanya dibaca. Langsung praktikkan.

Komentar

Postingan Populer