4.4 KiB
4.4 KiB
Database Setup untuk Deteksi PMK
Persyaratan
- MySQL Server berjalan (versi 5.7 atau lebih tinggi)
- Python 3.12.5 dengan semua dependencies terinstall
Langkah Setup
1. Install MySQL Server (Jika belum)
Windows:
- Download dari https://dev.mysql.com/downloads/mysql/
- Ikuti installer wizard
- Default Port: 3306
- Default User: root
Linux (Ubuntu/Debian):
sudo apt-get install mysql-server
macOS:
brew install mysql
brew services start mysql
2. Configure Environment Variables
Copy .env.example ke .env dan update konfigurasi:
cp .env.example .env
Edit .env dengan kredensial MySQL Anda:
# MySQL Database Configuration
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password_here
DB_NAME=deteksi_pmk
# Flask Configuration
FLASK_SECRET=your-secret-key-here
Penting:
DB_HOST: Alamat server MySQL (default: localhost)DB_USER: Username MySQL (default: root)DB_PASSWORD: Password MySQL (kosongkan jika tidak ada password)DB_NAME: Nama database yang akan dibuat
3. Setup Database
Jalankan script setup:
python setup_db.py
Script ini akan:
- Membuat database
deteksi_pmk - Membuat tabel-tabel yang diperlukan:
predictions- Menyimpan hasil prediksidiagnosis_history- Menyimpan hasil diagnosis
4. Verify Database Connection
Anda bisa test koneksi dengan menjalankan:
python -c "from utils.mysql_db import get_engine; engine = get_engine(); print('✓ Database connected successfully!')"
5. Jalankan Aplikasi
python app.py
Aplikasi akan berjalan di: http://localhost:5000
Database Schema
Tabel: predictions
| Column | Type | Description |
|---|---|---|
| id | INT PRIMARY KEY AUTO_INCREMENT | ID unik prediksi |
| original_filename | VARCHAR(255) | Nama file asli yang diupload |
| filename | VARCHAR(255) | Nama file yang disimpan |
| image_path | VARCHAR(500) | Path lengkap file |
| prediction | VARCHAR(50) | Hasil prediksi ('sehat' atau 'sakit') |
| confidence | FLOAT | Tingkat kepercayaan (0-100) |
| features | TEXT | JSON string dari fitur-fitur |
| timestamp | DATETIME | Waktu prediksi |
Tabel: diagnosis_history
| Column | Type | Description |
|---|---|---|
| id | INT PRIMARY KEY AUTO_INCREMENT | ID unik diagnosis |
| original_filename | VARCHAR(255) | Nama file asli yang diupload |
| filename | VARCHAR(255) | Nama file yang disimpan |
| image_path | VARCHAR(500) | Path lengkap file |
| diagnosis | TEXT | JSON string dari diagnosis details |
| severity | VARCHAR(50) | Tingkat keparahan ('ringan', 'sedang', 'berat') |
| confidence | FLOAT | Tingkat kepercayaan (0-100) |
| timestamp | DATETIME | Waktu diagnosis |
Troubleshooting
"MySQL not available at startup"
- Pastikan MySQL Server berjalan
- Periksa konfigurasi di file
.env - Pastikan password MySQL benar
"Cannot import 'setuptools.build_meta'"
- Jalankan:
pip install --upgrade setuptools
"NumPy 2.x incompatibility"
- Sudah fixed dengan numpy<2 di requirements.txt
- Jalankan:
pip install "numpy<2"
Database tidak tersimpan di MySQL
- Periksa apakah MYSQL_AVAILABLE = True di terminal saat startup
- Cek file
.envkonfigurasi - Jalankan
python setup_db.pylagi untuk pastikan database terbuat
Features yang Tersedia
1. Prediksi dengan Machine Learning
- Upload gambar (JPG, PNG, BMP)
- Deteksi PMK otomatis
- Confidence score tinggi
2. Riwayat Deteksi
- Lihat semua hasil deteksi yang tersimpan di database
- Filter berdasarkan hasil (Sehat/Sakit)
- Statistik real-time
3. Detail Riwayat
- Klik "Detail" di riwayat untuk melihat:
- Hasil lengkap prediksi
- Confidence score
- Fitur-fitur yang dianalisis
- Informasi file
4. Diagnosis Expertise System
- Berbasis rule-based system
- Memberikan diagnosis detail berdasarkan gejala
- Simpan hasil diagnosis ke database
Data Storage Priority
-
MySQL Database (Utama)
- Real-time
- Queryable
- Backup terstruktur
-
CSV Files (Backup)
- Fallback jika MySQL error
- Di folder
results/
Tips
- Pastikan MySQL Server running sebelum startup aplikasi
- Reguler backup database MySQL Anda
- Gunakan password yang kuat untuk MySQL di production
- Ubah FLASK_SECRET di
.envuntuk production
Support
Jika ada error, cek:
setup_db.pyuntuk initialize database- File
.envkonfigurasi - MySQL Server status
- Requirements sudah terinstall dengan benar