diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt
new file mode 100644
index 0000000000000000000000000000000000000000..5a438050f5086e0f17af9662e6823e50612f6d9b
--- /dev/null
+++ b/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt
@@ -0,0 +1,70 @@
+package com.example.bondoyap.ui.transactions
+
+import android.R
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ArrayAdapter
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import com.example.bondoyap.databinding.FragmentAddTransactionsBinding
+import com.example.bondoyap.databinding.FragmentEditTransactionsBinding
+
+class EditTransactionsFragment : Fragment() {
+
+    private var _binding: FragmentEditTransactionsBinding? = null
+
+    // This property is only valid between onCreateView and
+    // onDestroyView.
+    private val binding get() = _binding!!
+
+    private val transactionsViewModel: TransactionsViewModel by viewModels {
+        TransactionsViewModelFactory((requireContext().applicationContext as TransactionsApplication).repository)
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View {
+        _binding = FragmentEditTransactionsBinding.inflate(inflater, container, false)
+
+        val pemasukan = "Pemasukan"
+        val pengeluaran = "Pengeluaran"
+
+        val categories = arrayOf(pemasukan, pengeluaran)
+        val adapter = ArrayAdapter(requireContext(), R.layout.simple_spinner_item, categories)
+
+        adapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item)
+        binding.spinnerKategori.adapter = adapter
+
+
+
+        binding.buttonSimpan.setOnClickListener {
+            val isPemasukan: Boolean = when (binding.spinnerKategori.selectedItem.toString()) {
+                pemasukan -> true
+                else -> false
+            }
+
+            val transaction: Transactions = Transactions(
+                judul = binding.editTextJudul.text.toString(),
+                nominal = binding.editTextNominal.text.toString().toDouble(),
+                isPemasukan = isPemasukan
+            )
+
+            transactionsViewModel.upsert(transaction)
+
+            binding.editTextJudul.text.clear()
+            binding.editTextNominal.text.clear()
+            binding.spinnerKategori.setSelection(0)
+        }
+
+        return binding.root
+    }
+
+    override fun onDestroyView() {
+        super.onDestroyView()
+        _binding = null
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsFragment.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsFragment.kt
index d7ecda39782ae64f760d850dd2a1e04a84bb24da..02ae440ad0e4bcd1319ac5d03558c8c7614e3435 100644
--- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsFragment.kt
+++ b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsFragment.kt
@@ -37,8 +37,8 @@ class TransactionsFragment: Fragment() {
         recyclerView.adapter = adapter
         recyclerView.layoutManager = LinearLayoutManager(requireContext())
 
-        transactionsViewModel.allTransactions.observe(viewLifecycleOwner, Observer { words ->
-            words?.let { adapter.submitList(it) }
+        transactionsViewModel.allTransactions.observe(viewLifecycleOwner, Observer { transactions ->
+            transactions?.let { adapter.submitList(it) }
         })
 
         binding.buttonAddTransaction.setOnClickListener {
diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsListAdapter.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsListAdapter.kt
index 27979437e21a0113368b25e24db0a62cc72d91de..c19d6bd754ba08d10edabdebeb943b2f4563df5f 100644
--- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsListAdapter.kt
+++ b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsListAdapter.kt
@@ -4,6 +4,9 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.TextView
+import androidx.cardview.widget.CardView
+import androidx.navigation.Navigation
+import androidx.navigation.fragment.findNavController
 import androidx.recyclerview.widget.DiffUtil
 import androidx.recyclerview.widget.ListAdapter
 import androidx.recyclerview.widget.RecyclerView
@@ -24,6 +27,7 @@ class TransactionsListAdapter :
 }
 
 class TransactionsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+    private val cardView: CardView = itemView.findViewById(R.id.cardViewTransaction)
     private val transactionTitle: TextView = itemView.findViewById(R.id.transactionTitle)
     private val transactionAmount: TextView = itemView.findViewById(R.id.transactionAmount)
     private val transactionCategory: TextView = itemView.findViewById(R.id.transactionCategory)
@@ -36,6 +40,10 @@ class TransactionsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
             true -> "Pemasukan"
             else -> "Pengeluaran"
         }
+
+        cardView.setOnClickListener {
+            Navigation.findNavController(itemView).navigate(R.id.navigation_edit_transactions)
+        }
     }
 
     companion object {
diff --git a/app/src/main/res/layout/fragment_edit_transactions.xml b/app/src/main/res/layout/fragment_edit_transactions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5f8dcfe23bf8f2e46b518f34da93edc1590b63ad
--- /dev/null
+++ b/app/src/main/res/layout/fragment_edit_transactions.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:padding="16dp"
+    android:orientation="vertical">
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/textfield_label_judul" />
+    <EditText
+        android:id="@+id/editText_judul"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:autofillHints="judul"
+        android:hint="@string/hint_judul"
+        android:inputType="text"
+        android:layout_marginBottom="16dp" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/textfield_label_nominal" />
+    <EditText
+        android:id="@+id/editText_nominal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:autofillHints="nominal"
+        android:hint="@string/hint_nominal"
+        android:inputType="numberDecimal"
+        android:layout_marginBottom="16dp" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/textfield_label_kategori" />
+    <Spinner
+        android:id="@+id/spinner_kategori"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="16dp" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+
+        <Button
+            android:id="@+id/button_simpan"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:layout_marginEnd="8dp"
+            android:text="@string/button_simpan" />
+
+        <Button
+            android:id="@+id/button_hapus"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="@string/button_hapus"
+            android:backgroundTint="@color/red"/>
+
+    </LinearLayout>
+
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/recyclerview_transactions.xml b/app/src/main/res/layout/recyclerview_transactions.xml
index b7809f7cc03bd59809e9f5da9ab116c2fbd201ee..61d9975dfbc8c4533747c7756a078495a5c85875 100644
--- a/app/src/main/res/layout/recyclerview_transactions.xml
+++ b/app/src/main/res/layout/recyclerview_transactions.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/cardViewTransaction"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_margin="8dp"
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index bfdc4512aaa3b795a254da2738f18131e0d02902..27c15a681a39c24c4ffedbc1e5ff8e7864537988 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -23,6 +23,12 @@
         android:label="@string/title_transactions"
         tools:layout="@layout/fragment_add_transactions" />
 
+    <fragment
+        android:id="@+id/navigation_edit_transactions"
+        android:name="com.example.bondoyap.ui.transactions.EditTransactionsFragment"
+        android:label="@string/title_transactions"
+        tools:layout="@layout/fragment_edit_transactions" />
+
     <fragment
         android:id="@+id/navigation_scanner"
         android:name="com.example.bondoyap.ui.scanner.ScannerFragment"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7aa97cdc1f659dfb654c22ca9393426f44f1beb3..2846dd1e8183e24214ca989ddc92c832d6624f57 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -27,6 +27,7 @@
     <string name="textfield_label_kategori">Kategori</string>
     <string name="textfield_label_lokasi">Lokasi</string>
     <string name="button_simpan">Simpan</string>
+    <string name="button_hapus">Hapus</string>
     <string name="hint_judul">Enter Judul</string>
     <string name="hint_nominal">Enter Nominal</string>
     <string name="hint_kategori">Enter Kategori</string>