diff --git a/app/Controllers/EventController.php b/app/Controllers/EventController.php
index 43c16637401848dbcf27334d941213aaa2969058..1175a23035eeba9d1cd250eb82661b6281788b9d 100644
--- a/app/Controllers/EventController.php
+++ b/app/Controllers/EventController.php
@@ -11,16 +11,18 @@ class EventController {
         $this->eventModel = new EventModel();
     }
 
-    public function createEvent($stock, $createdTime, $details) {
-        return $this->eventModel->createEvent($stock, $createdTime, $details);
+    public function createEvent($stock, $createdTime, $details, $gambar) {
+        $eventModel = new EventModel();
+        $eventModel->createEvent($stock, $createdTime, $details, $gambar);
     }
 
     public function getEvent($eventId) {
         return $this->eventModel->getEvent($eventId);
     }
 
-    public function updateEvent($eventId, $stock, $createdTime, $details) {
-        return $this->eventModel->updateEvent($eventId, $stock, $createdTime, $details);
+    public function updateEvent($eventId, $stock, $createdTime, $details, $gambar) {
+        $eventModel = new EventModel();
+        $eventModel->updateEvent($eventId, $stock, $createdTime, $details, $gambar);
     }
 
     public function deleteEvent($eventId) {
diff --git a/app/Models/Event.php b/app/Models/Event.php
index bdabbd7b8d212c61f01a26f61b9f462422134232..405245da8f1c51bcce701a57b3c62f7e7ef38d53 100644
--- a/app/Models/Event.php
+++ b/app/Models/Event.php
@@ -1,38 +1,53 @@
 <?php
 
 require_once(__DIR__ . '/../../db/connect.php');
+require_once(__DIR__ . '/../../util.php');
 
 class EventModel {
-    public function createEvent($stock, $createdTime, $details) {
+
+    public function createEvent($stock, $createdTime, $details, $gambar) {
         echo "createEvent method called<br>"; 
         global $db;
     
-        $stmt = $db->prepare("INSERT INTO events (event_stock, event_created_time, event_details) VALUES (?, ?, ?)");
+        // Check if a file is uploaded
+        if ($gambar !== null && isset($gambar['name']) && isset($gambar['tmp_name'])) {
+            $uploadDirectory = __DIR__ . '/../../assets/';
+            $uploadedFilePath = $uploadDirectory . $gambar['name'];
+
+            // Move the uploaded file to the desired directory
+            if (move_uploaded_file($gambar['tmp_name'], $uploadedFilePath)) {
+                echo "File uploaded successfully<br>";
+            } else {
+                echo "Error moving file to destination<br>";
+                $uploadedFilePath = null; // Set to null if there's an error
+            }
+        } else {
+            echo "No file uploaded<br>";
+            $uploadedFilePath = null; // Set to null if no file is uploaded
+        }
+    
+        $stmt = $db->prepare("INSERT INTO events (event_stock, event_created_time, event_details, gambar) VALUES (?, ?, ?, ?)");
     
-        if ($stmt->execute([$stock, $createdTime, $details])) {
+        if ($stmt->execute([$stock, $createdTime, $details, $uploadedFilePath])) {
             echo "Event created successfully";
         } else {
             echo "Error creating event: " . print_r($stmt->errorInfo(), true);
         }
     }
     
-    
-    public function getEvent($eventId) {
-        global $db;
-
-        $stmt = $db->prepare("SELECT * FROM events WHERE event_id = ?");
-        $stmt->execute([$eventId]);
 
-        return $stmt->fetch(PDO::FETCH_ASSOC);
-    }
-
-    public function updateEvent($eventId, $stock, $createdTime, $details) {
+    public function updateEvent($eventId, $stock, $createdTime, $details, $gambar = null) {
         global $db;
         $db->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);
     
         echo "Updating Event with ID: $eventId, Stock: $stock, Created Time: $createdTime, Details: $details";
     
-        $sql = "UPDATE events SET event_stock = '$stock', event_created_time = '$createdTime', event_details = '$details' WHERE event_id = $eventId";
+        // Check whether a new image is provided
+        if ($gambar !== null) {
+            $sql = "UPDATE events SET event_stock = '$stock', event_created_time = '$createdTime', event_details = '$details', gambar = '$gambar' WHERE event_id = $eventId";
+        } else {
+            $sql = "UPDATE events SET event_stock = '$stock', event_created_time = '$createdTime', event_details = '$details' WHERE event_id = $eventId";
+        }
     
         $rowCount = $db->exec($sql);
     
@@ -41,10 +56,10 @@ class EventModel {
         } else {
             echo "Error updating event: " . print_r($db->errorInfo(), true);
         }
-    
         return "Event updated successfully";
     }
     
+    
     public function deleteEvent($eventId) {
         global $db;
     
@@ -71,8 +86,6 @@ class EventModel {
         }
     }
     
-    
-
     public function getAllEvents() {
         global $db;
 
diff --git a/assets/1.jpg b/assets/1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0f98933a4c89043b90b74ed8f693db9042357542
Binary files /dev/null and b/assets/1.jpg differ
diff --git a/assets/10.jpg b/assets/10.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e6188c8e11294c4aade8103916c419c5dd111104
Binary files /dev/null and b/assets/10.jpg differ
diff --git a/assets/11.png b/assets/11.png
new file mode 100644
index 0000000000000000000000000000000000000000..a95c47f09e98bbfe02ed1653d52182981dfbf644
Binary files /dev/null and b/assets/11.png differ
diff --git a/assets/12.jpg b/assets/12.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b2803f56ca06409ba9c2bba9aefbc97440f19820
Binary files /dev/null and b/assets/12.jpg differ
diff --git a/assets/13.jpg b/assets/13.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d639dc5d8231496cdb787d77a06d3ca73070b223
Binary files /dev/null and b/assets/13.jpg differ
diff --git a/assets/14.jpg b/assets/14.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..482d989ad8f883f046aa24e4ade3e1634585d7a4
Binary files /dev/null and b/assets/14.jpg differ
diff --git a/assets/15.jpg b/assets/15.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..19cdfe99bf418f53dde71fa3058d44e162a24258
Binary files /dev/null and b/assets/15.jpg differ
diff --git a/assets/16.jpg b/assets/16.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a7c5ef33edf129ee657ba44eb730091a80520b22
Binary files /dev/null and b/assets/16.jpg differ
diff --git a/assets/2.png b/assets/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..414c5c1fae9e3b3d8851dc27a2deb2585b835744
Binary files /dev/null and b/assets/2.png differ
diff --git a/assets/3.jpg b/assets/3.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a528f563d6da83b585b0d0fb5e46962177575435
Binary files /dev/null and b/assets/3.jpg differ
diff --git a/assets/4.jpg b/assets/4.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8ff354903a75c7a79b98a68e2fe3b9af25fc220e
Binary files /dev/null and b/assets/4.jpg differ
diff --git a/assets/5.jpg b/assets/5.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e83d8a29f11a14e653d985b58466257660e1a74
Binary files /dev/null and b/assets/5.jpg differ
diff --git a/assets/6.png b/assets/6.png
new file mode 100644
index 0000000000000000000000000000000000000000..d787df19dc1384689f264d855d01f1520976f7f6
Binary files /dev/null and b/assets/6.png differ
diff --git a/assets/7.jpeg b/assets/7.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..6dc6066941c849c8d2ef9491031291e8f90ef6bc
Binary files /dev/null and b/assets/7.jpeg differ
diff --git a/assets/8.png b/assets/8.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6d5d3a60ca11d7b037fe6c887416420c256a71b
Binary files /dev/null and b/assets/8.png differ
diff --git a/assets/9.jpg b/assets/9.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..03907e91630698587e8c325d3f9a3f29e3040077
Binary files /dev/null and b/assets/9.jpg differ
diff --git a/assets/ramen.jpg b/assets/ramen.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..649375db9c9a2b0e01319363ca4c0c68d68147d4
Binary files /dev/null and b/assets/ramen.jpg differ
diff --git a/db/data.php b/db/data.php
index 028cca76225141fa6d80264258fff019308fe78c..9fbefb71c2c9eefd72bfe63ef4d2f428d6e785bb 100644
--- a/db/data.php
+++ b/db/data.php
@@ -5,12 +5,12 @@
    if (isset($db)) {
       try {
          $sqlEvent = <<<EOF
-            INSERT INTO events (event_stock, event_created_time, event_details) VALUES
-            (100, '2023-09-30 10:00:00', 'Music Concert'),
-            (50, '2023-10-05 15:30:00', 'Art Exhibition'),
-            (200, '2023-11-12 18:45:00', 'Sports Tournament'),
-            (75, '2023-12-03 20:00:00', 'Comedy Show'),
-            (120, '2024-01-18 14:15:00', 'Tech Conference');
+            INSERT INTO events (event_stock, event_created_time, event_details, gambar) VALUES
+            (100, '2023-09-30 10:00:00', 'Music Concert', 'assets/1.jpg'),
+            (50, '2023-10-05 15:30:00', 'Art Exhibition', 'assets/2.jpg'),
+            (200, '2023-11-12 18:45:00', 'Sports Tournament', 'assets/3.jpg'),
+            (75, '2023-12-03 20:00:00', 'Comedy Show', 'assets/4.jpg'),
+            (120, '2024-01-18 14:15:00', 'Tech Conference', 'assets/5.jpg');
          EOF;
 
          $sqlTicket = <<<EOF
diff --git a/db/init.sql b/db/init.sql
index aad1a0de91c186f077fb68772694e81d8406f7ea..10b3a9049eece7f604553f88d2ec1dc57406c6db 100644
--- a/db/init.sql
+++ b/db/init.sql
@@ -6,7 +6,8 @@ CREATE TABLE IF NOT EXISTS events (
   event_id INT AUTO_INCREMENT PRIMARY KEY,
   event_stock INT,
   event_created_time DATETIME,
-  event_details CHAR(255)
+  event_details CHAR(255),
+  gambar VARCHAR(255)
 );
 
 CREATE TABLE IF NOT EXISTS tickets (
diff --git a/home.php b/home.php
index 2925e7853d1c7faf56323c746d58120b445c5c24..77633f7790eb40f3c32a9fb537aa294e9a643ab6 100644
--- a/home.php
+++ b/home.php
@@ -14,28 +14,63 @@ $userController = new UserController();
 
 // Check if form is submitted for event
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
-    var_dump($_POST); // Output the submitted form data for debugging purposes
+    var_dump($_POST); // Output for debugging purposes
 
     if (isset($_POST['action'])) {
         if ($_POST['action'] === 'createEvent') {
             $eventStock = $_POST['stock'];
             $eventCreatedTime = $_POST['createdTime'];
             $eventDetails = $_POST['details'];
+            $uploadedFilePath = $_POST['gambar'];
 
             // Check if the values are not empty
             if (!empty($eventStock) && !empty($eventCreatedTime) && !empty($eventDetails)) {
-                $eventController->createEvent($eventStock, $eventCreatedTime, $eventDetails);
+                var_dump($_FILES);
+                $uploadedFilePath = isset($_FILES['gambar']) ? $_FILES['gambar'] : null; // Check if 'gambar' is set in the files array
+
+                // Check for file upload
+                $uploadedFile = isset($_FILES['gambar']) ? $_FILES['gambar'] : null;
+
+                var_dump($uploadedFile); // Output for debugging purposes
+
+                if ($uploadedFile !== null && $uploadedFile['error'] === 0) {
+                    // Handle file upload 
+                    $uploadedFilePath = 'assets/' . $uploadedFile['name'];
+                    move_uploaded_file($uploadedFile['tmp_name'], $uploadedFilePath);
+                }
+
+                $eventController->createEvent($eventStock, $eventCreatedTime, $eventDetails, $uploadedFilePath);
             } else {
                 echo "Please fill in all the fields for creating an event.";
             }
         } elseif ($_POST['action'] === 'updateEvent') {
-            $eventController->updateEvent($_POST['eventIdUpdate'], $_POST['eventStock'], $_POST['eventCreatedTime'], $_POST['eventDetails']);
+            $eventIdUpdate = $_POST['eventIdUpdate'];
+            $eventStock = $_POST['eventStock'];
+            $eventCreatedTime = $_POST['eventCreatedTime'];
+            $eventDetails = $_POST['eventDetails'];
+            $uploadedFilePath = $_POST['uploadedFilePath'];
+            // Check if the values are not empty
+            if (!empty($eventIdUpdate) && !empty($eventStock) && !empty($eventCreatedTime) && !empty($eventDetails)) {
+                $uploadedFilePath = isset($_FILES['gambar']) ? $_FILES['gambar'] : null; // Check if 'gambar' is set in the files array
+
+                // Check for file upload
+                if ($uploadedFilePath !== null && $uploadedFilePath['error'] === 0) {
+                    // Handle file upload
+                    $uploadedFilePath = 'assets/' . $uploadedFilePath['name'];
+                    move_uploaded_file($uploadedFilePath['tmp_name'], $uploadedFilePath);
+                }
+
+                $eventController->updateEvent($eventIdUpdate, $eventStock, $eventCreatedTime, $eventDetails, $uploadedFile);
+            } else {
+                echo "Please fill in all the fields for updating an event.";
+            }
         } elseif ($_POST['action'] === 'deleteEvent') {
             $eventController->deleteEvent($_POST['eventIdDelete']);
         }
     }    
 }
 
+
 // check form submitted for User
 if ($_SERVER["REQUEST_METHOD"] == "POST") {
     if (isset($_POST['userAction'])) {
@@ -88,22 +123,41 @@ $users = $userController->getAllUsers();
     <!-- Event CRUD Form -->
     <h2>Events</h2>
     <form method="post" action="home.php">
-        <!-- Create Event -->
+        
+    <!-- Create Event -->
+    <form method="post" action="home.php" enctype="multipart/form-data">
         <label>Create Event:</label>
         <input type="text" name="stock" placeholder="Stock">
         <input type="datetime-local" name="createdTime">
         <input type="text" name="details" placeholder="Details">
+
+        <!-- Drag-and-drop area for image upload -->
+        <div id="drop-area-create">
+            <p>Drag and drop an image file here or click to select one.</p>
+            <input type="file" id="file-input-create" name="gambar" accept="image/*">
+        </div>
+
         <button type="submit" name="action" value="createEvent">Create</button>
+    </form>
 
 
-        <!-- Update Event -->
+    <!-- Update Event -->
+    <form method="post" action="home.php" enctype="multipart/form-data">
         <label>Update Event:</label>
         <input type="text" name="eventIdUpdate" placeholder="Event ID">
         <input type="text" name="eventStock" placeholder="Stock">
         <input type="datetime-local" name="eventCreatedTime">
         <input type="text" name="eventDetails" placeholder="Details">
-        <button type="submit" name="action" value="updateEvent">Update</button>
 
+        <!-- Drag-and-drop area for image upload -->
+        <div id="drop-area-update">
+            <p>Drag and drop an image file here or click to select one.</p>
+            <input type="file" id="file-input-update" name="gambar" accept="image/*">
+        </div>
+
+        <button type="submit" name="action" value="updateEvent">Update</button>
+    </form>
+    <form method="post" action="home.php">
         <!-- Delete Event -->
         <label>Delete Event:</label>
         <input type="text" name="eventIdDelete" placeholder="Event ID">
@@ -143,7 +197,12 @@ $users = $userController->getAllUsers();
     <h3>Event List:</h3>
     <ul>
         <?php foreach ($events as $event) : ?>
-            <li><?php echo $event['event_id'] . ': ' . $event['event_stock'] . ', ' . $event['event_created_time'] . ', ' . $event['event_details']; ?></li>
+            <li>
+                <?php
+                echo $event['event_id'] . ': ' . $event['event_stock'] . ', ' . $event['event_created_time'] . ', ' . $event['event_details'];
+                echo isset($event['gambar']) ? ', Image: <img src="' . $event['gambar'] . '" alt="Event Image">' : ''; // Display the image if available
+                ?>
+            </li>
         <?php endforeach; ?>
     </ul>
 
diff --git a/util.php b/util.php
new file mode 100644
index 0000000000000000000000000000000000000000..da3c6d57c9624c8dcc4ed19faa9297280b76715d
--- /dev/null
+++ b/util.php
@@ -0,0 +1,13 @@
+<?php
+function preprocess($str) {
+    return str_replace(' ', '%20', $str);
+}
+
+function formatPrice($price) {
+    return number_format($price,0,',','.');
+}
+
+function isEmailValid($email) {
+    return filter_var($email, FILTER_VALIDATE_EMAIL);
+}
+?>
\ No newline at end of file