PPB I - Tugas 6 - Kotlin - Membuat Aplikasi Kalkulator Sederhana

 Kotlin - Membuat Aplikasi Kalkulator Sederhana

    Pada pertemuan minggu ke-6 perkuliahan mata kuliah Pemrograman Perangkat Bergerak, kami membahas tentang Kotlin sebagai bahasa pemrograman pengembangan aplikasi perangkat lunak Android. Sebagai tugas latihan, kami diminta membuat aplikasi Kalkulator sederhana. Pada aplikasi ini terdapat beberapa composable yang digunakan, seperti TextOutlinedTextField, dan Button.

    Langkah pertama adalah membuat proyek menggunakan activity kosong. Setelah membuat proyek, langkah selanjutnya adalah mengisi kolom Name dengan "MyCalculator", memilih level API minimum 26 (Oreo) di kolom Minimum SDK, dan kemudian mengklik tombol Finish. Selanjutnya, memodifikasi file MainActivity.kt dengan menuliskan kode composable terkait halaman kalkulator seperti dibawah ini:

package com.ariefbadrussholeh.mycalculator
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.material3.TextField
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
var num1 by remember {
mutableStateOf("")
}
var num2 by remember {
mutableStateOf("")
}
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally
) {
TextField(
value = num1,
onValueChange = { num1 = it },
modifier = Modifier.fillMaxWidth().padding(16.dp),
label = { Text("Number 1") },
placeholder = { Text(text = "0") },
keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number)
)
TextField(
value = num2,
onValueChange = { num2 = it },
modifier = Modifier.fillMaxWidth().padding(16.dp),
label = { Text("Number 2") },
placeholder = { Text(text = "0") },
keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number)
)
Row(
modifier = Modifier.padding(vertical = 16.dp)
) {
Button(onClick = {
val result = (num1.toDoubleOrNull() ?: 0.0) + (num2.toDoubleOrNull() ?: 0.0)
Toast.makeText(applicationContext, "Result is $result", Toast.LENGTH_SHORT).show()
}) {
Text(text = "Add")
}
Spacer(modifier = Modifier.width(8.dp))
Button(onClick = {
val result = (num1.toDoubleOrNull() ?: 0.0) - (num2.toDoubleOrNull() ?: 0.0)
Toast.makeText(applicationContext, "Result is $result", Toast.LENGTH_SHORT).show()
}) {
Text(text = "Sub")
}
Spacer(modifier = Modifier.width(8.dp))
Button(onClick = {
val result = (num1.toDoubleOrNull() ?: 0.0) * (num2.toDoubleOrNull() ?: 0.0)
Toast.makeText(applicationContext, "Result is $result", Toast.LENGTH_SHORT).show()
}) {
Text(text = "Mul")
}
Spacer(modifier = Modifier.width(8.dp))
Button(onClick = {
val num2Value = num2.toDoubleOrNull() ?: 0.0
val result = (num1.toDoubleOrNull() ?: 0.0) / num2Value
Toast.makeText(applicationContext, "Result is $result", Toast.LENGTH_SHORT).show()
}) {
Text(text = "Div")
}
}
}
}
}
}
view raw MainActivity.kt hosted with ❤ by GitHub

    TextField digunakan untuk memasukkan dua bilangan. Setiap TextField terhubung dengan variabel num1 dan num2, yang merupakan mutableStateOf. Artinya, setiap kali nilai berubah, antarmuka pengguna akan diperbarui secara otomatis. TextField ini disusun dalam satu Column, yang menempatkan elemen-elemen secara vertikal di tengah layar.

    Kemudian, ada satu Row yang berisi empat Button, masing-masing bertindak sebagai operasi matematika: penambahan (Add), pengurangan (Sub), perkalian (Mul), dan pembagian (Div). Setiap tombol memiliki fungsi onClick yang sesuai, yang mengambil nilai dari num1 dan num2, melakukan operasi matematika yang sesuai, dan menampilkan hasil menggunakan Toast.

    Misalnya, saat tombol Add ditekan, aplikasi akan mengambil nilai dari num1 dan num2, mengonversinya ke tipe data Double, kemudian menjumlahkannya. Hasilnya kemudian ditampilkan dalam pesan Toast dengan format "Result is [hasil penjumlahan]".

    Langkah Terakhir adalah menjalankan aplikasi. Berikut adalah tampilan aplikasi pada perangkat Android:

Arief Badrus Sholeh
5025201228
Pemrograman Perangkat Bergerak I
2023/2024

Komentar