diff --git a/app/views/listtempatwisata.php b/app/views/listtempatwisata.php
index 405fc33748ab9c85810a322fea5431a7d46deae8..f3d96cf897c8c30261a7f39ceeabc639539ce32d 100644
--- a/app/views/listtempatwisata.php
+++ b/app/views/listtempatwisata.php
@@ -52,7 +52,7 @@
                 </div>
                 <script src="../../public/js/placeselection.js"></script>
             </div>
-            <button type="submit" class="buttonfilter" id="buttonfilter" onclick="loadDestination(event)">Apply Filter</button>
+            <button type="submit" class="buttonfilter" id="buttonfilter" >Apply Filter</button>
             <script src="../../public/js/httprequest.js"></script>
             <script src="../../public/js/loadPlaces.js"></script>
         </div>
diff --git a/public/js/loadPlaces.js b/public/js/loadPlaces.js
deleted file mode 100644
index 6588f7bf33cc64238f364e6d9ae3d25ced67f842..0000000000000000000000000000000000000000
--- a/public/js/loadPlaces.js
+++ /dev/null
@@ -1,98 +0,0 @@
-const loadDestination = async (e) => {
-    e.preventDefault();
-
-    function getTypeFilter() {
-        const checkboxes = document.querySelectorAll('#type-dropdown input[type="checkbox"]:checked');
-        const selectedValues = Array.from(checkboxes).map(checkbox => checkbox.value);
-        return selectedValues;
-    }
-
-    function getLocationFilter() {
-        const checkboxes = document.querySelectorAll('#location-dropdown input[type="checkbox"]:checked');
-        const selectedValues = Array.from(checkboxes).map(checkbox => checkbox.value);
-        return selectedValues;
-    }
-
-    const sortedSelect = document.getElementById("sorted").value;
-    const searchInput = document.getElementById("search").value;
-
-    const typeArray = getTypeFilter();
-    const locationArray = getLocationFilter();
-    const typeString = typeArray.join(', ');
-    const locationString = locationArray.join(', ');
-    console.log(sortedSelect);
-    const formData = new FormData();
-    formData.append("category", typeString);
-    formData.append("location", locationString);
-    formData.append("search", searchInput);
-    if (sortedSelect === "Termurah")
-    {
-        formData.append("sortby", "PlacePrice");
-        formData.append("order", "ASC");
-
-    }
-    else if (sortedSelect === "Termahal")
-    {
-        formData.append("sortby", "PlacePrice");
-        formData.append("order", "DESC");
-    }
-    else if (sortedSelect === "Huruf A-Z")
-    {
-        formData.append("sortby", "PlaceName");
-        formData.append("order", "ASC");
-    }
-    else
-    {
-        formData.append("sortby", "");
-        formData.append("order", "");
-    }
-
-    const lib = new Lib();
-    const res = await lib.post('/api/filterPlaces', formData);
-    console.log(res);
-    const jsonRes = JSON.parse(res);
-    
-    var container = document.getElementById("destinationContainer");
-    
-    var divs = container.querySelectorAll('div');
-    for (var i = 0; i < divs.length; i++) {
-        var div = divs[i];
-        div.parentNode.removeChild(div);
-    }
-
-
-    jsonRes["message"].forEach(place => {
-        var newDiv = document.createElement("div");
-        newDiv.className = "destinationbox";
-
-        // Create an <a> element with an "href" attribute
-        var newLink = document.createElement("a");
-        newLink.href = "/info-place";
-
-        // Create an <img> element with "src" and "alt" attributes
-        var newImage = document.createElement("img");
-        newImage.src = "../../public/package/purpletravel.jpg";
-        newImage.alt = "destination1";
-
-        // Create <h2> and <h3> elements with text content
-        var newH2 = document.createElement("h2");
-        newH2.textContent = place["PlaceName"];
-
-        var newH3 = document.createElement("h3");
-        newH3.textContent = place["PlaceLocation"];
-
-        // Append elements to construct the desired structure
-        newDiv.appendChild(newImage);
-        newDiv.appendChild(newH2);
-        newDiv.appendChild(newH3);
-
-        newDiv.appendChild(newLink);
-        container.appendChild(newDiv);
-    });
-
-    
-
-    // request = [["pantai", "gunung"], ["jawa barat", "jawa tengah"]]
-}
-
-
diff --git a/public/js/placeselection.js b/public/js/placeselection.js
index d997b771dcb3c6922bf9ff1181c65b4a5d59aa8c..7091175727c341c44d72aa09e8c727d60a8e0b8e 100644
--- a/public/js/placeselection.js
+++ b/public/js/placeselection.js
@@ -1,36 +1,108 @@
-document.addEventListener("DOMContentLoaded", function () {
+document.addEventListener("DOMContentLoaded" , async () => {
     const searchInput = document.getElementById("search");
     const sortedSelect = document.getElementById("sorted");
-    const listDestination = document.querySelector(".listdestination");
-    const destinationBoxes = document.querySelectorAll(".destinationbox");
     const toggleButton1 = document.getElementById("toggle-dropdown1");
     const dropdown1 = document.getElementById("type-dropdown");
     const toggleButton2 = document.getElementById("toggle-dropdown2");
     const dropdown2 = document.getElementById("location-dropdown");
+    const filterButton = document.getElementById("buttonfilter");
+
+    const loadDestination = async (e) => {
+        if (e)
+        e.preventDefault();
     
-    function sortDestinationBoxesAZ() {
-        const destinationBoxesArray = Array.from(destinationBoxes);
-        destinationBoxesArray.sort((boxA, boxB) => {
-            const nameA = boxA.querySelector("h2").textContent.trim().toLowerCase();
-            const nameB = boxB.querySelector("h2").textContent.trim().toLowerCase();
-            return nameA.localeCompare(nameB);
-        });
-        destinationBoxesArray.forEach((box) => {
-            listDestination.appendChild(box);
+        function getTypeFilter() {
+            const checkboxes = document.querySelectorAll('#type-dropdown input[type="checkbox"]:checked');
+            const selectedValues = Array.from(checkboxes).map(checkbox => checkbox.value);
+            return selectedValues;
+        }
+    
+        function getLocationFilter() {
+            const checkboxes = document.querySelectorAll('#location-dropdown input[type="checkbox"]:checked');
+            const selectedValues = Array.from(checkboxes).map(checkbox => checkbox.value);
+            return selectedValues;
+        }
+    
+        const sortedSelect = document.getElementById("sorted").value;
+        const searchInput = document.getElementById("search").value;
+    
+        const typeArray = getTypeFilter();
+        const locationArray = getLocationFilter();
+        const typeString = typeArray.join(', ');
+        const locationString = locationArray.join(', ');
+        console.log(sortedSelect);
+        const formData = new FormData();
+        formData.append("category", typeString);
+        formData.append("location", locationString);
+        formData.append("search", searchInput);
+        if (sortedSelect === "Termurah")
+        {
+            formData.append("sortby", "PlacePrice");
+            formData.append("order", "ASC");
+    
+        }
+        else if (sortedSelect === "Termahal")
+        {
+            formData.append("sortby", "PlacePrice");
+            formData.append("order", "DESC");
+        }
+        else if (sortedSelect === "Huruf A-Z")
+        {
+            formData.append("sortby", "PlaceName");
+            formData.append("order", "ASC");
+        }
+        else
+        {
+            formData.append("sortby", "");
+            formData.append("order", "");
+        }
+    
+        const lib = new Lib();
+        const res = await lib.post('/api/filterPlaces', formData);
+        console.log(res);
+        const jsonRes = JSON.parse(res);
+        
+        var container = document.getElementById("destinationContainer");
+        
+        var divs = container.querySelectorAll('div');
+        for (var i = 0; i < divs.length; i++) {
+            var div = divs[i];
+            div.parentNode.removeChild(div);
+        }
+    
+    
+        jsonRes["message"].forEach(place => {
+            var newDiv = document.createElement("div");
+            newDiv.className = "destinationbox";
+    
+            var newLink = document.createElement("a");
+            newLink.href = "/info-place";
+    
+            var newImage = document.createElement("img");
+            newImage.src = "../../public/package/purpletravel.jpg";
+            newImage.alt = "destination1";
+    
+            var newH2 = document.createElement("h2");
+            newH2.textContent = place["PlaceName"];
+    
+            var newH3 = document.createElement("h3");
+            newH3.textContent = place["PlaceLocation"];
+    
+            newDiv.appendChild(newImage);
+            newDiv.appendChild(newH2);
+            newDiv.appendChild(newH3);
+    
+            newDiv.appendChild(newLink);
+            container.appendChild(newDiv);
         });
+    
+        
     }
 
-    function filterDestinationBoxes() {
-        var searchValue = searchInput.value.toLowerCase();
-        destinationBoxes.forEach(function (box) {
-            var h2Text = box.querySelector("h2").textContent.toLowerCase();
-            if (h2Text.includes(searchValue)) {
-                box.style.display = "block";
-            } else {
-                box.style.display = "none";
-            }
-        });
-    }
+    await loadDestination();
+
+    const lib = new Lib();
+    const debouncedLoadDestination = lib.debounce(loadDestination);
 
     toggleButton1.addEventListener("click", function () {
         dropdown1.style.display = dropdown1.style.display === "block" ? "none" : "block";
@@ -40,25 +112,9 @@ document.addEventListener("DOMContentLoaded", function () {
         dropdown2.style.display = dropdown2.style.display === "block" ? "none" : "block";
     });
 
-    // filterDaerahSelect.addEventListener("change", function () {
-    //     const selectedValue = filterDaerahSelect.value;
-    //     destinationBoxes.forEach(function (box) {
-    //         const lokasiTempat = box.querySelector("h3").textContent;
-    //         if (selectedValue === "Semua" || selectedValue === lokasiTempat) {
-    //             box.style.display = "block";
-    //         } else {
-    //             box.style.display = "none";
-    //         }
-    //     });
-    // });
+    filterButton.addEventListener('click', loadDestination);
 
-    sortedSelect.addEventListener("change", function () {
-        if (sortedSelect.value === "Huruf A-Z") {
-            sortDestinationBoxesAZ();
-        }
-    });
+    sortedSelect.addEventListener("change", loadDestination);
 
-    searchInput.addEventListener("input", function () {
-        filterDestinationBoxes();
-    });
+    searchInput.addEventListener("input", debouncedLoadDestination);
 });
\ No newline at end of file