Tugas Pertemuan 5 PPB - Membuat aplikasi kalkulator sederhana dengan Kotlin
Nama | Akmal Sulthon Fathulloh |
---|---|
NRP | 5025211047 |
Kelas | PPB - D |
Pada pertemuan kali ini, kita diminta untuk membuat aplikasi kalkulator sederhana yang menjalankan operasi aritmetika sederhana (penjumlahan, pengurangan, perkalian, dan pembagian) menggunakan bahasa pemrograman Kotlin. Berikut adalah dokumentasi dan hasil pekerjaan yang telah dibuat.
Fungsi Utama (CalcApp)
Fungsi CalcApp() adalah komponen UI utama yang membangun tampilan dan logika dari aplikasi kalkulator sederhana menggunakan Jetpack Compose. Di dalamnya, tiga state (num1, num2, dan result) dideklarasikan untuk menyimpan input angka dan hasil perhitungan. UI dibungkus dalam Box agar semua elemen berada di tengah layar, lalu diatur secara vertikal dalam Column dengan spasi antar elemen. Fungsi ini menampilkan judul tebal, dua input angka, hasil perhitungan, tombol operasi matematika (+, -, ×, ÷), serta tombol "AC" untuk mereset semua nilai. Perhitungan dilakukan dengan memanggil fungsi calc() saat tombol ditekan, dan hasilnya ditampilkan secara dinamis.
@Composable | |
fun CalcApp() { | |
var num1 by remember { mutableStateOf("") } | |
var num2 by remember { mutableStateOf("") } | |
var result by remember { mutableStateOf("") } | |
Box( | |
modifier = Modifier.fillMaxSize(), | |
contentAlignment = Alignment.Center | |
) { | |
Column( | |
verticalArrangement = Arrangement.spacedBy(16.dp), | |
horizontalAlignment = Alignment.CenterHorizontally, | |
) { | |
Text( | |
text = "Simple Calculator", | |
style = MaterialTheme.typography.headlineLarge.copy(fontWeight = FontWeight.Bold) | |
) | |
Spacer(modifier = Modifier.height(8.dp)) | |
OutlinedTextField( | |
value = num1, | |
onValueChange = { num1 = it }, | |
label = { Text("Number 1") }, | |
singleLine = true | |
) | |
OutlinedTextField( | |
value = num2, | |
onValueChange = { num2 = it }, | |
label = { Text("Number 2") }, | |
singleLine = true | |
) | |
Text( | |
text = "Result: $result", | |
style = MaterialTheme.typography.headlineSmall | |
) | |
Row( | |
modifier = Modifier.fillMaxWidth(), | |
horizontalArrangement = Arrangement.SpaceEvenly | |
) { | |
Button(onClick = { result = calc(num1, num2, "+") }) { | |
Text("+") | |
} | |
Button(onClick = { result = calc(num1, num2, "-") }) { | |
Text("-") | |
} | |
Button(onClick = { result = calc(num1, num2, "*") }) { | |
Text("×") | |
} | |
Button(onClick = { result = calc(num1, num2, "/") }) { | |
Text("÷") | |
} | |
} | |
Button( | |
onClick = { | |
num1 = "" | |
num2 = "" | |
result = "" | |
}, | |
modifier = Modifier.fillMaxWidth(0.5f), | |
) { | |
Text("AC") | |
} | |
} | |
} | |
} |
Fungsi calc
Fungsi calc() bertugas melakukan perhitungan aritmatika berdasarkan dua input angka dalam bentuk string (num1 dan num2) serta operator matematika (+, -, *, /) yang juga diberikan dalam bentuk string. Fungsi ini pertama-tama memeriksa apakah kedua input kosong, dan jika iya, mengembalikan pesan "Invalid input". Selanjutnya, dalam blok try-catch, fungsi mengonversi input menjadi Double dan melakukan operasi sesuai operator yang dipilih. Jika terjadi error saat konversi atau perhitungan (misalnya input bukan angka atau pembagian dengan nol), maka fungsi akan mengembalikan string "Error". Hasil perhitungan akan diformat agar tidak menampilkan angka desimal jika hasilnya bilangan bulat (misalnya, 6.0 akan ditampilkan sebagai 6).
fun calc(num1: String, num2: String, operator: String): String { | |
if (num1.isEmpty() || num2.isEmpty()) { | |
return "Invalid input" | |
} | |
return try { | |
val result = when (operator) { | |
"+" -> num1.toDouble() + num2.toDouble() | |
"-" -> num1.toDouble() - num2.toDouble() | |
"*" -> num1.toDouble() * num2.toDouble() | |
"/" -> num1.toDouble() / num2.toDouble() | |
else -> return "Invalid operator" | |
} | |
if (result % 1.0 == 0.0) | |
result.toInt().toString() | |
else | |
result.toString() | |
} catch (e: Exception) { | |
"Error" | |
} | |
} |
Berikut adalah hasil running aplikasi pada Android Virtual Device.
Pengayaan
Pada pengayaan kali ini, saya membuat aplikasi kalkulasi sederhana yang dapat mengonversi suhu dari beberapa satuan suhu ke satuan yang lain (Reamur, Celcius, Fahrenheit, Kelvin). Berikut adalah dokumentasi dan hasil pekerjaan yang telah dibuat.
Berikut adalah hasil running aplikasi dari kode yang telah saya buat.
Video Presentasi
Berikut adalah video presentasi demonstrasi aplikasi yang telah saya buat.
Kode Sumber
Kode sumber dapat dilihat pada repositori GitHub berikut.
Referensi
https://kuliahppb.blogspot.com/2024/03/memahami-bahasa-kotlin.htmlhttps://kotlinlang.org/education/
Komentar
Posting Komentar