5.2 KiB
5.2 KiB
Flowchart - Fitur Profil User
Daftar Isi
1. Lihat Profil User
Deskripsi
Flowchart untuk user melihat profil sendiri.
Flowchart
START
↓
{User sudah login?}
├─ NO → [Redirect ke halaman login] → END
└─ YES ↓
↓
{User adalah admin?}
├─ YES → [Redirect ke profil admin] → END
└─ NO ↓
↓
[User klik menu "Profil Saya" di dropdown navbar]
↓
[Query database: users]
↓
[Filter: id = user yang login]
↓
{User ditemukan?}
├─ NO → [Error: User tidak ditemukan] → [Logout] → END
└─ YES ↓
↓
[Tampilkan halaman profil]
↓
[Tampilkan informasi user:]
- Nama
- Email
- Nomor Telepon
- Alamat
- Tanggal Bergabung
↓
[Tampilkan tombol "Edit Profil"]
↓
END
2. Edit Profil User
Deskripsi
Flowchart untuk user mengedit profil sendiri.
Flowchart
START
↓
[User di halaman profil]
↓
[User klik tombol "Edit Profil"]
↓
[Tampilkan form edit profil dengan data user:]
- Nama (terisi)
- Email (terisi)
- Nomor Telepon (terisi/kosong)
- Alamat (terisi/kosong)
↓
[User mengubah data]
↓
[User 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 database: cek email sudah digunakan user lain]
↓
{Email digunakan user lain?}
├─ YES → [Error: "Email sudah terdaftar"] → [Kembali ke form] → END
└─ NO ↓
↓
{Nomor telepon diisi?}
├─ YES → {Format nomor telepon valid?}
│ ├─ NO → [Error: "Format nomor telepon tidak valid"] → [Kembali ke form] → END
│ └─ YES → [Lanjut]
└─ NO → [Lanjut]
↓
[Update tabel users:]
- name
- email
- phone (jika diisi)
- address (jika diisi)
↓
[Simpan perubahan ke database]
↓
[Update session dengan data baru]
↓
[Tampilkan notifikasi sukses:]
"Profil berhasil diupdate"
↓
[Refresh halaman profil]
↓
END
3. Ubah Password User
Deskripsi
Flowchart untuk user mengubah password sendiri.
Flowchart
START
↓
[User di halaman profil]
↓
[User klik tombol "Ubah Password"]
↓
[Tampilkan form ubah password:]
- Password Lama
- Password Baru
- Konfirmasi Password Baru
↓
[User mengisi form]
↓
[User klik tombol "Update Password"]
↓
<Validasi input>
↓
{Password lama terisi?}
├─ NO → [Error: "Password lama wajib diisi"] → [Kembali ke form] → END
└─ YES ↓
↓
[Query database: ambil user yang login]
↓
[Verifikasi password lama dengan hash]
↓
{Password lama cocok?}
├─ NO → [Error: "Password lama salah"] → [Kembali ke form] → END
└─ YES ↓
↓
{Password baru terisi?}
├─ NO → [Error: "Password baru wajib diisi"] → [Kembali ke form] → END
└─ YES ↓
↓
{Password baru minimal 8 karakter?}
├─ NO → [Error: "Password minimal 8 karakter"] → [Kembali ke form] → END
└─ YES ↓
↓
{Password baru = Konfirmasi Password?}
├─ NO → [Error: "Konfirmasi password tidak cocok"] → [Kembali ke form] → END
└─ YES ↓
↓
{Password baru berbeda dari password lama?}
├─ NO → [Error: "Password baru harus berbeda dari password lama"]
│ ↓
│ [Kembali ke form]
│ ↓
│ END
└─ YES ↓
↓
[Hash password baru menggunakan bcrypt]
↓
[Update tabel users:]
- password = password baru (hashed)
↓
[Simpan perubahan ke database]
↓
[Tampilkan notifikasi sukses:]
"Password berhasil diubah"
↓
[Redirect ke 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
- Manual Input (Parallelogram with slanted top) - Input user
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)
- Update: Biru muda (#B3E5FC)
- Security Check: Oranye muda (#FFE0B2)
- Success: Hijau muda (#C8E6C9)
- Error: Merah muda (#FFCDD2)
Tips
- Gunakan swimlane untuk memisahkan User dan System
- Tandai proses security check (password verification) dengan warna khusus
- Gunakan connector yang jelas untuk decision branch
- Tambahkan notes untuk validasi password
- Highlight proses hashing password
Security Notes
- Password lama harus diverifikasi sebelum mengubah password
- Password baru harus di-hash menggunakan bcrypt
- Password baru harus berbeda dari password lama
- Session harus diupdate setelah perubahan data
Dibuat: 25 Februari 2026
Fitur: Profil User
Sistem: Banyu Biru Ticketing & Booking System