diff --git a/app/templates/app/detail_materi.html b/app/templates/app/detail_materi.html
index e15f5f9fa4cda0a0c915adec2200c784710696fb..ea90e05ae662f5ced33ca0683aa5c7d9843c1359 100644
--- a/app/templates/app/detail_materi.html
+++ b/app/templates/app/detail_materi.html
@@ -260,6 +260,7 @@
         </div>
         {% if materi_data.status == "APPROVE" %}
         <div id="komentar" class="container-fluid comments-wrapper p-0">
+            {% if is_authenticated %}
             <div class="add-comments col col-8 bg-white shadow-sm rounded p-3 mb-3">
                 <form method="POST">
                     {% csrf_token %}
@@ -272,6 +273,9 @@
                     </div>
                 </form>
             </div>
+            {% else %}
+                <h3>Login terlebih dahulu untuk berkomentar</h3>
+            {% endif %}
             {% for comment in comment_data %}
             <div class="col col-8 comment shadow-sm p-3 mb-1 bg-white rounded">
                 <div class="d-flex bd-highlight mb-3 align-items-center user">
diff --git a/app/tests.py b/app/tests.py
index e9bbc7169a370c0fcfe1180f5ed1a5553d1dd3f9..2792ff33a88e19f22a98b6280affd6443ba5e6c8 100644
--- a/app/tests.py
+++ b/app/tests.py
@@ -323,10 +323,17 @@ class DetailMateriTest(TestCase):
         self.assertContains(response, "Anonymous")
 
     def test_detail_materi_contains_form_comment(self):
+        self.client.login(**self.contributor_credential)
         response = self.client.get(self.url)
         self.assertContains(response, "Beri komentar...")
 
+    def test_detail_materi_not_contains_form_comment(self):
+        response = self.client.get(self.url)
+        self.assertNotContains(response, "Beri komentar...")
+        self.assertContains(response, "Login terlebih dahulu untuk berkomentar")
+
     def test_delete_comments_by_admin(self):
+        self.client.login(**self.contributor_credential)
         url = self.url
         self.client.post(url, {"comment": "This is new comment by Anonymous"})
         deleteURL = (
diff --git a/app/views.py b/app/views.py
index 4f582eab8d7781c15239b589e6d2c350d9fc72e5..fffc13952ef3ca6771afcff2a567cdd4eda66aa0 100644
--- a/app/views.py
+++ b/app/views.py
@@ -157,7 +157,9 @@ class DetailMateri(TemplateView):
         if self.request.user.is_authenticated:
             materi_rating = Rating.objects.filter(materi=materi, user=self.request.user).first()
             if materi_rating is not None:
-                context["materi_rating_score"] = materi_rating.score
+                context['materi_rating_score'] = materi_rating.score
+        
+        context['is_authenticated'] = self.request.user.is_authenticated
 
         return context
 
@@ -189,10 +191,11 @@ class DetailMateri(TemplateView):
 
         materi = get_object_or_404(Materi, pk=kwargs["pk"])
         user_obj = request.user if request.user.is_authenticated else None
-        comment = Comment.objects.create(
-            comment=commentText, username=self.get_user_name(request), materi=materi, user=user_obj
-        )
-        comment.save()
+        if user_obj:
+            comment = Comment.objects.create(
+                comment=commentText, username=self.get_user_name(request), materi=materi, user=user_obj
+            )
+            comment.save()
         return HttpResponseRedirect(request.path)