Phase 3 — Backoffice Lanjutan

Flow 14 dari 28 — Phase 3Admin Melihat Dashboard Analitik Cabang

Aktor: Admin Cabang / Super Admin Isi: 4 kartu ringkasan + grafik tren + beban mekanik Update: Otomatis setiap 60 detik
flowchart TD A["Admin buka Dashboard Backoffice"] --> B["Lihat 4 Kartu Ringkasan"] B --> C["Kartu 1: Total Reservasi Hari Ini (biru)"] B --> D["Kartu 2: Sedang Dikerjakan (oranye)"] B --> E["Kartu 3: Selesai Hari Ini (hijau)"] B --> F["Kartu 4: Dibatalkan Hari Ini (merah)"] C --> G["Klik kartu > lihat daftar reservasi terkait"] D --> G E --> G F --> G B --> H["Grafik Tren Reservasi (7 hari / 4 minggu / 12 bulan)"] B --> I["Beban Kerja Mekanik: siapa sibuk, siapa tersedia"] B --> J["Jadwal Hari Ini — dikelompokkan per sesi"] H --> K{Tentukan periode} K -->|Super Admin| L["Bisa lihat dan bandingkan SEMUA cabang"] K -->|Admin Cabang| M["Hanya lihat cabang sendiri"] style L fill:#1d4ed8,color:#fff style M fill:#0891b2,color:#fff

Apa yang Bisa Dilihat di Dashboard

KomponenData yang DitampilkanManfaat untuk Manajemen
Kartu RingkasanAngka besar + perbandingan % dengan hari kemarinSekilas tahu kondisi operasional hari ini
Dashboard EksekutifRingkasan seluruh 22 cabang dalam 1 layar — khusus Pemilik/Direksi (hanya lihat, tidak bisa ubah data)Top Management pantau semua cabang tanpa perlu drill-down manual
Grafik TrenLine/bar chart reservasi harian, mingguan, bulananLihat pola naik-turun reservasi
Beban MekanikFoto, nama, jumlah mobil dikerjakan, progress barTahu siapa yang kelebihan beban, siapa yang bisa tambah
Jadwal Hari IniTimeline per sesi: nama pelanggan, plat, paket, statusPantau slot terisi per sesi
Perbandingan CabangTabel ranking: total reservasi, completion rate (Super Admin)Identifikasi cabang terbaik & terburuk

📖 Cerita Contoh

Pak Hendra (Super Admin) membuka dashboard nasional pagi hari. Layar menampilkan: 48 reservasi hari ini di seluruh Indonesia, 12 mobil sedang dikerjakan, 8 selesai, 2 dibatalkan. Di tab Executive Dashboard, ia bisa melihat ringkasan seluruh 22 cabang dalam satu layar tanpa scroll. Grafik tren menunjukkan kenaikan 15% dibanding minggu lalu. Di tabel perbandingan, Cabang Medan tampil teratas. Pak Hendra bisa klik Cabang Medan untuk melihat detailnya.

Flow 15 dari 28 — Phase 3Admin Mengelola Data Mekanik & Penugasan

Aktor: Admin Cabang / Super Admin CRUD Mekanik: Tambah, Edit, Nonaktifkan Assignment: Tugaskan mekanik ke reservasi
flowchart TD A["Buka menu Master > Mekanik"] --> B["Lihat daftar mekanik cabang"] B --> C{Tindakan} C -->|Tambah/Edit| D["Isi form: nama, spesialisasi, nomor HP"] C -->|Assign ke Reservasi| E["Buka detail reservasi > klik Assign Mekanik"] C -->|Lihat Jadwal| F["Kalender beban kerja mekanik per bulan"] D --> G["Data mekanik tersimpan"] E --> H["Pilih mekanik dari daftar (bisa lebih dari 1)"] H --> I["Sistem cek: mekanik tidak double-booking"] I --> J["Mekanik ditugaskan — notifikasi WhatsApp ke mekanik"] F --> K["Lihat jumlah reservasi per tanggal"] style G fill:#16a34a,color:#fff style J fill:#16a34a,color:#fff

Data Mekanik & Aturan Penugasan

AspekPenjelasan
Data MekanikNama, spesialisasi (contoh: Kaki-Kaki, EPS, Spooring), nomor HP, status aktif
PenugasanSatu reservasi bisa ditugaskan ke beberapa mekanik. Sistem memvalidasi tidak ada bentrokan jadwal.
NotifikasiSetelah ditugaskan, mekanik menerima notifikasi WhatsApp: "Anda ditugaskan ke reservasi B 1234 ABC, 15 Juni sesi 1"
Service LogSetiap mekanik bisa mencatat aktivitas pengerjaan — muncul sebagai linimasa di detail reservasi
Pembatalan TugasAdmin bisa membatalkan penugasan — kecuali mekanik sudah mencatat service log

📖 Cerita Contoh

Rina (Admin Cabang) melihat reservasi Budi yang sudah check-in. Ia buka detail reservasi, klik Assign Mekanik. Muncul daftar mekanik aktif: Agus (Kaki-Kaki, 3 mobil hari ini), Budi (Spooring, 2 mobil). Rina pilih Agus karena keahliannya sesuai. Sistem memvalidasi Agus tidak bentrok jadwal. Rina klik Konfirmasi. Agus langsung menerima notifikasi WhatsApp: "Anda ditugaskan: B 1234 ABC, Spooring, sesi 1."

Flow 16 dari 28 — Phase 3Admin Mengatur Jadwal Sesi & Slot

Aktor: Admin Cabang Fungsi: Generate sesi otomatis, atur kuota slot, set hari libur
flowchart TD A["Buka menu Master > Kelola Sesi"] --> B{Pilih tindakan} B -->|Generate Otomatis| C["Pilih cabang, paket, rentang tanggal"] C --> D["Atur konfigurasi: jumlah sesi/hari, jam mulai, kuota slot"] D --> E["Lihat pratinjau sesi yang akan dibuat"] E --> F["Klik Generate"] F --> G["Sesi otomatis dibuat untuk seluruh rentang tanggal"] B -->|Edit Manual| H["Klik sesi tertentu di kalender"] H --> I["Ubah: jam mulai, kuota slot, atau nonaktifkan sesi"] I --> J["Sesi diperbarui"] B -->|Set Hari Libur| K["Klik tanggal di kalender"] K --> L["Tandai sebagai Hari Libur / Cabang Tutup"] L --> M["Semua sesi di tanggal itu dinonaktifkan"] style G fill:#16a34a,color:#fff style J fill:#16a34a,color:#fff style M fill:#16a34a,color:#fff

Aturan Generate Sesi

AturanPenjelasan
Hari KerjaSenin – Sabtu (Minggu otomatis tidak dibuat sesi)
Kategori PaketKaki-Kaki (2 sesi/hari, 4 jam/sesi) — Spooring (3 sesi/hari, 2 jam/sesi)
Batas GenerateMaksimal 90 hari ke depan. Sistem juga otomatis generate 30 hari ke depan via penjadwalan.
Kuota Default5 slot per sesi. Bisa diubah per sesi spesifik (contoh: Sabtu dinaikkan jadi 8).
Tidak Bisa HapusSesi yang sudah memiliki reservasi tidak bisa dihapus — hanya bisa dinonaktifkan.

📖 Cerita Contoh

Rina ingin membuat jadwal untuk bulan Agustus. Ia buka Kelola Sesi, pilih cabang Jakarta Pusat, pilih kedua paket, rentang 1–31 Agustus. Konfigurasi: 5 slot per sesi. Klik Generate. Dalam hitungan detik, semua sesi untuk bulan Agustus siap. Rina kemudian mengatur kuota Sabtu menjadi 8 slot karena biasanya lebih ramai.

Flow 17 dari 28 — Phase 3Super Admin Mengelola Data Master (Cabang, Paket, Item)

Aktor: Super Admin (kewenangan pusat) Data: Cabang, Paket Layanan, Item Paket CRUD: Tambah, Edit, Nonaktifkan
flowchart TD A["Super Admin buka menu Master Data"] --> B{Pilih jenis data} B -->|Cabang| C["Kelola Data Cabang"] B -->|Paket| D["Kelola Paket Layanan"] B -->|Item| E["Kelola Item dalam Paket"] C --> F["Tambah/Edit/Nonaktifkan cabang: nama, kode, alamat, telepon, kota, provinsi, koordinat peta"] D --> G["Tambah/Edit/Nonaktifkan paket: nama, deskripsi, kategori, estimasi waktu, rentang harga"] E --> H["Tambah/Edit/Nonaktifkan item: nama, deskripsi, harga — setiap item terkait dengan satu paket"] F --> I["Perubahan langsung tampil di website pelanggan"] G --> I H --> I style I fill:#16a34a,color:#fff

Data yang Dikelola

Jenis DataField PentingDampak Perubahan
CabangNama, kode (unik), alamat, telepon, kota, provinsi, koordinat peta, status aktifCabang nonaktif tidak muncul di website. Data baru langsung bisa dipilih pelanggan.
Paket LayananNama, deskripsi, kategori (Kaki-Kaki / Spooring), estimasi menit, harga mulai-sampai, urutan tampilPaket nonaktif tidak muncul. Urutan menentukan tampilan di website.
Item PaketNama, deskripsi, harga. Setiap item terkait dengan satu paket.Item adalah rincian apa saja yang termasuk dalam satu paket.

📖 Cerita Contoh

Jantra Kakikaki membuka cabang baru di Makassar. Pak Hendra (Super Admin) buka Master Data → Cabang, klik Tambah. Isi: Jantra Makassar, kode MKS, alamat lengkap, telepon, koordinat dari Google Maps. Klik Simpan. Cabang Makassar langsung muncul di website pelanggan dan bisa langsung digunakan untuk reservasi.

Flow 18 dari 28 — Phase 3Super Admin Mengelola Pengguna Backoffice

Aktor: Super Admin (satu-satunya yang bisa) Fungsi: Tambah, Edit, Nonaktifkan akun staff Keamanan: Semua tindakan tercatat di log aktivitas
flowchart TD A["Super Admin buka menu Pengguna"] --> B["Lihat daftar semua pengguna backoffice"] B --> C["Filter: jabatan, cabang, status"] C --> D{Tindakan} D -->|Tambah| E["Isi form: nama, email, nomor HP, jabatan, cabang"] D -->|Edit| F["Ubah data atau jabatan pengguna"] D -->|Nonaktifkan| G["Toggle status jadi Nonaktif"] E --> H{VALIDASI} F --> H G --> H H -->|Minimal 1 Super Admin aktif| I["Perubahan tersimpan — tercatat di log aktivitas"] H -->|Mau nonaktifkan Super Admin terakhir| J["❌ Ditolak: harus ada minimal 1 Super Admin aktif"] style I fill:#16a34a,color:#fff style J fill:#dc2626,color:#fff

Jabatan & Hak Akses

JabatanWajib Pilih Cabang?Hak Akses
Super AdminTidak (bisa lihat semua)Semua fitur + semua cabang
Admin Cabang✅ WajibDashboard, Reservasi, Mekanik, Laporan (cabang sendiri)
CSO✅ WajibDashboard, Reservasi, Pelanggan (cabang sendiri)
Mekanik✅ WajibLihat pekerjaan, update status (cabang sendiri)

📖 Cerita Contoh

Cabang baru di Makassar butuh Admin Cabang. Pak Hendra buka Pengguna, klik Tambah. Isi nama, email, pilih jabatan "Admin Cabang", pilih cabang "Makassar". Klik Simpan. Sistem otomatis mengirim email ke admin baru untuk membuat password. Semua tercatat: "Hendra membuat pengguna baru — Admin Cabang Makassar".

⚠ Jika Terjadi Masalah

MasalahApa yang Terjadi
Mencoba nonaktifkan diri sendiriSistem menolak — tidak bisa nonaktifkan akun sendiri
Mencoba nonaktifkan Super Admin terakhirSistem menolak — harus selalu ada minimal 1 Super Admin

Flow 19 dari 28 — Phase 3Admin Membuat Laporan & Export (PDF/Excel)

Aktor: Admin Cabang / Super Admin Jenis: Harian, Bulanan, Pelanggan Export: PDF (siap cetak) atau Excel (data mentah)
flowchart TD A["Admin buka menu Laporan"] --> B{Pilih jenis laporan} B -->|Harian| C["Pilih tanggal"] B -->|Bulanan| D["Pilih bulan dan tahun"] B -->|Pelanggan| E["Pilih periode"] C --> F["Lihat ringkasan: total reservasi, completion rate, revenue estimasi"] D --> G["Lihat agregat: tren grafik, top paket, pelanggan baru vs returning"] E --> H["Lihat: total pelanggan, retention rate, top 10 pelanggan"] F --> I{Pilih format export} G --> I H --> I I -->|PDF| J["Unduh laporan siap cetak — dengan header, logo, tabel"] I -->|Excel| K["Unduh data mentah — multi-sheet, format Rupiah"] style J fill:#1d4ed8,color:#fff style K fill:#16a34a,color:#fff

Isi Laporan

JenisData yang DicakupKegunaan
Laporan HarianTotal reservasi, completion rate, estimasi revenue, jumlah pembatalan, detail per sesi & paketPantauan operasional harian
Laporan BulananTotal reservasi sebulan, tren harian, distribusi status (pie chart), top 5 paket, revenue per hari, perbandingan bulan laluReview kinerja bulanan, dikirim ke manajemen pusat
Laporan PelangganTotal pelanggan, pelanggan baru vs returning, rata-rata reservasi, retention rate, top 10 pelangganAnalisis loyalitas pelanggan

📖 Cerita Contoh

Akhir bulan, Rina perlu mengirim laporan ke pusat. Ia buka Laporan → Bulanan, pilih Agustus 2026. Sistem menampilkan ringkasan: 245 reservasi, 92% selesai, estimasi revenue Rp 185 juta. Grafik menunjukkan Sabtu selalu hari tersibuk. Rina klik Export PDF. File PDF terunduh dengan header Jantra Kakikaki, logo, tabel rapi. Siap dikirim ke Pak Hendra.

Flow 20 dari 28 — Phase 3Sistem Mengirim Notifikasi WhatsApp Otomatis

Aktor: Sistem (otomatis) Penerima: Pelanggan & Mekanik Channel: WhatsApp Cloud API (Meta)
flowchart TD A["Terjadi peristiwa di sistem"] --> B{Jenis peristiwa} B -->|Reservasi dibuat| C["Kirim WA ke Pelanggan: konfirmasi reservasi"] B -->|H-1 sebelum jadwal| D["Kirim WA ke Pelanggan: pengingat besok servis"] B -->|Mekanik ditugaskan| E["Kirim WA ke Mekanik: info kendaraan dan sesi"] B -->|"Status berubah (selesai)"| F["Kirim WA ke Pelanggan: servis selesai"] C --> G["Notifikasi terkirim — tercatat status kirim"] D --> G E --> G F --> G style G fill:#16a34a,color:#fff style C fill:#25D366,color:#fff style D fill:#25D366,color:#fff style E fill:#25D366,color:#fff style F fill:#25D366,color:#fff

Jenis Notifikasi WhatsApp

PemicuPenerimaContoh Isi Pesan
Reservasi berhasil dibuatPelanggan"Reservasi Anda di Jantra Jakarta Pusat pada 15 Juni sesi 1 (08:00) telah dikonfirmasi. B 1234 ABC — Spooring & Balancing."
H-1 sebelum jadwalPelanggan"Pengingat: Besok servis kendaraan B 1234 ABC di Jantra Jakarta Pusat, 15 Juni jam 08:00. Datang 15 menit sebelumnya."
Mekanik ditugaskanMekanik"Anda ditugaskan: B 1234 ABC, Toyota Avanza, Spooring, sesi 1 (08:00-10:00). Keluhan: Setir terasa berat."
Servis selesaiPelanggan"Servis B 1234 ABC di Jantra Jakarta Pusat telah selesai. Silakan ambil kendaraan Anda. Terima kasih!"

📖 Cerita Contoh

Budi reservasi untuk 15 Juni. Sehari sebelumnya (14 Juni sore), HP-nya bergetar — notifikasi WhatsApp dari Jantra Kakikaki: "Pengingat: Besok servis B 1234 ABC jam 08:00 di Jantra Jakarta Pusat." Budi jadi tidak lupa. Pagi harinya, setelah mekanik Agus ditugaskan, HP Agus juga bergetar: "Anda ditugaskan B 1234 ABC, sesi 1." Semua informasi sampai ke orang yang tepat, tepat waktu, tanpa perlu ditelepon manual.