202310715130-Dwifebbryanti-EAS/REGISTRATION_TROUBLESHOOTING.md
2026-01-14 21:33:58 +07:00

142 lines
3.6 KiB
Markdown

# 🔧 Panduan Troubleshooting Pendaftaran
## 📋 Ringkasan Perbaikan
Saya telah memperbaiki masalah pendaftaran dengan beberapa peningkatan:
### 1. **Perbaikan DatabaseHelper.kt**
- ✅ Ditambahkan `try-catch` exception 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
```kotlin
// 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
1. **Registrasi Pertama**
```
Nama: Test User 1
NPM: 12345678
Password: test123
```
→ Klik Daftar → Akan berhasil
2. **Registrasi Duplikasi**
```
Nama: Test User 2
NPM: 12345678 (sama dengan sebelumnya)
Password: test456
```
→ Klik Daftar → Akan muncul pesan "NPM sudah terdaftar"
3. **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:
1. Lihat Logcat untuk error message spesifik
2. Share error message di chat
3. Coba clear app data dan reinstall