Tugas 7 PPB - Dessert Clicker
Nama : I Gusti Ngurah Ervan Juli Ardana NRP : 5025211205 Kelas : Pemrograman Perangkat Bergerak B Tahun : 2024
Pada pertemuan kelas Pemrograman Perangkat Bergerak B kali ini, kami diperkenalkan dengan pengenalan Dessert Clicker pada android studio. Pada pertemuan ini, saya akan akan membuat sebuah aplikasi bernama Dessert Clicker. Aplikasi ini memungkinkan pengguna berinteraksi dengan cara men-tap gambar kue, yang akan meningkatkan jumlah kue yang terjual dan total pendapatan
Aplikasi Dessert Clicker
Implementasi
Buatlah Empty Activity pada android studio
Ubahlah bagian mainactivity.kt sebagai berikut:
Kelas Main Activity :
pertama kali dilakukan pemanggilan enableEdgeToEdge() untuk mengoptimalkan tampilan aplikasi agar memanfaatkan layar secara penuh. Selanjutnya, super.onCreate(savedInstanceState) digunakan untuk melakukan inisialisasi standar dari kelas induk ComponentActivity.
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
Log.d(TAG, "onCreate Called")
setContent {
DessertClickerTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier
.fillMaxSize()
.statusBarsPadding(),
) {
DessertClickerApp(desserts = Datasource.dessertList)
}
}
}
}
Fungsi messsage :
Setiap fungsi ini berfungsi penting dalam mengelola siklus hidup aktivitas di Android, memungkinkan aplikasi untuk merespons perubahan dalam status dan interaksi pengguna dengan baik
override fun onStart() {
super.onStart()
Log.d(TAG, "onStart Called")
}
override fun onResume() {
super.onResume()
Log.d(TAG, "onResume Called")
}
override fun onRestart() {
super.onRestart()
Log.d(TAG, "onRestart Called")
}
override fun onPause() {
super.onPause()
Log.d(TAG, "onPause Called")
}
override fun onStop() {
super.onStop()
Log.d(TAG, "onStop Called")
}
override fun onDestroy() {
super.onDestroy()
Log.d(TAG, "onDestroy Called")
}
}
Fungsi DetermineDessertToShow
fun determineDessertToShow(
desserts: List<Dessert>,
dessertsSold: Int
): Dessert {
var dessertToShow = desserts.first()
for (dessert in desserts) {
if (dessertsSold >= dessert.startProductionAmount) {
dessertToShow = dessert
} else {
// The list of desserts is sorted by startProductionAmount. As you sell more desserts,
// you'll start producing more expensive desserts as determined by startProductionAmount
// We know to break as soon as we see a dessert who's "startProductionAmount" is greater
// than the amount sold.
break
}
}
return dessertToShow
}
Fungsi DessertCliickerAppbar
Fungsi determineDessertToShow ini berguna dalam simulasi atau permainan di mana berbagai jenis kue diproduksi berdasarkan jumlah kue yang telah dijual, dengan jenis kue yang lebih mahal menjadi tersedia saat jumlah penjualan meningkat.
@Composable
private fun DessertClickerAppBar(
onShareButtonClicked: () -> Unit,
modifier: Modifier = Modifier
) {
Row(
modifier = modifier,
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically,
) {
Text(
text = stringResource(R.string.app_name),
modifier = Modifier.padding(start = dimensionResource(R.dimen.padding_medium)),
color = MaterialTheme.colorScheme.onPrimary,
style = MaterialTheme.typography.titleLarge,
)
IconButton(
onClick = onShareButtonClicked,
modifier = Modifier.padding(end = dimensionResource(R.dimen.padding_medium)),
) {
Icon(
imageVector = Icons.Filled.Share,
contentDescription = stringResource(R.string.share),
tint = MaterialTheme.colorScheme.onPrimary
)
}
}
}
Fungsi TransactionInfo:
Fungsi TransactionInfo adalah sebuah fungsi Kotlin private yang menggunakan Jetpack Compose untuk menampilkan informasi transaksi dalam aplikasi.
private fun TransactionInfo(
revenue: Int,
dessertsSold: Int,
modifier: Modifier = Modifier
) {
Column(modifier = modifier) {
DessertsSoldInfo(
dessertsSold = dessertsSold,
modifier = Modifier
.fillMaxWidth()
.padding(dimensionResource(R.dimen.padding_medium))
)
RevenueInfo(
revenue = revenue,
modifier = Modifier
.fillMaxWidth()
.padding(dimensionResource(R.dimen.padding_medium))
)
}
}
Fungsi DessertSoldInfo :
Fungsi DessertsSoldInfo adalah sebuah fungsi Kotlin yang bersifat private dan menggunakan Jetpack Compose untuk menampilkan informasi tentang jumlah kue yang terjual dalam aplikasi.
private fun DessertsSoldInfo(dessertsSold: Int, modifier: Modifier = Modifier) {
Row(
modifier = modifier,
horizontalArrangement = Arrangement.SpaceBetween,
) {
Text(
text = stringResource(R.string.dessert_sold),
style = MaterialTheme.typography.titleLarge,
color = MaterialTheme.colorScheme.onSecondaryContainer
)
Text(
text = dessertsSold.toString(),
style = MaterialTheme.typography.titleLarge,
color = MaterialTheme.colorScheme.onSecondaryContainer
)
}
}
Fungsi Preview :
Fungsi MyDessertClickerAppPreview adalah sebuah fungsi Kotlin yang diberi anotasi @Preview dan @Composable, digunakan untuk menampilkan UI aplikasi Dessert Clicker
@Preview
@Composable
fun MyDessertClickerAppPreview() {
DessertClickerTheme {
DessertClickerApp(listOf(Dessert(R.drawable.cupcake, 5, 0)))
}
}
Dokumentasi Hasil :
Gambar 1. Tampilan sebelum Kue di click
Gambar 2. Tampilan Setelah Gambar Kue di click
Link Repository : https://github.com/NgurahErvan/Dessert-Clicker---Android
Komentar
Posting Komentar