septian_airpanaswebsite/flowcharts/admin-management-flowchart.md

8.3 KiB

Flowchart - Fitur Manajemen Admin

Daftar Isi

  1. Lihat Daftar Admin
  2. Tambah Admin Baru
  3. Edit Admin
  4. Hapus Admin
  5. Edit Profil Admin

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

  1. Terminator (Oval) - START/END
  2. Process (Rectangle) - Proses/aksi
  3. Decision (Diamond) - Kondisi/percabangan
  4. Data (Parallelogram) - Input/Output
  5. Database (Cylinder) - Operasi database
  6. 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