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:

Video Demo:

Link Source: GitHub


Comments

Popular posts from this blog

ETS

Tugas 7 Login Page

Tugas 6 Money Converter