Membuat project Laravel untuk pertama kali sering terasa lebih rumit daripada yang sebenarnya. Banyak pemula sudah memahami dasar PHP dan Composer, tetapi masih bingung dengan pertanyaan sederhana: setelah Laravel terpasang, perintah apa yang harus dijalankan, file mana yang perlu diubah, bagaimana membuat URL, dan bagaimana menampilkan halaman HTML melalui Laravel?
Artikel ini membahas cara membuat project Laravel dari awal hingga berhasil menampilkan halaman pertama di browser. Pembahasan dibuat bertahap agar bisa diikuti oleh pembaca yang baru mulai mengenal Laravel, tetapi tetap memberikan fondasi yang cukup bagi developer yang ingin memahami bagaimana sebuah aplikasi Laravel bekerja.
Pada contoh di bawah, kita menggunakan Laravel 13, versi utama Laravel yang tersedia saat artikel ini ditulis pada 25 Agustus 2026. Skeleton aplikasi Laravel 13 pada branch resminya mensyaratkan PHP ^8.3, sementara dokumentasi instalasi Laravel saat ini merekomendasikan PHP, Composer, Laravel installer, serta Node dan NPM atau Bun untuk kebutuhan aset frontend.
Setelah mengikuti tutorial ini, Anda akan memahami cara:
- Memeriksa environment sebelum membuat project Laravel.
- Membuat project Laravel baru menggunakan Laravel Installer.
- Mengenal struktur folder utama Laravel.
- Menjalankan Laravel di server lokal.
- Membuat route pertama.
- Membuat halaman dengan Blade.
- Mengirim data dari route ke view.
- Memahami hubungan antara route, view, dan browser.
- Mengatasi masalah umum ketika project Laravel tidak dapat dijalankan.
Apa yang Perlu Disiapkan Sebelum Membuat Project Laravel?
Sebelum menjalankan perintah untuk membuat project, pastikan komputer sudah memiliki environment yang diperlukan. Laravel bukan aplikasi yang dapat berjalan hanya dengan mengunduh satu folder framework karena aplikasinya bergantung pada PHP, package manager, serta tool frontend.
Untuk Laravel 13, aplikasi skeleton resminya membutuhkan PHP 8.3 atau lebih baru. Composer digunakan untuk mengelola dependency PHP, sedangkan Node dan NPM atau Bun diperlukan ketika aplikasi menggunakan proses build aset frontend.
Berikut komponen utama yang sebaiknya tersedia:
| Komponen | Fungsi |
|---|
| PHP | Menjalankan kode Laravel |
| Composer | Mengelola dependency PHP |
| Laravel Installer | Membuat project Laravel baru |
| Node.js | Menjalankan tool JavaScript |
| NPM / Bun | Mengelola dependency frontend |
| Code Editor | Menulis dan mengubah kode |
| Browser | Mengakses aplikasi Laravel |
Untuk memeriksa PHP, buka terminal dan jalankan:
php -v
Contoh hasil:
PHP 8.4.x
Kemudian periksa Composer:
composer -V
Composer merupakan package manager untuk PHP dan digunakan Laravel untuk mengelola dependency aplikasi. Dokumentasi resmi Composer juga menjelaskan bahwa Composer bersifat lintas platform dan tersedia untuk Windows, macOS, serta Linux.
Periksa juga Node.js:
node -v
dan NPM:
npm -v
Apabila salah satu perintah tersebut tidak dikenali, berarti programnya belum tersedia pada PATH sistem atau memang belum terinstal.
Apakah Wajib Menggunakan XAMPP?
Tidak.
Ini merupakan salah satu hal yang sering membingungkan pemula. Laravel modern menyediakan server pengembangan lokal sehingga Anda tidak harus menjalankan Apache melalui XAMPP hanya untuk membuka aplikasi Laravel.
Dokumentasi Laravel saat ini menggunakan alur composer run dev untuk menjalankan server pengembangan aplikasi beserta proses pendukungnya. Setelah proses tersebut berjalan, aplikasi dapat diakses melalui http://localhost:8000.
XAMPP tetap dapat digunakan untuk kebutuhan tertentu, terutama ketika Anda membutuhkan MySQL atau konfigurasi Apache. Namun untuk latihan membuat project Laravel pertama, server pengembangan Laravel sudah cukup.
Cara Install Laravel Installer
Setelah PHP dan Composer tersedia, langkah berikutnya adalah memasang Laravel Installer.
Laravel Installer adalah command-line tool yang menyediakan perintah laravel untuk membuat aplikasi baru.
Jalankan:
composer global require laravel/installer
Perintah tersebut memasang Laravel Installer secara global melalui Composer. Dokumentasi Laravel saat ini juga menggunakan perintah tersebut sebagai salah satu cara memasang installer ketika PHP dan Composer sudah tersedia.
Setelah instalasi selesai, periksa apakah command laravel sudah dikenali:
laravel --version
Jika berhasil, terminal akan menampilkan versi Laravel Installer yang terpasang.
Jika muncul pesan seperti:
'laravel' is not recognized as an internal or external command
pada Windows, kemungkinan direktori executable Composer global belum masuk ke PATH. Hal ini berbeda dengan masalah Laravel itu sendiri; sistem operasi belum menemukan executable laravel.
Composer sendiri menjelaskan bahwa instalasi global pada Windows dapat memerlukan konfigurasi PATH agar executable dapat dipanggil dari direktori mana pun. Setelah mengubah PATH, terminal biasanya perlu ditutup dan dibuka kembali agar konfigurasi baru terbaca.
Cara Membuat Project Laravel Baru
Setelah Laravel Installer siap, tentukan lokasi tempat project akan dibuat.
Misalnya Anda ingin menyimpan project di folder:
D:\Projects
Masuk ke folder tersebut melalui terminal:
cd D:\Projects
Kemudian buat aplikasi Laravel baru:
laravel new belajar-laravel
Pada Laravel versi terbaru, perintah laravel new akan membuat aplikasi baru dan menjalankan proses setup interaktif. Installer dapat meminta pilihan seperti framework pengujian, database, dan starter kit.
Nama:
belajar-laravel
adalah nama folder project. Anda dapat menggantinya dengan nama lain, misalnya:
laravel new website-saya
atau:
laravel new blog-pribadi
Sebaiknya gunakan nama project yang jelas dan hindari spasi agar lebih mudah digunakan melalui terminal.
Setelah selesai, struktur project akan dibuat secara otomatis.
Masuk ke project:
cd belajar-laravel
Pada tahap ini, Anda sudah memiliki sebuah aplikasi Laravel, meskipun belum membuat halaman sendiri.
Mengenal Struktur Folder Project Laravel
Salah satu kesalahan umum pemula adalah langsung mengubah banyak file tanpa memahami fungsi masing-masing folder.
Laravel menyediakan struktur aplikasi yang sudah terorganisasi. Dokumentasi resmi menjelaskan bahwa struktur tersebut dirancang sebagai fondasi untuk aplikasi kecil maupun besar.
Secara umum, Anda akan menemukan struktur seperti:
belajar-laravel/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── tests/
├── vendor/
├── .env
├── artisan
├── composer.json
└── package.json
Mari lihat folder yang paling penting untuk pemula.
Folder app
Folder app berisi kode inti aplikasi. Controller, model, dan berbagai class aplikasi umumnya ditempatkan di dalam folder ini.
Pada tahap awal, Anda mungkin akan sering bekerja dengan:
app/Http/Controllers
untuk controller dan:
app/Models
untuk model.
Folder routes
Folder routes berisi definisi URL atau route aplikasi.
Untuk website biasa, file yang paling sering digunakan adalah:
routes/web.php
Laravel mendokumentasikan web.php sebagai tempat route untuk antarmuka web yang menggunakan middleware web, termasuk dukungan session dan perlindungan CSRF.
Folder resources
Folder ini berisi resource yang digunakan aplikasi, termasuk view dan aset mentah frontend. View Laravel biasanya berada di:
resources/views
Folder public
Folder public merupakan entry point publik aplikasi. Di dalamnya terdapat index.php yang menjadi titik masuk request web ke aplikasi Laravel. Folder ini dapat menyimpan aset publik seperti gambar, JavaScript, dan CSS.
Folder vendor
Folder vendor berisi dependency yang dikelola oleh Composer. Anda sebaiknya tidak mengedit file di dalam folder ini secara langsung karena file tersebut merupakan hasil dependency management.
Menjalankan Project Laravel di Localhost
Setelah project dibuat, Laravel perlu dijalankan agar browser dapat mengakses aplikasi.
Gunakan:
npm install && npm run build
Kemudian:
composer run dev
Dokumentasi Laravel saat ini menggunakan rangkaian tersebut untuk memasang dependency frontend, melakukan build aset, kemudian menjalankan development server, queue worker, dan Vite development server. Setelah proses berjalan, aplikasi dapat diakses melalui http://localhost:8000.
Buka browser dan kunjungi:
http://localhost:8000
Jika berhasil, Anda akan melihat halaman default Laravel.
Ini merupakan tanda penting bahwa beberapa komponen utama sudah bekerja:
- PHP dapat menjalankan aplikasi.
- Dependency Composer berhasil dimuat.
- Laravel berhasil melakukan bootstrap aplikasi.
- Server lokal menerima request.
- Browser berhasil mendapatkan response dari Laravel.
Dengan kata lain, Anda sudah berhasil menjalankan project Laravel pertama.
Bagaimana Laravel Menampilkan Halaman?
Sebelum membuat halaman sendiri, penting memahami alur sederhananya.
Ketika browser membuka:
http://localhost:8000/
browser mengirim HTTP request ke server lokal. Laravel kemudian mencocokkan URL tersebut dengan route yang tersedia.
Route menentukan apa yang harus dilakukan terhadap request tersebut.
Secara sederhana:
Browser
↓
HTTP Request
↓
Laravel Route
↓
Logic / Controller
↓
View
↓
HTML Response
↓
Browser
Untuk halaman sederhana, route bahkan dapat langsung mengembalikan view tanpa controller.
Laravel menggunakan file route yang berada di direktori routes, dan route untuk antarmuka web umumnya didefinisikan di routes/web.php.
Membuat Route Laravel Pertama
Buka:
routes/web.php
Anda dapat menambahkan route sederhana seperti berikut:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/halo', function () {
return 'Halo, Laravel!';
});
Sekarang jalankan aplikasi dan buka:
http://localhost:8000/halo
Browser akan menampilkan:
Halo, Laravel!
Contoh ini menunjukkan konsep dasar routing Laravel. Route::get() digunakan untuk menangani HTTP GET request pada URL tertentu. Dokumentasi routing Laravel menjelaskan bahwa route dasar dapat menerima URI dan closure, kemudian mengembalikan response.
Struktur:
Route::get('/halo', function () {
return 'Halo, Laravel!';
});
dapat dibaca sebagai:
Route::get() → menangani request GET./halo → alamat URL.function () {} → kode yang dijalankan ketika URL diakses.return → response yang dikirim kembali kepada browser.
Meski terlihat sederhana, konsep inilah yang menjadi dasar routing Laravel.
Membuat Halaman HTML dengan Blade
Mengembalikan teks langsung dari route berguna untuk belajar, tetapi website sebenarnya membutuhkan HTML.
Laravel menyediakan Blade, yaitu templating engine bawaan Laravel untuk membuat tampilan.
View Blade biasanya disimpan dalam:
resources/views
dan menggunakan ekstensi:
.blade.php
Laravel mendokumentasikan bahwa view digunakan untuk memisahkan presentation logic dari logic aplikasi, sedangkan Blade menjadi mekanisme templating yang umum digunakan di dalam view Laravel.
Buat file:
resources/views/hello.blade.php
Isi dengan:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Halaman Laravel</title>
</head>
<body>
<h1>Halo dari Laravel!</h1>
<p>Ini adalah halaman Laravel pertama saya.</p>
</body>
</html>
File tersebut sekarang menjadi sebuah view.
Namun browser belum tahu bahwa URL /halo harus menggunakan view tersebut. Kita perlu menghubungkannya melalui route.
Menghubungkan Route dengan View Laravel
Kembali ke:
routes/web.php
Ubah route menjadi:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/halo', function () {
return view('hello');
});
Sekarang buka:
http://localhost:8000/halo
Laravel akan mencari view:
resources/views/hello.blade.php
Kemudian merendernya menjadi HTML dan mengirim hasilnya ke browser.
Perhatikan bahwa kita tidak menulis:
return view('hello.blade.php');
melainkan:
return view('hello');
Laravel secara otomatis memahami bahwa hello merujuk pada file view hello.blade.php di direktori views. Mekanisme ini merupakan pola standar yang digunakan Laravel untuk membuat dan menampilkan view.
Mengirim Data dari Route ke Halaman
Website dinamis tentu tidak hanya menampilkan teks statis.
Misalnya Anda ingin menampilkan nama pengguna.
Route dapat ditulis:
Route::get('/profil', function () {
return view('profil', [
'nama' => 'Ramadhan'
]);
});
Kemudian buat:
resources/views/profil.blade.php
dengan isi:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Profil</title>
</head>
<body>
<h1>Halo, {{ $nama }}</h1>
<p>Selamat datang di aplikasi Laravel.</p>
</body>
</html>
Ketika mengakses:
http://localhost:8000/profil
Laravel akan meneruskan data nama ke view.
Blade menggunakan sintaks seperti:
{{ $nama }}
untuk menampilkan nilai ke halaman. View dapat menerima data melalui argument kedua dari helper view(), sebagaimana ditunjukkan dalam dokumentasi resmi Laravel.
Hasil akhirnya kira-kira:
Halo, Ramadhan
Selamat datang di aplikasi Laravel.
Di sinilah mulai terlihat perbedaan antara website statis dengan aplikasi web.
Nilai yang ditampilkan tidak harus ditulis langsung pada HTML. Data dapat berasal dari route, controller, database, API, maupun sumber lainnya.
Membuat Route dan Halaman yang Lebih Rapi
Ketika aplikasi mulai berkembang, menempatkan seluruh logic di dalam route closure bukan pendekatan yang ideal.
Contohnya:
Route::get('/profil', function () {
$nama = 'Ramadhan';
return view('profil', [
'nama' => $nama
]);
});
Untuk aplikasi sederhana hal tersebut masih dapat digunakan. Namun pada aplikasi yang lebih kompleks, logic biasanya dipindahkan ke controller.
Struktur yang umum menjadi:
Browser
↓
Route
↓
Controller
↓
View
↓
HTML
Misalnya:
Route::get('/profil', [ProfileController::class, 'index']);
Controller kemudian menangani proses yang diperlukan sebelum mengirim data ke view.
Pola tersebut menjadi penting ketika Anda mulai mempelajari konsep Laravel berikutnya seperti controller, model, database, authentication, validation, API, dan Livewire.
Memahami Perbedaan Route, Controller, dan View
Ketiga istilah ini sangat sering muncul dalam pengembangan Laravel.
| Komponen | Fungsi sederhana |
|---|
| Route | Menentukan URL dan request ditangani oleh siapa |
| Controller | Menangani logic aplikasi |
| View | Menampilkan tampilan kepada pengguna |
Misalnya pengguna membuka:
/products
Route menentukan bahwa /products harus ditangani oleh ProductController.
Controller kemudian mengambil data produk.
Setelah data tersedia, controller mengirimkannya ke view:
resources/views/products/index.blade.php
View kemudian menghasilkan HTML.
Dengan pola ini, masing-masing bagian memiliki tanggung jawab yang jelas.
Semakin besar aplikasi, pemisahan tersebut membantu kode tetap mudah dirawat dan dikembangkan.
Kesalahan Umum Saat Membuat Project Laravel
Pemula sering mengalami beberapa masalah yang sebenarnya cukup mudah diperbaiki.
1. Perintah php Tidak Dikenali
Jika muncul:
php is not recognized
berarti PHP belum terpasang atau direktori PHP belum ditambahkan ke PATH.
Periksa:
php -v
Jika tetap gagal, perbaiki instalasi PHP terlebih dahulu.
2. Perintah composer Tidak Dikenali
Periksa:
composer -V
Composer menyediakan installer resmi untuk Windows, sedangkan pada macOS dan Linux tersedia metode instalasi melalui command line.
3. laravel Tidak Dikenali
Jika PHP dan Composer sudah berjalan tetapi:
laravel --version
gagal, biasanya executable Laravel Installer belum berada dalam PATH.
Tutup terminal, buka terminal baru, kemudian coba kembali.
4. Port 8000 Sudah Digunakan
Jika port default tidak tersedia, Laravel dapat dijalankan menggunakan port lain sesuai kebutuhan. Misalnya server development dapat diarahkan ke port tertentu dengan command yang sesuai.
Kemudian akses:
http://localhost:PORT
dengan mengganti PORT sesuai port yang digunakan.
5. Perubahan View Tidak Terlihat
Pastikan Anda mengubah file yang benar, misalnya:
resources/views/hello.blade.php
dan bukan file dengan nama serupa di folder lain.
Jika diperlukan, cache view Laravel juga dapat dibersihkan menggunakan Artisan.
Perintah Laravel Dasar yang Perlu Dikenal Pemula
Setelah project pertama berhasil dibuat, beberapa perintah berikut akan sering digunakan:
php artisan
Menampilkan daftar command Artisan.
php artisan about
Menampilkan informasi penting mengenai aplikasi dan environment Laravel.
Untuk Membuat controller:
php artisan make:controller HomeController
Membuat model:
php artisan make:model Product
Membuat migration:
php artisan make:migration create_products_table
Melihat daftar route:
php artisan route:list
Artisan merupakan command-line interface yang disediakan Laravel untuk menjalankan berbagai tugas pengembangan. Penguasaan Artisan akan sangat membantu ketika project mulai berkembang karena banyak pekerjaan rutin dapat dilakukan melalui command daripada membuat file secara manual.
Apa yang Terjadi Setelah Halaman Berhasil Ditampilkan?
Pada titik ini, Anda mungkin merasa proyek Laravel baru sebatas menampilkan teks. Namun sebenarnya Anda telah mempelajari beberapa konsep fundamental.
Saat membuka:
http://localhost:8000/halo
browser membuat request.
Laravel menerima request tersebut dan mencocokkannya dengan route:
Route::get('/halo', function () {
return view('hello');
});
Laravel kemudian menemukan:
resources/views/hello.blade.php
Blade memproses template dan menghasilkan HTML.
HTML tersebut dikirim kembali ke browser.
Jadi, walaupun halaman terlihat sederhana, Anda sebenarnya sudah membangun alur dasar aplikasi web menggunakan framework.
Pemahaman ini akan menjadi fondasi ketika nantinya Anda mempelajari controller, database, Eloquent ORM, authentication, REST API, hingga Livewire.
Langkah Berikutnya Setelah Project Laravel Pertama Berhasil
Jangan berhenti setelah berhasil menampilkan halaman.
Urutan belajar yang masuk akal setelah tahap ini adalah memahami routing lebih dalam, membuat controller, mempelajari Blade, kemudian menghubungkan Laravel dengan database.
Setelah memahami database, Anda dapat mulai menggunakan Eloquent ORM untuk berinteraksi dengan data secara lebih nyaman.
Barulah setelah fondasi tersebut kuat, Anda dapat masuk ke fitur aplikasi yang lebih kompleks seperti authentication, form validation, file upload, API, testing, dan Livewire.
Bagi pemula, menguasai alurnya terlebih dahulu jauh lebih penting daripada langsung menghafal puluhan command Artisan.
FAQ: Pertanyaan yang Sering Diajukan
1. Apakah Laravel harus menggunakan XAMPP?
Tidak. Laravel menyediakan development server sendiri sehingga XAMPP tidak wajib digunakan untuk menjalankan project secara lokal. Dokumentasi Laravel saat ini menggunakan composer run dev untuk menjalankan environment development.
2. Apakah Composer wajib untuk Laravel?
Ya, Composer merupakan bagian penting dari ekosistem PHP modern dan Laravel menggunakannya untuk mengelola dependency aplikasi. Laravel Installer juga dapat dipasang melalui Composer.
3. Apakah Node.js wajib untuk Laravel?
Laravel dapat menangani request PHP tanpa Node.js, tetapi project Laravel modern biasanya memerlukan Node dan NPM atau Bun untuk proses build aset frontend seperti JavaScript dan CSS. Dokumentasi instalasi Laravel saat ini mencantumkan Node/NPM atau Bun sebagai bagian dari kebutuhan frontend.
4. Di mana file HTML Laravel disimpan?
View Laravel biasanya disimpan di:
resources/views
dan menggunakan ekstensi:
.blade.php
Blade merupakan templating engine bawaan Laravel untuk membuat tampilan aplikasi.
5. Apa fungsi routes/web.php?
File tersebut digunakan untuk mendefinisikan route web aplikasi. Route menentukan bagaimana Laravel merespons URL tertentu.
6. Apa perbedaan Laravel dengan PHP biasa?
PHP adalah bahasa pemrograman, sedangkan Laravel adalah framework yang dibangun menggunakan PHP. Laravel menyediakan struktur, abstraction, tool, routing, templating, database layer, authentication, validation, dan berbagai fasilitas lain agar pengembangan aplikasi web lebih terorganisasi.
7. Apakah Laravel sulit dipelajari?
Laravel akan jauh lebih mudah dipahami jika Anda sudah menguasai dasar PHP, HTTP, HTML, serta konsep database. Tantangan terbesar biasanya bukan syntax Laravel, melainkan memahami bagaimana berbagai komponen seperti route, controller, model, dan view saling berhubungan.
Kesimpulan
Cara membuat project Laravel sebenarnya dapat dimulai melalui beberapa langkah sederhana: memastikan PHP dan Composer tersedia, memasang Laravel Installer, membuat project dengan laravel new, menjalankan server development, kemudian menghubungkan route dengan Blade view.
Contoh paling sederhana dimulai dari:
laravel new belajar-laravel
lalu:
cd belajar-laravel
npm install && npm run build
composer run dev
Setelah server berjalan, Anda dapat membuat route:
Route::get('/halo', function () {
return view('hello');
});
dan menyediakan view pada:
resources/views/hello.blade.php
Dari sini, konsep Laravel mulai menjadi lebih mudah dipahami karena alurnya terlihat jelas: browser mengirim request, route menentukan tujuan, logic memproses data, Blade menghasilkan tampilan, lalu HTML dikirim kembali ke browser.
Project pertama tersebut adalah titik awal, bukan akhir. Setelah memahami proses ini, tahap berikutnya adalah mempelajari routing Laravel, controller, Blade, database, migration, model, Eloquent ORM, authentication, hingga Livewire secara bertahap.
Untuk pembaca yang sedang membangun seri belajar Laravel, artikel ini sebaiknya ditempatkan setelah artikel pengenalan Laravel dan instalasi Composer, karena pembaca sudah memiliki konteks mengenai framework dan dependency manager sebelum masuk ke praktik membuat project.