
Panduan Lengkap CRUD di Laravel: Buat Operasi Create, Read, Update, dan Delete dengan Mudah
CRUD (Create, Read, Update, Delete) adalah empat operasi dasar yang digunakan dalam mengelola data di aplikasi web. Di Laravel, CRUD sangat mudah diimplementasikan karena framework ini menyediakan Eloquent ORM yang mempermudah interaksi dengan database. Artikel ini akan membahas cara membuat operasi CRUD di Laravel secara lengkap dan mudah dipahami.
Apa Itu CRUD di Laravel?
CRUD adalah singkatan dari Create, Read, Update, dan Delete, yang merupakan operasi dasar dalam mengelola data di aplikasi. Dalam konteks Laravel, CRUD mengacu pada bagaimana kita membuat, membaca, memperbarui, dan menghapus data di database menggunakan model Eloquent ORM. Dengan fitur CRUD ini, Laravel memungkinkan kita untuk mengelola data secara lebih efisien dan terstruktur.
Persiapan: Membuat Model dan Migration
Sebelum memulai dengan operasi CRUD, kita perlu membuat model dan tabel database yang akan digunakan. Misalnya, kita akan membuat model Produk
dengan beberapa kolom, seperti nama
, harga
, dan stok
.
Buat model dan migration dengan perintah berikut:shellCopy codephp artisan make:model Produk -m
Perintah ini akan membuat file model Produk.php
di app/Models
dan file migration di database/migrations
.
Buka file migration yang baru dibuat dan tambahkan kolom berikut:php
public function up() {
Schema::create('produk', function (Blueprint $table) {
$table->id();
$table->string('nama');
$table->decimal('harga', 10, 2);
$table->integer('stok'); $table->timestamps();
});
}
Jalankan migration untuk membuat tabel di database:shellCopy codephp artisan migrate
Sekarang, tabel produk
sudah siap digunakan untuk operasi CRUD.
1. Create: Menyimpan Data Baru ke Database
Operasi pertama dalam CRUD adalah Create. Operasi ini memungkinkan kita untuk menyimpan data baru ke dalam tabel produk
.
a. Membuat Form Input di Blade
Untuk membuat produk baru, kita bisa menambahkan form di file Blade (create.blade.php
), misalnya:
><form action="{{ route('produk.store') }}" method="POST">
@csrf
<label for="nama">Nama Produk:</label>
<input type="text" name="nama" id="nama" required>
<label for="harga">Harga Produk:</label>
<input type="number" name="harga" id="harga" step="0.01" required>
<label for="stok">Stok Produk:</label>
<input type="number" name="stok" id="stok" required>
<button type="submit">Tambah Produk</button>
</form>
b. Menangani Penyimpanan di Controller
Selanjutnya, tambahkan fungsi store
di ProdukController
untuk menangani request penyimpanan data:
use App\Models\Produk;
use Illuminate\Http\Request;
class ProdukController extends Controller
{
public function store(Request $request)
{
$validatedData = $request->validate([
'nama' => 'required|string|max:255',
'harga' => 'required|numeric',
'stok' => 'required|integer',
]);
Produk::create($validatedData);
return redirect()->route('produk.index')->with('success', 'Produk berhasil ditambahkan!');
}
}
Jangan lupa tambahkan $fillable
di model Produk
untuk mengizinkan pengisian massal:
protected $fillable = ['nama', 'harga', 'stok'];
Sekarang, kita bisa menyimpan data produk baru ke dalam database.
2. Read: Membaca Data dari Database
Operasi Read memungkinkan kita mengambil dan menampilkan data dari database. Untuk menampilkan daftar produk, kita perlu menambahkan fungsi index
di ProdukController
.
a. Mengambil Data di Controller
Tambahkan method index
di ProdukController
:
public function index()
{
$produk = Produk::all();
return view('produk.index', compact('produk'));
}
b. Menampilkan Data di Blade
Selanjutnya, buat file index.blade.php
untuk menampilkan daftar produk:
<h2>Daftar Produk</h2>
<table>
<thead>
<tr>
<th>Nama</th>
<th>Harga</th>
<th>Stok</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
@foreach($produk as $item)
<tr>
<td>{{ $item->nama }}</td>
<td>{{ $item->harga }}</td>
<td>{{ $item->stok }}</td>
<td>
<a href="{{ route('produk.edit', $item->id) }}">Edit</a>
<form action="{{ route('produk.destroy', $item->id) }}" method="POST" style="display:inline;">
@csrf
@method('DELETE')
<button type="submit">Hapus</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
Dengan begitu, kita bisa melihat semua produk yang ada di tabel produk
secara langsung.
3. Update: Memperbarui Data di Database
Operasi Update memungkinkan kita memperbarui data yang sudah ada. Untuk melakukan update, kita akan membuat form edit dan menambahkan fungsi edit
serta update
di controller.
a. Menampilkan Form Edit
Tambahkan method edit
di ProdukController
untuk mengambil data produk berdasarkan ID:
public function edit($id)
{
$produk = Produk::findOrFail($id);
return view('produk.edit', compact('produk'));
}
Lalu, buat file edit.blade.php
untuk menampilkan form edit:
<form action="{{ route('produk.update', $produk->id) }}" method="POST">
@csrf
@method('PUT')
<label for="nama">Nama Produk:</label>
<input type="text" name="nama" id="nama" value="{{ $produk->nama }}" required>
<label for="harga">Harga Produk:</label>
<input type="number" name="harga" id="harga" value="{{ $produk->harga }}" step="0.01" required>
<label for="stok">Stok Produk:</label>
<input type="number" name="stok" id="stok" value="{{ $produk->stok }}" required>
<button type="submit">Update Produk</button>
</form>
b. Menyimpan Data yang Diperbarui
Tambahkan method update
di ProdukController
untuk menyimpan perubahan:
public function update(Request $request, $id)
{
$validatedData = $request->validate([
'nama' => 'required|string|max:255',
'harga' => 'required|numeric',
'stok' => 'required|integer',
]);
$produk = Produk::findOrFail($id);
$produk->update($validatedData);
return redirect()->route('produk.index')->with('success', 'Produk berhasil diperbarui!');
}
4. Delete: Menghapus Data dari Database
Operasi terakhir dalam CRUD adalah Delete untuk menghapus data dari database. Tambahkan fungsi destroy
di ProdukController
.
a. Menghapus Data di Controller
Tambahkan method destroy
di ProdukController
:
public function destroy($id)
{
$produk = Produk::findOrFail($id);
$produk->delete();
return redirect()->route('produk.index')->with('success', 'Produk berhasil dihapus!');
}
Form untuk menghapus produk sudah ditambahkan pada langkah Read
di bagian index.blade.php
, jadi kita tidak perlu menambahkan form baru.
Kesimpulan
Dengan Laravel, membuat operasi CRUD sangat mudah dan efisien. Artikel ini telah menjelaskan cara membuat operasi CRUD di Laravel mulai dari menambahkan data baru (Create), membaca data (Read), memperbarui data (Update), hingga menghapus data (Delete). Dengan mengikuti panduan ini, kamu sudah memiliki dasar yang kuat dalam mengelola data di aplikasi Laravel.
Selamat mencoba dan semoga artikel ini membantu!
Leave a Reply