Pertemuan 4 - Aplikasi Dice Roller

Nama              : Al-Ferro Yudisthira Putra

NRP                : 5025211176

Kelas               : PPB - A


APLIKASI DICE ROLLER
Pada tugas pertemuan 4,  Saya membangun sebuah aplikasi sederhana berupa Dice Roller.


Aplikasi ini memiliki code utama berbentuk sebagai berikut.

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            DiceRollerTheme {
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    DiceRollerApp()
                }
            }
        }
    }
}

@Preview
@Composable
fun DiceRollerApp() {
    DiceWithButtonAndImage(modifier = Modifier
        .fillMaxSize()
        .wrapContentSize(Alignment.Center)
    )
}

@Composable
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())

        Button(
            onClick = { result = (1..6).random() },
        ) {
            Text(text = stringResource(R.string.roll), fontSize = 24.sp)
        }
    }
}

Kode tersebut adalah aplikasi Android sederhana menggunakan Jetpack Compose yang menampilkan simulator dadu. Fungsi utama MainActivity menetapkan tampilan aplikasi dengan memanggil DiceRollerApp, yang kemudian menampilkan komponen DiceWithButtonAndImage. Di dalam komponen ini, nilai dadu disimpan dalam variabel result yang berubah secara acak saat tombol ditekan. Gambar dadu yang ditampilkan disesuaikan berdasarkan nilai result, menggunakan gambar dari res/drawable seperti dice_1, dice_2, dan seterusnya. UI tersusun dalam Column yang memusatkan gambar dan tombol secara vertikal, dan teks tombol diambil dari file string resource. Aplikasi ini menggunakan pendekatan deklaratif Compose dengan pengelolaan state menggunakan remember, memungkinkan UI untuk secara otomatis memperbarui gambar dadu setiap kali nilai result berubah.





Comments

Popular posts from this blog

Pertemuan 2 - Aplikasi Hello Android

Pertemuan 7 - UI/UX Login Page

Pertemuan 6_Aplikasi Currency Converter