Pertemuan 5 - Aplikasi Kalkulator Sederhana


Pertemuan 5 - Aplikasi Kalkulator Sederhana



Nama: Muhammad Rafi Budi Purnama

NRP: 5025221307

Kelas: PPB A 



Saya mengikuti intruksi sesuai link berikut:

https://youtu.be/HlE8MEtKBr0?si=QRC8uXasbexSkw9u


Untuk tampilan hasilnya sebagai berikut:





Penjelasan Program Kalkulator Sederhana

Pada program kalkulator ini, terdapat tiga variabel utama:


var num1 by remember { mutableStateOf("0") } var num2 by remember { mutableStateOf("0") } var result by remember { mutableStateOf("") }


Ketiga variabel di atas digunakan untuk menyimpan nilai input dari pengguna (num1 dan num2) serta hasil perhitungan (result). Ketiganya dideklarasikan sebagai state agar UI dapat langsung merespons jika nilainya berubah.

Untuk menerima input dari pengguna, digunakan komponen TextField sebagai berikut:


TextField(value = num1, onValueChange = { num1 = it }) Spacer(modifier = Modifier.height(8.dp)) TextField(value = num2, onValueChange = { num2 = it })

Bagian di atas menampilkan dua kolom input: satu untuk angka pertama, dan satu lagi untuk angka kedua.

Selanjutnya, terdapat beberapa tombol yang mewakili operasi dasar matematika, yaitu penjumlahan, pengurangan, perkalian, dan pembagian:


Button(onClick = { val a = num1.toDoubleOrNull() val b = num2.toDoubleOrNull() result = if (a != null && b != null && b != 0.0) (a / b).toString() else "Tidak bisa dibagi 0" }) { Text("Div") }

Pada setiap tombol, input dari num1 dan num2 diubah menjadi angka menggunakan toIntOrNull() atau toDoubleOrNull(). Jika konversi berhasil (tidak null), maka dilakukan operasi matematika sesuai tombol yang ditekan. Jika input tidak valid (misalnya huruf), maka akan ditampilkan pesan kesalahan.

Contoh penanganan untuk pembagian:


Button(onClick = { val a = num1.toDoubleOrNull() val b = num2.toDoubleOrNull() result = if (a != null && b != null && b != 0.0) (a / b).toString() else "Tidak bisa dibagi 0" }) { Text("Div") }

Terakhir, hasil dari perhitungan akan ditampilkan menggunakan komponen Text seperti ini:


Text( text = "Hasil: $result", style = MaterialTheme.typography.titleLarge )

Komponen ini akan selalu menampilkan hasil terbaru dari perhitungan setiap kali ada perubahan nilai result.

Komentar

Postingan populer dari blog ini

TUGAS 2 : Jettpack compose : Hello, World!

Pertemuan 3 PPB (A) - Mengenal Composable Aplikasi Selamat Ulang Tahun

Tugas 1 PBB (A)