Tugas 5 PPB - Membuat Aplikasi Kalkulator Sederhana Menggunakan Kotlin

ILHAM INSAN WAFI

5025211255 - Kelas PPB (D)

Tugas 5 - Membuat Aplikasi Kalkulator Sederhana

           Pada kesempatan kali ini, saya ingin membagikan pembelajaran terbaru yang telah saya lakukan. Saya berhasil mengembangkan sebuah aplikasi kalkulator sederhana. Aplikasi ini saya buat dengan mengikuti tutorial di salah satu channel youtube programming.

Berikut ini adalah dokumentasi dari hasil aplikasi yang saya buat:


Lalu saya melakukan modifikasi pada kode nya dengan menambahkan fitur konversi suhu dari celsius ke fahrenheit. Berikut hasilnya :


Berikut merupakan dokumentasi source code yang saya modifikasi untuk menambahkan fitur konversi suhu :

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            KalkulatorTheme {
                Surface(modifier = Modifier.fillMaxSize()) {
                    KalkulatorUI()
                }
            }
        }
    }
}

@Composable
fun KalkulatorUI() {
    val context = LocalContext.current

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

    var suhu by remember { mutableStateOf("0") }
    var hasilKonversi by remember { mutableStateOf("") }

    Column(modifier = Modifier.padding(16.dp)) {
        // Kalkulator
        Text(text = "Kalkulator Sederhana", style = MaterialTheme.typography.titleMedium)
        TextField(
            value = num1,
            onValueChange = { num1 = it },
            label = { Text("Angka pertama") },
            modifier = Modifier.fillMaxWidth()
        )
        Spacer(modifier = Modifier.height(8.dp))
        TextField(
            value = num2,
            onValueChange = { num2 = it },
            label = { Text("Angka kedua") },
            modifier = Modifier.fillMaxWidth()
        )
        Spacer(modifier = Modifier.height(16.dp))
        Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) {
            Button(onClick = {
                val result = num1.toIntOrNull()?.plus(num2.toIntOrNull() ?: 0)
                Toast.makeText(context, "Hasil: $result", Toast.LENGTH_SHORT).show()
            }) {
                Text("Tambah")
            }
            Button(onClick = {
                val result = num1.toIntOrNull()?.minus(num2.toIntOrNull() ?: 0)
                Toast.makeText(context, "Hasil: $result", Toast.LENGTH_SHORT).show()
            }) {
                Text("Kurang")
            }
            Button(onClick = {
                val result = num1.toIntOrNull()?.times(num2.toIntOrNull() ?: 0)
                Toast.makeText(context, "Hasil: $result", Toast.LENGTH_SHORT).show()
            }) {
                Text("Kali")
            }
            Button(onClick = {
                val result = if ((num2.toIntOrNull() ?: 0) != 0)
                    num1.toIntOrNull()?.div(num2.toIntOrNull() ?: 1)
                else "Tidak bisa dibagi 0"
                Toast.makeText(context, "Hasil: $result", Toast.LENGTH_SHORT).show()
            }) {
                Text("Bagi")
            }
        }

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

        // Konversi Suhu
        Text(text = "Konversi Suhu", style = MaterialTheme.typography.titleMedium)
        TextField(
            value = suhu,
            onValueChange = { suhu = it },
            label = { Text("Masukkan suhu") },
            modifier = Modifier.fillMaxWidth()
        )

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

        Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) {
            Button(onClick = {
                val c = suhu.toFloatOrNull()
                hasilKonversi = if (c != null) {
                    val f = (c * 9 / 5) + 32
                    "$c °C = $f °F"
                } else {
                    "Input tidak valid"
                }
            }) {
                Text("C → F")
            }

            Button(onClick = {
                val f = suhu.toFloatOrNull()
                hasilKonversi = if (f != null) {
                    val c = (f - 32) * 5 / 9
                    "$f °F = $c °C"
                } else {
                    "Input tidak valid"
                }
            }) {
                Text("F → C")
            }
        }

        Spacer(modifier = Modifier.height(8.dp))
        Text(text = hasilKonversi)
    }
}

@Preview(showBackground = true)
@Composable
fun KalkulatorPreview() {
    KalkulatorTheme {
        KalkulatorUI()
    }
}

Link Source Code Github : GITHUB

Video Penjelasan Source Code

Komentar

Postingan populer dari blog ini

TUGAS 4 APSI : Seleksi dan Manajemen Proyek

Tugas 1 (Infografis Perkembangan Teknologi Perangkat Bergerak)

Tugas 13 PBKK - CodeIgniter MVC Toko Online