diff --git a/IdentityService/src/main/java/org/informatika/ojek/DAO.java b/IdentityService/src/main/java/org/informatika/ojek/DAO.java
index 167c3293ead040536a477f35ea68ef44e642d555..f66866e56af1ef0c35d1b7bfe256d0fde097da44 100644
--- a/IdentityService/src/main/java/org/informatika/ojek/DAO.java
+++ b/IdentityService/src/main/java/org/informatika/ojek/DAO.java
@@ -264,35 +264,38 @@ public class DAO {
         return -1;
     }
 
-    public Account userInfo(int userId) throws SQLException {
+    public Account userInfo(int userId){
         String sql = "SELECT * FROM account WHERE id = ?";
 
-        connect();
-        PreparedStatement statement = jdbcConnection.prepareStatement(sql);
-        statement.setInt(1, userId);
-        ResultSet resultSet = statement.executeQuery();
+        try {
+            connect();
+            PreparedStatement statement = jdbcConnection.prepareStatement(sql);
+            statement.setInt(1, userId);
+            ResultSet resultSet = statement.executeQuery();
 
-        if (resultSet.next()) {
-            int id = resultSet.getInt("id");
-            String name = resultSet.getString("name");
-            String username = resultSet.getString("username");
-            String email = resultSet.getString("email");
-            String phone = resultSet.getString("phone");
-            String photo = resultSet.getString("photo");
-            Boolean isDriver = resultSet.getBoolean("is_driver");
+            if (resultSet.next()) {
+                int id = resultSet.getInt("id");
+                String name = resultSet.getString("name");
+                String username = resultSet.getString("username");
+                String email = resultSet.getString("email");
+                String phone = resultSet.getString("phone");
+                String photo = resultSet.getString("photo");
+                Boolean isDriver = resultSet.getBoolean("is_driver");
+
+                statement.close();
+                resultSet.close();
+                disconnect();
+
+                return new Account(id, name, username, email, phone, photo, isDriver);
+            }
 
             statement.close();
             resultSet.close();
             disconnect();
-
-            Account account = new Account(id, name, username, email, phone, photo, isDriver);
-            return account;
+        } catch (SQLException e) {
+            e.printStackTrace();
         }
 
-        statement.close();
-        resultSet.close();
-        disconnect();
-
         return null;
     }
 
diff --git a/IdentityService/src/main/java/org/informatika/ojek/Main.java b/IdentityService/src/main/java/org/informatika/ojek/Main.java
index 6989d3c9f6605168aef200e756fba81f4a312494..aaa61f727666bf4f8220c240d36361878514cd29 100644
--- a/IdentityService/src/main/java/org/informatika/ojek/Main.java
+++ b/IdentityService/src/main/java/org/informatika/ojek/Main.java
@@ -57,10 +57,9 @@ public class Main extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
-
         PrintWriter out = response.getWriter();
         Response data;
-        String dataResponse;
+        response.setStatus(500);
 
         String token = request.getParameter("token");
 
@@ -68,29 +67,24 @@ public class Main extends HttpServlet {
         if (token == null) {
             response.setStatus(500);
             data = new Response(Response.STATUS_ERROR, null,  null, "Wrong parameter!");
-
-            dataResponse = gson.toJson(data);
-            out.print(dataResponse);
+            out.print(gson.toJson(data));
             return;
         }
 
-        try {
-            int userId = DAO.validateToken(token);
-            Account account = DAO.userInfo(userId);
-
-            data = new Response(Response.STATUS_ERROR, null,  account, null);
-
-            dataResponse = gson.toJson(data);
-            out.print(dataResponse);
-        } catch (SQLException e) {
-            e.printStackTrace();
-            response.setStatus(500);
-            data = new Response(Response.STATUS_ERROR, null,  null, e.getMessage());
-
-            dataResponse = gson.toJson(data);
-            out.print(dataResponse);
+        // Check if token valid
+        int userId = DAO.validateToken(token);
+        if (userId == -1) {
+            data = new Response(Response.STATUS_ERROR, null, null, "Token is expired!");
+            out.print(gson.toJson(data));
+            return;
         }
 
+        // Get user info
+        Account account = DAO.userInfo(userId);
+
+        response.setStatus(200);
+        data = new Response(Response.STATUS_SUCCESS, null,  account, null);
+        out.print(gson.toJson(data));
     }