PPB: Tugas 3

Nama: Nayya Kamila Putri Yulianto
NRP: 5025211183
Kelas: PPB (B)

Pada tugas kali ini, saya akan membuat aplikasi dice roller dengan interaksi button. Saat button diklik akan menghasilkan jumlah dadu yang berbeda. Berikut merupakan source codenya


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 import android.os.Bundle  
 import androidx.activity.ComponentActivity  
 import androidx.activity.compose.setContent  
 import androidx.compose.foundation.layout.Column  
 import androidx.compose.foundation.layout.fillMaxSize  
 import androidx.compose.foundation.layout.padding  
 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.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 com.example.tugas3ppb.ui.theme.Tugas3ppbTheme  
 import androidx.compose.foundation.Image  
 import androidx.compose.foundation.layout.height  
 import androidx.compose.foundation.layout.Spacer  
 import androidx.compose.runtime.getValue  
 import androidx.compose.runtime.mutableIntStateOf  
 import androidx.compose.runtime.mutableStateOf  
 import androidx.compose.runtime.remember  
 import androidx.compose.runtime.setValue  
 import androidx.compose.ui.unit.dp  
 class MainActivity : ComponentActivity() {  
   override fun onCreate(savedInstanceState: Bundle?) {  
     super.onCreate(savedInstanceState)  
     setContent {  
       Tugas3ppbTheme {  
         DiceRollerApp(modifier = Modifier.fillMaxSize())  
       }  
     }  
   }  
 }  
 @Composable  
 fun DiceRollerApp(modifier: Modifier) {  
   DiceWithButtonAndImage(modifier = Modifier  
     .fillMaxSize()  
     .wrapContentSize(Alignment.Center))  
 }  
 @Composable  
 fun DiceWithButtonAndImage(modifier: Modifier = Modifier) {  
   var result by remember { mutableIntStateOf(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,  
     horizontalAlignment = Alignment.CenterHorizontally  
   ) {  
     Image(painter = painterResource(id = imageResource), result.toString())  
     Spacer(modifier = Modifier.height(16.dp))  
     Button(onClick = { result = (1..6).random() }) {  
       Text(stringResource(id = R.string.roll))  
     }  
   }  
 }  
</code></pre>

Comments

Popular Posts