diff --git a/app/Http/Controllers/AutograderController.php b/app/Http/Controllers/AutograderController.php
index 0a0bfaadd0074ae57890161542633e659cc22678..67993bd06f9bb10ca323b789792372abbc909099 100644
--- a/app/Http/Controllers/AutograderController.php
+++ b/app/Http/Controllers/AutograderController.php
@@ -147,23 +147,60 @@ class AutograderController extends Controller
                 }
             }
 
-            $results[] = AutograderController::jaccardIndex($key, $answer);
+            $results[] = AutograderController::cosine($key, $answer);
         }
 
         return $results;
     }
 
     /**
-     * Get Jaccard Index score
+     * Get Cosine Similarity
      *
      * @return score
      */
-    public function jaccardIndex($key, $answer) {
-        $arr_intersection = count(array_intersect( $key, $answer ));
-        $arr_union = count(array_merge( $key, $answer )) - $arr_intersection;
-        $jaccard_index = $arr_intersection / $arr_union;
+    public function cosine($key, $answer) {
+        $token = [];
+        $vector1 = [];
+        $vector2 = [];
+        foreach($key as $k) {
+            if (!in_array($k, $token)) {
+                $token[] = $k;
+                $vector1[] = 0;
+                $vector2[] = 0;
+            }
+        }
+
+        foreach($answer as $k) {
+            if (!in_array($k, $token)) {
+                $token[] = $k;
+                $vector1[] = 0;
+                $vector2[] = 0;
+            }
+        }
+
+        foreach($key as $k) {
+            $vector1[array_search($k, $token)] += 1;
+        }
+        foreach($answer as $k) {
+            $vector2[array_search($k, $token)] += 1;
+        }
+
+        $dot_product = 0;
+        for($i=0; $i<count($token); $i++) {
+            $dot_product += ($vector1[$i])*($vector2[$i]);
+        }
+
+        $length1 = 0;
+        $length2 = 0;
 
-        return $jaccard_index;
+        for($i=0; $i<count($token); $i++) {
+            $length1 += pow($vector1[$i], 2);
+            $length2 += pow($vector2[$i], 2);
+        }
+
+        $similarity = $dot_product/sqrt($length1*$length2);
+        
+        return $similarity;
     }
 
     /**
diff --git a/app/Http/Controllers/CourseController.php b/app/Http/Controllers/CourseController.php
index e08391fbe1e267fc99e5328b62c82f4130acb952..6d8109cd61b6c416af84c51caca9ab254b08f7fa 100644
--- a/app/Http/Controllers/CourseController.php
+++ b/app/Http/Controllers/CourseController.php
@@ -76,6 +76,20 @@ class CourseController extends Controller
         return redirect()->route('home', ['msg' => 2]);
     }
 
+    /**
+     * Edit course name
+     *
+     * @return newCourse
+     */
+    public function edit($id_course, Request $request)
+    {
+        DB::table('courses')->where('id', $id_course)->update([
+            'name' => $request->course_name,
+        ]);
+
+        return redirect()->route('course', ['id_course' => $id_course, 'msg' => 5]);
+    }
+
     /**
      * delete course
      *
@@ -110,4 +124,18 @@ class CourseController extends Controller
         ]);
         return redirect()->route('home', ['msg' => 3]);
     }
+
+    /**
+     * Edit Topic
+     *
+     * @return msg
+     */
+    public function editTopic($id_course, $id_topic, Request $request) {
+        DB::table('topics')->where('id', $id_topic)->update([
+            'name' => $request->topic_name,
+            'description' => $request->topic_description
+        ]);
+
+        return redirect()->route('course', ['id_course' => $id_course, 'msg' => 4]);
+    }
 }
diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php
index 78f0be5778bc8631a1cd1ea22927aa94ab3a4d57..ad747df869ccc82454cd798f351bce00403f14de 100644
--- a/app/Http/Controllers/HomeController.php
+++ b/app/Http/Controllers/HomeController.php
@@ -5,6 +5,8 @@ namespace App\Http\Controllers;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Hash;
+use App\Http\Requests\UpdatePasswordRequest;
 
 class HomeController extends Controller
 {
@@ -43,6 +45,16 @@ class HomeController extends Controller
         return view('home', ['profile' => $profile, 'role' => $role, 'courses' => $courses, 'enrolled' => $enrolled]);
     }
 
+    /**
+     * Show the application dashboard.
+     *
+     * @return \Illuminate\Contracts\Support\Renderable
+     */
+    public function editPassword()
+    {
+        return view('editPassword');
+    }
+
     public function profile(Request $request)
     {
         DB::table('users')->where('id', Auth::id())->update([
@@ -51,4 +63,17 @@ class HomeController extends Controller
         
         return redirect()->route('home', ['msg' => 1]);
     }
+
+    /**
+     * @param UpdatePasswordRequest $request
+     * @return \Illuminate\Http\RedirectResponse
+     */
+    public function password(UpdatePasswordRequest $request)
+    {
+        DB::table('users')->where('id', Auth::id())->update([
+            'password' => Hash::make($request->get('password'))
+        ]);
+
+        return redirect()->route('home', ['msg' => 5]);
+    }
 }
diff --git a/app/Http/Requests/UpdatePasswordRequest.php b/app/Http/Requests/UpdatePasswordRequest.php
new file mode 100644
index 0000000000000000000000000000000000000000..5f3d90427144f9ebbac0a8f892f5f9cb1fc67f79
--- /dev/null
+++ b/app/Http/Requests/UpdatePasswordRequest.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Support\Facades\Auth;
+
+class UpdatePasswordRequest extends FormRequest
+{
+    /**
+     * Determine if the user is authorized to make this request.
+     *
+     * @return bool
+     */
+    public function authorize()
+    {
+        return Auth::check();
+    }
+
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        return [
+            'password' => ['required', 'string', 'min:8', 'confirmed'],
+        ];
+    }
+}
diff --git a/public/css/home.css b/public/css/home.css
index e2a29e59b9240ab4264516e6c124e3e71ed2a2b2..b8340a70cb50c7c47e9d731eaab1f86bcf921971 100644
--- a/public/css/home.css
+++ b/public/css/home.css
@@ -10,4 +10,8 @@
 
 #edit {
     margin-top: 2rem;
+}
+
+.editpass {
+    float: left;
 }
\ No newline at end of file
diff --git a/resources/views/course.blade.php b/resources/views/course.blade.php
index b98b2652fea1af39ee4b108b8d2d57b218c44478..d1e60c6a7e486ccebde3557a3071700262db0476 100644
--- a/resources/views/course.blade.php
+++ b/resources/views/course.blade.php
@@ -24,6 +24,20 @@
                 <span aria-hidden="true">&times;</span>
             </button>
         </div>
+    @elseif( request()->get('msg') == 4 )
+        <div class="alert alert-success alert-dismissible fade show" role="alert">
+            Deskripsi Materi Berhasil Diubah
+            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                <span aria-hidden="true">&times;</span>
+            </button>
+        </div>
+    @elseif( request()->get('msg') == 5 )
+        <div class="alert alert-success alert-dismissible fade show" role="alert">
+            Nama Kelas Berhasil Diubah
+            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                <span aria-hidden="true">&times;</span>
+            </button>
+        </div>
     @else
         <div class="alert alert-danger alert-dismissible fade show" role="alert">
             Pembuatan Materi Gagal
@@ -55,7 +69,8 @@
                                     {{ $topic->description }} <br/><br/>
                                     @if(Auth::user()->role == 1)
                                         <button type="button" class="btn btn-danger" data-toggle="modal" data-target="#deleteModal{{ $topic->id }}">Hapus</button>
-                                        <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id; ?>/edit" class="btn btn-primary" role="button">Edit Materi</a>
+                                        <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#editModal{{ $topic->id }}">Edit Deskripsi</button>
+                                        <a style="float: right;" href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id; ?>/edit" class="btn btn-primary" role="button">Isi Konten</a>
                                         <div class="modal fade" id="deleteModal{{ $topic->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
                                             <div class="modal-dialog modal-dialog-centered" role="document">
                                                 <div class="modal-content">
@@ -76,6 +91,35 @@
                                                 </div>
                                             </div>
                                         </div>
+                                        <div class="modal fade" id="editModal{{ $topic->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
+                                            <div class="modal-dialog modal-dialog-centered" role="document">
+                                                <div class="modal-content">
+                                                    <form action="<?php echo Request::url(); ?>/edit_topic/{{ $topic->id }}" method="post">
+                                                        {{ csrf_field() }}
+                                                        <div class="modal-header">
+                                                            <h5 class="modal-title" id="exampleModalCenterTitle">Edit Materi</h5>
+                                                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                                                            <span aria-hidden="true">&times;</span>
+                                                            </button>
+                                                        </div>
+                                                        <div class="modal-body">
+                                                            <div class="form-group">
+                                                                <label for="topic-name" class="col-form-label">Edit Judul Materi</label>
+                                                                <input type="text" class="form-control" name="topic_name" id="topic-name" required="required" value="{{ $topic->name }}">
+                                                            </div>
+                                                            <div class="form-group">
+                                                                <label for="topic-description">Edit Deskripsi</label>
+                                                                <textarea class="form-control" name="topic_description" id="topic_description" rows="2">{{ $topic->description }}</textarea>
+                                                            </div>
+                                                        </div>
+                                                        <div class="modal-footer">
+                                                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
+                                                            <button type="submit" class="btn btn-primary">Submit</button>
+                                                        </div>
+                                                    </form>
+                                                </div>
+                                            </div>
+                                        </div>
                                     @else
                                         <a href="<?php echo $topic->id_course; ?>/learn/<?php echo $topic->id; ?>" class="btn btn-primary" role="button">Buka Materi</a>
                                     @endif
@@ -110,6 +154,34 @@
                         </div>
                     </div>
                 </div>
+                <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#nameCourse">
+                    Edit Nama Kelas
+                </button>
+                <div class="modal fade" id="nameCourse" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
+                    <div class="modal-dialog modal-dialog-centered" role="document">
+                        <div class="modal-content">
+                            <form action="{{ $course->id }}/edit" method="post">
+                                {{ csrf_field() }}
+                                <div class="modal-header">
+                                    <h5 class="modal-title" id="exampleModalCenterTitle">Edit Nama Kelas</h5>
+                                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                                    <span aria-hidden="true">&times;</span>
+                                    </button>
+                                </div>
+                                <div class="modal-body">
+                                    <div class="form-group">
+                                        <label for="topic-name" class="col-form-label">Nama Kelas</label>
+                                        <input type="text" class="form-control" name="course_name" id="course-name" required="required" value="{{ $course->name }}">
+                                    </div>
+                                </div>
+                                <div class="modal-footer">
+                                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
+                                    <button type="submit" class="btn btn-primary">Submit</button>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
                 <button style="float: right;" type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter">
                     Tambah Materi
                 </button>
@@ -127,7 +199,7 @@
                                 <div class="modal-body">
                                     <div class="form-group">
                                         <label for="topic-name" class="col-form-label">Masukkan Judul Materi</label>
-                                        <input type="text" class="form-control" name="topic_name" id="topic-name" required="required" placeholder="Judul Topik">
+                                        <input type="text" class="form-control" name="topic_name" id="topic-name" required="required" placeholder="Judul Materi">
                                     </div>
                                     <div class="form-group">
                                         <label for="topic-description">Deskripsi</label>
diff --git a/resources/views/editPassword.blade.php b/resources/views/editPassword.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..0d9432247b9cedd595d788a8e40ab49bf5dd618f
--- /dev/null
+++ b/resources/views/editPassword.blade.php
@@ -0,0 +1,48 @@
+@extends('layouts.app')
+
+@section('content')
+<div class="container">
+    <div class="row justify-content-center">
+        <div class="col-md-8">
+            <div class="card">
+                <div class="card-header">Ubah Password</div>
+
+                <div class="card-body">
+                    <form method="POST" action="/password">
+                        @csrf
+                        <div class="form-group row">
+                            <label for="password" class="col-md-4 col-form-label text-md-right">Password Baru</label>
+
+                            <div class="col-md-6">
+                                <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password">
+
+                                @error('password')
+                                    <span class="invalid-feedback" role="alert">
+                                        <strong>{{ $message }}</strong>
+                                    </span>
+                                @enderror
+                            </div>
+                        </div>
+
+                        <div class="form-group row">
+                            <label for="password-confirm" class="col-md-4 col-form-label text-md-right">Konfirmasi Password</label>
+
+                            <div class="col-md-6">
+                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
+                            </div>
+                        </div>
+
+                        <div class="form-group row mb-0">
+                            <div class="col-md-6 offset-md-4">
+                                <button type="submit" class="btn btn-primary">
+                                    Ubah Password
+                                </button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+@endsection
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
index 1cb3cad8c20e83cf0b1220550eb31a4672d7bb78..05cce0a1a1937756bab01cc50df620660f5c8d17 100644
--- a/resources/views/home.blade.php
+++ b/resources/views/home.blade.php
@@ -31,6 +31,13 @@
                 <span aria-hidden="true">&times;</span>
             </button>
         </div>
+    @elseif( request()->get('msg') == 5 )
+        <div class="alert alert-success alert-dismissible fade show" role="alert">
+            Password Berhasil Diubah
+            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+                <span aria-hidden="true">&times;</span>
+            </button>
+        </div>
     @endif
 @endisset
     <div class="row justify-content">
@@ -95,7 +102,7 @@
                     <a id="email">{{ $profile->email }}</a> <br/>
                     <a id="role">{{ $role }}</a> <br/><br/>
                     <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter">
-                        Edit Profile
+                        Edit Profil
                     </button>
                     <div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
                         <div class="modal-dialog modal-dialog-centered" role="document">
@@ -116,6 +123,7 @@
                                     </div>
                                     <div class="modal-footer">
                                         <button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
+                                        <a href="edit_password" class="btn btn-primary editpass" role="button">Ubah Password</a>
                                         <button type="submit" class="btn btn-primary">Submit</button>
                                     </div>
                                 </form>
@@ -131,27 +139,25 @@
             <div class="col-md-12">
                 <div class="card">
                     <div class="card-header"><b>Kelas Tersedia</b></div>
-                    <div class="card-body">
-                        <div class="accordion" id="accordionCourses">
-                            @foreach($courses as $index => $course)
-                                <div class="card">
-                                    <div class="card-header" id="heading<?php echo $course->id; ?>" style="transform: rotate(0);">
-                                        <a class="stretched-link" type="button" data-toggle="collapse" data-target="#collapse<?php echo $course->id; ?>" aria-expanded="false" aria-controls="collapse<?php echo $course->id; ?>">{{ $course->name }}</a> 
-                                    </div>
+                    <div class="accordion" id="accordionCourses">
+                        @foreach($courses as $index => $course)
+                            <div class="card">
+                                <div class="card-header" id="heading<?php echo $course->id; ?>" style="transform: rotate(0);">
+                                    <a class="stretched-link" type="button" data-toggle="collapse" data-target="#collapse<?php echo $course->id; ?>" aria-expanded="false" aria-controls="collapse<?php echo $course->id; ?>">{{ $course->name }}</a> 
+                                </div>
 
-                                    <div id="collapse<?php echo $course->id; ?>" class="collapse" aria-labelledby="heading<?php echo $course->id; ?>" data-parent="#accordionCourses">
-                                        <div class="card-body">
-                                            {{ $course->description }} <br/><br/>
-                                            <form action="course/enroll" method="post">
-                                                {{ csrf_field() }}
-                                                <input style="display: none;" type="number" class="form-control" name="enroll_id" id="enroll_id" required="required" value="<?php echo $course->id ?>">
-                                                <button type="submit" class="btn btn-primary">Daftar Kelas</button>
-                                            </form>
-                                        </div>
+                                <div id="collapse<?php echo $course->id; ?>" class="collapse" aria-labelledby="heading<?php echo $course->id; ?>" data-parent="#accordionCourses">
+                                    <div class="card-body">
+                                        {{ $course->description }} <br/><br/>
+                                        <form action="course/enroll" method="post">
+                                            {{ csrf_field() }}
+                                            <input style="display: none;" type="number" class="form-control" name="enroll_id" id="enroll_id" required="required" value="<?php echo $course->id ?>">
+                                            <button type="submit" class="btn btn-primary">Daftar Kelas</button>
+                                        </form>
                                     </div>
                                 </div>
-                            @endforeach
-                        </div>
+                            </div>
+                        @endforeach
                     </div>
                 </div>
             </div>
diff --git a/routes/web.php b/routes/web.php
index c6aeaad0020624f0da7e71d60ae7f57e17c8e657..3d26056a7b5704c45f7718ec0ee467d2a4a70e71 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -14,10 +14,14 @@ Auth::routes();
 Route::get('/', 'HomeController@index')->name('home');
 Route::redirect('/home', '/');
 Route::post('/profile', 'HomeController@profile')->name('profile');
+Route::get('/edit_password', 'HomeController@editPassword')->name('edit_password');
+Route::post('/password', 'HomeController@password')->name('password');
 Route::get('/course/{id_course}', 'CourseController@index')->name('course');
+Route::post('/course/{id_course}/edit_topic/{id_topic}', 'CourseController@editTopic')->name('edit_topic');
 Route::post('/course/new', 'CourseController@new')->name('course/new');
 Route::post('/course/enroll', 'CourseController@enroll')->name('course/enroll');
 Route::post('/course/{id_course}/delete', 'CourseController@delete')->name('course/delete');
+Route::post('/course/{id_course}/edit', 'CourseController@edit')->name('course/edit');
 Route::post('/course/{id_course}/learn/new', 'LearnController@new')->name('learn/new');
 Route::get('/course/{id_course}/learn/{id_topic}', 'LearnController@index')->name('learn');
 Route::get('/course/{id_course}/learn/{id_topic}/edit', 'LearnController@edit')->name('edit');