Pertemuan 5_Aplikasi Kalkulator
Nama : Al-Ferro Yudisthira Putra
NRP : 5025211176
Kelas : PPB - A
Aplikasi Kalkulator Sederhana
Pada tugas kali ini, saya membentuk sebuah aplikasi kalkulator sederhana berdasarkan referensi berikut,
https://www.youtube.com/watch?v=HlE8MEtKBr0
Dengan maincode sebagai berikut,
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
var num1 by remember { mutableStateOf("0") }
var num2 by remember { mutableStateOf("0") }
Column {
TextField(
value = num1,
onValueChange = {
num1 = it
},
modifier = Modifier.fillMaxWidth()
)
TextField(
value = num2,
onValueChange = {
num2 = it
},
modifier = Modifier.fillMaxWidth()
)
Spacer(modifier = Modifier.height(16.dp))
Row (modifier = Modifier.align(Alignment.CenterHorizontally)) {
Button(onClick = {
var result = num1.toInt() + num2.toInt()
Toast.makeText(applicationContext, "Result is $result",
Toast.LENGTH_SHORT)
.show()
}) {
Text("Add")
}
Spacer(modifier = Modifier.width(16.dp))
Button(onClick = {
var result = num1.toInt() - num2.toInt()
Toast.makeText(applicationContext, "Result is $result",
Toast.LENGTH_SHORT)
.show()
}) {
Text("Sub")
}
Spacer(modifier = Modifier.width(16.dp))
Button(onClick = {
var result = num1.toInt() * num2.toInt()
Toast.makeText(applicationContext, "Result is $result",
Toast.LENGTH_SHORT)
.show()
}) {
Text("Multiply")
}
Spacer(modifier = Modifier.width(16.dp))
Button(onClick = {
var result = num1.toInt() / num2.toInt()
Toast.makeText(applicationContext, "Result is $result",
Toast.LENGTH_SHORT)
.show()
}) {
Text("Divide")
}
}
}
}
}
}
Kelas MainActivity merupakan titik masuk utama aplikasi dan mewarisi dari ComponentActivity. Di dalam fungsi onCreate(), UI diatur menggunakan setContent, yang memungkinkan kita membuat tampilan aplikasi dengan deklaratif menggunakan komponen-komponen Compose.
Di dalam setContent, terdapat dua variabel num1 dan num2 yang dideklarasikan menggunakan remember { mutableStateOf("0") }. Kedua variabel ini digunakan untuk menyimpan input pengguna dari dua TextField. Dengan menggunakan remember dan mutableStateOf, nilai input akan di-track secara otomatis, dan setiap perubahan akan memperbarui UI secara real-time.
Selanjutnya, komponen Column digunakan untuk menyusun elemen UI secara vertikal. Di dalamnya terdapat dua TextField yang berfungsi untuk menerima input angka dari pengguna. Nilai yang diketik pengguna langsung disimpan dalam num1 dan num2. Setelah itu, terdapat Spacer yang memberi jarak vertikal sebelum masuk ke bagian Row.
Komponen Row menyusun tombol-tombol secara horizontal dan disejajarkan ke tengah dengan Modifier.align(Alignment.CenterHorizontally). Di dalam Row ini terdapat empat Button untuk operasi matematika: penjumlahan, pengurangan, perkalian, dan pembagian. Setiap tombol memiliki onClick handler yang melakukan konversi input num1 dan num2 dari String ke Int menggunakan toInt(), kemudian melakukan operasi yang sesuai. Hasilnya ditampilkan menggunakan Toast.makeText(...), yang menampilkan pesan sementara di bagian bawah layar.
Repository
Comments
Post a Comment