```plantuml @startuml actor "pemilik kendaraan" as actor1 boundary "website samsat" as web_samsat control "module registrasi" as module_registrasi control "module login" as module_login control "module check user" as module_check_user entity "user " as user database "db_samsat" as db actor1 -> web_samsat : visit website actor1 -> web_samsat : /login web_samsat -> module_login : controller login module_login -> module_check_user : check user and password exist module_check_user -> user : model user user -> db : <<get user by username & password>> db -> user : return data and save to model user user -> module_check_user module_check_user -> module_check_user note left: check model user alt model user is null/empty module_check_user -> web_samsat : return response failed group create new user actor1 -> web_samsat : /registrasi web_samsat -> module_registrasi : controller register module_registrasi -> module_check_user : check user and password exist module_check_user -> user : model user user -> db : <<get user by username & password>> db -> user : return data and save to model user user -> module_check_user module_check_user -> module_check_user note left check model user user null or not null end note module_check_user -> module_registrasi : send model user group user not null module_check_user -> module_registrasi: return error; user already exist module_registrasi -> web_samsat : return response username already exist end module_registrasi -> db : <<insert new user>> end end module_check_user -> web_samsat : return response success login @enduml ```