SlideShare a Scribd company logo
Layout, Listview,
Gridview, ScrollView,
dan Adapter
CODELAB SESSION 2
SIDIQ PERMANA
GOOGLE DEVELOPER EXPERT AND INTEL ANDROID INNOVATOR
Part 1 : Layouts and Dimension Unit
Layout
Komponen dasar dalam pembentukan UI dan merupakan container utama untuk komponen-
komponen lain pada tampilan aplikasi Android.
Dalam satu tampilan aplikasi Android bisa terdapat lebih dari satu Layout dengan adanya satu
layout sebagai parent. Dan memungkinkan bisa terbentuknya nested layout dalam satu file UI
xml.
Empat Layout Utama di Android :
◦ Linear Layout
◦ Relative Layout
◦ Frame Layout
◦ Grid Layout
Pembedanya adalah pada posisi penempatan komponen-komponen (child view) didalamnya.
Penting untuk dibaca :
http://developer.android.com/guide/topics/ui/declaring-layout.html
Professional Android 4 Application Development page 96 – 106
Linear Layout
Akan menempatkan komponen-komponen didalamnya secara horizontal atau vertical. LinearLayout memiliki atribut
weight untuk masing-masing child view yang terdapat didalam LinearLayout yang berguna untuk mengontrol porsi
ukuran view secara Relatif dalam sebuah ruang (space) yang tersedia.
http://developer.android.com/guide/topics/ui/layout/linear.html
Relative Layout
Layout yang paling flexible dikarenakan posisi dari masing-masing komponen didalamnya dapat mengacu secara
relatif pada komponen yang lainnya dan juga dapat mengacu secara relatif ke batas layar.
http://developer.android.com/guide/topics/ui/layout/relative.html
Frame Layout
Layout ini adalah layout yang paling sederhana. Layout ini akan membuat komponen yang ada
didalamnya menjadi menumpuk atau saling menutupi satu dengan yang lainnya. Komponen
yang paling pertama pada layout ini akan menjadi bagian bawah dari komponen-komponen
diatasnya. Pada materi penggunaan fragment di materi sebelumnya, FrameLayout memiliki
kemampuan untuk menjadi container buat fragment-fragment didalam sebuah Activity. Berikut
ilustrasi dari penggunaan FrameLayout terhadap child view yang dimiliki didalamnya.
http://developer.android.com/reference/android/widget/FrameLayout.html
Gridlayout
Diperkenalkan pada api level 14 (icecream sandwich), layout ini akan memberikan kemudahan dengan mengakomodir
komponen didalamnya ke dalam bentuk Grid (Kolom dan Baris). Dalam sebuah referensi, GridLayout merupakan
komponen layout yang sangat flexibel dan dapat dimanfaatkan untuk menyederhanakan pembuatan Layout UI yang
bersifat kompleks dan bersarang yang terdapat di komponen Layout lainnya.
http://developer.android.com/reference/android/widget/GridLayout.html
Kapan menggunakan jenis-jenis layout?
Pemahaman yang baik terhadap dasar-dasar pembangunan UI di android, pengalaman, Feeling, dan mencari tahun
best practicenya seperti apa. Semua tergantung latihan dan seberapa sering kita berhadapan dengan kasus-kasus
melakukan transformasi UI dari bentuk mockup ke dalam bentuk code xml di Android. Dengan membiasakan
mengkode sisi UI di xml tanpa drag and drop akan membentuk pola pikir dan feeling kita dalam membangun dan
mentransformasi UI ke dalam bentuk yang dibutuhkan. Ini bersifat Relatif mungkin cara membetuk UI dari satu
developer android dengan developer android lainnya akan berbeda.
ScrollView
ScrollView adalah sebuah komponen yang akan membuat komponen didalam dapat digeser
(scroll) secara vertical dan horizontal. Komponen didalam scrollview hanya diperbolehkan
memiliki 1 parent utama dari layout linear, relatif, frame, atau grid layout.
http://developer.android.com/reference/android/widget/ScrollView.html
Android Unit : px (pixel), dp/dip (density-
independent pixel) dan sp (scale-independent
pixels)
•Ekosistem android dikenal dengan fragmentasi spesifikasi device yang sangat bervariasi
termasuk perbedaan dimensi layar dan kerapatan pixel dari layar di masing-masing jenis device
•Untuk tampilan yang konsisten di handset Android terdapat satuan untuk dimensi dan ukuran
dari teks yaitu : dip/dp (density-independent pixel) dan sp (scale-independent pixels).
•Satuan dp/dip digunakan untuk satuan dari nilai dimensi misal width (attribut : layout_width)
dan height (attribut : layout_height) dari sebuah komponen view
•Satuan sp digunakan untuk ukuran teks. Perbedaannya dengan dp/dip adalah satuan sp android
akan menscale ukuran teks sesuai dengan setting ukuran teks di device (yang biasa dapat di
akses melalui menu settings)
Sample Case 1
Misalkan ada dua tablet 7-inch (ukuran diagonal layar), tablet pertama (A) memiliki resolusi
layar 1200x1920px 320dpi dan yang lainnya (B) beresolusi 2048x1536px 326dpi. Membuat
button dengan ukuran 300x300px mungkin akan tampak normal pada tablet A tapi akan tampak
kecil di tablet B
Sample case 1 (cont)
Tapi akan berbeda jika kita spesifikasikan ukuran buttonnya dengan ukuran yang bergantung
pada density layar alias menggunakan dip misal 300x300dp.
Secara fisik ukuran button tersebut akan selalu sama pada ukuran layar yang berbeda.
Sample Case 2
Pada gambar diatas ukuran 200dp akan dikonversi pada device mdpi (device dengan density
160dpi/dots per inch) menjadi 200px dan menjadi 400px pada device xhdpi (density 420dpi)
misal pada nexus 4. Sehingga ukuran tersebut tampak sama dan konsisten secara fisik untuk
beragam device dengan ukuran layar yang berbeda.
Pentingnya konsistensi tampilan
Aplikasi yang baik umumnya memeliki User Interface dan User experience yang konsisten antar
device. Ini adalah sebuah tantangan di ekosistem Android yang mengharuskan aplikasi dapat
berjalan diberagam spesifikasi device yang tersedia di pasaran. Bacaan lebih lanjut :
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/training/multiscreen/screendensities.html
http://dpi.lv/
https://pixplicity.com/dp-px-converter/
https://www.youtube.com/watch?v=zhszwkcay2A
https://jampasir.wordpress.com/2015/07/15/android-unit-px-pixel-dpdip-density-independent-
pixel-dan-sp-scale-independent-pixels/
Challenge 1 :
Ubah UI design pada image di halaman selanjutnya ke
dalam bentuk XML sederhana. Untuk asset silakan cari sendiri.
Challenge 2 :
Ubah UI Design disamping kedalam bentuk xml UI
android dengan menggunakan ScrollView
didalamnya
Part 2 : ListView, GridView dan Adapter
Listview dan Gridview
Listview merupakan komponen utama yang dapat menampilkan dan menampung data dalam
jumlah yang banyak secara vertical dalam bentuk list yang dapat di-scroll secara vertical.
http://developer.android.com/guide/topics/ui/layout/listview.html
Gridview merupakan komponen utama yang dapat menampilkan dan menampung data dalam
jumlah yang banyak dalam bentuk grid (baris dan kolom). Biasanya implementasinya adalah
menampilkan katalog barang pada mobile commerce, gallery Image dsb.
http://developer.android.com/guide/topics/ui/layout/gridview.html
Persamaan dua komponen ini adalah untuk menampilkan data kedalam bentuk List dan Grid
dibutuhkan Adapter yang berfungsi untuk memproses dan menformat tiap item data dalam
GridView atau ListView.
Listview and Gridview
Adapter
Adapter adalah sebuah mekanisme untuk membinding sekumpulan data, memproses dan
memformat tampilan item-item data yang akan ditampilkan melalui listview atau gridview.
http://developer.android.com/reference/android/widget/Adapter.html
Native Adapter
Android SDK telah menyediakan Adapter bawaan yang secara default dapat digunakan dan
dikustomisasi sesuai dengan kebutuhan yang ada. Berikut adalah native adapter yang terdapat
didalam Android SDK.
- ArrayAdapter : Adapter yang diperuntukan untuk mem-binding data-data dalam format array.
- SimpleCursorAdapter : Adapter yang diperuntukan untuk mem-binding data-data column
dalam format objek Cursor (umumnya merupakan hasil nilai balik jika kita melakukan query
pada ContentProvider)
Ref : Professional Android 4 Application Development page 156 - 164
Untuk customisasi Adapter dari Stractch bisa menggunakan BaseAdapter.
http://developer.android.com/reference/android/widget/BaseAdapter.html
Challenge 3 :
Ubah tampilan berikut kedalam bentuk UI xml
Custom Listview and Gridview
ListView dan GridView merupakan komponen penting dalam sebuah aplikasi Android.
Fungsionalitasnya dalam menampilkan data dalam jumlah yang banyak membuat para developer
melakukan beragam kustomisasi pada implementasinya. Seperti penambahan fungsi LoadMore
untuk paging konten, PullToRefresh seperti pada aplikasi Twitter dan bahkan
mentidakseragamkan ukuran item-item didalam sebuah gridview.
Link dibawah ini merupakan kumpulan Custom ListView dan GridView yang umum digunakan.
https://android-arsenal.com/free (Cari pada section Listview dan GridView)
Contoh kustomisasi ListView
Contoh kustomisasi GridView
Referensi User Interface :
http://pttrns.com/?did=6
Thanks

More Related Content

What's hot

229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhani229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhani
Dex Dun
 
Teori bahasa formal dan Otomata
Teori bahasa formal dan OtomataTeori bahasa formal dan Otomata
Teori bahasa formal dan OtomataRisal Fahmi
 
Remastering linux slax
Remastering linux slaxRemastering linux slax
Remastering linux slax
Doni Andriansyah
 
Struktur direktori
Struktur direktoriStruktur direktori
Struktur direktoriAnggi DHARMA
 
Laporan praktikum basis data my sql
Laporan praktikum basis data my sqlLaporan praktikum basis data my sql
Laporan praktikum basis data my sqlLela Warni
 
Laporan Project Pemrograman Berbasis Web
Laporan Project Pemrograman Berbasis WebLaporan Project Pemrograman Berbasis Web
Laporan Project Pemrograman Berbasis Websmatrigger
 
Srs sistem informasi penggajian
Srs sistem informasi penggajianSrs sistem informasi penggajian
Srs sistem informasi penggajian
tiaraanggt
 
Basis Data Non Relasional: NoSQL dan MongoDB
Basis Data Non Relasional: NoSQL dan MongoDBBasis Data Non Relasional: NoSQL dan MongoDB
Basis Data Non Relasional: NoSQL dan MongoDBRiana Dwiningtyas
 
Tutorial Pembuatan Aplikasi Website Beserta Databasenya
Tutorial Pembuatan Aplikasi Website Beserta DatabasenyaTutorial Pembuatan Aplikasi Website Beserta Databasenya
Tutorial Pembuatan Aplikasi Website Beserta DatabasenyaRCH_98
 
Pertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat LunakPertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat Lunak
Disma Ariyanti W
 
Jaringan Syaraf Tiruan
Jaringan Syaraf TiruanJaringan Syaraf Tiruan
Jaringan Syaraf Tiruan
Mayasari Dewi
 
Perkembangan teknologi web
Perkembangan teknologi webPerkembangan teknologi web
Perkembangan teknologi web
Rakhmi Khalida, M.M.S.I
 
Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...
Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...
Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...St. Risma Ayu Nirwana
 
Materi Kuliah : Dasar pemrograman 1
Materi Kuliah : Dasar pemrograman 1Materi Kuliah : Dasar pemrograman 1
Materi Kuliah : Dasar pemrograman 1
Braga Rezpect
 
Laporan xampp dan joomla
Laporan xampp dan joomlaLaporan xampp dan joomla
Laporan xampp dan joomla
James Montolalu
 
Pembahasan Soal Modul A: Linux Island - LKS SMK Provinsi NTB 2017
Pembahasan Soal Modul A: Linux Island - LKS SMK Provinsi NTB 2017Pembahasan Soal Modul A: Linux Island - LKS SMK Provinsi NTB 2017
Pembahasan Soal Modul A: Linux Island - LKS SMK Provinsi NTB 2017
I Putu Hariyadi
 
Kd 3.1 menjelaskan konsep switching pada jaringan komputer.pptx
Kd 3.1 menjelaskan konsep switching pada jaringan komputer.pptxKd 3.1 menjelaskan konsep switching pada jaringan komputer.pptx
Kd 3.1 menjelaskan konsep switching pada jaringan komputer.pptx
Mafud Fauzi Pratama
 
Contoh skpl-software-manajemen-sekolah
Contoh skpl-software-manajemen-sekolahContoh skpl-software-manajemen-sekolah
Contoh skpl-software-manajemen-sekolah
DinilOctav
 

What's hot (20)

229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhani229334287 laporan-praktikum-dhani
229334287 laporan-praktikum-dhani
 
Teori bahasa formal dan Otomata
Teori bahasa formal dan OtomataTeori bahasa formal dan Otomata
Teori bahasa formal dan Otomata
 
Processing
ProcessingProcessing
Processing
 
Remastering linux slax
Remastering linux slaxRemastering linux slax
Remastering linux slax
 
Struktur direktori
Struktur direktoriStruktur direktori
Struktur direktori
 
Laporan praktikum basis data my sql
Laporan praktikum basis data my sqlLaporan praktikum basis data my sql
Laporan praktikum basis data my sql
 
Laporan Project Pemrograman Berbasis Web
Laporan Project Pemrograman Berbasis WebLaporan Project Pemrograman Berbasis Web
Laporan Project Pemrograman Berbasis Web
 
Srs sistem informasi penggajian
Srs sistem informasi penggajianSrs sistem informasi penggajian
Srs sistem informasi penggajian
 
Basis Data Non Relasional: NoSQL dan MongoDB
Basis Data Non Relasional: NoSQL dan MongoDBBasis Data Non Relasional: NoSQL dan MongoDB
Basis Data Non Relasional: NoSQL dan MongoDB
 
Tutorial Pembuatan Aplikasi Website Beserta Databasenya
Tutorial Pembuatan Aplikasi Website Beserta DatabasenyaTutorial Pembuatan Aplikasi Website Beserta Databasenya
Tutorial Pembuatan Aplikasi Website Beserta Databasenya
 
Pertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat LunakPertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat Lunak
 
Jaringan Syaraf Tiruan
Jaringan Syaraf TiruanJaringan Syaraf Tiruan
Jaringan Syaraf Tiruan
 
Perkembangan teknologi web
Perkembangan teknologi webPerkembangan teknologi web
Perkembangan teknologi web
 
Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...
Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...
Membuat aplikasi perhitungan luas dan keliling bangun datar dengan macromedia...
 
Materi Kuliah : Dasar pemrograman 1
Materi Kuliah : Dasar pemrograman 1Materi Kuliah : Dasar pemrograman 1
Materi Kuliah : Dasar pemrograman 1
 
Laporan xampp dan joomla
Laporan xampp dan joomlaLaporan xampp dan joomla
Laporan xampp dan joomla
 
Pembahasan Soal Modul A: Linux Island - LKS SMK Provinsi NTB 2017
Pembahasan Soal Modul A: Linux Island - LKS SMK Provinsi NTB 2017Pembahasan Soal Modul A: Linux Island - LKS SMK Provinsi NTB 2017
Pembahasan Soal Modul A: Linux Island - LKS SMK Provinsi NTB 2017
 
Kd 3.1 menjelaskan konsep switching pada jaringan komputer.pptx
Kd 3.1 menjelaskan konsep switching pada jaringan komputer.pptxKd 3.1 menjelaskan konsep switching pada jaringan komputer.pptx
Kd 3.1 menjelaskan konsep switching pada jaringan komputer.pptx
 
Laporan tugas besar_web
Laporan tugas besar_webLaporan tugas besar_web
Laporan tugas besar_web
 
Contoh skpl-software-manajemen-sekolah
Contoh skpl-software-manajemen-sekolahContoh skpl-software-manajemen-sekolah
Contoh skpl-software-manajemen-sekolah
 

Similar to Layout, listview, gridview, and adapter

PPT Pertemuan 04 Mobile Programmer VSGA DTS 2021.pptx
PPT Pertemuan 04 Mobile Programmer VSGA DTS 2021.pptxPPT Pertemuan 04 Mobile Programmer VSGA DTS 2021.pptx
PPT Pertemuan 04 Mobile Programmer VSGA DTS 2021.pptx
MuhammadHarrisMunand2
 
Android Workshop beginner
Android Workshop beginnerAndroid Workshop beginner
Android Workshop beginner
Muhammad Iskandar Dzulqornain
 
Android Fundamentals #1.pptx
Android Fundamentals #1.pptxAndroid Fundamentals #1.pptx
Android Fundamentals #1.pptx
AliefMuhammadAbdilla
 
Modul praktikum 12 - Android Sudaryatno
Modul praktikum 12 - Android SudaryatnoModul praktikum 12 - Android Sudaryatno
Modul praktikum 12 - Android Sudaryatno
Yatno Sudar
 
Material design for android (Diggest)
Material design for android (Diggest)Material design for android (Diggest)
Material design for android (Diggest)
Google
 
Modul 1 android advanced ui design
Modul 1   android advanced ui designModul 1   android advanced ui design
Modul 1 android advanced ui design
bachtiarnuredria
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andorid
Arif Huda
 
1. UTS_PEMROGRAMAN_BERGERAK_HENDRO GUNAWAN_200401072103_IT701.pdf
1. UTS_PEMROGRAMAN_BERGERAK_HENDRO GUNAWAN_200401072103_IT701.pdf1. UTS_PEMROGRAMAN_BERGERAK_HENDRO GUNAWAN_200401072103_IT701.pdf
1. UTS_PEMROGRAMAN_BERGERAK_HENDRO GUNAWAN_200401072103_IT701.pdf
HendroGunawan8
 
Makalah Mobile Programming
Makalah Mobile ProgrammingMakalah Mobile Programming
Makalah Mobile Programming
Vicinthia Veren
 
Chapt 03 layouting dan desain antarmuka & input kontrol dan android widget
Chapt 03 layouting dan desain antarmuka & input kontrol dan android widgetChapt 03 layouting dan desain antarmuka & input kontrol dan android widget
Chapt 03 layouting dan desain antarmuka & input kontrol dan android widget
Edi Faizal
 
Membuat Aplikasi dengan Framework Hybrid Flutter dengan Database Server Docker
Membuat Aplikasi dengan Framework Hybrid Flutter dengan Database Server DockerMembuat Aplikasi dengan Framework Hybrid Flutter dengan Database Server Docker
Membuat Aplikasi dengan Framework Hybrid Flutter dengan Database Server Docker
RizkyCrown
 
Pertemuan 01 - Pengantar Android.docx
Pertemuan 01 - Pengantar Android.docxPertemuan 01 - Pengantar Android.docx
Pertemuan 01 - Pengantar Android.docx
HendroGunawan8
 
Visual foxpro as prototyping tools
Visual foxpro as prototyping toolsVisual foxpro as prototyping tools
Visual foxpro as prototyping toolsferisulianta.com
 
Materi kuliah rsi 2 case dan model data
Materi kuliah rsi 2 case dan model dataMateri kuliah rsi 2 case dan model data
Materi kuliah rsi 2 case dan model datadonasiilmu
 
Materi kuliah rsi 2 case dan model data
Materi kuliah rsi 2 case dan model dataMateri kuliah rsi 2 case dan model data
Materi kuliah rsi 2 case dan model datadonasiilmu
 
GITS Class #11: Android Architecture Component bersama Derayan Bima (Android ...
GITS Class #11: Android Architecture Component bersama Derayan Bima (Android ...GITS Class #11: Android Architecture Component bersama Derayan Bima (Android ...
GITS Class #11: Android Architecture Component bersama Derayan Bima (Android ...
GITS Indonesia
 
13.4.pptx
13.4.pptx13.4.pptx
13.4.pptx
SelinaAulia2
 
Pertemuan 2 - Materi [MP - 2016].pdf
Pertemuan 2 - Materi [MP - 2016].pdfPertemuan 2 - Materi [MP - 2016].pdf
Pertemuan 2 - Materi [MP - 2016].pdf
andrirachmayadi90
 
ppt_IMK-design-interface
ppt_IMK-design-interfaceppt_IMK-design-interface
ppt_IMK-design-interfaceyusuf09
 

Similar to Layout, listview, gridview, and adapter (20)

PPT Pertemuan 04 Mobile Programmer VSGA DTS 2021.pptx
PPT Pertemuan 04 Mobile Programmer VSGA DTS 2021.pptxPPT Pertemuan 04 Mobile Programmer VSGA DTS 2021.pptx
PPT Pertemuan 04 Mobile Programmer VSGA DTS 2021.pptx
 
Android Workshop beginner
Android Workshop beginnerAndroid Workshop beginner
Android Workshop beginner
 
Android Fundamentals #1.pptx
Android Fundamentals #1.pptxAndroid Fundamentals #1.pptx
Android Fundamentals #1.pptx
 
Modul praktikum 12 - Android Sudaryatno
Modul praktikum 12 - Android SudaryatnoModul praktikum 12 - Android Sudaryatno
Modul praktikum 12 - Android Sudaryatno
 
Material design for android (Diggest)
Material design for android (Diggest)Material design for android (Diggest)
Material design for android (Diggest)
 
Modul 1 android advanced ui design
Modul 1   android advanced ui designModul 1   android advanced ui design
Modul 1 android advanced ui design
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andorid
 
1. UTS_PEMROGRAMAN_BERGERAK_HENDRO GUNAWAN_200401072103_IT701.pdf
1. UTS_PEMROGRAMAN_BERGERAK_HENDRO GUNAWAN_200401072103_IT701.pdf1. UTS_PEMROGRAMAN_BERGERAK_HENDRO GUNAWAN_200401072103_IT701.pdf
1. UTS_PEMROGRAMAN_BERGERAK_HENDRO GUNAWAN_200401072103_IT701.pdf
 
Makalah Mobile Programming
Makalah Mobile ProgrammingMakalah Mobile Programming
Makalah Mobile Programming
 
Chapt 03 layouting dan desain antarmuka & input kontrol dan android widget
Chapt 03 layouting dan desain antarmuka & input kontrol dan android widgetChapt 03 layouting dan desain antarmuka & input kontrol dan android widget
Chapt 03 layouting dan desain antarmuka & input kontrol dan android widget
 
Membuat Aplikasi dengan Framework Hybrid Flutter dengan Database Server Docker
Membuat Aplikasi dengan Framework Hybrid Flutter dengan Database Server DockerMembuat Aplikasi dengan Framework Hybrid Flutter dengan Database Server Docker
Membuat Aplikasi dengan Framework Hybrid Flutter dengan Database Server Docker
 
Pertemuan 01 - Pengantar Android.docx
Pertemuan 01 - Pengantar Android.docxPertemuan 01 - Pengantar Android.docx
Pertemuan 01 - Pengantar Android.docx
 
Live coding #1
Live coding #1Live coding #1
Live coding #1
 
Visual foxpro as prototyping tools
Visual foxpro as prototyping toolsVisual foxpro as prototyping tools
Visual foxpro as prototyping tools
 
Materi kuliah rsi 2 case dan model data
Materi kuliah rsi 2 case dan model dataMateri kuliah rsi 2 case dan model data
Materi kuliah rsi 2 case dan model data
 
Materi kuliah rsi 2 case dan model data
Materi kuliah rsi 2 case dan model dataMateri kuliah rsi 2 case dan model data
Materi kuliah rsi 2 case dan model data
 
GITS Class #11: Android Architecture Component bersama Derayan Bima (Android ...
GITS Class #11: Android Architecture Component bersama Derayan Bima (Android ...GITS Class #11: Android Architecture Component bersama Derayan Bima (Android ...
GITS Class #11: Android Architecture Component bersama Derayan Bima (Android ...
 
13.4.pptx
13.4.pptx13.4.pptx
13.4.pptx
 
Pertemuan 2 - Materi [MP - 2016].pdf
Pertemuan 2 - Materi [MP - 2016].pdfPertemuan 2 - Materi [MP - 2016].pdf
Pertemuan 2 - Materi [MP - 2016].pdf
 
ppt_IMK-design-interface
ppt_IMK-design-interfaceppt_IMK-design-interface
ppt_IMK-design-interface
 

More from Google

Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndk
Google
 
What's new in android jakarta gdg (2015-08-26)
What's new in android   jakarta gdg (2015-08-26)What's new in android   jakarta gdg (2015-08-26)
What's new in android jakarta gdg (2015-08-26)
Google
 
Developer mengajar
Developer mengajarDeveloper mengajar
Developer mengajar
Google
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application development
Google
 
Android application development
Android application developmentAndroid application development
Android application development
Google
 
Local developer program
Local developer programLocal developer program
Local developer program
Google
 

More from Google (6)

Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndk
 
What's new in android jakarta gdg (2015-08-26)
What's new in android   jakarta gdg (2015-08-26)What's new in android   jakarta gdg (2015-08-26)
What's new in android jakarta gdg (2015-08-26)
 
Developer mengajar
Developer mengajarDeveloper mengajar
Developer mengajar
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application development
 
Android application development
Android application developmentAndroid application development
Android application development
 
Local developer program
Local developer programLocal developer program
Local developer program
 

Recently uploaded

TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
jayakartalumajang1
 
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
HADIANNAS
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
delphijean1
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
muhammadiswahyudi12
 
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptxTUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
indahrosantiTeknikSi
 
436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt
rhamset
 
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptxMetode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
ssuser2537c0
 
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
AnandhaAdkhaM1
 
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
AdityaWahyuDewangga1
 
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptxNADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
nadiafebianti2
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Tsabitpattipeilohy
 

Recently uploaded (11)

TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
 
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
 
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptxTUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
 
436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt
 
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptxMetode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
Metode Clayperon (Persamaan Tiga Momen) untuk balok menerus.pptx
 
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
 
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
1. Paparan Penjelasan Permen PUPR 08 Tahun 2023.pdf
 
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptxNADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
NADIA FEBIANTI TUGAS PPT(GAMMA APP).pptx
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
 

Layout, listview, gridview, and adapter

  • 1. Layout, Listview, Gridview, ScrollView, dan Adapter CODELAB SESSION 2 SIDIQ PERMANA GOOGLE DEVELOPER EXPERT AND INTEL ANDROID INNOVATOR
  • 2. Part 1 : Layouts and Dimension Unit
  • 3. Layout Komponen dasar dalam pembentukan UI dan merupakan container utama untuk komponen- komponen lain pada tampilan aplikasi Android. Dalam satu tampilan aplikasi Android bisa terdapat lebih dari satu Layout dengan adanya satu layout sebagai parent. Dan memungkinkan bisa terbentuknya nested layout dalam satu file UI xml. Empat Layout Utama di Android : ◦ Linear Layout ◦ Relative Layout ◦ Frame Layout ◦ Grid Layout Pembedanya adalah pada posisi penempatan komponen-komponen (child view) didalamnya.
  • 4. Penting untuk dibaca : http://developer.android.com/guide/topics/ui/declaring-layout.html Professional Android 4 Application Development page 96 – 106
  • 5. Linear Layout Akan menempatkan komponen-komponen didalamnya secara horizontal atau vertical. LinearLayout memiliki atribut weight untuk masing-masing child view yang terdapat didalam LinearLayout yang berguna untuk mengontrol porsi ukuran view secara Relatif dalam sebuah ruang (space) yang tersedia. http://developer.android.com/guide/topics/ui/layout/linear.html
  • 6. Relative Layout Layout yang paling flexible dikarenakan posisi dari masing-masing komponen didalamnya dapat mengacu secara relatif pada komponen yang lainnya dan juga dapat mengacu secara relatif ke batas layar. http://developer.android.com/guide/topics/ui/layout/relative.html
  • 7. Frame Layout Layout ini adalah layout yang paling sederhana. Layout ini akan membuat komponen yang ada didalamnya menjadi menumpuk atau saling menutupi satu dengan yang lainnya. Komponen yang paling pertama pada layout ini akan menjadi bagian bawah dari komponen-komponen diatasnya. Pada materi penggunaan fragment di materi sebelumnya, FrameLayout memiliki kemampuan untuk menjadi container buat fragment-fragment didalam sebuah Activity. Berikut ilustrasi dari penggunaan FrameLayout terhadap child view yang dimiliki didalamnya. http://developer.android.com/reference/android/widget/FrameLayout.html
  • 8. Gridlayout Diperkenalkan pada api level 14 (icecream sandwich), layout ini akan memberikan kemudahan dengan mengakomodir komponen didalamnya ke dalam bentuk Grid (Kolom dan Baris). Dalam sebuah referensi, GridLayout merupakan komponen layout yang sangat flexibel dan dapat dimanfaatkan untuk menyederhanakan pembuatan Layout UI yang bersifat kompleks dan bersarang yang terdapat di komponen Layout lainnya. http://developer.android.com/reference/android/widget/GridLayout.html
  • 9. Kapan menggunakan jenis-jenis layout? Pemahaman yang baik terhadap dasar-dasar pembangunan UI di android, pengalaman, Feeling, dan mencari tahun best practicenya seperti apa. Semua tergantung latihan dan seberapa sering kita berhadapan dengan kasus-kasus melakukan transformasi UI dari bentuk mockup ke dalam bentuk code xml di Android. Dengan membiasakan mengkode sisi UI di xml tanpa drag and drop akan membentuk pola pikir dan feeling kita dalam membangun dan mentransformasi UI ke dalam bentuk yang dibutuhkan. Ini bersifat Relatif mungkin cara membetuk UI dari satu developer android dengan developer android lainnya akan berbeda.
  • 10. ScrollView ScrollView adalah sebuah komponen yang akan membuat komponen didalam dapat digeser (scroll) secara vertical dan horizontal. Komponen didalam scrollview hanya diperbolehkan memiliki 1 parent utama dari layout linear, relatif, frame, atau grid layout. http://developer.android.com/reference/android/widget/ScrollView.html
  • 11. Android Unit : px (pixel), dp/dip (density- independent pixel) dan sp (scale-independent pixels) •Ekosistem android dikenal dengan fragmentasi spesifikasi device yang sangat bervariasi termasuk perbedaan dimensi layar dan kerapatan pixel dari layar di masing-masing jenis device •Untuk tampilan yang konsisten di handset Android terdapat satuan untuk dimensi dan ukuran dari teks yaitu : dip/dp (density-independent pixel) dan sp (scale-independent pixels). •Satuan dp/dip digunakan untuk satuan dari nilai dimensi misal width (attribut : layout_width) dan height (attribut : layout_height) dari sebuah komponen view •Satuan sp digunakan untuk ukuran teks. Perbedaannya dengan dp/dip adalah satuan sp android akan menscale ukuran teks sesuai dengan setting ukuran teks di device (yang biasa dapat di akses melalui menu settings)
  • 12. Sample Case 1 Misalkan ada dua tablet 7-inch (ukuran diagonal layar), tablet pertama (A) memiliki resolusi layar 1200x1920px 320dpi dan yang lainnya (B) beresolusi 2048x1536px 326dpi. Membuat button dengan ukuran 300x300px mungkin akan tampak normal pada tablet A tapi akan tampak kecil di tablet B
  • 13. Sample case 1 (cont) Tapi akan berbeda jika kita spesifikasikan ukuran buttonnya dengan ukuran yang bergantung pada density layar alias menggunakan dip misal 300x300dp. Secara fisik ukuran button tersebut akan selalu sama pada ukuran layar yang berbeda.
  • 14. Sample Case 2 Pada gambar diatas ukuran 200dp akan dikonversi pada device mdpi (device dengan density 160dpi/dots per inch) menjadi 200px dan menjadi 400px pada device xhdpi (density 420dpi) misal pada nexus 4. Sehingga ukuran tersebut tampak sama dan konsisten secara fisik untuk beragam device dengan ukuran layar yang berbeda.
  • 15. Pentingnya konsistensi tampilan Aplikasi yang baik umumnya memeliki User Interface dan User experience yang konsisten antar device. Ini adalah sebuah tantangan di ekosistem Android yang mengharuskan aplikasi dapat berjalan diberagam spesifikasi device yang tersedia di pasaran. Bacaan lebih lanjut : http://developer.android.com/guide/practices/screens_support.html http://developer.android.com/training/multiscreen/screendensities.html http://dpi.lv/ https://pixplicity.com/dp-px-converter/ https://www.youtube.com/watch?v=zhszwkcay2A https://jampasir.wordpress.com/2015/07/15/android-unit-px-pixel-dpdip-density-independent- pixel-dan-sp-scale-independent-pixels/
  • 16. Challenge 1 : Ubah UI design pada image di halaman selanjutnya ke dalam bentuk XML sederhana. Untuk asset silakan cari sendiri.
  • 17. Challenge 2 : Ubah UI Design disamping kedalam bentuk xml UI android dengan menggunakan ScrollView didalamnya
  • 18. Part 2 : ListView, GridView dan Adapter
  • 19. Listview dan Gridview Listview merupakan komponen utama yang dapat menampilkan dan menampung data dalam jumlah yang banyak secara vertical dalam bentuk list yang dapat di-scroll secara vertical. http://developer.android.com/guide/topics/ui/layout/listview.html Gridview merupakan komponen utama yang dapat menampilkan dan menampung data dalam jumlah yang banyak dalam bentuk grid (baris dan kolom). Biasanya implementasinya adalah menampilkan katalog barang pada mobile commerce, gallery Image dsb. http://developer.android.com/guide/topics/ui/layout/gridview.html Persamaan dua komponen ini adalah untuk menampilkan data kedalam bentuk List dan Grid dibutuhkan Adapter yang berfungsi untuk memproses dan menformat tiap item data dalam GridView atau ListView.
  • 21. Adapter Adapter adalah sebuah mekanisme untuk membinding sekumpulan data, memproses dan memformat tampilan item-item data yang akan ditampilkan melalui listview atau gridview. http://developer.android.com/reference/android/widget/Adapter.html
  • 22. Native Adapter Android SDK telah menyediakan Adapter bawaan yang secara default dapat digunakan dan dikustomisasi sesuai dengan kebutuhan yang ada. Berikut adalah native adapter yang terdapat didalam Android SDK. - ArrayAdapter : Adapter yang diperuntukan untuk mem-binding data-data dalam format array. - SimpleCursorAdapter : Adapter yang diperuntukan untuk mem-binding data-data column dalam format objek Cursor (umumnya merupakan hasil nilai balik jika kita melakukan query pada ContentProvider) Ref : Professional Android 4 Application Development page 156 - 164 Untuk customisasi Adapter dari Stractch bisa menggunakan BaseAdapter. http://developer.android.com/reference/android/widget/BaseAdapter.html
  • 23. Challenge 3 : Ubah tampilan berikut kedalam bentuk UI xml
  • 24. Custom Listview and Gridview ListView dan GridView merupakan komponen penting dalam sebuah aplikasi Android. Fungsionalitasnya dalam menampilkan data dalam jumlah yang banyak membuat para developer melakukan beragam kustomisasi pada implementasinya. Seperti penambahan fungsi LoadMore untuk paging konten, PullToRefresh seperti pada aplikasi Twitter dan bahkan mentidakseragamkan ukuran item-item didalam sebuah gridview. Link dibawah ini merupakan kumpulan Custom ListView dan GridView yang umum digunakan. https://android-arsenal.com/free (Cari pada section Listview dan GridView)
  • 27. Referensi User Interface : http://pttrns.com/?did=6