2. AuthService memverifikasi kecocokan password terenkripsi di database. Â
 3. Jika valid, token JWT di-generate dan dikembalikan ke klien. Â
 - Representasi dengan sequence diagram: Â
  User -> UserController: Login(email, password) Â
  UserController -> AuthService: authenticateUser(email, password) Â
  AuthService -> DatabaseAdapter: getUserByEmail(email) Â
  DatabaseAdapter --> AuthService: User data Â
  AuthService --> UserController: JWT Token Â
Design Patterns yang Digunakan Â
- Factory Pattern: Untuk instansiasi objek DatabaseAdapter (mendukung potensi migrasi ke database lain). Â
- Singleton: Pada AuthService untuk memastikan satu instance mengelola logika autentikasi. Â
Design RationaleÂ
- Pemilihan JWT sebagai token: Â