diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 38151702dfe5d0cf31af0007d37328c974b40bce..23e166c33bb98fe569730716e984bd08c883f170 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -4,6 +4,18 @@
     <value>
       <entry key="app">
         <State>
+          <targetSelectedWithDropDown>
+            <Target>
+              <type value="QUICK_BOOT_TARGET" />
+              <deviceKey>
+                <Key>
+                  <type value="VIRTUAL_DEVICE_PATH" />
+                  <value value="C:\Users\lalbi\.android\avd\Pixel_3a_API_32.avd" />
+                </Key>
+              </deviceKey>
+            </Target>
+          </targetSelectedWithDropDown>
+          <timeTargetWasSelectedWithDropDown value="2024-04-03T18:27:02.041955500Z" />
           <runningDeviceTargetSelectedWithDropDown>
             <Target>
               <type value="RUNNING_DEVICE_TARGET" />
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 0bb7fd673d7f9a0c7538b391eb73812b5e30efb4..56bae304b5c2e253b3592cf577d7c063e8159bc5 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -48,6 +48,7 @@ dependencies {
     implementation("org.apache.poi:poi:5.2.4")
     implementation("org.apache.poi:poi-ooxml:5.2.4")
     implementation("com.google.android.gms:play-services-location:21.2.0")
+    testImplementation("junit:junit:4.13.2")
     implementation("androidx.navigation:navigation-fragment-ktx:2.7.7")
     implementation("androidx.navigation:navigation-ui-ktx:2.7.7")
     testImplementation("junit:junit:4.13.2")
diff --git a/app/src/main/java/com/example/bondoman/Adapter.kt b/app/src/main/java/com/example/bondoman/Adapter.kt
deleted file mode 100644
index 8992a8cbe902871787cb758cbc3b1ff13eeade9c..0000000000000000000000000000000000000000
--- a/app/src/main/java/com/example/bondoman/Adapter.kt
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.example.bondoman
-
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.TextView
-import androidx.recyclerview.widget.RecyclerView
-import com.example.bondoman.retrofit.data.Transaction
-
-class TransactionAdapter(private  val listData: ArrayList<Transaction>): RecyclerView.Adapter<TransactionAdapter.DataViewHolder>(){
-
-    override fun onBindViewHolder(holder: DataViewHolder, position: Int) {
-        val currentData = listData[position]
-        holder.txtName.text = currentData.name
-        holder.txtCategory.text = currentData.category
-        val temp = "IDR " + currentData.price.toString()
-        holder.txtPrice.text = temp
-        holder.txtLocation.text = currentData.location
-        holder.txtDate.text = currentData.date
-    }
-
-    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DataViewHolder {
-        val view: View = LayoutInflater.from(parent.context).inflate(R.layout.list_transaction,parent,false)
-        return DataViewHolder(view)
-    }
-
-    override fun getItemCount(): Int {
-        return listData.count()
-    }
-    class DataViewHolder(item: View) : RecyclerView.ViewHolder(item) {
-        val txtName: TextView = item.findViewById(R.id.itemName)
-        val txtCategory: TextView = item.findViewById(R.id.category)
-        val txtDate: TextView = item.findViewById(R.id.itemDate)
-        val txtPrice : TextView = item.findViewById(R.id.itemPrice)
-        val txtLocation : TextView = item.findViewById(R.id.itemLocation)
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/ContainerActivity.kt b/app/src/main/java/com/example/bondoman/ContainerActivity.kt
index 513b6a152f7db934ab01a5dcebb06a22256987fe..2e9d9a5aa36d07ff7cba4e5b69ff0c75131b1970 100644
--- a/app/src/main/java/com/example/bondoman/ContainerActivity.kt
+++ b/app/src/main/java/com/example/bondoman/ContainerActivity.kt
@@ -13,13 +13,14 @@ class ContainerActivity : AppCompatActivity() {
 
         if (savedInstanceState == null) {
             // Check if intent contains transaction ID
-            val transactionId = intent.getIntExtra("transactionId", -1)
+            val transactionId = intent.getIntExtra("id", -1)
             if (transactionId != -1) {
-                // Start the EditTransactionFragment
-//                val fragment = EditTransactionFragment.newInstance(transactionId)
-//                supportFragmentManager.beginTransaction()
-//                    .replace(R.id.fragment_container, fragment)
-//                    .commit()
+//                 Start the EditTransactionFragment
+                val fragment = EditTransactionFragment.newInstance(transactionId)
+                supportFragmentManager.beginTransaction()
+                    .replace(R.id.fragment_container, fragment)
+                    .commit()
+
             } else {
                 // Start the AddTransactionFragment
                 supportFragmentManager.beginTransaction()
diff --git a/app/src/main/java/com/example/bondoman/DetailTransactionFragment.kt b/app/src/main/java/com/example/bondoman/DetailTransactionFragment.kt
deleted file mode 100644
index 736ebcd5eaba016113a65ab3efd7816d74492c3a..0000000000000000000000000000000000000000
--- a/app/src/main/java/com/example/bondoman/DetailTransactionFragment.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.example.bondoman
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.example.bondoman.databinding.FragmentDetailTransactionBinding
-import com.example.bondoman.databinding.FragmentEditTransactionBinding
-
-class DetailTransactionFragment : Fragment() {
-    private lateinit var binding : FragmentDetailTransactionBinding
-    override fun onCreateView(
-        inflater: LayoutInflater, container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View? {
-        binding = FragmentDetailTransactionBinding.inflate(inflater, container, false)
-        return binding.root
-    }
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-
-    }
-}
\ 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 f05307faecb115a672226f7f67c31b065178aabf..22f43392091f507aafd5d92b043aaf1ec7d6ed85 100644
--- a/app/src/main/java/com/example/bondoman/EditTransactionFragment.kt
+++ b/app/src/main/java/com/example/bondoman/EditTransactionFragment.kt
@@ -1,14 +1,33 @@
 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
 import android.view.View
 import android.view.ViewGroup
 import com.example.bondoman.databinding.FragmentEditTransactionBinding
+import com.example.bondoman.retrofit.adapter.TransactionAdapter
+import com.example.bondoman.retrofit.data.TransactionDB
+import com.example.bondoman.retrofit.data.entity.TransactionEntity
 
 class EditTransactionFragment : Fragment() {
     private lateinit var binding : FragmentEditTransactionBinding
+    private lateinit var db : TransactionDB
+    private lateinit var adapter : TransactionAdapter
+    private val listTransaction = ArrayList<TransactionEntity>()
+    companion object {
+        private const val ARG_TRANSACTION_ID = "id"
+
+        fun newInstance(id: Int): EditTransactionFragment {
+            val fragment = EditTransactionFragment()
+            val args = Bundle()
+            args.putInt(ARG_TRANSACTION_ID, id)
+            fragment.arguments = args
+            return fragment
+        }
+    }
     override fun onCreateView(
         inflater: LayoutInflater, container: ViewGroup?,
         savedInstanceState: Bundle?
@@ -19,6 +38,53 @@ class EditTransactionFragment : Fragment() {
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
+        val id = arguments?.getInt(ARG_TRANSACTION_ID) ?: -1
+        db = TransactionDB.getInstance(requireContext())
+        fetchTransactionDetails(id)
+
+        binding.deleteButton.setOnClickListener {
+            AlertDialog.Builder(requireContext())
+                .setTitle("Delete Transaction")
+                .setMessage("Are you sure you want to delete this transaction?")
+                .setPositiveButton("Yes") { dialog, which ->
+                    val transaction = db.transactionDao().getId(id)
+                    db.transactionDao().delete(transaction)
+                    requireActivity().onBackPressed()
+                }
+                .setNegativeButton("No") { dialog, which -> }
+                .show()
+        }
+
+        binding.saveButton.setOnClickListener {
+            db = TransactionDB.getInstance(requireContext())
+            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 lokasi = binding.locationField.text.toString()
+
+            val newTransaction = TransactionEntity(
+                id = id,
+                name = nama,
+                price = nominal,
+                location = lokasi,
+                category = kategori,
+                date = date
+            )
 
+            db.transactionDao().update(newTransaction)
+
+            requireActivity().onBackPressed()
+        }
+    }
+
+    private fun fetchTransactionDetails(id: Int) {
+        val transaction = db.transactionDao().getId(id)
+        binding.nameField.setText(transaction.name)
+        binding.priceField.setText(transaction.price.toString())
+        binding.locationField.setText(transaction.location)
+        binding.dateField.setText(transaction.date)
+        binding.categoryField.setText(transaction.category.toString())
     }
+
 }
\ 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 83a6326e9fa2b82f56020eb999eb83079e17472d..fd3e48013960eade45318296a7e2dc4e8c3e8f36 100644
--- a/app/src/main/java/com/example/bondoman/TransactionFragment.kt
+++ b/app/src/main/java/com/example/bondoman/TransactionFragment.kt
@@ -40,6 +40,7 @@ class TransactionFragment : Fragment() {
 
         database = TransactionDB.getInstance(requireContext())
 
+
 //        val filter = IntentFilter("itb.bos.bondoman.ACTION_RANDOMIZE_TRANSACTION")
 //        requireContext().registerReceiver(receiver, filter)
 
@@ -67,6 +68,10 @@ class TransactionFragment : Fragment() {
 //        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 {
@@ -112,6 +117,13 @@ class TransactionFragment : Fragment() {
         loadDatas()
     }
 
+    private fun loadDatas() {
+        listTransaction.clear()
+
+        listTransaction.addAll(database.transactionDao().getAll())
+        adapter.notifyDataSetChanged()
+    }
+
     private fun loadDatas() {
         listTransaction.clear()
 
diff --git a/app/src/main/java/com/example/bondoman/retrofit/adapter/TransactionAdapter.kt b/app/src/main/java/com/example/bondoman/retrofit/adapter/TransactionAdapter.kt
index dda3a8b507ebced4d82ae30f2137b943ac2a8336..ea8ef8acd53b89f062c6eff24ec4544d4bfc69c3 100644
--- a/app/src/main/java/com/example/bondoman/retrofit/adapter/TransactionAdapter.kt
+++ b/app/src/main/java/com/example/bondoman/retrofit/adapter/TransactionAdapter.kt
@@ -12,7 +12,17 @@ import com.example.bondoman.ContainerActivity
 import com.example.bondoman.R
 import com.example.bondoman.retrofit.data.entity.TransactionEntity
 
+
 class TransactionAdapter(private val list: ArrayList<TransactionEntity>): RecyclerView.Adapter<TransactionAdapter.ViewHolder>(){
+    private lateinit var transactionDialog: Dialog
+
+    fun setDialog(dialog: Dialog) {
+        this.transactionDialog = dialog
+    }
+
+    interface Dialog{
+        fun onClick(position: Int)
+    }
 
     override fun onBindViewHolder(holder: ViewHolder, position: Int) {
         val currentData = list[position]
@@ -50,7 +60,7 @@ class TransactionAdapter(private val list: ArrayList<TransactionEntity>): Recycl
             val intent = Intent(holder.itemView.context, ContainerActivity::class.java)
 
             // Optionally, pass data to the AddTransactionActivity
-            intent.putExtra("transactionId", currentData.id)
+            intent.putExtra("id", currentData.id)
 
             // Start the activity
             holder.itemView.context.startActivity(intent)
@@ -58,7 +68,7 @@ class TransactionAdapter(private val list: ArrayList<TransactionEntity>): Recycl
     }
 
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
-        val view: View = LayoutInflater.from(parent.context).inflate(R.layout.row_data,parent,false)
+        val view: View = LayoutInflater.from(parent.context).inflate(R.layout.row_data, parent, false)
         return ViewHolder(view)
     }
 
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 c3ed442c664dcb11fea85d48a0f56e911349fd50..bbf173ae423e2906f64d696e0fda63496df708cc 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,11 @@ import androidx.room.RoomDatabase
 import com.example.bondoman.retrofit.data.dao.TransactionDao
 import com.example.bondoman.retrofit.data.entity.TransactionEntity
 
+<<<<<<< app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt
+@Database(entities = [TransactionEntity::class], version = 2)
+=======
 @Database(entities = [TransactionEntity::class], version = 1)
+>>>>>>> app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt
 abstract class TransactionDB : RoomDatabase() {
     abstract fun transactionDao(): TransactionDao
 
@@ -16,7 +20,7 @@ abstract class TransactionDB : RoomDatabase() {
 
         fun getInstance(context: Context) : TransactionDB{
             if (instance==null){
-                instance = Room.databaseBuilder(context, TransactionDB::class.java, "transaction-database")
+                instance = Room.databaseBuilder(context, TransactionDB::class.java, "db")
                     .allowMainThreadQueries()
                     .build()
             }
diff --git a/app/src/main/java/com/example/bondoman/retrofit/data/dao/TransactionDao.kt b/app/src/main/java/com/example/bondoman/retrofit/data/dao/TransactionDao.kt
index 27ebc42d15503365179a3e7de04b69a9a9d433fe..8f93301768d951c03f872de36169dc31674d6363 100644
--- a/app/src/main/java/com/example/bondoman/retrofit/data/dao/TransactionDao.kt
+++ b/app/src/main/java/com/example/bondoman/retrofit/data/dao/TransactionDao.kt
@@ -4,19 +4,19 @@ import androidx.room.Dao
 import androidx.room.Delete
 import androidx.room.Insert
 import androidx.room.Query
+import androidx.room.Update
 import com.example.bondoman.retrofit.data.entity.TransactionEntity
 
 @Dao
 interface TransactionDao {
-
     @Query("SELECT * FROM transactionentity")
     fun getAll(): List<TransactionEntity>
 
     @Query("SELECT * FROM transactionentity WHERE id IN (:userIds)")
     fun loadAllByIds(userIds: IntArray): List<TransactionEntity>
 
-    @Query("SELECT * FROM transactionentity WHERE name LIKE :name AND " +
-            "price LIKE :nominal LIMIT 1")
+    @Query("SELECT * FROM transactionentity WHERE nama_transaksi LIKE :name AND " +
+            "nominal_transaksi LIKE :nominal LIMIT 1")
     fun findByName(name: String, nominal: String): TransactionEntity
 
     @Insert
@@ -24,4 +24,10 @@ interface TransactionDao {
 
     @Delete
     fun delete(transaction: TransactionEntity)
+
+    @Update
+    fun update(transaction: TransactionEntity)
+    @Query("SELECT * FROM transactionentity WHERE id = :id")
+    fun getId(id: Int): TransactionEntity
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/retrofit/data/entity/TransactionEntity.kt b/app/src/main/java/com/example/bondoman/retrofit/data/entity/TransactionEntity.kt
new file mode 100644
index 0000000000000000000000000000000000000000..efed10853ea363b2e51aba1f131c5a98120a199d
--- /dev/null
+++ b/app/src/main/java/com/example/bondoman/retrofit/data/entity/TransactionEntity.kt
@@ -0,0 +1,20 @@
+package com.example.bondoman.retrofit.data.entity
+
+import androidx.room.ColumnInfo
+import androidx.room.Entity
+import androidx.room.PrimaryKey
+
+enum class Category {
+    Pemasukan,
+    Pengeluaran
+}
+
+@Entity
+data class TransactionEntity(
+    @PrimaryKey(autoGenerate = true) var id: Int? = null,
+    @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 = "lokasi_transaksi") var location: String? = null
+)
\ No newline at end of file
diff --git a/app/src/main/res/drawable/delete.xml b/app/src/main/res/drawable/delete.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3ff265b5f755197a47d3da49ba51be3833313b45
--- /dev/null
+++ b/app/src/main/res/drawable/delete.xml
@@ -0,0 +1,34 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="30dp"
+    android:height="30dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M11.99,21.242C4.225,21.242 5.403,17.617 5.403,9.598"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#000000"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M18.599,9.598C18.599,15.827 19.295,19.405 15.967,20.692"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#000000"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M20.075,6.524H3.925"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#000000"
+      android:strokeLineCap="round"/>
+  <path
+      android:pathData="M15.425,6.524C15.425,6.524 15.954,2.758 11.999,2.758C10.27,2.758 9.398,3.479 8.964,4.29"
+      android:strokeLineJoin="round"
+      android:strokeWidth="1.5"
+      android:fillColor="#00000000"
+      android:strokeColor="#000000"
+      android:strokeLineCap="round"/>
+</vector>
diff --git a/app/src/main/res/layout/fragment_detail_transaction.xml b/app/src/main/res/layout/fragment_detail_transaction.xml
deleted file mode 100644
index d175656c33cf67c56c8203031938c0645fe35920..0000000000000000000000000000000000000000
--- a/app/src/main/res/layout/fragment_detail_transaction.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".DetailTransactionFragment">
-
-    <!-- TODO: Update blank fragment layout -->
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:text="@string/hello_blank_fragment" />
-
-</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_edit_transaction.xml b/app/src/main/res/layout/fragment_edit_transaction.xml
index f4cb513d8c5dedad844e66325cb9b2f1fde8d4b1..1ec0c2c2fb86066927e04d19e489064b30fef605 100644
--- a/app/src/main/res/layout/fragment_edit_transaction.xml
+++ b/app/src/main/res/layout/fragment_edit_transaction.xml
@@ -12,16 +12,25 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:src="@drawable/container_edit"
-        android:layout_marginTop="24dp"
+        android:layout_marginTop="75dp"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toTopOf="parent">
     </ImageView>
 
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
+        android:id="@+id/deleteButton"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:src="@drawable/delete"
+        tools:ignore="MissingConstraints"
+        tools:layout_editor_absoluteX="310dp"
+        tools:layout_editor_absoluteY="6dp" />
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="500dp"
-        android:layout_marginTop="64dp"
+        android:layout_marginTop="100dp"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toTopOf="parent"
@@ -37,10 +46,11 @@
             />
 
         <EditText
+            android:id="@+id/nameField"
             android:layout_width="match_parent"
             android:layout_height="48dp"
             android:layout_marginTop="8dp"
-            android:text="Nama Transaksi"
+            android:hint="Masukkan nama transaksi"
             android:textColor="@color/grey"
             android:paddingHorizontal="20dp"
             android:textSize="16sp"
@@ -56,10 +66,11 @@
             />
 
         <EditText
+            android:id="@+id/priceField"
             android:layout_width="match_parent"
             android:layout_marginTop="8dp"
             android:layout_height="48dp"
-            android:text="Nominal"
+            android:hint="Masukkan nominal"
             android:textColor="@color/grey"
             android:paddingHorizontal="20dp"
             android:textSize="16sp"
@@ -75,10 +86,11 @@
             />
 
         <EditText
+            android:id="@+id/locationField"
             android:layout_width="match_parent"
             android:layout_marginTop="8dp"
             android:layout_height="48dp"
-            android:text="Lokasi"
+            android:hint="Masukkan Lokasi"
             android:textColor="@color/grey"
             android:paddingVertical="12dp"
             android:paddingHorizontal="20dp"
@@ -88,6 +100,7 @@
 
 
         <TextView
+            android:id="@+id/categoryField"
             android:layout_width="match_parent"
             android:layout_marginTop="24dp"
             android:layout_height="48dp"
@@ -100,6 +113,7 @@
             />
 
         <TextView
+            android:id="@+id/dateField"
             android:layout_width="match_parent"
             android:layout_marginTop="24dp"
             android:layout_height="48dp"
@@ -112,6 +126,7 @@
             />
 
         <Button
+            android:id="@+id/saveButton"
             android:layout_width="match_parent"
             android:layout_height="56dp"
             android:layout_marginTop="24dp"