Tugas 5 Pemrograman Perangkat Bergerak
Nama : Nabila A'idah Diani
NRP : 5025211032
Kelas : PPB A
Tugas 5 Pemrograman Perangkat Bergerak
Pada tugas kelima ini, dibuat calculator app dengan menggunakan kotlin. Pada aplikasi ini, terdapat dua textInput untuk memasukkan angka yang akan dihitung, serta fitur seperti Add untuk menambah, Mul untuk mengalikan, Sub untuk mengurangi, dan Div untuk membagi. Hasil akan terlihat saat tombol kalkulasi matematika telah ditekan. Berikut merupakan kode MainActivity.kt yang digunakan:
package com.example.mycalculator
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.Arrangement
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.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Button
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TextField
import androidx.compose.runtime.Composable
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.mycalculator.ui.theme.MyCalculatorTheme
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")
}
var res by remember {
mutableStateOf("")
}
Column(
modifier = Modifier
.fillMaxSize()
.padding(24.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(text = "Calculator App", fontSize = 24.sp, color = Color.DarkGray, fontWeight = FontWeight.Bold)
Spacer(modifier = Modifier.height(16.dp))
TextField(value = num1, onValueChange = { it:String ->
num1 = it
})
TextField(value = num2, onValueChange = { it:String ->
num2 = it
})
Spacer(modifier = Modifier.height(16.dp))
Row {
Button(onClick = {
var result = num1.toInt() + num2.toInt()
res = result.toString();
Toast.makeText(applicationContext, "Result is $result", Toast.LENGTH_SHORT).show()
}) {
Text(text = "Add")
}
Spacer(modifier = Modifier.width(16.dp))
Button(onClick = {
var result = num1.toInt() - num2.toInt()
res = result.toString();
Toast.makeText(applicationContext, "Result is $result", Toast.LENGTH_SHORT).show()
}) {
Text(text = "Sub")
}
Spacer(modifier = Modifier.width(16.dp))
Button(onClick = {
var result = num1.toInt() * num2.toInt()
res = result.toString();
Toast.makeText(applicationContext, "Result is $result", Toast.LENGTH_SHORT).show()
}) {
Text(text = "Mul")
}
Spacer(modifier = Modifier.width(16.dp))
Button(onClick = {
var result = num1.toInt() / num2.toInt();
res = result.toString();
Toast.makeText(applicationContext, "Result is $result", Toast.LENGTH_SHORT).show()
}) {
Text(text = "Div")
}
}
Card(
modifier = Modifier.fillMaxWidth().padding(vertical = 16.dp),
elevation = CardDefaults.cardElevation(defaultElevation = 6.dp),
shape = RoundedCornerShape(12.dp),
colors = CardDefaults.cardColors(
containerColor = MaterialTheme.colorScheme.primaryContainer
)
){
if(res.isNotEmpty()){
Text(
text = res,
fontSize = 30.sp,
color = MaterialTheme.colorScheme.onPrimaryContainer.copy(alpha = 0.7f),
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center
)
}
}
}
}
}
}
Berikut merupakan dokumentasi video untuk tugas ini:
Link github: https://github.com/nabilaaidah/calculator-app
Sumber: https://www.youtube.com/watch?v=HlE8MEtKBr0

Comments
Post a Comment