diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index b27415d983e652133d2a97e1589f5466b2f0139c..1121e4ea78df542ef5edbb42ab0a8284fdfefa78 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -132,4 +132,7 @@ dependencies {
     implementation("androidx.camera:camera-video:$cameraxVersion")
     implementation("androidx.camera:camera-view:$cameraxVersion")
     implementation("androidx.camera:camera-extensions:$cameraxVersion")
+
+    implementation("com.google.android.gms:play-services-location:17.0.0")
+
 }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bfce828dde64304855a8f45c60ee8ad4be8fce21..dd0109049113a2495ced8eb1ae9dce4735bb56e5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,9 @@
     <uses-permission android:name="android.permission.CAMERA" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
         android:maxSdkVersion="28" />
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
+
     <application
         android:allowBackup="true"
         android:dataExtractionRules="@xml/data_extraction_rules"
diff --git a/app/src/main/java/com/example/bondoman/activities/AddTransaction.kt b/app/src/main/java/com/example/bondoman/activities/AddTransaction.kt
index 64d11bd16dfd86e5b8e6763f5c8163da21134719..11a06b584859a4b205a2ed1d90d17c0279f8a76f 100644
--- a/app/src/main/java/com/example/bondoman/activities/AddTransaction.kt
+++ b/app/src/main/java/com/example/bondoman/activities/AddTransaction.kt
@@ -1,40 +1,44 @@
 package com.example.bondoman.activities
 
+import android.Manifest
 import android.app.Activity
-import android.app.DatePickerDialog
 import android.content.BroadcastReceiver
 import android.content.Context
 import android.content.Intent
 import android.content.IntentFilter
-import android.graphics.Color
+import android.content.pm.PackageManager
+import android.location.Geocoder
+import android.location.Location
 import android.os.Bundle
 import android.text.TextUtils
 import android.util.Log
-import android.view.View
 import android.widget.ArrayAdapter
 import android.widget.Button
-import android.widget.DatePicker
 import android.widget.EditText
+import android.widget.Spinner
 import androidx.appcompat.app.AppCompatActivity
+import androidx.core.app.ActivityCompat
+import androidx.core.content.ContextCompat
 import com.example.bondoman.R
-import android.widget.Spinner
-import com.example.bondoman.adapter.RecyclerViewAdapter
-import com.example.bondoman.entities.Transaction
 import com.example.bondoman.services.TokenCheckService
-import com.example.bondoman.viewModels.TransactionsViewModel
-import java.util.Calendar
-import java.util.Date
+import com.google.android.gms.location.FusedLocationProviderClient
+import com.google.android.gms.location.LocationServices
+import java.io.IOException
+import java.util.Locale
 
 
 class AddTransaction : AppCompatActivity() {
     private lateinit var tokenExpiredReceiver: BroadcastReceiver
     private lateinit var tokenServiceIntent : Intent
     private var isReceiverRegistered = false
+    private lateinit var fusedLocationClient: FusedLocationProviderClient
+    private lateinit var locationText : EditText
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_add_transaksi)
         tokenServiceIntent= Intent(this, TokenCheckService::class.java)
         startService(tokenServiceIntent)
+        fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
 
         tokenExpiredReceiver = object : BroadcastReceiver(){
             override fun onReceive(context: Context?, intent: Intent?) {
@@ -65,11 +69,12 @@ class AddTransaction : AppCompatActivity() {
         spinnerCategory.adapter = adapter
 
         val submitButton : Button = findViewById(R.id.buttonSubmit)
+        locationText = findViewById(R.id.editTextLocation)
         submitButton.setOnClickListener {
             val title = findViewById<EditText>(R.id.editTextTitle).text.toString()
             val category = spinnerCategory.selectedItem.toString()
             val amount = findViewById<EditText>(R.id.editTextAmount).text.toString().toFloatOrNull() ?: 0f
-            val location = findViewById<EditText>(R.id.editTextLocation).text.toString()
+            val location = locationText.text.toString()
 
             val replyIntent = Intent()
             if (title.isEmpty()) {
@@ -83,7 +88,7 @@ class AddTransaction : AppCompatActivity() {
             }
             finish()
         }
-
+        getLastLocation()
     }
 
     override fun onBackPressed() {
@@ -91,12 +96,6 @@ class AddTransaction : AppCompatActivity() {
         finish()
     }
 
-    companion object {
-        const val TITLE = "TITLE"
-        const val TYPE = "TYPE"
-        const val AMOUNT = "AMOUNT"
-        const val LOCATION = "LOCATION"
-    }
     override fun onStart() {
         super.onStart()
         val filter = IntentFilter("com.example.bondoman.TOKEN_EXPIRED")
@@ -120,4 +119,46 @@ class AddTransaction : AppCompatActivity() {
             isReceiverRegistered = false
         }
     }
+
+    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
+        if (requestCode == REQUEST_LOCATION_PERMISSION) {
+            if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+                getLastLocation()
+            }
+        }
+    }
+    private fun getLastLocation() {
+        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
+            fusedLocationClient.lastLocation.addOnSuccessListener { location: Location? ->
+                location?.let {
+                    updateLocationEditTextWithPlaceName(location.latitude, location.longitude)
+                }
+            }
+        }else {
+            ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), REQUEST_LOCATION_PERMISSION)
+        }
+    }
+    private fun updateLocationEditTextWithPlaceName(latitude: Double, longitude: Double) {
+        val geocoder = Geocoder(this, Locale.getDefault())
+        try {
+            val addresses = geocoder.getFromLocation(latitude, longitude, 1)
+            if (addresses != null && addresses.isNotEmpty()) {
+                val address = addresses[0]
+                locationText.setText(address.getAddressLine(0).toString())
+            } else {
+                locationText.setText("${latitude}, ${longitude}")
+            }
+        } catch (e: IOException) {
+            Log.e("Location", "Service Not Available", e)
+        }
+    }
+    companion object {
+        const val TITLE = "TITLE"
+        const val TYPE = "TYPE"
+        const val AMOUNT = "AMOUNT"
+        const val LOCATION = "LOCATION"
+        const val REQUEST_LOCATION_PERMISSION = 1 // Define the constant here
+
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/activities/EditTransaction.kt b/app/src/main/java/com/example/bondoman/activities/EditTransaction.kt
index 3218e5da3cd1442968e31001f77895541a1bd4f7..ca10024840556fb159f2170f8efe56d482afa613 100644
--- a/app/src/main/java/com/example/bondoman/activities/EditTransaction.kt
+++ b/app/src/main/java/com/example/bondoman/activities/EditTransaction.kt
@@ -1,31 +1,25 @@
 package com.example.bondoman.activities
 
 import android.app.Activity
-import android.app.DatePickerDialog
 import android.content.BroadcastReceiver
 import android.content.Context
 import android.content.Intent
 import android.content.IntentFilter
-import android.graphics.Color
+import android.net.Uri
 import android.os.Bundle
 import android.util.Log
-import android.view.View
-import android.widget.ArrayAdapter
 import android.widget.Button
-import android.widget.DatePicker
 import android.widget.EditText
+import android.widget.TextView
 import androidx.appcompat.app.AppCompatActivity
 import com.example.bondoman.R
-import android.widget.Spinner
-import android.widget.TextView
 import com.example.bondoman.services.TokenCheckService
-import java.util.Calendar
-
 
 class EditTransaction() : AppCompatActivity() {
     private lateinit var tokenExpiredReceiver: BroadcastReceiver
     private lateinit var tokenServiceIntent : Intent
     private var isReceiverRegistered = false
+    private lateinit var location : EditText
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_edit_transaksi)
@@ -54,8 +48,8 @@ class EditTransaction() : AppCompatActivity() {
         val type : TextView = findViewById(R.id.editTextType)
         val title : EditText = findViewById(R.id.editTextTitle)
         val amount : EditText = findViewById(R.id.editTextAmount)
-        val location : EditText = findViewById(R.id.editTextLocation)
-
+        location = findViewById(R.id.editTextLocation)
+        val seeLocationText : TextView = findViewById(R.id.textViewSeeLocationLabel)
         val intentData = intent
 
         title.setText(intentData?.getStringExtra("title") ?: "")
@@ -92,7 +86,9 @@ class EditTransaction() : AppCompatActivity() {
             }
             finish()
         }
-
+        seeLocationText.setOnClickListener {
+            seeLocation()
+        }
     }
 
     override fun onBackPressed() {
@@ -124,4 +120,11 @@ class EditTransaction() : AppCompatActivity() {
         }
     }
 
+    private fun seeLocation(){
+        val locationText = location.text.toString()
+        val gmmIntentUri = Uri.parse("geo:0,0?q=$locationText")
+        val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
+        mapIntent.setPackage("com.google.android.apps.maps")
+        startActivity(mapIntent)
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/bondoman/activities/LoginActivity.kt b/app/src/main/java/com/example/bondoman/activities/LoginActivity.kt
index 8ed2971de92abec9d984a6786f6fb6fa8089e737..2c8e505e2c9468c16d6986719898abb10f1b2ea9 100644
--- a/app/src/main/java/com/example/bondoman/activities/LoginActivity.kt
+++ b/app/src/main/java/com/example/bondoman/activities/LoginActivity.kt
@@ -5,7 +5,6 @@ import android.app.Dialog
 import android.content.Intent
 import android.graphics.Color
 import android.graphics.drawable.ColorDrawable
-import androidx.appcompat.app.AppCompatActivity
 import android.os.Bundle
 import android.os.Handler
 import android.util.DisplayMetrics
@@ -17,14 +16,12 @@ import android.widget.Button
 import android.widget.EditText
 import android.widget.ImageView
 import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
 import androidx.cardview.widget.CardView
 import androidx.lifecycle.lifecycleScope
-import com.airbnb.lottie.LottieAnimationView
 import com.example.bondoman.R
-import com.example.bondoman.apiServices.IAuthService
 import com.example.bondoman.lib.SecurePreferences
 import com.example.bondoman.repositories.AuthRepository
-import com.example.bondoman.retrofits.Retro
 import kotlinx.coroutines.launch
 import kotlin.math.log
 
diff --git a/app/src/main/java/com/example/bondoman/adapter/RecyclerViewAdapter.kt b/app/src/main/java/com/example/bondoman/adapter/RecyclerViewAdapter.kt
index c579deb752c851a599164a896d57af4ee392a36d..f902d359ea6774fb28232564d0ce48dca4bdd2df 100644
--- a/app/src/main/java/com/example/bondoman/adapter/RecyclerViewAdapter.kt
+++ b/app/src/main/java/com/example/bondoman/adapter/RecyclerViewAdapter.kt
@@ -4,10 +4,7 @@ import android.content.Intent
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
-import android.widget.Button
-import android.widget.TextView
 import androidx.cardview.widget.CardView
-import androidx.core.content.ContextCompat.startActivity
 import androidx.lifecycle.LiveData
 import androidx.recyclerview.widget.RecyclerView
 import com.example.bondoman.R
diff --git a/app/src/main/java/com/example/bondoman/adapter/TransactionListAdapter.kt b/app/src/main/java/com/example/bondoman/adapter/TransactionListAdapter.kt
index b0ba205fba51770a6adc4809d3bc5390729123a1..81dbe187d02afcea8788ffa240d159765a87f347 100644
--- a/app/src/main/java/com/example/bondoman/adapter/TransactionListAdapter.kt
+++ b/app/src/main/java/com/example/bondoman/adapter/TransactionListAdapter.kt
@@ -6,7 +6,6 @@ import android.view.View
 import android.view.ViewGroup
 import android.widget.TextView
 import androidx.cardview.widget.CardView
-import androidx.lifecycle.LiveData
 import androidx.recyclerview.widget.DiffUtil
 import androidx.recyclerview.widget.ListAdapter
 import androidx.recyclerview.widget.RecyclerView
@@ -15,7 +14,6 @@ import com.example.bondoman.activities.EditTransaction
 import com.example.bondoman.entities.Transaction
 import com.example.bondoman.lib.SecurePreferences
 import com.example.bondoman.viewModels.TransactionsViewModel
-import java.text.SimpleDateFormat
 import java.time.LocalDate
 import java.time.format.DateTimeFormatter
 import java.util.Locale
diff --git a/app/src/main/java/com/example/bondoman/apiServices/IAuthService.kt b/app/src/main/java/com/example/bondoman/apiServices/IAuthService.kt
index 9112f0914cc5e33a9a6c2572a9499121eacdbf37..172847f50a5d6a714e14a4476d4b1e2dc0a53c27 100644
--- a/app/src/main/java/com/example/bondoman/apiServices/IAuthService.kt
+++ b/app/src/main/java/com/example/bondoman/apiServices/IAuthService.kt
@@ -1,6 +1,5 @@
 package com.example.bondoman.apiServices
 
-import retrofit2.Call
 import retrofit2.http.Body
 import retrofit2.http.Header
 import retrofit2.http.POST
diff --git a/app/src/main/java/com/example/bondoman/fragments/TransaksiFragment.kt b/app/src/main/java/com/example/bondoman/fragments/TransaksiFragment.kt
index 637784ae3200acad88f00fc414faf1387aa73ded..c62887fd669ca369a7933b385c8d784adc43ade0 100644
--- a/app/src/main/java/com/example/bondoman/fragments/TransaksiFragment.kt
+++ b/app/src/main/java/com/example/bondoman/fragments/TransaksiFragment.kt
@@ -7,14 +7,12 @@ import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
-import android.widget.Toast
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.example.bondoman.R
 import com.example.bondoman.activities.AddTransaction
-import com.example.bondoman.activities.EditTransaction
 import com.example.bondoman.adapter.TransactionListAdapter
 import com.example.bondoman.database.TransactionDatabase
 import com.example.bondoman.entities.Transaction
@@ -47,14 +45,11 @@ class TransaksiFragment : Fragment() {
         securePreferences = SecurePreferences(requireContext())
     }
 
-
     override fun onCreateView(
         inflater: LayoutInflater, container: ViewGroup?,
         savedInstanceState: Bundle?
     ): View? {
         val view = inflater.inflate(R.layout.fragment_transaksi, container, false)
-
-
         val recyclerView: RecyclerView = view.findViewById(R.id.recycler_view)
         adapter = TransactionListAdapter(wordViewModel, ::itemEditRequest, securePreferences)
         recyclerView.layoutManager = LinearLayoutManager(requireContext())
@@ -79,8 +74,6 @@ class TransaksiFragment : Fragment() {
     override fun onActivityResult(requestCode: Int, resultCode: Int, intentData: Intent?) {
         super.onActivityResult(requestCode, resultCode, intentData)
 
-        Log.i("Masuk", "Masuk")
-
         if (requestCode == newTransactionRequestCode && resultCode == Activity.RESULT_OK) {
             val title = intentData?.getStringExtra(AddTransaction.TITLE) ?: ""
             val amount = intentData?.getFloatExtra(AddTransaction.AMOUNT, 0.0f) ?: 0.0f
diff --git a/app/src/main/java/com/example/bondoman/fragments/TwibbonFragment.kt b/app/src/main/java/com/example/bondoman/fragments/TwibbonFragment.kt
index d3bea777cb6c5294354d6a937dd1182cd63d2660..a69442a1dce9773f2d8a187dc44c084ad07dfa2c 100644
--- a/app/src/main/java/com/example/bondoman/fragments/TwibbonFragment.kt
+++ b/app/src/main/java/com/example/bondoman/fragments/TwibbonFragment.kt
@@ -4,10 +4,7 @@ import android.Manifest
 import android.content.pm.PackageManager
 import android.graphics.Bitmap
 import android.graphics.BitmapFactory
-import android.graphics.ImageFormat
 import android.graphics.Matrix
-import android.graphics.Rect
-import android.graphics.YuvImage
 import android.hardware.camera2.CameraCharacteristics
 import android.media.ExifInterface
 import android.media.Image
@@ -34,7 +31,6 @@ import androidx.core.content.ContextCompat
 import androidx.fragment.app.Fragment
 import com.example.bondoman.R
 import java.io.ByteArrayInputStream
-import java.io.ByteArrayOutputStream
 import java.util.concurrent.ExecutorService
 import java.util.concurrent.Executors
 
diff --git a/app/src/main/java/com/example/bondoman/repositories/AuthRepository.kt b/app/src/main/java/com/example/bondoman/repositories/AuthRepository.kt
index 430b7e15aa1dc4dae782800832ea6045e7740219..5192451aed57d31f4e931e2d2897d8ba7a52de2d 100644
--- a/app/src/main/java/com/example/bondoman/repositories/AuthRepository.kt
+++ b/app/src/main/java/com/example/bondoman/repositories/AuthRepository.kt
@@ -2,7 +2,6 @@ package com.example.bondoman.repositories
 
 import android.util.Log
 import com.example.bondoman.apiServices.IAuthService
-import com.example.bondoman.apiServices.IScanService
 import com.example.bondoman.apiServices.LoginRequest
 import com.example.bondoman.lib.SecurePreferences
 import com.example.bondoman.retrofits.Retro
diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d52a85d7b663e9a892310ff7faccf2bd6157f31e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_search.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:fillColor="#000000"
+        android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zm-6,0C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
+</vector>