Laravel
Laravel: Framework PHP Modern untuk Aplikasi Web
📌 Pengertian Laravel
Laravel adalah sebuah framework aplikasi web berbasis PHP yang bersifat gratis dan open-source. Laravel dirancang untuk membuat proses pengembangan web menjadi lebih mudah, cepat, dan menyenangkan dengan menyediakan sintaks yang ekspresif dan elegan. Framework ini mengikuti pola arsitektur MVC (Model-View-Controller) yang membantu mengorganisir kode secara rapi.
🌟 Mengapa Memilih Laravel?
- Ekosistem Lengkap: Laravel bukan hanya sebuah framework, tapi sebuah ekosistem. Dilengkapi dengan alat bantu resmi seperti Blade (Templating), Eloquent (ORM), Vite (Asset Bundling), dan Artisan (CLI) yang semuanya bekerja secara harmonis.
- Sintaks yang Elegan: Kode Laravel mudah dibaca dan ditulis, membuat proses development menjadi lebih intuitif dan menyenangkan.
- Keamanan Terjamin: Laravel hadir dengan fitur keamanan bawaan untuk melindungi aplikasi dari serangan umum seperti Cross-Site Scripting (XSS), SQL Injection, dan Cross-Site Request Forgery (CSRF).
- Komunitas Besar: Memiliki salah satu komunitas developer terbesar di dunia. Ini berarti dokumentasi yang melimpah, banyak tutorial, dan mudah untuk mencari solusi jika gặp masalah.
⚙️ Konsep Inti Laravel
Untuk memahami Laravel, Anda perlu mengerti beberapa konsep dasarnya. Jangan khawatir jika terlihat banyak, semuanya saling terhubung.
1. Routing
Routing adalah proses pemetaan URL (alamat web) ke sebuah aksi tertentu di dalam aplikasi Anda, biasanya ke sebuah method di dalam Controller.
File: routes/web.php
use App\Http\Controllers\PageController;
// Route sederhana yang menampilkan view langsung
Route::get('/', function () {
return view('welcome');
});
// Route yang mengarah ke method 'about' di dalam PageController
Route::get('/tentang-kami', [PageController::class, 'about']);
2. Arsitektur MVC (Model-View-Controller)
Ini adalah tulang punggung dari aplikasi Laravel.
Model: Mewakili data dan logika bisnis. Setiap tabel di database biasanya memiliki satu Model untuk berinteraksi dengannya. Model bertanggung jawab untuk mengambil, menyimpan, dan memanipulasi data.
Contoh: Model User.php untuk mengelola tabel users.
View: Bertanggung jawab untuk menampilkan data ke pengguna dalam format HTML. Di Laravel, View ditulis menggunakan Blade Templating Engine.
Contoh: File profile.blade.php untuk menampilkan profil pengguna.
Controller: Bertindak sebagai “jembatan” antara Model dan View. Ia menerima permintaan (request) dari pengguna, berkomunikasi dengan Model untuk mengambil data, lalu mengirimkan data tersebut ke View untuk ditampilkan.
Contoh: UserController.php yang memiliki fungsi untuk menampilkan profil, mengedit profil, dll.
3. Blade Templating Engine
Blade adalah mesin template bawaan Laravel yang sangat kuat. Blade memungkinkan Anda menggunakan sintaks PHP di dalam HTML dengan cara yang sangat bersih.
File: resources/views/greeting.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Salam</title>
</head>
<body><h1>Halo, !</h1>@if ($umur > 17)
<p>Anda adalah seorang dewasa.</p>
@else
<p>Anda masih di bawah umur.</p>
@endif<ul>
@foreach ($hobi as $h)
<li></li>
@endforeach
</ul>
</body>
</html>
4. Eloquent ORM (Object-Relational Mapper)
Eloquent adalah cara Laravel berkomunikasi dengan database. Anda tidak perlu menulis query SQL yang rumit. Sebagai gantinya, Anda berinteraksi dengan tabel database seolah-olah mereka adalah objek PHP.
File: app/Models/Product.php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
use HasFactory;
// Properti yang boleh diisi secara massal
protected $fillable = ['name', 'price', 'description'];
}
Contoh penggunaan di Controller:
// Mengambil semua produk
$products = Product::all();
// Mencari produk dengan ID = 1
$product = Product::find(1);
// Membuat produk baru
$newProduct = Product::create([
'name' => 'Laptop Keren',
'price' => 15000000,
'description' => 'Laptop dengan spesifikasi tinggi.'
]);
5. Artisan CLI
Artisan adalah antarmuka baris perintah (Command-Line Interface) yang disertakan dengan Laravel. Artisan menyediakan banyak sekali perintah yang sangat membantu untuk mempercepat proses pengembangan.
Beberapa perintah umum:
Bash
Membuat project Laravel baru.
composer create-projct –prefer-dist laravel/laravel latihvel
Menjalankan server development lokal
php artisan serve
Membuat Controller baru
php artisan make:controller ProductController
Membuat Model baru
php artisan make:model Product
Membuat file migrasi database
php artisan make:migration create_products_table
Menjalankan migrasi (membuat tabel di database)
php artisan migrate
🚀 Contoh Alur Kerja Lengkap (Menampilkan Daftar Produk)
Mari kita gabungkan semua konsep di atas untuk membuat halaman yang menampilkan daftar produk dari database.
Langkah 1: Buat Migrasi untuk tabel products
Bash
php artisan make:migration create_products_table Buka file migrasi yang baru dibuat di database/migrations/ dan definisikan skema tabelnya.
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('price');
$table->text('description')->nullable();
$table->timestamps();
});
Langkah 2: Buat Model Product
Bash php artisan make:model Product
Langkah 3: Jalankan Migrasi
Untuk membuat tabel products di database Anda (pastikan konfigurasi database di file .env sudah benar).
Bash php artisan migrate
Langkah 4: Buat Controller
Bash php artisan make:controller ProductController Buka app/Http/Controllers/ProductController.php dan buat method index.
namespace App\Http\Controllers;
use App\Models\Product; // Jangan lupa import Model
use Illuminate\Http\Request;
class ProductController extends Controller
{
public function index()
{
// 1. Ambil semua data produk dari database menggunakan Model
$products = Product::all();
// 2. Kirim data tersebut ke View
return view('products.index', ['products' => $products]);
}
}
Langkah 5: Definisikan Route
Buka routes/web.php dan tambahkan route berikut.
use App\Http\Controllers\ProductController;
Route::get('/products', [ProductController::class, 'index']);
Langkah 6: Buat View Blade
Buat folder products di dalam resources/views/. Lalu buat file baru bernama index.blade.php.
File: resources/views/products/index.blade.php
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Daftar Produk</title>
<style>
body { font-family: sans-serif; }
.product { border: 1px solid #ccc; padding: 10px; margin-bottom: 10px; }
</style>
</head>
<body>
<h1>Daftar Produk Kami</h1>
@if($products->isEmpty())
<p>Saat ini tidak ada produk yang tersedia.</p>
@else
@foreach($products as $product)
<div class="product">
<h2></h2>
<p>Harga: Rp </p>
<p></p>
</div>
@endforeach
@endif
</body>
</html>