diff --git a/IdentityService/src/java/validate/Register.java b/IdentityService/src/java/validate/Register.java
new file mode 100644
index 0000000000000000000000000000000000000000..638cc8cfc76f92be1404571d2f1a66c4ba5c1939
--- /dev/null
+++ b/IdentityService/src/java/validate/Register.java
@@ -0,0 +1,192 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package validate;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import static java.lang.System.out;
+import java.math.BigInteger;
+import java.security.SecureRandom;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.json.simple.JSONObject;
+
+/**
+ *
+ */
+@WebServlet(name = "Register", urlPatterns = {"/Register"})
+public class Register extends HttpServlet {
+
+    /**
+     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
+     * methods.
+     *
+     * @param request servlet request
+     * @param response servlet response
+     * @throws ServletException if a servlet-specific error occurs
+     * @throws IOException if an I/O error occurs
+     * @throws java.sql.SQLException
+     */
+    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException {
+        response.setContentType("text/html;charset=UTF-8");
+        try (PrintWriter out = response.getWriter()) {
+            String name     = request.getParameter("name");
+            String username = request.getParameter("username");
+            String email    = request.getParameter("email");
+            String password = request.getParameter("password");
+            String phone    = request.getParameter("phone");
+            response.getWriter().write(request.getParameter("name"));
+           
+            try {
+                Class.forName("com.mysql.jdbc.Driver");
+            } catch (ClassNotFoundException ex) {
+                Logger.getLogger(SignIn.class.getName()).log(Level.SEVERE, null, ex);
+            }
+            try
+            (   Connection conn = DriverManager.getConnection(
+                    "jdbc:mysql://localhost:3306/account?zeroDateTimeBehavior=convertToNull",
+                    "root",
+                    ""); 
+                Statement stmt = conn.createStatement()) {
+                String sql;
+                sql = "SELECT * FROM account WHERE username = ? OR email = ?";
+                PreparedStatement dbStatement = conn.prepareStatement(sql);
+                dbStatement.setString(1, username);
+                dbStatement.setString(2, email);
+                JSONObject json = new JSONObject();
+                try ( /* Get every data returned by SQL query */ ResultSet rs = dbStatement.executeQuery()) {
+                    if (rs.next()) {
+                        json.put("res_code", -1);
+                    } else {
+                        
+                        String sqlInsert = "INSERT INTO account(username,email,fullname,password,phone_no,profile_pict) VALUES(?,?,?,?,?,NULL)";
+                        PreparedStatement dbStatementInputToken = conn.prepareStatement(sqlInsert);
+                        dbStatementInputToken.setString(1, username);
+                        dbStatementInputToken.setString(2, email);
+                        dbStatementInputToken.setString(3, name);
+                        dbStatementInputToken.setString(4, password);
+                        dbStatementInputToken.setString(5, phone);
+                        
+                        int rsInputToken = dbStatementInputToken.executeUpdate();
+                        
+                        SecureRandom random = new SecureRandom();
+                        String token = new BigInteger(130, random).toString(32);
+                        
+                        String sqlCek;
+                        boolean ulang = true;
+                        PreparedStatement dbStatementCek;
+                        
+                        while (ulang) {
+                            token = new BigInteger(130, random).toString(32);
+                            sqlCek = "SELECT * FROM token WHERE token = ?";
+                            dbStatementCek = conn.prepareStatement(sqlCek);
+                            dbStatementCek.setString(1, token);
+                            ResultSet rsCek = dbStatementCek.executeQuery();
+                            if (rsCek.next()) {
+                                ulang = true;
+                            } else {
+                                ulang = false;
+                            }
+                        }
+                        
+                        String sql2;
+                        sql2 = "SELECT * FROM account WHERE username = ?";
+                        
+                        PreparedStatement stateC;
+                        stateC = conn.prepareStatement(sql2);
+                        stateC.setString(1, username);
+                        ResultSet rs2 = stateC.executeQuery();
+                        
+                        Date dNow = new Date();
+                        SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd");
+                        SimpleDateFormat timeFormat = new SimpleDateFormat ("HH:mm:ss");
+                        String time_expired = timeFormat.format(dNow);
+                        String date_expired = dateFormat.format(dNow);
+                        String sqlInputToken;
+                        sqlInputToken = "INSERT INTO token(id_account,token,date_expired,time_expired) VALUES(?,?,?,?)";
+                        PreparedStatement dbStatementInputToken1 = conn.prepareStatement(sqlInputToken);
+                        dbStatementInputToken1.setInt(1, rs2.getInt("id"));
+                        dbStatementInputToken1.setString(2, token);
+                        dbStatementInputToken1.setString(3, date_expired);
+                        dbStatementInputToken1.setString(4, time_expired);
+                        int rsInputToken1 = dbStatementInputToken1.executeUpdate();
+                        
+                        json.put("res_code", 1);
+                        json.put("id",rs2.getInt("id"));
+                        json.put("fullname", name);
+                        json.put("username", username);
+                        json.put("email", email);
+                        json.put("phone_no", phone);
+                        json.put("token", token);
+                        
+                    }
+                    
+                    response.setContentType("application/json");
+                    response.getWriter().write(json.toString());
+                }
+                stmt.close();
+                conn.close();
+            }
+        } catch (SQLException | IOException ex) {
+            
+        }   
+    }
+
+    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
+    /**
+     * Handles the HTTP <code>GET</code> method.
+     *
+     * @param request servlet request
+     * @param response servlet response
+     * @throws ServletException if a servlet-specific error occurs
+     * @throws IOException if an I/O error occurs
+     */
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException, IOException {
+        processRequest(request, response);
+    }
+
+    /**
+     * Handles the HTTP <code>POST</code> method.
+     *
+     * @param request servlet request
+     * @param response servlet response
+     * @throws ServletException if a servlet-specific error occurs
+     * @throws IOException if an I/O error occurs
+     */
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException, IOException {
+        processRequest(request, response);
+    }
+
+    /**
+     * Returns a short description of the servlet.
+     *
+     * @return a String containing servlet description
+     */
+    @Override
+    public String getServletInfo() {
+        return "Short description";
+    }// </editor-fold>
+    
+
+}
diff --git a/WebApp/web/profile.jsp b/WebApp/web/profile.jsp
index 17661cce8bf81279aa89c018c0cd63dfd6bb2965..593cd215a1eee1332fa91822b2d272feadcc2973 100644
--- a/WebApp/web/profile.jsp
+++ b/WebApp/web/profile.jsp
@@ -35,7 +35,7 @@
  	<div class="container">
     <!-- navbar -->
     <div class="navbar">
-      <img src="assets/image/yesbos.png" class="logo">
+      <img src="../../data/img/yesbos.png" class="logo">
       <div class="logout">
         <p style="margin-bottom: 2px;">Hi, <strong><!--?php echo $username ?--></strong> !</p>
         <a href="index.jsp">Logout</a>
diff --git a/WebApp/web/register.jsp b/WebApp/web/register.jsp
index 9021a63a0793242b88d8546eeeefc6119673d53b..e71dd927665fa862302047393d028e3388b0a199 100644
--- a/WebApp/web/register.jsp
+++ b/WebApp/web/register.jsp
@@ -5,73 +5,174 @@
 --%>
 
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
+<%@page import="org.json.JSONException"%>
+<%@page import="org.json.JSONObject"%>
+<%@page import="org.json.JSONArray"%>
+<%@page import="java.io.InputStreamReader"%>
+<%@page import="java.io.BufferedReader"%>
+<%@page import="java.io.DataOutputStream"%>
+<%@page import="javax.xml.ws.ProtocolException"%>
+<%@page import="java.io.IOException"%>
+<%@page import="java.net.HttpURLConnection"%>
+<%@page import="java.net.MalformedURLException"%>
+<%@page import="java.net.URL"%>
+
+    <% 
+	
+        String name     = request.getParameter("name");
+        String username = request.getParameter("username");
+        String email    = request.getParameter("email");
+        String password = request.getParameter("password");
+        String phone    = request.getParameter("phone");
+        
+        //String username = "bebas";
+        //String password = "bebas";
+        
+        String USER_AGENT = "Mozilla/5.0";
+        
+        String url = "http://localhost:8001/IdentityService/Register";
+        URL obj = null;
+        try {
+            obj = new URL(url);
+        } catch (MalformedURLException ex) {
+        }
+        HttpURLConnection con = null;
+        try {
+            con = (HttpURLConnection) obj.openConnection();
+        } catch (IOException ex) {
+            
+        }
+
+        try {
+            //add reuqest header
+            con.setRequestMethod("POST");
+        } catch (ProtocolException ex) {
+            
+        }
+        con.setRequestProperty("User-Agent", USER_AGENT);
+        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
+
+        String urlParameters = "name="+name+"&username="+username+"&email="+email+"&password="+password+"&phone="
+                                +phone;
+
+        // Send post request
+        con.setDoOutput(true);
+        DataOutputStream wr = null;
+        
+        try {
+            wr = new DataOutputStream(con.getOutputStream());
+            wr.writeBytes(urlParameters);
+            wr.flush();
+            wr.close();
+        } catch (IOException ex) {
+        }
+        
+        StringBuffer responsebuff = new StringBuffer();
+        try {
+            int responseCode = con.getResponseCode();
+            BufferedReader in = new BufferedReader(
+                new InputStreamReader(con.getInputStream()));
+            String inputLine;
+
+            while ((inputLine = in.readLine()) != null) {
+                    responsebuff.append(inputLine);
+            }
+            in.close();
+        } catch (IOException ex) {
+        }
+        
+        JSONObject JSobjek = null;
+            try {
+                new JSONObject(responsebuff.toString());
+                } catch (JSONException ex) {
+                    
+                try {
+                    new JSONArray(responsebuff.toString());
+                } catch (JSONException ex1) {
+                    
+                }
+            }
+        if (JSobjek!=null) {
+            //str = (String)JSobjek.get("id");
+            int respC = (int)JSobjek.getInt("res_code");
+            //if (!str.equals("null")) {
+            //respId = Integer.parseInt(str);
+            //}
+            if (respC != -1) {
+                Cookie cookie = new Cookie("token",(String)JSobjek.getString("token"));
+                response.addCookie(cookie);
+                response.sendRedirect("http://localhost:8000/WebApp/profile.jsp");
+            } else {
+                response.sendRedirect("http://localhost:8000/WebApp/register.jsp");
+            }
+        }
+    %>
 <!DOCTYPE html>
 <html>
-  <head>
+    <head>
 
-   <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="Ngo-Jek - Ojek Online Clone Website">
-    <meta name="author" content="Taufan Mahaputra, Robby Syaifullah, M Rafli">
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+        <meta name="description" content="Ngo-Jek - Ojek Online Clone Website">
+        <meta name="author" content="Taufan Mahaputra, Robby Syaifullah, M Rafli">
 
-    <!-- Properties Title -->
-    <link rel="shortcut icon" href="" />
-    <title>Ngo-Jek</title>
+        <!-- Properties Title -->
+        <link rel="shortcut icon" href="" />
+        <title>Ngo-Jek</title>
 
-   
-    <!-- Custom CSS -->
-    <link href="style/main.css" rel="stylesheet" type='text/css'/>
-    <link href="style/register.css" rel="stylesheet" type='text/css'/>
-    <!-- Custom Fonts -->
-    <link href="assets/fonts/font-awesome.min.css" rel="stylesheet">
-    <link href="https://fonts.googleapis.com/css?family=Oswald:400,500,600" rel="stylesheet">
-    <link href="https://fonts.googleapis.com/css?family=Roboto:400,500" rel="stylesheet">
-    
-  </head>
-  <body>
- 	<div class="login" id="form-login">
- 		<h2 class="title">---SIGN UP---</h2>
-                <form id="register-form" <!--action="../src/register.jsp"--> method="post" onsubmit="return validateForm()">
-   		<div class="input-form">
-        <div class="label">
-          <p>Your Name</p>
-          <input type="text" name="name" placeholder="someone">
-        </div>
-   			<div class="label">
-   				<p>Username</p>
-  	 			<input type="text" name="username" placeholder="username" id="username" onkeyup="validateUsername(this.value)">
-          <img src="" class="icon-check" id="username-icon">
-  	 		</div>
-  	 		<div class="label">
-  	 			<p>Email</p>
-  	 			<input type="text" name="email" placeholder="someone@dummy.com" id="email" onkeyup="validateEmail(this.value)">
-          <img src="" class="icon-check"  id="email-icon">
-  	 		</div>
-        <div class="label">
-          <p>Password</p>
-          <input type="password" name="password">
-        </div>
-        <div class="label">
-          <p>Confirm Password</p>
-          <input type="password" name="password-re">
-        </div>
-        <div class="label">
-          <p>Phone Number</p>
-          <input type="text" name="phone" onkeypress='return onlyNumber(event)'>
+
+        <!-- Custom CSS -->
+        <link href="style/main.css" rel="stylesheet" type='text/css'/>
+        <link href="style/register.css" rel="stylesheet" type='text/css'/>
+        <!-- Custom Fonts -->
+        <link href="https://fonts.googleapis.com/css?family=Oswald:400,500,600" rel="stylesheet">
+        <link href="https://fonts.googleapis.com/css?family=Roboto:400,500" rel="stylesheet">
+
+    </head>
+    <body>
+        <div class="login" id="form-login">
+            <h2 class="title">---SIGN UP---</h2>
+            <form id="register-form" action="register.jsp" method="post">
+                  <div class="input-form">
+                    <div class="label">
+                        <p>Your Name</p>
+                        <input type="text" name="name" placeholder="someone">
+                    </div>
+                    <div class="label">
+                        <p>Username</p>
+                        <input type="text" name="username" placeholder="username" id="username">
+                        <img src="" class="icon-check" id="username-icon">
+                    </div>
+                    <div class="label">
+                        <p>Email</p>
+                        <input type="text" name="email" placeholder="someone@dummy.com" id="email">
+                        <img src="" class="icon-check"  id="email-icon">
+                    </div>
+                    <div class="label">
+                        <p>Password</p>
+                        <input type="password" name="password">
+                    </div>
+                    <div class="label">
+                        <p>Confirm Password</p>
+                        <input type="password" name="password-re">
+                    </div>
+                    <div class="label">
+                        <p>Phone Number</p>
+                        <input type="text" name="phone">
+                    </div>
+                </div>
+                <div class="checkbox">
+                    <input type="checkbox" name="driver" value="yes">Also sign me up as a driver!
+                </div>
+                <div class="submit-form"> 
+                    <p class="no-acc"><a href="index.jsp"> Already have a account?</a></p>
+                    <input type="submit" value="REGISTER">
+                </div>
+            </form>
         </div>
-  	 	</div>
-      <div class="checkbox">
-          <input type="checkbox" name="driver" value="yes">Also sign me up as a driver!
-      </div>
-   		<div class="submit-form"> 
-   			<p class="no-acc"><a href="index.jsp"> Already have a account?</a></p>
-   			<input type="submit" value="REGISTER">
-   		</div>
-  </form>
- 	</div>
-  </body>
-  <!-- Script -->
-  <!--script src="assets/javascript/validateregister.js"></script>
-  <script src="assets/javascript/register.js"></script-->
+    </body>
+    <!-- Script -->
+    <!--script src="assets/javascript/validateregister.js"></script>
+    <script src="assets/javascript/register.js"></script-->
 </html>