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

Alur: Folder -> .env -> SQLite -> Artisan Folder denah proyek .env pengaturan SQLite + migrate Artisan serve / list Setelah instalasi: masuk folder perpustakaan-api, kenali denah, isi .env, buat file sqlite, lalu migrate. Baru setelah ini nyaman lanjut ke routing & JSON. Urutan ini mengikuti langkah #57 (ini) — belum menulis route API.
#57 (ini): denah folder -> .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 file database.sqlite.
  • Terminal — Laragon: menu Terminal · XAMPP: tombol Shell. Di sini kamu mengetik copy, php artisan …, dan cd. Jangan asal buka CMD/PowerShell dari Start Menu.
  • Editor teks — Notepad / VS Code — untuk membuka/mengecek baris di file .env (misalnya DB_CONNECTION=sqlite). Cara paling mudah di Windows: di terminal proyek ketik notepad .env lalu Enter.
  • Browser — opsional hari ini; berguna nanti saat php artisan serve untuk 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).

  1. Di editor, cari baris DB_CONNECTION=.... Kalau masih mysql (atau nilai lain), ganti jadi DB_CONNECTION=sqlite. Simpan file.
  2. Buat file kosong: database/database.sqlite.
    • Windows (Explorer): masuk folder database, buat Text File baru, namai database.sqlite (boleh kosong). Pastikan namanya benar-benar berakhir .sqlite — bukan database.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, ketik type nul > database\database.sqlite
  3. 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. 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

Latihan ide denah tanpa mengubah proyek Laravel:

  1. Buka editor teks, buat file baru, tempel cuplikan di bawah, simpan sebagai laravel_struktur_env_artisan_demo.php (boleh di Desktop).
  2. Buka terminal di folder tempat file itu disimpan (Explorer: Shift+klik kanan folder -> “Open in Terminal” / “Buka di Terminal”, atau cd manual). Pastikan php -v sudah jalan.
  3. 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

  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.

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).