Tugas 5 PPB G 2025 - Farhan Dwi Putra 5025211093

Nama : Farhan Dwi Putra

NRP : 5025211093

Kelas : Pemrograman Perangkat Bergerak (G)


Tugas Pertemuan 5

Deskripsi Tugas

Pada pertemuan ke-5 ini, kami diberikan tugas untuk membuat aplikasi Kalkulator sederhana menggunakan Jetpack Compose di Android Studio. Aplikasi ini memungkinkan pengguna memasukkan dua angka dan memilih salah satu dari empat operasi dasar matematika, yaitu penjumlahan, pengurangan, perkalian, dan pembagian.


Source Code

Kode sumber dari aplikasi ini terdiri dari beberapa bagian utama yang semuanya ditulis menggunakan framework Jetpack Compose.


Penjelasan Kode

a. MainActivity.kt

MainActivity merupakan entry point dari aplikasi. Di dalamnya terdapat fungsi setContent { CalculatorApp() } yang menampilkan UI utama aplikasi kalkulator.

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            CalculatorApp()
        }
    }
}

b. CalculatorApp() - Fungsi Composable Utama

Fungsi ini membentuk UI kalkulator menggunakan komponen-komponen Jetpack Compose seperti TextField, Button, Text, dan Spacer.

@Composable
fun CalculatorApp() {
    var num1 by remember { mutableStateOf(TextFieldValue("")) }
    var num2 by remember { mutableStateOf(TextFieldValue("")) }
    var result by remember { mutableStateOf("") }

    Column(
        modifier = Modifier
            .fillMaxSize()
            .padding(16.dp)
    ) {
        Text(
            text = "Aplikasi Kalkulator Sederhana",
            style = MaterialTheme.typography.headlineMedium,
            fontWeight = FontWeight.Bold
        )

        Spacer(modifier = Modifier.height(16.dp))

        TextField(
            value = num1,
            onValueChange = { num1 = it },
            label = { Text("Masukkan angka pertama") }
        )

        Spacer(modifier = Modifier.height(8.dp))

        TextField(
            value = num2,
            onValueChange = { num2 = it },
            label = { Text("Masukkan angka kedua") }
        )

        Spacer(modifier = Modifier.height(16.dp))

        Row {
            Button(onClick = {
                result = calculate(num1.text, num2.text, "+")
            }) { Text("add") }

            Spacer(modifier = Modifier.width(8.dp))

            Button(onClick = {
                result = calculate(num1.text, num2.text, "-")
            }) { Text("sub") }

            Spacer(modifier = Modifier.width(8.dp))

            Button(onClick = {
                result = calculate(num1.text, num2.text, "*")
            }) { Text("mul") }

            Spacer(modifier = Modifier.width(8.dp))

            Button(onClick = {
                result = calculate(num1.text, num2.text, "/")
            }) { Text("div") }
        }

        Spacer(modifier = Modifier.height(16.dp))

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

        Spacer(modifier = Modifier.height(30.dp))

        Text("👨🏻‍💻 by:")
        Spacer(modifier = Modifier.height(8.dp))
        Text("Farhan Dwi Putra")
    }
}

c. calculate() - Fungsi Perhitungan

Fungsi ini bertugas untuk melakukan operasi matematika berdasarkan input angka dan operator yang dipilih.

fun calculate(n1: String, n2: String, operator: String): String {
    val num1 = n1.toDoubleOrNull()
    val num2 = n2.toDoubleOrNull()

    if (num1 == null || num2 == null) {
        return "Masukkan angka yang valid!"
    }

    return when (operator) {
        "+" -> (num1 + num2).toString()
        "-" -> (num1 - num2).toString()
        "*" -> (num1 * num2).toString()
        "/" -> if (num2 != 0.0) (num1 / num2).toString() else "Tidak bisa bagi 0"
        else -> "Operasi tidak valid"
    }
}

d. DefaultPreview() - Preview UI

Fungsi ini digunakan untuk menampilkan preview UI kalkulator di Android Studio tanpa perlu menjalankan aplikasi di emulator.

@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
    CalculatorApp()
}

Hasil



Source Code : Github

Comments

Popular posts from this blog

EAS PPB G 2025 - Kelompok Doa Ibu

EAS PPB G 2025 - Farhan Dwi Putra 5025211093

Tugas 11 PPB G 2025 - Farhan Dwi Putra 5025211093