SiPerak / software.md
Ilnaa's picture
Upload folder using huggingface_hub
42fd126 verified
|
Raw History Blame Contribute Delete
10.2 kB
# Dokumentasi Rekayasa Perangkat Lunak: Desain Antarmuka (UI) & Alur Kerja (Web Flow)
Dokumen ini mendefinisikan arsitektur antarmuka pengguna (*User Interface*), pola desain (*Design Pattern*), dan alur navigasi (*Web Flow*) untuk Sistem Pengaduan Digital. Perancangan ini ditujukan untuk memberikan panduan teknis yang presisi bagi tim pengembang (*Frontend Engineer* dan *UI/UX Designer*) dalam mengimplementasikan sistem.
---
## 1. Pola Desain Arsitektur Antarmuka (*UI Design Patterns*)
Sistem ini mengadopsi beberapa pola desain standar industri untuk menjamin skalabilitas, maintainability, dan performa aplikasi:
### A. Component-Based Architecture (Atomic Design)
Antarmuka dibangun menggunakan pendekatan modular di mana setiap elemen UI dipecah menjadi komponen independen yang dapat digunakan kembali (*reusable*):
* **Atoms:** Elemen dasar UI yang tidak dapat dipecah lagi (contoh: `Button`, `InputText`, `BadgeStatus`, `SpinnerLoading`).
* **Molecules:** Gabungan beberapa atoms yang membentuk satu kesatuan fungsi (contoh: `SearchGroup` yang terdiri dari `InputText` dan `Button`).
* **Organisms:** Komponen kompleks yang membentuk bagian dari halaman (contoh: `Navbar`, `Sidebar`, `TableLaporan`, `FormAduan`).
* **Templates & Pages:** Susunan organisms dalam tata letak (*layout*) tertentu yang merepresentasikan halaman utuh aplikasi.
### B. MVVM (Model-View-ViewModel) Pattern / State Management Centralized
Untuk memisahkan logika bisnis dengan presentasi UI, terutama pada implementasi *Single Page Application* (SPA):
* **View:** Komponen deklaratif UI (HTML/JSX) yang menangani rendering data ke layar.
* **ViewModel / State:** Mengelola kondisi data lokal (*reactive state*), penanganan *event* pengguna, dan komunikasi dengan *API Service Layer*.
* **Model:** Representasi skema data objek (contoh: `User`, `Laporan`, `Statistik`).
### C. Container-Presenter Pattern
Komponen dipisahkan menjadi dua kategori:
1. **Container Components (Smart):** Mengatur penarikan data (*data fetching*), pengelolaan state manajemen, dan logika fungsional.
2. **Presenter Components (Dumb):** Hanya menerima data melalui *properties/props* dan merendernya ke UI tanpa mengetahui asal-usul data tersebut. Menjamin tingkat reusabilitas yang tinggi.
---
## 2. Struktur Tata Letak Utama (*Global Layout Structure*)
Sistem ini dibagi menjadi dua area tata letak utama berdasarkan hak akses pengguna:
### Layout A: Public & Masyarakat Layout (Responsive Clean Grid)
* **Header / Navigation Bar:** Berisi logo sistem, menu navigasi utama (Beranda, Statistik, Panduan), serta tombol aksi "Masuk" dan "Daftar".
* **Main Content Area:** Menggunakan kontainer terpusat (*max-width Container*) dengan pendekatan sistem *Grid* (12 kolom) yang fleksibel untuk perangkat desktop, tablet, maupun mobile.
* **Footer:** Berisi informasi hak cipta, kontak instansi, dan tautan sosial media resmi.
### Layout B: Admin Dashboard Layout (Fixed Sidebar Grid)
* **Sidebar (Navigation Panel):** Terpasang tetap di sisi kiri layar (*fixed positional*). Berisi profil singkat admin, menu manajemen (Dashboard, Verifikasi Laporan, Distribusi Kerja, Statistik Analitik), dan tombol keluar.
* **Top Header:** Berisi indikator status koneksi, panel notifikasi real-time, dan informasi tanggal sistem.
* **Content Canvas:** Area dinamis di sisi kanan sidebar untuk memuat tabel data tabel, grafik analitik, atau formulir verifikasi dokumen dengan kapabilitas *scrolling* independen.
---
## 3. Spesifikasi Tampilan Antarmuka Halaman (*UI Page Descriptions*)
### Halaman 1: Beranda & Landing Page (Akses: Publik)
* **Hero Section:** Judul utama aplikasi "Sistem Pengaduan Digital Masyarakat", deskripsi singkat, serta tombol *Call to Action* (CTA) utama yang mengarah langsung ke formulir pengaduan.
* **Section Alur Kerja:** Infografis langkah mudah melapor (Tulis -> Verifikasi -> Tindak Lanjut -> Selesai).
* **Section Statistik Singkat:** Widget interaktif menampilkan total aduan masuk dan persentase penyelesaian saat ini.
### Halaman 2: Autentikasi - Login & Register (Akses: Publik)
* **Formulir Pendaftaran (UC-01):** Input teks terstruktur untuk Nama Lengkap, Alamat Email, Nomor Telepon, Kata Sandi, dan Konfirmasi Kata Sandi. Dilengkapi dengan indikator validasi *real-time* (kekuatan password dan keunikan email).
* **Formulir Masuk:** Input Email dan Kata Sandi dengan mekanisme proteksi serangan *Brute Force* (reCAPTCHA v3 terintegrasi).
### Halaman 3: Ruang Kerja Masyarakat (Akses: Masyarakat Terautentikasi)
* **Dashboard Riwayat:** Tabel dinamis (*Data Table*) yang menampilkan daftar pengaduan pribadi. Kolom terdiri dari ID Laporan, Judul Aduan, Tanggal Kirim, Kategori, dan `BadgeStatus` warna (Kuning: Menunggu, Biru: Terverifikasi, Ungu: Didistribusikan, Hijau: Selesai).
* **Formulir Pembuatan Laporan Baru (UC-02):**
* Input Judul (Teks baris tunggal, maks. 100 karakter).
* Dropdown Kategori (Infrastruktur, Pelayanan Publik, Keamanan, Kesehatan, dll.).
* Area Teks Deskripsi (Teks multi-baris kaya komponen teks mentah).
* Komponen Drag-and-Drop Lampiran (Mendukung berkas JPG/PNG/PDF, maks. 5MB).
* **Formulir Edit Laporan (UC-03):** Replikasi dari formulir pembuatan laporan, namun memuat data lama secara otomatis (*pre-populated data*) dan hanya aktif jika status laporan masih "Menunggu".
### Halaman 4: Ruang Kerja Admin - Control Panel (Akses: Admin)
* **Dashboard Utama:** Kumpulan ringkasan matriks berupa kartu indikator (*KPI Cards*) untuk memantau metrik operasional secara waktu nyata.
* **Halaman Verifikasi & Distribusi (UC-04 & UC-05):** Komponen *Split-Screen View*. Sisi kiri menampilkan daftar antrean laporan masuk, sisi kanan menampilkan detail dokumen laporan yang dipilih secara instan lengkap dengan tombol aksi "Setujui Verifikasi" atau "Tolak" serta dropdown instansi tujuan distribusi.
* **Halaman Manajemen Status (UC-08):** Panel entri data log aktivitas di mana admin dapat memilih *dropdown* status operasional terbaru disertai kolom catatan tindak lanjut yang akan dikirim ke pelapor.
### Halaman 5: Dashboard Statistik Publik (UC-07) (Akses: Publik & Admin)
* **Visualisasi Grafik:** Representasi visual interaktif menggunakan library grafik berbasis performa (seperti Chart.js / Recharts):
* *Pie Chart:* Distribusi aduan per kategori instansi.
* *Bar Chart:* Tren volume aduan bulanan.
* *Line Chart:* Kecepatan rata-rata waktu penyelesaian kasus.
* **Fitur Filter Kontrol:** Komponen seleksi tanggal (*Date Range Picker*) dan filter multi-opsi kategori untuk menyaring data grafik secara instan tanpa memuat ulang halaman (*Asynchronous Re-rendering*).
---
## 4. Arsitektur Alur Kerja Aplikasi (*Systemic Web Flow*)
Seluruh navigasi antar halaman diatur melalui struktur routing yang ketat dengan pengamanan tingkat tinggi (*Route Guards*). Di bawah ini merupakan representasi urutan langkah alur navigasi dari awal hingga akhir proses:
```
[Masyarakat / Publik]
β”‚
β”œβ”€β”€β–Ί Akses Landing Page ──► Melihat Statistik Publik (UC-07)
β”‚
β”œβ”€β”€β–Ί Mengklik "Daftar Akun" ──► Mengisi Form Pendaftaran (UC-01)
β”‚ β”‚
β”‚ (Data Valid)
β”‚ β–Ό
β”œβ”€β”€β–Ί Mengklik "Masuk" β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
β”‚ (Login Sukses)
β”‚ β–Ό
└──► Masuk ke Ruang Kerja Masyarakat
β”‚
β”œβ”€β”€β–Ί Mengisi Formulir Pengaduan Baru (UC-02) ──► Simpan ke Database (Status: Menunggu)
β”‚
└──► Membuka Riwayat Pengaduan
β”‚
└──► Status "Menunggu"?
β”œβ”€β”€β–Ί Ya ──► Mengedit Laporan Aduan (UC-03)
└──► Tidak ──► Akses Edit Terkunci (Read-Only)
───────────────────────────────────────────────────────────────────────────────────────────────────
[Admin]
β”‚
β”œβ”€β”€β–Ί Otentikasi Admin Melalui Portal Khusus
β”‚ β”‚
β”‚ (Login Sukses)
β”‚ β–Ό
└──► Masuk ke Admin Control Panel Dashboard
β”‚
β”œβ”€β”€β–Ί Buka Modul Antrean Verifikasi Laporan
β”‚ β”‚
β”‚ └──► Memverifikasi Kelayakan & Kelengkapan Laporan (UC-04)
β”‚ β”‚
β”‚ (Laporan Valid)
β”‚ β–Ό
β”‚ Meneruskan & Mengelola Distribusi ke Instansi (UC-05) (Status: Didistribusikan)
β”‚
β”œβ”€β”€β–Ί Membuka Log Pengaduan Aktif
β”‚ β”‚
β”‚ └──► Mengupdate Status Laporan & Beri Catatan Progres (UC-08) (Status: Selesai)
β”‚
└──► Membuka Analitik Internal ──► Melihat & Ekspor Data Statistik Komprehensif (UC-07)
```
### Aturan Navigasi Operasional & Keamanan Routing:
1. **Guarded Routes (Middleware):** Halaman Ruang Kerja Masyarakat dan Admin Dashboard dilindungi oleh otentikasi berbasis *Token* (misal: JWT). Pengguna anonim yang mencoba mengakses tautan internal akan dilempar secara otomatis ke halaman Login.
2. **Role-Based Access Control (RBAC):** Akun bermasyarakat tidak memiliki akses fisik maupun logika program untuk membuka halaman dengan prefiks URL `/admin/*`. Pelanggaran akses akan memicu respon halaman kesalahan standar HTTP 403 (*Forbidden*).
3. **Form State Preservation:** Jika pengguna tidak sengaja menekan tombol kembali saat mengisi formulir `UC-02` atau `UC-03`, sistem akan menampilkan dialog konfirmasi *pop-up* pencegah kehilangan data guna memastikan pengalaman pengguna tetap optimal.