Tugas 6
Nama : Danar Sodik Priyambodo
NRP : 5025211145
Aplikasi Konversi Mata Uang
Aplikasi ini dikembangkan menggunakan Jetpack Compose dan berfungsi untuk melakukan konversi antar mata uang secara langsung (real-time).
Fitur Utama Aplikasi
- Pengguna dapat menginput jumlah uang yang akan dikonversi.
- Tersedia menu dropdown untuk memilih mata uang asal dan tujuan.
- Konversi berlangsung otomatis menggunakan nilai tukar statis.
- Hasil konversi langsung diperbarui begitu input berubah.
Tahapan Pembuatan
- Membuat Proyek Baru
Proyek dibuat di Android Studio dengan dukungan Jetpack Compose. - Edit
MainActivity.kt
Komponen UI dan logika konversi ditambahkan di file ini. - Buat Fungsi
getConversionRate()
Berfungsi menyediakan nilai tukar antar mata uang secara manual. - Gunakan Komponen Compose
TextField
: untuk input nilai uang.OutlinedButton
&DropdownMenu
: untuk memilih mata uang.
- Perhitungan Otomatis dengan
LaunchedEffect
Hasil konversi dihitung dan ditampilkan ulang setiap kali input berubah.
Penjelasan Potongan Kode
1. Inisialisasi UI
setContent {
KonversiMataUangTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
CurrencyConverter(modifier = Modifier.padding(innerPadding))
}
}
}
Potongan ini menyiapkan tampilan utama aplikasi menggunakan tema, dengan komponen CurrencyConverter
sebagai konten utama di dalam Scaffold
.
2. State Variabel
var amount by remember { mutableStateOf("") }
var fromCurrency by remember { mutableStateOf("IDR") }
var toCurrency by remember { mutableStateOf("USD") }
var result by remember { mutableStateOf("") }
Variabel ini menyimpan input jumlah uang, pilihan mata uang asal dan tujuan, serta hasil konversi.
3. Fungsi Nilai Tukar
fun getConversionRate(from: String, to: String): Double {
return when (from to to) {
"IDR" to "USD" -> 0.000065
"USD" to "IDR" -> 15400.0
...
else -> 1.0
}
}
Fungsi ini mengembalikan nilai tukar berdasarkan kombinasi mata uang. Dapat dikembangkan untuk mengambil data dari API.
4. Perhitungan 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 = ""
}
}
Kalkulasi dilakukan ulang secara otomatis saat input atau pilihan mata uang berubah, lalu hasilnya ditampilkan langsung.
Link Source Code: https://github.com/Danar1111/Aplikasi-Konversi-Mata-Uang.git
Komentar
Posting Komentar