Pendahuluan
Di artikel sebelumnya kita sudah memahami apa itu Laravel dan mengapa framework ini sangat populer di Indonesia. Sekarang saatnya kita turun tangan langsung — install Laravel dan jalankan server pertama kita!
Di akhir artikel ini, kamu akan berhasil:
- Menginstall PHP, Composer, dan Laravel Installer
- Membuat proyek Laravel baru
- Memahami fungsi setiap folder dalam struktur proyek
- Mengkonfigurasi koneksi database
- Menjalankan server development lokal
Dibutuhkan waktu sekitar 15-20 menit. Mari mulai!
Kebutuhan Sistem
Sebelum menginstall Laravel 12, pastikan sistemmu memenuhi persyaratan berikut:
| Kebutuhan | Versi Minimum |
|---|---|
| PHP | 8.2+ |
| Composer | 2.x |
| Node.js & NPM | 20+ (opsional, untuk asset frontend) |
| Database | MySQL 8.0+ / PostgreSQL 15+ / SQLite 3 |
Langkah 1: Install PHP
Windows — Gunakan Laragon (Rekomendasi)
Untuk developer Windows, Laragon adalah pilihan terbaik karena menyertakan PHP, MySQL, Composer, dan server dalam satu paket yang mudah dikelola.
# 1. Download Laragon dari https://laragon.org/download/
# 2. Install dengan setting default
# 3. Aktifkan Laragon, klik "Start All"
# 4. Buka terminal Laragon (Terminal icon di tray)
php --version
# Harus menampilkan: PHP 8.2.x atau lebih baru
Tip: Jika kamu sudah punya XAMPP versi lama (PHP 7.x), lebih baik uninstall XAMPP dan beralih ke Laragon untuk menghindari konflik.
Mac — Gunakan Homebrew
# Install Homebrew jika belum ada
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install PHP 8.3
brew install [email protected]
echo 'export PATH="/opt/homebrew/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
php --version
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install php8.3 php8.3-cli php8.3-mbstring php8.3-xml \
php8.3-curl php8.3-zip php8.3-mysql php8.3-pgsql -y
php --version
Langkah 2: Install Composer
Composer adalah package manager untuk PHP — setara dengan npm untuk JavaScript. Laravel membutuhkan Composer untuk menginstall semua dependensinya.
Windows
# Download installer dari https://getcomposer.org/Composer-Setup.exe
# Jalankan installer, ikuti wizard
# Composer otomatis ditambahkan ke PATH
# Verifikasi
composer --version
# Harus menampilkan: Composer version 2.x.x
Mac & Linux
# Download dan install Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
sudo mv composer.phar /usr/local/bin/composer
# Verifikasi
composer --version
Langkah 3: Install Laravel Installer
Laravel Installer adalah tool CLI yang memudahkan pembuatan proyek baru.
# Install secara global menggunakan Composer
composer global require laravel/installer
# Tambahkan ke PATH (jika belum otomatis)
# Windows: C:\Users\[Username]\AppData\Roaming\Composer\vendor\bin
# Mac/Linux: tambahkan ke ~/.bashrc atau ~/.zshrc
export PATH="$HOME/.composer/vendor/bin:$PATH"
# Verifikasi
laravel --version
Langkah 4: Buat Proyek Laravel Baru
Sekarang kita buat proyek Laravel pertama! Kita akan membuat proyek bernama “task-manager” yang akan kita kembangkan sepanjang seri ini.
# Pindah ke direktori proyek kamu
cd ~/Projects # Mac/Linux
# atau
cd C:\laragon\www # Windows dengan Laragon
# Buat proyek baru
laravel new task-manager
# Ikuti pertanyaan interaktif:
# ┌ Would you like to install a starter kit? ──────────────┐
# │ No starter kit │
# └─────────────────────────────────────────────────────────┘
# Pilih: No starter kit (kita akan install manual nanti)
#
# ┌ Which database will your application use? ─────────────┐
# │ SQLite (default) │
# └─────────────────────────────────────────────────────────┘
# Pilih: MySQL (jika sudah ada MySQL) atau SQLite (untuk mulai cepat)
Alternatif via Composer (jika Laravel Installer belum terinstall):
composer create-project laravel/laravel task-manager
Proses ini membutuhkan beberapa menit untuk mengunduh semua dependensi. Setelah selesai, masuk ke direktori proyek:
cd task-manager
Langkah 5: Jalankan Server Development
php artisan serve
# Output:
# INFO Server running on [http://127.0.0.1:8000].
# Press Ctrl+C to stop the server
Buka browser dan akses http://localhost:8000. Kamu akan melihat halaman sambutan Laravel!
Memahami Struktur Folder Laravel
Inilah bagian yang sering membingungkan pemula. Folder apa saja yang penting? Apa fungsinya?
task-manager/
├── app/ ← Kode inti aplikasi
│ ├── Http/
│ │ ├── Controllers/ ← Controller (logika request-response)
│ │ ├── Middleware/ ← Filter sebelum request masuk
│ │ └── Requests/ ← Form Request validation
│ ├── Models/ ← Eloquent Models (representasi tabel DB)
│ └── Providers/ ← Service Providers
│
├── bootstrap/ ← Bootstrap aplikasi (jangan diubah)
├── config/ ← Semua file konfigurasi
│ ├── app.php ← Konfigurasi umum (timezone, locale, dll)
│ ├── database.php ← Koneksi database
│ └── cors.php ← Konfigurasi CORS (penting untuk API!)
│
├── database/
│ ├── migrations/ ← File migrasi database (schema)
│ ├── seeders/ ← Data dummy untuk development
│ └── factories/ ← Factory untuk generate data palsu
│
├── public/ ← Document root web server
│ └── index.php ← Entry point semua request
│
├── resources/
│ ├── views/ ← Template Blade (.blade.php)
│ ├── css/ ← CSS source files
│ └── js/ ← JavaScript source files
│
├── routes/
│ ├── web.php ← Route untuk halaman web (dengan session)
│ └── api.php ← Route untuk API (stateless, butuh install:api)
│
├── storage/ ← File upload, cache, log
│ └── logs/ ← Laravel log files (debug di sini!)
│
├── tests/ ← Unit test dan Feature test
├── vendor/ ← Dependensi Composer (jangan diubah!)
│
├── .env ← Konfigurasi environment (RAHASIA!)
├── .env.example ← Template .env untuk tim
├── artisan ← CLI artisan
└── composer.json ← Daftar dependensi PHP
Folder yang Paling Sering Kamu Sentuh
| Folder/File | Kapan Digunakan |
|---|---|
app/Models/ | Saat membuat atau mengedit Model Eloquent |
app/Http/Controllers/ | Saat menambah logika bisnis dan request handling |
resources/views/ | Saat mendesain tampilan Blade |
routes/web.php | Saat mendefinisikan URL halaman |
database/migrations/ | Saat membuat atau mengubah struktur tabel |
.env | Saat mengkonfigurasi database, API key, dll |
Langkah 6: Konfigurasi Database
File .env adalah tempat semua konfigurasi sensitif disimpan. Jangan commit file ini ke Git!
Buka file .env di root proyek:
APP_NAME=TaskManager
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000
# ─── Konfigurasi Database ───────────────────────────────
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=task_manager
DB_USERNAME=root
DB_PASSWORD=
# Jika menggunakan Laragon, password default biasanya kosong
Membuat Database
-- Buka phpMyAdmin (Laragon) atau terminal MySQL
-- Buat database baru
CREATE DATABASE task_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Jalankan Migrasi Default
Laravel sudah menyertakan beberapa migrasi bawaan (tabel users, password_resets, dll):
php artisan migrate
# Output:
# INFO Running migrations.
# 2024_01_01_000001_create_users_table ..................... 23ms DONE
# 2024_01_01_000002_create_password_reset_tokens_table .... 12ms DONE
# ...
Perintah Artisan yang Wajib Diketahui
Artisan adalah CLI tool yang akan menjadi sahabatmu sehari-hari:
# Server
php artisan serve # Jalankan server development
# Generate file
php artisan make:model Post # Buat Model
php artisan make:controller PostController # Buat Controller
php artisan make:migration create_posts_table # Buat Migration
php artisan make:model Post -mcr # Model + Migration + Controller sekaligus
# Database
php artisan migrate # Jalankan semua migration
php artisan migrate:rollback # Batalkan migration terakhir
php artisan migrate:fresh # Drop semua tabel, jalankan ulang
# Informasi
php artisan route:list # Lihat semua route terdaftar
php artisan tinker # REPL interaktif
# Cache
php artisan config:clear # Bersihkan cache config
php artisan cache:clear # Bersihkan app cache
Opsi Penggunaan SQLite (Lebih Cepat untuk Development)
Jika kamu tidak ingin menginstall MySQL dan hanya ingin mulai coding, SQLite adalah pilihan yang sangat praktis:
# Di file .env, ubah konfigurasi database:
DB_CONNECTION=sqlite
# Hapus atau comment baris DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
# Buat file database SQLite
touch database/database.sqlite
# Jalankan migrasi
php artisan migrate
SQLite menyimpan semua data dalam satu file. Sangat cocok untuk development dan prototyping cepat.
Troubleshooting: Error yang Sering Muncul
composer: command not found Setelah Install
Penyebab: PATH untuk Composer global tidak ditambahkan ke terminal session.
Solusi:
# Mac/Linux — tambahkan ke ~/.bashrc atau ~/.zshrc
echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# Windows — tambahkan ke Environment Variables
# C:\Users\[Username]\AppData\Roaming\Composer\vendor\bin
php artisan serve Port 8000 Sudah Dipakai
Penyebab: Ada aplikasi lain yang menggunakan port 8000 (contoh: Python dev server atau Laravel lain yang sedang berjalan).
Solusi:
# Gunakan port berbeda
php artisan serve --port=8080
# Atau cari dan matikan proses yang menggunakan port 8000
# Windows:
netstat -ano | findstr :8000
taskkill /PID [nomor_pid] /F
# Mac/Linux:
lsof -ti:8000 | xargs kill
File .env Tidak Ada
Penyebab: Terjadi jika clone dari Git repository (.env tidak di-commit ke Git).
Solusi:
# Copy dari .env.example
cp .env.example .env
# Generate application key
php artisan key:generate
# Kemudian konfigurasi database di .env
Pertanyaan yang Sering Diajukan
Laragon vs XAMPP, mana yang lebih baik?
Laragon sangat direkomendasikan untuk developer Windows karena: lebih ringan, mendukung virtual host otomatis, bisa mengelola beberapa versi PHP, dan sudah include Composer. XAMPP sudah terlalu lama dan sering bermasalah dengan PHP versi terbaru.
Apakah bisa menggunakan PHP versi lama seperti 7.4?
Tidak bisa untuk Laravel 12. PHP minimum 8.2 wajib. Jika proyek lama masih menggunakan PHP 7.4, kamu perlu menggunakan Laravel versi lebih lama (Laravel 9 untuk PHP 8.0+, Laravel 8 untuk PHP 7.3+). Sangat disarankan untuk meng-upgrade PHP karena PHP 7.4 sudah end-of-life.
Haruskah menggunakan MySQL atau SQLite untuk belajar?
Untuk belajar dan development, SQLite jauh lebih simpel karena tidak perlu konfigurasi server database. Untuk production, gunakan MySQL atau PostgreSQL. Kabar baiknya, mengubah database di Laravel sangat mudah — cukup ganti konfigurasi di .env.
Mengapa ada folder vendor yang sangat besar?
Folder vendor berisi semua dependensi PHP yang diinstall oleh Composer. Folder ini tidak perlu di-commit ke Git (sudah ada di .gitignore). Ketika kolega meng-clone proyekmu, mereka tinggal jalankan composer install untuk mengunduh ulang semua dependensi.
Kesimpulan
Selamat! Kamu sudah berhasil menginstall Laravel dan memahami struktur proyeknya. Kita sudah melewati:
- Instalasi PHP, Composer, dan Laravel Installer di berbagai sistem operasi
- Membuat proyek baru dengan
laravel new - Memahami fungsi setiap folder dalam proyek Laravel
- Konfigurasi database dan menjalankan migrasi pertama
- Perintah-perintah Artisan yang akan sering digunakan
Di artikel berikutnya, kita akan masuk ke inti Laravel: Routing dan Controller — cara menghubungkan URL dengan kode PHP.
Jangan khawatir jika ada yang belum 100% paham — semuanya akan semakin jelas saat kita mulai membangun aplikasi sungguhan. Keep going, kamu luar biasa! 💪