diff --git a/bondoman/app/src/main/java/com/example/bondoman/MainActivity.kt b/bondoman/app/src/main/java/com/example/bondoman/MainActivity.kt
index 4bf169159f7941f6749787a3790b4d1a3cd13548..5ac4af271b4c99938b124e957bdfb5313dd2c6a3 100644
--- a/bondoman/app/src/main/java/com/example/bondoman/MainActivity.kt
+++ b/bondoman/app/src/main/java/com/example/bondoman/MainActivity.kt
@@ -11,6 +11,7 @@ import android.os.Build
 import androidx.appcompat.app.AppCompatActivity
 import android.os.Bundle
 import android.util.Log
+import android.view.MenuItem
 import android.widget.Button
 import android.widget.Toast
 import androidx.core.content.ContentProviderCompat.requireContext
@@ -48,7 +49,7 @@ class MainActivity : AppCompatActivity() {
 
         replaceFragment(TransactionPage(), HeaderTransaction())
 
-        binding.bottomNavigationView.setOnNavigationItemSelectedListener { menuItem ->
+        binding.bottomNavigationView?.setOnNavigationItemSelectedListener { menuItem: MenuItem ->
             when (menuItem.itemId) {
                 R.id.scan_cam -> {if(!isNetworkAvailable()){replaceFragment(NetworkLostPage(), HeaderScan())}
                             else{replaceFragment(ScanPage(), HeaderScan())}}
@@ -59,6 +60,18 @@ class MainActivity : AppCompatActivity() {
             }
             true
         }
+
+        binding.horizontalNavigation?.setNavigationItemSelectedListener { menuItem : MenuItem ->
+            when (menuItem.itemId) {
+                R.id.scan_cam -> {if(!isNetworkAvailable()){replaceFragment(NetworkLostPage(), HeaderScan())}
+                else{replaceFragment(ScanPage(), HeaderScan())}}
+                R.id.graph -> replaceFragment(GraphPage(), HeaderGraf())
+                R.id.settings -> replaceFragment(SettingsPage(), HeaderSettings())
+                R.id.bill -> replaceFragment(TransactionPage(), HeaderTransaction())
+                R.id.twibbon -> replaceFragment(TwibbonPage(), HeaderTwibbon())
+            }
+            true
+        }
     }
 
     private fun isNetworkAvailable(): Boolean {
diff --git a/bondoman/app/src/main/java/com/example/bondoman/ScanPage.kt b/bondoman/app/src/main/java/com/example/bondoman/ScanPage.kt
index 9a61635054660cc79558e1566dd2f91f2c256658..efb189958c7434df33cf01f9669857100e4f15e2 100644
--- a/bondoman/app/src/main/java/com/example/bondoman/ScanPage.kt
+++ b/bondoman/app/src/main/java/com/example/bondoman/ScanPage.kt
@@ -361,7 +361,8 @@ class ScanPage : Fragment() {
 
             val mainActivity = activity as? MainActivity
             if (mainActivity != null) {
-                mainActivity.binding.bottomNavigationView.selectedItemId = R.id.bill
+                mainActivity.binding.bottomNavigationView?.selectedItemId = R.id.bill
+                mainActivity.binding.horizontalNavigation?.setCheckedItem(R.id.bill)
                 mainActivity.replaceFragment(transactionPage, headerTransaction)
             } else {
                 Log.e("ScanPage", "Activity is null. Cannot cast to MainActivity.")
diff --git a/bondoman/app/src/main/res/layout-land/activity_main.xml b/bondoman/app/src/main/res/layout-land/activity_main.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2a39654bcebf342d893cb0b1fc5b6cb6909eba7e
--- /dev/null
+++ b/bondoman/app/src/main/res/layout-land/activity_main.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".MainActivity">
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        android:id="@+id/header_layout">
+
+    </FrameLayout>
+
+    <FrameLayout
+        android:id="@+id/frame_layout"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toEndOf="@+id/horizontalNavigation"
+        app:layout_constraintTop_toTopOf="parent">
+
+    </FrameLayout>
+
+    <com.google.android.material.navigation.NavigationView
+        android:id="@+id/horizontalNavigation"
+        android:layout_width="65dp"
+        android:layout_height="match_parent"
+        android:background="@color/primary"
+        app:itemHorizontalPadding="20dp"
+        app:itemIconTint="@color/secondary"
+        app:itemTextColor="@color/secondary"
+        app:itemVerticalPadding="23dp"
+        app:layout_constraintStart_toStartOf="parent"
+        app:menu="@menu/bottom_nav"></com.google.android.material.navigation.NavigationView>
+
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/bondoman/app/src/main/res/layout-land/fragment_graph_page.xml b/bondoman/app/src/main/res/layout-land/fragment_graph_page.xml
new file mode 100644
index 0000000000000000000000000000000000000000..306adfa2737bf254f6a1027ec1dfc5a5bcbb2075
--- /dev/null
+++ b/bondoman/app/src/main/res/layout-land/fragment_graph_page.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/primary"
+    tools:context=".GraphPage">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+    <!-- TODO: Update blank fragment layout -->
+    <include
+        android:id="@+id/header_layout"
+        layout="@layout/fragment_header_graf"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        />
+
+        <com.github.mikephil.charting.charts.PieChart
+            android:id="@+id/pie_chart"
+            android:layout_width="350dp"
+            android:layout_height="350dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.041"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/header_layout"
+            app:layout_constraintVertical_bias="1.0"
+            android:layout_marginStart="20dp">
+
+        </com.github.mikephil.charting.charts.PieChart>
+
+        <TextView
+            android:id="@+id/persen_tumbas"
+            android:layout_width="300dp"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="24dp"
+            android:background="@color/white"
+            android:drawableStart="@drawable/expenses_logo"
+            android:fontFamily="@font/font_poppins"
+            android:padding="10dp"
+            android:text="TUMBAS"
+            android:textColor="@color/secondary"
+            android:textSize="18dp"
+            android:textStyle="bold"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.935"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/header_layout" />
+
+        <ProgressBar
+        android:id="@+id/progress_tumbas"
+        style="?android:attr/progressBarStyleHorizontal"
+        android:layout_width="200dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="100dp"
+        android:layout_marginEnd="50dp"
+        android:layout_marginTop="20dp"
+        app:layout_constraintBottom_toBottomOf="@+id/persen_tumbas"
+        app:layout_constraintEnd_toEndOf="@+id/persen_tumbas"
+        app:layout_constraintStart_toStartOf="@+id/persen_tumbas"
+        app:layout_constraintTop_toTopOf="@+id/persen_tumbas">
+
+    </ProgressBar>
+
+        <TextView
+            android:id="@+id/persen_upah"
+            android:layout_width="300dp"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="28dp"
+            android:background="@color/white"
+            android:drawableStart="@drawable/income_logo"
+            android:fontFamily="@font/font_poppins"
+            android:padding="10dp"
+            android:text="UPAH"
+            android:textColor="@color/secondary"
+            android:textSize="18dp"
+            android:textStyle="bold"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.935"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/persen_tumbas" />
+
+        <ProgressBar
+        android:id="@+id/progress_upah"
+        style="?android:attr/progressBarStyleHorizontal"
+        android:layout_width="200dp"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="@+id/persen_upah"
+        app:layout_constraintEnd_toEndOf="@+id/persen_upah"
+        app:layout_constraintStart_toStartOf="@+id/persen_upah"
+        app:layout_constraintTop_toTopOf="@+id/persen_upah"
+        android:layout_marginStart="100dp"
+        android:layout_marginEnd="50dp"
+        android:layout_marginTop="20dp">
+
+    </ProgressBar>
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</ScrollView>
\ No newline at end of file
diff --git a/bondoman/app/src/main/res/menu/bottom_nav.xml b/bondoman/app/src/main/res/menu/bottom_nav.xml
index b3cc3272faa8fabe970a506dddda2135c21a2acb..46e0e92ba2554f89e07a04daf6b5d2867b9891f6 100644
--- a/bondoman/app/src/main/res/menu/bottom_nav.xml
+++ b/bondoman/app/src/main/res/menu/bottom_nav.xml
@@ -6,7 +6,7 @@
         android:layout_height="wrap_content"
         android:title="Transaction"
         android:id="@+id/bill"
-        android:icon="@drawable/baseline_newspaper_24"/>
+        android:icon="@drawable/baseline_newspaper_24" />
     <item
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"