Tugas 4 Pemrograman Perangkat Bergerak
Nama : Nabila A'idah Diani
NRP : 5025211032
Kelas : PPB A
Tugas 4 Pemrograman Perangkat Bergerak
Pada tugas keempat ini, kami ditugaskan untuk membuat aplikasi dice roller menggunakan Jetpack Compose. Pada aplikasi ini, ketika tombol roll ditekan, maka dice akan bergerak secara acak antara 1 sampai 6 dikarenakan adanya 'Button(onClick = {result = (1..6).random()})'. Gambar dadu ditampilkan melalui painter = painterResource(imageResource). Berikut merupakan contoh kode MainActivity.kt secara lebih lengkap:
package com.example.diceroller
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.example.diceroller.ui.theme.DiceRollerTheme
import androidx.compose.ui.Alignment
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.material3.Button
import androidx.compose.ui.res.painterResource
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.Spacer
import androidx.compose.ui.unit.dp
import androidx.compose.ui.res.stringResource
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
DiceRollerTheme {
DiceRollerApp()
}
}
}
}
@Preview
@Composable
fun DiceRollerApp() {
DiceWithButtonAndImage(modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.Center))
}
@Composable
fun DiceWithButtonAndImage(modifier: Modifier) {
var result by remember { mutableStateOf(1) }
val imageResource = when (result) {
1 -> R.drawable.dice_1
2 -> R.drawable.dice_2
3 -> R.drawable.dice_3
4 -> R.drawable.dice_4
5 -> R.drawable.dice_5
else -> R.drawable.dice_6
}
Column(
modifier = modifier,
horizontalAlignment = Alignment.CenterHorizontally
) {
Image(
painter = painterResource(imageResource),
contentDescription = "1"
)
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = {result = (1..6).random()}) {
Text(stringResource(R.string.roll))
}
}
}
Link github: https://github.com/nabilaaidah/diceroller-app

Comments
Post a Comment