# Dokumentasi Diagram Use Case Sistem JTA (Jamur Tiram Antirogo) Dokumen ini berisi rancangan **Diagram Use Case** beserta penjelasannya untuk digunakan dalam laporan akhir proyek/tugas akhir Anda. Anda dapat menyalin teks dan diagram di bawah ini langsung ke laporan Anda. --- ## 1. Diagram Use Case (Mermaid) Berikut adalah visualisasi diagram use case untuk aplikasi mobile JTA. Jika laporan Anda mendukung rendering Mermaid (seperti Markdown/GitHub), diagram akan ter-render otomatis. Anda juga dapat mengekspor diagram ini ke format PNG/SVG. ```mermaid graph TD %% Define Actors Petani["Petani (Pengguna)"] ESP32["Perangkat IoT (ESP32)"] subgraph Batasan_Sistem_JTA ["Batasan Sistem JTA"] UC1(("UC-01: Registrasi Akun")) UC2(("UC-02: Login Akun")) UC3(("UC-03: Hubungkan Perangkat via Claim Code")) UC4(("UC-04: Pantau Suhu & Kelembapan Real-Time")) UC5(("UC-05: Lihat Riwayat Grafik")) UC6(("UC-06: Pilih Mode Operasi: Manual / Otomatis")) UC7(("UC-07: Atur Threshold Limit")) UC8(("UC-08: Kendalikan Pompa Air")) UC9(("UC-09: Atur Jadwal Penyiraman")) UC10(("UC-10: Terima Notifikasi")) UC11(("UC-11: Logout Akun")) end %% Actor Relationships Petani --> UC1 Petani --> UC2 Petani --> UC3 Petani --> UC4 Petani --> UC5 Petani --> UC6 Petani --> UC7 Petani --> UC8 Petani --> UC9 Petani --> UC11 ESP32 --> UC4 ESP32 --> UC8 ESP32 --> UC10 %% Use Case Relationships UC3 -.->|include| UC2 UC4 -.->|include| UC3 UC5 -.->|include| UC3 UC6 -.->|include| UC3 UC9 -.->|include| UC3 UC7 -.->|extend| UC6 UC8 -.->|extend| UC6 UC10 -.->|extend| UC4 ``` ### 💡 Cara Cepat Mengimpor ke Diagrams.net (Draw.io) Draw.io mendukung pembuatan diagram otomatis dari kode Mermaid. Ikuti langkah mudah berikut: 1. Salin seluruh kode blok di dalam tanda ```mermaid diatas. 2. Buka [app.diagrams.net](https://app.diagrams.net/). 3. Di dalam editor Diagrams.net, klik menu **Arrange** di bagian atas -> **Insert** -> **Advanced** -> **Mermaid...** (atau klik ikon **+** (Plus) pada toolbar atas -> **Advanced** -> **Mermaid**). 4. Tempel (*paste*) kode Mermaid yang sudah disalin ke dalam kotak teks yang muncul. 5. Klik tombol **Insert** (Sisipkan). 6. Diagrams.net akan otomatis menggambarkan aktor, elips usecase, garis panah, dan teks penjelas. Anda tinggal merapikan posisi atau mengganti gaya warna agar sesuai selera. --- ## 2. Deskripsi Aktor (Actors) Berikut adalah penjelasan mengenai aktor-aktor yang terlibat di dalam sistem JTA: | No | Nama Aktor | Jenis | Deskripsi | |---|---|---|---| | 1 | **Petani (Pengguna)** | Utama (*Primary*) | Pengguna akhir aplikasi yang melakukan monitoring suhu/kelembapan kumbung dan mengendalikan pompa penyiraman secara manual maupun otomatis melalui aplikasi mobile. | | 2 | **Perangkat IoT (ESP32)** | Pendukung (*Supporting*) | Perangkat keras yang mengirimkan data sensor SHT31 ke sistem dan menerima perintah kontrol (on/off relay pompa) serta mengirimkan data status aktual pompa. | --- ## 3. Definisi Use Case Berikut adalah tabel fungsionalitas sistem berdasarkan Diagram Use Case di atas: | Kode UC | Nama Use Case | Aktor Terlibat | Deskripsi | |---|---|---|---| | **UC-01** | Registrasi Akun | Petani | Pengguna membuat akun baru dengan memasukkan nama, email, dan password agar terdaftar di sistem. | | **UC-02** | Login Akun | Petani | Pengguna masuk ke sistem menggunakan email dan password terdaftar untuk memvalidasi akses sesi. | | **UC-03** | Hubungkan Perangkat | Petani | Pengguna memasukkan *Claim Code* alat ESP32 untuk menghubungkan perangkat fisik dengan akun di aplikasi. | | **UC-04** | Pantau Suhu & Kelembapan | Petani, ESP32 | Sistem menampilkan data suhu (°C) dan kelembapan (%) secara real-time yang dikirimkan oleh sensor dari alat ESP32. | | **UC-05** | Lihat Riwayat Grafik | Petani | Pengguna melihat visualisasi data sensor historis (grafik harian, mingguan, bulanan) untuk analisis kondisi kumbung. | | **UC-06** | Pilih Mode Operasi | Petani | Pengguna mengganti mode kerja alat antara Mode Manual (kontrol pengguna) atau Mode Otomatis (kontrol threshold). | | **UC-07** | Atur Threshold Limit | Petani | Pengguna menentukan batas maksimum suhu dan batas minimum kelembapan sebagai acuan penyiraman otomatis. | | **UC-08** | Kendalikan Pompa Air | Petani, ESP32 | Pengguna menyalakan/mematikan pompa air secara instan berdasarkan durasi waktu pilihan pada Mode Manual. | | **UC-09** | Atur Jadwal Penyiraman | Petani | Pengguna menjadwalkan jam dan hari penyiraman otomatis untuk menjaga kelembapan kumbung secara berkala. | | **UC-10** | Terima Notifikasi | Petani, ESP32 | Sistem mengirim notifikasi peringatan push melalui OneSignal ke smartphone ketika suhu/kelembapan kumbung melewati batas aman. | | **UC-11** | Logout Akun | Petani | Pengguna keluar dari sesi akun aplikasi secara aman. | --- ## 4. Spesifikasi Use Case Utama (Skenario Utama & Alternatif) ### UC-03: Hubungkan Perangkat (Claim Perangkat) * **Aktor Utama**: Petani * **Kondisi Awal (Pre-condition)**: Pengguna sudah berhasil login dan belum menghubungkan perangkat apapun (terdeteksi kartu "Belum Ada Alat Terhubung"). * **Alur Skenario Utama**: 1. Pengguna mengetuk tombol tambah (+) pada kartu kosong halaman Monitoring. 2. Sistem menampilkan dialog "Hubungkan Alat" dan meminta input *Claim Code*. 3. Pengguna memasukkan *Claim Code* yang tertera pada alat. 4. Pengguna mengetuk tombol "Hubungkan". 5. Sistem memvalidasi kode di database Supabase dan menautkan *device_id* ke profil akun pengguna. 6. Sistem menampilkan pesan sukses dan halaman dimuat ulang menampilkan indikator monitoring aktif. * **Kondisi Akhir (Post-condition)**: Perangkat IoT berhasil terhubung ke akun pengguna secara permanen. ### UC-06: Pilih Mode Operasi & UC-07: Atur Threshold Limit * **Aktor Utama**: Petani * **Kondisi Awal (Pre-condition)**: Pengguna sudah login dan status alat dalam keadaan terhubung. * **Alur Skenario Utama (Mode Otomatis)**: 1. Pengguna membuka tab **Control**. 2. Pengguna mengaktifkan Switch "Mode Otomatis". 3. Sistem mengunci opsi tombol penyiraman manual dan menampilkan slider pengaturan batas threshold. 4. Pengguna menentukan batas maksimal suhu (misal: 30°C) dan batas minimal kelembapan (misal: 70%). 5. Pengguna mengetuk tombol "Simpan Batas". 6. Sistem mengirimkan nilai threshold ke database backend. Perangkat ESP32 membaca batas ini dan akan menyalakan pompa secara mandiri jika kondisi dilewati. * **Kondisi Akhir (Post-condition)**: Nilai threshold terupdate di backend dan mode otomatis aktif pada perangkat.