Tugas 4 - Dice Roller

 

Membuat Dice Roller App


Nama: Made Daryl Adi Nugraha
NRP: 5025221008




Gambar Dice Roller:


MainActivity.kt:

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.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.Alignment
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.example.diceroller.ui.theme.DiceRollerTheme

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

@Preview
@Composable
fun DiceRollerApp() {
    DiceWithButtonAndImage()
}

@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.fillMaxSize(),
        horizontalAlignment = Alignment.CenterHorizontally,
        verticalArrangement = Arrangement.Center
    ) {
        Image(
            painter = painterResource(imageResource),
            contentDescription = result.toString()
        )
        Spacer(modifier = Modifier.height(16.dp))
        Button(onClick = { result = (1..6).random() }) {
            Text(stringResource(R.string.roll))
        }
    }
}

Penjelasan

Dice Roller App

Aplikasi Dice Roller adalah aplikasi sederhana berbasis Android yang dikembangkan menggunakan Jetpack Compose. Aplikasi ini memungkinkan pengguna untuk melempar dadu virtual dengan hanya menekan sebuah tombol.

Deskripsi

Aplikasi ini dirancang untuk mensimulasikan lemparan dadu enam sisi dengan tampilan yang interaktif dan mudah digunakan. Saat tombol "Roll" ditekan, dadu akan menampilkan angka acak dari 1 hingga 6.

Fitur Utama

  • Menampilkan gambar dadu di layar.

  • Memungkinkan pengguna untuk melempar dadu dengan menekan tombol "Roll".

  • Gambar dadu akan berubah sesuai dengan hasil lemparan yang diperoleh secara acak.

Kekurangan

  • Belum ada animasi transisi ketika dadu di-roll, sehingga perubahan gambar terjadi secara langsung tanpa efek visual.

Struktur Kode

MainActivity.kt
File utama yang mengatur tampilan UI aplikasi menggunakan Jetpack Compose.

DiceRollerApp()
Fungsi utama yang memanggil tampilan utama aplikasi.

DiceWithButtonAndImage()
Fungsi utama dalam aplikasi yang menangani tampilan dan interaksi pengguna.

  • Menggunakan variabel result untuk menyimpan hasil lemparan dadu.

  • imageResource digunakan untuk menampilkan gambar dadu yang sesuai berdasarkan hasil lemparan.

  • Tata letak menggunakan Column agar semua elemen tertata secara vertikal dan berada di tengah layar.

  • Image digunakan untuk menampilkan dadu sesuai dengan hasil lemparan.

  • Button memungkinkan pengguna untuk melempar dadu dengan menghasilkan angka acak dari 1 hingga 6.

Cara Kerja

  1. Saat pertama kali dijalankan, aplikasi akan menampilkan angka 1 pada dadu secara default.

  2. Ketika tombol "Roll" ditekan, nilai dadu diperbarui dengan angka acak antara 1 hingga 6.

  3. Gambar dadu akan berubah mengikuti angka yang dihasilkan.

  4. Pengguna dapat terus melempar dadu dengan menekan tombol "Roll".

Cara Menjalankan Aplikasi

  1. Buka proyek ini di Android Studio.

  2. Jalankan aplikasi pada emulator atau perangkat Android fisik.

  3. Tekan tombol "Roll" untuk melempar dadu dan melihat hasilnya.

Selamat mencoba. 😊

Komentar

Postingan populer dari blog ini

Tugas 1 - Perkembangan Teknologi Perangkat Bergerak

Tugas 6 - CurrencyConverter