Tugas 9

Nama: Danar Sodik Priyambodo 

Kelas: PPB-A

NRP: 5025211145

Studi dan Implementasi Aplikasi "Dessert Clicker" Menggunakan Jetpack Compose


Tampilan Aplikasi

Tampilan Aplikasi Dessert Clicker

1. Analisis Kode Program

Aplikasi ini memiliki struktur yang mudah dipahami, terdiri dari beberapa komponen utama yang saling terhubung dalam menjalankan fungsinya.

2. Struktur Data: Dessert.kt dan Datasource.kt

Objek makanan penutup direpresentasikan menggunakan data class dalam Kotlin, dengan atribut:

  • imageId: ID gambar dari drawable
  • price: Harga dari dessert tersebut
  • startProductionAmount: Jumlah minimum penjualan sebelum dessert tampil

Data ini disediakan secara statis melalui Datasource.kt dalam bentuk list.

3. Antarmuka dengan Jetpack Compose

UI dibangun secara deklaratif menggunakan Jetpack Compose, dengan pusat logika berada di MainActivity.kt.

a. Pengelolaan State

Status data dikelola menggunakan rememberSaveable agar bertahan saat rotasi layar atau konfigurasi ulang.

var revenue by rememberSaveable { mutableStateOf(0) }
var dessertsSold by rememberSaveable { mutableStateOf(0) }

b. Fungsi Composable

Fungsi DessertClickerScreen membentuk struktur UI seperti gambar dessert dan data transaksi.

Image(
    painter = painterResource(dessertImageId),
    contentDescription = null,
    modifier = Modifier.clickable { onDessertClicked() }
)

4. Logika Aplikasi dan Siklus Hidup

a. Pemilihan Dessert

Logika pemilihan dessert berdasarkan penjualan menggunakan fungsi berikut:

fun determineDessertToShow(desserts: List<Dessert>, dessertsSold: Int): Dessert {
    var dessertToShow = desserts.first()
    for (dessert in desserts) {
        if (dessertsSold >= dessert.startProductionAmount) {
            dessertToShow = dessert
        } else {
            break
        }
    }
    return dessertToShow
}

b. Lifecycle Activity

Aplikasi juga memanfaatkan metode seperti onStart() dan onDestroy() untuk mencatat log saat aktivitas berubah.

override fun onStart() {
    super.onStart()
    Log.d(TAG, "onStart Called")
}

5. Kesimpulan

Aplikasi Dessert Clicker merupakan media belajar yang sangat baik dalam memahami pengembangan Android modern dengan Jetpack Compose. Beberapa poin utama:

  • Menggunakan fungsi Composable untuk membangun antarmuka
  • Pengelolaan status data dengan rememberSaveable
  • Interaksi sederhana melalui klik pada gambar
  • Pemahaman dasar mengenai lifecycle Activity

Demo Video



Kode Sumber

Repository GitHub: https://github.com/Danar1111/DessertClicker-Kotlin.git

Komentar

Postingan populer dari blog ini

Tugas 3 PPB-A Composable - Happy Birthday App

Tugas 2 PPB-A Dasar Jetpack Compose

Tugas 4 PPB-A Dice Roller Interaktif