diff --git a/app/config/dotenv.php b/app/config/dotenv.php
deleted file mode 100644
index 79f9697aad6a64844e3db54d3722c58b80297a22..0000000000000000000000000000000000000000
--- a/app/config/dotenv.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-class DotEnv
-{
-    /**
-     * The directory where the .env file can be located.
-     *
-     * @var string
-     */
-    protected $path;
-
-
-    public function __construct(string $path)
-    {
-        if(!file_exists($path)) {
-            throw new \InvalidArgumentException(sprintf('%s does not exist', $path));
-        }
-        $this->path = $path;
-    }
-
-    public function load() :void
-    {
-        if (!is_readable($this->path)) {
-            throw new \RuntimeException(sprintf('%s file is not readable', $this->path));
-        }
-
-        $lines = file($this->path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
-        foreach ($lines as $line) {
-
-            if (strpos(trim($line), '#') === 0) {
-                continue;
-            }
-
-            list($name, $value) = explode('=', $line, 2);
-            $name = trim($name);
-            $value = trim($value);
-
-            if (!array_key_exists($name, $_SERVER) && !array_key_exists($name, $_ENV)) {
-                putenv(sprintf('%s=%s', $name, $value));
-                $_ENV[$name] = $value;
-                $_SERVER[$name] = $value;
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/app/controllers/admin.php b/app/controllers/admin.php
index 407a0c9e35e19adf246f439723a6430950e08c2b..9e099d05edb72d196af576bbd083cad6e0a79b5f 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
@@ -93,16 +95,21 @@ class Admin extends Controller {
                     $this->model('BookModel')->insertBook($newTitle, $newContent, $selectedAuthor, $selectedCategory, $fileAudio, $fileImage);
                     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/";
@@ -167,17 +175,22 @@ class Admin extends Controller {
                     $this->model('BookModel')->updateBook($bookid, $newTitle, $selectedAuthor, $newContent, $selectedCategory, $fileAudio, $fileImage);
                     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');
-?>