Pendahuluan — kenali denah toko
Artikel ini adalah #57 (ini) di Seri 4: Pemrograman Web Lanjut v2. Di Instal PHP, Composer & Proyek Laravel (#56) kamu sudah mendirikan toko: proyek perpustakaan-api hidup dan halaman welcome muncul. Sekarang langkah 2/8: kenali denah folder, buku pengaturan .env, dan asisten perintah Artisan.
Awam: toko sudah berdiri. Sebelum jual buku (routing/API), kamu harus tahu mana gudang, mana kasir, mana buku catatan pengaturan. Tanpa denah, kamu mudah tersesat membuka file salah.
Domain tetap perpustakaan mini. Kita pakai database sederhana dulu (SQLite) supaya instal dari nol tetap ringan di Windows.
Prasyarat: sudah selesai Instal PHP, Composer & Proyek Laravel (#56) — folder
perpustakaan-apiada,php artisan servepernah jalan. Pakai Laravel 13+ — butuh PHP 8.3+.
Spesifikasi fitur — apa yang kita kuasai?
Daftar singkat yang bisa kamu centang di akhir artikel:
- Mengenal folder penting:
app,routes,database,config,public,.env. - Menyalin
.env.exampleke.env(jika belum ada) dan menjalankanphp artisan key:generate. - Menyiapkan database SQLite dari nol lalu
php artisan migrate. - Memakai Artisan sehari-hari:
list,migrate,serve.
Awam: urutan nyaman: denah folder -> .env -> database -> Artisan. Belum perlu menulis route API di sini.
Istilah — ringkas untuk denah & pengaturan
| Istilah | Arti awam | Contoh di artikel ini |
|---|---|---|
| Struktur folder | Denah ruangan di dalam proyek | app/, routes/, database/ |
.env |
Buku catatan pengaturan rahasia mesinmu | APP_NAME, DB_CONNECTION |
| Artisan | Asisten perintah di terminal dalam proyek | php artisan migrate |
| Migrasi | Cetak biru tabel database yang dijalankan Artisan | php artisan migrate |
| SQLite | Database satu file — cocok belajar di laptop | database/database.sqlite |
Urutan belajar: baca denah -> isi pengaturan -> siapkan database -> coba perintah Artisan.
Kenapa denah dulu?
Laravel punya banyak folder. Kalau kamu langsung ubah sembarang file, error-nya sulit dilacak. Dengan denah, kamu tahu: kode aplikasi di app, pintu HTTP di routes, pengaturan di .env, dan data di database.
Awam: sama seperti perpustakaan — sebelum menata buku, petugas harus tahu mana ruang katalog, mana gudang, mana loket. Denah = peta kerja.
Artikel ini tetap install-dari-nol untuk bagian database: kita pakai SQLite bawaan supaya tidak wajib pasang MySQL dulu. Fondasi PHP/Composer/Laravel sudah di Instal PHP, Composer & Proyek Laravel (#56).
Alur — dari denah sampai database siap
.env -> database SQLite -> Artisan.Persiapan — alat yang kamu buka
Alat yang dipakai di artikel ini (sudah dari fondasi Instal PHP, Composer & Proyek Laravel (#56) — tidak ada unduhan wajib baru):
- Explorer — melihat denah folder
perpustakaan-api(app, routes, database, …) dan membuat filedatabase.sqlite. - Terminal — Laragon: menu Terminal · XAMPP: tombol Shell. Di sini kamu mengetik
copy,php artisan …, dancd. Jangan asal buka CMD/PowerShell dari Start Menu. - Editor teks — Notepad / VS Code — untuk membuka/mengecek baris di file
.env(misalnyaDB_CONNECTION=sqlite). Cara paling mudah di Windows: di terminal proyek ketiknotepad .envlalu Enter. - Browser — opsional hari ini; berguna nanti saat
php artisan serveuntuk memastikan toko masih hidup (seperti di fondasi instalasi).
Buka terminal Laragon/Shell XAMPP, masuk folder proyek dulu:
cd C:\laragon\www\perpustakaan-api
Di XAMPP biasanya: cd C:\xampp\htdocs\perpustakaan-api. Sesuaikan path jika foldermu beda (pakai lokasi yang kamu catat saat instalasi).
Awam: Explorer = mata melihat denah. Terminal = tangan mengetik perintah. Editor = baca/ubah label .env. Jangan loncat ke migrate sebelum kamu sudah di dalam folder proyek. File yang namanya diawali titik (.env) kadang susah terlihat di Explorer — kalau bingung, pakai notepad .env dari terminal.
Struktur folder — denah singkat
Buka Explorer, masuk folder perpustakaan-api (boleh lewat Laragon/XAMPP atau path yang kamu catat saat instalasi). Fokus dulu ke yang sering dipakai:
| Folder / file | Peran awam |
|---|---|
app/ |
Isi otak aplikasi — kode inti (class) nanti dikumpulkan di sini |
routes/ |
Daftar pintu lalu-lintas web (HTTP) — web & API |
database/ |
Migrasi, seeder, dan file SQLite |
config/ |
Pengaturan kerangka (jarang disentuh awam di awal) |
public/ |
Pintu depan yang dilayani saat kamu buka situs di browser |
.env |
Pengaturan lokal mesinmu (jangan diunggah sembarangan) |
Awam: belum hafal semua folder? Tidak apa-apa. Yang wajib diingat sekarang: app, routes, database, .env.
File .env — buku pengaturan
Masih di terminal (folder perpustakaan-api). Kalau belum ada file .env, salin dari contoh lalu generate kunci:
copy .env.example .env
php artisan key:generate
Di macOS/Linux: cp .env.example .env lalu php artisan key:generate.
Buka file .env di editor teks. Di Windows, paling mudah: ketik notepad .env di terminal proyek (lalu Enter). Beberapa baris yang sering dilihat awam (bentuk mirip — jangan salin baris simulasi PHP di bawah ke .env):
<?php
// Simulasi isi .env — bukan file PHP sungguhan; hanya contoh teks.
echo "APP_NAME=PerpustakaanApi", PHP_EOL;
echo "APP_ENV=local", PHP_EOL;
echo "APP_KEY=base64:...(diisi artisan key:generate)", PHP_EOL;
echo "DB_CONNECTION=sqlite", PHP_EOL;
Awam: .env seperti label di belakang toko: nama toko, mode latihan (local), dan jenis buku besar (database). APP_KEY digenerate Artisan — jangan dikarang manual.
Database dari nol — SQLite dulu
Untuk belajar di Windows tanpa memasang MySQL dulu, pakai SQLite (satu file).
- Di editor, cari baris
DB_CONNECTION=.... Kalau masihmysql(atau nilai lain), ganti jadiDB_CONNECTION=sqlite. Simpan file. - Buat file kosong:
database/database.sqlite.- Windows (Explorer): masuk folder
database, buat Text File baru, namaidatabase.sqlite(boleh kosong). Pastikan namanya benar-benar berakhir.sqlite— bukandatabase.sqlite.txt. Kalau Windows menyembunyikan ekstensi, di Explorer buka tab View lalu centang opsi menampilkan ekstensi file (File name extensions / Ekstensi nama file). - Windows (terminal): tetap di folder
perpustakaan-api, ketiktype nul > database\database.sqlite
- Windows (Explorer): masuk folder
- Di terminal yang sama, jalankan migrasi:
php artisan migrate
Perintah ini membuat tabel dasar Laravel di file SQLite. Kalau sukses, terminal biasanya menampilkan daftar migrasi yang dijalankan.
Awam: SQLite = buku besar satu map. Cukup untuk belajar denah. Nanti kalau butuh MySQL di Laragon, cukup ubah DB_* di .env — tidak wajib hari ini.
Install-dari-nol: kamu tidak perlu unduh driver ekstra untuk SQLite di jalur Laravel modern; cukup file .sqlite + migrate. Fondasi proyek tetap merujuk Instal PHP, Composer & Proyek Laravel (#56).
Artisan — asisten perintah sehari-hari
Pastikan prompt terminal masih di dalam perpustakaan-api, lalu coba satu per satu (Enter setelah tiap baris):
php artisan list
php artisan --version
php artisan migrate
php artisan serve
Saat serve hidup, biarkan jendela terminal itu terbuka. Boleh buka browser ke http://127.0.0.1:8000 untuk memastikan toko masih nyala (halaman welcome). Kalau kamu ingin menjalankan perintah Artisan lain tanpa mematikan lampu toko, buka jendela terminal kedua (Laragon/Shell XAMPP lagi), cd ke folder proyek yang sama, lalu ketik di sana. Matikan serve dengan Ctrl+C di terminal yang menjalankannya.
Contoh bentuk output versi (simulasi):
<?php
echo "Laravel Framework 13.0.0", PHP_EOL;
Awam: artisan list seperti menu remote TV — kamu melihat perintah yang tersedia tanpa hafal semua. serve menyalakan lampu toko sementara.
Pola Dasar — empat langkah denah bersih
-
1
Buka denah
Kenaliapp,routes,database,.envdiperpustakaan-api. -
2
Siapkan .env
Salin dari.env.examplebila perlu, laluphp artisan key:generate. -
3
Database SQLite
Buatdatabase/database.sqlite, setDB_CONNECTION=sqlite, jalankanmigrate. -
4
Cek Artisan
php artisan listdanphp artisan serve— pastikan proyek masih hidup.
Demo peta folder — file mandiri
Latihan ide denah tanpa mengubah proyek Laravel:
- Buka editor teks, buat file baru, tempel cuplikan di bawah, simpan sebagai
laravel_struktur_env_artisan_demo.php(boleh di Desktop). - Buka terminal di folder tempat file itu disimpan (Explorer: Shift+klik kanan folder -> “Open in Terminal” / “Buka di Terminal”, atau
cdmanual). Pastikanphp -vsudah jalan. - Jalankan:
php laravel_struktur_env_artisan_demo.php— layar menampilkan peta folder simulasi.
File ini mensimulasikan denah & pengaturan — tidak mengubah proyek Laravel-mu:
<?php
declare(strict_types=1);
/**
* Demo peta folder & .env — simulasi teks untuk awam.
*/
function petaFolder(): array
{
return [
'app' => 'otak aplikasi',
'routes' => 'daftar pintu HTTP',
'database' => 'migrasi & sqlite',
'.env' => 'pengaturan lokal',
];
}
function contohEnv(): array
{
return [
'APP_NAME' => 'PerpustakaanApi',
'DB_CONNECTION' => 'sqlite',
'APP_ENV' => 'local',
];
}
function demo(): void
{
echo "=== Demo denah Laravel ===", PHP_EOL;
foreach (petaFolder() as $nama => $peran) {
echo "- {$nama}: {$peran}", PHP_EOL;
}
echo PHP_EOL, "=== Contoh pengaturan .env ===", PHP_EOL;
foreach (contohEnv() as $kunci => $nilai) {
echo "{$kunci}={$nilai}", PHP_EOL;
}
echo PHP_EOL, "Langkah berikutnya sungguhan: key:generate -> buat sqlite -> migrate -> serve.", PHP_EOL;
}
demo();
Awam: demo() hanya menampilkan peta di terminal. Setelah paham, kerjakan langkah yang sama di folder perpustakaan-api sungguhan. declare(strict_types=1); membuat tipe lebih ketat — boleh diikuti, tidak wajib dihafal.
Kesalahan umum
| Gejala | Penyebab tipikal | Perbaikan awam |
|---|---|---|
.env tidak ketemu / tidak kelihatan di Explorer |
Belum disalin, atau file bertitik sulit terlihat | copy .env.example .env lalu key:generate; buka dengan notepad .env di terminal |
| Migrate gagal meski file sqlite ada | DB_CONNECTION masih mysql (belum diganti) |
Di .env, ganti jadi DB_CONNECTION=sqlite, simpan, jalankan migrate lagi |
| Migrate gagal / database error | File database.sqlite belum dibuat, atau namanya jadi database.sqlite.txt |
Buat ulang file kosong database/database.sqlite (tanpa .txt) |
| Artisan “could not open input file” | Belum cd ke folder proyek |
Masuk ke perpustakaan-api dulu (lihat bagian Persiapan) |
| Bingung perintah diketik di mana | Belum buka terminal Laragon / Shell XAMPP | Lihat Persiapan — alat yang kamu buka; ketik di terminal yang sudah kenal PHP |
Bingung beda config/ dan .env |
Membuka terlalu banyak file sekaligus | Untuk awam: ubah .env di editor dulu; config/ biarkan |
Latihan
- Jalankan demo PHP di atas, lalu buka Explorer ke folder
perpustakaan-api— cocokkan nama folder dengan peta. - Pastikan
.envada, jalankanphp artisan key:generate, buatdatabase.sqlite, laluphp artisan migrate. - Jelaskan ke teman: beda singkat
app/,routes/, dan.envdengan bahasa toko/perpustakaan.
FAQ
Harus MySQL dari awal?
Tidak. SQLite cukup untuk langkah denah ini. MySQL di Laragon boleh belakangan saat data makin besar.
Terminal mana yang harus dibuka?
Sama seperti di Instal PHP, Composer & Proyek Laravel (#56): menu Terminal Laragon atau tombol Shell XAMPP. Lalu cd ke folder perpustakaan-api sebelum perintah Artisan.
Harus buka VS Code dulu?
Tidak wajib. Editor teks apa pun cukup untuk mengecek .env. Di Windows: notepad .env dari terminal proyek sudah cukup. VS Code membantu kalau kamu suka, tapi bukan syarat langkah ini.
Kenapa .env tidak kelihatan di Explorer?
Nama file diawali titik. Banyak orang lebih nyaman membuka lewat terminal: pastikan sudah cd ke perpustakaan-api, lalu notepad .env. Kalau file belum ada, jalankan dulu copy .env.example .env.
Bagaimana membuat file database.sqlite di Windows?
Paling mudah lewat Explorer: folder database, buat file baru bernama database.sqlite (isi boleh kosong). Cek nama file: jangan sampai jadi database.sqlite.txt. Atau di terminal proyek: type nul > database\database.sqlite.
Boleh mengedit banyak file di config/?
Untuk pemula: tahan dulu. Kebanyakan pengaturan harian cukup lewat .env.
Apa hubungan dengan artikel instalasi?
Instal PHP, Composer & Proyek Laravel (#56) mendirikan proyek. #57 (ini) mengajakmu mengenali isi rumahnya.
Ke mana setelah ini?
Berikutnya: Routing & Jawaban JSON API Perpustakaan (#58) — buka pintu HTTP dan jawab daftar buku dengan JSON.
Kesimpulan
Kamu sudah punya denah kerja Laravel: folder penting, file .env, database SQLite dari nol, dan Artisan untuk migrate/serve/list. Ini langkah 2/8 jalur Laravel di Seri 4.
Seri 4 progress: langkah #57 (ini) · 2/8 jalur Laravel · prasyarat: Instal PHP, Composer & Proyek Laravel (#56) LIVE. Berikutnya: Routing & Jawaban JSON API Perpustakaan (#58).