UTS MOBILE PROGRAMMING II
TUGAS UTS MOBILE PRGORAMING II
Prodi : S1 Teknik Informatika
Dosen : Buhori Muslim, ST, M.Kom
Universitas Putra Indonesia Cianjur
Soal :
Berdasarkan gambar di bawah ini pergunakanlah layout ListView, untuk gambar silahkan di sesuaikan, minimal 3 (tiga) buah gambar seperti tampilan di bawah.
Dimana tiap gambar dikasih keterangan yang sesuai,
jawaban berupa screenshoot hasil dan source code di save ke blog/website
pribadi, dengan identitas lengkap link dikirim ke dosen pengampu.
---oo00 Selamat Mengerjakan 00oo---
Gajah adalah hewan darat terbesar di dunia.
Tinggi gajah afrika kurang lebih 3 hingga 4 m dan massanya
bervariasi antara 4.000 hingga 7.000 kg, sementara tinggi gajah asia
adalah 2 hingga 3,5 m dan massanya 3.000 hingga 5.000 kg. Gajah jantan
lebih besar dari gajah betina, baik itu pada gajah asia
maupun afrika.
Kuda (Equus caballus atau Equus ferus caballus) adalah salah satu dari
sepuluh spesies modern mamalia dari genus Equus. Hewan ini
telah lama merupakan salah satu hewan peliharaan yang penting
secara ekonomis dan historis, dan telah memegang peranan penting dalam
pengangkutan orang dan barang selama ribuan tahun.
Macan
tutul (bahasa Latin: Panthera pardus) atau
Harimau Bintang adalah salah satu dari empat kucing besar. Hewan ini
dikenal juga dengan sebutan harimau dahan karena kemampuannya memanjat.
Jerapah atau zarafah (nama ilmiah: Giraffa camelopardalis) adalah mamalia
berkuku genap endemik Afrika dan merupakan spesies hewan tertinggi
yang hidup di darat. Jerapah jantan dapat mencapai tinggi 4,8
sampai 5,5 meter dan memiliki berat yang dapat mencapai 1.360 kilogram.
AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.denda.utslisthewan">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyRecyclerView">
<activity android:name="com.denda.utslisthewan.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Class
MainActivity
package com.denda.utslisthewan
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.ActionBar
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import java.util.*
class MainActivity :
AppCompatActivity() {
private lateinit var rvHewann: RecyclerView
private var title = "Mode List"
private val list = ArrayList<Hewan>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setActionBarTitle(title)
rvHewann = findViewById(R.id.rv_hewan)
rvHewann.setHasFixedSize(true)
list.addAll(HewanData.listData)
showRecyclerList()
}
private fun showRecyclerList() {
rvHewann.layoutManager = LinearLayoutManager(this)
val listHewanAdapter = ListHewanAdapter(list)
rvHewann.adapter = listHewanAdapter
listHewanAdapter.setOnItemClickCallback(object : ListHewanAdapter.OnItemClickCallback {
override fun onItemClicked(data: Hewan) {
showSelectedHewan(data)
}
})
}
private fun setActionBarTitle(title: String) {
if (supportActionBar != null) {
(supportActionBar as ActionBar).title = title
}
}
private fun showSelectedHewan(hewan: Hewan) {
Toast.makeText(this, "Kamu memilih " + hewan.name, Toast.LENGTH_SHORT).show()
}
}
Class Hewan
package com.denda.utslisthewan
data class Hewan(
var name: String = "",
var detail: String = "",
var photo: Int = 0
)
Class HewanData
package com.denda.utslisthewan
import java.util.*
object HewanData {
private val hewanNames = arrayOf(
"Gajah",
"Kuda",
"Macan Tutul",
"Jerapah",
"Sapi"
)
private val hewanDetails = arrayOf(
"Gajah adalah hewan darat terbesar di dunia. Tinggi gajah afrika kurang lebih 3 hingga 4 m dan massanya bervariasi antara 4.000 hingga 7.000 kg, sementara tinggi gajah asia adalah 2 hingga 3,5 m dan massanya 3.000 hingga 5.000 kg. Gajah jantan lebih besar dari gajah betina, baik itu pada gajah asia maupun afrika.",
"Kuda (Equus caballus atau Equus ferus caballus) adalah salah satu dari sepuluh spesies modern mamalia dari genus Equus. Hewan ini telah lama merupakan salah satu hewan peliharaan yang penting secara ekonomis dan historis, dan telah memegang peranan penting dalam pengangkutan orang dan barang selama ribuan tahun.",
"Macan tutul (bahasa Latin: Panthera pardus) atau Harimau Bintang adalah salah satu dari empat kucing besar. Hewan ini dikenal juga dengan sebutan harimau dahan karena kemampuannya memanjat.",
"Jerapah atau zarafah (nama ilmiah: Giraffa camelopardalis) adalah mamalia berkuku genap endemik Afrika dan merupakan spesies hewan tertinggi yang hidup di darat. Jerapah jantan dapat mencapai tinggi 4,8 sampai 5,5 meter dan memiliki berat yang dapat mencapai 1.360 kilogram.",
"Sapi atau lembu adalah hewan ternak anggota famili Bovidae dan subfamili Bovinae. Sapi dipelihara terutama untuk dimanfaatkan susu dan dagingnya sebagai pangan manusia. Hasil sampingannya seperti kulit, jeroan, tanduk, dan kotorannya juga dimanfaatkan untuk berbagai keperluan manusia."
)
private val hewanImages = intArrayOf(
R.drawable.gajah,
R.drawable.kuda,
R.drawable.macan,
R.drawable.jerapah,
R.drawable.sapi
)
val listData: ArrayList<Hewan>
get() {
val list = arrayListOf<Hewan>()
for (position in hewanNames.indices) {
val hewan = Hewan()
hewan.name = hewanNames[position]
hewan.detail = hewanDetails[position]
hewan.photo = hewanImages[position]
list.add(hewan)
}
return list
}
}
Class
ListHewanAdapter
package com.denda.utslisthewan
import androidx.recyclerview.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import com.bumptech.glide.Glide
import java.util.*
class ListHewanAdapter(private val listHewans: ArrayList<Hewan>) : RecyclerView.Adapter<ListHewanAdapter.ListViewHolder>() {
private lateinit var onItemClickCallback: OnItemClickCallback
fun setOnItemClickCallback(onItemClickCallback: OnItemClickCallback) {
this.onItemClickCallback = onItemClickCallback
}
override fun onCreateViewHolder(viewGroup: ViewGroup, i: Int): ListViewHolder {
val view: View = LayoutInflater.from(viewGroup.context).inflate(R.layout.item_row_hewan, viewGroup, false)
return ListViewHolder(view)
}
override fun onBindViewHolder(holder: ListViewHolder, position: Int) {
val hewan = listHewans[position]
Glide.with(holder.itemView.context)
.load(hewan.photo)
.into(holder.imgPhoto)
holder.tvName.text = hewan.name
holder.tvDetail.text = hewan.detail
holder.itemView.setOnClickListener { onItemClickCallback.onItemClicked(listHewans[holder.adapterPosition]) }
}
override fun getItemCount(): Int {
return listHewans.size
}
inner class ListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
var imgPhoto: ImageView = itemView.findViewById(R.id.img_item_photo)
var tvName: TextView = itemView.findViewById(R.id.tv_item_name)
var tvDetail: TextView = itemView.findViewById(R.id.tv_item_detail)
}
interface OnItemClickCallback {
fun onItemClicked(data: Hewan)
}
}
Layout Activity
Main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_hewan"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/item_row_hewan" />
</RelativeLayout>
HASILNYA
Layout Item Row
Hewan
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<androidx.constraintlayout.utils.widget.ImageFilterView
android:id="@+id/img_item_photo"
android:layout_width="140dp"
android:layout_height="100dp"
android:layout_marginEnd="16dp"
tools:src="@tools:sample/avatars" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:textSize="16sp"
android:textStyle="bold"
tools:text="@string/hewan_name" />
<TextView
android:id="@+id/tv_item_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="4"
tools:text="@string/detail" />
</LinearLayout>
</LinearLayout>
Gambar di atas merupakan hasil nyah
No comments:
Post a Comment