Tugas Pertemuan 10 PPB - Aplikasi Unscramble (ViewModel dan Status)
Nama | Akmal Sulthon Fathulloh |
---|---|
NRP | 5025211047 |
Kelas | PPB - D |
Pada pertemuan kali ini, kita diminta untuk membuat Dalam mengerjakan ini, saya mengacu pada modul Codelab berikut. Berikut adalah dokumentasi dan hasil pekerjaan yang telah dibuat.
Deskripsi Aplikasi
Unscramble adalah aplikasi kuis berbasis Android yang menantang pengguna untuk menebak kata asli dari kata yang telah diacak. Aplikasi ini dibangun menggunakan Jetpack Compose sebagai framework UI, serta mengikuti arsitektur MVVM (Model-View-ViewModel) untuk pemisahan logika dan tampilan. Setiap sesi permainan terdiri dari 10 kata, dan pengguna akan mendapatkan skor jika berhasil menebak dengan benar. Permainan akan menampilkan skor akhir setelah seluruh kata selesai ditebak atau dilewati.
Struktur utama aplikasi terdiri dari beberapa file penting, yaitu MainActivity.kt
,
GameScreen.kt
, GameViewModel.kt
, GameUiState.kt
, dan
WordsData.kt
. File MainActivity.kt
berperan sebagai entry point aplikasi yang mengatur
tampilan awal menggunakan GameScreen
dalam tema UnscrambleTheme
. File
GameScreen.kt
bertanggung jawab atas tampilan utama permainan, termasuk input jawaban pengguna,
tampilan kata acak, tombol aksi (submit dan skip), serta dialog yang muncul saat permainan berakhir. Di dalamnya
terdapat komponen seperti GameLayout
, GameStatus
, dan FinalScoreDialog
yang
semuanya dirancang dengan Compose dan memanfaatkan Material 3.
Logika permainan dikelola oleh GameViewModel.kt
, yang menyimpan dan memperbarui status permainan
menggunakan StateFlow
dan kelas GameUiState
. ViewModel ini menangani semua logika utama
seperti validasi jawaban pengguna, pengacakan kata, pergantian kata, perhitungan skor, dan reset permainan.
Kata-kata yang digunakan dalam permainan diambil dari file WordsData.kt
, yang berisi daftar kata
(allWords
) serta konstanta penting seperti jumlah maksimal kata dan skor yang didapatkan per jawaban
benar.
Proses permainan dimulai dengan pemanggilan fungsi resetGame()
, yang memilih kata acak dan mengacaknya
sebelum menampilkannya ke layar. Pengguna kemudian mengetik tebakan mereka; jika jawaban benar, skor akan bertambah
dan permainan dilanjutkan ke kata berikutnya. Jika salah, pengguna akan diberikan pesan kesalahan. Opsi "skip"
tersedia untuk melanjutkan tanpa menambah skor. Setelah seluruh kata habis, aplikasi menampilkan dialog berisi skor
akhir dan menawarkan dua pilihan: mengulang permainan atau keluar dari aplikasi.
Secara keseluruhan, Unscramble adalah aplikasi edukatif yang sederhana namun menyenangkan, dirancang dengan arsitektur yang bersih dan teknologi modern seperti Jetpack Compose, ViewModel, dan StateFlow untuk memberikan pengalaman pengguna yang reaktif dan intuitif. Aplikasi ini juga menerapkan prinsip desain Material 3, membuat tampilannya konsisten dan menarik.
Berikut adalah hasil running aplikasi pada Android Virtual Device.
Video Presentasi
Berikut adalah video presentasi demonstrasi aplikasi yang telah saya buat.
Kode Sumber
Kode sumber dapat dilihat pada repositori GitHub berikut.
Referensi
https://kuliahppb.blogspot.com/2024/05/viewmodel-and-state-in-compose.htmlhttps://developer.android.com/codelabs/basic-android-kotlin-compose-viewmodel-and-state?hl=id#10
Komentar
Posting Komentar