diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 38151702dfe5d0cf31af0007d37328c974b40bce..e1705ff0357058e0392b8105aca27fa29ddcfe3b 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -4,18 +4,18 @@
     <value>
       <entry key="app">
         <State>
-          <runningDeviceTargetSelectedWithDropDown>
+          <targetSelectedWithDropDown>
             <Target>
-              <type value="RUNNING_DEVICE_TARGET" />
+              <type value="QUICK_BOOT_TARGET" />
               <deviceKey>
                 <Key>
-                  <type value="SERIAL_NUMBER" />
-                  <value value="emulator-5554" />
+                  <type value="VIRTUAL_DEVICE_PATH" />
+                  <value value="C:\Users\lalbi\.android\avd\Pixel_3a_API_32.avd" />
                 </Key>
               </deviceKey>
             </Target>
-          </runningDeviceTargetSelectedWithDropDown>
-          <timeTargetWasSelectedWithDropDown value="2024-04-03T17:57:13.057353Z" />
+          </targetSelectedWithDropDown>
+          <timeTargetWasSelectedWithDropDown value="2024-04-03T17:59:16.032320400Z" />
         </State>
       </entry>
     </value>
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/retrofit/adapter/TransactionAdapter.kt b/app/src/main/java/com/example/bondoman/retrofit/adapter/TransactionAdapter.kt
index dda3a8b507ebced4d82ae30f2137b943ac2a8336..613afa2310ca36f75597815038e14533efecb0dd 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
@@ -58,7 +58,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
new file mode 100644
index 0000000000000000000000000000000000000000..c3ed442c664dcb11fea85d48a0f56e911349fd50
--- /dev/null
+++ b/app/src/main/java/com/example/bondoman/retrofit/data/TransactionDB.kt
@@ -0,0 +1,27 @@
+package com.example.bondoman.retrofit.data
+
+import android.content.Context
+import androidx.room.Database
+import androidx.room.Room
+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 = 1)
+abstract class TransactionDB : RoomDatabase() {
+    abstract fun transactionDao(): TransactionDao
+
+    companion object{
+        private var instance : TransactionDB? = null
+
+        fun getInstance(context: Context) : TransactionDB{
+            if (instance==null){
+                instance = Room.databaseBuilder(context, TransactionDB::class.java, "transaction-database")
+                    .allowMainThreadQueries()
+                    .build()
+            }
+
+            return instance!!
+        }
+    }
+}
\ No newline at end of file
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
new file mode 100644
index 0000000000000000000000000000000000000000..27ebc42d15503365179a3e7de04b69a9a9d433fe
--- /dev/null
+++ b/app/src/main/java/com/example/bondoman/retrofit/data/dao/TransactionDao.kt
@@ -0,0 +1,27 @@
+package com.example.bondoman.retrofit.data.dao
+
+import androidx.room.Dao
+import androidx.room.Delete
+import androidx.room.Insert
+import androidx.room.Query
+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")
+    fun findByName(name: String, nominal: String): TransactionEntity
+
+    @Insert
+    fun insertAll(vararg transactions: TransactionEntity)
+
+    @Delete
+    fun delete(transaction: TransactionEntity)
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/baseline_add_24.xml b/app/src/main/res/drawable/baseline_add_24.xml
new file mode 100644
index 0000000000000000000000000000000000000000..89633bb125d37a7e89833cfd4708ae8b8902822d
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_add_24.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#000000"
+    android:viewportHeight="24" android:viewportWidth="24"
+    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="@android:color/white" android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
diff --git a/app/src/main/res/layout/row_data.xml b/app/src/main/res/layout/row_data.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1ca99191441741b0d3986a620bbf18afc14af522
--- /dev/null
+++ b/app/src/main/res/layout/row_data.xml
@@ -0,0 +1,64 @@
+<?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:layout_margin="8dp"
+    android:orientation="horizontal">
+    <LinearLayout
+        android:layout_width="220dp"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:layout_margin="8dp">
+        <TextView
+            android:id="@+id/KategoriTransaksi"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@drawable/cornered_simpan"
+            android:textColor="@color/light_grey"
+            android:padding="4dp"
+            android:textSize="12sp"
+            />
+        <TextView
+            android:id="@+id/NamaTransaksi"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="2dp"
+            android:textSize="16sp"
+            />
+        <TextView
+            android:id="@+id/TanggalTransaksi"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="2dp"
+            android:textSize="12sp"
+            />
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="90dp"
+        android:layout_height="match_parent"
+        android:layout_marginEnd="5dp"
+        android:layout_marginStart="0dp"
+        android:orientation="vertical"
+        android:gravity="end">
+        <TextView
+            android:id="@+id/NominalTransaksi"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="2dp"
+            android:textSize="16sp"
+            android:layout_weight="1"/>
+        <TextView
+            android:id="@+id/LokasiTransaksi"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="2dp"
+            android:textSize="12sp"
+            android:ellipsize="end"
+            android:maxLines="1"
+            android:layout_weight="2"
+            android:clickable="true" />
+
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file