#3: Mengenal Peta Harta Karun – Struktur Folder Laravel yang Wajib Diketahui
Halo, Penjelajah Hebat! 🗺️
Sekarang kita sudah punya proyek Laravel bernama situs-berita. Di dalam folder proyek itu, ada banyak folder dan file. Jangan khawatir jika bingung—itu seperti peta harta karun yang harus kita kenali. Dengan memahami peta ini, kita akan tahu harus ke mana saat membuat sesuatu.
Bayangkan Laravel adalah sebuah istana ajaib. Setiap ruangan punya fungsi khusus. Ayo kita jelajahi ruangan-ruangan yang paling sering kita gunakan!
Peta Singkat Istana Laravel
/berita) diatur di sini. Menghubungkan "jalan" dengan "ruangan" (controller).Penjelasan Lebih Detail
Folder app/ adalah tempat kita menulis kode yang mengatur bagaimana data diproses. Di dalamnya ada beberapa sub-folder penting:
- app/Models/ – Tempat membuat model, yaitu "cetakan" untuk data. Contoh: nanti kita buat model
Category,News,Comment. - app/Http/Controllers/ – Tempat membuat controller, yaitu "kapten" yang mengatur lalu lintas data dari URL ke database dan tampilan.
- app/Http/Middleware/ – Tempat penjaga pintu (seperti cek login atau tidak).
Folder ini berisi file-file yang mengatur URL. Yang paling sering kita pakai:
web.php– Semua alamat untuk website biasa (yang dilihat manusia) ditulis di sini. Contoh:/untuk halaman utama,/berita/1untuk detail berita.api.php– Untuk alamat API (khusus programmer), kita tidak akan pakai dulu.
Di sinilah kita akan membuat rute seperti /kategori, /berita/create, dll.
Folder resources/views/ adalah tempat semua file tampilan (HTML) yang akan dilihat pengunjung. Laravel menggunakan sistem Blade (file dengan ekstensi .blade.php) yang memudahkan kita menyisipkan data PHP ke HTML.
Kita akan membuat file-file seperti:
home.blade.php– halaman utama daftar beritanews.blade.php– halaman detail beritacategories/index.blade.php– daftar kategori (admin)- dan lain-lain.
Di sini juga ada folder layouts/ untuk membuat kerangka halaman yang sama (header, footer) agar tidak repot menulis ulang.
Folder ini berisi semua yang berhubungan dengan database:
database/migrations/– File "rencana" pembuatan tabel. Migrasi seperti blueprint yang akan dijalankan untuk membuat tabelcategories,news,comments, danusers.database/seeders/– Tempat membuat data contoh (dummy) untuk diisi ke tabel, agar kita bisa tes sebelum ada data asli.
Nanti kita akan sering ke sini untuk membuat migrasi (tabel).
Folder public/ adalah satu-satunya folder yang bisa diakses langsung oleh internet (atau browser). Di sini kita taruh:
- Gambar berita (melalui sistem storage nanti)
- File CSS, JavaScript (biasanya menggunakan
npm run build) - File
index.php– file ini yang pertama kali dijalankan saat seseorang mengunjungi website kita.
.env di folder public, karena bisa diakses orang lain!File .env (environment) berisi konfigurasi rahasia yang berbeda untuk setiap komputer. Contoh isinya:
APP_NAME="Situs Berita"
APP_URL=http://localhost:8000
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=situs_berita
DB_USERNAME=root
DB_PASSWORD=
Di sini kita akan mengatur nama database, username/password, dan pengaturan lainnya. File ini jangan pernah diupload ke internet karena bisa dibajak.
Folder Lain yang Perlu Tahu
- config/ – Tempat pengaturan aplikasi (seperti waktu, cache, dll). Nanti kita mungkin edit untuk mengatur upload file.
- storage/ – Tempat menyimpan file yang diupload oleh pengguna (gambar berita, dll) dan log sistem. Di sini juga ada folder
app/publicyang akan kita link kepublic/storageagar gambar bisa diakses. - tests/ – Tempat menulis tes otomatis (untuk programmer tingkat lanjut). Kita tidak akan sentuh dulu.
- node_modules/ – Folder yang muncul jika kita menginstall package JavaScript (untuk frontend modern). Kita tidak akan bahas sekarang.
Ringkasan Singkat (Untuk Diingat)
app/ → kode logika (Controller, Model)routes/ → alamat URL (web.php)resources/views/ → tampilan halaman (HTML)database/migrations/ → struktur tabel databasepublic/ → gambar, CSS, file yang bisa dilihat publik.env → rahasia database
Apa Selanjutnya?
Sekarang kita sudah punya peta. Di tutorial berikutnya, kita akan mulai membangun database. Kita akan membuat tabel kategori (categories) sebagai langkah pertama CRUD. Pastikan Laragon dan proyek kita siap!
.env di proyek situs-berita menggunakan text editor (seperti Notepad, VS Code). Lihat isinya. Jangan ubah dulu, hanya baca. Ini akan membantu kamu merasa lebih akrab dengan struktur.
📝 Seri Tutorial Laravel 13 Pemula – Proyek Web Berita
✨ Selanjutnya: #4: Menyambungkan ke Pangkalan Data – Setting File .env dan Membuat Database