# 📊 Panduan Fitur Grafik Chart - Aplikasi Pengering Ikan ## 🎯 Fitur yang Ditambahkan Aplikasi sekarang memiliki **sistem grafik chart yang lengkap** untuk monitoring data pengeringan ikan secara visual dan detail. --- ## ✨ Komponen Grafik ### 1. **Dashboard - Grafik Real-time** 📈 Tampilan utama dengan 2 grafik real-time yang menampilkan: #### **Grafik Suhu** - Menampilkan perubahan suhu secara real-time - Warna: Orange/Red gradient - Range: 20-60°C - Update setiap detik saat menerima data dari ESP32 - Menampilkan 20 data terakhir dengan scrolling otomatis #### **Grafik Berat** - Menampilkan penurunan berat ikan secara real-time - Warna: Blue/Cyan gradient - Menampilkan garis target berat (hijau putus-putus) - Tooltip menampilkan sisa berat menuju target - Update setiap detik saat menerima data dari ESP32 **Fitur Grafik Dashboard:** - 🔴 Live indicator - menandakan data real-time - 📍 Dot marker pada titik terakhir - 💧 Gradient fill di bawah garis - 📏 Grid lines untuk kemudahan pembacaan - 🎯 Target line pada grafik berat - 👆 Touch tooltip - tap grafik untuk detail --- ### 2. **Chart Screen - History Detail** 📊 Layar khusus untuk melihat data history dari database dengan detail lengkap. #### **Cara Akses:** Klik tab **"Grafik"** di bottom navigation (icon bar_chart) #### **Grafik yang Tersedia:** **A. Grafik Suhu History** - Menampilkan history suhu dari database - Timeline berupa index data (#1, #2, dst) - Tooltip menampilkan suhu + timestamp - Smooth curve line **B. Grafik Berat History** - Menampilkan history berat dari database - Garis target berat horizontal - Tooltip menampilkan berat, target, dan timestamp - Color coding untuk titik di atas/bawah target **C. Statistik Card** Menampilkan analisis data: - 📊 Rata-rata Suhu - ⚖️ Rata-rata Berat - 🔺 Max Suhu - 🔻 Min Suhu - 🔺 Max Berat - 🔻 Min Berat #### **Filter Data:** Tekan icon filter (⋮) di kanan atas untuk memilih: - 50 Data Terakhir - 100 Data Terakhir - 200 Data Terakhir #### **Refresh Data:** - Pull to refresh (tarik ke bawah) - Atau tekan icon refresh di info card --- ## 🎨 Visual Features ### **Color Scheme:** - **Suhu:** Orange → Red (panas) - **Berat:** Blue → Cyan (sejuk) - **Target:** Green (tujuan) - **Live:** Orange dot (status real-time) ### **Gradient Effects:** - Semua grafik menggunakan gradient fill - Memberikan efek depth dan modern - Smooth transitions ### **Interactive Elements:** - Touch tooltip - tap grafik untuk detail - Smooth animations - Responsive layout --- ## 🔧 Cara Kerja ### **Dashboard Real-time Chart:** 1. Data diterima dari ESP32 via MQTT setiap 1 detik 2. Data disimpan ke list `suhuHistory` dan `beratHistory` 3. List maksimal 20 data (auto scroll/shift) 4. Widget `TemperatureChart` dan `WeightChart` render data 5. Chart update otomatis setiap ada data baru ### **Chart Screen History:** 1. Load data dari API endpoint `/api/data/history` 2. Parse data menjadi `List` 3. Convert ke `List` untuk grafik 4. Hitung statistik (avg, min, max) 5. Render dengan `fl_chart` LineChart --- ## 📱 User Experience ### **Dashboard:** - Scroll ke bawah untuk melihat grafik - Grafik selalu update real-time saat pengeringan berjalan - Compact layout untuk quick glance ### **Chart Screen:** - Full-screen view untuk analisis detail - Filter untuk berbagai range data - Statistik summary untuk insights - Refresh untuk update data terbaru --- ## 🛠️ Teknologi ### **Package:** - `fl_chart: ^0.69.0` - Chart library Flutter terbaik - Smooth animations - Touch interactions - Customizable ### **Widget Structure:** ``` lib/ ├── screens/ │ ├── dashboard_screen.dart (Main screen dengan real-time charts) │ └── chart_screen.dart (History charts screen) └── widgets/ ├── temperature_chart.dart (Reusable temperature chart widget) └── weight_chart.dart (Reusable weight chart widget) ``` --- ## 📊 Data Flow ### **Real-time:** ``` ESP32 → MQTT → MqttService → DashboardScreen ↓ suhuHistory/beratHistory ↓ TemperatureChart/WeightChart ``` ### **History:** ``` Backend MySQL → API → ApiService → ChartScreen ↓ List ↓ fl_chart LineChart ``` --- ## 🎯 Tips Penggunaan 1. **Monitoring Real-time:** - Lihat dashboard untuk monitoring cepat - Grafik akan auto-scroll saat data penuh - Tap grafik untuk detail nilai spesifik 2. **Analisis History:** - Buka Chart Screen untuk analisis mendalam - Gunakan filter untuk berbagai rentang waktu - Perhatikan statistik untuk insights 3. **Performance:** - Dashboard limit 20 data untuk performa optimal - Chart Screen bisa load hingga 200 data - Refresh jika data tidak update --- ## 🚀 Future Improvements Beberapa ide untuk pengembangan: 1. **Export Data:** - Export grafik sebagai image - Export data ke CSV/Excel 2. **Advanced Analytics:** - Trend analysis - Prediksi waktu selesai - Efisiensi pengeringan 3. **Comparison:** - Bandingkan multiple sessions - Overlay grafik 4. **Zoom & Pan:** - Zoom in/out grafik - Pan untuk navigasi --- ## ✅ Testing Checklist - [x] Grafik suhu tampil real-time - [x] Grafik berat tampil real-time - [x] Target line muncul di grafik berat - [x] Tooltip berfungsi saat tap - [x] Chart screen dapat load history - [x] Filter data berfungsi - [x] Statistik dihitung dengan benar - [x] Refresh data berfungsi - [x] Layout responsive - [x] No memory leaks --- ## 📞 Support Jika ada pertanyaan atau bug: 1. Check console log untuk error messages 2. Pastikan backend API running 3. Pastikan MQTT connection aktif 4. Verify data di database --- **Selamat menggunakan fitur Grafik Chart! 🎉**