diff --git a/app/forms.py b/app/forms.py
index 84facd1f2e25e18920754b7cd44a6396e7e1f4fe..54358428322ab389abb06d3b51ba3b265c38faf6 100644
--- a/app/forms.py
+++ b/app/forms.py
@@ -2,16 +2,20 @@ from django import forms
 
 from app.models import Materi, Category, RatingContributor
 from authentication.models import User
+import datetime
 
+def year_choices():
+    return[(r,r) for r in range(2000, datetime.date.today().year+1)]
 
 class UploadMateriForm(forms.ModelForm):
     
     categories = forms.ModelMultipleChoiceField(queryset=Category.objects.all(),widget=forms.CheckboxSelectMultiple(attrs={'style' : 'column-count:2'}),required=True)
     #categories.widget.attrs["style"] = "column-count:2"
+    release_year = forms.TypedChoiceField(coerce=int, choices=year_choices, initial=datetime.date.today().year)
 
     class Meta:
         model = Materi
-        fields = ["title", "author", "publisher",
+        fields = ["title", "author", "publisher", "release_year",
                   "categories", "descriptions", "cover", "content"]
 
     def __init__(self, *args, **kwargs):
diff --git a/app/migrations/0021_materi_release_year.py b/app/migrations/0021_materi_release_year.py
new file mode 100644
index 0000000000000000000000000000000000000000..8294e44629dc026ddff721b329e610946de3a7d5
--- /dev/null
+++ b/app/migrations/0021_materi_release_year.py
@@ -0,0 +1,19 @@
+# Generated by Django 3.1 on 2020-10-09 16:13
+
+import app.models
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('app', '0020_merge_20201009_2039'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='materi',
+            name='release_year',
+            field=models.IntegerField(default=app.models.current_year),
+        ),
+    ]
diff --git a/app/models.py b/app/models.py
index aa54208425b22632be3f49ce1214851651e4359d..227eabd559595e96c1b2f60908f726fd589c5773 100644
--- a/app/models.py
+++ b/app/models.py
@@ -1,4 +1,5 @@
 import random
+import datetime
 
 from django.contrib.postgres import search
 from django.core.exceptions import ValidationError
@@ -24,6 +25,8 @@ def getRandomColor():
     color = "%06x" % random.randint(0, 0xFFFFFF)
     return color
 
+def current_year():
+    return datetime.date.today().year
 
 class Category(models.Model):
     name = models.CharField(max_length=20)
@@ -56,6 +59,7 @@ class Materi(models.Model):
     author = models.CharField(max_length=30, default="Penyusun")
     uploader = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
     publisher = models.CharField(max_length=30, default="Penerbit")
+    release_year = models.IntegerField(default=current_year)
     pages = models.IntegerField(default=0)
     descriptions = models.TextField(default="Deskripsi")
     status = models.CharField(max_length=30, choices=VERIFICATION_STATUS, default=VERIFICATION_STATUS[0][0])
diff --git a/app/templates/app/detail_materi.html b/app/templates/app/detail_materi.html
index e15f5f9fa4cda0a0c915adec2200c784710696fb..d614e18272257143e7468f35dfbed77b7110237a 100644
--- a/app/templates/app/detail_materi.html
+++ b/app/templates/app/detail_materi.html
@@ -127,6 +127,14 @@
                         <p class="info-content">{{materi_data.publisher}}</p>
                     </dd>
                 </div>
+                <div class="info" id="1">
+                    <dl class="col col-4">
+                        <dt class="info-name">Tahun Terbit</dt>
+                    </dl>
+                    <dd>
+                        <p class="info-content">{{materi_data.release_year}}</p>
+                    </dd>
+                </div>
                 <div class="info" id="1">
                     <dl class="col col-4">
                         <dt class="info-name">Kontributor</dt>
diff --git a/app/tests.py b/app/tests.py
index cd744649543950569e2d52bd34f189fd461291c5..f27476532a68e8d7671507fc69cc3762329f1bf9 100644
--- a/app/tests.py
+++ b/app/tests.py
@@ -18,6 +18,7 @@ from django.db.utils import IntegrityError
 from django.test import Client, RequestFactory, TestCase, TransactionTestCase
 from pytz import timezone
 from time import sleep
+import datetime as dt
 
 from administration.models import VerificationSetting, VerificationReport
 from administration.utils import id_generator
@@ -53,7 +54,7 @@ from .views import (
     UploadMateriView,
     UploadMateriExcelView,
 )
-from app.forms import SuntingProfilForm
+from app.forms import SuntingProfilForm, year_choices
 from app.utils.fileManagementUtil import get_random_filename, remove_image_exifdata
 
 ERROR_403_MESSAGE = "Kamu harus login untuk mengakses halaman ini"
@@ -2173,3 +2174,17 @@ class MateriModelTest(TestCase):
 
         Like.objects.create(timestamp=datetime.now(), materi=self.materi, session_id="dummysessionid2")
         self.assertEqual(2, self.materi.like_count)
+
+    
+class YearChoicesTest(TestCase):
+    def test_release_year_contains_the_right_current_year(self):
+        now = dt.date.today().year
+
+        choices = year_choices()
+
+        self.assertEqual((now, now), choices[-1])
+
+    def test_min_release_year_is_2000(self):
+        choices = year_choices()
+
+        self.assertEqual((2000, 2000), choices[0])
\ No newline at end of file
diff --git a/digipus/__pycache__/settings.cpython-36.pyc b/digipus/__pycache__/settings.cpython-36.pyc
index a2dfadd532b5c69b61e9c0a2768ccc1ee6376edf..0857014007c24fe96681cc07b645936f81fe7ea1 100644
Binary files a/digipus/__pycache__/settings.cpython-36.pyc and b/digipus/__pycache__/settings.cpython-36.pyc differ