diff --git a/app/src/main/java/com/example/myapplication/MainActivity.kt b/app/src/main/java/com/example/myapplication/MainActivity.kt
index 78a63375d70c1cb9ce64a522592f6590b72b0a3f..ccea2b34eaf5f6073478fc650f31fd725687da53 100644
--- a/app/src/main/java/com/example/myapplication/MainActivity.kt
+++ b/app/src/main/java/com/example/myapplication/MainActivity.kt
@@ -2,6 +2,7 @@ package com.example.myapplication
 
 import android.content.Context
 import android.content.Intent
+import android.content.IntentFilter
 import android.net.ConnectivityManager
 import android.net.NetworkCapabilities
 import android.os.Bundle
@@ -23,12 +24,14 @@ import com.example.myapplication.util.EventBus
 import com.example.myapplication.util.SecretPreference
 import java.util.concurrent.TimeUnit
 import com.example.myapplication.ui.settings.SettingsViewModel
+import com.example.myapplication.util.AppBroadcastReceiver
 
 class MainActivity : AppCompatActivity(){
     private lateinit var binding: ActivityMainBinding
     private lateinit var secretPreference : SecretPreference
     private val checkConnection by lazy { CheckConnection(application) }
     private val connected : MutableLiveData<Boolean> = MutableLiveData(true)
+    private lateinit var receiver: AppBroadcastReceiver
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -52,6 +55,11 @@ class MainActivity : AppCompatActivity(){
         setupActionBarWithNavController(navController, appBarConfiguration)
         navView.setupWithNavController(navController)
 
+        receiver = AppBroadcastReceiver()
+        val filter = IntentFilter("com.example.myapplication.ui.transactions.ADD_TRANSACTION")
+        registerReceiver(receiver, filter)
+
+
 //        val loginIntent = Intent(this, LoginActivity::class.java)
 //        startActivity(loginIntent)
     }
@@ -94,6 +102,11 @@ class MainActivity : AppCompatActivity(){
             }
         }
     }
+
+    override fun onDestroy() {
+        super.onDestroy()
+        unregisterReceiver(receiver)
+    }
     fun updateConnection(value: Boolean) {
         connected.value = value
     }
diff --git a/app/src/main/java/com/example/myapplication/ui/settings/SettingsFragment.kt b/app/src/main/java/com/example/myapplication/ui/settings/SettingsFragment.kt
index a5067608a96d2c9f631fa236aa4a8223a496f23e..474f66d869c9af19ad53973f9c30ff24ad110394 100644
--- a/app/src/main/java/com/example/myapplication/ui/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/example/myapplication/ui/settings/SettingsFragment.kt
@@ -19,6 +19,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager
 import com.example.myapplication.MainActivity
 import com.example.myapplication.R
 import com.example.myapplication.databinding.FragmentSettingsBinding
+import kotlin.random.Random
 
 class SettingsFragment : Fragment() {
     private var _binding: FragmentSettingsBinding? = null
@@ -86,10 +87,13 @@ class SettingsFragment : Fragment() {
 
         }
 
+        val titleList = listOf("Makan", "Minum", "Date", "Halo", "Cincin")
+
         randomizeButton.setOnClickListener {
-            val intent = Intent("RANDOMIZE")
-            intent.putExtra("val", "val")
-            requireContext().sendBroadcast(intent)
+            val map = mapOf("title" to Random.nextInt(0, 4 + 1), "nominal" to Random.nextInt(1,1000000 + 1))
+            val intent = Intent("com.example.myapplication.ui.transactions.ADD_TRANSACTION")
+            intent.putExtra("map", HashMap(map))
+            context?.sendBroadcast(intent)
         }
 
         return root
diff --git a/app/src/main/java/com/example/myapplication/util/AppBroadcastReceiver.kt b/app/src/main/java/com/example/myapplication/util/AppBroadcastReceiver.kt
new file mode 100644
index 0000000000000000000000000000000000000000..314a13f1ef297aad1cae22f02c2838ed9352f6de
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/util/AppBroadcastReceiver.kt
@@ -0,0 +1,28 @@
+package com.example.myapplication.util
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import com.example.myapplication.repository.TransactionRepository
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+
+class AppBroadcastReceiver : BroadcastReceiver(){
+    private lateinit var transactionRepository : TransactionRepository
+    override fun onReceive(context: Context?, intent: Intent?) {
+        val map: Map<String, String>? = intent?.getSerializableExtra("map") as? Map<String, String>
+        transactionRepository = TransactionRepository(context!!)
+        GlobalScope.launch {
+            insertToDatabase(map!!, transactionRepository)
+        }
+    }
+
+    suspend fun insertToDatabase(map : Map<String, String>, transactionRepository: TransactionRepository){
+        transactionRepository.insertTransactionQuery(
+            title= map.get("title")!!,
+            nominal = map["nominal"]!!.toString(),
+            kategori = "Randomize",
+            lokasi = "Unknown"
+        )
+    }
+}
\ No newline at end of file