# Dokumentasi Diagram Alur (Flowchart) Aplikasi JTA Dokumen ini berisi rancangan **Diagram Alur (Flowchart)** jalannya aplikasi mobile JTA dari pertama kali dibuka hingga penggunaan fitur-fiturnya. Anda dapat menyalin kode Mermaid di bawah untuk diimpor ke **Diagrams.net (Draw.io)**. --- ## 1. Kode Flowchart (Mermaid) ```mermaid flowchart TD Start([Mulai]) --> Splash[Splash Screen: Cek Sesi Login] Splash --> LoggedIn{Apakah Sudah Login?} LoggedIn -- Tidak --> Onboarding[Landing Page / Onboarding] Onboarding --> ChooseAuth{Masuk atau Daftar?} ChooseAuth -- Masuk --> Login[Halaman Login] ChooseAuth -- Daftar --> Register[Halaman Register] Login --> SubmitLogin{Login Berhasil?} SubmitLogin -- Tidak --> Login SubmitLogin -- Ya --> MainTab Register --> SubmitRegister{Register Berhasil?} SubmitRegister -- Tidak --> Register SubmitRegister -- Ya --> Login LoggedIn -- Ya --> MainTab[Halaman Utama / Dashboard] MainTab --> CheckDevice{Apakah Alat Terhubung?} CheckDevice -- Tidak --> EmptyState[Tampilan Alat Belum Terhubung] EmptyState --> ClaimDevice[Input Claim Code Alat] ClaimDevice --> SubmitClaim{Claim Berhasil?} SubmitClaim -- Tidak --> ClaimDevice SubmitClaim -- Ya --> ActiveState CheckDevice -- Ya --> ActiveState[Tampilan Dashboard Aktif] ActiveState --> Nav[Navigasi Menu Utama] Nav --> TabMonitoring[Tab 1: Monitoring] TabMonitoring --> ViewRealtime[Pantau Suhu & Kelembapan Real-Time] TabMonitoring --> ViewChart[Lihat Grafik Riwayat Sensor] Nav --> TabControl[Tab 2: Control] TabControl --> SelectMode{Pilih Mode Kerja} SelectMode -- Otomatis --> SetThreshold[Atur Batas Threshold Suhu & Kelembapan] SetThreshold --> AutoWater[ESP32 Siram Otomatis jika Melewati Batas] SelectMode -- Manual --> PumpManual[Nyalakan Pompa dengan Durasi Waktu] TabControl --> SetSchedule[Atur Jadwal Penyiraman] SetSchedule --> ScheduleWater[ESP32 Siram Otomatis Sesuai Jadwal] Nav --> ActionLogout[Tombol Logout] ActionLogout --> ConfirmLogout{Konfirmasi Logout?} ConfirmLogout -- Ya --> ClearSession[Hapus Sesi & Kembali ke Landing] ClearSession --> Onboarding ConfirmLogout -- Batal --> ActiveState ``` --- ## 2. Penjelasan Alur Aktivitas Aplikasi Berikut adalah penjelasan narasi untuk setiap tahapan pada diagram alur di atas: 1. **Awal Sesi (Splash Screen & Auth Check)**: - Ketika aplikasi pertama kali dijalankan, sistem akan menampilkan Splash Screen dan secara otomatis memeriksa status autentikasi lokal pengguna di Supabase. - Jika sesi login aktif masih ditemukan, pengguna langsung diarahkan ke **Halaman Utama (Dashboard)**. Jika tidak, pengguna diarahkan ke **Halaman Landing / Onboarding**. 2. **Proses Registrasi & Login**: - Di Halaman Landing, pengguna dapat memilih masuk (Login) atau membuat akun baru (Register). - Setelah proses registrasi sukses, pengguna harus masuk menggunakan email dan password terdaftar. 3. **Verifikasi Kepemilikan Alat**: - Di Halaman Utama, sistem mendeteksi apakah akun pengguna sudah terhubung dengan perangkat IoT ESP32 (`device_id != null`). - **Jika Belum Terhubung**: Aplikasi menampilkan status kosong (Empty State) dan meminta pengguna memasukkan **Claim Code** yang tertera pada alat untuk menghubungkannya. - **Jika Sudah Terhubung**: Aplikasi langsung menampilkan dashboard aktif yang berisi pembaruan data sensor real-time. 4. **Navigasi Fitur Utama**: Setelah alat terhubung, pengguna dapat menggunakan 2 tab fitur utama aplikasi: - **Fitur Monitoring (Tab 1)**: - Memantau suhu (°C) dan kelembapan (%) kumbung secara real-time yang diperbarui secara otomatis setiap 5 detik (polling). - Melihat riwayat grafik perkembangan sensor harian, mingguan, atau bulanan. - **Fitur Kontrol & Penjadwalan (Tab 2)**: - Memilih mode kerja alat: **Mode Otomatis** (pompa menyala mandiri berdasarkan batas threshold suhu dan kelembapan yang diinput) atau **Mode Manual** (menyalakan pompa secara langsung dengan opsi durasi waktu 15 detik hingga 5 menit). - Mengatur jadwal penyiraman berkala (menentukan jam dan hari penyiraman otomatis). 5. **Proses Logout**: - Pengguna dapat keluar dari akun secara aman dengan menekan tombol logout. Sistem akan menampilkan dialog konfirmasi terlebih dahulu sebelum menghapus sesi aktif Supabase dan mengembalikan pengguna ke Halaman Landing. --- ## 3. Cara Mengimpor ke Diagrams.net (Draw.io) 1. Salin seluruh kode di dalam blok ` ```mermaid ` pada Bagian 1 di atas. 2. Buka [app.diagrams.net](https://app.diagrams.net/). 3. Di menu atas editor Diagrams.net, pilih **Arrange** -> **Insert** -> **Advanced** -> **Mermaid...** (atau klik tombol **`+`** pada toolbar -> **Advanced** -> **Mermaid**). 4. Tempel (*paste*) kode Mermaid tersebut. 5. Klik **Insert** (Sisipkan). Diagrams.net akan langsung menggambar bagan alir lengkap di atas secara instan.