diff --git a/src/components/modals.html b/src/components/modals.html
new file mode 100644
index 0000000000000000000000000000000000000000..00230d9eee488408fd9cee4270126505070bdf05
--- /dev/null
+++ b/src/components/modals.html
@@ -0,0 +1,87 @@
+<button
+  type="button"
+  class="btn btn-primary"
+  data-bs-toggle="modal"
+  data-bs-target="#exampleModal"
+  data-bs-whatever="@mdo"
+>
+  Open modal for @mdo
+</button>
+<button
+  type="button"
+  class="btn btn-primary"
+  data-bs-toggle="modal"
+  data-bs-target="#exampleModal"
+  data-bs-whatever="@fat"
+>
+  Open modal for @fat
+</button>
+<button
+  type="button"
+  class="btn btn-primary"
+  data-bs-toggle="modal"
+  data-bs-target="#exampleModal"
+  data-bs-whatever="@getbootstrap"
+>
+  Open modal for @getbootstrap
+</button>
+
+<div
+  class="modal fade"
+  id="exampleModal"
+  tabindex="-1"
+  aria-labelledby="exampleModalLabel"
+  aria-hidden="true"
+>
+  <div class="modal-dialog">
+    <div class="modal-content">
+      <div class="modal-header">
+        <h5 class="modal-title" id="exampleModalLabel">New message</h5>
+        <button
+          type="button"
+          class="btn-close"
+          data-bs-dismiss="modal"
+          aria-label="Close"
+        ></button>
+      </div>
+      <div class="modal-body">
+        <form>
+          <div class="mb-3">
+            <label for="recipient-name" class="col-form-label"
+              >Recipient:</label
+            >
+            <input type="text" class="form-control" id="recipient-name" />
+          </div>
+          <div class="mb-3">
+            <label for="message-text" class="col-form-label">Message:</label>
+            <textarea class="form-control" id="message-text"></textarea>
+          </div>
+        </form>
+      </div>
+      <div class="modal-footer">
+        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
+          Close
+        </button>
+        <button type="button" class="btn btn-primary">Send message</button>
+      </div>
+    </div>
+  </div>
+</div>
+<script>
+  var exampleModal = document.getElementById("exampleModal");
+  exampleModal.addEventListener("show.bs.modal", function (event) {
+    // Button that triggered the modal
+    var button = event.relatedTarget;
+    // Extract info from data-bs-* attributes
+    var recipient = button.getAttribute("data-bs-whatever");
+    // If necessary, you could initiate an AJAX request here
+    // and then do the updating in a callback.
+    //
+    // Update the modal's content.
+    var modalTitle = exampleModal.querySelector(".modal-title");
+    var modalBodyInput = exampleModal.querySelector(".modal-body input");
+
+    modalTitle.textContent = "New message to " + recipient;
+    modalBodyInput.value = recipient;
+  });
+</script>
diff --git a/src/views/DepartemenIndex.vue b/src/views/DepartemenIndex.vue
index 9b46d8fdb539d06f21ada4c3840e6876b72d1523..badfde9d63d6d9b4c9fb3e8ecaa8685fba196b51 100644
--- a/src/views/DepartemenIndex.vue
+++ b/src/views/DepartemenIndex.vue
@@ -10,14 +10,20 @@
               <h1 class="text-blue">Daftar Departemen</h1>
             </div>
             <div class="col">
-              <button class="btn float-end">Tambah Departemen</button>
+              <button
+                class="btn float-end"
+                data-bs-toggle="modal"
+                data-bs-target="#exampleModal"
+              >
+                Tambah Departemen
+              </button>
             </div>
           </div>
           <div class="row p-2">
             <div class="search float-end col-3">
               <div class="row">
                 <div class="col-10">
-                    <input
+                  <input
                     class="search-input p-1"
                     v-model="filter"
                     type="text"
@@ -47,6 +53,48 @@
       </div>
     </div>
   </div>
+  <!-- Modal -->
+  <div
+    class="modal fade vertical-center"
+    id="exampleModal"
+    tabindex="-1"
+    aria-labelledby="exampleModalLabel"
+    aria-hidden="true"
+  >
+    <div class="modal-dialog modal-dialog-centered">
+      <div class="modal-content m-2">
+        <div class="modal-header me-3 p-2">
+          <h5 class="modal-title m-1" id="exampleModalLabel">
+            Tambah Departemen
+          </h5>
+          <button
+            type="button"
+            class="btn-close"
+            data-bs-dismiss="modal"
+            aria-label="Close"
+          ></button>
+        </div>
+        <div class="modal-body p-2 m-2">
+          <form>
+            <div class="pb-3">
+              <label for="recipient-name" class="col-form-label"
+                >Nama Departemen</label
+              >
+              <input
+                type="text"
+                class="form-control text-muted"
+                id="recipient-name"
+                placeholder="Isi nama departemen"
+              />
+            </div>
+          </form>
+        </div>
+        <div class="modal-footer p-2">
+          <button type="button" class="btn btn-primary mx-auto">Tambah</button>
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
@@ -137,4 +185,14 @@ export default {
 .search-input:focus {
   outline: none;
 }
+.modal {
+  width: 600px;
+  max-width: 100%;
+  position: absolute;
+  float: left;
+  left: 50%;
+  top: 50%;
+  transform: translate(-50%, -50%);
+  margin: auto;
+}
 </style>