# User Flow dan Use Case Diagram SIMKATMAWA

Dokumen ini berisi diagram alur pengguna (User Flow) dan Use Case untuk aplikasi SIMKATMAWA.

## 1. User Flow Diagram (Alur Pengguna)

Diagram ini menggambarkan alur interaksi pengguna **Mahasiswa** mulai dari login hingga mencetak SKPI.

```mermaid
flowchart TD
    Start([Mulai]) --> Login{Login}
    Login -->|Gagal| Login
    Login -->|Berhasil| Dashboard[Dashboard Mahasiswa]
    
    Dashboard --> MenuInput[Menu Pencatatan Kegiatan]
    MenuInput --> FormInput[Isi Form Kegiatan & Upload Sertifikat]
    FormInput --> Simpan[Simpan Data]
    
    Simpan --> Status{Status Validasi}
    Status -->|Menunggu| Tunggu[Menunggu Verifikasi Prodi]
    
    Tunggu --> VerifProdi{Verifikasi Kaprodi}
    VerifProdi -->|Ditolak| Revisi[Revisi Data]
    Revisi --> FormInput
    
    VerifProdi -->|Disetujui| VerifUniv{Verifikasi Universitas}
    VerifUniv -->|Ditolak| Revisi
    
    VerifUniv -->|Disetujui| Valid[Data Valid / SKPI Ready]
    Valid --> Download[Download/Cetak SKPI]
    Download --> End([Selesai])
```

## 2. Use Case Diagram

Diagram ini menggambarkan aktor-aktor yang terlibat dan fungsionalitas yang mereka akses.

**Aktor:**
1.  **Mahasiswa**: Pengguna utama yang mengajukan kegiatan.
2.  **Kaprodi**: Memverifikasi kegiatan di tingkat program studi.
3.  **Admin Universitas**: Mengelola master data dan melakukan verifikasi akhir.
4.  **Developer**: Mengelola user dan role sistem (teknis).

```mermaid
usecaseDiagram
    actor "Mahasiswa" as MHS
    actor "Kaprodi" as KPRODI
    actor "Admin Universitas" as ADMIN_UNIV
    actor "Developer" as DEV

    package "SIMKATMAWA System" {
        usecase "Login" as UC1
        usecase "Input Data Kegiatan" as UC2
        usecase "Upload Sertifikat" as UC3
        usecase "Lihat Status Validasi" as UC4
        usecase "Download SKPI" as UC5
        
        usecase "Verifikasi Kegiatan (Prodi)" as UC6
        usecase "Verifikasi Kegiatan (Univ)" as UC7
        usecase "Kelola Master Data" as UC8
        usecase "Kelola User & Role" as UC9
        usecase "Lihat Dashboard & Laporan" as UC10
    }

    MHS --> UC1
    MHS --> UC2
    MHS --> UC3
    MHS --> UC4
    MHS --> UC5

    KPRODI --> UC1
    KPRODI --> UC6
    KPRODI --> UC10

    ADMIN_UNIV --> UC1
    ADMIN_UNIV --> UC7
    ADMIN_UNIV --> UC8
    ADMIN_UNIV --> UC10

    DEV --> UC1
    DEV --> UC9
```

## Deskripsi Use Case Utama

| Aktor | Use Case | Deskripsi |
| :--- | :--- | :--- |
| **Mahasiswa** | Input Kegiatan | Mahasiswa mengisi data prestasi/kegiatan yang diikuti. |
| | Upload Sertifikat | Mengunggah bukti fisik (scan sertifikat) kegiatan. |
| | Download SKPI | Mengunduh dokumen SKPI yang telah disetujui dan divalidasi. |
| **Kaprodi** | Verifikasi (Prodi) | Memeriksa kebenaran data kegiatan mahasiswa di prodi tersebut. |
| **Admin Univ** | Verifikasi (Univ) | Validasi akhir sebelum SKPI diterbitkan. |
| | Master Data | Mengatur jenis prestasi, bobot nilai, dan referensi sistem lainnya. |
