Tugas 6 - Kalkulator Konversi Uang
| Nama | NRP |
|---|---|
| Hasan Nazila | 5025201247 |
Aplikasi Konversi Mata Uang
Aplikasi ini dibuat menggunakan Jetpack Compose untuk melakukan konversi antara berbagai mata uang secara real-time.
Tampilan Aplikasi
Fitur Utama
- Input jumlah uang
- Dropdown untuk memilih mata uang asal dan tujuan
- Konversi real-time berdasarkan nilai tukar tetap
- Tampilan hasil konversi secara langsung
Langkah Pembuatan
- Buka Android Studio dan buat project baru dengan Jetpack Compose.
- Edit file
MainActivity.ktdan tambahkan UI serta logic konversi. - Buat fungsi
getConversionRate()untuk menyediakan nilai tukar tetap antar mata uang. - Gunakan
TextFielduntuk input jumlah,OutlinedButtondanDropdownMenuuntuk pilihan mata uang. - Gunakan
LaunchedEffectuntuk menjalankan perhitungan otomatis saat nilai berubah.
Penjelasan Kode Kotlin
1. Inisialisasi UI dengan Compose
setContent {
KonversiMataUangTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
CurrencyConverter(modifier = Modifier.padding(innerPadding))
}
}
}
Bagian ini memulai UI dengan tema bawaan, menampilkan komponen CurrencyConverter sebagai konten utama menggunakan struktur Scaffold.
2. Variabel State Utama
var amount by remember { mutableStateOf("") }
var fromCurrency by remember { mutableStateOf("IDR") }
var toCurrency by remember { mutableStateOf("USD") }
var result by remember { mutableStateOf("") }
Variabel-variabel ini digunakan untuk menyimpan data yang bisa berubah selama aplikasi berjalan. amount untuk input pengguna, fromCurrency dan toCurrency untuk pilihan mata uang, dan result untuk hasil akhir konversi.
3. Fungsi Konversi
fun getConversionRate(from: String, to: String): Double {
return when (from to to) {
"IDR" to "USD" -> 0.000065
"USD" to "IDR" -> 15400.0
"IDR" to "EUR" -> 0.000057
"EUR" to "IDR" -> 17500.0
...
else -> 1.0
}
}
Fungsi ini menyediakan nilai tukar tetap antar mata uang. Data ini bisa dikembangkan menjadi dynamic dengan API di masa depan.
4. Konversi Real-Time
LaunchedEffect(amount, fromCurrency, toCurrency) {
if (amount.isNotBlank()) {
val rate = getConversionRate(fromCurrency, toCurrency)
val cleanAmount = amount.replace(".", "").replace(",", ".")
val amountDouble = cleanAmount.toDoubleOrNull() ?: 0.0
result = String.format("%.2f", amountDouble * rate)
} else {
result = ""
}
}
Saat user mengetik atau mengganti mata uang, bagian ini otomatis menghitung hasil konversi menggunakan nilai tukar dan mengupdate hasilnya.
Komentar
Posting Komentar