Tugas 4 Dice Roller
Nama: Dafarel Fatih Wirayudha
NRP: 5025211120
Kelas: PPB A
Aplikasi ini adalah Dice Roller (Pelempar Dadu). Saat tombol roll diklik, gambar dadu berubah secara acak dari angka 1 sampai 6.
Berikut adalah penjelasan kode untuk aplikasi ini:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
DiceRollerTheme {
DiceRollerApp()
}
}
}
}
- MainActivity adalah entry point aplikasi.
- setContent digunakan untuk mengatur UI menggunakan Jetpack Compose.
- DiceRollerTheme menerapkan tema aplikasi.
- DiceRollerApp() adalah fungsi composable utama yang menampilkan isi aplikasi.
fun DiceRollerApp() {
DiceWithButtonAndImage(Modifier.fillMaxSize().wrapContentSize(Alignment.Center))
}
Fungsi ini memanggil UI utama dan memposisikan isinya di tengah layar menggunakan
Modifier.
fun DiceWithButtonAndImage(modifier: 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 = result.toString()
)
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = { result = (1..6).random() }) {
Text(stringResource(R.string.roll))
}
}
}
- result menyimpan nilai dadu saat ini (1 sampai 6).
- remember + mutableStateOf memastikan nilai tetap terjaga dan bisa berubah saat UI di-recompose.
- Memilih gambar dadu sesuai nilai
result. - Image menampilkan gambar dadu.
- Button mengubah nilai result ke angka acak 1–6 ketika ditekan.
Tambahan:
- stringResource(R.string.roll) mengambil teks dari file strings.xml.
- R.drawable.dice_1 hingga dice_6 adalah gambar dadu yang disimpan di folder res/drawable.
Hasil:

Comments
Post a Comment