diff --git a/WebService/.idea/inspectionProfiles/Project_Default.xml b/WebService/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f71f4c39f3bf30c6e03cf8f27f7ed52bf4062746
--- /dev/null
+++ b/WebService/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="ValidExternallyBoundObject" enabled="false" level="ERROR" enabled_by_default="false" />
+  </profile>
+</component>
\ No newline at end of file
diff --git a/WebService/src/com/informatika/ojek/webservice/IOrder.java b/WebService/src/com/informatika/ojek/webservice/IOrder.java
index 8cf8a92830f1a8d0e421794f706723e291b7d456..7beab98222ab652d02fb5fa6f312ab5872554314 100644
--- a/WebService/src/com/informatika/ojek/webservice/IOrder.java
+++ b/WebService/src/com/informatika/ojek/webservice/IOrder.java
@@ -10,8 +10,8 @@ import javax.jws.soap.SOAPBinding.Style;
 @SOAPBinding(style = Style.RPC)
 public interface IOrder {
 
-    @WebMethod public Account getPrefferedDriver(String access_token, String preffered_driver, String picking_point, String destination);
-    @WebMethod public Account getNonPrefferedDriver(String access_token, String preffered_driver, String picking_point, String destination);
-    @WebMethod public void PuttransactionDetails(String access_token,  int id_driver, String picking_point, String Destination, int rating, String comment);
+    @WebMethod public Account[] getPrefferedDriver(String access_token, String preffered_driver, String picking_point, String destination);
+    @WebMethod public Account[] getNonPrefferedDriver(String access_token, String preffered_driver, String picking_point, String destination);
+    @WebMethod public boolean PuttransactionDetails(String access_token,  int id_driver, String picking_point, String Destination, int rating, String comment);
 
 }
\ No newline at end of file
diff --git a/WebService/src/com/informatika/ojek/webservice/Order.java b/WebService/src/com/informatika/ojek/webservice/Order.java
index 2c4232cf727eb77f2c7e249b2ad6dd431aa96128..1879564b45a66b3b56827b6e4f40c6cb575f51dc 100644
--- a/WebService/src/com/informatika/ojek/webservice/Order.java
+++ b/WebService/src/com/informatika/ojek/webservice/Order.java
@@ -1,5 +1,5 @@
 package com.informatika.ojek.webservice;
-
+import java.sql.*;
 import javax.jws.WebService;
 
 //Service Implementation
@@ -7,14 +7,175 @@ import javax.jws.WebService;
 public class Order implements IOrder {
 
     @Override
-    public Account getPrefferedDriver(String access_token, String preffered_driver, String picking_point, String destination){
-        return null;
+    public Account[] getPrefferedDriver(String access_token, String preffered_driver, String picking_point, String destination){
+        boolean valid = true;
+        //cek akses token
+
+        int id_active;
+        if(valid){
+            id_active =  1;
+        } else {
+            return null;
+        }
+
+        try
+        {
+            // create our mysql database connection
+            String myDriver = "org.gjt.mm.mysql.Driver";
+            String myUrl = "jdbc:mysql://localhost/";
+            Class.forName(myDriver);
+            Connection conn = DriverManager.getConnection(myUrl, "root", "");
+
+            // our SQL SELECT query.
+            // if you only need a few columns, specify them by name instead of using "*"
+            String query = "SELECT distinct pref_loc.IDDriver, rating,totalvote FROM (pref_loc join rating_driver) where pref_loc.IDDriver != "+id_active+" and isdriver = 1  and (Location = '"+picking_point+"' or Location = '"+destination+"')";
+
+            // create the java statement
+            Statement st = conn.createStatement();
+
+            // execute the query, and get a java resultset
+            ResultSet rs = st.executeQuery(query);
+            ResultSetMetaData rsmd = rs.getMetaData();
+
+            int columnsNumber = rsmd.getColumnCount();
+            int n= 0;
+            // iterate through the java resultset
+            Account[] accounts =  new Account[columnsNumber];
+            while (rs.next())
+            {
+                //dapetin detail akun dari user id
+
+                String name = "aa";
+                if(name == preffered_driver){
+                    Account baru = new Account(1, "aaa", "aaa", "aaa@", "sss", "0808" , "ssss",false);
+                    accounts[n] = baru;
+                    n++;
+                }
+                // print the results
+            }
+            st.close();
+            return  accounts;
+        }
+        catch (Exception e)
+        {
+            System.err.println("Got an exception! ");
+            System.err.println(e.getMessage());
+            return null;
+
+        }
+
     }
     @Override
-    public Account getNonPrefferedDriver(String access_token, String preffered_driver, String picking_point, String destination){
-        return null;
+    public Account[] getNonPrefferedDriver(String access_token, String preffered_driver, String picking_point, String destination){
+        boolean valid = true;
+        int id_active;
+        //cek akses token
+        if(valid){
+            id_active =  1;
+        } else {
+            return null;
+        }
+
+        try
+        {
+            // create our mysql database connection
+            String myDriver = "org.gjt.mm.mysql.Driver";
+            String myUrl = "jdbc:mysql://localhost/";
+            Class.forName(myDriver);
+            Connection conn = DriverManager.getConnection(myUrl, "root", "");
+
+            // our SQL SELECT query.
+            // if you only need a few columns, specify them by name instead of using "*"
+            String query = "SELECT distinct pref_loc.IDDriver, rating,totalvote FROM (pref_loc join rating_driver) where pref_loc.IDDriver != "+id_active+" and isdriver = 1  and (Location = '"+picking_point+"' or Location = '"+destination+"')";
+
+            // create the java statement
+            Statement st = conn.createStatement();
+
+            // execute the query, and get a java resultset
+            ResultSet rs = st.executeQuery(query);
+            ResultSetMetaData rsmd = rs.getMetaData();
+
+            int columnsNumber = rsmd.getColumnCount();
+            int n= 0;
+            // iterate through the java resultset
+            Account[] accounts =  new Account[columnsNumber];
+            while (rs.next())
+            {
+                //dapetin detail akun dari user id
+
+                String name = "aa";
+                if(name != preffered_driver){
+                    Account baru = new Account(1, "aaa", "aaa", "aaa@", "sss", "0808" , "ssss",false);
+                    accounts[n] = baru;
+                    n++;
+                }
+                // print the results
+            }
+            st.close();
+            return  accounts;
+        }
+        catch (Exception e)
+        {
+            System.err.println("Got an exception! ");
+            System.err.println(e.getMessage());
+            return null;
+
+        }
+
+
     }
-    @Override public void PuttransactionDetails(String access_token,  int id_driver, String picking_point, String Destination, int rating, String comment){
+    @Override public boolean PuttransactionDetails(String access_token,  int id_driver, String picking_point, String destination, int rating, String comment){
+        boolean valid = true;
+        int id_active;
+        //cek akses token
+        if(valid){
+            id_active =  1;
+        } else {
+            return false;
+        }
+        try
+        {
+            // create our mysql database connection
+            String myDriver = "org.gjt.mm.mysql.Driver";
+            String myUrl = "jdbc:mysql://localhost/";
+            Class.forName(myDriver);
+            Connection conn = DriverManager.getConnection(myUrl, "root", "");
+
+            // our SQL SELECT query.
+            // if you only need a few columns, specify them by name instead of using "*"
+
+            // create the java statement
+            Statement st = conn.createStatement();
+            String query1 = "SELECT * FROM transaction";
+            ResultSet rs = st.executeQuery(query1);
+            ResultSetMetaData rsmd = rs.getMetaData();
+            int columnsNumber = rsmd.getColumnCount();
+            int id_transaksi = columnsNumber +1;
+
+            String query2 = "INSERT INTO transaction (IDTransaksi, IDDriver,IDPenumpang,LokasiAwal,LokasiTujuan,Rating,Comment,IsHide, DatePosted) VALUES ('"+id_transaksi+"','"+id_driver+"','"+id_active+"','"+picking_point+"','"+destination+"','"+rating+"','"+comment+"',"+0+",'"+id_transaksi+"')";
+            st.executeQuery(query2);
+
+            String query3 = "SELECT IDTransaksi from transaction where IDDriver = '"+id_driver+"'";
+            rs = st.executeQuery(query3);
+            rsmd = rs.getMetaData();
+            int totalvote = rsmd.getColumnCount();
+            String query4 = "SELECT sum(rating) from transaction where IDDriver = '"+id_driver+"' group by IDDriver";
+            rs = st.executeQuery(query4);
+            int totalrating = rs.getInt("sum(rating)");
+            float driverrating = totalrating/totalvote;
+            String query5 = "UPDATE rating_driver SET   rating='"+driverrating+"', totalvote='"+totalvote+"' WHERE IDDriver='"+id_driver+"'";
+
+            st.close();
+            return  true;
+        }
+        catch (Exception e)
+        {
+            System.err.println("Got an exception! ");
+            System.err.println(e.getMessage());
+            return false;
+
+        }
+
 
     }
 
diff --git a/WebService/src/com/informatika/ojek/webservice/Profile.java b/WebService/src/com/informatika/ojek/webservice/Profile.java
index f92f77aafc3cc78bc292707aa59dd64dc1e85055..e27583fcc3067c73f114cc4a82d717c0939196bc 100644
--- a/WebService/src/com/informatika/ojek/webservice/Profile.java
+++ b/WebService/src/com/informatika/ojek/webservice/Profile.java
@@ -3,7 +3,7 @@ package com.informatika.ojek.webservice;
 import javax.jws.WebService;
 
 //Service Implementation
-@WebService(endpointInterface = "com.informatika.ojek.webservice.IOrder")
+@WebService(endpointInterface = "com.informatika.ojek.webservice.IProfile")
 public class Profile implements IProfile {
     @Override public Account getActiveUser(String access_token){
         return null;