diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index ff29bd341581f4d3114504c489618663fe93acb8..7420bfc9ccb5ff852b1842a15e8c4b52382da24d 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -51,6 +51,7 @@ dependencies {
     testImplementation("junit:junit:4.13.2")
     implementation("androidx.navigation:navigation-fragment-ktx:2.7.7")
     implementation("androidx.navigation:navigation-ui-ktx:2.7.7")
+    implementation("org.greenrobot:eventbus:3.2.0")
     testImplementation("junit:junit:4.13.2")
     androidTestImplementation("androidx.test.ext:junit:1.1.5")
     androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
diff --git a/app/src/main/java/com/example/bondoman/AddTransactionFragment.kt b/app/src/main/java/com/example/bondoman/AddTransactionFragment.kt
index c3130ad649164a9cc70ccba91cb13d7a5d3452b2..24872007eae5beef58ff7041836fec5bf713390b 100644
--- a/app/src/main/java/com/example/bondoman/AddTransactionFragment.kt
+++ b/app/src/main/java/com/example/bondoman/AddTransactionFragment.kt
@@ -18,9 +18,14 @@ import android.widget.ArrayAdapter
 import android.widget.Spinner
 import androidx.core.app.ActivityCompat
 import androidx.lifecycle.ViewModelProvider
+import com.example.bondoman.services.RandomTransactionEvent
+import com.example.bondoman.services.RandomizeTransaction
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
 
 
-class AddTransactionFragment : Fragment() {
+class AddTransactionFragment : Fragment(){
     private lateinit var binding: FragmentAddTransactionBinding
     private lateinit var geocoder: Geocoder
     private lateinit var fusedLocationClient: FusedLocationProviderClient
@@ -28,10 +33,16 @@ class AddTransactionFragment : Fragment() {
     private var isFetched : Boolean = false
     private lateinit var db: DBViewModel
 
+    private var pendingTransaction: MutableList<Pair<String, Double>> = mutableListOf()
+
     companion object {
         private const val LOCATION_PERMISSION_REQUEST_CODE = 1001
     }
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+
+    }
     override fun onCreateView(
         inflater: LayoutInflater, container: ViewGroup?,
         savedInstanceState: Bundle?
@@ -39,12 +50,20 @@ class AddTransactionFragment : Fragment() {
         binding = FragmentAddTransactionBinding.inflate(inflater, container, false)
         geocoder = Geocoder(requireContext(), Locale.getDefault())
         fusedLocationClient = LocationServices.getFusedLocationProviderClient(requireActivity())
+        db = ViewModelProvider(requireActivity())[DBViewModel::class.java]
+
+        if (pendingTransaction.isNotEmpty()){
+            pendingTransaction.forEach { pair ->
+                db.addTransaksi(pair.first, "Pengeluaran", pair.second, "Unknown")
+            }
+            pendingTransaction.clear()
+        }
+
         return binding.root
     }
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
-        db = ViewModelProvider(requireActivity())[DBViewModel::class.java]
 
         val categorySpinner: Spinner = binding.addCategoryField
         val categories = resources.getStringArray(R.array.category_array)
@@ -52,7 +71,6 @@ class AddTransactionFragment : Fragment() {
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
         categorySpinner.adapter = adapter
 
-
         if (ContextCompat.checkSelfPermission(requireContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
             && ContextCompat.checkSelfPermission(requireContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
             Log.e("fetchLocation", "Both fine and coarse location permissions granted")
@@ -79,9 +97,9 @@ class AddTransactionFragment : Fragment() {
             Log.d("addTransactionWoi", "Button clicked")
 
 
-            val amount: Int
+            val amount: Double
             try {
-                amount = amountText.toInt()
+                amount = amountText.toDouble()
             } catch (e: NumberFormatException) {
                 Toast.makeText(requireContext(), "Amount must be a valid number", Toast.LENGTH_SHORT).show()
                 return@setOnClickListener
@@ -101,6 +119,16 @@ class AddTransactionFragment : Fragment() {
         }
 
     }
+    override fun onDestroyView() {
+        super.onDestroyView()
+        EventBus.getDefault().unregister(this)
+    }
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onRandomTransactionReceived(event: com.example.bondoman.services.RandomTransactionEvent) {
+        val transactionName = event.transactionName
+        val price = event.price
+        pendingTransaction.add(Pair(transactionName, price))
+    }
 
     private fun fetchLocation(callback: (String) -> Unit) {
         var address = "Unknown"
diff --git a/app/src/main/java/com/example/bondoman/DBViewModel.kt b/app/src/main/java/com/example/bondoman/DBViewModel.kt
index b76bb25a0bbb3d6747d8e742ea0ba12170bcfcd8..d0898cb4c566b5d4dc233056e42226aeb5170947 100644
--- a/app/src/main/java/com/example/bondoman/DBViewModel.kt
+++ b/app/src/main/java/com/example/bondoman/DBViewModel.kt
@@ -5,22 +5,29 @@ import androidx.lifecycle.AndroidViewModel
 import com.example.bondoman.retrofit.data.TransactionDB
 import com.example.bondoman.retrofit.data.entity.Category
 import com.example.bondoman.retrofit.data.entity.TransactionEntity
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
 import java.text.SimpleDateFormat
 import java.util.Date
 import java.util.Locale
 
 class DBViewModel(application: Application) : AndroidViewModel(application) {
     private val db = TransactionDB.getInstance(application)
+    private val viewModelScope = CoroutineScope(Dispatchers.IO)
 
-    fun addTransaksi(name: String, category: String, price: Int, location: String = "") {
-        val currentDate = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(Date())
-        val newTransaction = TransactionEntity(
-            name = name,
-            category = Category.valueOf(category),
-            date = currentDate,
-            price = price,
-            location = location
-        )
-        db.transactionDao().insertAll(newTransaction)
+    fun addTransaksi(name: String, category: String, price: Double, location: String = "") {
+        viewModelScope.launch {
+            val currentDate = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(Date())
+            var tempLocation = location
+            val newTransaction = TransactionEntity(
+                name = name,
+                category = Category.valueOf(category),
+                date = currentDate,
+                price = price,
+                location = tempLocation
+            )
+            db.transactionDao().insertAll(newTransaction)
+        }
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/EditTransactionFragment.kt b/app/src/main/java/com/example/bondoman/EditTransactionFragment.kt
index 22f43392091f507aafd5d92b043aaf1ec7d6ed85..abda7cf9dbf7ce41f5c8574afc895a56e364ad2d 100644
--- a/app/src/main/java/com/example/bondoman/EditTransactionFragment.kt
+++ b/app/src/main/java/com/example/bondoman/EditTransactionFragment.kt
@@ -1,7 +1,6 @@
 package com.example.bondoman
 
 import android.app.AlertDialog
-import android.content.DialogInterface
 import android.os.Bundle
 import androidx.fragment.app.Fragment
 import android.view.LayoutInflater
@@ -46,12 +45,12 @@ class EditTransactionFragment : Fragment() {
             AlertDialog.Builder(requireContext())
                 .setTitle("Delete Transaction")
                 .setMessage("Are you sure you want to delete this transaction?")
-                .setPositiveButton("Yes") { dialog, which ->
+                .setPositiveButton("Yes") { _, _ ->
                     val transaction = db.transactionDao().getId(id)
                     db.transactionDao().delete(transaction)
                     requireActivity().onBackPressed()
                 }
-                .setNegativeButton("No") { dialog, which -> }
+                .setNegativeButton("No") { _, _ -> }
                 .show()
         }
 
@@ -60,7 +59,7 @@ class EditTransactionFragment : Fragment() {
             val kategori = db.transactionDao().getId(id).category
             val date = db.transactionDao().getId(id).date
             val nama = binding.nameField.text.toString()
-            val nominal = binding.priceField.text.toString().toInt()
+            val nominal = binding.priceField.text.toString().toDouble()
             val lokasi = binding.locationField.text.toString()
 
             val newTransaction = TransactionEntity(
diff --git a/app/src/main/java/com/example/bondoman/GraphFragment.kt b/app/src/main/java/com/example/bondoman/GraphFragment.kt
index 39756ce0696417c9e03e1b6b92a31fec426ba7d0..6f2ee6ca948c3b3d6412eae40bb6b943a9a99217 100644
--- a/app/src/main/java/com/example/bondoman/GraphFragment.kt
+++ b/app/src/main/java/com/example/bondoman/GraphFragment.kt
@@ -1,9 +1,18 @@
 package com.example.bondoman
 
+import android.content.res.Configuration
+import android.graphics.Color
 import android.os.Bundle
+import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.animation.AnimationUtils
+import android.widget.ImageButton
+import android.widget.LinearLayout
+import android.widget.RelativeLayout
+import android.widget.TextView
+import androidx.core.content.ContextCompat
 import androidx.fragment.app.Fragment
 import com.github.mikephil.charting.charts.PieChart
 import com.github.mikephil.charting.data.PieData
@@ -20,6 +29,23 @@ class GraphFragment : Fragment() {
         val view = inflater.inflate(R.layout.fragment_grafik, container, false)
         val pieChart: PieChart = view.findViewById(R.id.pieChart)
 
+        val navbar = requireActivity().findViewById<LinearLayout>(R.id.navbar_main)
+        val toolbar = requireActivity().findViewById<RelativeLayout>(R.id.toolbar)
+        navbar.setBackgroundResource(R.drawable.navbar_background)
+        toolbar.setBackgroundColor(
+            Color.parseColor("#000113")
+        )
+        val textView = toolbar.findViewById<TextView>(R.id.toolbar_text)
+        val transactionButton = requireActivity().findViewById<ImageButton>(R.id.transaction_button)
+        val graphButton = requireActivity().findViewById<ImageButton>(R.id.graph_button)
+        val settingButton = requireActivity().findViewById<ImageButton>(R.id.setting_button)
+        textView.text = "Grafik"
+        textView.setTextColor(Color.WHITE)
+        toolbar.findViewById<ImageButton>(R.id.toolbar_back_button).setImageResource(R.drawable.ic_arrow_left_white)
+        transactionButton.isSelected = false
+        graphButton.isSelected = true
+        settingButton.isSelected = false
+
         // Dummy data
         val income = 5000f
         val outcome = 3000f
@@ -53,4 +79,39 @@ class GraphFragment : Fragment() {
 
         return view
     }
+
+    override fun onConfigurationChanged(newConfig: Configuration) {
+        super.onConfigurationChanged(newConfig)
+
+        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
+            val transactionButton = requireActivity().findViewById<ImageButton>(R.id.transaction_button)
+            val graphButton = requireActivity().findViewById<ImageButton>(R.id.graph_button)
+            val settingButton = requireActivity().findViewById<ImageButton>(R.id.setting_button)
+            val scanButton = requireActivity().findViewById<ImageButton>(R.id.scan_button)
+
+            val animation = AnimationUtils.loadAnimation(requireContext(), R.anim.rotate_90_deg)
+
+            transactionButton.startAnimation(animation)
+            graphButton.startAnimation(animation)
+            settingButton.startAnimation(animation)
+            scanButton.startAnimation(animation)
+
+            Log.d("ORIENTATION CHANGED", "rotate 90")
+        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
+            val transactionButton = requireActivity().findViewById<ImageButton>(R.id.transaction_button)
+            val graphButton = requireActivity().findViewById<ImageButton>(R.id.graph_button)
+            val settingButton = requireActivity().findViewById<ImageButton>(R.id.setting_button)
+            val scanButton = requireActivity().findViewById<ImageButton>(R.id.scan_button)
+
+            val animation = AnimationUtils.loadAnimation(requireContext(), R.anim.rotate_270_deg)
+
+            transactionButton.startAnimation(animation)
+            graphButton.startAnimation(animation)
+            settingButton.startAnimation(animation)
+            scanButton.startAnimation(animation)
+
+            Log.d("ORIENTATION CHANGED", "rotate 270")
+
+        }
+    }
 }
diff --git a/app/src/main/java/com/example/bondoman/MainActivity.kt b/app/src/main/java/com/example/bondoman/MainActivity.kt
index 2b9b963216ac8d53a01f969b3985ef7b2cc2aa1e..7c096ed0618b98d3d44c285a0c9994b6908325e0 100644
--- a/app/src/main/java/com/example/bondoman/MainActivity.kt
+++ b/app/src/main/java/com/example/bondoman/MainActivity.kt
@@ -3,6 +3,7 @@ package com.example.bondoman
 import android.content.Intent
 import android.graphics.Rect
 import android.os.Bundle
+import android.util.Log
 import android.view.MenuItem
 import android.view.View
 import android.widget.ImageButton
@@ -17,11 +18,14 @@ import androidx.navigation.findNavController
 import androidx.navigation.fragment.NavHostFragment
 import com.example.bondoman.services.JWTExpiry
 import android.widget.Toast
+import androidx.core.content.ContentProviderCompat.requireContext
 import androidx.lifecycle.lifecycleScope
+import com.example.bondoman.retrofit.data.TransactionDB
 import com.example.bondoman.services.ConnectivityObserver
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
 import com.example.bondoman.services.NetworkSensing
+import org.greenrobot.eventbus.EventBus
 
 class MainActivity : AppCompatActivity() {
     private lateinit var service: Intent
@@ -31,7 +35,6 @@ class MainActivity : AppCompatActivity() {
     private lateinit var settingButton: ImageButton
     private lateinit var scanButton: ImageButton
     private lateinit var navController: NavController
-
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
@@ -39,6 +42,9 @@ class MainActivity : AppCompatActivity() {
         startService(service)
         networkSensing = NetworkSensing(this)
 
+        EventBus.getDefault().register(TransactionFragment())
+        Log.d("EventBus", "Registered fragment as subscriber")
+
         val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
         val toolbarButton = findViewById<ImageButton>(R.id.toolbar_back_button)
         navController = navHostFragment.navController
@@ -131,5 +137,8 @@ class MainActivity : AppCompatActivity() {
     override fun onDestroy() {
         super.onDestroy()
         stopService(service)
+        EventBus.getDefault().unregister(AddTransactionFragment())
+
     }
+
 }
diff --git a/app/src/main/java/com/example/bondoman/ScanFragment.kt b/app/src/main/java/com/example/bondoman/ScanFragment.kt
index a0f7a5741608c50daa0ad79d5a45da47de0720ee..3b30d62792bfa71fe7997d3ae104918ed46f7ce0 100644
--- a/app/src/main/java/com/example/bondoman/ScanFragment.kt
+++ b/app/src/main/java/com/example/bondoman/ScanFragment.kt
@@ -39,6 +39,7 @@ import androidx.activity.result.contract.ActivityResultContracts
 import androidx.core.app.ActivityCompat
 import androidx.core.content.ContextCompat
 import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
 import androidx.navigation.fragment.findNavController
 import com.example.bondoman.utils.RetrofitInstance
 import kotlinx.coroutines.CoroutineScope
@@ -69,7 +70,7 @@ class ScanFragment : Fragment() {
     private lateinit var recaptureButton: ImageButton
     private lateinit var galleryButton: ImageButton
     private lateinit var confirmButton: ImageButton
-
+    private lateinit var db: DBViewModel
 
     private lateinit var imageFile: File
 
@@ -86,16 +87,19 @@ class ScanFragment : Fragment() {
         galleryButton = view.findViewById(R.id.galleryButton)
         confirmButton = view.findViewById(R.id.confirmButton)
 
+        db = ViewModelProvider(requireActivity())[DBViewModel::class.java]
+
         val navbar = requireActivity().findViewById<LinearLayout>(R.id.navbar_main)
         val toolbar = requireActivity().findViewById<RelativeLayout>(R.id.toolbar)
+        toolbar.setBackgroundColor(Color.parseColor("#1B1A55"))
+        navbar.setBackgroundResource(R.drawable.navbar_bordered_background)
         val textView = toolbar.findViewById<TextView>(R.id.toolbar_text)
         val transactionButton = requireActivity().findViewById<ImageButton>(R.id.transaction_button)
         val graphButton = requireActivity().findViewById<ImageButton>(R.id.graph_button)
         val settingButton = requireActivity().findViewById<ImageButton>(R.id.setting_button)
-        toolbar.setBackgroundColor(Color.parseColor("#1B1A55"))
-        navbar.setBackgroundResource(R.drawable.navbar_bordered_background)
-
         textView.text = "Scan Nota"
+        textView.setTextColor(Color.WHITE)
+        toolbar.findViewById<ImageButton>(R.id.toolbar_back_button).setImageResource(R.drawable.ic_arrow_left_white)
         transactionButton.isSelected = false
         graphButton.isSelected = false
         settingButton.isSelected = false
@@ -371,6 +375,7 @@ class ScanFragment : Fragment() {
                     }
 
                     confirmButton.setOnClickListener {
+                        println("UDAH DIKLIK")
                         job = CoroutineScope(Dispatchers.IO).launch {
                             val sharedPreferences =
                                 requireActivity().getSharedPreferences(
@@ -393,10 +398,13 @@ class ScanFragment : Fragment() {
                                 println("Bearer $token")
                                 if (response.isSuccessful) {
                                     val responseBody = response.body()
-                                    println(responseBody)
+                                    val items = responseBody?.items
+                                    items?.items?.forEach {
+                                        db.addTransaksi(it.name, "Pengeluaran", it.qty*it.price, "Unknown")
+                                    }
                                     createPopUp(
                                         "Berhasil",
-                                        "Transaksi berhasil ditambahkan"
+                                        "Berhasil menambahkan transaksi"
                                     )
                                 } else {
                                     createPopUp(
diff --git a/app/src/main/java/com/example/bondoman/SettingFragment.kt b/app/src/main/java/com/example/bondoman/SettingFragment.kt
index 943f9a77fc6c14e4434dc861ab22a84da6590d9a..f3858cc21959ef6ea362c6a0698b41599bdae777 100644
--- a/app/src/main/java/com/example/bondoman/SettingFragment.kt
+++ b/app/src/main/java/com/example/bondoman/SettingFragment.kt
@@ -3,19 +3,29 @@ import android.app.AlertDialog
 import android.content.ActivityNotFoundException
 import android.content.Context.MODE_PRIVATE
 import android.content.Intent
+import android.graphics.Color
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.ImageButton
+import android.widget.LinearLayout
+import android.widget.RelativeLayout
+import android.widget.TextView
 import android.widget.Toast
+import androidx.core.content.ContextCompat
 import androidx.fragment.app.Fragment
 import androidx.navigation.fragment.findNavController
 import com.example.bondoman.databinding.FragmentSettingBinding
 import com.example.bondoman.helper.Xls
 import com.example.bondoman.models.SqlTransaction
+import com.example.bondoman.retrofit.data.TransactionDB
+import com.example.bondoman.services.RandomizeTransaction
+import kotlin.random.Random
 
 class SettingFragment: Fragment() {
     private lateinit var binding : FragmentSettingBinding
+    private lateinit var database: TransactionDB
     private var savedFilePath: String? = null
 //    private lateinit var sendEmailButton: Button
 
@@ -24,16 +34,26 @@ class SettingFragment: Fragment() {
         savedInstanceState: Bundle?
     ): View? {
         val navController = findNavController()
-        // Inflate the layout for this fragment
-//        val view = inflater.inflate(R.layout.fragment_setting, container, false)
-//        sendEmailButton = view.findViewById(R.id.sendEmailButton)
-//
-//        // Set OnClickListener
-//        sendEmailButton.setOnClickListener {
-//            sendEmail()
-//        }
-//
-//        return view
+        database = TransactionDB.getInstance(requireContext())
+        val navbar = requireActivity().findViewById<LinearLayout>(R.id.navbar_main)
+        val toolbar = requireActivity().findViewById<RelativeLayout>(R.id.toolbar)
+        navbar.setBackgroundResource(R.drawable.navbar_background)
+        toolbar.setBackgroundColor(
+            ContextCompat.getColor(
+                requireContext(),
+                R.color.broken_white
+            )
+        )
+        val textView = toolbar.findViewById<TextView>(R.id.toolbar_text)
+        val transactionButton = requireActivity().findViewById<ImageButton>(R.id.transaction_button)
+        val graphButton = requireActivity().findViewById<ImageButton>(R.id.graph_button)
+        val settingButton = requireActivity().findViewById<ImageButton>(R.id.setting_button)
+        textView.text = "Pengaturan"
+        textView.setTextColor(Color.BLACK)
+        toolbar.findViewById<ImageButton>(R.id.toolbar_back_button).setImageResource(R.drawable.ic_arrow_left_black)
+        transactionButton.isSelected = false
+        graphButton.isSelected = false
+        settingButton.isSelected = true
         binding = FragmentSettingBinding.inflate(inflater, container, false)
         return binding.root
 
@@ -43,20 +63,7 @@ class SettingFragment: Fragment() {
         super.onViewCreated(view, savedInstanceState)
         binding.saveButton.setOnClickListener{
 
-            // Retrieve transactions from the database
-//            val dbTransaction = TransactionSQL(requireContext())
-//            dbTransaction.open()
-//            val listTransaction = dbTransaction.findAll()
-
-//            if (listTransaction.isNotEmpty()) {
-//                // If there are transactions, show the format selection dialog
-//                showFormatSelectionDialog(listTransaction)
-//            } else {
-//                // Handle case when there are no transactions in the database
-//                Toast.makeText(requireContext(), "No transactions found in the database", Toast.LENGTH_SHORT).show()
-//            }
         }
-//
         binding.sendEmailButton.setOnClickListener {
             sendEmail()
         }
@@ -65,39 +72,21 @@ class SettingFragment: Fragment() {
             logout()
         }
         binding.randomizeButton.setOnClickListener {
-            sendEmail()
+            val listRandomText = listOf("MacBook Pro", "MacBook Air", "Mac Mini", "Mac Pro", "iMac")
+            val randomText = listRandomText.random()
+            val randomPrice: Double = String.format("%.2f", Random.nextDouble(0.0, 500.0)).toDouble()
+            val randomizeTransactionIntent = Intent(requireContext(), RandomizeTransaction::class.java)
+            randomizeTransactionIntent.putExtra("transactionName", randomText)
+            randomizeTransactionIntent.putExtra("price", randomPrice)
+            randomizeTransactionIntent.setAction("com.example.bondoman.services.RandomizeTransaction")
+            requireContext().sendBroadcast(randomizeTransactionIntent)
         }
     }
 
-//    private fun showFormatSelectionDialog(listTransaction: List<SqlTransaction>) {
-//        val formatOptions = arrayOf("XLS", "XLSX")
-//
-//        val builder = AlertDialog.Builder(requireContext())
-//        builder.setTitle("Select File Format")
-//            .setItems(formatOptions) { dialog, which ->
-//                val fileFormat = if (which == 0) "xls" else "xlsx"
-//                savedFilePath = Xls.saveXls(requireContext(), listTransaction, fileFormat)
-//                showMassage("File has been saved successfully")
-//                dialog.dismiss()
-//            }
-//            .setNegativeButton("Cancel") { dialog, _ ->
-//                dialog.dismiss()
-//            }
-//        val dialog = builder.create()
-//        dialog.show()
-//    }
-//
-//    private fun showMassage(message: String) {
-//        val alertDialogBuilder = AlertDialog.Builder(requireContext())
-//        alertDialogBuilder
-//            .setMessage(message)
-//            .setPositiveButton("OK") { dialog, _ ->
-//                // Do something when OK button is clicked
-//                dialog.dismiss()
-//            }
-//            .create()
-//            .show()
-//    }
+    override fun onDestroy() {
+        super.onDestroy()
+        database.close()
+    }
 
     private fun sendEmail() {
         // Create an intent to send an email
@@ -132,4 +121,6 @@ class SettingFragment: Fragment() {
         editor.clear()
         editor.apply()
     }
+
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/TransactionFragment.kt b/app/src/main/java/com/example/bondoman/TransactionFragment.kt
index ca27a39113aaf7e8ff8da2ce9466ffcb7e339bd7..32c455c45274ec818519807b0bd4d4933dce18d5 100644
--- a/app/src/main/java/com/example/bondoman/TransactionFragment.kt
+++ b/app/src/main/java/com/example/bondoman/TransactionFragment.kt
@@ -1,11 +1,18 @@
 package com.example.bondoman
 import android.content.Intent
+import android.graphics.Color
 import android.os.Bundle
+import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.ImageButton
+import android.widget.LinearLayout
+import android.widget.RelativeLayout
 import android.widget.TextView
+import androidx.core.content.ContextCompat
 import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
 import androidx.recyclerview.widget.DividerItemDecoration
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
@@ -13,102 +20,105 @@ import com.example.bondoman.retrofit.data.TransactionDB
 import com.example.bondoman.databinding.FragmentTransaksiBinding
 import com.example.bondoman.retrofit.data.entity.TransactionEntity
 import com.example.bondoman.retrofit.adapter.TransactionAdapter
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
 
-class TransactionFragment : Fragment() {
+var pendingTransaction: MutableList<Pair<String, Double>> = mutableListOf()
 
+class TransactionFragment : Fragment() {
     private lateinit var binding: FragmentTransaksiBinding
     private lateinit var transactionData: RecyclerView
     private val listTransaction = ArrayList<TransactionEntity>()
     private lateinit var searchBar: TextView
     lateinit var adapter: TransactionAdapter
-    private lateinit var database: TransactionDB
-//    private lateinit var dbTransaction: DbTransaction
 
-//    private var receiver = TransactionRandomizerReceiver()
+    private lateinit var database: TransactionDB
+    private lateinit var db: DBViewModel
 
     override fun onCreateView(
         inflater: LayoutInflater,
         container: ViewGroup?,
         savedInstanceState: Bundle?
     ): View {
+        database = TransactionDB.getInstance(requireContext())
         binding = FragmentTransaksiBinding.inflate(inflater, container, false)
+        val navbar = requireActivity().findViewById<LinearLayout>(R.id.navbar_main)
+        val toolbar = requireActivity().findViewById<RelativeLayout>(R.id.toolbar)
+        navbar.setBackgroundResource(R.drawable.navbar_background)
+        toolbar.setBackgroundColor(
+            ContextCompat.getColor(
+                requireContext(),
+                R.color.black
+            )
+        )
+        val textView = toolbar.findViewById<TextView>(R.id.toolbar_text)
+        val transactionButton = requireActivity().findViewById<ImageButton>(R.id.transaction_button)
+        val graphButton = requireActivity().findViewById<ImageButton>(R.id.graph_button)
+        val settingButton = requireActivity().findViewById<ImageButton>(R.id.setting_button)
+        textView.text = "Transaksi"
+        textView.setTextColor(Color.WHITE)
+        toolbar.findViewById<ImageButton>(R.id.toolbar_back_button)
+            .setImageResource(R.drawable.ic_arrow_left_white)
+        transactionButton.isSelected = true
+        graphButton.isSelected = false
+        settingButton.isSelected = false
+
+
+
         return binding.root
     }
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
 
-        database = TransactionDB.getInstance(requireContext())
-
-
-//        val filter = IntentFilter("itb.bos.bondoman.ACTION_RANDOMIZE_TRANSACTION")
-//        requireContext().registerReceiver(receiver, filter)
-
-//        dbTransaction = DbTransaction(requireContext())
-//        dbTransaction.open()
-
-//        dbTransaction.deleteAll()
         adapter = TransactionAdapter(listTransaction)
 
         transactionData = binding.itemTransaction
         transactionData.adapter = adapter
-        transactionData.layoutManager = LinearLayoutManager(requireContext(), RecyclerView.VERTICAL, false)
-        transactionData.addItemDecoration(DividerItemDecoration(requireContext(), RecyclerView.VERTICAL))
-
+        transactionData.layoutManager =
+            LinearLayoutManager(requireContext(), RecyclerView.VERTICAL, false)
+        transactionData.addItemDecoration(
+            DividerItemDecoration(
+                requireContext(),
+                RecyclerView.VERTICAL
+            )
+        )
+
+        db = ViewModelProvider(requireActivity())[DBViewModel::class.java]
+
+        Log.d("PENDING LIST NOT EMPTY?", pendingTransaction.isNotEmpty().toString())
+        if (pendingTransaction.isNotEmpty()) {
+            if (!database.isOpen){
+                database.openHelper.writableDatabase
+            }
+            pendingTransaction.forEach { pair ->
+                Log.d("ADDED TO DB", pair.first)
+                db.addTransaksi(pair.first, "Pengeluaran", pair.second, "Unknown")
+            }
+            pendingTransaction.clear()
+        }
 
         binding.addButton.setOnClickListener {
             val intent = Intent(requireContext(), ContainerActivity::class.java)
             startActivity(intent)
         }
-//        transactionData.setHasFixedSize(true)
-//        transactionData.layoutManager = LinearLayoutManager(requireContext())
-//        loadDatas()
-
-//        val filteredList: ArrayList<SqlTransaction> = ArrayList(listTransaction)
-//        var transactionAdapter = TransactionAdapter(filteredList)
-//        transactionData.adapter = transactionAdapter
 
         binding.addButton.setOnClickListener {
             val intent = Intent(requireContext(), ContainerActivity::class.java)
             startActivity(intent)
         }
-//        searchBar = binding.searchBar
-//
-//        searchBar.addTextChangedListener(object : TextWatcher {
-//            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
-//                // Not used
-//            }
-//
-//            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
-//                // Update the filteredList based on the search text
-//                val searchText = s.toString().trim()
-//                filteredList.clear()
-//
-//                if (searchText.isEmpty()) {
-//                    // If search text is empty, show all items
-//                    filteredList.addAll(listTransaction)
-//                } else {
-//                    // Filter the list based on the search text
-//                    filteredList.addAll(listTransaction.filter { transaction ->
-//                        transaction.name != null && transaction.name!!.contains(searchText, ignoreCase = true)
-//                    })
-//                }
-//
-//                // Notify the adapter about the updated list
-//                transactionAdapter = TransactionAdapter(filteredList)
-//                transactionData.adapter = transactionAdapter
-//            }
-//
-//            override fun afterTextChanged(s: Editable?) {
-//                // Not used
-//            }
-//        })
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onRandomTransactionReceived(event: com.example.bondoman.services.RandomTransactionEvent) {
+        val transactionName = event.transactionName
+        val price = event.price
+        Log.d("TRANSACTION", transactionName+ "ADDED TO PENDING TRANSACTION")
+        pendingTransaction.add(Pair(transactionName, price))
     }
 
     override fun onDestroyView() {
         super.onDestroyView()
-        // Unregister the BroadcastReceiver when the fragment's view is destroyed
-//        requireContext().unregisterReceiver(receiver)
         database.close()
     }
 
@@ -122,150 +132,5 @@ class TransactionFragment : Fragment() {
 
         listTransaction.addAll(database.transactionDao().getAll())
         adapter.notifyDataSetChanged()
-
-//        val datas = dbTransaction.findAll()
-//
-//        datas.forEach { item ->
-//            val categoryString = item.category?.toString() ?: "PENGELUARAN"
-//            val category = TransactionCategory.valueOf(categoryString)
-//            val transaction = SqlTransaction(item.id, item.name, category, item.date, item.price, item.location)
-//            listTransaction.add(transaction)
-//        }
     }
-//    private lateinit var binding : FragmentTransaksiBinding
-//    private lateinit var transactionData : RecyclerView
-//    private val listTransaction= ArrayList<Transaction>()
-//    private lateinit var searchBar: TextView
-//    private lateinit var dbTransaction: TransactionSQL
-//    override fun onCreateView(
-//        inflater: LayoutInflater,
-//        container: ViewGroup?,
-//        savedInstanceState: Bundle?
-//    ): View {
-//        binding = FragmentTransaksiBinding.inflate(inflater, container, false)
-//        return binding.root
-//    }
-//
-//    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-//        super.onViewCreated(view, savedInstanceState)
-//        dbTransaction = TransactionSQL(requireContext())
-//        dbTransaction.open()
-//
-////        // Delete all data
-////        dbTransaction.deleteAll()
-////
-////        // Dummy data insertion
-////        insertDummyTransactions()
-//
-//        transactionData = binding.itemTransaction
-//        transactionData.setHasFixedSize(true)
-//        transactionData.layoutManager = LinearLayoutManager(requireContext())
-//        loadDatas(view)
-////        listTransaction.add(Transaction("Semen Tiga Roda","22 Maret 2024", "Pengeluaran", 200000, "Jakarta"))
-////        listTransaction.add(Transaction("Semen Tiga Roda","22 Maret 2024", "Pengeluaran", 300000, "Jakarta"))
-////        listTransaction.add(Transaction("Semen Tiga Roda","22 Maret 2024", "Pengeluaran", 300000, "Jakarta"))
-////        listTransaction.add(Transaction("Mapel Sirup","22 Maret 2024", "Pengeluaran", 100000, "Jakarta"))
-////        listTransaction.add(Transaction("Jeruks","22 Maret 2024", "Pengeluaran", 200000, "Jakarta"))
-////        listTransaction.add(Transaction("Apel","22 Maret 2024", "Pengeluaran", 300000, "Jakarta"))
-//
-//
-//        val filteredList: ArrayList<Transaction> = ArrayList(listTransaction)
-//        var transactionAdapter = TransactionAdapter(filteredList)
-//        transactionData.adapter = transactionAdapter
-//
-//        searchBar = binding.searchBar
-//
-//        searchBar.addTextChangedListener(object : TextWatcher {
-//            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
-//                // Not used
-//            }
-//
-//            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
-//                // Update the filteredList based on the search text
-//                val searchText = s.toString().trim()
-//                filteredList.clear()
-//
-//                if (searchText.isEmpty()) {
-//                    // If search text is empty, show all items
-//                    filteredList.addAll(listTransaction)
-//                } else {
-//                    // Filter the list based on the search text
-//                    filteredList.addAll(listTransaction.filter { transaction ->
-//                        transaction.name != null && transaction.name.contains(searchText, ignoreCase = true)
-//                    })
-//                }
-//
-//                // Notify the adapter about the updated list
-//                transactionAdapter = TransactionAdapter(filteredList)
-//                transactionData.adapter = transactionAdapter
-//            }
-//
-//            override fun afterTextChanged(s: Editable?) {
-//                // Not used
-//            }
-//        })
-//
-//
-//    }
-//
-//    private fun insertDummyTransactions() {
-//        val dummyTransaction1 = ContentValues().apply {
-//            put(Kontraktor.TransactionTable.NAME, "Transaction 1")
-//            put(Kontraktor.TransactionTable.CATEGORY, "Category 1")
-//            put(Kontraktor.TransactionTable.DATE, "2024-04-01")
-//            put(Kontraktor.TransactionTable.PRICE, 100)
-//            put(Kontraktor.TransactionTable.LOCATION, "Location 1")
-//        }
-//
-//        val dummyTransaction2 = ContentValues().apply {
-//            put(Kontraktor.TransactionTable.NAME, "Transaction 2")
-//            put(Kontraktor.TransactionTable.CATEGORY, "Category 2")
-//            put(Kontraktor.TransactionTable.DATE, "2024-04-02")
-//            put(Kontraktor.TransactionTable.PRICE, 200)
-//            put(Kontraktor.TransactionTable.LOCATION, "Location 2")
-//        }
-//
-//        val dummyTransaction3 = ContentValues().apply {
-//            put(Kontraktor.TransactionTable.NAME, "Transaction 3")
-//            put(Kontraktor.TransactionTable.CATEGORY, "Category 3")
-//            put(Kontraktor.TransactionTable.DATE, "2024-04-03")
-//            put(Kontraktor.TransactionTable.PRICE, 300)
-//            put(Kontraktor.TransactionTable.LOCATION, "Location 3")
-//        }
-//
-//        val dummyTransaction4 = ContentValues().apply {
-//            put(Kontraktor.TransactionTable.NAME, "Transaction 4")
-//            put(Kontraktor.TransactionTable.CATEGORY, "Category 4")
-//            put(Kontraktor.TransactionTable.DATE, "2024-04-04")
-//            put(Kontraktor.TransactionTable.PRICE, 400)
-//            put(Kontraktor.TransactionTable.LOCATION, "Location 4")
-//        }
-//
-//        val dummyTransaction5 = ContentValues().apply {
-//            put(Kontraktor.TransactionTable.NAME, "Transaction 5")
-//            put(Kontraktor.TransactionTable.CATEGORY, "Category 5")
-//            put(Kontraktor.TransactionTable.DATE, "2024-04-05")
-//            put(Kontraktor.TransactionTable.PRICE, 500)
-//            put(Kontraktor.TransactionTable.LOCATION, "Location 5")
-//        }
-//
-//        // Insert dummy transactions into the database
-//        dbTransaction.insert(dummyTransaction1)
-//        dbTransaction.insert(dummyTransaction2)
-//        dbTransaction.insert(dummyTransaction3)
-//        dbTransaction.insert(dummyTransaction4)
-//        dbTransaction.insert(dummyTransaction5)
-//
-//    }
-//
-//    fun loadDatas(view: View) {
-//
-//        insertDummyTransactions()
-//        val datas = dbTransaction.findAll()
-//
-//        datas.forEach {
-//                item ->
-//            listTransaction.add(Transaction(item.id,item.name,item.date,item.category, item.price,item.location))
-//        }
-//    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/api/ApiInterface.kt b/app/src/main/java/com/example/bondoman/appInterface/api/ApiInterface.kt
similarity index 94%
rename from app/src/main/java/com/example/bondoman/api/ApiInterface.kt
rename to app/src/main/java/com/example/bondoman/appInterface/api/ApiInterface.kt
index e30da982079fde174120e03f0c33008bb1663349..62b7a1cc47ec6a75c6a5562b3a600f72d1393e41 100644
--- a/app/src/main/java/com/example/bondoman/api/ApiInterface.kt
+++ b/app/src/main/java/com/example/bondoman/appInterface/api/ApiInterface.kt
@@ -1,4 +1,4 @@
-package com.example.bondoman.api
+package com.example.bondoman.appInterface.api
 
 import com.example.bondoman.models.LoginRequest
 import com.example.bondoman.models.LoginResponse
diff --git a/app/src/main/java/com/example/bondoman/models/SqlTransaction.kt b/app/src/main/java/com/example/bondoman/models/SqlTransaction.kt
index 518665319b22648c1cff28005f3bbd2edc207fe4..173de943075c0779eeee6ed09f02baa15c2ecf48 100644
--- a/app/src/main/java/com/example/bondoman/models/SqlTransaction.kt
+++ b/app/src/main/java/com/example/bondoman/models/SqlTransaction.kt
@@ -3,14 +3,14 @@ package com.example.bondoman.models
 import android.os.Parcel
 import android.os.Parcelable
 
-data class SqlTransaction(var id: Int=0, var name: String? = null, var category: String? =null, var date: String? =null, var price: Int? = null, var location : String? =null) :
+data class SqlTransaction(var id: Int=0, var name: String? = null, var category: String? =null, var date: String? =null, var price: Double? = null, var location : String? =null) :
     Parcelable {
     constructor(parcel: Parcel) : this(
         parcel.readInt(),
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
-        parcel.readValue(Int::class.java.classLoader) as? Int,
+        parcel.readValue(Int::class.java.classLoader) as? Double,
         parcel.readString()
     )
 
diff --git a/app/src/main/java/com/example/bondoman/retrofit/data/Transaction.kt b/app/src/main/java/com/example/bondoman/retrofit/data/Transaction.kt
index 2e1c5d14203139055b9d22fb59ce708b8dc12fc0..9938b83cfdf0180aff48150d6b1cd1bec177bd48 100644
--- a/app/src/main/java/com/example/bondoman/retrofit/data/Transaction.kt
+++ b/app/src/main/java/com/example/bondoman/retrofit/data/Transaction.kt
@@ -3,13 +3,13 @@ package com.example.bondoman.retrofit.data
 import android.os.Parcel
 import android.os.Parcelable
 
-data class Transaction(val id: Int?,val name: String?, val date: String?, val category: String?, val price: Int?, val location: String?) : Parcelable {
+data class Transaction(val id: Int?,val name: String?, val date: String?, val category: String?, val price: Double?, val location: String?) : Parcelable {
     constructor(parcel: Parcel) : this(
         parcel.readValue(Int::class.java.classLoader) as? Int,
         parcel.readString(),
         parcel.readString(),
         parcel.readString(),
-        parcel.readValue(Int::class.java.classLoader) as? Int,
+        parcel.readValue(Int::class.java.classLoader) as? Double,
         parcel.readString()
     )
 
diff --git a/app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt b/app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt
index a08188c8942955b19a57bf08151b7bca15d257e7..30d45e837d1c8111b26cf5fd7dffb69ca7be29e7 100644
--- a/app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt
+++ b/app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt
@@ -7,7 +7,7 @@ import androidx.room.RoomDatabase
 import com.example.bondoman.retrofit.data.dao.TransactionDao
 import com.example.bondoman.retrofit.data.entity.TransactionEntity
 
-@Database(entities = [TransactionEntity::class], version = 2)
+@Database(entities = [TransactionEntity::class], version = 3)
 abstract class TransactionDB : RoomDatabase() {
     abstract fun transactionDao(): TransactionDao
 
@@ -18,6 +18,7 @@ abstract class TransactionDB : RoomDatabase() {
             if (instance==null){
                 instance = Room.databaseBuilder(context, TransactionDB::class.java, "db")
                     .allowMainThreadQueries()
+                    .fallbackToDestructiveMigration()
                     .build()
             }
 
diff --git a/app/src/main/java/com/example/bondoman/retrofit/data/entity/TransactionEntitiy.kt b/app/src/main/java/com/example/bondoman/retrofit/data/entity/TransactionEntitiy.kt
index efed10853ea363b2e51aba1f131c5a98120a199d..8661e9ab757cf45d4756020b7475fa1f5f185e32 100644
--- a/app/src/main/java/com/example/bondoman/retrofit/data/entity/TransactionEntitiy.kt
+++ b/app/src/main/java/com/example/bondoman/retrofit/data/entity/TransactionEntitiy.kt
@@ -15,6 +15,6 @@ data class TransactionEntity(
     @ColumnInfo(name = "nama_transaksi") var name: String? = null,
     @ColumnInfo(name = "kategori_transaksi") var category: Category? = null,
     @ColumnInfo(name = "tanggal_transaksi") var date: String? = null,
-    @ColumnInfo(name = "nominal_transaksi") var price: Int? = null,
+    @ColumnInfo(name = "nominal_transaksi") var price: Double? = null,
     @ColumnInfo(name = "lokasi_transaksi") var location: String? = null
 )
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/services/RandomTransactionEvent.kt b/app/src/main/java/com/example/bondoman/services/RandomTransactionEvent.kt
new file mode 100644
index 0000000000000000000000000000000000000000..5056bcf1f2d9eea42d44d69a8ed6e2b46f0b20cb
--- /dev/null
+++ b/app/src/main/java/com/example/bondoman/services/RandomTransactionEvent.kt
@@ -0,0 +1,3 @@
+package com.example.bondoman.services
+
+class RandomTransactionEvent (val transactionName: String, val price: Double)
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/services/RandomizeTransaction.kt b/app/src/main/java/com/example/bondoman/services/RandomizeTransaction.kt
index 9f0e0539e4070e5664382cd71802012630ddd8a6..33326fac8b2fa315b70fb46be966b5dd2efd3afa 100644
--- a/app/src/main/java/com/example/bondoman/services/RandomizeTransaction.kt
+++ b/app/src/main/java/com/example/bondoman/services/RandomizeTransaction.kt
@@ -10,18 +10,15 @@
     import androidx.appcompat.app.AppCompatActivity
     import com.example.bondoman.LogoutFragment
     import com.example.bondoman.R
+    import org.greenrobot.eventbus.EventBus
 
     class RandomizeTransaction : BroadcastReceiver() {
-        private var text: String = ""
+        private var transactionName: String = ""
+        private var price: Double = 0.0
         override fun onReceive(context: Context?, intent: Intent?) {
-            text  = intent?.getStringExtra("transactionName").toString()
-
-            Log.d("BroadcastRandomizeTransaction", "Random text: $text")
-
-//            val activity = context as? AppCompatActivity
-//            activity?.runOnUiThread {
-//                val fragment = activity.supportFragmentManager.findFragmentById(R.id.fragment_container) as? LogoutFragment
-//                fragment?.updateEditText(randomText)
-//            }
+            transactionName  = intent?.getStringExtra("transactionName") ?: ""
+            price = intent?.getDoubleExtra("price", 0.0 ) ?: 0.0
+            Log.d("BroadcastRandomizeTransaction", "Random text: $transactionName $price")
+            EventBus.getDefault().post(RandomTransactionEvent(transactionName, price))
         }
     }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/utils/RetrofitInstance.kt b/app/src/main/java/com/example/bondoman/utils/RetrofitInstance.kt
index b9bee5f00a0815157b618706909992f3cb7d8626..6f71f155f7cc36b05212e5515c07fa0bfb47de59 100644
--- a/app/src/main/java/com/example/bondoman/utils/RetrofitInstance.kt
+++ b/app/src/main/java/com/example/bondoman/utils/RetrofitInstance.kt
@@ -1,6 +1,6 @@
 package com.example.bondoman.utils
 
-import com.example.bondoman.api.ApiInterface
+import com.example.bondoman.appInterface.api.ApiInterface
 import retrofit2.Retrofit
 import retrofit2.converter.gson.GsonConverterFactory
 
diff --git a/app/src/main/res/drawable/navbar_background_vertical.xml b/app/src/main/res/drawable/navbar_background_vertical.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f7870684f1164affa92c72b9b0bf63766516a313
--- /dev/null
+++ b/app/src/main/res/drawable/navbar_background_vertical.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="58dp"
+    android:height="202dp"
+    android:viewportWidth="58"
+    android:viewportHeight="202">
+  <path
+      android:pathData="M0,182L0,20A20,20 0,0 1,20 0L38,0A20,20 0,0 1,58 20L58,182A20,20 0,0 1,38 202L20,202A20,20 0,0 1,0 182z"
+      android:fillColor="#1B1A55"/>
+</vector>
diff --git a/app/src/main/res/layout-land/navbar_layout.xml b/app/src/main/res/layout-land/navbar_layout.xml
new file mode 100644
index 0000000000000000000000000000000000000000..165f0cc1e9f6a881ff899ce7d2b0b669544f8a28
--- /dev/null
+++ b/app/src/main/res/layout-land/navbar_layout.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+    <LinearLayout
+        android:layout_width="98dp"
+        android:layout_height="340dp"
+        android:background="@android:color/transparent"
+        android:orientation="vertical"
+        android:layout_marginTop="?attr/actionBarSize"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent">
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_marginBottom="60dp"
+            android:layout_marginTop="60dp"
+            android:layout_marginEnd="40dp"
+            android:orientation="vertical"
+            android:background="@android:color/transparent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent" >
+            <LinearLayout
+                android:id="@+id/navbar_scanner"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@android:color/transparent"
+                android:orientation="vertical"
+                app:layout_constraintBottom_toTopOf="@+id/navbar_scanner"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toTopOf="parent">
+                <ImageButton
+                    android:id="@+id/scan_button"
+                    android:layout_width="wrap_content"
+                    android:layout_height="0dp"
+                    android:layout_weight="1"
+                    android:background="@drawable/scanner_background"
+                    android:contentDescription="@string/scan_button_description"
+                    android:src="@drawable/ic_scanner_white" />
+            </LinearLayout>
+            <LinearLayout
+                android:id="@+id/navbar_main"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="18dp"
+                android:background="@drawable/navbar_background_vertical"
+                android:orientation="vertical"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/navbar_scanner"
+                app:layout_constraintBottom_toBottomOf="parent">
+                <ImageButton
+                    android:id="@+id/setting_button"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:background="@android:color/transparent"
+                    android:contentDescription="@string/setting_button_description"
+                    android:src="@drawable/ic_setting" />
+                <ImageButton
+                    android:id="@+id/graph_button"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:background="@android:color/transparent"
+                    android:contentDescription="@string/graph_button_description"
+                    android:src="@drawable/ic_grafik" />
+                <ImageButton
+                    android:id="@+id/transaction_button"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:background="@android:color/transparent"
+                    android:contentDescription="@string/transaction_button_description"
+                    android:src="@drawable/ic_transaksi" />
+            </LinearLayout>
+        </LinearLayout>
+    </LinearLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/navbar_layout.xml b/app/src/main/res/layout/navbar_layout.xml
index 59eb3e438134096ba4696275c1b55392e251da66..17f712eaf2fc533ed7e2ee64142e59f699fb6c10 100644
--- a/app/src/main/res/layout/navbar_layout.xml
+++ b/app/src/main/res/layout/navbar_layout.xml
@@ -3,7 +3,6 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
-
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -12,20 +11,17 @@
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent">
-
         <LinearLayout
-
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginStart="60dp"
             android:layout_marginEnd="60dp"
             android:layout_marginBottom="40dp"
-            android:background="@android:color/transparent"
             android:orientation="horizontal"
+            android:background="@android:color/transparent"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent">
-
             <LinearLayout
                 android:id="@+id/navbar_main"
                 android:layout_width="wrap_content"
@@ -36,17 +32,14 @@
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintEnd_toStartOf="@id/navbar_scanner"
                 app:layout_constraintStart_toStartOf="parent">
-
                 <ImageButton
                     android:id="@+id/transaction_button"
-                    android:clickable="true"
                     android:layout_width="wrap_content"
                     android:layout_height="match_parent"
                     android:layout_weight="1"
                     android:background="@android:color/transparent"
                     android:contentDescription="@string/transaction_button_description"
                     android:src="@drawable/ic_transaksi" />
-
                 <ImageButton
                     android:id="@+id/graph_button"
                     android:layout_width="wrap_content"
@@ -55,7 +48,6 @@
                     android:background="@android:color/transparent"
                     android:contentDescription="@string/graph_button_description"
                     android:src="@drawable/ic_grafik" />
-
                 <ImageButton
                     android:id="@+id/setting_button"
                     android:layout_width="wrap_content"
@@ -65,7 +57,6 @@
                     android:contentDescription="@string/setting_button_description"
                     android:src="@drawable/ic_setting" />
             </LinearLayout>
-
             <LinearLayout
                 android:id="@+id/navbar_scanner"
                 android:layout_width="wrap_content"
@@ -75,7 +66,6 @@
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintStart_toEndOf="@id/navbar_main">
-
                 <ImageButton
                     android:id="@+id/scan_button"
                     android:layout_width="0dp"
@@ -87,12 +77,4 @@
             </LinearLayout>
         </LinearLayout>
     </LinearLayout>
-
-
-    <androidx.constraintlayout.widget.Guideline
-        android:id="@+id/guideline"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        app:layout_constraintGuide_begin="20dp" />
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file