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>