Bank Pertanyaan Penguji Big Golf
Dokumen ini versi upgrade untuk latihan sidang.
Isi pertanyaan dibuat lebih lebar, dari konsep dasar sampai keputusan teknis yang bisa ditanya mendadak.
Semua rujukan file hanya dari big-golf/.
Cara pakai biar tidak kaku
- Jawab dulu 20 detik dengan pola konsep, alasan, bukti file
- Kalau penguji minta detail, baru masuk ke alur kode
- Jangan buru buru buka banyak file
- Buka satu file yang paling relevan, jelaskan dulu konteksnya
Ringkasan inti yang harus nempel di kepala
- Arsitektur pakai PHP native dengan pola MVC ringan
- Routing ditangani manual di
big-golf/config/router.php - UI pakai Bootstrap 5 dan styling kustom di
big-golf/public/assets/css/tema.css - Vue dipakai tipis untuk interaksi kecil, bukan sebagai SPA penuh
- Data ulasan diproses via PDO prepared statements
- Area admin diamankan dengan session auth, CSRF, dan verifikasi password hash
A. Konsep dasar web dan stack
1) Kenapa pilih PHP native
Jawaban singkat
Kami sengaja pakai PHP native karena scope proyek jelas dan instruksi akademik memang mendorong itu. Dengan struktur MVC, kode tetap rapi meski tidak memakai framework besar.
Rujukan file
big-golf/public/index.php, big-golf/config/router.php, big-golf/controllers/
2) Kapan Bootstrap membantu paling terasa
Jawaban singkat
Bootstrap membantu di grid, form, button, modal, dan utilitas responsif. Ini bikin tim bisa fokus ke alur bisnis tanpa mengulang CSS dasar dari nol.
Rujukan file
big-golf/views/layouts/utama.php, big-golf/views/admin/login.php
3) Kenapa masih pakai CSS kustom kalau sudah ada Bootstrap
Jawaban singkat
Bootstrap dipakai sebagai fondasi komponen. Identitas visual proyek tetap kami bentuk di tema.css supaya tidak terasa template generik.
Rujukan file
big-golf/public/assets/css/tema.css
4) Vue dipakai di mana dan buat apa
Jawaban singkat
Vue dipakai tipis untuk kebutuhan interaksi kecil seperti mount tahun footer. Jadi penggunaannya hemat, tidak over engineering.
Rujukan file
big-golf/views/layouts/utama.php, big-golf/views/partials/footer.php
5) Kenapa tidak dijadikan SPA sekalian
Jawaban singkat
Kebutuhan aplikasi ini lebih cocok server rendered pages dengan interaksi lokal. Pendekatan itu lebih sederhana, cepat dijelaskan saat sidang, dan pas untuk scope company profile.
Rujukan file
big-golf/views/layouts/utama.php, big-golf/config/router.php
6) Apa nilai tambah arsitektur MVC di proyek ini
Jawaban singkat
MVC memudahkan pemisahan tanggung jawab. View fokus tampilan, controller fokus alur request, model fokus data.
Rujukan file
big-golf/controllers/UlasanController.php, big-golf/models/UlasanModel.php, big-golf/views/ulasan/halaman.php
B. Arsitektur request dan route
7) Alur request dari browser sampai HTML jadi apa
Jawaban singkat
Request masuk ke public/index.php, diteruskan ke router, lalu controller memilih view. Data yang perlu diambil dipanggil dari model sebelum render.
Rujukan file
big-golf/public/index.php, big-golf/config/router.php, big-golf/config/bootstrap.php
8) Kenapa route admin dipisah dengan endpoint aksi
Jawaban singkat
Kami pisahkan supaya alur GET halaman dan POST mutasi data tidak campur. Ini bikin kontrol keamanan dan audit lebih jelas.
Rujukan file
big-golf/config/router.php, big-golf/public/aksi_setujui_ulasan.php
9) Route publik apa saja yang paling penting dihafal
Jawaban singkat
Yang wajib hafal adalah /, /tentang, /fasilitas, /galeri, /lokasi-kontak, /ulasan, /admin/dashboard. Daftar ini biasanya muncul saat penguji cek cakupan fitur.
Rujukan file
big-golf/config/router.php
10) Kenapa tidak pakai dynamic routing
Jawaban singkat
Karena kebutuhan route masih terbatas dan stabil. Route statis membuat alur lebih mudah diuji dan minim kompleksitas.
Rujukan file
big-golf/config/router.php
11) Apa fungsi helper render halaman
Jawaban singkat
Helper render dipakai untuk konsistensi layout, data title, dan include partial umum. Jadi tidak perlu copy render logic di banyak controller.
Rujukan file
big-golf/config/bootstrap.php
C. Frontend dan UI detail komponen
12) Navbar pakai stack apa
Jawaban singkat
Navbar dirender dari partial PHP, interaksi mobile pakai dropdown Bootstrap, icon pakai Bootstrap Icons, dan gaya visual disetel di tema.css.
Rujukan file
big-golf/views/partials/navbar.php, big-golf/public/assets/css/tema.css
13) Footer pakai stack apa
Jawaban singkat
Footer dibangun dari partial PHP dengan utility Bootstrap, icon links, dan mini mount Vue untuk tahun dinamis. Ini contoh penggunaan Vue yang proporsional.
Rujukan file
big-golf/views/partials/footer.php, big-golf/views/layouts/utama.php
14) Lightbox galeri pakai apa
Jawaban singkat
Lightbox digerakkan JavaScript vanilla, bukan library tambahan besar. Ini cukup untuk navigasi foto dan tetap ringan.
Rujukan file
big-golf/public/assets/js/galeri.js, big-golf/views/galeri/index.php
15) Modal tulis ulasan pakai apa
Jawaban singkat
Modal memakai komponen Bootstrap, form dirender dari partial, dan interaksi bintang ditangani script JS khusus.
Rujukan file
big-golf/views/partials/ulasan/modal_tulis.php, big-golf/public/assets/js/ulasan-modal.js
16) Kenapa tetap pakai inline script di beberapa laman
Jawaban singkat
Untuk interaksi yang benar benar lokal pada satu halaman, inline script bisa lebih praktis dan mudah ditelusuri saat debugging. Selama tetap terkontrol, ini masih valid.
Rujukan file
big-golf/views/tentang/index.php, big-golf/views/fasilitas/index.php
17) Bagaimana responsivitas dijaga
Jawaban singkat
Responsivitas dijaga lewat grid Bootstrap, utility class, dan tuning CSS tema. Targetnya supaya konten tetap terbaca rapi di mobile sampai desktop.
Rujukan file
big-golf/views/layouts/utama.php, big-golf/public/assets/css/tema.css
D. Backend dan alur bisnis
18) Alur kirim ulasan dari user ke database
Jawaban singkat
User kirim form ke endpoint aksi, controller validasi input, lalu model simpan ke tabel ulasan dengan status awal menunggu. Data baru tampil ke publik setelah moderasi admin.
Rujukan file
big-golf/public/aksi_kirim_ulasan.php, big-golf/controllers/UlasanController.php, big-golf/models/UlasanModel.php
19) Alur vote ulasan di-handle di mana
Jawaban singkat
Vote masuk lewat route /ulasan/vote, lalu controller memvalidasi payload dan model melakukan update terparameter. Ini menjaga jalur vote tetap aman dari input liar.
Rujukan file
big-golf/config/router.php, big-golf/controllers/UlasanController.php
20) Kenapa contact form tidak langsung simpan DB
Jawaban singkat
Karena tujuan bisnisnya mengarahkan komunikasi ke WhatsApp. Jadi form lebih ke pre formatting pesan, bukan ticketing system.
Rujukan file
big-golf/public/aksi_kirim_kontak.php, big-golf/controllers/LokasiKontakController.php
21) Moderasi ulasan alurnya bagaimana
Jawaban singkat
Admin buka dashboard, pilih aksi setujui sembunyikan edit atau hapus, lalu endpoint POST memproses perubahan status lewat model. Setiap aksi utama disertai proteksi token.
Rujukan file
big-golf/views/admin/dashboard.php, big-golf/public/aksi_setujui_ulasan.php, big-golf/models/UlasanModel.php
22) Kenapa memakai endpoint aksi_*.php
Jawaban singkat
Pendekatan ini bikin jalur mutasi data sangat eksplisit dan mudah diaudit. Saat sidang pun lebih gampang dijelaskan endpoint mana yang melakukan apa.
Rujukan file
big-golf/public/aksi_login_admin.php, big-golf/public/aksi_hapus_ulasan.php
E. Database dan data integrity
23) Kenapa memilih PDO
Jawaban singkat
PDO memberi prepared statement yang rapi dan konsisten untuk berbagai query. Ini memudahkan binding parameter dan mengurangi risiko SQL injection.
Rujukan file
big-golf/koneksi.php, big-golf/models/UlasanModel.php
24) Apa bukti query aman dari SQL injection
Jawaban singkat
Query model menggunakan prepare, bindValue, dan execute, bukan menyusun string SQL mentah dari input user.
Rujukan file
big-golf/models/UlasanModel.php, big-golf/models/AdminPenggunaModel.php
25) Status ulasan dipakai untuk apa
Jawaban singkat
Status dipakai untuk memisahkan data publik dan data antrian moderasi. Artinya kontrol kualitas konten tetap di tangan admin.
Rujukan file
big-golf/models/UlasanModel.php, big-golf/views/ulasan/halaman.php
26) Apa fungsi log moderasi
Jawaban singkat
Log moderasi dipakai sebagai jejak perubahan saat status ulasan diubah admin. Ini penting untuk audit internal.
Rujukan file
big-golf/models/UlasanModel.php, big-golf/sql/skema.sql
27) Bagaimana relasi tabel dijaga
Jawaban singkat
Skema dibuat dengan constraint dan indeks untuk mendukung integritas data dan performa query utama.
Rujukan file
big-golf/sql/skema.sql
F. Security dan hardening
28) CSRF dipasang di mana saja
Jawaban singkat
CSRF ada di login, logout, moderasi admin, vote ulasan, kirim ulasan, dan form kontak. Token diverifikasi server side memakai hash_equals.
Rujukan file
big-golf/controllers/AdminAuthController.php, big-golf/controllers/UlasanController.php, big-golf/controllers/LokasiKontakController.php
29) Kenapa hash_equals penting
Jawaban singkat
hash_equals dipakai untuk perbandingan token yang lebih aman terhadap timing attack sederhana. Ini praktik standar saat verifikasi token.
Rujukan file
big-golf/controllers/AdminAuthController.php
30) Session hardening ada apa saja
Jawaban singkat
Session cookie disetel dengan httponly dan samesite, lalu session ID diregenerasi saat login. Ini mengurangi risiko pencurian atau fixation sesi.
Rujukan file
big-golf/config/bootstrap.php, big-golf/controllers/AdminAuthController.php
31) Mitigasi brute force login ada atau tidak
Jawaban singkat
Ada pembatasan berbasis percobaan gagal dan lock sementara. Ini belum kelas enterprise, tapi sudah cukup untuk baseline proyek akademik.
Rujukan file
big-golf/controllers/AdminAuthController.php
32) XSS dicegah bagaimana
Jawaban singkat
Output dinamis yang tampil di view di escape pakai htmlspecialchars. Jadi data user tidak diproses sebagai HTML aktif.
Rujukan file
big-golf/views/ulasan/halaman.php, big-golf/views/admin/dashboard.php
33) Kenapa validasi input tetap wajib walau ada CSRF
Jawaban singkat
CSRF melindungi asal request, bukan kualitas data. Validasi tetap wajib agar data konsisten dan aman diproses sistem.
Rujukan file
big-golf/lib/InputValidator.php
G. QA, testing, dan maintainability
34) Bagian mana yang paling rawan regresi UI
Jawaban singkat
Biasanya navbar mobile, galeri lightbox, dan modal ulasan. Tiga area ini punya interaksi lebih banyak dibanding section statis.
Rujukan file
big-golf/views/partials/navbar.php, big-golf/public/assets/js/galeri.js, big-golf/public/assets/js/ulasan-modal.js
35) Bagaimana cara cepat smoke test setelah perubahan
Jawaban singkat
Buka route utama, cek form kontak, kirim ulasan dummy, lalu verifikasi moderasi dari dashboard admin. Itu sudah menutup jalur kritis publik dan admin.
Rujukan file
big-golf/config/router.php, big-golf/views/admin/dashboard.php
36) Apa indikator quality yang kalian pakai
Jawaban singkat
Kami pakai indikator sederhana tapi konkret yaitu alur utama jalan, responsif dasar aman, input tervalidasi, dan konten publik terkurasi.
Rujukan file
big-golf/views/layouts/utama.php, big-golf/controllers/UlasanController.php
37) Kenapa struktur ini mudah dipelihara
Jawaban singkat
Karena alur file cukup jelas. Controller tahu ke model mana, view tahu layoutnya, dan endpoint aksi punya tanggung jawab tegas.
Rujukan file
big-golf/controllers/, big-golf/models/, big-golf/views/
H. Performa dan pengalaman pengguna
38) Apa keputusan performa paling penting di frontend
Jawaban singkat
Kami menghindari framework berat di sisi client. Interaksi yang dibutuhkan ditangani script kecil yang fokus.
Rujukan file
big-golf/public/assets/js/galeri.js, big-golf/public/assets/js/beranda-ulasan.js
39) Kenapa gambar diakses lewat endpoint aset
Jawaban singkat
Agar jalur URL konsisten dengan web root dan lebih gampang dikontrol dari sisi server. Ini membantu menghindari masalah path saat deploy.
Rujukan file
big-golf/public/galeri-aset.php, big-golf/public/lokasi-aset.php
40) Bagaimana kalian menjaga interaksi tetap halus
Jawaban singkat
Kami batasi animasi pada bagian yang punya nilai UX jelas dan tetap sediakan fallback reduced motion. Fokusnya pengalaman nyaman, bukan efek berlebihan.
Rujukan file
big-golf/public/assets/css/tema.css, big-golf/views/beranda/index.php
I. Deployment, operasi, dan reasoning produk
41) Kalau pindah server apa yang paling diperhatikan
Jawaban singkat
Yang paling penting adalah document root ke public, konfigurasi env database, dan URL publik Maps atau WA. Tiga ini kalau salah biasanya aplikasi jalan setengah.
Rujukan file
big-golf/public/index.php, big-golf/.env, big-golf/config/url_publik.php
42) Kenapa fitur reservasi tidak dibuat booking slot penuh
Jawaban singkat
Karena kebutuhan bisnis aktual mengarah ke walk in plus komunikasi WhatsApp. Jadi kami pilih solusi yang relevan, bukan fitur kompleks yang tidak terpakai.
Rujukan file
big-golf/views/lokasi_kontak/index.php, big-golf/controllers/LokasiKontakController.php
43) Kenapa admin dipusatkan untuk moderasi ulasan
Jawaban singkat
Karena alur bisnis butuh kontrol kualitas konten publik. Dengan moderasi terpusat, risiko konten tidak layak bisa ditekan.
Rujukan file
big-golf/views/admin/dashboard.php, big-golf/models/UlasanModel.php
44) Apa kompromi teknis terbesar di proyek ini
Jawaban singkat
Komprominya ada pada kesederhanaan arsitektur versus fitur enterprise. Kami pilih pondasi yang cukup kuat untuk scope akademik tanpa menambah beban kompleksitas.
Rujukan file
big-golf/config/router.php, big-golf/controllers/AdminAuthController.php
45) Kalau disuruh lanjut versi berikutnya, prioritasnya apa
Jawaban singkat
Prioritasnya test automation dasar, monitoring error yang lebih jelas, dan hardening login di level global bukan hanya session scoped.
Rujukan file
big-golf/controllers/AdminAuthController.php, big-golf/views/admin/dashboard.php
J. Pertanyaan menjebak dan contoh jawaban aman
46) “Pakai Bootstrap berarti kalian tinggal copy template, ya”
Jawaban aman
Bootstrap kami pakai sebagai fondasi komponen, bukan jadi desain final. Identitas visual tetap kami bentuk sendiri di tema dan konten domain Big Golf.
Rujukan file
big-golf/public/assets/css/tema.css, big-golf/views/beranda/index.php
47) “Kalau native, pasti lebih tidak aman dari framework”
Jawaban aman
Yang menentukan aman atau tidak itu praktik implementasi. Di proyek ini kami pakai prepared statements, CSRF token, escaping output, dan session hardening.
Rujukan file
big-golf/models/UlasanModel.php, big-golf/controllers/AdminAuthController.php
48) “Kenapa tidak sekalian pakai React atau Next”
Jawaban aman
Untuk scope company profile plus moderasi ulasan, stack sekarang sudah pas dari sisi effort dan hasil. Kami memilih teknologi yang paling relevan, bukan paling ramai.
Rujukan file
big-golf/views/layouts/utama.php, big-golf/config/router.php
49) “Kalau ada CSRF, berarti pasti aman semua dong”
Jawaban aman
CSRF hanya salah satu lapisan. Tetap perlu validasi input, kontrol auth, dan output escaping agar perlindungannya lengkap.
Rujukan file
big-golf/lib/InputValidator.php, big-golf/views/ulasan/halaman.php
50) “Kenapa data kontak tidak disimpan database saja”
Jawaban aman
Karena target operasionalnya komunikasi langsung ke WhatsApp. Jadi kami pilih alur yang paling dipakai di lapangan.
Rujukan file
big-golf/controllers/LokasiKontakController.php
Tips delivery supaya terdengar natural
- Pakai kalimat sederhana seperti menjelaskan ke partner tim
- Hindari jawaban hafalan panjang
- Kalau bingung, balik ke tiga kata kunci yaitu alasan, implementasi, dan bukti file
- Saat ditanya tajam, tenang dulu lalu jawab dari sudut kebutuhan bisnis dan keamanan teknis
File standby saat presentasi
big-golf/config/router.phpbig-golf/views/layouts/utama.phpbig-golf/views/partials/navbar.phpbig-golf/views/partials/footer.phpbig-golf/controllers/UlasanController.phpbig-golf/controllers/AdminAuthController.phpbig-golf/models/UlasanModel.phpbig-golf/lib/InputValidator.phpbig-golf/public/assets/css/tema.css
Gate dokumen
- Pertanyaan diperluas lintas lingkup: terpenuhi
- Bahasa dibuat lebih natural untuk lisan sidang: terpenuhi
- Rujukan spesifik ke codebase: terpenuhi
- Rujukan di luar
big-golf/: tidak ada
Status: LULUS