3.6 KiB
3.6 KiB
🔧 Panduan Troubleshooting Pendaftaran
📋 Ringkasan Perbaikan
Saya telah memperbaiki masalah pendaftaran dengan beberapa peningkatan:
1. Perbaikan DatabaseHelper.kt
- ✅ Ditambahkan
try-catchexception handling di semua method database - ✅ Ditambahkan logging untuk debugging error
- ✅ Perbaikan cursor management (memastikan cursor selalu ditutup)
- ✅ Method sekarang mengembalikan nilai yang konsisten
2. Perbaikan RegisterScreen di MainActivity.kt
- ✅ Ditambahkan validasi input yang lebih ketat:
- Nama lengkap tidak boleh kosong
- NPM harus 8+ karakter dan hanya angka
- Password minimal 6 karakter
- ✅ Validasi NPM sebelum proses registrasi
- ✅ Error messages yang lebih informatif
🐛 Kemungkinan Penyebab Pendaftaran Gagal
1. NPM Sudah Terdaftar
Toast: "NPM sudah terdaftar! Gunakan NPM lain atau login"
Solusi: Gunakan NPM yang berbeda atau coba login dengan NPM tersebut
2. Database Error
Jika Anda melihat error di Logcat:
E/DatabaseHelper: Error adding user: ...
Solusi:
- Cek format NPM (hanya angka, minimal 8 karakter)
- Clear app data: Settings → Apps → Sistem Akademik → Storage → Clear All Data
- Reinstall aplikasi
3. Validasi Input Gagal
Kemungkinan field belum terisi atau tidak sesuai kriteria:
✗ Nama lengkap kosong
✗ NPM kurang dari 8 karakter
✗ NPM berisi karakter non-angka
✗ Password kurang dari 6 karakter
📊 Contoh Data Testing
✅ Data Valid untuk Registrasi:
Nama Lengkap: Febby Dwiss
NPM: 20231071513 (11 digit angka)
Password: password123
❌ Data Invalid:
NPM: 2023-107 (mengandung "-")
NPM: 2023107 (kurang dari 8 karakter)
Password: 12345 (kurang dari 6 karakter)
🔍 Cara Debugging di Android Studio
1. Buka Logcat
- View → Tool Windows → Logcat
- Filter:
DatabaseHelper - Lakukan pendaftaran dan lihat error message
2. Filter Tag Spesifik
E/DatabaseHelper - untuk error database
E/RegisterScreen - untuk error registration
3. Common Error Messages
| Error | Penyebab | Solusi |
|---|---|---|
UNIQUE constraint failed |
NPM sudah ada | Gunakan NPM lain |
null pointer exception |
Field kosong | Isi semua field |
database is locked |
Concurrent access | Restart app |
💾 Cara Menghapus Database untuk Testing
// Jalankan ini di MainActivity.onCreate() hanya untuk testing:
val context = this
context.deleteDatabase("Akademik.db")
⚠️ Jangan lakukan di production!
📱 Checklist Registrasi
Sebelum registrasi, pastikan:
- Nama Lengkap: Isi dengan nama
- NPM: Minimal 8 angka, hanya karakter 0-9
- Password: Minimal 6 karakter
- Internet Connection: Tidak diperlukan untuk registrasi lokal
- Database accessible: App tidak crash
🚀 Cara Testing Manual
-
Registrasi Pertama
Nama: Test User 1 NPM: 12345678 Password: test123→ Klik Daftar → Akan berhasil
-
Registrasi Duplikasi
Nama: Test User 2 NPM: 12345678 (sama dengan sebelumnya) Password: test456→ Klik Daftar → Akan muncul pesan "NPM sudah terdaftar"
-
Login dengan Data Terdaftar
NPM: 12345678 Password: test123→ Klik Login → Akan berhasil
🔐 Security Notes
- Password disimpan sebagai plain text (untuk learning purpose)
- Di production, gunakan hashing (bcrypt/SHA-256)
- NPM di-enforce UNIQUE di database schema
📞 Support
Jika masih error:
- Lihat Logcat untuk error message spesifik
- Share error message di chat
- Coba clear app data dan reinstall