diff --git a/src/admin/gym/index.php b/src/admin/gym/index.php
index cc79f2b2c157733eae60003268cb50d4cdfcd364..76b8109b21dbd9d53392eb8ad786271dfe8b4164 100644
--- a/src/admin/gym/index.php
+++ b/src/admin/gym/index.php
@@ -27,6 +27,8 @@ AuthMiddleware::getInstance()->secureRoute(true);
     <div class="app">
         <script>
             const apikey = <?php echo json_encode($_ENV['API_KEY']) ?>;
+            const soapkey = <?php echo json_encode($_ENV['AUTHORIZATION']) ?>;
+            const soapurl = <?php echo json_encode($_ENV['SOAP_URL']) ?>;
         </script>
         <?php
         echo NavbarAdmin();
@@ -118,7 +120,7 @@ AuthMiddleware::getInstance()->secureRoute(true);
     <script src="/public/javascript/gym/application.js"></script>
     <script src="/public/javascript/gym/trainer.js"></script>
     <script>
-        getGymTrainers();
+        // getGymTrainers(<?php echo $gym_id ?>);
         getGymApplication(<?php echo $gym_id ?>);
     </script>
 </body>
diff --git a/src/public/javascript/gym/application.js b/src/public/javascript/gym/application.js
index d4ebfe89352e90b46058f2f26967ca801269c28c..f597e91bd8f16aa60fae3eb25694f102b83db232 100644
--- a/src/public/javascript/gym/application.js
+++ b/src/public/javascript/gym/application.js
@@ -4,23 +4,33 @@ function hidePopupRej() { document.querySelector(`#pop-up-reject`).style.display
 function showPopupRej() { document.querySelector(`#pop-up-reject`).style.display = "flex";}
 
 // dummy data
-let trainer = {
-  username: "johndoe",
-  gym_id: 43,
-  acceptance: 0,
-  trainer_name: "John Doe",
-  trainer_description: "Aku ingin bekerja",
-  application_description: "Aku ingin bekerja di sebuah gym, aku memiliki semangat di gym 43 ini semoga bisa keterima. Sekian dan terima kasih atas perhatian dan kesan dan pesannya",
-}
-let trainer2 = {
-  username: "johndoedfdf",
-  gym_id: 43, 
-  acceptance: 0,
-  trainer_name: "John Doe",
-  trainer_description: "Aku ingin bekerja",
-  application_description: "Aku ingin bekerja",
-}
-let data = [trainer, trainer2];
+// let trainer = {
+//   username: "johndoe",
+//   gym_id: 43,
+//   acceptance: 0,
+//   trainer_name: "John Doe",
+//   trainer_description: "Aku ingin bekerja",
+//   application_description: "Aku ingin bekerja di sebuah gym, aku memiliki semangat di gym 43 ini semoga bisa keterima. Sekian dan terima kasih atas perhatian dan kesan dan pesannya",
+// }
+// let trainer2 = {
+//   username: "johndoedfdf",
+//   gym_id: 43, 
+//   acceptance: 0,
+//   trainer_name: "John Doe",
+//   trainer_description: "Aku ingin bekerja",
+//   application_description: "Aku ingin bekerja",
+// }
+// let data = [trainer, trainer2];
+const response = `<?xml version="1.0"?>
+<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
+    <S:Body>
+        <ns2:getAllAplicationResponse xmlns:ns2="http://service.gymtracker.com/">
+            <return>[nerbi1, 37, 0, Rayhan, Let's get some gainz brah, Give me a job]
+[nerbi2, 37, 1, Rayhan, Let's get some gainz brah, Give me a job]
+[nerbi3, 37, 0, Nigel, Let's get some gainz brah, Give me a job]</return>
+        </ns2:getAllAplicationResponse>
+    </S:Body>
+</S:Envelope>`
 
 
 function modifyGymApplicationList(data) {
@@ -29,7 +39,7 @@ function modifyGymApplicationList(data) {
     if (data.length == 0) {
       gymApplicationList.innerHTML = `
       <div class="space"></div>
-      <div class="gym-card-text"> No Aplication found </div>
+      <div class="gym-card-text"> No Application found </div>
       `;
     }
     data.forEach((trainer) => {
@@ -38,24 +48,39 @@ function modifyGymApplicationList(data) {
 }
 
 function getGymApplication(gymId) {
-    modifyGymApplicationList(data);
-    const xhr = new XMLHttpRequest();
-    xhr.onreadystatechange = function () {
+  modifyGymApplicationList(filterApplication(parseXmlResponse(response), 0));
+  showGymTrainers(filterApplication(parseXmlResponse(response), 1));
+
+  const xhr = new XMLHttpRequest();
+  xhr.onreadystatechange = function () {
       if (this.readyState === 4) {
-        if (this.status === 200) {
-          modifyGymApplicationList(JSON.parse(this.responseText)["trainers"]);
-        } else {
-          const json = JSON.parse(this.responseText);
-          alert(json["error"]);
-        }
+          if (this.status === 200) {
+              const applications = parseXmlResponse(this.responseText);
+              alert("trainer : " + applications);
+              modifyGymApplicationList(filterApplication(applications, 0));
+              showGymTrainers(filterApplication(applications, 1));
+          } else {
+              const xml = this.responseXML;
+              alert("error status : " + this.status + " error text : " + xml);
+          }
       }
-    };
-  
-    // xhr.open("GET", `/api/gym/rating?gym_id=${gymId}`, true);
-    // xhr.setRequestHeader("X-API-KEY", apikey);
-    xhr.send();
+  };
+
+  const soapBody = `<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
+                      <Body>
+                          <getAllAplication xmlns="http://service.gymtracker.com/">
+                              <gym_id xmlns="">${gymId}</gym_id>
+                          </getAllAplication>
+                      </Body>
+                  </Envelope>`;
+  // alert("soapbody : " + soapBody);
+  xhr.open("POST", soapurl, true);
+  xhr.setRequestHeader("Content-Type", "text/xml");
+  xhr.setRequestHeader("Authorization", soapkey);
+  xhr.send(soapBody);
 }
 
+
 function getApplication(username, gymId) {
   // alert("get application with username: " + username + " and gym id: " + gymId);
   modifyApplication(trainer);
@@ -128,4 +153,34 @@ function modifyApplication(trainer) {
         </tr>
     </table>
     `
+}
+
+function parseXmlResponse(xmlString) {
+  const parser = new DOMParser();
+  const xmlDoc = parser.parseFromString(xmlString, "text/xml");
+  const returnElement = xmlDoc.getElementsByTagName("return")[0];
+  const returnText = returnElement.textContent;
+
+  // Split the return text into an array of trainer strings
+  const trainerStrings = returnText.split("\n").filter(str => str.trim() !== "");
+
+  // Parse each trainer string into a trainer object
+  const trainers = trainerStrings.map(trainerString => {
+      const values = trainerString.replace("[", "").replace("]", "").split(", ");
+      return {
+          username: values[0],
+          gym_id: parseInt(values[1]),
+          acceptance: parseInt(values[2]),
+          trainer_name: values[3],
+          trainer_description: values[4],
+          application_description: values[5]
+      };
+  });
+
+  return trainers;
+}
+
+function filterApplication(Applications, acc){
+  // filter Application with Acceptance acc
+  return Applications.filter(application => application.acceptance == acc);
 }
\ No newline at end of file
diff --git a/src/public/javascript/gym/trainer.js b/src/public/javascript/gym/trainer.js
index 39daf32506f0d6a87d9dc35499f1d1aea138ea78..d54618dca0fec5210acf905edc917f7a70e14443 100644
--- a/src/public/javascript/gym/trainer.js
+++ b/src/public/javascript/gym/trainer.js
@@ -29,9 +29,9 @@ let trainer_1 = {
   let trainerData = [trainer_1, trainer_2];
 
 // Functions
-function getGymTrainers() {
-    showGymTrainers(trainerData);
-}
+// function getGymTrainers(gymId) {
+//     showGymTrainers(trainerData);
+// }
 
 function showGymTrainers(data) {
     const gymTrainerList = document.getElementById("gym-trainer-list");