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.

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.

Kesimpulan

Kode ini merupakan contoh implementasi aplikasi penukaran mata uang yang sederhana namun efektif. Dengan menggunakan pendekatan berbasis state management, aplikasi ini mampu mengelola perubahan data dan tampilan secara responsif. Fungsi konversinya fleksibel dengan nilai tukar yang sudah ditentukan, serta antarmuka pengguna dibangun dengan Material Design 3 sehingga tampil modern dan nyaman digunakan.

Komentar

Postingan populer dari blog ini

ETS - PPB G

Pertemuan 5 - PPB G

Pertemuan 3 - PPB G