TUGAS 4 - APLIKASI DICE ROLLER
Nama : Dimas Aria Pujangga
NRP : 5025211212
Kelas : PPB (A)
APLIKASI DICE ROLLER
Output:
Penjelasan:
MainActivity: Merupakan aktivitas utama aplikasi yang menggunakan Jetpack Compose untuk membuat UI. Di dalam onCreate(), tema DiceRollerTheme diterapkan dan Surface digunakan sebagai container utama dengan background sesuai MaterialTheme. Konten utama aplikasi dijalankan melalui DiceRollerApp().
DiceRollerApp: Fungsi @Composable yang berfungsi sebagai tampilan utama aplikasi. Mengatur layout dengan memanggil komponen DiceWithButtonAndImage dan menggunakan modifier untuk menempatkan seluruh konten di tengah layar dengan fillMaxSize() dan wrapContentSize(Alignment.Center).
DiceWithButtonAndImage: Fungsi @Composable utama yang menampilkan gambar dadu dan tombol roll. Komponen ini menggunakan:
- State management dengan
var result by remember { mutableStateOf(1) }
untuk menyimpan nilai dadu saat ini (1-6) - When expression untuk memilih gambar dadu yang sesuai dari R.drawable.dice_1 sampai R.drawable.dice_6 berdasarkan nilai result
- Column layout untuk menyusun elemen secara vertikal dengan horizontalAlignment = Alignment.CenterHorizontally
- Image component untuk menampilkan gambar dadu dengan painterResource dan contentDescription untuk accessibility
- Button component dengan onClick listener yang menghasilkan angka acak menggunakan (1..6).random()
- Text component yang mengambil string dari stringResource(R.string.roll) dengan fontSize 24sp
State Management: Aplikasi menggunakan remember dan mutableStateOf untuk mengelola state nilai dadu. Ketika tombol diklik, nilai result berubah secara acak, yang otomatis memicu recomposition dan mengubah gambar dadu yang ditampilkan.
Random Logic: Menggunakan (1..6).random()
untuk menghasilkan angka acak antara 1 hingga 6, mensimulasikan pelemparan dadu sungguhan.
Preview: Annotation @Preview pada DiceRollerApp memungkinkan developer melihat tampilan UI di Android Studio tanpa perlu menjalankan aplikasi di perangkat atau emulator.
Resource Dependencies: Aplikasi membutuhkan 6 file gambar dadu (dice_1.png hingga dice_6.png) di folder drawable dan string resource "roll" di strings.xml untuk teks tombol.
https://github.com/dimaspujangga/DiceRoller
Comments
Post a Comment