Tugas 4 - Membuat Aplikasi Dice Roller

 Moch. Avin (5025221061)

Pemrograman Perangkat Bergerak - PPB G



MainActivity.kt

package com.example.diceroller

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.material3.Button
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.sp
import com.example.diceroller.ui.theme.DiceRollerTheme
import kotlin.random.Random

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
DiceRollerTheme {
DiceRollerApp()
}
}
}
}

@Preview(showBackground = true)
@Composable
fun DiceRollerApp() {
DiceRollerWithImageAndButton(
modifier = Modifier
.fillMaxSize()
.wrapContentSize(align = Alignment.Center)
)
}

@Composable
fun DiceRollerWithImageAndButton(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 (
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
.fillMaxSize()
.wrapContentSize(align = Alignment.Center)
) {
Image(painter = painterResource(imageResource), contentDescription = null)
Button(onClick = { result = (1..6).random() }) {
Text(text = stringResource(R.string.roll), fontSize = 24.sp)
}
}
}

Penjelasan 

  • State Management: Menggunakan remember { mutableStateOf(1) } untuk menyimpan angka dadu yang akan diperbarui setiap kali tombol ditekan.
  • Gambar Dadu: Menggunakan painterResource() untuk menampilkan gambar dadu berdasarkan hasil yang diperoleh.
  • Fungsi Random: result = (1..6).random() untuk mendapatkan angka acak antara 1 hingga 6 setiap kali tombol ditekan.





Comments

Popular posts from this blog

Pengumpulan EAS Pemrograman Perangkat Bergerak G

Tugas 5 - Membuat Aplikasi Kalkulator Sederhana

Tugas 6 - Membuat aplikasi currency converter sederhana