diff --git a/app/controllers/admin.php b/app/controllers/admin.php
index d5d189ccf42563695cbe0381b6abbf8118db8855..023d314e97b96be42933f3634bf85642485e79f8 100644
--- a/app/controllers/admin.php
+++ b/app/controllers/admin.php
@@ -66,8 +66,10 @@ class Admin extends Controller {
         return new $model;
     }
 
-    public function addBook(){
-        if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin' ){
+    public function addBook()
+{
+    try {
+        if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin') {
             if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 
                 // Buat path image audio
@@ -89,20 +91,25 @@ class Admin extends Controller {
                 $array = array_column($data['book'], "title");
 
                 // Cek exist ato g usernya, cek string kosong ato ngga
-                if (!in_array($newTitle, $array, true) && !(empty($newTitle) || empty($newContent) || ( empty ($newTitle) && empty($newContent) ))){
+                if (!in_array($newTitle, $array, true) && !(empty($newTitle) || empty($newContent) || (empty($newTitle) && empty($newContent)))) {
                     $this->model('BookModel')->insertBook($newTitle, $newContent, $selectedAuthor, $selectedCategory);
                     move_uploaded_file($fileTmpAudio, $audioFilePath);
                     move_uploaded_file($fileTmpImage, $imageFilePath);
+                } else {
+                    throw new Exception("Invalid input data.");
                 }
-                
             }
             $data['book'] = $this->model('BookModel')->getAllBookAdmin();
             $data['author'] = $this->model('AuthorModel')->getAuthor();
             $this->view('admin/bookadmin', $data);
         } else {
-            $this->view('error/404');
+            throw new Exception("Unauthorized access.");
         }
+    } catch (Exception $e) {
+        $error_message = $e->getMessage();
+        $this->view('error/403', ['error' => $error_message]);
     }
+}
     public function addUser(){
         if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin' ){
             if ($_SERVER['REQUEST_METHOD'] === 'POST') {
@@ -137,11 +144,12 @@ class Admin extends Controller {
         }
     }
 
-    public function editBook(){
+    public function editBook()
+{
+    try {
         if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin') {
             if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 
-
                 // Buat path image audio
                 $imageDir = LOCALURL . "/img/";
                 $audioDir = LOCALURL . "/audio/";
@@ -163,21 +171,26 @@ class Admin extends Controller {
                 $data['book'] = $this->model('BookModel')->getAllBook();
                 $array = array_column($data['book'], "title");
                 // Cek title kosong atau udah exist di db atau gk diganti
-                if(!empty($newTitle) && (!in_array($newTitle, $array, true) || $newTitle === $oldTitle) && (isset($fileAudio) && isset($fileImage))){
+                if (!empty($newTitle) && (!in_array($newTitle, $array, true) || $newTitle === $oldTitle) && (isset($fileAudio) && isset($fileImage))) {
                     $this->model('BookModel')->updateBook($bookid, $newTitle, $selectedAuthor, $newContent, $selectedCategory);
                     move_uploaded_file($fileTmpAudio, $audioFilePath);
                     move_uploaded_file($fileTmpImage, $imageFilePath);
+                } else {
+                    throw new Exception("Invalid input data.");
                 }
 
                 $data['book'] = $this->model('BookModel')->getAllBookAdmin();
                 $data['author'] = $this->model('AuthorModel')->getAuthor();
                 $this->view('admin/bookadmin', $data);
-
             }
-        } else{
-            $this->view('error/404');
+        } else {
+            throw new Exception("Unauthorized access.");
         }
+    } catch (Exception $e) {
+        $error_message = $e->getMessage();
+        $this->view('error/403', ['error' => $error_message]);
     }
+}
 
     public function editUser(){
         if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin') {
diff --git a/app/views/popup/popupAdd.php b/app/views/popup/popupAdd.php
deleted file mode 100644
index abcdcdf30cb8bc7fde509471d0c9044ff3304787..0000000000000000000000000000000000000000
--- a/app/views/popup/popupAdd.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-// Define dynamic content
-$pageTitle = "Popup Page";
-$popupTitle = "POPUP";
-$buttonText = "Click me";
-$popupContentTitle = "Add Book";
-$popupContentText = "Are you sure you want to add this book?";
-$continueButtonText = "Continue";
-$cancelButtonText = "Cancel";
-
-$currentFileName = basename(__FILE__, '.php');
-
-// Define CSS and JavaScript file names based on the current file
-$cssFileName = $currentFileName . '.css';
-$jsFileName = $currentFileName . '.js';
-
-// Include the template
-include('popupTemplate.php');
-?>
diff --git a/app/views/popup/popupDelete.php b/app/views/popup/popupDelete.php
deleted file mode 100644
index 9002efa4fc130ddb53fb85873f7e6cdcd5eb9a31..0000000000000000000000000000000000000000
--- a/app/views/popup/popupDelete.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-// Define dynamic content
-$pageTitle = "Popup Page";
-$popupTitle = "POPUP";
-$buttonText = "Click me";
-$deletePopupContentTitle = "Delete Bookmark";
-$deletePopupContentText = "Are you sure you want to delete this book?";
-$continueButtonText = "Continue";
-$cancelButtonText = "Cancel";
-
-$currentFileName = basename(__FILE__, '.php');
-
-// Define CSS and JavaScript file names based on the current file
-$cssFileName = $currentFileName . '.css';
-$jsFileName = $currentFileName . '.js';
-
-// Include the template
-include('popupTemplate.php');
-?>
diff --git a/app/views/popup/popupEdit.php b/app/views/popup/popupEdit.php
deleted file mode 100644
index 5d54f821f239653175823836b55af14994f5274c..0000000000000000000000000000000000000000
--- a/app/views/popup/popupEdit.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-// Define dynamic content
-$pageTitle = "Popup Page";
-$popupTitle = "POPUP";
-$buttonText = "Click me";
-$editPopupContentTitle = "Edit Bookmark";
-$editPopupContentText = "Are you sure you want to edit this bookmark?";
-$continueButtonText = "Continue";
-$cancelButtonText = "Cancel";
-
-$currentFileName = basename(__FILE__, '.php');
-
-// Define CSS and JavaScript file names based on the current file
-$cssFileName = $currentFileName . '.css';
-$jsFileName = $currentFileName . '.js';
-
-// Include the template
-include('popupTemplate.php');
-?>
diff --git a/app/views/popup/popupEditDelete.php b/app/views/popup/popupEditDelete.php
deleted file mode 100644
index 36008f735ae47af0d49638626336ed0c257ad4f5..0000000000000000000000000000000000000000
--- a/app/views/popup/popupEditDelete.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-// Define dynamic content
-$pageTitle = "Popup Page";
-$popupTitle = "POPUP";
-$buttonText = "Click me";
-$editPopupContentTitle = "Edit Bookmark";
-$editPopupContentText = "Are you sure you want to edit this bookmark?";
-$deletePopupContentTitle = "Delete Bookmark";
-$deletePopupContentText = "Are you sure you want to delete this book?";
-$continueButtonText = "Continue";
-$cancelButtonText = "Cancel";
-
-$currentFileName = basename(__FILE__, '.php');
-
-// Define CSS and JavaScript file names based on the current file
-$cssFileName = '/var/www/html/public/style/popupEditDelete.css';
-$jsFileName = '/var/www/html/public/js/popupEditDelete.js';
-
-// Include the template
-include('popupTemplateMulti.php');
-?>
diff --git a/app/views/popup/popupTemplateMulti.php b/app/views/popup/popupTemplateMulti.php
deleted file mode 100644
index dc1d11d574eea80a3a62e119f32415c0323a1d39..0000000000000000000000000000000000000000
--- a/app/views/popup/popupTemplateMulti.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <link rel="stylesheet" type="text/css" href="<?php echo $cssFileName; ?>">
-    <title><?php echo $pageTitle; ?></title>
-</head>
-<body>
-    <!-- Edit Popup -->
-    <div id="editPopup" class="popup">
-        <div class="popup-content">
-            <h1><?php echo $editPopupContentTitle; ?></h1>
-            <p><?php echo $editPopupContentText; ?></p><br>
-            <div class="button-container">
-                <button id="continueButtonEdit"><?php echo $continueButtonText; ?></button>
-                <button id="cancelButtonEdit"><?php echo $cancelButtonText; ?></button>
-            </div>
-        </div>
-    </div>
-
-    <!-- Delete Popup -->
-    <div id="deletePopup" class="popup">
-        <div class="popup-content">
-            <h1><?php echo $deletePopupContentTitle; ?></h1>
-            <p><?php echo $deletePopupContentText; ?></p><br>
-            <div class="button-container">
-                <button id="continueButtonDelete"><?php echo $continueButtonText; ?></button>
-                <button id="cancelButtonDelete"><?php echo $cancelButtonText; ?></button>
-            </div>
-        </div>
-    </div>
-
-
-</body>
-</html>
diff --git a/app/views/popup/popupUpdate.php b/app/views/popup/popupUpdate.php
deleted file mode 100644
index 135d0cac20b82a484f1c03c87e408c1cab0386c0..0000000000000000000000000000000000000000
--- a/app/views/popup/popupUpdate.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-// Define dynamic content
-$pageTitle = "Popup Page";
-$popupTitle = "POPUP";
-$buttonText = "Click me";
-$popupContentTitle = "Update Book";
-$popupContentText = "Are you sure you want to update this book?";
-$continueButtonText = "Continue";
-$cancelButtonText = "Cancel";
-
-$currentFileName = basename(__FILE__, '.php');
-
-// Define CSS and JavaScript file names based on the current file
-$cssFileName = $currentFileName . '.css';
-$jsFileName = $currentFileName . '.js';
-
-// Include the template
-include('popupTemplate.php');
-?>