Tugas 6 PPB G 2025 - Farhan Dwi Putra 5025211093
Nama : Farhan Dwi Putra
NRP : 5025211093
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.

Comments
Post a Comment