Web Development April 30, 2026 · 4 min read · 0 dilihat

Laravel 13 #2: Struktur Folder & MVC untuk Pemula

Setelah berhasil install Laravel di episode pertama, pasti kamu langsung bingung liat folder banyak banget di project kamu. Ada app/, routes/, resources/, config/, storage/ — terus semuanya ini buat apa sih? Artikel ini menjelaskan struktur folder Laravel 13 dengan analogi yang mudah dipahami, bukan cuma list folder kering. Kamu juga akan tahu alur request melalui konsep MVC (Model-View-Controller) pakai contoh nyata, dan mana folder yang paling sering kamu sentuh sebagai pemula.

Kalau episode pertama kamu sudah berhasil menjalankan php artisan serve dan melihat welcome page Laravel, selamat! Kamu sudah di track yang tepat. Tapi sekarang pertanyaannya: folder apa sih yang harus kamu pakai? Kok bisa sebanyak ini?

Jangan khawatir. Di bagian 2 ini kita breakdown struktur folder Laravel 13 secara sederhana, dan kamu akan memahami konsep MVC yang jadi "tulang punggung" setiap aplikasi Laravel. Siap? Mari kita mulai.

Konsep MVC: Analogi Sederhana

Sebelum terjebak di folder-folder, pahami dulu apa itu MVC. Bayangkan Laravel itu seperti restoran:

  • Model = Juru masak. Dia yang tau mana bahan di dapur, gimana cara masak, dan hasil akhir resep. Dia ngurusin data dan logika bisnis.
  • View = Piring dan plating. Dia yang ngatur tampilan makanan ke pelanggan. HTML dan CSS-mu hidup di sini.
  • Controller = Pelayan restoran. Dia yang terima order (request), kasih tau juru masak (Model) apa yang diminta, ambil hasilnya, terus sajikan di piring yang cantik (View).

User kamu adalah pelanggan. Dia pesan melalui menu (routes), pelayan (controller) mendengarkan, pergi ke dapur (model), ambil hidangan (view), dan sajikan.

Alur Request Nyata: Contoh "/products"

Katakanlah user kamu buka URL /products di browser. Inilah yang terjadi:

  1. Routes (Papan Petunjuk): Browser mengirim request ke server. File routes/web.php membaca request itu. "Oh, dia minta /products. Oke, arahan dia ke ProductController@index."
  2. Controller (Pelayan): ProductController menerima request. Dia bilang, "Tunggu, aku minta data semua produk dulu." Dia panggil Product::all() dari Model.
  3. Model (Juru Masak): Model Product ambil data dari database. Dia kembalikan array atau collection berisi semua produk.
  4. View (Piring): Controller terus terang data itu ke View products.index. View ngambil data, loop semua produk, bikin HTML cantik dengan nama, harga, deskripsi produk.
  5. Response: Browser user menerima HTML siap pakai. User senang melihat daftar produk.

Singkatnya: Request → Routes → Controller → Model → View → HTML yang dilihat user.

Struktur Folder Laravel 13 Yang Perlu Kamu Tahu

Folder Fungsi Sering Disentuh Pemula?
app/ Hati dari aplikasi. Ini tempat Model, Controller, Observer, Service Provider hidup. 90% kode bisnis kamu ada di sini. ✅ SANGAT SERING
app/Models/ Tempat file Model (misalnya Product.php, User.php). Satu file = satu tabel database biasanya. ✅ SANGAT SERING
app/Http/Controllers/ Tempat semua Controller kamu. Ini "pelayan" yang handle request dan logika. ✅ SANGAT SERING
routes/ File rute aplikasi. web.php untuk web routes, api.php untuk API routes. Papan petunjuk utama. ✅ SERING
resources/ Tempat View (Blade template), CSS, JavaScript belum di-compile. Front-end assets mentah ada di sini. ✅ SERING
resources/views/ Semua file Blade (.blade.php) — template HTML kamu. ✅ SERING
database/ Migration, seeder, factory. Mengatur struktur dan isi database. ✅ SERING (pas setup)
database/migrations/ File berisi perintah buat table database. Contoh: 2024_01_15_create_products_table.php. ✅ SERING (pas setup)
config/ File konfigurasi aplikasi. Database, mail, app name, timezone, dll. ⚠️ JARANG (biasanya udah default)
public/ Folder yang bisa diakses publik di browser. CSS/JS compiled, gambar, favicon ada di sini. ⚠️ JARANG (asset auto-generated)
storage/ Tempat cache, log, upload file user. Bisa kasih akses public link dari sini. ⚠️ JARANG (system handle otomatis)
tests/ File unit test dan feature test kamu. Testing automation. ⚠️ JARANG (advanced pemula)

Folder Mana yang Paling Sering Kamu Buka?

Sebagai pemula, 80% waktu kamu akan di 4 tempat ini:

  1. app/Models/ — Bikin Model baru, define relasi tabel, tambah method query.
  2. app/Http/Controllers/ — Bikin Controller, handle request logic, panggil Model, pass data ke View.
  3. routes/web.php — Daftar route baru, atur endpoint aplikasi.
  4. resources/views/ — Bikin file Blade, design tampilan, tampilkan data dari Controller.

Folder lainnya? Biarkan dulu sampai kamu mahir keempat di atas. Jangan terpaksa membuka config/, storage/, atau bootstrap/ kalau belum butuh.

Diagram Alur Request MVC di Laravel

Ini visualisasi alur saat user request sesuatu:

User ketik /products
    ↓
  routes/web.php ("Mana rute /products?")
    ↓
ProductController@index ("Ambil data products")
    ↓
Product Model ("Query database, return data")
    ↓
resources/views/products/index.blade.php ("Render HTML pakai data")
    ↓
Browser user lihat halaman products

Setiap step ini punya file terpisah. Itulah keindahan MVC — separation of concerns. Kalau ada bug di harga produk, kamu langsung tahu cek Model atau View, bukan Controller.

Tips untuk Pemula Saat Mengorganisir Folder

  • Satu Model = Satu Tabel Database. Model Product untuk tabel products
  • Controller Nama Singular atau Plural? Laravel convention pakai singular: ProductController, bukan ProductsController. Method dalam controller bisa pakai plural (index() return banyak produk).
  • View Organize Pake Subfolder. Jangan semua file Blade di resources/views/ langsung. Bikin subfolder: resources/views/products/, resources/views/admin/, dll.
  • Route File Bisa Dipecah. Kalau route banyak, pecah routes/web.php ke beberapa file di subfolder. Tapi jangan sebelum project jadi besar.
  • Folder app/ Bisa Dikembang. Nanti kamu bisa buat subfolder seperti app/Services/, app/Traits/, app/Events/ sesuai kebutuhan. Tapi di awal, jangan perlu ribet.

Kesimpulan

Struktur folder Laravel mungkin terlihat kompleks di awal, tapi sebenarnya logis. MVC adalah pola yang memisahkan tanggung jawab: Model urus data, View urus tampilan, Controller urus logika. Setiap permintaan user mengalir melalui alur yang sama: routes → controller → model → view → response.

Untuk sekarang, fokus aja di empat folder utama: app/Models/, app/Http/Controllers/, routes/, dan resources/views/. Sisanya akan kamu pahami saat project berkembang. Di episode berikutnya, kita akan dive lebih dalam ke routing dan membuat route pertama kamu. Sampai jumpa!

Tags:

#Laravel 13 #Web Development #MVC #Struktur Folder #Pemula #Architecture

Share this article: