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

https://github.com/YudisthiraPutra/PPB_Week4_Assignment

Comments

Popular posts from this blog

Pertemuan 2 - Aplikasi Hello Android

Pertemuan 7 - UI/UX Login Page

Pertemuan 6_Aplikasi Currency Converter