Pendahuluan
CRUD adalah singkatan dari Create, Read, Update, Delete. Ini adalah operasi dasar yang sering dilakukan dalam sebuah aplikasi web. Laravel, sebagai salah satu framework PHP yang populer, sangat memudahkan kita untuk membangun aplikasi CRUD dengan cepat dan efisien. Pada tutorial ini, kita akan membangun aplikasi CRUD sederhana untuk mengelola data produk menggunakan Laravel 11.
Persiapan
Instalasi Laravel: Pastikan Anda sudah menginstal Laravel 11 sesuai dengan panduan sebelumnya.
Database: Buat database baru untuk menyimpan data produk Anda. Anda bisa menggunakan MySQL, PostgreSQL, atau SQLite. Konfigurasikan koneksi database di file .env.
Langkah-langkah
1. Buat Model Produk
Model merepresentasikan data dalam database. Kita akan membuat model Product untuk mewakili data produk:
php artisan make:model Product
Buka file app/Models/Product.php
dan tambahkan atribut yang ingin Anda simpan (misalnya, nama produk, harga, deskripsi):
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class
Product extends Model
{
use HasFactory;
protected $fillable = ['name', 'price', 'description'];
}
2. Buat Migrasi
Migrasi digunakan untuk membuat perubahan pada struktur database. Jalankan perintah berikut untuk membuat migrasi:
php artisan make:migration create_products_table
Buka file migrasi yang baru dibuat (misalnya, database/migrations/2023_04_04_000000_create_products_table.php
) dan tambahkan kolom-kolom yang sesuai:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('price');
$table->text('description');
$table->timestamps();
});
}
Jalankan migrasi:
php artisan migrate
3. Buat Controller
Controller digunakan untuk menangani permintaan dari pengguna. Buat controller untuk mengelola produk:
php artisan make:controller ProductController
Isi controller dengan method-method untuk menampilkan daftar produk, menambahkan produk baru, mengedit produk, dan menghapus produk:
<?php
namespace App\Http\Controllers;
use App\Models\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
public function
index()
{
$products = Product::all();
return view('products.index', compact('products'));
}
// ... method lainnya untuk create, edit, dan delete
}
4. Buat View
View digunakan untuk menampilkan data ke pengguna. Buat view untuk menampilkan daftar produk, form tambah produk, dan form edit produk. Misalnya, untuk view daftar produk:
<table>
<thead>
<tr>
<th>ID</th>
<th>Nama</th>
<th>Harga</th>
<th>Deskripsi</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
@foreach ($products as $product)
<tr>
<td>{{ $product->id }}</td>
<td>{{ $product->name }}</td>
<td>{{ $product->price }}</td>
<td>{{ $product->description }}</td>
<td>
<a href="{{ route('products.edit', $product)
}}">Edit</a>
<form action="{{ route('products.destroy', $product) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
5. Definisi Rute
Definisi rute digunakan untuk menghubungkan URL dengan controller. Buka file routes/web.php
dan tambahkan rute:
Route::resource('products', ProductController::class);
6. Jalankan Aplikasi
Jalankan server development Laravel:
php artisan serve
Akses aplikasi Anda di browser (misalnya, http://127.0.0.1:8000/products).
Penjelasan Singkat
Model: Merepresentasikan data dalam database.
Migrasi: Mengelola perubahan struktur database.
Controller: Mengontrol logika aplikasi dan berinteraksi dengan model.
View: Menampilkan data kepada pengguna.
Route: Mendefinisikan URL dan menghubungkannya dengan controller.
Lanjutan
Ini adalah contoh sederhana dari aplikasi CRUD dengan Laravel. Anda dapat menambahkan fitur-fitur lain seperti validasi data, pagination, pencarian, dan lain-lain.
Tips:
Blade: Gunakan template engine Blade untuk membuat view yang lebih dinamis.
Eloquent: Manfaatkan Eloquent ORM untuk berinteraksi dengan database dengan cara yang lebih mudah.
Request: Gunakan objek Request untuk mengakses data yang dikirimkan dari form.
Validation: Gunakan fitur validasi untuk memastikan data yang dimasukkan pengguna valid.
Dengan memahami dasar-dasar Laravel, Anda dapat membangun aplikasi web yang lebih kompleks dan menarik.
Ingin mempelajari lebih lanjut tentang fitur-fitur lain dari Laravel?
Autentikasi: Laravel menyediakan fitur autentikasi yang siap pakai.
Middleware: Gunakan middleware untuk melakukan tindakan sebelum atau setelah permintaan diproses.
Testing: Tulis test case untuk memastikan aplikasi Anda bekerja dengan benar.
Selamat mencoba!