A. PERSIAPAN AWAL
Software yang Dibutuhkan
Pastikan kamu sudah menginstall:
B. MEMBUAT API CRUD DENGAN LARAVEL
Buat Proyek Laravel Baru
composer create-project laravel/laravel=^12.0 tugas-API --prefer-dist
C. MEMBUAT TABEL DAN MODEL PRODUK
1. Buat Migration untuk Tabel Produk
php artisan make:migration create_products_tableEdit file migration:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->text('description');
$table->decimal('price', 10, 2);
$table->integer('stock');
$table->timestamps();
});
}
2. Jalankan Migrasi
Edit file .env:
DB_DATABASE=mysql
DB_USERNAME=root
DB_PASSWORD=
php artisan migrateD. MEMBUAT MODEL DAN CONTROLLER
1. Buat Model Product
php artisan make:model ProductEdit file app/Models/Product.php:
class Product extends Model
{
protected $fillable = ['name', 'description', 'price', 'stock'];
protected $casts = [
'price' => 'decimal:2'
];
}
2. Buat Controller API
php artisan make:controller ProductController --apiIsi app/Http/Controllers/ProductController.php:
class ProductController extends Controller
{
public function index()
{
return response()->json(Product::all());
}
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|string|max:255',
'description' => 'required|string',
'price' => 'required|numeric|min:0',
'stock' => 'required|integer|min:0'
]);
$product = Product::create($validated);
return response()->json($product, 201);
}
public function show(Product $product)
{
return response()->json($product);
}
public function update(Request $request, Product $product)
{
$validated = $request->validate([
'name' => 'sometimes|string|max:255',
'description' => 'sometimes|string',
'price' => 'sometimes|numeric|min:0',
'stock' => 'sometimes|integer|min:0'
]);
$product->update($validated);
return response()->json($product);
}
public function destroy(Product $product)
{
$product->delete();
return response()->json(['message' => 'Product deleted successfully']);
}
}
E. MENDAFTARKAN ROUTE API
Tambahkan Route di File routes/api.php
Route::apiResource('products', ProductController::class);
Dengan ini, Laravel akan otomatis membuat 5 endpoint:
GET /api/products→ ambil semua produkPOST /api/products→ tambah produk baruGET /api/products/{id}→ ambil detail produkPUT /api/products/{id}→ ubah produkDELETE /api/products/{id}→ hapus produk
F. TESTING DENGAN POSTMAN
1. Buka POSTMAN dan Uji Coba Endpoint
a. — GET Semua Produk
- Method:
GET - URL:
http://localhost:8000/api/products - Headers:
- Key:
Accept, Value:application/json
- Key:
- Klik Send
.png)
b. — POST Tambah Produk Baru
- Method:
POST - URL:
http://localhost:8000/api/products - Headers:
Accept: application/jsonContent-Type: application/json
- Body (raw JSON):
{
"name": "Smartphone",
"description": "Android 5G RAM 8GB",
"price": 3000000,
"stock": 10
}
.png)
c. — GET Detail Produk
- Method:
GET - URL:
http://localhost:8000/api/products/1(ubah 1 sesuai ID produk) - Headers:
Accept: application/json
- Klik Send
.png)
d. — PUT Update Produk
- Method:
PUT - URL:
http://localhost:8000/api/products/1 - Headers:
Accept: application/jsonContent-Type: application/json
- Body (raw JSON):
{
"name": "Smartphone Pro",
"description": "RAM 12GB, Kamera 108MP",
"price": 5000000,
"stock": 5
}
.png)
e. — DELETE Hapus Produk
- Method:
DELETE - URL:
http://localhost:8000/api/products/1 - Headers:
Accept: application/json
- Klik Send
.png)