Struktur Laravel Dijelaskan Detail: Kenali Fungsi Setiap Folder dan Alurnya

Kalau baru masuk ke dunia Laravel, biasanya yang bikin bingung bukan sintaks, tapi “struktur project-nya”. Banyak folder, banyak file, dan kelihatan kompleks.

Padahal kalau dipahami pelan-pelan, semuanya punya peran yang jelas. Laravel itu rapi banget secara arsitektur, karena dia mengikuti pola MVC (Model-View-Controller).

Di sini kita kupas struktur Laravel dengan cara yang lebih masuk akal, bukan sekadar hafalan folder.


Kenalan dengan Struktur Laravel (Biar Nggak Bingung Lagi)

Bayangin project Laravel itu seperti sebuah sistem kerja tim:

  • Ada yang ngurus data
  • Ada yang ngurus tampilan
  • Ada yang jadi penghubung

Nah, itu inti dari MVC.


1. Folder app/ → Otaknya Aplikasi

Ini pusat logika utama.

Di dalamnya ada beberapa bagian penting:

app/Http/Controllers

Di sinilah semua request dari user diproses.

Contoh:

  • User buka halaman → masuk ke controller
  • Controller ambil data → kirim ke view

Jadi controller itu seperti “manajer”.


app/Models

Tempat kamu berinteraksi dengan database.

Misalnya:

  • Ambil data buku
  • Simpan data user
  • Update informasi

Kalau kamu pernah pakai query SQL, di sini semuanya dibungkus jadi lebih rapi pakai Eloquent ORM.


app/Http/Middleware

Ini semacam “satpam”.

Fungsinya:

  • Cek apakah user sudah login
  • Blokir akses tertentu
  • Filter request

2. Folder resources/ → Tampilan (View)

Di sinilah bagian yang dilihat user.

resources/views

Berisi file:

  • .blade.php

Blade itu template engine Laravel.

Contoh:

{{ $judul }}

Blade memudahkan kamu gabungin HTML + logic tanpa ribet.


3. Folder routes/ → Jalur Navigasi

Kalau Laravel itu kota, routes adalah jalannya.

File penting:

  • web.php

Contoh:

Route::get('/buku', [BukuController::class, 'index']);

Artinya:

  • Ketika user buka /buku
  • Laravel panggil controller tertentu

4. Folder database/ → Urusan Database

Berisi semua yang berkaitan dengan struktur data.

migrations/

Ini seperti “blueprint” database.

Daripada bikin tabel manual di phpMyAdmin, kamu bisa pakai migration:

Schema::create('buku', function (Blueprint $table) {
    $table->id();
    $table->string('judul');
});

seeders/

Untuk isi data awal.

Misalnya:

  • Data dummy
  • Data default

5. Folder public/ → Pintu Masuk

Ini folder yang diakses browser.

File penting:

  • index.php

Semua request dari user masuk lewat sini.

Selain itu:

  • Tempat file CSS, JS, gambar

6. Folder config/ → Pengaturan Sistem

Semua konfigurasi ada di sini.

Contoh:

  • Database
  • Mail
  • App name

File penting:

  • app.php
  • database.php

7. Folder vendor/ → Library dari Composer

Ini berisi semua dependency.

Isinya:

  • Package Laravel
  • Library tambahan

⚠️ Jangan diubah manual
Karena ini di-generate otomatis oleh Composer


8. Folder storage/ → Penyimpanan Internal

Untuk:

  • Log error
  • Cache
  • File upload

Biasanya tidak diakses langsung oleh user.


9. Folder bootstrap/ → Proses Awal Laravel

Di sinilah Laravel pertama kali dijalankan.

File penting:

  • app.php

Ini yang “menyalakan” seluruh sistem Laravel.


Alur Kerja Laravel

Kalau diringkas, alurnya seperti ini:

  1. User buka website
  2. Masuk ke public/index.php
  3. Masuk ke routes/web.php
  4. Diteruskan ke Controller
  5. Controller ambil data dari Model
  6. Data dikirim ke View
  7. Ditampilkan ke user

Kalau dipahami ini, kamu sudah ngerti 70% cara kerja Laravel.


Kenapa Struktur Laravel Dibuat Seperti Ini?

Tujuannya bukan biar ribet, tapi:

  • Kode lebih rapi
  • Mudah dikembangkan
  • Tim bisa kerja bareng tanpa tabrakan

Bayangin kalau semua file dicampur jadi satu, pasti chaos.


Tips Biar Cepat Paham

Kalau kamu lagi belajar Laravel:

  • Fokus dulu ke 3 hal:
    • routes
    • controller
    • view
  • Setelah itu baru:
    • model
    • migration

Jangan langsung loncat ke semua folder, nanti malah overload.


Penutup

Struktur Laravel memang kelihatan banyak di awal, tapi sebenarnya sangat terorganisir.

Begitu kamu paham peran tiap folder:

semuanya jadi terasa “masuk akal”, bukan sekadar hafalan


Selesai… !!!