Panduan

Folder Penting di Project Laravel

app

Berisi kode utama aplikasi seperti model, service, provider, dan class PHP lain.

routes

Berisi file route. Untuk web, kamu paling sering memakai routes/web.php.

#
resources/views

Berisi file Blade, yaitu template HTML milik Laravel.

#
database/migrations

Berisi blueprint tabel database agar struktur database bisa dikelola lewat kode.

Laravel adalah framework PHP paling populer di dunia saat ini — dan dengan alasan yang sangat kuat. Ia menyediakan tools yang elegan untuk membangun aplikasi web dari yang sederhana hingga yang sangat kompleks, dengan kode yang bersih dan mudah dibaca. Artikel ini adalah bagian pertama dari seri Belajar Laravel dari Nol, yang akan membawamu dari instalasi pertama hingga memahami setiap sudut dan celah struktur project Laravel.

💡 Ini adalah bagian pertama dari seri "Belajar Laravel dari Nol". Seri ini dirancang untuk pemula yang sudah memahami dasar-dasar PHP — variabel, fungsi, array, dan OOP dasar. Jika belum familiar dengan PHP sama sekali, disarankan untuk mempelajari PHP dasar terlebih dahulu sebelum melanjutkan.


Apa yang Akan Kita Pelajari di Seri Ini?

Sebelum mulai, penting untuk tahu ke mana arah perjalanan kita. Seri Belajar Laravel dari Nol dirancang secara progresif — setiap artikel membangun di atas pemahaman dari artikel sebelumnya. Di akhir seri ini, kamu akan mampu membangun aplikasi web lengkap dengan autentikasi, database, dan deployment ke production.

series.txt
Text
SERI BELAJAR LARAVEL DARI NOL:

Bagian 1  → Instalasi dan Struktur Project          ← KAMU DI SINI
Bagian 2  → Routing: Cara Laravel Menangani URL
Bagian 3  → Controller: Logika di Balik Halaman
Bagian 4  → Blade Templating: Tampilan yang Dinamis
Bagian 5  → Migration dan Database Schema
Bagian 6  → Eloquent ORM: Berinteraksi dengan Database
Bagian 7  → Relasi Antar Model (hasMany, belongsTo, dll)
Bagian 8  → Form, Validasi, dan Request Handling
Bagian 9  → Authentication dengan Laravel Breeze
Bagian 10 → Middleware dan Authorization
Bagian 11 → File Upload dan Storage
Bagian 12 → API dengan Laravel Sanctum
Bagian 13 → Testing Dasar di Laravel
Bagian 14 → Deploy Laravel ke VPS Production

Prasyarat: Apa yang Harus Disiapkan?

Laravel modern (versi 11, 12 dan 13) membutuhkan beberapa software yang harus sudah terinstal di komputermu sebelum bisa digunakan. Jangan lewatkan bagian ini — banyak pemula yang langsung mencoba instalasi Laravel tanpa mempersiapkan environment dengan benar, lalu bingung menghadapi error yang sebenarnya mudah dicegah.

#
PHP 8.3 atau lebih tinggi

Laravel 13 membutuhkan PHP versi 8.3 ke atas. Pastikan PHP sudah terinstal dengan versi yang sesuai. Di Windows, cara termudah adalah menggunakan Laragon atau XAMPP versi terbaru. Di macOS, gunakan Homebrew. Di Linux (Ubuntu/Debian), install via apt dengan repository ondrej/php.

#
Composer

Composer adalah package manager untuk PHP — alat yang digunakan Laravel untuk menginstal semua dependensinya. Wajib ada sebelum bisa menginstal Laravel. Download installer composer dan ikuti instruksinya sesuai sistem operasi.

#
Node.js dan NPM

Dibutuhkan untuk mengkompilasi asset frontend (CSS dan JavaScript) menggunakan Vite — build tool modern yang sudah terintegrasi di Laravel. Install versi LTS terbaru dari NodeJs NPM sudah otomatis terinstal bersama Node.js.

#
Code Editor: Visual Studio Code

VS Code adalah code editor gratis yang paling populer untuk pengembangan Laravel. Install extension "Laravel Extension Pack" dan "PHP Intelephense" untuk fitur autocomplete, syntax highlighting, dan snippets yang sangat membantu produktivitas.

#
Database: MySQL atau PostgreSQL

Laravel mendukung banyak database, tapi MySQL dan PostgreSQL adalah yang paling umum digunakan. Untuk development lokal, Laragon (Windows) sudah menyertakan MySQL secara otomatis. Untuk macOS dan Linux, bisa install MySQL via Homebrew atau apt.

verifikasi.txt
Bash
# Verifikasi semua prasyarat sudah terinstal dengan benar

# Cek versi PHP (harus 8.2+)
php --version
# Output: PHP 8.3.x (cli)

# Cek versi Composer
composer --version
# Output: Composer version 2.x.x

# Cek versi Node.js (harus 18+)
node --version
# Output: v20.x.x

# Cek versi NPM
npm --version
# Output: 10.x.x

# Cek PHP extensions yang dibutuhkan Laravel
php -m | grep -E "openssl|pdo|mbstring|tokenizer|xml|ctype|json|bcmath|curl|zip"
# Semua extension di atas harus muncul di output

Instalasi Laravel

Ada dua cara menginstal Laravel: menggunakan Laravel Installer (cara resmi yang direkomendasikan) atau menggunakan Composer create-project. Keduanya menghasilkan project yang identik — perbedaannya hanya pada perintah yang digunakan. Kita akan menggunakan keduanya agar kamu familiar dengan kedua metode.

#
Install Laravel Installer secara global

Laravel Installer adalah tool CLI resmi dari tim Laravel yang memudahkan pembuatan project baru. Install sekali saja secara global menggunakan Composer, setelah itu bisa digunakan berkali-kali untuk membuat project baru tanpa perlu mengunduh ulang seluruh framework.

#
Buat project Laravel baru

Gunakan perintah "laravel new" diikuti nama project untuk membuat project baru. Laravel Installer akan mendownload versi Laravel terbaru, menginstal semua dependensi, dan menyiapkan project. Proses ini membutuhkan koneksi internet dan bisa memakan waktu 1–3 menit tergantung kecepatan internet.

#
Alternatif: Menggunakan Composer create-project

Jika tidak ingin menginstal Laravel Installer secara global, kamu bisa langsung menggunakan Composer untuk membuat project baru. Perintah ini mengunduh template project Laravel dari Packagist dan menginstal semua dependensinya secara otomatis.

#
Jalankan development server

Setelah project berhasil dibuat, masuk ke direktori project dan jalankan development server bawaan Laravel menggunakan perintah Artisan. Server akan berjalan di http://localhost:8000 secara default.

install.txt
Bash
# ── METODE 1: Laravel Installer (Direkomendasikan) ────

# Install Laravel Installer secara global (sekali saja)
composer global require laravel/installer

# Pastikan ~/.composer/vendor/bin ada di PATH kamu
# Tambahkan ke ~/.bashrc atau ~/.zshrc:
# export PATH="$HOME/.composer/vendor/bin:$PATH"

# Buat project Laravel baru
laravel new nama-project

# Saat proses instalasi, kamu akan ditanya:
# → Pilih starter kit: None (untuk belajar dari dasar)
# → Pilih testing framework: PHPUnit atau Pest
# → Inisialisasi git repository: Yes

# ── METODE 2: Composer create-project ─────────────────
composer create-project laravel/laravel nama-project

# ── JALANKAN PROJECT ───────────────────────────────────
cd nama-project

# Jalankan development server Laravel
php artisan serve
# Output: INFO  Server running on [http://127.0.0.1:8000]

# Buka browser: http://localhost:8000
# Kamu akan melihat halaman welcome Laravel

💡 Jika menggunakan Laragon di Windows, kamu tidak perlu menjalankan "php artisan serve" secara manual. Laragon otomatis membuat virtual host dengan URL http://nama-project.test begitu folder project ada di dalam direktori www Laragon. Cukup aktifkan Laragon dan akses URL tersebut langsung dari browser.


Memahami Struktur Folder Project Laravel

Salah satu hal yang pertama kali membingungkan pemula Laravel adalah banyaknya folder dan file yang langsung muncul begitu project dibuat. Jangan panik — kamu tidak perlu memahami semuanya sekaligus. Mari kita bedah satu per satu dari yang paling penting dan paling sering disentuh dalam pengembangan sehari-hari.

struktur-folder.txt
Text
nama-project/
│
├── app/                    ← Inti aplikasi kamu (paling sering disentuh)
│   ├── Console/            ← Artisan commands kustom
│   ├── Exceptions/         ← Exception handler
│   ├── Http/
│   │   ├── Controllers/    ← ⭐ Controller (logika request/response)
│   │   ├── Middleware/     ← Filter request sebelum sampai controller
│   │   └── Requests/       ← Form Request (validasi)
│   ├── Models/             ← ⭐ Eloquent Model (representasi tabel database)
│   └── Providers/          ← Service Provider (bootstrap aplikasi)
│
├── bootstrap/              ← Inisialisasi framework (jangan diubah)
│   └── app.php             ← Entry point konfigurasi aplikasi
│
├── config/                 ← ⭐ File konfigurasi (database, mail, cache, dll)
│   ├── app.php
│   ├── database.php
│   └── ...
│
├── database/               ← ⭐ Semua yang berkaitan dengan database
│   ├── factories/          ← Factory untuk generate data dummy
│   ├── migrations/         ← ⭐ Schema database (struktur tabel)
│   └── seeders/            ← Data awal / data dummy
│
├── public/                 ← ⭐ Document root web server (satu-satunya yang publik)
│   ├── index.php           ← Entry point semua request HTTP
│   ├── css/                ← Asset CSS yang sudah dikompilasi
│   └── js/                 ← Asset JS yang sudah dikompilasi
│
├── resources/              ← ⭐ Tampilan dan asset mentah
│   ├── css/                ← CSS sumber (sebelum dikompilasi)
│   ├── js/                 ← JavaScript sumber
│   └── views/              ← ⭐ File Blade template (tampilan HTML)
│
├── routes/                 ← ⭐ Definisi semua URL / endpoint aplikasi
│   ├── web.php             ← ⭐ Route untuk halaman web (dengan session)
│   ├── api.php             ← Route untuk REST API (stateless)
│   └── console.php         ← Route untuk Artisan commands
│
├── storage/                ← File yang di-generate aplikasi
│   ├── app/                ← File upload dari pengguna
│   ├── framework/          ← Cache, session, compiled views
│   └── logs/               ← ⭐ Log aplikasi (laravel.log)
│
├── tests/                  ← Unit test dan feature test
│   ├── Feature/
│   └── Unit/
│
├── vendor/                 ← Dependensi dari Composer (jangan diubah!)
│
├── .env                    ← ⭐ Environment variables (JANGAN di-commit ke Git!)
├── .env.example            ← Template .env untuk referensi
├── artisan                 ← ⭐ CLI tool Laravel
├── composer.json           ← Daftar dependensi PHP
├── package.json            ← Daftar dependensi Node.js
└── vite.config.js          ← Konfigurasi Vite (build tool frontend)

Folder dan File yang Paling Sering Disentuh

Dari sekian banyak folder di atas, sebagai pemula kamu tidak perlu menyentuh semuanya. Ada beberapa lokasi yang akan kamu kunjungi berkali-kali setiap hari saat mengembangkan aplikasi Laravel — dan ada yang mungkin tidak pernah perlu kamu ubah sama sekali selama berbulan-bulan.

#
routes/web.php — Gerbang Utama Aplikasi

File ini adalah tempat pertama yang harus kamu pahami. Semua URL yang bisa diakses oleh pengguna didefinisikan di sini — "jika pengguna mengakses URL /tentang, jalankan kode ini." Di sinilah kamu menghubungkan URL dengan Controller atau langsung mengembalikan tampilan.

#
app/Http/Controllers/ — Otak Aplikasi

Controller berisi logika bisnis aplikasi — mengambil data dari database, memprosesnya, dan mengirim hasilnya ke tampilan. Setiap halaman atau fitur biasanya memiliki Controller-nya sendiri. Ini adalah folder yang paling sering kamu buat file baru di dalamnya.

#
app/Models/ — Representasi Database

Setiap tabel di database biasanya memiliki satu Model yang merepresentasikannya. Model adalah cara Laravel (melalui Eloquent ORM) berinteraksi dengan database — membaca, menulis, mengupdate, dan menghapus data dengan cara yang sangat ekspresif dan mudah dibaca.

#
resources/views/ — Tampilan Pengguna

Semua file Blade template (file .blade.php) yang menghasilkan HTML yang dilihat pengguna disimpan di sini. Blade adalah templating engine Laravel yang memungkinkan kamu menulis PHP di dalam HTML dengan sintaks yang jauh lebih bersih dan mudah dibaca.

#
database/migrations/ — Sejarah Schema Database

Migration adalah cara Laravel mengelola struktur database — membuat tabel, menambah kolom, mengubah index — dengan kode PHP, bukan SQL langsung. Setiap perubahan schema dibuat sebagai file migration baru yang bisa di-run, di-rollback, dan dilacak menggunakan version control.

#
.env — Konfigurasi Rahasia

File .env menyimpan semua konfigurasi yang bersifat rahasia atau berbeda antar environment: nama database, password, API key, konfigurasi email, dan lainnya. File ini tidak boleh di-commit ke Git dan harus ada di setiap environment (development, staging, production) dengan nilainya masing-masing.

Konfigurasi File .env

File .env adalah jantung konfigurasi aplikasi Laravel. Setiap kali kamu memulai project baru atau mengkloning project dari repository, hal pertama yang perlu dikonfigurasi adalah file ini — terutama bagian koneksi database. Tanpa konfigurasi yang benar di sini, hampir semua fitur Laravel yang bergantung pada database tidak akan berfungsi.

env.txt
Bash
# File .env — bagian yang paling sering perlu diubah

# Nama dan URL aplikasi
APP_NAME="Aplikasi Saya"
APP_ENV=local          # local | staging | production
APP_KEY=base64:...     # Auto-generated saat instalasi
APP_DEBUG=true         # Set ke false di production!
APP_URL=http://localhost:8000

# ── KONFIGURASI DATABASE ──────────────────────────────
DB_CONNECTION=mysql    # mysql | pgsql | sqlite | sqlsrv
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database_kamu
DB_USERNAME=root
DB_PASSWORD=password_kamu

# ── KONFIGURASI CACHE & SESSION ───────────────────────
CACHE_STORE=file       # file | redis | database | array
SESSION_DRIVER=file    # file | redis | database | cookie

# ── KONFIGURASI QUEUE ─────────────────────────────────
QUEUE_CONNECTION=sync  # sync | database | redis

# ── KONFIGURASI EMAIL ─────────────────────────────────
MAIL_MAILER=log        # log (dev) | smtp | ses | mailgun
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_FROM_ADDRESS="noreply@aplikasi.com"
MAIL_FROM_NAME="${APP_NAME}"
artisan.txt
Bash
# Setelah mengubah .env, generate application key
# (hanya perlu dilakukan sekali saat project baru dibuat)
php artisan key:generate

# Verifikasi koneksi database
php artisan db:show

# Atau coba jalankan migration (jika database sudah ada)
php artisan migrate

# Bersihkan cache konfigurasi jika perubahan .env
# tidak terasa efeknya
php artisan config:clear
php artisan cache:clear

⚠️ PENTING: File .env sudah otomatis masuk ke dalam .gitignore, artinya tidak akan ter-commit ke repository Git. Ini adalah fitur keamanan yang disengaja — jangan pernah menghapus baris .env dari .gitignore atau meng-commit file .env ke repository, terutama jika repository bersifat publik. Gunakan .env.example sebagai template yang di-commit ke Git.


Mengenal Artisan CLI — Asisten Setia Laravel

Artisan adalah command-line interface (CLI) bawaan Laravel yang akan menjadi salah satu tools paling sering kamu gunakan. Ia mempercepat hampir semua tugas development yang berulang: membuat file baru, menjalankan migration, membersihkan cache, berinteraksi dengan aplikasi secara langsung, dan masih banyak lagi. Menguasai Artisan adalah kunci produktivitas sebagai Laravel developer.

perintah-artisan.txt
Bash
# Lihat semua perintah Artisan yang tersedia
php artisan list

# Lihat bantuan untuk perintah tertentu
php artisan help make:controller

# ── PERINTAH MAKE: Generate file baru ─────────────────
php artisan make:model Post              # Buat Model
php artisan make:model Post -m           # Model + Migration
php artisan make:model Post -mcrs        # Model + Migration + Controller + Seeder
php artisan make:controller PostController           # Controller kosong
php artisan make:controller PostController --resource # Controller dengan 7 method CRUD
php artisan make:migration create_posts_table        # File migration
php artisan make:seeder PostSeeder                   # Seeder
php artisan make:factory PostFactory                 # Factory
php artisan make:request StorePostRequest            # Form Request
php artisan make:middleware CheckAge                 # Middleware
php artisan make:command SendDailyReport             # Custom Artisan command

# ── DATABASE ───────────────────────────────────────────
php artisan migrate                  # Jalankan semua migration pending
php artisan migrate:fresh            # Drop semua tabel lalu migrate ulang
php artisan migrate:fresh --seed     # Fresh migrate + jalankan seeder
php artisan migrate:rollback         # Batalkan migration terakhir
php artisan migrate:status           # Lihat status semua migration
php artisan db:seed                  # Jalankan seeder
php artisan db:seed --class=PostSeeder # Jalankan seeder tertentu

# ── CACHE & OPTIMASI ───────────────────────────────────
php artisan cache:clear              # Bersihkan application cache
php artisan config:clear             # Bersihkan config cache
php artisan route:clear              # Bersihkan route cache
php artisan view:clear               # Bersihkan compiled views
php artisan optimize:clear           # Bersihkan semua cache sekaligus

# ── DEBUGGING & EXPLORASI ─────────────────────────────
php artisan route:list               # Lihat semua route yang terdaftar
php artisan tinker                   # REPL interaktif — jalankan kode PHP
php artisan about                    # Info singkat tentang aplikasi
php artisan serve                    # Jalankan development server

Request Lifecycle: Bagaimana Laravel Memproses Request?

Memahami bagaimana sebuah request HTTP diproses dari awal hingga respons dikirim kembali ke browser adalah fondasi yang sangat membantu dalam memahami mengapa Laravel bekerja dengan cara yang ia lakukan. Pengetahuan ini akan membuatmu jauh lebih mudah men-debug masalah dan memahami di mana seharusnya kamu menaruh kode tertentu.

#
Request masuk ke public/index.php

Semua request HTTP yang masuk ke aplikasi Laravel selalu dimulai dari satu titik: file public/index.php. Inilah mengapa saat konfigurasi web server (Nginx atau Apache), document root harus diarahkan ke folder public/ — bukan ke root project. File ini melakukan bootstrap (inisialisasi) framework Laravel.

#
Bootstrap: Service Container dan Service Providers

Laravel melakukan inisialisasi semua komponen yang dibutuhkan aplikasi melalui Service Providers — mendaftarkan binding ke Service Container, mengatur koneksi database, menyiapkan event listeners, dan berbagai konfigurasi lainnya. Proses ini terjadi di balik layar setiap kali ada request masuk.

#
Middleware: Filter Request

Sebelum request sampai ke Controller, ia harus melewati satu atau beberapa Middleware. Middleware bisa memeriksa apakah pengguna sudah login, memvalidasi CSRF token, mengatur CORS header, atau melakukan logging. Middleware yang gagal bisa menghentikan request dan langsung mengembalikan respons (misalnya redirect ke halaman login).

#
Router: Tentukan Handler

Router mencocokkan URL dan HTTP method dari request dengan definisi route di file routes/web.php atau routes/api.php. Jika ditemukan kecocokan, router menentukan Controller dan method mana yang harus menangani request ini.

#
Controller: Proses dan Respons

Controller method yang ditunjuk oleh router dieksekusi — mengambil data dari database melalui Model, memproses logika bisnis, lalu mengembalikan respons. Respons bisa berupa View (HTML), JSON (untuk API), redirect, atau tipe lainnya.

alur-request.txt
Text
ALUR REQUEST LARAVEL (disederhanakan):

Browser/Client
     │
     │  HTTP Request (GET /posts)
     ▼
public/index.php
     │
     │  Bootstrap framework
     ▼
Middleware Stack
     │
     │  Cek auth, CSRF, dll
     ▼
Router (routes/web.php)
     │
     │  Route::get('/posts', [PostController::class, 'index'])
     ▼
Controller Method
     │  app/Http/Controllers/PostController.php → index()
     │
     ├── Model (app/Models/Post.php)
     │     └── Query database → ambil data posts
     │
     └── Return View / JSON Response
             │
             ▼
     resources/views/posts/index.blade.php
             │
             │  Render HTML
             ▼
     HTTP Response dikirim ke Browser

Membuat Halaman Pertama dengan Laravel

Teori akan lebih mudah dipahami dengan langsung praktik. Mari buat halaman sederhana dari awal — mendefinisikan route, membuat controller, dan menampilkan view — untuk merasakan alur kerja dasar Laravel secara langsung. Ini adalah "Hello World" versi Laravel yang sesungguhnya.

Panduan

Langkah Membuat Halaman Pertama

#
route.php
PHP
// ── LANGKAH 1: routes/web.php ─────────────────────────
<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HaloController;

// Route yang sudah ada (halaman welcome)
Route::get('/', function () {
    return view('welcome');
});

// Route baru yang kita tambahkan
Route::get('/halo', [HaloController::class, 'index']);
Route::get('/halo/{nama}', [HaloController::class, 'sapa']);
Tambahkan Route di routes/web.php

Buka file routes/web.php dan tambahkan definisi route baru. Route ini memberitahu Laravel: "Jika ada request GET ke URL /halo, jalankan method halo() di HaloController."

#
perintah-artisan.txt
Bash
# ── LANGKAH 2: Buat Controller dengan Artisan ─────────
php artisan make:controller HaloController
# File dibuat: app/Http/Controllers/HaloController.php
Buat Controller dengan Artisan

Gunakan Artisan untuk membuat file Controller baru secara otomatis. Artisan akan membuat file di lokasi yang tepat (app/Http/Controllers/) dengan struktur dasar yang sudah siap.

#
HaloController.php
PHP
// ── LANGKAH 3: app/Http/Controllers/HaloController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HaloController extends Controller
{
    // Method untuk route GET /halo
    public function index()
    {
        $data = [
            'judul'   => 'Selamat Datang di Laravel!',
            'pesan'   => 'Ini adalah halaman pertama yang kita buat bersama.',
            'fitur'   => ['Routing', 'Controller', 'Blade View', 'Eloquent ORM'],
        ];

        // Kirim data ke view 'halo.index'
        // (file: resources/views/halo/index.blade.php)
        return view('halo.index', $data);
    }

    // Method untuk route GET /halo/{nama}
    public function sapa(string $nama)
    {
        return view('halo.sapa', [
            'nama' => ucfirst($nama),
        ]);
    }
}
Tambahkan Method di Controller

Buka Controller yang baru dibuat dan tambahkan method halo(). Method ini akan mengambil data (jika diperlukan) dan mengembalikan view untuk ditampilkan ke pengguna.

#
index.blade
BLADE
{{-- ── LANGKAH 4: resources/views/halo/index.blade.php ──
     Buat folder "halo" di dalam resources/views/ terlebih dahulu --}}

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ $judul }}</title>
    <style>
        body { font-family: sans-serif; max-width: 600px; margin: 50px auto; padding: 0 20px; }
        h1   { color: #f05340; }
        li   { margin: 8px 0; }
    </style>
</head>
<body>
    {{-- Tampilkan variabel $judul dari Controller --}}
    <h1>{{ $judul }}</h1>

    {{-- Tampilkan variabel $pesan --}}
    <p>{{ $pesan }}</p>

    {{-- Loop array $fitur menggunakan Blade @foreach --}}
    <h2>Yang akan kita pelajari:</h2>
    <ul>
        @foreach ($fitur as $item)
            <li>✓ {{ $item }}</li>
        @endforeach
    </ul>

    {{-- Link ke route /halo/{nama} --}}
    <p>
        Coba: <a href="/halo/budi">Sapa Budi</a> |
              <a href="/halo/sari">Sapa Sari</a>
    </p>
</body>
</html>
Buat File View Blade

Buat file Blade template di resources/views/ yang akan menghasilkan HTML yang dilihat pengguna. Di sinilah tampilan halaman didefinisikan menggunakan HTML biasa yang bisa dikombinasikan dengan sintaks Blade Laravel.

💡 Perhatikan sintaks {{ $variabel }} di Blade — ini adalah cara menampilkan variabel yang sudah otomatis di-escape untuk mencegah XSS (Cross-Site Scripting). Jika kamu ingin menampilkan HTML mentah tanpa escaping, gunakan {!! $variabel !!} — tapi hanya lakukan ini jika benar-benar yakin kontennya aman.


Verifikasi: Cek Semua Route yang Terdaftar

Salah satu perintah Artisan yang paling berguna saat development adalah route:list — ia menampilkan semua route yang terdaftar di aplikasimu beserta method HTTP, URI, controller, dan middleware yang digunakan. Gunakan ini kapanpun kamu lupa nama route atau ingin memastikan route baru sudah terdaftar dengan benar.

route-list.txt
Text
# Lihat semua route yang terdaftar
php artisan route:list

# Output:
#  GET|HEAD  /          ....................................................
#  GET|HEAD  /halo      HaloController@index
#  GET|HEAD  /halo/{nama} HaloController@sapa
#  GET|HEAD  /up        ← Route health check bawaan Laravel

# Filter route berdasarkan nama atau path
php artisan route:list --path=halo

# Tampilkan dengan informasi middleware
php artisan route:list -v

Langkah Selanjutnya

Selamat — kamu telah berhasil menginstal Laravel, memahami struktur project secara menyeluruh, mengkonfigurasi environment, mengenal Artisan CLI, memahami request lifecycle, dan bahkan berhasil membuat halaman pertama dengan route, controller, dan view! Ini adalah fondasi yang sangat solid untuk melanjutkan perjalanan belajar Laravel. Di bagian kedua seri ini, kita akan menyelami sistem routing Laravel secara mendalam — named routes, route groups, route parameters, dan berbagai fitur routing canggih yang membuat pengembangan aplikasi web jauh lebih terorganisir.

🚀 Sebelum lanjut ke bagian berikutnya, pastikan kamu sudah berhasil: (1) menginstal Laravel dan melihat halaman welcome di browser, (2) memahami fungsi setiap folder utama di struktur project, (3) mengkonfigurasi file .env dengan database yang benar, dan (4) berhasil membuat dan mengakses halaman /halo yang kita buat bersama. Jika masih ada yang belum berhasil, jangan ragu untuk mengulang — fondasi yang kuat di bagian ini akan sangat membantu di bagian-bagian selanjutnya.