SlideShare a Scribd company logo
Case Study : Membuat Unlimited
List dari Network dengan Paging
Sidiq Permana
Co founder nbs.dev & Google Developer Expert
Apa yang kita butuhkan?
● Layanan web API.
● Repository yang berfungsi dengan layanan API, untuk abstraksi request
ke layer Network.
● Use Case yang berfungsi Orchestrator untuk manipulasi hasil request
sebelum dikirim ke layer presentasi.
● ViewModel yang menyiapkan permintaan data dari layer presentasi.
● UI, yang menunjukkan representasi visual dari data dalam ViewModel.
Paging
Paging membantu kita memuat data dan menampilkan data-data tersebut
secara bertahap (sebagian kecil dalam satu waktu).
Memuat data secara berkala/seperlunya akan mengurangi penggunaan
sumber daya, terutama Network Bandwidth dan System Resources.
Paging 3
Data Source
Paging Source
● PagingSource, adalah komponen handler yang mengatur besaran jumlah
data yang akan di proses .
ViewModel
● ViewModel akan menghandle permintaan data yang nantinya akan
diteruskan ke layer domain. Kenapa membutuhkan ViewModel? Karena
Paging 3 merupakan komponen yang bersifat lifecycle aware.
UI
● Kelas Paging Source bekerja dengan PagingDataAdapter untuk memuat
item ke dalam RecyclerView.
Paging Library mendukung
arsitektur data berikut:
● Data hanya berasal dari server
backend.
● Disimpan hanya ke database
pada perangkat.
● Kombinasi dari sumber lain,
menggunakan basis data di
perangkat sebagai cache.
How it works
● Untuk pertama kali load data
maka refresh key bernilai null
dan initial load akan dilakukan.
● Setelah request berhasil
dilakukan maka hasilnya akan
ditampilkan dan nilai dari
refresh key menjadi 2 dan
seterusnya
● Proses load more akan berhenti
hingga data sudah di load semua.
Guideline
● Define a arsitekturnya.
● Menambahkan library Paging dan library lain yang dibutuhkan.
● Menerapkan PagingSource pada layer Domain (Interactor).
● Implementasi PageData & PagingDataAdapter.
● Lakukan eksekusi di ViewModel
● Menghubungkan Adapter dengan View/Activity.
Library Utama
● OkHTTP
● Retrofit
● RxJava 2
● Paging 3
● Koin
● Picasso
Dependencies
DataSource
PageData
Config
PageData &
PagingDataAdapter
ViewModel Class
Adapter Class
Activity
Selanjutnya apa?
Dicoding Developer Coaching #29: Android | Case Study: Membuat Unlimited List dari Network dengan Paging
Contact:
sidiq@nbs.co.id
THANKS!
Follow us: @dicoding

More Related Content

PDF
Dicoding Developer Coaching #28: Android | Menampilkan Jutaan Data dengan Paging
PDF
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
PDF
Persiapan Sebelum Ujian Sertifikasi Associate Android Developer - Ahmad Arif ...
PDF
Pembuatan tabel dalam database
PPTX
Kelompok 7
PDF
Dicoding Developer Coaching #16: Android | Berkenalan dengan Broadcast Receiver
PPTX
Tugas 1 rek web (lingga eka pradipta, 1411501073, ka)
PPTX
Tugas 1 rek web (lingga eka pradipta, 1411501073, kb)
Dicoding Developer Coaching #28: Android | Menampilkan Jutaan Data dengan Paging
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Persiapan Sebelum Ujian Sertifikasi Associate Android Developer - Ahmad Arif ...
Pembuatan tabel dalam database
Kelompok 7
Dicoding Developer Coaching #16: Android | Berkenalan dengan Broadcast Receiver
Tugas 1 rek web (lingga eka pradipta, 1411501073, ka)
Tugas 1 rek web (lingga eka pradipta, 1411501073, kb)

Similar to Dicoding Developer Coaching #29: Android | Case Study: Membuat Unlimited List dari Network dengan Paging (20)

PDF
jbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdf
PPTX
Membuat Project Web Service
DOCX
Pemrosesan paralel untuk kompresi data
PDF
Sim, 5, andika fajar, hapzi ali, sistem manajemen database, universitas mercu...
PDF
Pemrograman Web - Konsep Pemrograman Internet
PDF
Elastic search, logstash, kibana untuk big data
PPTX
Microservices.pptx
PDF
Cara Akses Database Menggunakan ADO.NET
PPTX
Rekweb
PPTX
Tugas4 [ku]-0316-kahfi arif akbar-1012501571
PPTX
Visualisasi Data Dengan Tibco JasperSoft dan PostgreSQL 1.pptx
PPT
Basis data (_database_)
PDF
Choirul aspnetdb
PDF
ETS MPPL NEW
PDF
ETS MPPL
PPTX
[Seminar II] Pengembangan Prototipe Geographically-Aware Distributed NoSQL
PPTX
Tugas UML
PPTX
Cara Penggunaan dan Pengoneksian sql jdbc dan odbc
PDF
TA MySQL Master- Slave Replication
PDF
Internet Off Things 5 combine Teknik Informatika
jbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdf
Membuat Project Web Service
Pemrosesan paralel untuk kompresi data
Sim, 5, andika fajar, hapzi ali, sistem manajemen database, universitas mercu...
Pemrograman Web - Konsep Pemrograman Internet
Elastic search, logstash, kibana untuk big data
Microservices.pptx
Cara Akses Database Menggunakan ADO.NET
Rekweb
Tugas4 [ku]-0316-kahfi arif akbar-1012501571
Visualisasi Data Dengan Tibco JasperSoft dan PostgreSQL 1.pptx
Basis data (_database_)
Choirul aspnetdb
ETS MPPL NEW
ETS MPPL
[Seminar II] Pengembangan Prototipe Geographically-Aware Distributed NoSQL
Tugas UML
Cara Penggunaan dan Pengoneksian sql jdbc dan odbc
TA MySQL Master- Slave Replication
Internet Off Things 5 combine Teknik Informatika
Ad

More from DicodingEvent (20)

PDF
Developer Coaching #114.pdf
PDF
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
PPTX
tantangan menjadi developer di abad 21
PDF
Mengenalkan augmented reality (ar) pada snapchat
PDF
Membangun Aplikasi Serverless di Platfrom AWS
PDF
IDCamp X Madrasah: Pengenalan Computational Thinking
PDF
Membuat Produk Digital Terbaik ala Startup Unicorn
PDF
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
PDF
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
PDF
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
PDF
Potensi karier menjadi ios developer di masa depan
PDF
Id camp x dicoding live : persiapan jadi software engineer hebat 101
PDF
Tips sukses berkarir sebagai developer dan programmer 2021
PPTX
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
PDF
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
PDF
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
PDF
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
PDF
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
PDF
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
PDF
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Developer Coaching #114.pdf
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
tantangan menjadi developer di abad 21
Mengenalkan augmented reality (ar) pada snapchat
Membangun Aplikasi Serverless di Platfrom AWS
IDCamp X Madrasah: Pengenalan Computational Thinking
Membuat Produk Digital Terbaik ala Startup Unicorn
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Potensi karier menjadi ios developer di masa depan
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Tips sukses berkarir sebagai developer dan programmer 2021
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Ad

Recently uploaded (11)

PDF
DAY 1_Kebijakan Pembelajaran Coding dan Kecerdasan Artifisial.pptx (1).pdf
PPTX
LK 5.1 Tugas Membuat Mind Map.pptx kepada
PDF
1public speaking._pengantar_public_speaking_rev.pdf
PPT
kesiapan kelembagaan dan networking pondok pesantren
PPTX
Materi_Saka_Wanabakti_Kemah_Pramuka_2025.pptx
PPTX
Materi Seminar Minat dan Bakat Untuk Siswa.pptx
PPTX
PowerPoint Agama Islam Bab 4 Saling Menasihati dalam Islam..pptx
PPTX
BAB 1.pptxfgjtruuiiyfthrjkittyruriutjryuyiriti
PPTX
Beige Scrapbook Geography Presentation_20250804_212012_0000.pptx
PPTX
SUMBER SEJARAH.pptxhjhfy46y47gfyrutrjsyi4wueuywy
PPTX
TWIBBONize .pptx
DAY 1_Kebijakan Pembelajaran Coding dan Kecerdasan Artifisial.pptx (1).pdf
LK 5.1 Tugas Membuat Mind Map.pptx kepada
1public speaking._pengantar_public_speaking_rev.pdf
kesiapan kelembagaan dan networking pondok pesantren
Materi_Saka_Wanabakti_Kemah_Pramuka_2025.pptx
Materi Seminar Minat dan Bakat Untuk Siswa.pptx
PowerPoint Agama Islam Bab 4 Saling Menasihati dalam Islam..pptx
BAB 1.pptxfgjtruuiiyfthrjkittyruriutjryuyiriti
Beige Scrapbook Geography Presentation_20250804_212012_0000.pptx
SUMBER SEJARAH.pptxhjhfy46y47gfyrutrjsyi4wueuywy
TWIBBONize .pptx

Dicoding Developer Coaching #29: Android | Case Study: Membuat Unlimited List dari Network dengan Paging

  • 1. Case Study : Membuat Unlimited List dari Network dengan Paging Sidiq Permana Co founder nbs.dev & Google Developer Expert
  • 2. Apa yang kita butuhkan? ● Layanan web API. ● Repository yang berfungsi dengan layanan API, untuk abstraksi request ke layer Network. ● Use Case yang berfungsi Orchestrator untuk manipulasi hasil request sebelum dikirim ke layer presentasi. ● ViewModel yang menyiapkan permintaan data dari layer presentasi. ● UI, yang menunjukkan representasi visual dari data dalam ViewModel.
  • 3. Paging Paging membantu kita memuat data dan menampilkan data-data tersebut secara bertahap (sebagian kecil dalam satu waktu). Memuat data secara berkala/seperlunya akan mengurangi penggunaan sumber daya, terutama Network Bandwidth dan System Resources.
  • 6. Paging Source ● PagingSource, adalah komponen handler yang mengatur besaran jumlah data yang akan di proses .
  • 7. ViewModel ● ViewModel akan menghandle permintaan data yang nantinya akan diteruskan ke layer domain. Kenapa membutuhkan ViewModel? Karena Paging 3 merupakan komponen yang bersifat lifecycle aware.
  • 8. UI ● Kelas Paging Source bekerja dengan PagingDataAdapter untuk memuat item ke dalam RecyclerView.
  • 9. Paging Library mendukung arsitektur data berikut: ● Data hanya berasal dari server backend. ● Disimpan hanya ke database pada perangkat. ● Kombinasi dari sumber lain, menggunakan basis data di perangkat sebagai cache.
  • 10. How it works ● Untuk pertama kali load data maka refresh key bernilai null dan initial load akan dilakukan. ● Setelah request berhasil dilakukan maka hasilnya akan ditampilkan dan nilai dari refresh key menjadi 2 dan seterusnya ● Proses load more akan berhenti hingga data sudah di load semua.
  • 11. Guideline ● Define a arsitekturnya. ● Menambahkan library Paging dan library lain yang dibutuhkan. ● Menerapkan PagingSource pada layer Domain (Interactor). ● Implementasi PageData & PagingDataAdapter. ● Lakukan eksekusi di ViewModel ● Menghubungkan Adapter dengan View/Activity.
  • 12. Library Utama ● OkHTTP ● Retrofit ● RxJava 2 ● Paging 3 ● Koin ● Picasso