Pertemuan 6 - PPB G
Nama : Muhammad Hafidh Rosyadi
NRP : 5025211013
Kelas : PPB G
Kalkulator Konversi Mata Uang
Struktur Utama Aplikasi
Aplikasi ini memiliki struktur utama yang terdiri dari:- MainActivity yang bertugas menginisialisasi aplikasi.
- CurrencyChangerApp yang menjadi komponen utama antarmuka pengguna (UI).
MainActivity
MainActivity mengatur tema aplikasi dan menetapkan CurrencyChangerApp sebagai konten utama saat aplikasi dijalankan.CurrencyChangerApp
CurrencyChangerApp membangun seluruh antarmuka pengguna. Beberapa komponen penting di dalamnya adalah:1. Manajemen State:
var amount by remember { mutableStateOf("") }var fromCurrency by remember { mutableStateOf(currencies[0]) }
var toCurrency by remember { mutableStateOf(currencies[4]) }
var result by remember { mutableStateOf("0.00") }
State di atas digunakan untuk menyimpan input jumlah uang, pilihan mata uang asal, pilihan mata uang tujuan, dan hasil konversi.
2. Antarmuka Pengguna:
- Judul aplikasi. - TextField untuk input jumlah uang.
- Dua Dropdown untuk memilih mata uang sumber dan tujuan.
- Tombol untuk melakukan konversi.
- Kartu (Card) untuk menampilkan hasil konversi.
expanded = fromDropdownExpanded,
onExpandedChange = { fromDropdownExpanded = it },
modifier = Modifier.weight(1f)
) {
// ...
}
Komponen ini memungkinkan pengguna memilih mata uang dari daftar yang tersedia dengan cara yang sederhana dan elegan.
modifier = Modifier
.fillMaxWidth()
.padding(8.dp)
) {
// Menampilkan hasil konversi
}
Hasil konversi ditampilkan dalam sebuah kartu dengan desain bersih, membuatnya mudah dibaca oleh pengguna.
fun convertCurrency(amount: Double, from: String, to: String): String {
// Exchange rates relative to USD (as of October 2024)
val rates = mapOf(
"USD" to 1.0,
"EUR" to 0.92,
// ...
)
// Convert from source currency to USD
val usdAmount = if (from == "USD") amount else amount / rates[from]!!
// Convert from USD to target currency
val targetAmount = if (to == "USD") usdAmount else usdAmount * rates[to]!!
// Format hasil sesuai jenis mata uang
// ...
}
Fungsi ini bekerja melalui beberapa tahapan:
- Mendefinisikan nilai tukar mata uang terhadap USD.
- Mengubah jumlah uang dari mata uang asal ke USD.
- Mengonversi dari USD ke mata uang tujuan.
- Memformat hasil, dengan memperhatikan jenis mata uang (misalnya JPY dan IDR tanpa desimal, sedangkan lainnya menggunakan 2 angka desimal).
- Konversi otomatis saat pengguna mengetik jumlah uang.
- Konversi otomatis ketika pengguna mengganti pilihan mata uang.
- Konversi manual melalui tombol khusus.
- Dua Dropdown untuk memilih mata uang sumber dan tujuan.
- Tombol untuk melakukan konversi.
- Kartu (Card) untuk menampilkan hasil konversi.
3. Dropdown Pemilihan Mata Uang:
ExposedDropdownMenuBox(expanded = fromDropdownExpanded,
onExpandedChange = { fromDropdownExpanded = it },
modifier = Modifier.weight(1f)
) {
// ...
}
Komponen ini memungkinkan pengguna memilih mata uang dari daftar yang tersedia dengan cara yang sederhana dan elegan.
4. Tampilan Hasil Konversi:
Card(modifier = Modifier
.fillMaxWidth()
.padding(8.dp)
) {
// Menampilkan hasil konversi
}
Hasil konversi ditampilkan dalam sebuah kartu dengan desain bersih, membuatnya mudah dibaca oleh pengguna.
Fungsi Konversi Mata Uang
Konversi antar mata uang dilakukan oleh fungsi berikut:fun convertCurrency(amount: Double, from: String, to: String): String {
// Exchange rates relative to USD (as of October 2024)
val rates = mapOf(
"USD" to 1.0,
"EUR" to 0.92,
// ...
)
// Convert from source currency to USD
val usdAmount = if (from == "USD") amount else amount / rates[from]!!
// Convert from USD to target currency
val targetAmount = if (to == "USD") usdAmount else usdAmount * rates[to]!!
// Format hasil sesuai jenis mata uang
// ...
}
Fungsi ini bekerja melalui beberapa tahapan:
- Mendefinisikan nilai tukar mata uang terhadap USD.
- Mengubah jumlah uang dari mata uang asal ke USD.
- Mengonversi dari USD ke mata uang tujuan.
- Memformat hasil, dengan memperhatikan jenis mata uang (misalnya JPY dan IDR tanpa desimal, sedangkan lainnya menggunakan 2 angka desimal).
Fitur Interaktif
Aplikasi ini menyediakan berbagai fitur interaktif, seperti:- Konversi otomatis saat pengguna mengetik jumlah uang.
- Konversi otomatis ketika pengguna mengganti pilihan mata uang.
- Konversi manual melalui tombol khusus.
Komentar
Posting Komentar