Tugas 6 PPB G 2025 - Farhan Dwi Putra 5025211093

Nama : Farhan Dwi Putra

NRP : 5025211093

Kelas : Pemrograman Perangkat Bergerak (G)


Tugas Pertemuan 6

Aplikasi Currency Converter

Pada pertemuan kali ini, kami diminta untuk membuat aplikasi konversi mata uang sederhana berbasis Android menggunakan Jetpack Compose. Aplikasi ini ditulis menggunakan bahasa Kotlin dan berfungsi untuk melakukan konversi nilai mata uang USD (US Dollar) ke IDR (Indonesian Rupiah) dan sebaliknya.

Aplikasi ini dibuat dengan tampilan yang sederhana namun fungsional, memanfaatkan konsep state management dengan remember dan mutableStateOf, serta layout berbasis Column untuk menyusun elemen UI secara vertikal.


Struktur dan Penjelasan Kode

1. MainActivity.kt

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            SimpleCurrencyConverterTheme {
                CurrencyConverterApp()
            }
        }
    }
}
  • enableEdgeToEdge(): Mengaktifkan tampilan layar penuh.

  • setContent { ... }: Mendefinisikan konten tampilan menggunakan Jetpack Compose.

  • CurrencyConverterApp(): Fungsi utama untuk menjalankan UI dan logika aplikasi.


2. Fungsi CurrencyConverterApp()

Fungsi ini merupakan jantung dari aplikasi konversi. Berikut adalah penjelasan bagian-bagian penting dari kode:

Deklarasi State
var usdAmount by remember { mutableStateOf(TextFieldValue("")) }
var idrAmount by remember { mutableStateOf(TextFieldValue("")) }
var result by remember { mutableStateOf("") }
val conversionRate = 16500.0
  • Menyimpan nilai input USD dan IDR.

  • Menyimpan hasil konversi.

  • conversionRate menyatakan nilai tukar 1 USD = 16.500 IDR.

Layout Utama Menggunakan Column
Column(
    modifier = Modifier
        .fillMaxSize()
        .padding(16.dp),
    verticalArrangement = Arrangement.Center
) {
  • Layout disusun secara vertikal dan berada di tengah layar.

  • Terdapat elemen Text, TextField, Spacer, dan Button.


3. Input USD → Konversi ke IDR

TextField(
    value = usdAmount,
    onValueChange = { usdAmount = it },
    label = { Text("Masukkan USD") },
    modifier = Modifier.fillMaxWidth()
)

Button(
    onClick = {
        val usd = usdAmount.text.toDoubleOrNull()
        result = if (usd != null) {
            val idr = usd * conversionRate
            "Hasil: Rp ${"%,.0f".format(idr)}"
        } else {
            "Masukkan nilai USD yang valid!"
        }
    },
    modifier = Modifier.fillMaxWidth()
) {
    Text("Konversi ke IDR")
}
  • Input dari pengguna diambil dalam bentuk TextField.

  • Konversi dilakukan jika nilai valid, dengan hasil ditampilkan dalam format mata uang rupiah.


4. Input IDR → Konversi ke USD

TextField(
    value = idrAmount,
    onValueChange = { idrAmount = it },
    label = { Text("Masukkan IDR") },
    modifier = Modifier.fillMaxWidth()
)

Button(
    onClick = {
        val idr = idrAmount.text.toDoubleOrNull()
        result = if (idr != null) {
            val usd = idr / conversionRate
            "Hasil: USD ${"%.2f".format(usd)}"
        } else {
            "Masukkan nilai IDR yang valid!"
        }
    },
    modifier = Modifier.fillMaxWidth()
) {
    Text("Konversi ke USD")
}
  • Proses ini kebalikan dari sebelumnya: dari nilai rupiah ke dolar.


5. Menampilkan Hasil Konversi

Text(
    text = result,
    style = MaterialTheme.typography.titleLarge
)
  • Menampilkan hasil konversi dari input yang diberikan pengguna.


Hasil


Source Code : Github


Comments

Popular posts from this blog

EAS PPB G 2025 - Kelompok Doa Ibu

EAS PPB G 2025 - Farhan Dwi Putra 5025211093

Tugas 11 PPB G 2025 - Farhan Dwi Putra 5025211093