Tugas 4 Pemrograman Perangkat Bergerak

Nama    : Nabila A'idah Diani

NRP      : 5025211032

Kelas    : PPB A


Tugas 4 Pemrograman Perangkat Bergerak



    Pada tugas keempat ini, kami ditugaskan untuk membuat aplikasi dice roller menggunakan Jetpack Compose. Pada aplikasi ini, ketika tombol roll ditekan, maka dice akan bergerak secara acak antara 1 sampai 6 dikarenakan adanya 'Button(onClick = {result = (1..6).random()})'. Gambar dadu ditampilkan melalui painter = painterResource(imageResource). Berikut merupakan contoh kode MainActivity.kt secara lebih lengkap:

package com.example.diceroller

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




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

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

@Composable
fun DiceWithButtonAndImage(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 = "1"
)
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = {result = (1..6).random()}) {
Text(stringResource(R.string.roll))
}
}
}

Link github: https://github.com/nabilaaidah/diceroller-app

Comments

Popular posts from this blog

ETS Pemrograman Perangkat Bergerak

Tugas 8 Pemrograman Perangkat Bergerak

Tugas 5 Pemrograman Perangkat Bergerak