# Flowchart - Full Sistem Banyu Biru (SATU KESELURUHAN) ``` ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ BANYU BIRU TICKETING & BOOKING SYSTEM │ │ FULL SYSTEM UNIFIED FLOWCHART │ ├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────┐ │ │ │ START │ │ │ └────────┬────────┘ │ │ │ │ │ ▼ │ │ ┌───────────────────────────┐ │ │ │ USER ACCESSES WEBSITE │ │ │ │ (Buka browser, ketik URL) │ │ │ └───────────────┬───────────┘ │ │ │ │ │ ▼ │ │ ┌────────────────────────────┐ │ │ │ {USER LOGGED IN?} │ │ │ │ (Cek Session) │ │ │ └─────────────┬──────────────┘ │ │ │ │ │ ┌─────────┴─────────┐ │ │ │ │ │ │ NO YES │ │ │ │ │ │ ▼ ▼ │ │ ┌─────────────────────────┐ │ ┌─────────────────────────────┐ │ │ │ SHOW HOME PAGE │ │ │ {CHECK ROLE} │ │ │ │ (Public Content) │ │ └─────────────┬─────────────┘ │ │ │ - Banner │ │ │ │ │ │ - Info Tempat │ │ ┌────────┴────────┐ │ │ │ - Layanan │ │ │ │ │ │ └────────────┬────────────┘ │ ADMIN USER │ │ │ │ │ │ │ │ ▼ │ ▼ ▼ │ │ ┌─────────────────────────┐ │ ┌─────────┐ ┌─────────────┐ │ │ │ USER CLICKS: │ │ │DASHBOARD│ │HOME PAGE │ │ │ │ - LOGIN │ │ │(Admin) │ │(User) │ │ │ │ - REGISTER │ │ └────┬────┘ └──────┬──────┘ │ │ │ - LIHAT TIKET │ │ │ │ │ │ │ - LIHAT BOOKING │ │ │ │ │ │ └────────────┬────────────┘ │ │ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ │ ┌─────────────────────────┐ │ ┌────┴────┐ ┌────┴──────┐ │ │ │ {ACTION SELECTED?} │ │ │ │ │ │ │ │ └────────────┬────────────┘ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ │ │ ┌────────────────────┼────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ │ │ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ │ │ LOGIN │ │ REGISTER │ │ LOGOUT │ │ │ │ │ │ │ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ │ │ │ │ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │ │ │ │ │ │ │ INPUT EMAIL & │ │ INPUT: NAME, │ │ DESTROY SESSION │ │ │ │ │ │ │ │ PASSWORD │ │ EMAIL, PASSWORD │ │ CLEAR AUTH │ │ │ │ │ │ │ └────────┬──────────┘ └────────┬──────────┘ └────────┬──────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ │ │ │ │ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │ │ │ │ │ │ │ VALIDATE & │ │ VALIDATE & │ │ REDIRECT TO │ │ │ │ │ │ │ │ CHECK CREDENTIAL │ │ CHECK EMAIL │ │ HOME PAGE │ │ │ │ │ │ │ └────────┬──────────┘ └────────┬──────────┘ └───────────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ │ │ │ │ │ │ ┌───────────────────┐ ┌───────────────────┐ │ │ │ │ │ │ │ {VALID?} │ │ {VALID?} │ │ │ │ │ │ │ └────────┬──────────┘ └────────┬──────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌──────┴──────┐ ┌──────┴──────┐ │ │ │ │ │ │ NO YES NO YES │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ │ │ │ │ │ │ ┌──────┐ ┌───────────────────┐ ┌──────┐ ┌───────────────────┐ │ │ │ │ │ │ │ERROR │ │ CREATE SESSION │ │ERROR │ │ HASH PASSWORD │ │ │ │ │ │ │ └──┬───┘ └────────┬──────────┘ └──┬───┘ └────────┬──────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ │ ▼ │ │ │ │ │ │ │ ┌───────────────────┐ │ ┌───────────────────┐ │ │ │ │ │ │ │ │ {ROLE = ADMIN?} │ │ │ INSERT TO DB │ │ │ │ │ │ │ │ └────────┬──────────┘ │ │ CREATE SESSION │ │ │ │ │ │ │ │ │ │ └────────┬──────────┘ │ │ │ │ │ │ │ ┌──────┴──────┐ │ │ │ │ │ │ │ │ │ YES NO │ │ │ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ │ │ │ ▼ ▼ │ ┌───────────────────┐ │ │ │ │ │ │ │ ┌────────┐ ┌────────┐ │ │ REDIRECT TO │ │ │ │ │ │ │ │ │DASHBOARD│ │ HOME │ │ │ HOME │ │ │ │ │ │ │ │ └────────┘ └────────┘ │ └───────────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────────────────────────────┴───────────────────────────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ │ │ ┌────────────────────────────────────────┐ │ │ │ ADMIN MENU OPTIONS │ │ │ │ ┌──────┬──────┬──────┬──────┬────┐ │ │ │ │ │ Tiket│ Bank │ Order│Book │QR │ │ │ │ │ │ Mgmt │ Akun │ Verif│ing │Scan│ │ │ │ │ └──┬───┴──┬───┴──┬───┴────┴────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ │ │ │ │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐│ │ │ │ │CRUD │ │CRUD │ │Verif│ │Verif│ │Scan││ │ │ │ │Tiket│ │Bank │ │Tiket│ │Book │ │QR ││ │ │ │ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─────┼──────┼──────┼─────┼─────┼─────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ │ │ ┌────────────────────────────────────────┐ │ │ │ USER MENU OPTIONS │ │ │ │ ┌──────┬──────┬──────┬──────┬────┐ │ │ │ │ │Beli │Upload│Downld│Book │Prof│ │ │ │ │ │Tiket│Bukti │Tiket│ing │ile │ │ │ │ │ └──┬───┴──┬───┴──┬───┴────┴────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ │ │ │ │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐│ │ │ │ │Buy │ │Upload│ │Print│ │Book │ │Edit ││ │ │ │ │Ticket│ │Proof │ │PDF │ │Date │ │Prof ││ │ │ │ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─────┼──────┼──────┼─────┼─────┼─────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ │ │ ┌────────────────────────────────────────────┐ │ │ │ SHARED DATABASE │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ │ │ users │ │tickets │ │places │ │ │ │ │ │bank_acc│ │ticket_ │ │bookings │ │ │ │ │ │ │ │orders │ │ │ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ └────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ ``` --- ## UNIFIED FLOW - DETAIL ``` START │ ▼ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ USER OPENS WEBSITE │ │ (URL: domain.com) │ └────────────────────────────────────────────────────────┬────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ {IS USER LOGGED IN?} │ │ (Check session/auth cookie) │ └──────────────────────────┬───────────────────────────────────────────────────────────────────────────────────┘ │ ┌──────────────┴──────────────┐ │ │ NO YES │ │ ▼ ▼ ┌─────────────────────┐ ┌───────────────────────────────────────────────────────────────────────────────┐ │ SHOW PUBLIC PAGE │ │ {WHAT IS THE USER ROLE?} │ │ - Home banner │ └────────────────────────────┬────────────────────────────────────────────────────┘ │ - Info tempat │ │ │ - Menu: Login │ ┌────────────────┴────────────────┐ │ Register │ │ │ │ │ ▼ ▼ │ ┌─────────────────┴─────────┐ │ │ │ USER CLICKS: │ │ │ │ - Login │ │ │ │ - Register │ │ │ └────────────┬────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────┐ │ ┌──────────────────────┐ ┌──────────────────────┐ │ │ LOGIN PROCESS: │ │ │ ADMIN USER │ │ REGULAR USER │ │ │ 1. Show login form │ │ │ │ │ │ │ │ 2. Input email/pass │ │ │ ┌──────────────┐ │ │ ┌──────────────┐ │ │ │ 3. Validate │ │ │ │ ADMIN │ │ │ │ USER │ │ │ │ 4. Check DB │ │ │ │ DASHBOARD │ │ │ │ HOME PAGE │ │ │ │ 5. Create session │ │ │ │ │ │ │ │ │ │ │ │ 6. Redirect │ │ │ │ ┌────────┐ │ │ │ │ ┌────────┐ │ │ │ └───────────┬───────────┘ │ │ │ │Statistics│ │ │ │ │ │MyTicket│ │ │ │ │ │ │ │ │ - Total │ │ │ │ │ │MyBookg │ │ │ │ │ │ │ │ │ - Revenue│ │ │ │ │ │Profile │ │ │ │ │ │ │ │ └────────┘ │ │ │ │ │Logout │ │ │ │ │ │ │ │ │ │ │ │ └────────┘ │ │ │ ▼ │ │ │ ┌────────┐ │ │ │ │ │ │ │ ┌─────────────────────────┐ │ │ │ │CRUD │ │ │ │ │ ┌────────┐ │ │ │ │ REGISTER PROCESS: │ │ │ │ │Tikets │ │ │ │ │ │BUY │ │ │ │ │ 1. Show register form │ │ │ │ └────────┘ │ │ │ │ │TICKET │ │ │ │ │ 2. Input data │ │ │ │ │ │ │ │ └────────┘ │ │ │ │ 3. Validate │ │ │ │ ┌────────┐ │ │ │ │ │ │ │ │ 4. Hash password │ │ │ │ │CRUD │ │ │ │ │ ┌────────┐ │ │ │ │ 5. Insert DB │ │ │ │ │Bank │ │ │ │ │ │BOOKING │ │ │ │ │ 6. Create session │ │ │ │ └────────┘ │ │ │ │ │PENDOPO │ │ │ │ │ 7. Redirect │ │ │ │ │ │ │ │ └────────┘ │ │ │ └───────────┬───────────┘ │ │ │ ┌────────┐ │ │ │ │ │ │ │ │ │ │ │ │VERIFY │ │ │ │ │ │ │ │ │ │ │ │ │Orders │ │ │ │ │ │ │ │ │ │ │ │ └────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌────────┐ │ │ │ │ │ │ │ │ │ │ │ │VERIFY │ │ │ │ │ │ │ │ │ │ │ │ │Bookings│ │ │ │ │ │ │ │ │ │ │ │ └────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌────────┐ │ │ │ │ │ │ │ │ │ │ │ │QR │ │ │ │ │ │ │ │ │ │ │ │ │Scanner │ │ │ │ │ │ │ │ │ │ │ │ └────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌────────┐ │ │ │ │ │ │ │ │ │ │ │ │CRUD │ │ │ │ │ │ │ │ │ │ │ │ │Admins │ │ │ │ │ │ │ │ │ │ │ │ └────────┘ │ │ │ │ │ │ │ │ │ │ └──────┬───────┘ │ └──┼──────────────┘ │ │ │ │ │ │ │ │ │ │ └───────────────┼───┴───────────┴───────────┘ │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────────────────────────────────────────────────────┴────────────────────┘ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ BUY TICKET FLOW │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ 1. USER SELECTS: Visit Date, Ticket Type, Quantity (1-20) │ │ │ │ │ 2. SYSTEM CALCULATES: Total Price = qty × ticket_price │ │ │ │ │ 3. USER CLICKS: "Lanjutkan Pembayaran" │ │ │ │ │ 4. SYSTEM GENERATES: Order Code (AT-XXXXX), Ticket Codes (AT-XXXXX), QR Codes │ │ │ │ │ 5. SYSTEM SAVES: ticket_order + ticket_order_items to DB │ │ │ │ │ 6. USER SEES: Payment page with bank account info │ │ │ │ │ 7. USER TRANSFERS: Money to bank account │ │ │ │ │ 8. USER UPLOADS: Payment proof (jpg/png/pdf, max 5MB) │ │ │ │ │ 9. SYSTEM SAVES: Payment proof to /public/payment-proofs/ │ │ │ │ │ 10. USER WAITS: For admin verification │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ BOOKING FLOW │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ 1. USER SELECTS: Booking Date │ │ │ │ │ │ │ 2. SYSTEM CHECKS: Is date available? (AJAX) │ │ │ │ │ │ │ 3. USER FILLS: Visitor Name, Phone, Address, Notes │ │ │ │ │ │ │ 4. USER CLICKS: "Booking Sekarang" │ │ │ │ │ │ │ 5. SYSTEM GENERATES: Booking Code (AB-XXXXX) │ │ │ │ │ │ │ 6. SYSTEM SAVES: booking to DB (status=pending) │ │ │ │ │ │ │ 7. USER SEES: Payment page with bank account info │ │ │ │ │ │ │ 8. USER TRANSFERS: Money to bank account │ │ │ │ │ │ │ 9. USER UPLOADS: Payment proof │ │ │ │ │ │ │ 10. USER WAITS: For admin verification │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ ADMIN VERIFICATION FLOW │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ 1. ADMIN OPENS: Order Tiket / Booking menu │ │ │ │ │ │ │ 2. ADMIN SEES: List of pending payments │ │ │ │ │ │ │ 3. ADMIN CLICKS: "Detail" on an order │ │ │ │ │ │ │ 4. ADMIN SEES: Customer info, items, payment proof │ │ │ │ │ │ │ 5. ADMIN DECIDES: │ │ │ │ │ │ │ ┌────────────────┬────────────────┐ │ │ │ │ │ │ │ │ KONFIRMASI │ TOLAK │ │ │ │ │ │ │ │ ├────────────────┼────────────────┤ │ │ │ │ │ │ │ │ - Update status│ - Input reason │ │ │ │ │ │ │ │ │ = 'confirmed'│ - Update status│ │ │ │ │ │ │ │ │ - Set confirm │ = 'rejected' │ │ │ │ │ │ │ │ │ _at = now() │ │ │ │ │ │ │ │ │ └────────────────┴────────────────┘ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ QR SCANNER FLOW (Admin) │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ 1. ADMIN OPENS: Verifikasi Tiket page │ │ │ │ │ │ │ 2. ADMIN CHOOSES: Scan QR / Input Manual │ │ │ │ │ │ │ 3. SYSTEM READS: QR Code / Manual Input │ │ │ │ │ │ │ 4. SYSTEM QUERIES: ticket_order_items by ticket_code │ │ │ │ │ │ │ 5. SYSTEM CHECKS: Is ticket valid? (not used) │ │ │ │ │ │ │ 6. SYSTEM SHOWS: Ticket info + Valid/Used status │ │ │ │ │ │ │ 7. ADMIN CLICKS: "Tandai Sudah Dipakai" (if valid) │ │ │ │ │ │ │ 8. SYSTEM UPDATES: is_used = true, used_at = now() │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ DOWNLOAD TICKET FLOW (User after confirmed) │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ 1. USER OPENS: My Tickets / Download page │ │ │ │ │ │ │ 2. USER CLICKS: Download/Print button │ │ │ │ │ │ │ 3. SYSTEM GENERATES: PDF with QR Code │ │ │ │ │ │ │ 4. USER DOWNLOADS/PRINTS: Ticket PDF │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ PROFILE & HISTORY FLOW │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ USER CAN: View/Edit Profile, Change Password, View Ticket History, View Booking │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ ▼ │ │ │ ┌─────────────────────────────────────────────┐ │ │ │ │ LOGOUT PROCESS │ │ │ │ │ 1. User clicks Logout │ │ │ │ │ 2. System destroys session │ │ │ │ │ 3. System redirects to home page │ │ │ │ └─────────────────────┬───────────────────────┘ │ │ │ │ │ │ └────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌────────┐ │ │ │ END │ │ │ └────────┘ │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ ``` --- ## SUPER SIMPLE UNIFIED FLOW (One Page) ``` ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ SISTEM PARKIRAN & BOOKING WISATA BANYU BIRU │ │ (FULL FLOWCHART) │ ├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌───────┐ │ │ │ START │ │ │ └───┬───┘ │ │ │ │ │ ▼ │ │ ┌──────────────────────┐ │ │ │ USER BUKA WEBSITE │ │ │ └──────────┬───────────┘ │ │ │ │ │ ▼ │ │ ┌───────────────────────────┐ │ │ │ SUDAH LOGIN? │ │ │ │ (Cek Session) │ │ │ └─────┬──────────────┬──────┘ │ │ ┌───────┴──────┐ ┌───────┴────────┐ │ │ NO │ NO │YES │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────┐ │ │ │ TAMPILKAN HAL. │ │TAMPILKAN HAL. │ │ CEK ROLE: │ │ │ │ PUBLIK │ │ LOGIN/REGISTER │ │ ADMIN / USER │ │ │ │ (Banner, Info) │ │ │ └─────────┬───────────┘ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ ┌───┴───┐ │ │ │ │ │ │ │ │ │ │ ADMIN USER │ │ │ │ │ │ │ │ │ │ ▼ ▼ │ │ │ │ ┌─────────┐ ┌─────────┐ │ │ │ │ │DASHBOARD│ │HOME │ │ │ │ │ │ADMIN │ │USER │ │ │ │ │ └────┬────┘ └────┬────┘ │ │ │ │ │ │ │ │ │ │ ┌───────┴───────┴───────┐ │ │ │ │ │ │ │ │ │ │ ▼ ▼ │ │ │ │ ┌──────────┐ ┌──────────┐ │ │ │ │ │ADMIN MENU│ │USER MENU │ │ │ │ │ │──────────│ │──────────│ │ │ │ │ │•Tiket │ │•Beli Tiket│ │ │ │ │ │•Bank │ │•Booking │ │ │ │ │ │•Order │ │•My Tiket │ │ │ │ │ │•Booking │ │•My Book │ │ │ │ │ │•QR Scan │ │•Profile │ │ │ │ │ │•Admin │ │•Logout │ │ │ │ │ │•Logout │ │ │ │ │ │ │ └────┬─────┘ └────┬─────┘ │ │ │ │ │ │ │ │ │ │ │ ┌─────────────┘ │ │ │ │ │ │ │ │ │ │ ▼ ▼ │ │ │ │ ┌─────────────────────────┐ │ │ │ │ │ DATABASE (MySQL) │ │ │ │ │ │ ─────────────────────│ │ │ │ │ │ • users │ │ │ │ │ │ • tickets │ │ │ │ │ │ • ticket_orders │ │ │ │ │ │ • ticket_order_items │ │ │ │ │ │ • places │ │ │ │ │ │ • bookings │ │ │ │ │ │ • bank_accounts │ │ │ │ │ └─────────────────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ └────────────────────┴────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ ALUR LENGKAP (Dari Login sampai Logout): │ │ │ │ │ │ │ │ 1. USER LOGIN → 2. PILIH MENU → 3. LAKUKAN AKSI → 4. ADMIN VERIFIKASI → 5. SELESAI → LOGOUT │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ JIKA USER MEMILIH "BELI TIKET": │ │ │ │ │ │ ───────────────────────────────────────────────────────────────────────────────────────── │ │ │ │ │ User Pilih Tanggal → Pilih Tiket → Pilih Jumlah → Hitung Total → Bayar → Upload Bukti │ │ │ │ │ ↓ │ │ │ │ │ Admin Verifikasi (Terima/Tolak) → User Download Tiket → Scan QR saat datang │ │ │ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ JIKA USER MEMILIH "BOOKING PENDOPO": │ │ │ │ │ │ ───────────────────────────────────────────────────────────────────────────────────────── │ │ │ │ │ User Pilih Tanggal → Cek Ketersediaan → Isi Data → Booking → Bayar → Upload Bukti │ │ │ │ │ ↓ │ │ │ │ │ Admin Verifikasi (Terima/Tolak) → BookingConfirmed │ │ │ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ JIKA ADMIN MEMILIH "VERIFIKASI": │ │ │ │ │ │ ───────────────────────────────────────────────────────────────────────────────────────── │ │ │ │ │ Admin Lihat Daftar Pending → Klik Detail → Periksa Bukti → Konfirmasi / Tolak │ │ │ │ │ ↓ │ │ │ │ │ Status diUpdate → User Dapat/notifikasi │ │ │ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ │ │ JIKA ADMIN MEMILIH "QR SCANNER": │ │ │ │ │ │ ───────────────────────────────────────────────────────────────────────────────────────── │ │ │ │ │ Admin Scan QR / Input Manual → Sistem Cek Validitas → Tampilkan Hasil (Valid/Used) │ │ │ │ │ ↓ │ │ │ │ │ Jika Valid → Tandai Sudah Dipakai │ │ │ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ ▼ │ │ ┌───────┐ │ │ │ END │ │ │ └───────┘ │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ ``` --- ## KETERANGAN: ### Aktor: - **GUEST** = Pengunjung yang belum login - **USER** = Pengunjung yang sudah login (membeli tiket/booking) - **ADMIN** = Petugas yang mengelola sistem ### Menu Admin: | Menu | Fungsi | |------|--------| | Dashboard | Lihat statistik & chart | | Tiket | CRUD data tiket | | Rekening Bank | CRUD rekening bank | | Order Tiket | Verifikasi pembayaran tiket | | Booking | Verifikasi pembayaran booking | | QR Scanner | Scan & verifikasi ticket | | Admin | CRUD admin lain | ### Menu User: | Menu | Fungsi | |------|--------| | Beli Tiket | Pembelian tiket masuk | | Booking | Pemesanan pendopo | | Tiket Saya | Lihat riwayat & download | | Booking Saya | Lihat riwayat booking | | Profil | Edit profil & password | ### Status: - **pending** = Menunggu verifikasi - **confirmed** = Diterima/confirmed - **rejected** = Ditolak --- **Dibuat**: 9 Maret 2026 **Sistem**: Banyu Biru Ticketing & Booking System **Tipe**: Unified Flowchart (Semua jadi satu)