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

3.6 KiB

🔧 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

// 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