diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 1c1e3726accbfd644fb93cc96b67bd8154e8063c..3f71f6b5fd700b4a0e0c9adeb5bb41925dad3374 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -53,4 +53,43 @@ dependencies {
     testImplementation("junit:junit:4.13.2")
     androidTestImplementation("androidx.test.ext:junit:1.1.5")
     androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
+
+    implementation("androidx.room:room-runtime:2.6.1")
+    annotationProcessor("androidx.room:room-compiler:2.6.1")
+
+    kapt("androidx.room:room-compiler:2.6.1")
+
+    implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")
+    implementation("com.google.android.material:material:1.11.0")
+    implementation("com.google.code.gson:gson:2.10")
+    implementation("androidx.constraintlayout:constraintlayout:2.1.4")
+    testImplementation("junit:junit:4.13.2")
+    androidTestImplementation("androidx.test.ext:junit:1.1.5")
+    androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
+    implementation("com.squareup.retrofit2:converter-gson:2.9.0")
+    implementation("com.squareup.retrofit2:retrofit:2.9.0")
+    implementation("com.squareup.retrofit2:converter-gson:2.9.0")
+    implementation("com.squareup.retrofit2:converter-scalars:2.1.0")
+    implementation("com.squareup.okhttp3:logging-interceptor:4.4.0")
+    implementation("org.apache.poi:poi:3.17")
+    implementation("org.apache.poi:poi-ooxml:3.17")
+    implementation("javax.xml.stream:stax-api:1.0")
+    implementation("org.apache.xmlbeans:xmlbeans:3.1.0")
+    implementation("com.fasterxml:aalto-xml:1.2.2")
+    implementation("com.github.bumptech.glide:glide:4.12.0")
+    implementation("com.github.bumptech.glide:complier:4.12.0")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8beb467f97e42f1076585f61954e3ac9ff8c3419..134140e48207243b53b1849046752bd230022e5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,7 +2,11 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools">
 
-    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.INTERNET"/>
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 
     <application
         android:name=".BondowowoApp"
diff --git a/app/src/main/java/com/atm/bondowowo/adapter/TransactionAdapter.kt b/app/src/main/java/com/atm/bondowowo/adapter/TransactionAdapter.kt
new file mode 100644
index 0000000000000000000000000000000000000000..d1c5c5ca5b066e8631b919b59ef2a57e05753258
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/adapter/TransactionAdapter.kt
@@ -0,0 +1,59 @@
+package com.atm.bondowowo.adapter
+
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.atm.bondowowo.R
+import com.atm.bondowowo.data.entity.Transaction
+class TransactionAdapter(var list: List<Transaction>) : RecyclerView.Adapter<TransactionAdapter.ViewHolder>() {
+
+    private lateinit var dialog: Dialog
+
+    fun setDialog(dialog: Dialog){
+        this.dialog = dialog
+    }
+    interface Dialog{
+        fun onClick(position: Int)
+    }
+
+    inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view){
+        var nama_transaksi: TextView
+        var nominal_transaksi: TextView
+        var kategori_transaksi: TextView
+        var tgl_transaksi: TextView
+        var lokasi_transaksi: TextView
+        init{
+            nama_transaksi = view.findViewById(R.id.transaction_name)
+            nominal_transaksi = view.findViewById(R.id.transaction_nominal)
+            kategori_transaksi = view.findViewById(R.id.transaction_cat)
+            tgl_transaksi = view.findViewById(R.id.transaction_date)
+            lokasi_transaksi = view.findViewById(R.id.transaction_loc)
+
+            view.setOnClickListener{
+                dialog.onClick(layoutPosition)
+            }
+
+        }
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+        val view = LayoutInflater.from(parent.context).inflate(R.layout.row_transaction, parent, false)
+        return ViewHolder(view)
+    }
+
+    override fun getItemCount(): Int {
+        return list.size
+    }
+
+    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+        holder.nama_transaksi.text = list[position].nama
+        holder.nominal_transaksi.text = list[position].nominal.toString()
+        holder.kategori_transaksi.text = list[position].kategori
+        holder.lokasi_transaksi.text = list[position].lokasi
+        holder.tgl_transaksi.text = list[position].date.toString()
+
+    }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/atm/bondowowo/data/AppDatabase.kt b/app/src/main/java/com/atm/bondowowo/data/AppDatabase.kt
new file mode 100644
index 0000000000000000000000000000000000000000..37884407c02db6d46dc72c9fd1754f0a9a9cdc1a
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/data/AppDatabase.kt
@@ -0,0 +1,31 @@
+package com.atm.bondowowo.data
+
+import android.content.Context
+import androidx.room.Database
+import androidx.room.Room
+import androidx.room.RoomDatabase
+import androidx.room.TypeConverters
+import com.atm.bondowowo.data.dao.TransactionDao
+import com.atm.bondowowo.data.entity.Transaction
+
+@Database(entities = [Transaction::class], version = 1)
+@TypeConverters(Converters::class)
+abstract class AppDatabase: RoomDatabase() {
+    abstract fun transactionDao(): TransactionDao
+
+    companion object{
+        private var instance: AppDatabase? = null
+
+        fun getInstance(context: Context): AppDatabase{
+            if(instance == null){
+                instance = Room.databaseBuilder(context, AppDatabase::class.java, name = "app-database")
+                    .fallbackToDestructiveMigration()
+                    .allowMainThreadQueries()
+                    .build()
+            }
+            return instance!!
+        }
+    }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/atm/bondowowo/data/Converters.kt b/app/src/main/java/com/atm/bondowowo/data/Converters.kt
new file mode 100644
index 0000000000000000000000000000000000000000..49e875102c36ae663a8da798dbf3049319c6bda4
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/data/Converters.kt
@@ -0,0 +1,16 @@
+package com.atm.bondowowo.data
+
+import androidx.room.TypeConverter
+import java.time.LocalDateTime
+
+class Converters {
+    @TypeConverter
+    fun fromTimestamp(value: String?): LocalDateTime? {
+        return value?.let { LocalDateTime.parse(it) }
+    }
+
+    @TypeConverter
+    fun dateToTimestamp(date: LocalDateTime?): String? {
+        return date?.toString()
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/atm/bondowowo/data/dao/TransactionDao.kt b/app/src/main/java/com/atm/bondowowo/data/dao/TransactionDao.kt
new file mode 100644
index 0000000000000000000000000000000000000000..bc0dd890c52b99ea23a13a83507a3c90d58b22ab
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/data/dao/TransactionDao.kt
@@ -0,0 +1,26 @@
+package com.atm.bondowowo.data.dao
+
+import androidx.room.Dao
+import androidx.room.Delete
+import androidx.room.Insert
+import androidx.room.Query
+import androidx.room.Update
+import com.atm.bondowowo.data.entity.Transaction
+
+@Dao
+interface TransactionDao {
+    @Query("SELECT * FROM `Transaction`")
+    fun getAll(): List<Transaction>
+
+    @Insert
+    fun insertAll(vararg transactions: Transaction)
+
+    @Delete
+    fun delete(transaction: Transaction)
+
+    @Query("SELECT * FROM `Transaction` WHERE id = :id")
+    fun get(id: Int): Transaction
+
+    @Update
+    fun update(transaction: Transaction)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/atm/bondowowo/data/entity/Transaction.kt b/app/src/main/java/com/atm/bondowowo/data/entity/Transaction.kt
new file mode 100644
index 0000000000000000000000000000000000000000..2f35c3300fb03ebcb8bb7a99d0dd3a01a4b9e246
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/data/entity/Transaction.kt
@@ -0,0 +1,18 @@
+package com.atm.bondowowo.data.entity
+
+import androidx.room.ColumnInfo
+import androidx.room.Entity
+import androidx.room.PrimaryKey
+import java.sql.Date
+import java.time.LocalDateTime
+
+@Entity
+data class Transaction(
+    @PrimaryKey(autoGenerate = true) var id: Int? = null,
+    @ColumnInfo(name = "date") var date: LocalDateTime?,
+    @ColumnInfo(name = "nama") var nama: String?,
+    @ColumnInfo(name = "kategori") var kategori: String?,
+    @ColumnInfo(name = "nominal") var nominal: Double?,
+    @ColumnInfo(name = "lokasi") var lokasi: String?
+
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt
new file mode 100644
index 0000000000000000000000000000000000000000..1249c07397ce1cc4ac6003679346cc8e22040369
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt
@@ -0,0 +1,34 @@
+package com.atm.bondowowo.ui.transaction
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import com.atm.bondowowo.R
+import com.atm.bondowowo.ui.transaction.TransactionFragment.TransactionInteractionListener
+
+class TransactionActivity : AppCompatActivity(), TransactionInteractionListener {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.fragment_transaction)
+
+        val fragment = TransactionFragment()
+        fragment.setListener(this)
+
+        supportFragmentManager.beginTransaction()
+            .replace(R.id.transactionFragment, fragment)
+            .commit()
+    }
+
+    override fun onTransactionItemClick(transactionId: Int?) {
+        val intent = Intent(this, TransactionInputFragment::class.java)
+        intent.putExtra("id", transactionId)
+        startActivity(intent)
+    }
+
+    override fun onAddTransactionButtonClick() {
+        // Navigasi ke TransactionInputFragment
+        val intent = Intent(this, TransactionInputFragment::class.java)
+        startActivity(intent)
+    }
+}
diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt
index d41b87ec9e1536f93b12882f02f7f9587e5c9148..1ee53cf7439f25a7677b3bd322885acc94f0f52a 100644
--- a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt
@@ -1,11 +1,22 @@
 package com.atm.bondowowo.ui.transaction
 
+import android.app.AlertDialog
+import android.content.DialogInterface
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.fragment.app.Fragment
 import com.atm.bondowowo.R
+import androidx.recyclerview.widget.DividerItemDecoration
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.atm.bondowowo.R
+import com.atm.bondowowo.adapter.TransactionAdapter
+import com.atm.bondowowo.data.AppDatabase
+import com.atm.bondowowo.data.entity.Transaction
+import com.google.android.material.floatingactionbutton.FloatingActionButton
+
 
 
 class TransactionFragment : Fragment() {
@@ -15,4 +26,76 @@ class TransactionFragment : Fragment() {
         return inflater.inflate(R.layout.fragment_transaction, container, false)
     }
 
+    private lateinit var recyclerView: RecyclerView
+    private lateinit var fab: FloatingActionButton
+    private var list = mutableListOf<Transaction>()
+    private lateinit var adapter: TransactionAdapter
+    private lateinit var database: AppDatabase
+    private lateinit var listener: TransactionInteractionListener
+
+    interface TransactionInteractionListener {
+        fun onTransactionItemClick(transactionId: Int?)
+        fun onAddTransactionButtonClick()
+    }
+
+    fun setListener(listener: TransactionInteractionListener) {
+        this.listener = listener
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        val view = inflater.inflate(R.layout.fragment_transaction, container, false)
+        recyclerView = view.findViewById(R.id.cart_list)
+        fab = view.findViewById(R.id.fab)
+
+        val context = requireActivity().applicationContext
+        database = AppDatabase.getInstance(context)
+        adapter = TransactionAdapter(list)
+
+        adapter.setDialog(object : TransactionAdapter.Dialog {
+            override fun onClick(position: Int) {
+                val dialog = AlertDialog.Builder(requireContext())
+                dialog.setTitle(list[position].nama)
+                dialog.setItems(R.array.transaction_option,
+                    DialogInterface.OnClickListener { dialog, which ->
+                        if (which == 0) {
+                            listener.onTransactionItemClick(list[position].id)
+                        } else if (which == 1) {
+                            database.transactionDao().delete(list[position])
+                            getData()
+                        } else {
+                            dialog.dismiss()
+                        }
+                    })
+                val dialogView = dialog.create()
+                dialogView.show()
+            }
+        })
+
+        recyclerView.adapter = adapter
+        recyclerView.layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false)
+        recyclerView.addItemDecoration(
+            DividerItemDecoration(context, RecyclerView.VERTICAL)
+        )
+
+        fab.setOnClickListener {
+            listener.onAddTransactionButtonClick()
+        }
+
+        return view
+    }
+
+    override fun onResume() {
+        super.onResume()
+        getData()
+    }
+
+    private fun getData() {
+        list.clear()
+        list.addAll(database.transactionDao().getAll())
+        adapter.notifyDataSetChanged()
+    }
 }
diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt
new file mode 100644
index 0000000000000000000000000000000000000000..92f03587636e2c9b1d8a0d16bf3c2b8572b6ad18
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt
@@ -0,0 +1,80 @@
+package com.atm.bondowowo.ui.transaction
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Button
+import android.widget.EditText
+import android.widget.Toast
+import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
+import com.atm.bondowowo.R
+import com.atm.bondowowo.data.AppDatabase
+import com.atm.bondowowo.data.entity.Transaction
+import java.time.LocalDateTime
+
+class TransactionInputFragment : Fragment() {
+    private lateinit var nama_transaksi: EditText
+    private lateinit var nominal_transaksi: EditText
+    private lateinit var kategori_transaksi: EditText
+    private lateinit var lokasi_transaksi: EditText
+    private lateinit var btnSave: Button
+    private lateinit var database: AppDatabase
+
+    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+        val view = inflater.inflate(R.layout.fragment_transaction_input, container, false)
+
+        nama_transaksi = view.findViewById(R.id.nama_transaksi)
+        nominal_transaksi = view.findViewById(R.id.nomimal_transaksi)
+        kategori_transaksi = view.findViewById(R.id.kategori_transaksi)
+        lokasi_transaksi = view.findViewById(R.id.lokasi_transaksi)
+        btnSave = view.findViewById(R.id.btn_save)
+
+        database = AppDatabase.getInstance(requireContext())
+
+        val args = arguments
+        if (args != null) {
+            val id = args.getInt("id", 0)
+            val transaction = database.transactionDao().get(id)
+
+            nama_transaksi.setText(transaction.nama)
+            nominal_transaksi.setText(transaction.nominal.toString())
+            kategori_transaksi.setText(transaction.kategori)
+            lokasi_transaksi.setText(transaction.lokasi)
+        }
+
+        btnSave.setOnClickListener {
+            if (nama_transaksi.text.isNotEmpty() && nominal_transaksi.text.isNotEmpty() && kategori_transaksi.text.isNotEmpty() && lokasi_transaksi.text.isNotEmpty()) {
+                if (args != null) {
+                    database.transactionDao().update(
+                        Transaction(
+                            args.getInt("id", 0),
+                            LocalDateTime.now(),
+                            nama_transaksi.text.toString(),
+                            kategori_transaksi.text.toString(),
+                            nominal_transaksi.text.toString().toDouble(),
+                            lokasi_transaksi.text.toString()
+                        )
+                    )
+                } else {
+                    database.transactionDao().insertAll(
+                        Transaction(
+                            null,
+                            LocalDateTime.now(),
+                            nama_transaksi.text.toString(),
+                            kategori_transaksi.text.toString(),
+                            nominal_transaksi.text.toString().toDouble(),
+                            lokasi_transaksi.text.toString()
+                        )
+                    )
+                    findNavController().navigate(R.id.action_transactionInputFragment_to_transactionFragment)
+                }
+            } else {
+                Toast.makeText(requireContext(), "Input invalid", Toast.LENGTH_SHORT).show()
+            }
+        }
+
+        return view
+    }
+}
diff --git a/app/src/main/res/layout/fragment_transaction_input.xml b/app/src/main/res/layout/fragment_transaction_input.xml
new file mode 100644
index 0000000000000000000000000000000000000000..865f4347455d620558a4971929679d507d2a9c5c
--- /dev/null
+++ b/app/src/main/res/layout/fragment_transaction_input.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout 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:orientation="vertical"
+    tools:context="com.atm.bondowowo.ui.transaction.TransactionInputFragment">
+
+    <com.google.android.material.appbar.AppBarLayout
+        android:id="@+id/header"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginVertical="8dp"
+            android:text="@string/transaksi"
+            android:textColor="@color/black"
+            android:textSize="20sp"
+            android:textStyle="bold" />
+    </com.google.android.material.appbar.AppBarLayout>
+
+    <com.google.android.material.textfield.TextInputLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="20dp"
+        android:layout_marginTop="130dp"
+        android:layout_marginRight="30dp"
+        android:layout_marginLeft="30dp"
+        >
+        <EditText
+            android:id="@+id/nama_transaksi"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:inputType="text"
+            android:hint="Nama transaksi"/>
+    </com.google.android.material.textfield.TextInputLayout>
+
+    <com.google.android.material.textfield.TextInputLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="20dp"
+        android:layout_marginTop="5dp"
+        android:layout_marginRight="30dp"
+        android:layout_marginLeft="30dp">
+        <EditText
+            android:id="@+id/nomimal_transaksi"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:inputType="number"
+            android:hint="Nominal"/>
+    </com.google.android.material.textfield.TextInputLayout>
+
+    <com.google.android.material.textfield.TextInputLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="20dp"
+        android:layout_marginTop="5dp"
+        android:layout_marginRight="30dp"
+        android:layout_marginLeft="30dp">
+        <EditText
+            android:id="@+id/kategori_transaksi"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:inputType="text"
+            android:hint="Kategori (pengeluaran/pemasukan)"/>
+    </com.google.android.material.textfield.TextInputLayout>
+
+    <com.google.android.material.textfield.TextInputLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="20dp"
+        android:layout_marginTop="5dp"
+        android:layout_marginRight="30dp"
+        android:layout_marginLeft="30dp">
+        <EditText
+            android:id="@+id/lokasi_transaksi"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:inputType="text"
+            android:hint="Lokasi"/>
+    </com.google.android.material.textfield.TextInputLayout>
+
+    <Button
+        android:id="@+id/btn_save"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="Save"
+        android:layout_marginLeft="70dp"
+        android:layout_marginRight="70dp"
+        />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/row_transaction.xml b/app/src/main/res/layout/row_transaction.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d56ea0a350e5a23196c7619e6ccd5372bf2020d8
--- /dev/null
+++ b/app/src/main/res/layout/row_transaction.xml
@@ -0,0 +1,34 @@
+<?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="wrap_content"
+    android:orientation="vertical"
+    android:padding="13dp"
+    android:layout_marginTop="20dp">
+    <TextView
+        android:id="@+id/transaction_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textStyle="bold"/>
+    <TextView
+        android:id="@+id/transaction_date"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        />
+    <TextView
+        android:id="@+id/transaction_cat"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        />
+    <TextView
+        android:id="@+id/transaction_nominal"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        />
+    <TextView
+        android:id="@+id/transaction_loc"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
index c10d9c4870dc825cf47cd290f3657593957828b5..6019c4af464918d581bd04835109170ad7e7aa1a 100644
--- a/app/src/main/res/navigation/nav_graph.xml
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -8,8 +8,14 @@
     <fragment
         android:id="@+id/transactionFragment"
         android:name="com.atm.bondowowo.ui.transaction.TransactionFragment"
-        android:label="Transaksi"
-        tools:layout="@layout/fragment_transaction" />
+        android:label="TransactionFragment">
+
+        <action
+            android:id="@+id/action_transactionFragment_to_transactionInputFragment"
+            app:destination="@id/transactionInputFragment" />
+
+    </fragment>
+
 
     <fragment
         android:id="@+id/scanFragment"
@@ -29,4 +35,14 @@
         android:label="Pengaturan"
         tools:layout="@layout/fragment_settings" />
 
+    <fragment
+        android:id="@+id/transactionInputFragment"
+        android:name="com.atm.bondowowo.ui.transaction.TransactionInputFragment"
+        android:label="fragment_transaction_input"
+        tools:layout="@layout/fragment_transaction_input" >
+        <action
+            android:id="@+id/action_transactionInputFragment_to_transactionFragment"
+            app:destination="@id/transactionFragment" />
+    </fragment>
+
 </navigation>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0756b211cd6bccd1caaa42af429bb02ad7f4c697..5cc739c92f594ecffb54970a2b231c4a7debca03 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,4 +6,9 @@
     <string name="pengaturan">Pengaturan</string>
     <string name="add">+</string>
     <string name="capture">Capture</string>
+    <string-array name="transaction_option">
+        <item>Edit</item>
+        <item>Delete</item>
+        <item>Cancel</item>
+    </string-array>
 </resources>
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index a6711ae4bb2aa2ece2ee114e6a81933141669b25..3893b8309e82cda878bd47d6c643304e6c98b23d 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,4 +2,5 @@
 plugins {
     id("com.android.application") version "8.2.1" apply false
     id("org.jetbrains.kotlin.android") version "1.9.22" apply false
+
 }
\ No newline at end of file