8.3 KiB
8.3 KiB
Flowchart - Fitur Manajemen Admin
Daftar Isi
1. Lihat Daftar Admin
Deskripsi
Flowchart untuk admin melihat daftar semua admin.
Flowchart
START
↓
{User sudah login?}
├─ NO → [Redirect ke halaman login] → END
└─ YES ↓
↓
{User adalah admin?}
├─ NO → [Error 403: Unauthorized] → END
└─ YES ↓
↓
[Admin mengakses menu "Admin"]
↓
[Query database: ambil users dengan role 'admin']
↓
[Urutkan berdasarkan nama]
↓
[Tampilkan tabel admin:]
- Nama
- Email
- Tanggal Dibuat
- Aksi (Edit, Hapus)
↓
[Tampilkan tombol "Tambah Admin"]
↓
END
2. Tambah Admin Baru
Deskripsi
Flowchart untuk menambah admin baru ke sistem.
Flowchart
START
↓
[Admin di halaman daftar admin]
↓
[Admin klik tombol "Tambah Admin"]
↓
[Redirect ke halaman form tambah admin]
↓
[Tampilkan form:]
- Nama
- Email
- Password
- Konfirmasi Password
↓
[Admin mengisi form]
↓
[Admin klik tombol "Simpan"]
↓
<Validasi input>
↓
{Nama terisi?}
├─ NO → [Error: "Nama wajib diisi"] → [Kembali ke form] → END
└─ YES ↓
↓
{Format email valid?}
├─ NO → [Error: "Format email tidak valid"] → [Kembali ke form] → END
└─ YES ↓
↓
[Query database: cek email sudah terdaftar]
↓
{Email sudah ada?}
├─ YES → [Error: "Email sudah terdaftar"] → [Kembali ke form] → END
└─ NO ↓
↓
{Password minimal 8 karakter?}
├─ NO → [Error: "Password minimal 8 karakter"] → [Kembali ke form] → END
└─ YES ↓
↓
{Password = Konfirmasi Password?}
├─ NO → [Error: "Konfirmasi password tidak cocok"] → [Kembali ke form] → END
└─ YES ↓
↓
[Hash password menggunakan bcrypt]
↓
[Simpan data ke tabel users:]
- name
- email
- password (hashed)
↓
[Assign role 'admin' ke user baru]
↓
[Tampilkan notifikasi sukses:]
"Admin berhasil ditambahkan"
↓
[Redirect ke halaman daftar admin]
↓
END
3. Edit Admin
Deskripsi
Flowchart untuk mengedit data admin.
Flowchart
START
↓
[Admin di halaman daftar admin]
↓
[Admin klik tombol "Edit" pada admin]
↓
[Query database: ambil user berdasarkan ID]
↓
{User ditemukan?}
├─ NO → [Error 404: Admin tidak ditemukan] → END
└─ YES ↓
↓
{User memiliki role 'admin'?}
├─ NO → [Error: "User bukan admin"] → END
└─ YES ↓
↓
[Redirect ke halaman form edit admin]
↓
[Tampilkan form dengan data admin:]
- Nama (terisi)
- Email (terisi)
- Password (kosong, opsional)
- Konfirmasi Password (kosong, opsional)
↓
[Admin mengubah data]
↓
[Admin klik tombol "Update"]
↓
<Validasi input>
↓
{Nama terisi?}
├─ NO → [Error: "Nama wajib diisi"] → [Kembali ke form] → END
└─ YES ↓
↓
{Format email valid?}
├─ NO → [Error: "Format email tidak valid"] → [Kembali ke form] → END
└─ YES ↓
↓
[Query: cek email sudah digunakan user lain]
↓
{Email digunakan user lain?}
├─ YES → [Error: "Email sudah terdaftar"] → [Kembali ke form] → END
└─ NO ↓
↓
{Password diisi?}
├─ YES → {Password minimal 8 karakter?}
│ ├─ NO → [Error: "Password minimal 8 karakter"] → [Kembali ke form] → END
│ └─ YES ↓
│ ↓
│ {Password = Konfirmasi Password?}
│ ├─ NO → [Error: "Konfirmasi password tidak cocok"] → [Kembali ke form] → END
│ └─ YES ↓
│ ↓
│ [Hash password baru]
│ ↓
│ [Update dengan password baru]
│
└─ NO → [Update tanpa mengubah password]
↓
[Update tabel users:]
- name
- email
- password (jika diisi)
↓
[Simpan perubahan ke database]
↓
[Tampilkan notifikasi sukses:]
"Admin berhasil diupdate"
↓
[Redirect ke halaman daftar admin]
↓
END
4. Hapus Admin
Deskripsi
Flowchart untuk menghapus admin dari sistem.
Flowchart
START
↓
[Admin di halaman daftar admin]
↓
[Admin klik tombol "Hapus" pada admin]
↓
[Tampilkan konfirmasi SweetAlert:]
"Yakin ingin menghapus admin ini?"
↓
{Admin konfirmasi?}
├─ NO (Batal) → [Tutup dialog] → END
└─ YES ↓
↓
[Query database: ambil user berdasarkan ID]
↓
{User ditemukan?}
├─ NO → [Error: "Admin tidak ditemukan"] → END
└─ YES ↓
↓
{User adalah admin yang sedang login?}
├─ YES → [Error: "Tidak dapat menghapus akun sendiri"]
│ ↓
│ END
└─ NO ↓
↓
[Cek apakah admin pernah melakukan verifikasi]
↓
[Query: cek ticket_orders dengan confirmed_by = admin_id]
↓
[Query: cek bookings dengan confirmed_by = admin_id]
↓
{Admin pernah verifikasi transaksi?}
├─ YES → [Error: "Admin tidak dapat dihapus karena ada riwayat verifikasi"]
│ ↓
│ [Sarankan: nonaktifkan akun saja]
│ ↓
│ END
└─ NO ↓
↓
[Hapus role 'admin' dari user]
↓
[Hapus user dari database]
↓
[Tampilkan notifikasi sukses:]
"Admin berhasil dihapus"
↓
[Refresh halaman daftar admin]
↓
END
5. Edit Profil Admin
Deskripsi
Flowchart untuk admin mengedit profil sendiri.
Flowchart
START
↓
[Admin mengakses menu "Profil"]
↓
[Query database: ambil data admin yang login]
↓
[Tampilkan halaman profil]
↓
[Tampilkan form dengan data admin:]
- Nama (terisi)
- Email (terisi)
- Nomor Telepon (terisi/kosong)
- Alamat (terisi/kosong)
- Password Baru (kosong, opsional)
- Konfirmasi Password (kosong, opsional)
↓
[Admin mengubah data]
↓
[Admin klik tombol "Update Profil"]
↓
<Validasi input>
↓
{Nama terisi?}
├─ NO → [Error: "Nama wajib diisi"] → [Kembali ke form] → END
└─ YES ↓
↓
{Format email valid?}
├─ NO → [Error: "Format email tidak valid"] → [Kembali ke form] → END
└─ YES ↓
↓
[Query: cek email sudah digunakan user lain]
↓
{Email digunakan user lain?}
├─ YES → [Error: "Email sudah terdaftar"] → [Kembali ke form] → END
└─ NO ↓
↓
{Password baru diisi?}
├─ YES → {Password minimal 8 karakter?}
│ ├─ NO → [Error: "Password minimal 8 karakter"] → [Kembali ke form] → END
│ └─ YES ↓
│ ↓
│ {Password = Konfirmasi Password?}
│ ├─ NO → [Error: "Konfirmasi password tidak cocok"] → [Kembali ke form] → END
│ └─ YES ↓
│ ↓
│ [Hash password baru]
│ ↓
│ [Update dengan password baru]
│
└─ NO → [Update tanpa mengubah password]
↓
[Update tabel users:]
- name
- email
- phone (jika diisi)
- address (jika diisi)
- password (jika diisi)
↓
[Simpan perubahan ke database]
↓
[Update session dengan data baru]
↓
[Tampilkan notifikasi sukses:]
"Profil berhasil diupdate"
↓
[Refresh halaman profil]
↓
END
Panduan Membuat di Draw.io
Simbol Flowchart
- Terminator (Oval) - START/END
- Process (Rectangle) - Proses/aksi
- Decision (Diamond) - Kondisi/percabangan
- Data (Parallelogram) - Input/Output
- Database (Cylinder) - Operasi database
- Document (Rectangle with wavy bottom) - Form
Warna yang Disarankan
- START/END: Hijau teal (#14B8A6)
- Process: Biru muda (#E3F2FD)
- Decision: Kuning (#FFF59D)
- Database Operation: Ungu muda (#E1BEE7)
- Form: Biru tua muda (#BBDEFB)
- Create: Hijau muda (#C8E6C9)
- Update: Biru muda (#B3E5FC)
- Delete: Merah muda (#FFCDD2)
- Security Check: Oranye muda (#FFE0B2)
Tips
- Gunakan swimlane untuk memisahkan Admin dan System
- Tandai operasi CRUD dengan warna berbeda
- Gunakan connector yang jelas untuk decision branch
- Tambahkan notes untuk security checks penting
- Highlight proses hashing password
Dibuat: 25 Februari 2026
Fitur: Manajemen Admin
Sistem: Banyu Biru Ticketing & Booking System