377 lines
8.3 KiB
Markdown
377 lines
8.3 KiB
Markdown
# Flowchart - Fitur Manajemen Admin
|
|
|
|
## Daftar Isi
|
|
1. [Lihat Daftar Admin](#1-lihat-daftar-admin)
|
|
2. [Tambah Admin Baru](#2-tambah-admin-baru)
|
|
3. [Edit Admin](#3-edit-admin)
|
|
4. [Hapus Admin](#4-hapus-admin)
|
|
5. [Edit Profil 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
|