118 lines
3.0 KiB
Markdown
118 lines
3.0 KiB
Markdown
# Pengujian Efektivitas Sistem Rekomendasi OCR + Gemini AI
|
||
|
||
## Struktur File
|
||
|
||
```
|
||
tools/pengujian_ai/
|
||
├── skenario_pengujian.csv # 30 skenario input pengujian Gemini AI
|
||
├── hasil_pengujian_template.csv # Template isi hasil aktual dari aplikasi
|
||
├── evaluasi_gemini.py # Script confusion matrix + classification report
|
||
├── evaluasi_ocr.py # Script uji WER/CER akurasi OCR
|
||
└── README.md # Panduan ini
|
||
```
|
||
|
||
---
|
||
|
||
## Langkah 1 — Install Dependencies
|
||
|
||
```bash
|
||
pip install scikit-learn pandas matplotlib jiwer openpyxl
|
||
```
|
||
|
||
---
|
||
|
||
## Langkah 2 — Uji Gemini AI (Confusion Matrix)
|
||
|
||
### A. Lakukan pengujian manual di aplikasi
|
||
|
||
Buka `skenario_pengujian.csv`. Setiap baris adalah 1 skenario uji.
|
||
Untuk setiap skenario, jalankan aplikasi dengan input yang sesuai, lalu catat:
|
||
|
||
| Yang Dicatat | Kolom di Script |
|
||
|---|---|
|
||
| Apakah kategori rekomendasi sesuai? (1/0) | `kategori_actual` |
|
||
| Apakah harga tidak melebihi budget? (1/0) | `budget_actual` |
|
||
| Apakah tidak ada alergen? (1/0) | `alergen_actual` |
|
||
| Apakah semua kriteria terpenuhi? (1/0) | `overall_actual` |
|
||
|
||
### B. Edit `evaluasi_gemini.py`
|
||
|
||
Ganti bagian `# ISI DARI HASIL PENGUJIAN APLIKASI` dengan angka 1/0 sesuai hasil Anda.
|
||
|
||
### C. Jalankan
|
||
|
||
```bash
|
||
cd tools/pengujian_ai
|
||
python evaluasi_gemini.py
|
||
```
|
||
|
||
**Output yang dihasilkan:**
|
||
- Tabel Confusion Matrix (TP, FP, FN, TN) per kriteria
|
||
- Accuracy, Precision, Recall, F1-Score
|
||
- Gambar `confusion_matrix_gemini.png` (siap masuk laporan)
|
||
- Classification Report lengkap
|
||
|
||
---
|
||
|
||
## Langkah 3 — Uji Akurasi OCR (WER/CER)
|
||
|
||
### A. Siapkan data
|
||
|
||
Ambil 20–30 foto menu Amor Coffee.
|
||
Untuk setiap foto, ketik manual teks yang tertera (ground truth), lalu catat teks hasil OCR dari aplikasi.
|
||
|
||
### B. Edit `evaluasi_ocr.py`
|
||
|
||
Isi list `data_ocr` dengan tuple `(foto_id, ground_truth, hasil_ocr)`.
|
||
|
||
### C. Jalankan
|
||
|
||
```bash
|
||
python evaluasi_ocr.py
|
||
```
|
||
|
||
**Output yang dihasilkan:**
|
||
- WER & CER per foto
|
||
- Rata-rata akurasi OCR keseluruhan
|
||
- File `hasil_uji_ocr.xlsx`
|
||
|
||
---
|
||
|
||
## Cara Baca Hasil
|
||
|
||
### Confusion Matrix
|
||
|
||
| | Prediksi Valid | Prediksi Tidak Valid |
|
||
|---|---|---|
|
||
| **Aktual Valid** | TP ✅ | FN ❌ |
|
||
| **Aktual Tidak Valid** | FP ❌ | TN ✅ |
|
||
|
||
### Rumus Metrik
|
||
|
||
| Metrik | Rumus | Artinya |
|
||
|---|---|---|
|
||
| Accuracy | (TP+TN)/(TP+FP+FN+TN) | % prediksi benar secara keseluruhan |
|
||
| Precision | TP/(TP+FP) | Dari yang dinyatakan valid, berapa % benar? |
|
||
| Recall | TP/(TP+FN) | Dari yang seharusnya valid, berapa % terdeteksi? |
|
||
| F1-Score | 2×P×R/(P+R) | Rata-rata harmonis Precision & Recall |
|
||
|
||
### Interpretasi WER/CER (OCR)
|
||
|
||
| Nilai | Interpretasi |
|
||
|---|---|
|
||
| WER < 5% | ✅ Sangat Baik |
|
||
| WER 5–15% | ✅ Baik |
|
||
| WER 15–30% | ⚠️ Cukup |
|
||
| WER > 30% | ❌ Perlu perbaikan |
|
||
|
||
---
|
||
|
||
## Sitasi untuk Skripsi
|
||
|
||
```
|
||
Agnes Permata Sari, Fathiya Salamah, Zaka Gustian, M Chairul Fajrin. (2024).
|
||
Pemanfaatan Teknologi AI Seperti ChatGPT, Gemini, dan Perplexity dalam
|
||
Pengerjaan Tugas Mahasiswa. Scientica: Jurnal Ilmiah Sains dan Teknologi,
|
||
Vol. 3 No. 2, hal. 481–487.
|
||
```
|