diff --git a/migration/migration.sql b/migration/migration.sql
index 1d5ce6b5c8f9e0626c2c3a31568a9d001c2db7ac..2bc878815cc3f5f1c97dcbcc8f694c03a40a30d0 100644
--- a/migration/migration.sql
+++ b/migration/migration.sql
@@ -22,6 +22,7 @@ CREATE TABLE detail_pesanan (
     id_pesanan INT,
     nama_produk VARCHAR(255),
     quantity INT,
+    harga INT,
     FOREIGN KEY (id_pesanan) REFERENCES pesanan(id)
 );
 
diff --git a/src/main/java/models/detailPesananModel.java b/src/main/java/models/detailPesananModel.java
index f763df8d1cc12f099ddf6a7f3bdcb59ccd719aef..b0441fe238c3619d8732ea4bd7f49758c074f657 100644
--- a/src/main/java/models/detailPesananModel.java
+++ b/src/main/java/models/detailPesananModel.java
@@ -18,12 +18,12 @@ public class detailPesananModel {
     private int id_pesanan;
     private String nama_product;
     private int quantity;
+    private int harga;
 
-    public ArrayList<detailPesananModel> convertFromString(int id_pesanan, String nama_product, String quantity){
-        ArrayList<Integer> list_id_pesanan = new ArrayList<>();
+    public ArrayList<detailPesananModel> convertFromString(int id_pesanan, String nama_product, String quantity, String harga){
         ArrayList<String> list_nama_product = new ArrayList<>();
         ArrayList<Integer> list_quantity = new ArrayList<>();
-
+        ArrayList<Integer> list_harga = new ArrayList<>();
 
         String[] nama_product_items = nama_product.split(",");
 
@@ -36,12 +36,39 @@ public class detailPesananModel {
             list_quantity.add(Integer.parseInt(item.trim()));
         }
 
+        String[] hargas = harga.split(",");
+        for(String item: hargas){
+            list_harga.add(Integer.parseInt(item.trim()));
+        }
+
         ArrayList<detailPesananModel> detailPesanan = new ArrayList<>();
         for(int i = 0; i < list_quantity.size(); i++){
-            detailPesananModel temp = new detailPesananModel(id_pesanan, list_nama_product.get(i), list_quantity.get(i));
+            detailPesananModel temp = new detailPesananModel(id_pesanan, list_nama_product.get(i), list_quantity.get(i), list_harga.get(i));
             detailPesanan.add(temp);
         }
 
         return detailPesanan;
     }
+
+    public int getTotalHarga(String harga, String quantity){
+        ArrayList<Integer> list_quantity = new ArrayList<>();
+        ArrayList<Integer> list_harga = new ArrayList<>();
+
+        String[] quantity_items = quantity.split(",");
+        for(String item: quantity_items){
+            list_quantity.add(Integer.parseInt(item.trim()));
+        }
+
+        String[] hargas = harga.split(",");
+        for(String item: hargas){
+            list_harga.add(Integer.parseInt(item.trim()));
+        }
+
+        int total = 0;
+        for(int i=0; i<list_harga.size(); i++){
+            total += list_harga.get(i)*list_quantity.get(i);
+        }
+        
+        return total;
+    }
 }
diff --git a/src/main/java/repo/detailPesananRepo.java b/src/main/java/repo/detailPesananRepo.java
index c65caf25feb59cc02c5215c129d7d7942aafa0c6..7d22dc54744c94abe85ada89a9039dafc8866828 100644
--- a/src/main/java/repo/detailPesananRepo.java
+++ b/src/main/java/repo/detailPesananRepo.java
@@ -35,8 +35,9 @@ public class detailPesananRepo extends repository{
                 int idPesanan = resultSet.getInt("id_pesanan");
                 String namaProduk = resultSet.getString("nama_produk");
                 int quantity = resultSet.getInt("quantity");
+                int harga = resultSet.getInt("harga");
 
-                detailPesananModel detailPesanan = new detailPesananModel(idPesanan, namaProduk, quantity);
+                detailPesananModel detailPesanan = new detailPesananModel(idPesanan, namaProduk, quantity, harga);
                 listDetailPesanan.add(detailPesanan);
             }
             System.out.println(listDetailPesanan);
@@ -55,13 +56,13 @@ public class detailPesananRepo extends repository{
         //     detailPesanan.add(model);
         // }
 
-        String query = "INSERT INTO detail_pesanan(id_pesanan, nama_produk, quantity) VALUES";
+        String query = "INSERT INTO detail_pesanan(id_pesanan, nama_produk, quantity, harga) VALUES";
         for(int i = 0; i < detailPesanan.size(); i++){
             String temp;
             if(i == 0){
-                temp = "(?, ?, ?)";
+                temp = "(?, ?, ?, ?)";
             }else{
-                temp = ", (?, ?, ?)";
+                temp = ", (?, ?, ?, ?)";
             }
 
             query += temp;
@@ -79,6 +80,8 @@ public class detailPesananRepo extends repository{
                 paramIndex++;
                 addDetailPesanan.setString(paramIndex, Integer.toString(detailPesanan.get(i).getQuantity()));
                 paramIndex++;
+                addDetailPesanan.setString(paramIndex, Integer.toString(detailPesanan.get(i).getHarga()));
+                paramIndex++;
             }
 
             addDetailPesanan.execute();
diff --git a/src/main/java/ws/PesananWS.java b/src/main/java/ws/PesananWS.java
index 7fa3868c4d997b6652cc5d25d30d83ed432249dd..bc987c1839e0511823b1491f7b0e56c69fa08f3d 100644
--- a/src/main/java/ws/PesananWS.java
+++ b/src/main/java/ws/PesananWS.java
@@ -14,7 +14,7 @@ import models.pesananModel;
 public interface PesananWS {
     @WebMethod public List<pesananModel> getPesananByKurir(int id_kurir);
     @WebMethod public List<pesananModel> getPesananNoKurir();
-    @WebMethod public String addPesanan(int idPemesan, String alamat, String nama_penerima, String keterangan, int harga, int biaya_pengiriman, String nama_product, String quantity);
+    @WebMethod public String addPesanan(int idPemesan, String alamat, String nama_penerima, String keterangan, String harga, int biaya_pengiriman, String nama_product, String quantity);
     @WebMethod public String ambilPesanan(int id_pesanan, int id_kurir);
     @WebMethod public String updatePesanan(int id_pesanan, int id_kurir, String status, String keterangan);
 }
diff --git a/src/main/java/ws/PesananWSImpl.java b/src/main/java/ws/PesananWSImpl.java
index d6a196216375d3ce81574dc7b313030f7ca2d914..d4d677648090f3bd52eae3e970eea81096d8ea1f 100644
--- a/src/main/java/ws/PesananWSImpl.java
+++ b/src/main/java/ws/PesananWSImpl.java
@@ -51,18 +51,22 @@ public class PesananWSImpl implements PesananWS{
     }
 
     @WebMethod
-    public String addPesanan(int idPemesan, String alamat, String nama_penerima, String keterangan, int harga, int biaya_pengiriman, String nama_product, String quantity){
+    public String addPesanan(int idPemesan, String alamat, String nama_penerima, String keterangan, String harga, int biaya_pengiriman, String nama_product, String quantity){
         detailPesananModel dp = new detailPesananModel();
         try{
             pesananRepo pr = new pesananRepo();
-            String result = pr.addPesanan(idPemesan, alamat, nama_penerima, keterangan, harga, biaya_pengiriman);
+
+            int total_harga = dp.getTotalHarga(harga, quantity);
+
+            String result = pr.addPesanan(idPemesan, alamat, nama_penerima, keterangan, total_harga, biaya_pengiriman);
 
             System.out.println(result);
             int lastId = pr.getLastId();
             if(lastId == -1){
                 return "Gagal";
             }
-            ArrayList<detailPesananModel> detailPesanan = dp.convertFromString(lastId, nama_product, quantity);
+
+            ArrayList<detailPesananModel> detailPesanan = dp.convertFromString(lastId, nama_product, quantity, harga);
             detailPesananRepo dpr = new detailPesananRepo();
             result = dpr.addDetailPesanan(detailPesanan);
             return result;