Tugas PPB Pertemuan 7
Aplikasi Woof
Deskripsi singkat
Woof adalah aplikasi sederhana yang dirancang untuk membantu pengguna dalam mengenal berbagai jenis anjing dengan cara yang menyenangkan dan interaktif. Aplikasi ini menawarkan beberapa fitur utama:
Galeri Anjing: Pengguna dapat melihat berbagai foto anjing dari berbagai ras. Setiap gambar dilengkapi dengan informasi singkat tentang ras tersebut, termasuk karakteristik dan fakta menarik.
Profil Anjing: Setiap anjing dalam aplikasi memiliki profil yang berisi informasi lebih mendetail tentang rasnya, kebiasaan, kebutuhan perawatan, dan temperamen.
Fitur Pencarian: Pengguna dapat mencari anjing berdasarkan nama ras, ukuran, atau karakteristik tertentu, memudahkan mereka menemukan anjing yang sesuai dengan preferensi mereka.
Favorit: Pengguna dapat menandai anjing favorit mereka untuk akses cepat di kemudian hari.
Tips Perawatan: Aplikasi ini juga menyediakan tips perawatan anjing yang berguna bagi pemilik anjing atau mereka yang berencana untuk memelihara anjing.
Woof adalah alat yang sempurna bagi pecinta anjing dan mereka yang ingin belajar lebih banyak tentang berbagai ras anjing, menyediakan informasi yang bermanfaat dalam antarmuka yang ramah pengguna.
Penjelasan Kode:
Annotation
@Composable:- Menandakan bahwa fungsi ini adalah Composable, yang berarti fungsi ini dapat digunakan untuk membangun UI di Jetpack Compose.
Fungsi
WoofApp:- Ini adalah fungsi utama yang mendefinisikan tampilan aplikasi Woof.
Scaffold:
Scaffoldadalah layout dasar yang menyediakan struktur umum untuk aplikasi, seperti top bar, bottom bar, dan body content.topBarparameter mendefinisikan bagian atas aplikasi, di sini menggunakan fungsiWoofTopBarApp()untuk menampilkan top bar.
LazyColumn:
LazyColumnadalah komponen layout yang digunakan untuk menampilkan daftar item yang dapat digulir secara vertikal. Ini adalah versi Compose dariRecyclerViewdi Android klasik.contentPaddingdiatur menggunakan parameterit, yang diberikan olehScaffolduntuk memberikan padding ke konten utama.
items(dogs):
itemsadalah fungsi dalamLazyColumnyang digunakan untuk menampilkan daftar elemen.dogsadalah koleksi (list) dari objekDogyang akan diiterasi olehLazyColumn.
DogItem:
- Di dalam
items, untuk setiap objekDogdalamdogs, fungsiDogItemdipanggil. dog = dog: Setiap itemdogditeruskan ke fungsiDogItem.modifier = Modifier.padding(dimensionResource(8dp)): Modifier digunakan untuk memberikan padding pada setiap item, dengan nilai padding yang diambil dari resource dimension.
Penjelasan Kode:
Annotation
@Composable:- Menandakan bahwa fungsi ini adalah Composable, yang berarti fungsi ini dapat digunakan untuk membangun UI di Jetpack Compose.
Fungsi
DogItem:- Fungsi ini bertanggung jawab untuk menampilkan informasi tentang satu objek
Dogdalam aplikasi.
- Fungsi ini bertanggung jawab untuk menampilkan informasi tentang satu objek
Parameter
dog:- Objek
Dogyang diteruskan ke fungsi ini. Objek ini mungkin memiliki properti sepertiname,age, danimageResourceId.
- Objek
Parameter
modifier:Modifieradalah objek yang digunakan untuk mengubah atau menyesuaikan tampilan dan perilaku komponen UI. Di sini,modifiermemiliki nilai defaultModifier.
Card:
Cardadalah komponen UI yang menyediakan kontainer dengan gaya kartu. Modifier yang diteruskan keCarddigunakan untuk mengatur tampilan kartu tersebut.
Row:
Rowadalah komponen layout yang mengatur elemen-elemen anaknya secara horizontal. DalamRow, elemen-elemen diatur dari kiri ke kanan.- Modifier diatur untuk
Rowagar memenuhi lebar penuh (fillMaxWidth()) dan menambahkan padding (padding(dimensionResource(id = R.dimen.padding_8dp))).
DogIcon:
DogIconadalah fungsi Composable lain yang menampilkan gambar anjing. Gambar diidentifikasi olehdog.imageResourceId.
DogInformation:
DogInformationadalah fungsi Composable lain yang menampilkan nama dan usia anjing. Nama dan usia diambil daridog.namedandog.age.
Penjelasan:
Anotasi
@Composable:- Menunjukkan bahwa fungsi ini adalah fungsi Composable, digunakan untuk membangun UI di Jetpack Compose.
Fungsi
DogIcon:- Bertanggung jawab untuk menampilkan gambar ikon anjing.
Parameter
@DrawableRes dogIcon: Int:- Diannotasi dengan
@DrawableResuntuk menunjukkan bahwa ia mengharapkan ID sumber daya gambar sebagai input.
- Diannotasi dengan
Parameter
modifier: Modifier = Modifier:- Parameter modifier memungkinkan penyesuaian penampilan dan perilaku dari komponen
ImageComposable. Ini memiliki nilai defaultModifier.
- Parameter modifier memungkinkan penyesuaian penampilan dan perilaku dari komponen
Image Composable:
Imagedigunakan untuk menampilkan gambar ikon anjing.- Modifiers:
.size(dimensionResource(id = R.dimen.size_64dp)): Mengatur ukuran gambar menggunakan sumber daya dimensi yang didefinisikan dalamdimens.xml..padding(dimensionResource(id = R.dimen.padding_8dp)): Menambahkan padding di sekitar gambar menggunakan sumber daya dimensi..clip(MaterialTheme.shapes.small): Memotong gambar dengan bentuk kecil yang didefinisikan dalam tema Material saat ini.
ContentScale
ContentScale.Crop:- Menentukan bagaimana konten harus diperbesar atau dipotong untuk cocok dalam batas gambar.
Painter
painterResource(dogIcon):- Memuat sumber daya gambar (
dogIcon) dan menyediakannya kepadaImageComposable untuk dirender.
- Memuat sumber daya gambar (
ContentDescription
contentDescription = null:- Karena gambar bersifat dekoratif dan tidak menyampaikan informasi penting untuk tujuan aksesibilitas,
contentDescription-nya diatur menjadinull. Hal ini memberitahukan layanan aksesibilitas untuk melewati elemen ini selama navigasi.
Penjelasan:
Anotasi
@Composable:- Menandakan bahwa fungsi ini adalah fungsi Composable, yang digunakan untuk membangun UI dalam Jetpack Compose.
Fungsi
WoofTopBarApp:- Berfungsi untuk menampilkan top app bar (bilah aplikasi atas) dengan judul "Woof".
Parameter
modifier: Modifier = Modifier:- Modifier parameter memungkinkan penyesuaian tampilan komponen sesuai kebutuhan.
CenterAligned:
- Wrapper composable yang memusatkan kontennya secara horizontal di tengah layar.
TopAppBar:
- Komponen yang menyediakan bilah aplikasi atas dengan judul dan aksi terkait.
Row:
- Komponen layout yang menyusun anak-anaknya secara horizontal.
Image:
- Menampilkan gambar logo "Woof".
- Modifier:
.size(dimensionResource(id = R.dimen.size_64dp)): Mengatur ukuran gambar dengan menggunakan sumber daya dimensi yang didefinisikan didimens.xml..padding(dimensionResource(id = R.dimen.padding_8dp)): Menambahkan padding di sekitar gambar menggunakan sumber daya dimensi.
Text:
- Menampilkan teks "Woof" sebagai judul.
text = stringResource(id = R.string.app_name): Mengambil string dari resource dengan ID yang sesuai.style = MaterialTheme.typography.h4: Mengatur gaya teks menggunakan tema Material dengan gaya teks yang lebih besar (h4).
Penjelasan:
Anotasi
@Composable:- Menandakan bahwa fungsi ini adalah fungsi Composable, yang digunakan untuk membangun UI dalam Jetpack Compose.
Fungsi
DogInformation:- Berfungsi untuk menampilkan informasi tentang anjing, seperti nama dan usia.
Parameter
@StringRes dogName: Int:- Anotasi
@StringResmenandakan bahwa parameter ini harus menjadi ID sumber daya string.
- Anotasi
Parameter
dogAge: Int:- Menyimpan nilai usia anjing yang akan ditampilkan.
Parameter
modifier: Modifier = Modifier:- Modifier digunakan untuk menyesuaikan tampilan komponen, dengan nilai default
Modifier.
- Modifier digunakan untuk menyesuaikan tampilan komponen, dengan nilai default
Column:
- Komponen layout yang menyusun anak-anaknya secara vertikal.
Text:
- Menampilkan teks nama anjing dengan menggunakan string resource yang diidentifikasi oleh
dogName. style = MaterialTheme.typography.h5: Mengatur gaya teks menggunakan tema Material dengan gaya teks medium.
- Menampilkan teks nama anjing dengan menggunakan string resource yang diidentifikasi oleh
Padding:
Modifier.padding(top = dimensionResource(id = R.dimen.padding_8dp)): Menambahkan padding di bagian atas teks nama anjing menggunakan sumber daya dimensi yang didefinisikan didimens.xml.
Text (lainnya):
- Menampilkan teks usia anjing dengan format "x years old", di mana
dogAgeadalah nilai yang diteruskan. stringResource(id = R.string.dog_age_format, dogAge): Menggunakan string resource dengan IDdog_age_formatdaristrings.xmlyang menggabungkan usia anjing.
- Menampilkan teks usia anjing dengan format "x years old", di mana
Styling:
MaterialTheme.typography.body1digunakan untuk mengatur gaya teks untuk teks usia anjing.
.png)
.png)
.png)
.png)
.png)


Komentar
Posting Komentar