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.Struktur folder — denah singkat
Buka folder perpustakaan-api. 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
Kalau belum ada .env, salin dari contoh:
copy .env.example .env
php artisan key:generate
Di macOS/Linux: cp .env.example .env lalu php artisan key:generate.
Beberapa baris yang sering dilihat awam:
<?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).
- Pastikan di
.env:DB_CONNECTION=sqlite. - Buat file kosong:
database/database.sqlite.- Windows (Explorer): masuk folder
database, buat Text File baru, namaidatabase.sqlite(boleh kosong). - Windows (terminal):
type nul > database\database.sqlite
- Windows (Explorer): masuk folder
- 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
Jalankan di dalam folder perpustakaan-api:
php artisan list
php artisan --version
php artisan migrate
php artisan serve
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
Simpan sebagai laravel_struktur_env_artisan_demo.php, lalu jalankan php laravel_struktur_env_artisan_demo.php. 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 |
Belum disalin dari .env.example |
copy .env.example .env lalu key:generate |
| Migrate gagal / database error | File database.sqlite belum dibuat |
Buat file kosong di database/database.sqlite |
| Artisan “could not open input file” | Belum cd ke folder proyek |
Masuk ke perpustakaan-api dulu |
Bingung beda config/ dan .env |
Membuka terlalu banyak file sekaligus | Untuk awam: ubah .env 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.
Bagaimana membuat file database.sqlite di Windows?
Paling mudah lewat Explorer: folder database, buat file baru bernama database.sqlite (isi boleh kosong). 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 instalasi (#56)?
Instal PHP, Composer & Proyek Laravel (#56) mendirikan proyek. #57 (ini) mengajakmu mengenali isi rumahnya.
Ke mana setelah ini?
Berikutnya kamu akan belajar routing dan jawaban JSON — membuka pintu HTTP untuk API perpustakaan mini.
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 untuk API perpustakaan.