Pegangan Breakdown Laman Big Golf
Dokumen ini dirapikan khusus untuk sesi tanya jawab penguji.
Fokus utamanya bukan cuma “route ke mana”, tapi juga “komponen ini pakai stack apa dan fungsinya untuk apa”.
Semua rujukan dibatasi ke big-golf/.
Ringkasan arsitektur satu napas
- Entry request web ada di
big-golf/public/index.php - Router manual ada di
big-golf/config/router.php - Render halaman lewat layout tunggal
big-golf/views/layouts/utama.php - Pola MVC dipakai lewat
controllers/,models/, danviews/ - Data utama diproses lewat MySQL PDO dari
big-golf/koneksi.php
Peta stack per komponen global
Navbar
- Pakai apa: PHP partial + Bootstrap dropdown + Bootstrap Icons + CSS kustom + JS vanilla
- Dipakai untuk apa: render menu desktop dan mobile, state aktif menu, dan perubahan gaya saat scroll
-
File bukti:
big-golf/views/partials/navbar.php,big-golf/public/assets/css/tema.css,big-golf/views/layouts/utama.php
Footer
- Pakai apa: PHP partial + Bootstrap utility + Bootstrap Icons + Vue 3 mini mount
- Dipakai untuk apa: quick links, ikon kontak, dan tahun dinamis di elemen footer
-
File bukti:
big-golf/views/partials/footer.php,big-golf/views/layouts/utama.php,big-golf/public/assets/css/tema.css
Sistem layout umum
- Pakai apa: Bootstrap CDN, Vue CDN, partial include, helper render
- Dipakai untuk apa: memastikan semua laman punya kerangka UI yang konsisten
-
File bukti:
big-golf/views/layouts/utama.php,big-golf/config/bootstrap.php
Form handling umum
-
Pakai apa: endpoint
aksi_*.php+ controller method + flash session - Dipakai untuk apa: memisahkan alur GET halaman dan POST aksi data
-
File bukti:
big-golf/public/aksi_kirim_ulasan.php,big-golf/public/aksi_kirim_kontak.php,big-golf/public/aksi_login_admin.php
Keamanan umum
-
Pakai apa: CSRF token,
hash_equals, session hardening,password_verify,htmlspecialchars - Dipakai untuk apa: menahan request palsu, mengamankan autentikasi admin, dan mencegah XSS pada output
-
File bukti:
big-golf/controllers/AdminAuthController.php,big-golf/controllers/UlasanController.php,big-golf/config/bootstrap.php,big-golf/views/ulasan/halaman.php
Breakdown per laman dan komponen internalnya
1) Beranda (/)
Route dan alur
- Route:
/ - Controller:
big-golf/controllers/BerandaController.php(tampil) - View utama:
big-golf/views/beranda/index.php
Komponen dan penerapan stack
-
Hero
- Pakai HTML + CSS tema untuk visual utama dan CTA
- Dipakai untuk menyampaikan value cepat di layar pertama
- Bukti:
big-golf/views/beranda/index.php,big-golf/public/assets/css/tema.css
-
Section ulasan ringkas
- Pakai PHP render data + JS interaksi ulasan + modal Bootstrap
- Dipakai untuk preview social proof tanpa pindah halaman
- Bukti:
big-golf/public/assets/js/beranda-ulasan.js,big-golf/views/partials/ulasan/modal_tulis.php
-
Section lokasi
- Pakai Google Maps iframe + animasi ringan saat masuk viewport
- Dipakai untuk mempercepat user memahami letak bisnis
- Bukti:
big-golf/views/beranda/index.php
Kalimat siap ucap
“Beranda kami pakai kombinasi server render untuk konten inti dan JS ringan untuk interaksi. Jadi cepat dimuat, tapi tetap terasa hidup.”
2) Tentang (/tentang)
Route dan alur
- Route:
/tentang - Controller:
big-golf/controllers/TentangController.php(tampil) - View:
big-golf/views/tentang/index.php
Komponen dan penerapan stack
-
Timeline sejarah
- Pakai script vanilla di view untuk pergantian titik timeline
- Dipakai agar narasi profil tidak monoton
- Bukti:
big-golf/views/tentang/index.php
-
Layout konten
- Pakai Bootstrap grid dan utility class
- Dipakai untuk menjaga hierarki konten tetap rapi di mobile dan desktop
- Bukti:
big-golf/views/tentang/index.php,big-golf/views/layouts/utama.php
Kalimat siap ucap
“Laman Tentang sengaja lebih ringan dari sisi data. Fokusnya storytelling, jadi stack kami pakai untuk pengalaman baca yang enak.”
3) Fasilitas (/fasilitas)
Route dan alur
- Route:
/fasilitas - Controller:
big-golf/controllers/FasilitasController.php(tampil) - View:
big-golf/views/fasilitas/index.php
Komponen dan penerapan stack
-
Tabel paket
- Pakai tabel Bootstrap
- Dipakai agar informasi harga cepat dipindai
- Bukti:
big-golf/views/fasilitas/index.php
-
Card fasilitas pendukung
- Pakai card Bootstrap + CSS tema + efek reveal
- Dipakai untuk menambah konteks layanan tanpa bikin halaman berat
- Bukti:
big-golf/views/fasilitas/index.php,big-golf/public/assets/css/tema.css
Kalimat siap ucap
“Di Fasilitas, Bootstrap kami pakai bukan sekadar gaya, tapi buat menata informasi harga dan layanan supaya cepat dibaca pengunjung.”
4) Galeri (/galeri)
Route dan alur
- Route:
/galeri - Controller:
big-golf/controllers/GaleriController.php(tampil) - View:
big-golf/views/galeri/index.php
Komponen dan penerapan stack
-
Grid galeri
- Pakai server render URL gambar + CSS galeri
- Dipakai agar konten visual tetap konsisten dan mudah dikelola
- Bukti:
big-golf/controllers/GaleriController.php,big-golf/views/galeri/index.php
-
Lightbox
- Pakai JavaScript vanilla dan elemen dialog
- Dipakai untuk pengalaman lihat foto yang lebih fokus
- Bukti:
big-golf/public/assets/js/galeri.js
-
Proxy aset
- Pakai script aset endpoint
- Dipakai untuk jalur akses gambar yang konsisten dari web root
- Bukti:
big-golf/public/galeri-aset.php
Kalimat siap ucap
“Galeri kami mengutamakan UX lihat foto. Makanya ada lightbox, navigasi keyboard, dan kontrol state supaya nyaman dipakai.”
5) Lokasi dan Kontak (/lokasi-kontak)
Route dan alur
- Route:
/lokasi-kontak - Controller tampil:
big-golf/controllers/LokasiKontakController.php(tampil) - Controller submit:
big-golf/controllers/LokasiKontakController.php(prosesKirimForm) - Endpoint POST:
big-golf/public/aksi_kirim_kontak.php - View:
big-golf/views/lokasi_kontak/index.php
Komponen dan penerapan stack
-
Map dan informasi lokasi
- Pakai iframe map + layout Bootstrap
- Dipakai untuk memberikan konteks lokasi tanpa langkah tambahan
- Bukti:
big-golf/views/lokasi_kontak/index.php
-
Form kontak
- Pakai validasi server-side dengan util validator
- Dipakai supaya data masuk bersih sebelum diproses
- Bukti:
big-golf/lib/InputValidator.php,big-golf/controllers/LokasiKontakController.php
-
Redirect kanal komunikasi
- Pakai URL builder ke WA
- Dipakai untuk alur kontak cepat, sesuai kebutuhan bisnis walk in
- Bukti:
big-golf/controllers/LokasiKontakController.php,big-golf/config/url_publik.php
Kalimat siap ucap
“Laman ini titik konversi utama. User dapat info lokasi dan langsung lanjut komunikasi lewat alur form yang tervalidasi.”
6) Ulasan (/ulasan)
Route dan alur
- Route list:
/ulasan - Route vote:
/ulasan/vote - Controller:
big-golf/controllers/UlasanController.php(tampilDaftar,kirimVote,simpanBaru) - Endpoint kirim ulasan:
big-golf/public/aksi_kirim_ulasan.php - View:
big-golf/views/ulasan/halaman.php - Model:
big-golf/models/UlasanModel.php
Komponen dan penerapan stack
-
List ulasan
- Pakai query model dengan filter dan sorting
- Dipakai supaya data publik hanya menampilkan status
disetujui - Bukti:
big-golf/models/UlasanModel.php,big-golf/views/ulasan/halaman.php
-
Vote helpful
- Pakai endpoint POST + CSRF + validasi input integer
- Dipakai untuk interaksi user yang tetap aman
- Bukti:
big-golf/controllers/UlasanController.php
-
Modal kirim ulasan
- Pakai Bootstrap modal + JS bintang rating
- Dipakai untuk menurunkan friksi input user
- Bukti:
big-golf/views/partials/ulasan/modal_tulis.php,big-golf/public/assets/js/ulasan-modal.js
Kalimat siap ucap
“Di laman Ulasan, stack backend kami kerja untuk kualitas data, dan stack frontend kami kerja untuk membuat pengisian ulasan tetap gampang.”
7) Login Admin (/login.php)
Route dan alur
- Entry GET:
big-golf/public/login.php - Controller form:
big-golf/controllers/AdminAuthController.php(tampil_form_login) - Endpoint POST:
big-golf/public/aksi_login_admin.php - Controller proses:
big-golf/controllers/AdminAuthController.php(proses_login) - View:
big-golf/views/admin/login.php
Komponen dan penerapan stack
-
Form login
- Pakai Bootstrap form
- Dipakai untuk UI sederhana yang mudah dipakai admin non teknis
-
Verifikasi kredensial
- Pakai
password_verifypada hash DB - Dipakai untuk keamanan password
- Pakai
-
Anti brute force dasar
- Pakai counter session dan lock waktu singkat
- Dipakai untuk membatasi percobaan gagal berulang
Kalimat siap ucap
“Login admin tidak cuma cek password, tapi juga dilapisi CSRF, lock percobaan gagal, dan regenerasi session ID.”
8) Dashboard Admin (/admin/dashboard)
Route dan alur
- Route:
/admin/dashboard - Controller:
big-golf/controllers/AdminAuthController.php(dashboard) - View:
big-golf/views/admin/dashboard.php - Endpoint aksi moderasi:
big-golf/public/aksi_setujui_ulasan.phpbig-golf/public/aksi_sembunyikan_ulasan.phpbig-golf/public/aksi_kembalikan_menunggu_ulasan.phpbig-golf/public/aksi_edit_ulasan.phpbig-golf/public/aksi_hapus_ulasan.php
Komponen dan penerapan stack
-
Daftar antrian ulasan
- Pakai query model terparameter
- Dipakai untuk menampilkan item yang harus dimoderasi
- Bukti:
big-golf/models/UlasanModel.php
-
Aksi moderasi
- Pakai POST endpoint terpisah + CSRF moderasi
- Dipakai supaya alur audit dan kontrol status lebih jelas
- Bukti:
big-golf/controllers/AdminAuthController.php
-
Audit trail
- Pakai log moderasi di model saat update status
- Dipakai untuk jejak perubahan data
- Bukti:
big-golf/models/UlasanModel.php
Kalimat siap ucap
“Dashboard kami sengaja dibuat fokus. Admin tinggal moderasi, sistem yang menjaga validasi status, token, dan log aksi.”
Cheat sheet cepat saat penguji nanya stack
-
“Navbar kalian pakai apa”
Jawab: “
views/partials/navbar.phppakai Bootstrap dropdown dan icon, styling dipublic/assets/css/tema.css, perilaku scroll di script layout.” - “Footer kenapa ada Vue” Jawab: “Kami pakai Vue mini untuk tahun dinamis di footer, jadi Vue tidak dipakai berlebihan.”
-
“Galeri ini library apa”
Jawab: “Lightbox dibuat dengan JavaScript vanilla di
public/assets/js/galeri.js, bukan plugin berat.” -
“Form kontak backendnya apa”
Jawab: “POST ke
aksi_kirim_kontak.php, diprosesLokasiKontakController, divalidasiInputValidator.” - “Moderasi aman dari request palsu” Jawab: “Aksi dashboard wajib POST plus token CSRF dan cek session admin.”
Gate dokumen
- Spesifikasi stack per komponen: terpenuhi
- Mapping route, controller, view, dan endpoint aksi: terpenuhi
- Bahasa sudah dinaturalkan untuk kebutuhan lisan sidang: terpenuhi
- Rujukan file di luar
big-golf/: tidak ada
Status: LULUS