diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 5a31672b3d4466bbf99c4839ab719a0642479c5e..b5fce6b761f4cd601edddc7bc05683b8ff0151c3 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -63,8 +63,8 @@ dependencies {
     androidTestImplementation(libs.androidx.junit)
     androidTestImplementation(libs.androidx.espresso.core)
 
-    implementation("androidx.room:room-runtime:2.4.0")
-    kapt("androidx.room:room-compiler:2.4.0")
-    implementation("androidx.room:room-ktx:2.4.0")
-    testImplementation("androidx.room:room-testing:2.4.0")
+    implementation("androidx.room:room-runtime:2.6.1")
+    kapt("androidx.room:room-compiler:2.6.1")
+    implementation("androidx.room:room-ktx:2.6.1")
+    testImplementation("androidx.room:room-testing:2.6.1")
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myapplication/dao/TransactionDao.kt b/app/src/main/java/com/example/myapplication/dao/TransactionDao.kt
index f3bccd448e2872803d856f69c0753031d30edb4a..c2eec6e6bb813d81712ff35842d2c0586c94c539 100644
--- a/app/src/main/java/com/example/myapplication/dao/TransactionDao.kt
+++ b/app/src/main/java/com/example/myapplication/dao/TransactionDao.kt
@@ -11,15 +11,15 @@ import com.example.myapplication.entities.TransactionEntity
 
 @Dao
 interface TransactionDao {
-    @Query("INSERT INTO `" + "transactionentity" + "`(title) VALUES (:title)")
-    fun insertTransaction(title: String)
+    @Insert
+    fun insertTransaction(transaction: TransactionEntity)
 
-    @Query("SELECT * FROM transactionentity")
-    fun getAllTransactions(): List<TransactionEntity>
+    @Query("SELECT * FROM transaction_entity")
+    fun getAllTransactions(): LiveData<List<TransactionEntity>>
 
-    @Update
-    fun update(transaction: TransactionEntity)
+    @Query("UPDATE transaction_entity SET title = :title, nominal = :nominal, lokasi = :lokasi WHERE id = :id")
+    fun update(title: String, nominal: String, lokasi: String, id: Int)
 
-    @Delete
-    fun delete(transaction: TransactionEntity)
+    @Query("DELETE FROM transaction_entity WHERE id = :id")
+    fun delete(id : Int)
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myapplication/entities/TransactionEntity.kt b/app/src/main/java/com/example/myapplication/entities/TransactionEntity.kt
index 2d61479929ff0c2519f496c906db7261b867bdb8..e63dd5d48a715f2ee272440a8e50e9e205b63d7a 100644
--- a/app/src/main/java/com/example/myapplication/entities/TransactionEntity.kt
+++ b/app/src/main/java/com/example/myapplication/entities/TransactionEntity.kt
@@ -5,8 +5,9 @@ import androidx.room.PrimaryKey
 import androidx.room.ColumnInfo
 
 
-@Entity(tableName = "transactionentity")
+@Entity(tableName = "transaction_entity")
 data class TransactionEntity(
+
         @PrimaryKey(autoGenerate = true)
         @ColumnInfo(name = "id")
         val id: Int = 0,
@@ -24,5 +25,8 @@ data class TransactionEntity(
         val lokasi: String?,
 
         @ColumnInfo(name = "tanggal", defaultValue = "CURRENT_TIMESTAMP")
-        val tanggal: String
+        val tanggal: String?,
+
+        @ColumnInfo(name = "quantity", defaultValue = "1")
+        val quantity: Int?
 )
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myapplication/repository/TransactionRepository.kt b/app/src/main/java/com/example/myapplication/repository/TransactionRepository.kt
index 1bed02a0f51097bfddfe23dde00e1110de4626bf..8697cab01db47da92edc14c0da77cd7b57a2bfcb 100644
--- a/app/src/main/java/com/example/myapplication/repository/TransactionRepository.kt
+++ b/app/src/main/java/com/example/myapplication/repository/TransactionRepository.kt
@@ -1,21 +1,28 @@
 package com.example.myapplication.repository
 
+import android.content.Context
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import com.example.myapplication.dao.TransactionDao
+import com.example.myapplication.database.TransactionDatabase
 import com.example.myapplication.entities.TransactionEntity
 
 
-class TransactionRepository(private val transactionDao: TransactionDao) {
-    lateinit var allTransactions: MutableLiveData<List<TransactionEntity>>;
+class TransactionRepository(context: Context) {
+    var allTransactions: LiveData<List<TransactionEntity>>;
+    private val transactionDao : TransactionDao
+
+    init {
+        val transactionDatabase = TransactionDatabase.getInstance(context)
+        transactionDao = transactionDatabase.transactionDao()
+        allTransactions = transactionDao.getAllTransactions()
+    }
+
+    fun insertTransaction(title: String, nominal: String, kategori: String) {
+        val transaction = TransactionEntity(title = title, nominal = nominal, kategori = kategori, lokasi = null, tanggal = null, quantity = null)
+        transactionDao.insertTransaction(transaction)
+    }
+
+
 
-//    fun insertTransaction(transaction: TransactionEntity)
-//    {
-//        transactionDao.insertTransaction(transaction)
-//    }
-//
-//    fun getAllTransactions()
-//    {
-//        this.allTransactions.postValue(transactionDao.getAllTransactions())
-//    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myapplication/viewmodel/TransactionViewModel.kt b/app/src/main/java/com/example/myapplication/viewmodel/TransactionViewModel.kt
index 407ed551513601857a6bdb66f940341900fb8a9c..42f81783b02749e7f405eedfc2b17c2a3a5d9bde 100644
--- a/app/src/main/java/com/example/myapplication/viewmodel/TransactionViewModel.kt
+++ b/app/src/main/java/com/example/myapplication/viewmodel/TransactionViewModel.kt
@@ -1,23 +1,35 @@
 package com.example.myapplication.viewmodel
 
+import android.content.Context
+import android.util.Log
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.Observer
 import androidx.lifecycle.ViewModel
 import com.example.myapplication.dao.TransactionDao
 import com.example.myapplication.entities.TransactionEntity
+import com.example.myapplication.repository.TransactionRepository
 
-class TransactionViewModel(private val transactionDao: TransactionDao) : ViewModel() {
+class TransactionViewModel(context : Context) : ViewModel() {
+    private val repository: TransactionRepository = TransactionRepository(context)
+    var allTransactions : LiveData<List<TransactionEntity>> = repository.allTransactions
 
+    var transactionObserver = Observer<List<TransactionEntity>> {
+        // Nanti dipake di fragment yang ada object viewnya buat update itu
+        // contohnya kaya gini (tapi harus ada recycle viewnya dulu
+        // recyclerViewAdapter.submitList(it)
 
-    fun addTransaction(transaction: TransactionEntity) {
-
+        //TODO("Implement kalau transaksi berubah di viewnya juga langsung berubah")
+        Log.i("Development", "Transaction changed, transaction: $it")
     }
-
-    fun getAllTransactions() = transactionDao.getAllTransactions()
-
-    fun updateTransaction(transaction: TransactionEntity) {
-        transactionDao.update(transaction)
+    fun addTransaction(title: String, nominal: String, kategori: String) {
+        repository.insertTransaction(title, nominal , kategori)
     }
 
-    fun deleteTransaction(transaction: TransactionEntity) {
-        transactionDao.delete(transaction)
-    }
+//    fun updateTransaction(transaction: TransactionEntity) {
+//        transactionDao.update(transaction)
+//    }
+
+//    fun deleteTransaction(transaction: TransactionEntity) {
+//        transactionDao.delete(transaction)
+//    }
 }
\ No newline at end of file