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-api ada, php artisan serve pernah jalan. Pakai Laravel 13+ — butuh PHP 8.3+.

Spesifikasi fitur — apa yang kita kuasai?

Daftar singkat yang bisa kamu centang di akhir artikel:

  1. Mengenal folder penting: app, routes, database, config, public, .env.
  2. Menyalin .env.example ke .env (jika belum ada) dan menjalankan php artisan key:generate.
  3. Menyiapkan database SQLite dari nol lalu php artisan migrate.
  4. 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

Folder denah proyek .env pengaturan SQLite + migrate Artisan serve / list Setelah instalasi: masuk folder perpustakaan-api, kenali denah, isi .env, buat file sqlite, migrate. Baru setelah ini nyaman lanjut ke routing & JSON.
#57 (ini): denah folder -> .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).

  1. Pastikan di .env: DB_CONNECTION=sqlite.
  2. Buat file kosong: database/database.sqlite.
    • Windows (Explorer): masuk folder database, buat Text File baru, namai database.sqlite (boleh kosong).
    • Windows (terminal): type nul > database\database.sqlite
  3. 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. 1
    Buka denah
    Kenali app, routes, database, .env di perpustakaan-api.
  2. 2
    Siapkan .env
    Salin dari .env.example bila perlu, lalu php artisan key:generate.
  3. 3
    Database SQLite
    Buat database/database.sqlite, set DB_CONNECTION=sqlite, jalankan migrate.
  4. 4
    Cek Artisan
    php artisan list dan php 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

  1. Jalankan demo PHP di atas, lalu buka Explorer ke folder perpustakaan-api — cocokkan nama folder dengan peta.
  2. Pastikan .env ada, jalankan php artisan key:generate, buat database.sqlite, lalu php artisan migrate.
  3. Jelaskan ke teman: beda singkat app/, routes/, dan .env dengan 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.