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")
}
}
}
}
view raw CalcApp.kt hosted with ❤ by GitHub

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"
}
}
view raw calc.kt hosted with ❤ by GitHub

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.html
https://kotlinlang.org/education/

Komentar

Postingan populer dari blog ini

Tugas Pertemuan 2 PPB - Membuat aplikasi sederhana dengan Jetpack Compose

Tugas Pertemuan 4 PPB - Membuat aplikasi Dice Roller interaktif

Evaluasi Tengah Semester Perancangan Perangkat Lunak