Komponen Button (Aplikasi Dice Roller)
Nama : Rafaela Shyra Ashma' Ramadhani
NRP : 5025231217
Kelas : Pemrograman Perangkat Bergerak (B)
Tugas 4 - Pertemuan 4
Pada pertemuan keempat ini, dilakukan pengerjaan tugas berdasarkan CodeLab Android Basics with Compose, yaitu membuat aplikasi sederhana bernama Dice Roller. Aplikasi ini berfungsi untuk mensimulasikan pelemparan dadu secara digital, di mana pengguna dapat menekan tombol untuk menghasilkan angka acak dari 1 hingga 6. Hasil dari proses tersebut kemudian ditampilkan dalam bentuk gambar dadu serta nilai angka yang sesuai.
Melalui tugas ini, dipelajari penggunaan komponen Button pada Jetpack Compose sebagai sarana interaksi pengguna, serta penerapan state management menggunakan remember dan mutableIntStateOf. Dengan konsep state tersebut, setiap perubahan nilai akan secara otomatis memperbarui tampilan melalui mekanisme recomposition tanpa perlu melakukan pembaruan UI secara manual. Selain itu, tugas ini juga membantu memahami bagaimana membangun antarmuka aplikasi secara deklaratif dengan menghubungkan logika program dan tampilan secara langsung.
Langkah Pengerjaan:
dice_1.xml sampai dice_6.xml) ke dalam folder res/drawable. File tersebut berupa vector drawable yang merepresentasikan setiap sisi dadu.res/values/strings.xml dengan nama roll yang berisi teks "Kocok Dadu!" untuk digunakan sebagai label tombol.DiceRollerApp() yang berfungsi sebagai tampilan utama aplikasi.remember dan mutableIntStateOf untuk menyimpan nilai hasil dadu. State ini akan berubah setiap kali tombol ditekan.when untuk menentukan gambar dadu yang akan ditampilkan berdasarkan nilai hasil dadu (1 sampai 6).Image dengan ukuran tertentu agar terlihat jelas di layar.Button dengan fungsi onClick yang berisi logika untuk menghasilkan angka acak dari 1 sampai 6 menggunakan (1..6).random().Column dengan alignment tengah agar tampilan lebih rapi dan terpusat.Konsep yang Dipelajari:
remember, nilai state tidak akan di-reset saat terjadi recomposition. mutableIntStateOf memungkinkan perubahan nilai integer yang dapat diamati oleh Compose sehingga UI akan diperbarui secara otomatis.onClick berisi aksi yang akan dijalankan saat tombol ditekan, dalam hal ini adalah mengacak angka dadu.(1..6).random() digunakan untuk menghasilkan angka acak dalam rentang 1 hingga 6, yang merepresentasikan hasil pelemparan dadu.Image digunakan untuk menampilkan gambar dari folder drawable. Gambar yang ditampilkan akan berubah sesuai dengan nilai state yang aktif.Column digunakan untuk menyusun elemen secara vertikal. Spacer digunakan untuk memberikan jarak antar komponen, sedangkan Alignment mengatur posisi elemen agar berada di tengah layar.Kode: GitHub
Penjelasan Kode Program:
Kode program dimulai dengan pembuatan class MainActivity yang merupakan turunan dari ComponentActivity. Pada fungsi onCreate, digunakan setContent untuk menentukan tampilan aplikasi menggunakan Jetpack Compose, di mana fungsi DiceRollerApp() dipanggil sebagai UI utama.
Di dalam fungsi DiceRollerApp(), terdapat variabel result yang dideklarasikan menggunakan remember dan mutableIntStateOf(1) untuk menyimpan nilai hasil dadu. Nilai ini akan berubah setiap kali tombol ditekan. Selanjutnya digunakan ekspresi when untuk menentukan resource gambar dadu yang sesuai dengan nilai result.
Tampilan aplikasi disusun menggunakan Column dengan posisi tengah layar. Di dalamnya terdapat composable Image untuk menampilkan gambar dadu, Text untuk menampilkan hasil angka, serta Button yang digunakan untuk mengacak nilai dadu. Ketika tombol ditekan, nilai result akan diperbarui menggunakan fungsi (1..6).random(), sehingga Compose akan melakukan recomposition dan memperbarui tampilan gambar serta teks secara otomatis.
Hasil:
Komentar
Posting Komentar