Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

NAMA : NIKEN AISYAH MAHARANI HERWANZA

NIM : 12050123966

KELAS : 4I

JURUSAN : TEKNIK INFORMATIKA

UNIVERSITAS ISLAM NEGERI SULTAN SYARIF KASIM

HASIL

SRC
BatiknusantaraAdapter.kt
package com.example.utsproject

import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView

class BatiknusantaraAdapter (private val context: Context, private val


batiknusantara: List<Batiknusantara>, val listener: (Batiknusantara)->
Unit)
:
RecyclerView.Adapter<BatiknusantaraAdapter.BatiknusantaraViewHolder>() {

class BatiknusantaraViewHolder (view: View):


RecyclerView.ViewHolder(view) {

val imgBatiknusantara =
view.findViewById<ImageView>(R.id.img_item_photo)
val nameBatiknusantara =
view.findViewById<TextView>(R.id.tv_item_name)
val descBatiknusantara =
view.findViewById<TextView>(R.id.tv_item_description)

fun bindview(batiknusantara: Batiknusantara, listener:


(Batiknusantara) -> Unit) {

imgBatiknusantara.setImageResource(batiknusantara.imgBatiknusantara)
nameBatiknusantara.text = batiknusantara.nameBatiknusantara
descBatiknusantara.text = batiknusantara.dascBatiknusantara
itemView.setOnClickListener {
listener(batiknusantara)

}
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):


BatiknusantaraAdapter.BatiknusantaraViewHolder {
return BatiknusantaraViewHolder(

LayoutInflater.from(context).inflate(R.layout.item_batiknusantara, parent,
false)
)
}

override fun onBindViewHolder(holder:


BatiknusantaraAdapter.BatiknusantaraViewHolder, position: Int) {
holder.bindview(batiknusantara[position],listener)
}

override fun getItemCount(): Int = batiknusantara.size


}

DetailBatiknusantaraActivity.kt
package com.example.utsproject

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast

class DetailBatiknusantaraActivity : AppCompatActivity() {


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_detail_batiknusantara)
supportActionBar?.setDisplayHomeAsUpEnabled(true)

val batiknusantara =
intent.getParcelableExtra<Batiknusantara>(MainActivity.INTENT_PARCELABLE)

val imgBatiknusantara =
findViewById<ImageView>(R.id.img_item_photo)
val nameBatiknusantara = findViewById<TextView>(R.id.tv_item_name)
val descBatiknusantara =
findViewById<TextView>(R.id.tv_item_description)

imgBatiknusantara.setImageResource(batiknusantara?.imgBatiknusantara!!)
nameBatiknusantara.text = batiknusantara.nameBatiknusantara
descBatiknusantara.text = batiknusantara.dascBatiknusantara

val Btn = findViewById<Button>(R.id.button)


Btn.setOnClickListener{
Toast.makeText(this@DetailBatiknusantaraActivity,"NEXT",
Toast.LENGTH_LONG).show()
}

override fun onSupportNavigateUp(): Boolean {


onBackPressed()
return true
}
}

Batiknusantara.kt
package com.example.utsproject

import android.os.Parcelable
import kotlinx.android.parcel.Parcelize

@Parcelize
data class Batiknusantara(
val imgBatiknusantara: Int,
val nameBatiknusantara: String,
val dascBatiknusantara: String
): Parcelable

MainActivity.kt
package com.example.utsproject

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView

class MainActivity : AppCompatActivity() {

companion object {
val INTENT_PARCELABLE = "OBJECT_INTENT"

}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val batiknusantaraList = listOf<Batiknusantara>(


Batiknusantara(
R.drawable.batik_1,
nameBatiknusantara = "Batik Parang Kusumo",
dascBatiknusantara = "Kota Solo terkenal sebagai salah satu
kota batik di Indonesia yang menghasilkan banyak macam macam batik
Nusantara berbagai motif. Salah satu jenis batik terkenal dari Solo adalah
batik parang kusumo, yakni batik yang memiliki motif menyerupai gulungan
ombak lautan. Motif tersebut mengandung filosofi bahwa hidup dilandasi oleh
perjuangan dan usaha untuk mencapai kemakmuran lahir batin dengan
mengindahkan nilai-nilai kebudayaan Jawa. "
),
Batiknusantara(
R.drawable.batik_2,
nameBatiknusantara = "Batik Mega Mendung",
dascBatiknusantara = "Batik mega mendung asal Cirebon
memiliki gumpalan awan yang dipercantik dengan tujuh gradasi warna untuk
menciptakan kesan mendung. Filosofi batik mega mendung adalah manusia harus
bisa meredam emosinya dalam kondisi apapun. "
),
Batiknusantara(
R.drawable.batik_3,
nameBatiknusantara = "Batik Sidomukti",
dascBatiknusantara = "Batik sidomukti asal Solo dicat
menggunakan zat pewarna soga alam, yakni pewarna berwarna coklat yang
digunakan dalam seni batik klasik. Filosofi dari batik sidomukti adalah
sesuai dengan kemuliaan dan kesejahteraan sebagaimana fungsinya untuk
keraton. "
),
Batiknusantara(
R.drawable.batik_4,
nameBatiknusantara = "Batik Tujuh Rupa",
dascBatiknusantara = "Kota Pekalongan dijuluki sebagai Kota
Batik, meskipun batik tumbuh di Yogyakarta dan Solo. Salah satu batik
terkenal asal Pekalongan adalah batik tujuh rupa yang mengandung filosofi
ikatan kebudayaan leluhur."
),
Batiknusantara(
R.drawable.batik_5,
nameBatiknusantara = "Batik Lasem",
dascBatiknusantara = "Daerah Lasem, Rembang, diketahui
sebagai daerah yang pertama kali menerima kedatangan Tionghoa. Oleh karena
adanya pengaruh kebudayaan Tionghoa, batik lasem pun didominasi warna
merah. Filosofi dari batik ini adalah persatuan dan akulturasi budaya
Tionghoa dengan masyarakat setempat"
),
Batiknusantara(
R.drawable.batik_6,
nameBatiknusantara = "Batik Singa Barong",
dascBatiknusantara = "Sesuai namanya, batik singa barong
asal Cirebon menggunakan motif hewan mitologi yang bersifat spiritual. "
)

)
val recyclerView = findViewById<RecyclerView>(R.id.rv_batik)
recyclerView.layoutManager = LinearLayoutManager(this)
recyclerView.setHasFixedSize(true)
recyclerView.adapter = BatiknusantaraAdapter (this,
batiknusantaraList){
val intent = Intent
(this,DetailBatiknusantaraActivity::class.java)
intent.putExtra (INTENT_PARCELABLE,it)
startActivity(intent)

}
}
}
activity_detail_batiknusantara.xml

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#704D42"
tools:context=".MainActivity">

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_batik"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/item_batiknusantara" />

</RelativeLayout>
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>


<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="8dp"
android:layout_marginTop="4dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="4dp"
card_view:cardCornerRadius="4dp"
android:background="#B16C56"
>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="186dp"
android:padding="8dp">

<ImageView
android:id="@+id/img_item_photo"
android:layout_width="140dp"
android:layout_height="168dp"
android:layout_marginBottom="4dp"
android:scaleType="centerCrop"
tools:src="@tools:sample/avatars" />

<TextView
android:id="@+id/tv_item_name"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginStart="20dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="8dp"
android:layout_toEndOf="@id/img_item_photo"
android:layout_toRightOf="@id/img_item_photo"
android:fontFamily="sans-serif-condensed-medium"
android:textColor="#DC5930"
android:textSize="25sp"
android:textStyle="bold"
tools:text="@string/batiknusantara_name" />

<TextView
android:id="@+id/tv_item_description"
android:layout_width="219dp"
android:layout_height="85dp"
android:layout_below="@id/tv_item_name"
android:layout_marginStart="20dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:layout_marginRight="16dp"
android:layout_toEndOf="@id/img_item_photo"
android:layout_toRightOf="@id/img_item_photo"
android:ellipsize="end"
android:fontFamily="monospace"
android:maxLines="5"
android:textColor="#E69D86"
tools:text="@string/description" />
</RelativeLayout>

</androidx.cardview.widget.CardView>

item_batiknusantara.xml

<?xml version="1.0" encoding="utf-8"?>


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#EDD3AD"
tools:context=".DetailBatiknusantaraActivity">

<ImageView
android:id="@+id/img_item_photo"
android:layout_width="343dp"
android:layout_height="205dp"
android:layout_marginTop="160dp"
android:scaleType="centerCrop"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.496"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@tools:sample/avatars" />

<TextView
android:id="@+id/tv_item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="TextView"
android:textSize="30sp"
android:textStyle="bold"
android:fontFamily="sans-serif-condensed-medium"
android:textColor="#DC5930"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/img_item_photo" />

<TextView
android:id="@+id/tv_item_description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="TextView"
android:fontFamily="monospace"
android:textColor="#E69D86"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.11"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_item_name" />

<Button
android:id="@+id/button"
android:layout_width="229dp"
android:layout_height="51dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_item_description"
app:layout_constraintVertical_bias="0.925"
android:text="NEXT"
android:textSize="20sp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

Color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="purple_200">#631C06</color>
<color name="purple_500">#B68170</color>
<color name="purple_700">#BA4C29</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>

Strings.xml
<resources>
<string name="app_name">UTS PROJECT</string>
<string name="batiknusantara_name">BatikNusantara Name</string>
<string name="description">Description</string>
</resources>
build.gradle(Module: UTS_PROJECT.app)
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-parcelize'
}

android {
compileSdk 32

defaultConfig {
applicationId "com.example.utsproject"
minSdk 21
targetSdk 32
versionCode 1
versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-
optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}

dependencies {

implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'
}

You might also like