5.9 KiB
5.9 KiB
📊 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:
- Data diterima dari ESP32 via MQTT setiap 1 detik
- Data disimpan ke list
suhuHistorydanberatHistory - List maksimal 20 data (auto scroll/shift)
- Widget
TemperatureChartdanWeightChartrender data - Chart update otomatis setiap ada data baru
Chart Screen History:
- Load data dari API endpoint
/api/data/history - Parse data menjadi
List<SensorData> - Convert ke
List<FlSpot>untuk grafik - Hitung statistik (avg, min, max)
- Render dengan
fl_chartLineChart
📱 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<SensorData>
↓
fl_chart LineChart
🎯 Tips Penggunaan
-
Monitoring Real-time:
- Lihat dashboard untuk monitoring cepat
- Grafik akan auto-scroll saat data penuh
- Tap grafik untuk detail nilai spesifik
-
Analisis History:
- Buka Chart Screen untuk analisis mendalam
- Gunakan filter untuk berbagai rentang waktu
- Perhatikan statistik untuk insights
-
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:
-
Export Data:
- Export grafik sebagai image
- Export data ke CSV/Excel
-
Advanced Analytics:
- Trend analysis
- Prediksi waktu selesai
- Efisiensi pengeringan
-
Comparison:
- Bandingkan multiple sessions
- Overlay grafik
-
Zoom & Pan:
- Zoom in/out grafik
- Pan untuk navigasi
✅ Testing Checklist
- Grafik suhu tampil real-time
- Grafik berat tampil real-time
- Target line muncul di grafik berat
- Tooltip berfungsi saat tap
- Chart screen dapat load history
- Filter data berfungsi
- Statistik dihitung dengan benar
- Refresh data berfungsi
- Layout responsive
- No memory leaks
📞 Support
Jika ada pertanyaan atau bug:
- Check console log untuk error messages
- Pastikan backend API running
- Pastikan MQTT connection aktif
- Verify data di database
Selamat menggunakan fitur Grafik Chart! 🎉