diff --git a/administration/templates/daftar_kontributor.html b/administration/templates/daftar_kontributor.html
new file mode 100644
index 0000000000000000000000000000000000000000..0aae1bbcb4b319f54441f4c55a7715db9f33a306
--- /dev/null
+++ b/administration/templates/daftar_kontributor.html
@@ -0,0 +1,230 @@
+{% load static %}
+
+<!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, shrink-to-fit=no">
+  <meta name="description" content="">
+  <meta name="author" content="">
+
+  <title>Dasbor Kontributor</title>
+
+  <!-- Custom fonts for this template -->
+  <link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
+
+  <!-- Custom styles for this template -->
+  <link href="{% static 'css/sb-admin-2.min.css' %}" rel="stylesheet">
+  <link rel="stylesheet" href="{% static 'css/button.css' %}">
+
+  <!-- Custom styles for this page -->
+  <link href="{% static 'vendor/datatables/dataTables.bootstrap4.min.css' %}" rel="stylesheet">
+
+</head>
+
+<body id="page-top" style="font-family: 'Poppins', sans-serif;">
+
+  <!-- Page Wrapper -->
+  <div id="wrapper">
+
+    <!-- Sidebar -->
+    <ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
+
+      <!-- Sidebar - Brand -->
+      <a class="sidebar-brand d-flex align-items-center justify-content-center" href="{% url 'daftar_katalog' %}">
+        <div class="sidebar-brand-icon rotate-n-15">
+        </div>
+        <div class="sidebar-brand-text mx-3">Digipus</div>
+      </a>
+
+      <!-- Divider -->
+      <hr class="sidebar-divider my-0">
+
+      <!-- Nav Item - Dashboard -->
+      <li class="nav-item">
+        <a class="nav-link" href="/administration/">
+          <span>Verifikasi Materi</span></a>
+      </li>
+
+      <li class="nav-item">
+        <a class="nav-link" href="/administration/daftar-kontributor/">
+          <span>Daftar Kontributor</span></a>
+      </li>
+
+      <li class="nav-item">
+        <a class="nav-link" href="#">
+          <span>Statistik Materi</span></a>
+      </li>
+
+      <!-- Divider -->
+      <hr class="sidebar-divider">
+
+      <li class="nav-item">
+        <a class="nav-link" href="/administration/setting/verification/">
+          <span>Pengaturan Verifikasi</span></a>
+      </li>
+
+      <li class="nav-item">
+        <a class="nav-link" href="/administration/setting/category/">
+          <span>Pengaturan Kategori</span></a>
+      </li>
+
+    </ul>
+    <!-- End of Sidebar -->
+
+    <!-- Content Wrapper -->
+    <div id="content-wrapper" class="d-flex flex-column">
+
+      <!-- Main Content -->
+      <div id="content">
+
+        <!-- Topbar -->
+        <nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow">
+
+          <!-- Sidebar Toggle (Topbar) -->
+          <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
+            <i class="fa fa-bars"></i>
+          </button>
+
+          <div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div>
+
+          <!-- Topbar Navbar -->
+          <ul class="navbar-nav ml-auto">
+
+            <li class="nav-item">
+                <a class="nav-link" href="/dashboard/">
+                    <span class="mr-2 d-none d-lg-inline text-gray-600 small">Dasbor</span>
+                </a>
+            </li>
+    
+            <li class="nav-item">
+                <a class="nav-link" href="/profil/">
+                    <span class="mr-2 d-none d-lg-inline text-gray-600 small">Profil</span>
+                </a>
+            </li>
+    
+            <div class="topbar-divider d-none d-sm-block"></div>
+
+            <!-- Nav Item - User Information -->
+            <li class="nav-item dropdown no-arrow">
+              <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown"
+                aria-haspopup="true" aria-expanded="false">
+                <span class="mr-2 d-none d-lg-inline text-gray-600 small">{{ user.name }}</span>
+                <img class="img-profile rounded-circle" src="{{ user.profile_picture.url}}">
+              </a>
+            </li>
+
+          </ul>
+
+        </nav>
+        <!-- End of Topbar -->
+
+        <!-- Begin Page Content -->
+        <div class="container-fluid">
+
+          <!-- Page Heading -->
+          <h1 class="h3 mb-2 text-gray-800">Daftar Kontributor</h1>
+          <p class="mb-4">Tekan tombol detail untuk informasi lebih lanjut tentang kontributor</p>
+
+          <!-- DataTales Example -->
+          <div class="card shadow mb-4">
+            <div class="card-header py-3">
+              <h6 class="m-0 font-weight-bold text-primary">Tabel Daftar Kontributor</h6>
+            </div>
+            <div class="card-body">
+              <div class="table-responsive">
+                <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
+                  <thead>
+                    <tr>
+                      <th>Nama</th>
+                      <th>NIK</th>
+                      <th>Instansi</th>
+                      <th>Detail</th>
+                    </tr>
+                  </thead>
+                  <tfoot>
+                    <tr>
+                      <th>Nama</th>
+                      <th>NIK</th>
+                      <th>Instansi</th>
+                      <th>Detail</th>
+                    </tr>
+                    </tr>
+                  </tfoot>
+                  <tbody>
+                    {% for user in users %}
+                    <tr>
+                      <td>{{ user.name }}</td>
+                      <td>{{ user.nik }}</td>
+                      <td>{{ user.instansi }}</td>
+                      <td class="verif-buttons">
+                        <a href="/administration/profil/{{ user.id }}/" class="accept-button"
+                          style="background-color:#4e73df">Detail
+                        </a>
+                      </td>
+                    </tr>
+                    {% endfor %}
+                  </tbody>
+                </table>
+              </div>
+            </div>
+          </div>
+
+        </div>
+        <!-- /.container-fluid -->
+
+      </div>
+      <!-- End of Main Content -->
+
+      <!-- Footer -->
+      <footer class="sticky-footer bg-white">
+        <div class="container my-auto">
+          <div class="copyright text-center my-auto">
+            <span>Copyright &copy; Diskominfo Kota Depok 2020</span>
+          </div>
+        </div>
+      </footer>
+      <!-- End of Footer -->
+
+    </div>
+    <!-- End of Content Wrapper -->
+
+  </div>
+  <!-- End of Page Wrapper -->
+
+  <!-- Scroll to Top Button-->
+  <a class="scroll-to-top rounded" href="#page-top">
+    <i class="fas fa-angle-up"></i>
+  </a>
+
+  <!-- Bootstrap core JavaScript-->
+  <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
+    integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
+    crossorigin="anonymous"></script>
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
+    integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
+    crossorigin="anonymous"></script>
+  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
+    integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
+    crossorigin="anonymous"></script>
+
+  <!-- Core plugin JavaScript-->
+  <script src="https://code.jquery.com/jquery-3.5.0.min.js"
+    integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ=" crossorigin="anonymous"></script>
+
+  <!-- Custom scripts for all pages-->
+  <script src="{% static 'js/sb-admin-2.min.js' %}"></script>
+
+  <!-- Page level plugins -->
+  <script src="{% static 'vendor/datatables/jquery.dataTables.min.js' %}"></script>
+  <script src="{% static 'vendor/datatables/dataTables.bootstrap4.min.js' %}"></script>
+
+  <!-- Page level custom scripts -->
+  <script src="{% static 'js/demo/datatables-demo.js' %}"></script>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/administration/templates/detail_kontri_admin.html b/administration/templates/detail_kontri_admin.html
new file mode 100644
index 0000000000000000000000000000000000000000..d75e5e1792e55b59436f74c75bf12697d6b64eeb
--- /dev/null
+++ b/administration/templates/detail_kontri_admin.html
@@ -0,0 +1,206 @@
+{% load static %}
+
+<!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, shrink-to-fit=no">
+  <meta name="description" content="">
+  <meta name="author" content="">
+
+  <title>Profil Kontributor</title>
+
+  <!-- Custom fonts for this template -->
+  <link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
+
+  <!-- Custom styles for this template -->
+  <link href="{% static 'css/sb-admin-2.min.css' %}" rel="stylesheet">
+  <link rel="stylesheet" href="{% static 'css/button.css' %}">
+
+  <!-- Custom styles for this page -->
+  <link href="{% static 'vendor/datatables/dataTables.bootstrap4.min.css' %}" rel="stylesheet">
+
+</head>
+
+<body id="page-top" style="font-family: 'Poppins', sans-serif;">
+
+  <!-- Page Wrapper -->
+  <div id="wrapper">
+
+    <!-- Sidebar -->
+    <ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
+
+      <!-- Sidebar - Brand -->
+      <a class="sidebar-brand d-flex align-items-center justify-content-center" href="{% url 'daftar_katalog' %}">
+        <div class="sidebar-brand-icon rotate-n-15">
+        </div>
+        <div class="sidebar-brand-text mx-3">Digipus</div>
+      </a>
+
+      <!-- Divider -->
+      <hr class="sidebar-divider my-0">
+
+      <!-- Nav Item - Dashboard -->
+      <li class="nav-item">
+        <a class="nav-link" href="/administration/">
+          <span>Verifikasi Materi</span></a>
+      </li>
+
+      <li class="nav-item">
+        <a class="nav-link" href="/administration/daftar-kontributor/">
+          <span>Daftar Kontributor</span></a>
+      </li>
+
+      <li class="nav-item">
+        <a class="nav-link" href="#">
+          <span>Statistik Materi</span></a>
+      </li>
+
+      <!-- Divider -->
+      <hr class="sidebar-divider">
+
+      <li class="nav-item">
+        <a class="nav-link" href="/administration/setting/verification/">
+          <span>Pengaturan Verifikasi</span></a>
+      </li>
+
+      <li class="nav-item">
+        <a class="nav-link" href="/administration/setting/category/">
+          <span>Pengaturan Kategori</span></a>
+      </li>
+
+    </ul>
+    <!-- End of Sidebar -->
+
+    <!-- Content Wrapper -->
+    <div id="content-wrapper" class="d-flex flex-column">
+
+      <!-- Main Content -->
+      <div id="content">
+
+        <!-- Topbar -->
+        <nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow">
+
+          <!-- Sidebar Toggle (Topbar) -->
+          <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
+            <i class="fa fa-bars"></i>
+          </button>
+
+          <div class="sidebar-brand-text mx-3">Diskominfo Kota Depok</div>
+
+          <!-- Topbar Navbar -->
+          <ul class="navbar-nav ml-auto">
+
+            <div class="topbar-divider d-none d-sm-block"></div>
+
+            <!-- Nav Item - User Information -->
+            <li class="nav-item dropdown no-arrow">
+              <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown"
+                aria-haspopup="true" aria-expanded="false">
+                <span class="mr-2 d-none d-lg-inline text-gray-600 small">{{ user.name }}</span>
+                <img class="img-profile rounded-circle" src="{{ user.profile_picture.url }}">
+              </a>
+            </li>
+
+          </ul>
+
+        </nav>
+        <!-- End of Topbar -->
+
+        <!-- Begin Page Content -->
+        <div class="container-fluid">
+            <div class="profile-content white-text">
+                <div>
+                    <img src="{{ user.profile_picture.url }}" alt="Photo" class="img-thumbnail"></img>
+                    <div class="profile-margin"></div>
+                    <h2>{{ user.name }}</h2>
+                    <h4>{{ user.email }}</h4>
+                    <h4>{{ user.biography }}</h4>
+                    <div class="profile-margin"></div>
+                    <table>
+                        <tr>
+                            <td class="profile-data">Instansi</td>
+                            <td>{{ user.instansi }}</td>
+                        </tr>
+                       
+                            <td class="profile-data">LinkedIn</td>
+                            <td><a href="https://linkedin.com">{{ user.linkedin }}</a></td>
+                        </tr>
+                        
+                        <tr>
+                            <td class="profile-data">Facebook</td>
+                            <td><a href="https://facebook.com">{{ user.facebook }}</a></td>
+                        </tr>
+                       
+                        <tr>
+                            <td class="profile-data">Twitter</td>
+                            <td><a href="https://twitter.com">{{ user.twitter }}</a></td>
+                        </tr>
+    
+                        <tr>
+                            <td class="profile-data">Instagram</td>
+                            <td><a href="https://instagram.com">{{ user.instagram }}</a></td>
+                        </tr>
+                    </table>
+                    <a class="btn btn-primary btn-admin" href="/administration/daftar-kontributor/">Kembali ke Daftar Kontributor</a>
+                </div>
+            </div>
+            
+        </div>
+        <!-- /.container-fluid -->
+      
+      </div>
+      <!-- End of Main Content -->
+
+      <!-- Footer -->
+      <footer class="sticky-footer bg-white">
+        <div class="container my-auto">
+          <div class="copyright text-center my-auto">
+            <span>Copyright &copy; Diskominfo Kota Depok 2020</span>
+          </div>
+        </div>
+      </footer>
+      <!-- End of Footer -->
+
+    </div>
+    <!-- End of Content Wrapper -->
+
+  </div>
+  <!-- End of Page Wrapper -->
+
+  <!-- Scroll to Top Button-->
+  <a class="scroll-to-top rounded" href="#page-top">
+    <i class="fas fa-angle-up"></i>
+  </a>
+
+  <!-- Bootstrap core JavaScript-->
+  <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
+    integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
+    crossorigin="anonymous"></script>
+  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
+    integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
+    crossorigin="anonymous"></script>
+  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
+    integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
+    crossorigin="anonymous"></script>
+
+  <!-- Core plugin JavaScript-->
+  <script src="https://code.jquery.com/jquery-3.5.0.min.js"
+    integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ=" crossorigin="anonymous"></script>
+
+  <!-- Custom scripts for all pages-->
+  <script src="{% static 'js/sb-admin-2.min.js' %}"></script>
+
+  <!-- Page level plugins -->
+  <script src="{% static 'vendor/datatables/jquery.dataTables.min.js' %}"></script>
+  <script src="{% static 'vendor/datatables/dataTables.bootstrap4.min.js' %}"></script>
+
+  <!-- Page level custom scripts -->
+  <script src="{% static 'js/demo/datatables-demo.js' %}"></script>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/administration/templates/verif.html b/administration/templates/verif.html
index 3168195c19a56ee829926b973fed4c7516fa10aa..27b0c2bcd8eef84614657e5877f89d69c8b25b68 100644
--- a/administration/templates/verif.html
+++ b/administration/templates/verif.html
@@ -50,7 +50,7 @@
       </li>
 
       <li class="nav-item">
-        <a class="nav-link" href="index.html">
+        <a class="nav-link" href="/administration/daftar-kontributor/">
           <span>Daftar Kontributor</span></a>
       </li>
 
@@ -124,7 +124,7 @@
               <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown"
                 aria-haspopup="true" aria-expanded="false">
                 <span class="mr-2 d-none d-lg-inline text-gray-600 small">Admin</span>
-                <img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60" alt="User profile picture">
+                <img class="img-profile rounded-circle" src="{{ user.profile_picture.url }}" alt="User profile picture">
               </a>
             </li>
 
diff --git a/administration/tests.py b/administration/tests.py
index c0db824f2d99ebb9d86eca961bb143a4b6521e54..ca934429445f0c26dd7f674c3475427a597e2a98 100644
--- a/administration/tests.py
+++ b/administration/tests.py
@@ -173,7 +173,6 @@ class DetailVerifikasiMateriTest(TestCase):
         response = self.client.get(self.url_materi_1)
         self.assertEqual(response.status_code, 403)
 
-
     def test_verification_detail_approve(self):
         # Login
         self.client.login(**self.admin_credential)
@@ -210,7 +209,6 @@ class DetailVerifikasiMateriTest(TestCase):
         # Logout
         self.client.logout()
 
-
     def test_verification_detail_disapprove(self):
         # Login
         self.client.login(**self.admin_credential)
@@ -501,3 +499,112 @@ class SettingCategoriTest(TestCase):
         self.assertNotIn('Deskripsi Kategori 1', el)
         # Logout
         self.client.logout()
+
+class ContributorListTest(TestCase  ):
+    def setUp(self):
+        self.client = Client()
+        self.url = '/administration/daftar-kontributor/'
+        self.admin_credential = {
+            "email": "admin@gov.id",
+            "password": id_generator()
+        }
+        self.contributor_credential = {
+            "email": "kontributor@gov.id",
+            "password": id_generator()
+        }
+        self.admin = get_user_model().objects.create_user(
+            **self.admin_credential, name="Admin", is_admin=True)
+        self.contributor = get_user_model().objects.create_user(
+            **self.contributor_credential, name="Kontributor", is_contributor=True
+        )
+        self.cover = SimpleUploadedFile(
+            "cover.jpg",
+            b"Test file"
+        )
+        self.content = SimpleUploadedFile(
+            "content.txt",
+            b"Test file"
+        )
+        Materi(title="Materi 1", author="Agas", uploader=self.contributor,
+               publisher="Kelas SC", descriptions="Deskripsi Materi 1",
+               status="PENDING", cover=self.cover, content=self.content, feedback="").save()
+        self.materi1 = Materi.objects.first()
+
+    def test_contributor_list_access(self):
+        # Login
+        self.client.login(**self.admin_credential)
+        # Test
+        response = self.client.get(self.url)
+        self.assertEqual(response.status_code, 200)
+        # Logout
+        self.client.logout()
+
+    def test_contributor_list_contributor_access(self):
+        # Login
+        self.client.login(**self.contributor_credential)
+        # Test
+        response = self.client.get(self.url)
+        self.assertEqual(response.status_code, 403)
+        # Logout
+        self.client.logout()
+
+    def test_contributor_list_anonymous_access(self):
+        # Test
+        response = self.client.get(self.url)
+        self.assertEqual(response.status_code, 403)
+
+    def test_contributor_list_using_correct_template(self):
+        # Login
+        self.client.login(**self.admin_credential)
+        found = resolve(self.url)
+        self.assertEqual(found.func.__name__, views.ContributorListView.__name__)
+
+    def test_contributor_list_title(self):
+        # Login
+        self.client.login(**self.admin_credential)
+        response = self.client.get(self.url)
+
+        self.assertContains(response, 'Dasbor Kontributor')
+
+        self.assertNotContains(response, 'Fake Title')
+    
+class ProfileContributorAdminTest(TestCase):
+    def setUp(self):
+        self.client = Client()
+        self.url = '/administration/profil/1/'
+        self.admin_credential = {
+            "email": "admin@gov.id",
+            "password": id_generator()
+        }
+        self.contributor_credential = {
+            "email": "kontributor@gov.id",
+            "password": id_generator()
+        }
+        self.admin = get_user_model().objects.create_user(
+            **self.admin_credential, name="Admin", is_admin=True)
+        self.contributor = get_user_model().objects.create_user(
+            **self.contributor_credential, name="Kontributor", is_contributor=True
+        )
+        self.cover = SimpleUploadedFile(
+            "cover.jpg",
+            b"Test file"
+        )
+        self.content = SimpleUploadedFile(
+            "content.txt",
+            b"Test file"
+        )
+        Materi(title="Materi 1", author="Agas", uploader=self.contributor,
+               publisher="Kelas SC", descriptions="Deskripsi Materi 1",
+               status="PENDING", cover=self.cover, content=self.content, feedback="").save()
+        self.materi1 = Materi.objects.first()
+
+    def test_profile_contributor_admin_anonymous_access(self):
+        # Test
+        response = self.client.get(self.url)
+        self.assertEqual(response.status_code, 403)
+
+    def test_profile_contributor_admin_using_correct_template(self):
+        # Login
+        self.client.login(**self.admin_credential)
+        found = resolve(self.url)
+        self.assertEqual(found.func.__name__, views.ProfileContributorAdminView.__name__)
\ No newline at end of file
diff --git a/administration/urls.py b/administration/urls.py
index 448e912263bc91f445a9968a112a7fe5ffd38bf8..aca44aa93941c89a41d6ac3d5b89275550172713 100644
--- a/administration/urls.py
+++ b/administration/urls.py
@@ -9,4 +9,6 @@ urlpatterns = [
     path("detail-verif/<int:pk>/", views.DetailVerificationView.as_view()),
     path("setting/verification/", views.VerificationSettingView.as_view()),
     path("setting/category/", views.CategorySettingView.as_view()),
+    path("daftar-kontributor/", views.ContributorListView.as_view()),
+    path("profil/<int:pk>/", views.ProfileContributorAdminView.as_view()),
 ]
diff --git a/administration/views.py b/administration/views.py
index 6a11b59bcb40beed5b5ece1e69601c345d19a4ac..4f580376f4f8f291eaf88af753717d20fdf39930 100644
--- a/administration/views.py
+++ b/administration/views.py
@@ -4,6 +4,7 @@ from django.shortcuts import get_object_or_404, render
 from django.views.generic import TemplateView
 
 from app.models import Category, Materi
+from authentication.models import User
 
 from .forms import CategoryForm, VerificationSettingForm
 from .models import VerificationSetting, VerificationReport
@@ -154,3 +155,38 @@ class CategorySettingView(TemplateView):
             context = self.get_context_data(**kwargs)
             context["form"] = form
             return self.render_to_response(context)
+
+class ContributorListView(TemplateView):
+    template_name = "daftar_kontributor.html"
+
+    def dispatch(self, request, *args, **kwargs):
+        if not request.user.is_authenticated or not request.user.is_admin:
+            raise PermissionDenied(request)
+
+        return super(ContributorListView, self).dispatch(request, *args, **kwargs)
+
+    def get_context_data(self, **kwargs):
+        context = super(ContributorListView, self).get_context_data(**kwargs)
+        context["users"] = User.objects.filter(is_contributor=True)
+        return context
+
+    def get(self, request, *args, **kwargs):
+        context = self.get_context_data(**kwargs)
+        return self.render_to_response(context)
+
+class ProfileContributorAdminView(TemplateView):
+    template_name = "detail_kontri_admin.html"
+
+    def dispatch(self, request, *args, **kwargs):
+        if not request.user.is_authenticated or not request.user.is_admin:
+            raise PermissionDenied(request)
+
+        return super(ProfileContributorAdminView, self).dispatch(request, *args, **kwargs)
+
+    def get_context_data(self, **kwargs):
+        return super().get_context_data(**kwargs)
+
+    def get(self, request, *args, **kwargs):
+        context = self.get_context_data(**kwargs)
+        context["user"] = get_object_or_404(User, pk=kwargs["pk"])
+        return self.render_to_response(context=context)
\ No newline at end of file
diff --git a/app/migrations/0021_auto_20200507_1936.py b/app/migrations/0021_auto_20200507_1936.py
new file mode 100644
index 0000000000000000000000000000000000000000..107e6ba1c409fd72f36146c6a8c3a10d2285b5b6
--- /dev/null
+++ b/app/migrations/0021_auto_20200507_1936.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.0.3 on 2020-05-07 12:36
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('app', '0020_auto_20200506_2309'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='materi',
+            name='pages',
+            field=models.IntegerField(default=0),
+        ),
+        migrations.AlterField(
+            model_name='comment',
+            name='profile',
+            field=models.CharField(default='93572f', max_length=100),
+        ),
+    ]
diff --git a/app/models.py b/app/models.py
index 5d59162f7b3b21c28168bfb89934cdf628d52872..4171ba423dab8083072baeb48fa3067c44e9133a 100644
--- a/app/models.py
+++ b/app/models.py
@@ -31,6 +31,7 @@ class Materi(models.Model):
     # ubah jadi one to one ke kontributor
     uploader = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
     publisher = models.CharField(max_length=30, default="publiser")
+    pages = models.IntegerField(default=0)
     descriptions = models.TextField(default="descriptions")
     status = models.CharField(
         max_length=30, choices=VERIFICATION_STATUS, default=VERIFICATION_STATUS[0][0])
diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html
index 2e99f5e020ece2883d1d0c0b70233e61b2f12339..30f64a18e698195d2056474e5fe97db3e866d968 100644
--- a/app/templates/dashboard.html
+++ b/app/templates/dashboard.html
@@ -147,7 +147,7 @@
                       <td>{{materi.author}}</td>
                       <td>{{materi.status}}</td>
                       <td class="verif-buttons">
-                        <a href="/dashboard/detail-materi/{{materi.id}}/" class="accept-button"
+                        <a href="/materi/{{materi.id}}/" class="accept-button"
                           style="background-color:#4e73df">Detail
                         </a>
                       </td>
diff --git a/app/templates/detail_materi_kontributor.html b/app/templates/detail_materi_kontributor.html
deleted file mode 100644
index 3944a9e1d985a8978972e53190e5920df8a36399..0000000000000000000000000000000000000000
--- a/app/templates/detail_materi_kontributor.html
+++ /dev/null
@@ -1,110 +0,0 @@
-{% extends 'base.html' %}
-{% load static %}
-
-{% block header %}
-<link rel="stylesheet" type="text/css" href="{% static 'app/css/detail_materi.css' %}">
-<link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;1,100&display=swap" rel="stylesheet">
-{% endblock header %}
-
-{% block title %}
-Materi
-{% endblock title %}
-
-{% block content %}
-    {% block verification %} {% endblock verification %}
-    <div class="container">
-        <div class="row materi-data">
-            <div class="col col-3 cover">
-                <img src={{materi_data.cover.url}} alt="cover">
-            </div>
-            <div class="col col-6 ml-3 book">
-                <h2>{{materi_data.title}}</h2>
-                <div class="category-wrapper">
-                    {% for category in materi_data.categories.all %}
-                        <span class="mr-1">#{{category.name}}</span>
-                    {% endfor %}
-                </div>
-                <div class="info-wrapper">
-                    <div class="info" id="1">
-                        <dt class="col col-4">
-                            <p class="info-name">Penulis</p>
-                        </dt>
-                        <dd>
-                            <p class="info-content">{{materi_data.author}}</p>
-                        </dd>
-                    </div>
-                    <div class="info" id="1">
-                        <dt class="col col-4">
-                            <p class="info-name">Penerbit</p>
-                        </dt>
-                        <dd>
-                            <p class="info-content">{{materi_data.publisher}}</p>
-                        </dd>
-                    </div>
-                    <div class="info" id="1">
-                        <dt class="col col-4">
-                            <p class="info-name">Jumlah Halaman</p>
-                        </dt>
-                        <dd>
-                            <p class="info-content">{{materi_data.author}}</p>
-                        </dd>
-                    </div>
-                    <div class="info" id="1">
-                        <dt class="col col-4">
-                            <p class="info-name">Ukuran File</p>
-                        </dt>
-                        <dd>
-                            <p class="info-content">{{materi_data.content.size|filesizeformat}}</p>
-                        </dd>
-                    </div>
-                </div>
-                <a href="{% url 'view-materi' materi_data.id %}" class="btn btn-link btn-book shadow-sm p-2 mb-1 bg-white rounded">Baca</a>
-                <a href="{% url 'download-materi' materi_data.id %}" class="btn btn-link btn-book shadow-sm p-2 mb-1 bg-white rounded">Unduh</a>
-                <button class="btn btn-link btn-book shadow-sm p-2 mb-1 bg-white rounded">Bagikan</button>
-            </div>
-        </div>
-        <div class="row menu-wrapper">
-                <nav class="navbar navbar-expand-sm">  
-                    <ul class="navbar-nav">
-                        <li class="nav-item">
-                            <a class="nav-link" href="#section1">Deskripsi</a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link" href="#section2">Komentar</a>
-                        </li>
-                    </ul>
-                </nav>
-                <div id="section1" class="container-fluid description-wrapper">
-                    <h1>Deskripsi</h1>
-                    <div class="col col-8 description">
-                        <p>{{materi_data.descriptions}}</p>
-                    </div>
-                </div>
-                <div id="section2" class="container-fluid comments-wrapper">
-                    <h1>Komentar</h1>
-                    <div class="add-comments col col-8 ">
-                        <form>
-                            <div class="form-group">
-                                <textarea placeholder="komentar..." 
-                                            class="form-control mb-2" 
-                                            id="exampleFormControlTextarea1" 
-                                            rows="3">
-                                </textarea>
-                                <button type="submit" class="btn btn-book shadow-sm p-2 mb-1 bg-white rounded">Confirm identity</button>
-                            </div>
-                        </form>
-                        
-                    </div>
-                    {% for comment in materi_data.comments.all %}
-                        <div class="col col-8 comment shadow-sm p-3 mb-1 bg-white rounded">
-                            <div class="user">
-                                <span class="profile"></span>
-                                <p><b>{{comment.user}}</b></p>
-                            </div>
-                            <p class="text">{{comment.comment}}</p>
-                        </div>
-                    {% endfor %}
-                </div>
-        </div>
-    </div>
-{% endblock content %}
diff --git a/app/templates/sunting.html b/app/templates/sunting.html
index e0e6b93a774c44aa42e741c15797326f19189ecb..d8db0deea87268f848c1b486f9efdb306ff73cec 100644
--- a/app/templates/sunting.html
+++ b/app/templates/sunting.html
@@ -127,7 +127,7 @@
                                 <div class="form-margin"></div>
                                 <div class="col-md-6">
                                     <div class="fieldWrapper">
-                                        <button type="submit" class="btn btn-success" style="background-color: #615CFD; border-color: #615CFD;">Simpan</button>
+                                        <button type="submit" class="btn btn-success btn-edit" style="background-color: #615CFD; border-color: #615CFD;">Simpan</button>
                                     </div>
                                 </div>
                             </form>
diff --git a/app/tests.py b/app/tests.py
index cba29645f410db8701af8aecaf6c3f30f0975cd7..3686e80d1cff933cad1dc937337a4ffeb20bd618 100644
--- a/app/tests.py
+++ b/app/tests.py
@@ -8,7 +8,7 @@ from django.urls import resolve
 from authentication.models import User
 from django.contrib.auth import get_user_model
 from django.core.files import File
-from .views import DaftarKatalog, DetailMateri, DashboardKontributorView, ProfilKontributorView, SuntingProfilView, DetailMateriKontributorView
+from .views import DaftarKatalog, DetailMateri, DashboardKontributorView, ProfilKontributorView, SuntingProfilView
 from .models import Materi, Category, Comment
 from app.views import UploadMateriHTML, UploadMateriView
 
@@ -393,27 +393,4 @@ class SuntingProfilTest(TestCase):
         response = self.client.get(self.url)
         self.assertEqual(response.status_code, 200)
         # Logout
-        self.client.logout()
-        
-class DetailMateriKontributorTest(TestCase):
-    def test_detail_materi_using_detail_materi_func(self):
-        found = resolve("/dashboard/detail-materi/3/")
-        self.assertEqual(found.func.__name__, DetailMateriKontributorView.as_view().__name__)
-
-    def test_category_models_can_create_new_object(self):
-        test = Category.objects.create(
-            id="1", name="medis", description="kategori medis")
-        countData = Category.objects.all().count()
-        self.assertEqual(1, countData)
-        self.assertNotEqual(0, countData)
-        self.assertEqual(test.__str__(), "medis")
-        self.assertNotEqual(test.__str__(), "saul")
-
-    def test_comment_models_can_create_new_object(self):
-        test = Comment.objects.create(
-            user="saul", profile="121212", comment="232323")
-        countData = Comment.objects.all().count()
-        self.assertEqual(1, countData)
-        self.assertNotEqual(0, countData)
-        self.assertEqual(test.__str__(), "saul")
-        self.assertNotEqual(test.__str__(), "userlain")
+        self.client.logout()
\ No newline at end of file
diff --git a/app/urls.py b/app/urls.py
index 73751c3be3c535feff8bc28c32885fa7a2965c02..6a239cfae8e907543c0a84d80ef31b47362c3934 100644
--- a/app/urls.py
+++ b/app/urls.py
@@ -1,7 +1,7 @@
 from django.urls import path, re_path
 
 from app import views
-from app.views import UploadMateriHTML, DashboardKontributorView, UploadMateriView, ProfilKontributorView, SuntingProfilView, DetailMateriKontributorView
+from app.views import UploadMateriHTML, DashboardKontributorView, UploadMateriView, ProfilKontributorView, SuntingProfilView
 
 urlpatterns = [
     path("", views.DaftarKatalog.as_view(), name="daftar_katalog"),
@@ -10,7 +10,6 @@ urlpatterns = [
     path("materi/<int:pk>/unduh", views.download_materi, name="download-materi"),
     path("materi/<int:pk>/view", views.view_materi, name="view-materi"),
     path("dashboard/", DashboardKontributorView.as_view(), name="dashboard"),
-    path("dashboard/detail-materi/<int:pk>/", views.DetailMateriKontributorView.as_view()),
     path("unggah/", UploadMateriView.as_view(), name="unggah"),
     path("profil/", ProfilKontributorView.as_view(), name="profil"),
     path("sunting/", SuntingProfilView.as_view(), name="sunting"),
diff --git a/app/views.py b/app/views.py
index f4dedec679ed6ec364687078a9408359ec705151..0d7b3e75ae811e702cae2c551bcd6179aff45e9d 100644
--- a/app/views.py
+++ b/app/views.py
@@ -196,22 +196,6 @@ class DashboardKontributorView(TemplateView):
         context["materi_list"] = materi_list
         return self.render_to_response(context)
 
-class DetailMateriKontributorView(TemplateView):
-    template_name = "detail_materi_kontributor.html"
-
-    def dispatch(self, request, *args, **kwargs):
-        if not request.user.is_contributor:
-            raise PermissionDenied(request)
-        return super(DetailMateriKontributorView, self).dispatch(request, *args, **kwargs)    
-
-    def get_context_data(self, **kwargs):
-        return super().get_context_data(**kwargs)
-
-    def get(self, request, *args, **kwargs):
-        context = self.get_context_data(**kwargs)
-        context["materi_data"] = get_object_or_404(Materi, pk=kwargs["pk"])
-        return self.render_to_response(context)
-
 class ProfilKontributorView(TemplateView):
     template_name = "profil.html"
 
@@ -248,23 +232,17 @@ class SuntingProfilView(TemplateView):
         current_user = self.request.user
         context["user"] = current_user
 
-        context["form"] = SuntingProfilForm()
+        context["form"] = SuntingProfilForm(instance=current_user)
         return self.render_to_response(context)
 
     def post(self, request, *args, **kwargs):
         if request.user.is_authenticated == False:
             raise PermissionDenied(request)
 
-        form = SuntingProfilForm(request.POST, request.FILES)
+        current_user = self.request.user
+        form = SuntingProfilForm(request.POST, request.FILES, instance=current_user)
         if form.is_valid():
-            current_user = request.user
-            current_user.profile_picture = request.FILES["profile_picture"]
-            current_user.linkedin = request.POST["linkedin"]
-            current_user.facebook = request.POST["facebook"]
-            current_user.twitter = request.POST["twitter"]
-            current_user.instagram = request.POST["instagram"]
-            current_user.biography = request.POST["biography"]
-            current_user.save()
+            form.save()
             return HttpResponseRedirect("/profil/")
         else:
             context = self.get_context_data(**kwargs)
diff --git a/staticfiles/css/button.css b/staticfiles/css/button.css
index daef6c66c5c78c327379464cc1bec9d5bb6e344f..f5159238c7d272ef490c579f40b1881e217985f9 100755
--- a/staticfiles/css/button.css
+++ b/staticfiles/css/button.css
@@ -9,6 +9,7 @@
     box-shadow: 2px;
     color: white;
     margin-right: 5px;
+    padding: 0 5px;
 }
 
 .reject-button {
@@ -67,10 +68,18 @@
 }
 
 .form-margin {
-    margin: 20px;
+    margin-top: 20px;
 }
 
 .profile-data {
     font-size: 25px;
     padding-right: 50px;
+}
+
+.btn-edit {
+    margin-bottom: 15px;
+}
+
+.btn-admin {
+    margin-top: 20px;
 }
\ No newline at end of file