diff --git a/app/controllers/PremiumController.php b/app/controllers/PremiumController.php
index 0984910bc9e0b5784491e2d1563e2cfcb9fe3b16..84ee8cab0cc6bf28e60660c19401ceeea629aba5 100644
--- a/app/controllers/PremiumController.php
+++ b/app/controllers/PremiumController.php
@@ -9,19 +9,20 @@
             $premium_middleware->isPremium();
             $components = explode("=",$params);
             $page_number = $components[1];
-            // Fetch data courses
-            $raw = file_get_contents("http://host.docker.internal:8000/api/course?page=".$page_number);
-            $data = json_decode($raw,true);
+            $data = ["page"=>$page_number];
+            $url = "http://host.docker.internal:8000/api/course/";
+            $raw_data = HttpCall::get($url,$data);
+            $result = json_decode($raw_data,true);
+            $courses = $result["data"];
 
-            // Fetch total seluruh data
-            $raw_total_data = file_get_contents("http://host.docker.internal:8000/api/course/total");
-            $json_total_data = json_decode($raw_total_data,true);
 
-            // Cleaning data
-            $total_data = $json_total_data["data"];
+            $url2 = "http://host.docker.internal:8000/api/course/total";
+            $raw_total_data = HttpCall::get($url2);
+            $result2 = json_decode($raw_total_data,true);
+            $total_data = $result2["data"];
+        
+        
             $total_page = ceil($total_data/4);
-            $courses = $data["data"];
-
             // Meneruskan data ke view
             return $this->view('premium','index',["page_number"=>$page_number,"courses"=>$courses,"type"=>"lists","max_page"=>$total_page]);
         }
@@ -29,9 +30,10 @@
         public function preview($params){
             $middleware = $this->middleware("LoginMiddleware");
             $middleware->hasLoggedIn();
-            $raw_modules = file_get_contents("http://host.docker.internal:8000/api/modul/course/".$params);
-            $raw_course = file_get_contents("http://host.docker.internal:8000/api/course/".$params);
-
+            $param1 = ["course_id"=>$params];
+            $param2 = ["course_id"=>$params];
+            $raw_modules = HttpCall::get("http://host.docker.internal:8000/api/modul/course/".$params);
+            $raw_course = HttpCall::get("http://host.docker.internal:8000/api/course/".$params);
             $data = json_decode($raw_modules,true);
             $data_course = json_decode($raw_course,true);
             $course = $data_course["data"];
@@ -47,23 +49,24 @@
             $middleware = $this->middleware("LoginMiddleware");
             $middleware->hasLoggedIn();
 
-            $raw_materials = file_get_contents("http://host.docker.internal:8000/api/material/module/".$params);
+            $raw_materials = HttpCall::get("http://host.docker.internal:8000/api/material/module/".$params);
             $data_materials = json_decode($raw_materials,true);
+            
             $materials = $data_materials["data"];
 
             
-            $raw_modul = file_get_contents("http://host.docker.internal:8000/api/modul/".$params);
+            $raw_modul = HttpCall::get("http://host.docker.internal:8000/api/modul/".$params);
             $data_modul = json_decode($raw_modul,true);
             $modul = $data_modul["data"];
 
             $course_id = $modul["course_id"];
             
-            $raw_modul2 = file_get_contents("http://host.docker.internal:8000/api/modul/course/".$course_id);
+            $raw_modul2 = HttpCall::get("http://host.docker.internal:8000/api/modul/course/".$course_id);
             $data_modul2 = json_decode($raw_modul2,true);
             $modul2 = $data_modul2["data"];
 
 
-            $raw_course = file_get_contents("http://host.docker.internal:8000/api/course/".$course_id);
+            $raw_course = HttpCall::get("http://host.docker.internal:8000/api/course/".$course_id);
             $data_course = json_decode($raw_course,true);
             $course = $data_course["data"];
             
diff --git a/app/init.php b/app/init.php
index 78798b77bb651196bbcafe8d133608a605137e04..78466875f8c52cddafd06d684836ca83c5aa0aa7 100644
--- a/app/init.php
+++ b/app/init.php
@@ -9,6 +9,7 @@
     require_once("models/Material.php");
     require_once("models/Admin.php");
     require_once("models/Module.php");
+    require_once("utils/http.php");
     $app = new App;
     $database = Database::instance();
     // Uncomment ini cuma pas awal2 ya (pas mau nge seed aja)
diff --git a/app/utils/http.php b/app/utils/http.php
new file mode 100644
index 0000000000000000000000000000000000000000..545c9e6a515ed0231b5a5432b995fbb748e2ecd2
--- /dev/null
+++ b/app/utils/http.php
@@ -0,0 +1,24 @@
+<?php
+
+class HttpCall {
+  public static function get($url, $data = null) {
+    $ch = curl_init();
+    curl_setopt($ch, CURLOPT_URL, self::buildGetUrl($url, $data));
+    curl_setopt($ch, CURLOPT_HTTPHEADER,[
+        "X-API-KEY: PHPApp"
+    ]);
+    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+    $output = curl_exec($ch);
+    curl_close($ch);
+    return $output;
+  }
+
+  private static function buildGetUrl($url, $data = null) {
+    if ($data) {
+      $url = sprintf("%s?%s", $url, http_build_query($data));
+    }
+    return $url;
+  }
+}
+
+?>
\ No newline at end of file
diff --git a/app/views/navbar/navbar.php b/app/views/navbar/navbar.php
index f18b886a5c3ffbaea1dc86314d285eed28fa5d60..65f532670d55cb076fb045f6f8995b7d95dbc2fa 100644
--- a/app/views/navbar/navbar.php
+++ b/app/views/navbar/navbar.php
@@ -59,6 +59,8 @@
                 }else{
                     $premium = true;
                 }
+            }else{
+                $premium = false;
             }
 
         ?>