Tutorial Instalasi Laravel dan Login Breeze (Update 2026: Laravel 13)

pindipin
30 August 2026
11 min read
Tutorial Instalasi Laravel dan Login Breeze (Update 2026: Laravel 13)

Memulai Laravel dari nol biasanya berhenti di pertanyaan yang sama: sudah berhasil membuat proyeknya, tapi "biar ada halaman login-nya gimana?". Kalau kamu menulis form login sendiri, ada banyak hal yang harus dipikirkan — hashing password, session, CSRF, verifikasi email, proteksi route. Semuanya bisa memakan berjam-jam.

Breeze menjawab bagian itu. Breeze adalah starter kit minimal yang memasang seluruh alur autentikasi (register, login, logout, reset password, verifikasi email, dan halaman profile) dalam beberapa perintah saja.

Artikel ini adalah panduan langkah demi langkah: menyiapkan prasyarat, membuat proyek Laravel, mengonfigurasi database, memasang Breeze, menjalankan aplikasi, sampai mencoba register dan login di browser — plus troubleshooting untuk masalah yang paling sering muncul.

Satu hal yang perlu diluruskan dulu sebelum lanjut, karena ini mudah bikin bingung kalau kamu pernah baca tutorial lama.

Posisi Breeze di 2026

Sejak Laravel 12, Breeze bukan lagi starter kit default yang ditawarkan saat membuat proyek baru. laravel new sekarang menawarkan starter kit baru berbasis React, Svelte, Vue (Inertia), dan Livewire. Kalau kamu memakai laravel new dan tidak melihat opsi Breeze di prompt, itu bukan karena salah install — memang begitu kondisinya sekarang.

Tapi Breeze tidak hilang. Breeze tetap kompatibel dengan Laravel 11, 12, dan 13, masih di-maintain (rilis terbaru v2.4.2), dan tetap pilihan paling sederhana untuk belajar login/register memakai Blade + Tailwind. Karena artikel ini memang tentang "login breeze", kita fokus ke Breeze. Alternatif modern via laravel new akan disebutkan sekilas di bagian best practices.

Tutorial ini memakai Laravel 13 (rilis Maret 2026, butuh PHP 8.3+) dengan Breeze 2.x. Kalau PHP lokalmu masih 8.2, jangan khawatir — pendekatan yang sama persis berlaku di Laravel 12.

Prasyarat yang Harus Disiapkan

Sebelum membuat proyek, pastikan tiga alat terpasang: PHP, Composer, dan Node.js. Cek semuanya dari terminal:

php -v
composer -v
node -v
npm -v

Versi minimumnya:

  • PHP 8.3+ untuk Laravel 13, atau 8.2+ untuk Laravel 12.
  • Composer versi 2 (tool manager dependency PHP).
  • Node.js 16+ dan npm. Rekomendasi: pakai versi LTS terbaru, karena Breeze memakai Vite untuk frontend.

Di Windows, PHP paling sering dipasang lewat XAMPP atau Laragon. Kalau memakai salah satunya, jangan lupa cek ekstensi yang aktif di php.ini — untuk SQLite kamu butuh pdo_sqlite, dan kalau pindah ke MySQL butuh pdo_mysql. Ekstensi yang tidak aktif adalah penyebab umum migration gagal, dan ini akan kita bahas di bagian troubleshooting.

Kalau belum punya PHP sama sekali, ada cara yang lebih cepat dari install manual: script installer dari laman php.new yang sekaligus memasang PHP, Composer, dan Laravel Installer. Versi Windows bisa dijalankan langsung dari PowerShell. Tapi untuk belajar dan mengikuti tutorial ini di Windows, XAMPP atau Laragon lebih umum dan cukup.

Untuk database, pilihannya dua: SQLite atau MySQL. SQLite adalah default Laravel 13 — paling cepat karena tanpa server database terpisah, cocok untuk belajar. MySQL lebih dekat ke kondisi produksi dan akan kita bahas di bagian konfigurasi .env.

Membuat Proyek Laravel

Ada dua cara membuat proyek Laravel, dan keduanya valid. Bedanya di kontrol terhadap prompt.

Cara 1: composer create-project

Cara ini langsung memberi proyek polos versi stable terbaru (saat ini 13.x) tanpa starter kit — persis yang kita butuhkan untuk pasang Breeze manual.

composer create-project laravel/laravel blog-ku
cd blog-ku

Saat perintah selesai, skeleton Laravel 13 secara otomatis menjalankan beberapa hal: generate APP_KEY, membuat berkas database/database.sqlite, dan menjalankan migration. Jadi kamu langsung punya aplikasi yang "hidup" tanpa konfigurasi tambahan.

Cara 2: laravel new

Alternatifnya memakai Laravel Installer:

composer global require laravel/installer
laravel new blog-ku
cd blog-ku

Perintah ini interaktif — kamu akan diminta memilih testing framework (Pest atau PHPUnit), database (SQLite, misalnya), dan starter kit. Penting: karena Breeze sudah tidak ada di daftar starter kit installer, pilih tanpa starter kit (None/kosong). Jangan bingung kalau tidak melihat nama Breeze di sana. Setelah proyek jadi, pasang Breeze manual lewat Composer — caranya ada di bagian berikutnya.

Untuk mengikuti tutorial ini, composer create-project lebih lurus karena tidak ada prompt yang harus dijawab.

Verifikasi aplikasi jalan

Sebelum melangkah jauh, pastikan proyek bisa diakses. Ada dua cara menjalankan server:

composer run dev

Perintah ini menjalankan server Laravel, queue worker, dan Vite sekaligus — ini cara modern untuk Laravel 12/13. Atau cara klasik yang hanya menjalankan server saja:

php artisan serve

Apapun caranya, buka http://localhost:8000 di browser. Kalau muncul halaman landing page Laravel, berarti instalasimu berhasil. Lanjut ke konfigurasi database.

Konfigurasi Database di .env

File .env adalah pusat konfigurasi berbasis environment — di situlah APP_KEY, koneksi database, dan pengaturan lain disembunyikan. Aturan penting: .env tidak boleh masuk git karena berisi kredensial. Template publiknya ada di .env.example.

Untuk SQLite, tidak perlu mengubah apa pun. DB_CONNECTION=sqlite sudah menjadi default, dan berkas database/database.sqlite sudah dibuat otomatis saat install.

Kalau ingin memakai MySQL, buat dulu database-nya (misalnya lewat phpMyAdmin atau CLI), lalu ubah baris berikut di .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog_ku
DB_USERNAME=root
DB_PASSWORD=

Satu default yang perlu kamu ingat: SESSION_DRIVER=database. Laravel 11+ menyimpan session ke tabel sessions — bukan file, bukan cookie. Artinya migrate harus jalan dulu sebelum login bisa dipakai, karena tabel sessions dibuat oleh migration. Ini akar dari banyak error di awal, dan akan kita bahas lagi di troubleshooting.

Sekarang jalankan migration:

php artisan migrate

Perintah ini membuat tabel users, password_reset_tokens, sessions, cache, dan jobs. Perhatikan: tabel pengguna sudah ada sejak awal — Breeze tidak membuat migration baru untuk user, dia memakai tabel yang sudah disediakan skeleton.

Memasang Laravel Breeze

Dengan proyek dan database siap, sekarang saatnya memasang sistem login.

Pertama, install Breeze sebagai dependency development:

composer require laravel/breeze --dev

Lalu jalankan installernya:

php artisan breeze:install

Perintah ini interaktif. Kamu akan diminta memilih stack — pilih "Blade with Alpine" (default untuk belajar Blade + Tailwind) — dan testing framework: Pest (default) atau PHPUnit. Kalau tidak ingin repot dengan prompt, kamu bisa langsung tentukan stack:

php artisan breeze:install blade

Stack lain yang tersedia: livewire, react, vue (via Inertia), dan api. Ada juga opsi --dark untuk tema gelap dan --pest untuk memaksa testing framework Pest.

Satu hal yang sering bikin pemula bertanya-tanya: setelah perintah selesai, terminal tampak berhenti lama di bagian Node. Itu normal. Breeze 2.x otomatis menjalankan npm install dan npm run build di akhir proses untuk stack Blade. Jadi biarkan sampai selesai.

Terakhir, pastikan semua tabel sudah siap:

php artisan migrate

(Kalau kamu baru saja menjalankan migrate di bagian sebelumnya, perintah ini akan bilang tidak ada yang perlu dijalankan — itu normal.)

Menjalankan Aplikasi dan Mencoba Login

Sekarang butuh dua proses yang berjalan bersamaan di dua terminal terpisah. Terminal pertama untuk frontend:

npm run dev

Ini menjalankan Vite dev server dengan hot reload. Kalau langkah ini dilewatkan, halaman akan tampil tanpa CSS dan JavaScript — karena directive @vite() di Blade butuh dev server (saat development) atau hasil build (saat produksi).

Terminal kedua untuk server Laravel:

php artisan serve

Alternatif sekali jalan: composer run dev yang menangani keduanya sekaligus. Untuk pemula di Windows, memahami konsep "dua terminal" ini penting — karena kedua proses memang hidup bersamaan.

Sekarang buka http://localhost:8000. Halaman landing akan menampilkan tombol Login dan Register di pojok kanan atas.

Alur register

Klik Register (atau buka /register langsung). Form-nya meminta name, email, password, dan konfirmasi password. Saat disubmit, user dibuat — password di-hash dengan Hash::make — lalu langsung login otomatis dan diredirect ke /dashboard.

Alur login

Buka /login, isi email dan password. Kalau benar, masuk ke /dashboard. Keluar lewat tombol logout di menu.

Perhatikan proteksinya: route /dashboard memakai middleware ['auth', 'verified']. Kalau kamu belum login dan mencoba membuka /dashboard, kamu akan dilempar ke halaman login. Ini juga alasan kenapa verifikasi email ikut dijaga — user yang belum terverifikasi belum bisa masuk ke dashboard.

Buat yang penasaran dengan daftar lengkap route auth Breeze, jalankan:

php artisan route:list | grep -E "login|register|dashboard"

File yang Dibuat Breeze

Breeze bukan sekadar memasang package — dia mem-publish seluruh kode autentikasi ke dalam proyekmu. Artinya semua file bisa kamu buka, baca, dan modifikasi bebas. Ini bagian dari filosofinya: starter kit yang bisa jadi titik belajar, bukan kotak hitam.

Struktur utamanya begini:

  • Controller: app/Http/Controllers/Auth/ berisi 9 controller (AuthenticatedSession, RegisteredUser, PasswordResetLink, NewPassword, VerifyEmail, EmailVerificationPrompt, EmailVerificationNotification, ConfirmablePassword, Password) plus ProfileController.
  • Request validation: app/Http/Requests/Auth/.
  • View components: app/View/Components/AppLayout.php dan GuestLayout.php.
  • View: resources/views/auth/ (login, register, forgot-password, reset-password, dst), resources/views/layouts/, dan components/.
  • Route: routes/auth.php (baru) dan routes/web.php (ditimpa, berisi route /dashboard).

Routes di routes/auth.php dikelompokkan jadi dua. Grup guest melindungi halaman-halaman yang hanya boleh diakses saat belum login — register, login, forgot-password, reset-password. Grup auth berisi verifikasi email, konfirmasi password, update password, dan logout.

Kalau kamu baru pertama kali melihat struktur ini, tidak perlu menghafal semuanya. Cukup ingat: controller menyimpan logika, view menyimpan tampilan, routes menentukan alur. Breeze sudah merapikannya sesuai konvensi Laravel.

Troubleshooting: Kesalahan Umum Pemula

Tidak semua jalan mulus. Berikut masalah yang paling sering muncul beserta solusinya.

Halaman tampil tanpa CSS/JS

Halaman muncul tapi tampilannya berantakan tanpa styling.

Penyebab: Vite dev server tidak berjalan, atau aset belum dibuild.
Solusi: Jalankan npm run dev di terminal terpisah, atau npm run build jika hanya ingin satu kali build tanpa dev server.

php artisan breeze:install error "Invalid stack"

Perintah menolak stack yang kamu ketik.

Penyebab: Stack yang diketik tidak dikenal.
Solusi: Stack yang valid adalah blade, livewire, livewire-functional, react, vue, dan api.

Migration gagal di SQLite

Error saat php artisan migrate di database SQLite.

Penyebab: Ekstensi pdo_sqlite (atau sqlite3) tidak aktif di php.ini — umum di XAMPP versi lama.
Solusi: Aktifkan ekstensi di php.ini, lalu cek dengan php -m bahwa pdo_sqlite termuat. Kalau tidak mau ribut, beralih ke MySQL.

Error 500 / 419 saat login, "no such table: sessions"

Login atau register gagal, bahkan kadang muncul error 419.

Penyebab: Default SESSION_DRIVER=database membuat Laravel butuh tabel sessions. Tabel itu belum ada.
Solusi: Jalankan php artisan migrate. Error 419 sendiri umumnya terkait session/CSRF atau APP_URL yang tidak sesuai — misalnya port yang dipakai beda dari .env.

Laravel 13 tidak bisa diinstall

Perintah composer create-project gagal karena persyaratan PHP.

Penyebab: PHP lokal masih di bawah 8.3.
Solusi: Upgrade PHP. Atau jika PHP masih 8.2, pakai Laravel 12 yang tetap didukung:

composer create-project laravel/laravel:^12.0 blog-ku

Breeze tetap kompatibel dengan Laravel 12.

Port 8000 sudah terpakai

php artisan serve gagal karena port dipakai proses lain.

Solusi: Gunakan port lain:

php artisan serve --port=8001

Salah menjalankan npm install setelah breeze:install api

Baru saja memakai stack API lalu menjalankan npm dan malah error.

Penyebab: Stack api menghapus file frontend (package.json, vite.config.js, aset CSS/JS, dan node_modules). Stack API memang tidak butuh npm.
Solusi: Jangan jalankan npm install setelah stack API. Stack ini memakai FRONTEND_URL di .env untuk aplikasi JavaScript-nya (misalnya http://localhost:3000), dengan APP_URL tetap http://localhost:8000.

laravel new tidak menawarkan Breeze

Prompt starter kit di installer tidak menampilkan Breeze.

Penyebab: Ini normal sejak Laravel 12. Installer menawarkan starter kit baru (React/Svelte/Vue/Livewire).
Solusi: Pasang Breeze manual via Composer (composer require laravel/breeze --dev) pada proyek polos, atau ikuti alur composer create-project di tutorial ini.

Error cipher / APP_KEY kosong

Aplikasi error karena key enkripsi tidak ada.

Solusi: composer create-project dan laravel new sudah otomatis generate key. Kalau proyek dibuat manual dan error ini muncul, jalankan php artisan key:generate.

Best Practices & Tips

Beberapa hal yang membuat alur kerja Laravel + Breeze lebih rapi dan aman.

Mulai dengan SQLite untuk belajar. Tanpa server database terpisah, kamu bisa fokus ke konsep dulu. Beralih ke MySQL saat sudah siap — misalnya untuk produksi, kerja tim, atau fitur database tertentu.

Selalu jalankan php artisan migrate sebelum mencoba login. Mengingat SESSION_DRIVER=database, melewatkan langkah ini pasti menghasilkan error.

Untuk produksi, gunakan npm run build — bukan npm run dev. Dev server hanya untuk lokal. Jangan lupa juga jangan pernah commit .env; gunakan .env.example sebagai template.

Manfaatkan opsi Breeze seperti --dark untuk tema gelap, dan pilih Pest kalau kamu suka — tapi keduanya opsional untuk pemula. Semua kode Breeze berada di dalam aplikasi, jadi ini sumber belajar yang bagus untuk melihat bagaimana autentikasi Laravel bekerja.

Dan ketahui kapan Breeze bukan lagi pilihan yang tepat. Kalau kamu butuh 2FA, teams, atau UI yang jauh lebih besar, pertimbangkan starter kit baru (laravel new dengan React/Vue/Livewire) atau solusi seperti Jetstream/Fortify. Untuk SPA dengan frontend terpisah (misalnya Next.js), pakai stack API:

php artisan breeze:install api

Perintah ini menjalankan php artisan install:api (memasang Laravel Sanctum + route API), menambahkan FRONTEND_URL ke .env, dan menghapus semua scaffolding frontend — jadi tidak perlu npm sama sekali.

Penutup

Alurnya singkat kalau dirangkum: siapkan PHP + Composer + Node, buat proyek dengan composer create-project atau laravel new, konfigurasi database di .env, install Breeze dengan composer require laravel/breeze --dev lalu php artisan breeze:install, jalankan php artisan migrate, jalankan Vite, lalu jalankan server dan coba register/login.

Dari sana, aplikasimu sudah punya sistem autentikasi lengkap — yang kalau ditulis manual bisa menghabiskan berjam-jam. Tutorial instalasi laravel dan login breeze ini diharapkan membuat jalan pertamamu di Laravel lebih mulus.

Langkah berikutnya, kalau mau mendalami: pelajari bagaimana merapikan routes/auth.php, modifikasi tampilan Blade yang sudah dibuat Breeze, atau tambahkan fitur di balik proteksi /dashboard. Dokumentasi resmi adalah teman baikmu:

Terakhir, kalau kamu ingin versi yang lebih "hidup" untuk latihan, coba bangun proyek kecil dengan Breeze — misalnya aplikasi catatan atau todo. Cara terbaik paham autentikasi Laravel adalah dengan mengutak-atik sendiri file-file yang baru saja dibuat Breeze.

Bagikan Artikel:
Diskusi & Komentar

Fitur komentar belum diaktifkan oleh administrator.

Artikel Terkait

Selesai membaca? Kembali ke beranda untuk melihat artikel menarik lainnya.

Kembali ke Beranda