0% menganggap dokumen ini bermanfaat (0 suara)
39 tayangan

Week 3 - Android Developer

1. Materi minggu ini membahas tentang layout dan view group, aktivitas dan fragment, serta cara mengirimkan data antar aktivitas menggunakan intent, bundle, serializable, dan parcelable.
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
39 tayangan

Week 3 - Android Developer

1. Materi minggu ini membahas tentang layout dan view group, aktivitas dan fragment, serta cara mengirimkan data antar aktivitas menggunakan intent, bundle, serializable, dan parcelable.
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 35

Android

Programming 1
Week 3

Sabtu, 17 September 2022


Overview Last Week
Kahoottt dulu ges y!!!

Source: Add your references here.


Overview materi minggu ini 🤯

Layouting and View


Group
Activity and Fragments
Passing data with Intent,
Bundle, Serializable, dan
Parcelable
Layouting and View Group 🚘

Konsep Layout Android Perbedaan Toast &


Material Design Snackbar
Layouting dengan XML Dialog atau AlertDialog
Penerapan Desain dalam Pembuatan AlertDialog
Layout Android Jenis-Jenis AlertDialog
Toast
Snackbar
Konsep
Layout
Android
Pada dasarnya semua elemen antar pengguna di aplikasi Android
dibangun menggunakan dua buah komponen inti,
yaitu view dan viewgroup.

view adalah obyek yang menggambar komponen tampilan ke layar


yang mana pengguna dapat melihat dan berinteraksi langsung.

viewgroup adalah sebuah obyek yang mewadahi obyek-obyek


view dan viewgroup itu sendiri sehingga membentuk satu kesatuan
tampilan aplikasi yang utuh.
komponen turunan dari view seperti :

View TextView, komponen yang berguna untuk menampilkan teks ke layar.


Button, komponen yang membuat pengguna dapat berinteraksi
dengan cara ditekan untuk melakukan sesuatu
ImageView, Komponen untuk menampilkan gambar.
RecyclerView, komponen untuk menampilkan informasi dalam
bentuk list.
GridView, komponen untuk menampilkan informasi dalam bentuk
grid.
RadioButton, komponen yang memungkinkan pengguna dapat
memilih satu pilihan dari berbagai pilihan yang disediakan.
Checkbox, komponen yang memungkinkan pengguna dapat memilih
lebih dari satu dari pilihan yang ada.
komponen turunan dari viewgroup seperti :

Viewgroup
LinearLayout
FrameLayout
RelativeLayout
TableLayout

Beberapa komponen viewgroup seperti linearlayout, relativelayout,


framelayout, dan tablelayout merupakan komponen yang paling
banyak digunakan untuk menjadi parent/root dari komponen-
komponen view.
Seperti slide sebelumnya bahwasan nya tata letak menentukan
struktur dari antarmuka pengguna di aplikasi, seperti di dalam
Layouting aktivitas. Semua elemen pada tata letak dibuat menggunakan hierarki
objek View dan ViewGroup
dengan Adapun untuk mendeklarasikan tata letak dengan dua cara:

XML Deklarasikan elemen UI dalam XML. Android menyediakan


kosakata XML sederhana yang sesuai dengan class dan subclass
Tampilan, seperti halnya untuk widget dan tata letak. Anda juga
dapat menggunakan Layout Editor di Android Studio untuk
membuat tata letak XML menggunakan antarmuka tarik lalu lepas.

Buat instance elemen tata letak pada saat runtime. Aplikasi


Anda dapat membuat objek Tampilan dan ViewGroup (serta
memanipulasi propertinya) secara terprogram.
Dengan menggunakan kosakata XML Android, Anda dapat mendesain
tata letak UI dan elemen layar yang dimuatnya secara cepat, sama
Write the dengan cara membuat halaman web dalam HTML dengan
serangkaian elemen bertumpuk.
XML Secara konsep dasar penulisan xml:
Tiap file tata letak harus berisi persis satu elemen root, yang harus
berupa sebuah objek Tampilan atau ViewGroup.

Setelah mendefinisikan elemen root, dapat menambahkan objek


atau widget tata letak tambahan sebagai elemen turunan untuk
secara bertahap membangun hierarki Tampilan.

Sebagai contoh,
berikut adalah tata letak XML yang menggunakan
LinearLayout vertikal untuk menyimpan TextView dan Button
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Write the android:layout_width="match_parent"


android:layout_height="match_parent"
android:orientation="vertical" >

XML <TextView android:id="@+id/text"


android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />

<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />

</LinearLayout>

Setelah mendeklarasikan tata letak dalam XML, simpan file dengan


ekstensi .xml, dalam direktori res/layout/ project Android, sehingga
nanti bisa dikompilasi dengan benar.
pengembangan aplikasi Android mengacu pada implementasi
prinsip material design untuk merancang user interface dan user
Material experience.

Design

Hadir nya material design ditetapkan sebagai acuan utama untuk


pengembangan user interface dan user experience.
Pada gambar di atas, terlihat titik-titik mana saja yang hanya kita
gunakan untuk menjadi fondasi dasar style aplikasi yang dibuat.
Toast memberikan masukan singkat tentang operasi dalam pop-
up kecil.
Toast Pop-up ini hanya memenuhi ruang yang diperlukan agar pesan
dan aktivitas saat ini tetap terlihat dan interaktif.
Toast otomatis menghilang setelah waktu tunggu.
Untuk menampilkan toast, panggil metode show(), seperti yang
ditunjukkan dalam contoh berikut:

val message = "Hello kawan kawan RPL!"


val duration = Toast.LENGTH_SHORT

val toast = Toast.makeText(applicationContext, text, duration)


toast.show()
Snackbar, yang memungkinkan pengguna merespons sebuah
pesan singkat.
Snackbar Snackbar akan menempatkan tombol di samping teks pesan.
Pengguna dapat memicu tindakan dengan menekan tombol
tersebut.
Misalnya, aplikasi email mungkin meletakkan tombol urungkan
pada pesan "email yang diarsipkan"; jika pengguna mengklik
tombol urungkan, aplikasi akan mengembalikan email ke luar
arsip

Untuk menampilkan snackbar, panggil metode show(), seperti


yang ditunjukkan dalam contoh berikut:

val mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout),


"String Message", Snackbar.LENGTH_SHORT)
mySnackbar.setAction("Action name ", MyUndoListener())
mySnackbar.show()
Toast

Perbedaan
Ditambahkan pada API Level 1
Tidak dapat dihilangkan dengan swipping
Toast dapat digunakan di area di mana pesan Sistem perlu
Toast & ditampilkan. Dan hilang berdasarkan durasi yang di tentukan.

Snackbar Snackbar
Ditambahkan pada API Level 23
Dapat dihilangkan dengan swipping
Snackbar dapat digunakan di area dimana pesan popup sederhana
perlu ditampilkan bersamaan dengan pilihan untuk melakukan
tindakan. misal "undo" dsb.
Dialog adalah jendela kecil yang meminta pengguna untuk membuat
keputusan atau memasukkan informasi tambahan.

Dialog atau Dialog digunakan untuk peristiwa modal yang mengharuskan pengguna
untuk melakukan tindakan(konformasi) sebelum bisa melanjutkan.

AlertDialog
Untuk membuat AlertDialog:

Pembuatan
val builder: AlertDialog.Builder? = activity?.let {
AlertDialog.Builder(it)
}

AlertDialog builder?.setMessage(R.string.dialog_message)
.setTitle(R.string.dialog_title)
val dialog: AlertDialog? = builder?.create()

Menambahkan tombol action:


val alertDialog: AlertDialog? = activity?.let {
val builder = AlertDialog.Builder(it)
builder.apply {
setPositiveButton("ACCEPT",
DialogInterface.OnClickListener { dialog, id ->
// User clicked OK button
})
setNegativeButton("DECLINE",
DialogInterface.OnClickListener { dialog, id ->
// User cancelled the dialog
})
}

// Create the AlertDialog


builder.create()
}
Menambahkan daftar pilihan ganda atau pilihan tunggal:
"versi material design"

Pembuatan val singleItems = arrayOf("Item 1", "Item 2", "Item 3")


val checkedItem = 1

AlertDialog
MaterialAlertDialogBuilder(context)
.setTitle(resources.getString(R.string.title))
.setNeutralButton(resources.getString(R.string.cancel)) { dialog, which ->
// Respond to neutral button press
}
.setPositiveButton(resources.getString(R.string.ok)) { dialog, which ->
// Respond to positive button press
}
// Single-choice items (initialized with checked item)
.setSingleChoiceItems(singleItems, checkedItem) { dialog, which ->
// Respond to item chosen
}
.show()

val singleItems = arrayOf("Item 1", "Item 2", "Item 3")


val checkedItem = 1

MaterialAlertDialogBuilder(context)
....
//Multi-choice items (initialized with checked items)
.setMultiChoiceItems(multiItems, checkedItems) { dialog, which, checked ->
// Respond to item chosen
}
.show()
Ada beberapa jenis dari dialog diantaranya adalah :

Jenis-Jenis
AlertDialog, dialog yang bisa menampilkan judul, maksimum
tiga tombol, daftar item yang dapat dipilih, atau tata letak
kustom.

AlertDialog DatePickerDialog atau TimePickerDialog, dialog berisi UI


yang sudah didefinisikan dan memungkinkan pengguna
memilih tanggal atau waktu.

ProgressDialog, menampilkan dialog dengan status progres.


Namun widget ini tidak digunakan lagi karena mencegah
pengguna berinteraksi dengan aplikasi saat progres sedang
ditampilkan.

Buttom Sheet Dialog sering kita lihat di aplikasi android.


Komponen ini muncul geser dari bawah ke atas layar untuk
menampilkan lebih banyak konten. Aplikasi yang mengunakan
komponen ini adalah Aplikasi Peta Google Maps. Pada aplikasi
tersebut Bottom Sheet menunjukkan lokasi atau informasi
arah. Lalu ada aplikasi pemutar musik dimana playbar
menempel di bawah dan terbuka saat geser ke atas.
dan masih banyak yang lain nya.
Activity and Fragments 🎂

Activity & Activity Lifecycle


Fragment & Fragment
Lifecycle
Intent, Bundle, Serializable, dan
Parcelable
Passing Data
Activity &
Activity adalah komponen pada aplikasi Android yang menampilkan
dan mengatur halaman aplikasi sebagai tempat interaksi antara
pengguna dengan aplikasi.
Activity Activity menyediakan sejumlah callback yang memungkinkan

Lifecycle aktivitas mengetahui bahwa status telah berubah: bahwa sistem


membuat, menghentikan, atau melanjutkan suatu aktivitas, atau
menutup proses tempat beradanya aktivitas.

Saat suatu aplikasi kita jalankan, sebuah activity pasti akan melalui
atau bahkan sedang berada pada status berikut ini :

Running, Activity terlihat dan dapat berinteraksi dengan user


Paused, Activity masih terlihat, tapi tidak dapat berinteraksi
dengan user
Stopped, Activity sudah tidak terlihat tapi masih ada dalam
memory
Killed, Activity sudah tidak terlihat dan di hapus dari sistem
karena kebutuhan memory atau method finish() di panggil.
Sistem android sangat terbatas terhadap memori, ini yang
menyebabkan activity memiliki life cycle atau siklus hidupnya
Activity & sendiri.
Karena dengan adanya life cycle activity penggunaan memori

Activity
dalam sistem android dapat kita atur sedemikian rupa agar
penggunaan memori tetap efisien serta efektif, dan juga dapat
menghindari terjadinya memory leak.
Lifecycle Berikut adalah siklus hidup yang di lalui oleh suatu Activity :
Untuk menavigasi transisi di antara tahap siklus proses aktivitas, class
Activity menyediakan set inti sebanyak enam callback: onCreate(),

Activity & onStart(), onResume(), onPause(), onStop(), dan onDestroy(). Sistem


memanggil masing-masing callback ini saat aktivitas memasuki status

Activity
baru.

onCreate(), Fase ini terjadi sesaat setelah activity di launch.


Lifecycle Fase ini dilakukan hanya satu kali selama activity tersebut ada.
Oleh karena itu pada fase ini kita implementasikan kode yang
hanya akan di eksekusi sekali, contohnya set layout dengan
method setContentView()
onStart(), Method ini di eksekusi setelah method onCreate()
selesai di jalankan. Pada tahap ini activity akan terlihat oleh
user tetapi belum bisa berinteraksi dengan user. Sebagai
contoh pada tahap ini kita bisa melakukan penulisan kode
program untuk mengambil data dari database.
onResume(), Fase ini merupakan fase dimana user sedang
berinteraksi dengan activity yang sedang berjalan di
foreground. Ketika terjadi suatu “gangguan” dari aplikasi lain
seperti ada telepon yang masuk, maka activity akan berpindah
ke fase onPause().
onPause(), Method ini di eksekusi pada saat activity berada di
“belakang layar”. Maksud dari berada di belakang layar adalah

Activity & ketika user keluar dari aplikasi untuk sementara, misal user
sedang memesan makan melalui aplikasi tiba-tiba ada telpon
yang masuk, otomatis user akan meninggalkan activity untuk
Activity sementara waktu. Pada saat user kembali ke aplikasi, activity
akan memanggil method onResume() namun jika user tidak

Lifecycle kembali ke activity tersebut maka method onStop() yang akan di


jalankan.
onStop(), Fase dimana user sudah tidak dapat berinteraksi
dengan activity, contoh ketika berpindah dari satu activity ke
activity lain pada aplikasi. Pada tahap ini kita harus melepas
semua resource yang sudah tidak di butuhkan lagi pada activity,
untuk menghemat baterai ponsel dan penggunaan CPU.
onRestart(), Method ini di eksekusi ketika sebuah activity
dijalankan kembali setelah method onStop() di eksekusi, method
ini selalu diikuti oleh onStart()
onDestroy(), Method ini di eksekusi ketika sebuah activity
benar-benar di hancurkan dan aplikasi benar-benar ditutup.
Method ini dapat di panggil juga melalui method finish() karena
sistem membutuhkan memori lebih dan terjadi pembersihan
proses-proses yang ada di belakang layar seperti pengunduhan
data dengan jaringan internet.
Fragment adalah salah satu komponen antar muka (user interface )
yang merupakan sebuah bagian dari Activity, dapat disebut juga
Fragment & dengan nama Sub-Activity.
Fragment memiliki kemiripan struktur kode dengan activity, dimana

Fragment
fragment juga memiliki sebuah class untuk menampung kode logika
dan file xml untuk merepresentasikan tampilannya.

Lifecycle Fragment memiliki dua sifat utama,

fragment bersifat modular yang artinya sebuah activity bisa


memiliki lebih dari satu fragment didalamnya.

fragment bersifat reusable yang artinya sebuah fragment bisa


digunakan berulang-ulang dan berada didalam beberapa activity
sekaligus. Kedua sifat tersebut mengakibatkan kita dapat
membuat banyak tampilan tanpa harus berpindah-pindah antar
activity.
Perlu diketahui juga bahwa fragment harus selalu berapa didalam
sebuah activity dan daur hidupnya secara langsung dipengaruhi
Fragment & oleh daur hidup activity yang menampungnya.

Fragment Berikut ini beberapa hal lain yang juga perlu dipahami tentang
fragment :
Fragment memiliki layout, perilaku, dan daur hidupnya sendiri.
Lifecycle Fragment dapat dimanipulasi ketika activity sedang berjalan.
Fragment dapat berperilaku seperti activity dalam hal stack.
Fragment memiliki view, event dan logic nya sendiri.
Skema callback method apa saja yang akan dipanggil di dalam
fragment ketika terjadi perubahan.
Fragment &
Fragment
Lifecycle
Tahap Pertama, ketika activity pertama kali dibuat, fragment akan
Fragment & memanggil method berikut ini :
onCreate(Bundle) : dipanggil ketika fragment mempersiapkan

Fragment
tampilan.
onCreateView(LayoutInflater, ViewGroup, Bundle) : menciptakan
dan menampilkan kembali sesuai dengan hirarki View.

Lifecycle onViewCreated(Bundle) : dipanggil setelah activity memanggil


method onCreate().

Tahap kedua, ketika activity berhasil ditampilkan ke layar, fragment


akan memanggil method :
onStart() : digunakan untuk membuat fragment terlihat.
onResume() : digunakan untuk membuat fragment interaktif.

Tahap tiga, ketika activity beralih ke mode background (tidak


digunakan sementara), fragment akan memanggil method :
onPause() : dipanggil ketika fragment tidak lagi interaktif.
onStop() :dipanggil ketika fragment sudah tidak terlihat dilayar.
Fragment & Tahap empat, ketika activity akan dihancurkan, fragment akan

Fragment memanggil method :


onDestroyView() : dipanggil ketika fragment menghapus tampilan.
onDestroy() : dipanggil ketika fragment sudah menghapus
Lifecycle tampilan dan membersihkan seluruh data (resources) yang ada
pada memori.
Passing data with Intent, Bundle,
Serializable, dan Parcelable 🏗
Intent
Bundle
Serializable
Parcelable
Intent adalah mekanisme untuk melakukan sebuah action dan
komunikasi antar komponen aplikasi misal activity, services, dan
Intent broadcast receiver. Ada tiga penggunaan umum intent dalam
aplikasi Android yaitu:
Memindahkan satu activity ke activity lain dengan atau tidak
membawa data.
Menjalankan background service, misalnya melakukan
sinkronisasi ke server dan menjalankan proses berulang
(periodic/scheduler task).
Mengirimkan obyek broadcast ke aplikasi yang membutuhkan.
Misal, ketika aplikasi membutuhkan proses menjalankan sebuah
background service setiap kali aplikasi selesai melakukan booting.
Aplikasi harus bisa menerima obyek broadcast yang dikirimkan
oleh sistem Android untuk event booting tersebut.
Berikut adalah contoh kode dari gambaran Intent

Intent
val moveIntent = Intent(this@MainActivity, DetailActivity::class.java)
startActivity(moveIntent)
Selanjutnya kita akan membuat sebuah Intent yang di dalamnya
akan membawa data ke Activity tujuan.
Mengirim MainActivity

Data pada val firstActivityWithIntent = Intent(this@MainActivity, SecondActivity::class.java)


firstActivityWithIntent.putExtra(MainActivity.EXTRA_NAME, "Rpl girls")

Intent firstActivityWithIntent.putExtra(MainActivity.EXTRA_AGE, 19)


startActivity(firstActivityWithIntent)

SecondActivity

override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)
setContentView(R.layout.activity_move_with_data)

val name = intent.getStringExtra(EXTRA_NAME)


val age = intent.getIntExtra(EXTRA_AGE, 0)
val text = "Name : $name, \nYour Age : $age"
tvDataReceived.text = text
}
Passing Data

Mengirimkan data dari activity to activity


Mengirimkan data dari activity to fragment
Mengirimkan data dari fragment to activity
Mengirimkan data dari fragment to fragment
Resources Kotlin Documentation

Anda mungkin juga menyukai