SlideShare a Scribd company logo
1 of 23
Download to read offline
Menjalankan Proses di
Background Thread pada Android
Ahmad Imaduddin
Google Associate Android Developer, Head of Academy Dicoding
Threads
Rangkaian terkecil dari program yang dieksekusi dalam sebuah aplikasi.
UI Threads
Di Android, secara default yang tampil di layar menggunakan UI/Main Thread.
Aturan Thread di Android
Long task -> Hang/Lag/Freeze UI
Lebih dari x (dulu 5) detik -> ANR (Application Not Responding)
Dua (2) Aturan simpel terkait dengan UI Threads:
1. Jangan block UI Threads
2. Jangan akses UI/View dari luar UI Threads
Background Threads?
Thread baru yang berjalan di belakang Main Threads.
Update UI
Sesuai dengan Rule no 2, update UI harus di UI Thread.
Jadi, ketika sudah berbeda Threads, perlu kembali ke UI Thread.
Di Android, bisa dengan menggunakan Handler.
Handler
Dapat mengirim dan memproses message & objek runnable lainnya yang
berhubungan dengan thread.
Asynchronous & Multi Threading
Ini adalah 2 hal yang berbeda.
● Asynchronous : Non blocking Operation
● Synchronous : Sequence Operation
● Single Threading : Satu Thread
● Multi Threading : Banyak Thread
Sync vs Async
Sync vs Async
Sync vs Async
Multi Threads
Multi Threads
Multi Threads
Tools?
1. Executors
2. Coroutines
Executors
Komponen pada Android yang memiliki kemampuan untuk memanajemen banyak
thread sekaligus, baik dari segi urutan proses, penjadwalan, maupun menjalankan
proses secara paralel.
Bisa sebagai replacement dari Asynctask.
Macam-macam:
● newSingleThreadExecutor
● newFixedThreadPool(nThreads)
● newCachedThreadPool
Coroutines
● Bagian dari Kotlin
● Lightweight
● Fewer Memory Leaks
● Built-in Cancellation Support
● Jetpack Integration
Coroutines Delay
Dapat men-suspend/delay suatu operasi dalam waktu tertentu tanpa mem-block
thread, dan kemudian kembali setelah waktu tertentu.
Coroutines Dispatcher
● Dispatchers.Main : UI Thread
● Dispatcher.IO : Disk or Network IO
● Dispatcher.Default : CPU intensive di luar Main Thread
● Dispatcher.Unconfined
● newSingleThreadContext("MyOwnThread")
Skenario:
1. Menjalankan proses lama di UI Thread.
2. Menjalankan proses lama di UI Thread secara asynchronous dengan Coroutines.
3. Menggunakan Executors untuk menjalankan proses lama.
Demo Sample App
Referensi
● https://codewala.net/2015/07/29/concurrency-vs-multi-threading-vs-asynchro
nous-programming-explained/
● https://developer.android.com/guide/components/processes-and-threads
● https://www.dicoding.com/academies/14/tutorials/159/
● https://www.baeldung.com/java-executor-service-tutorial
● https://developer.android.com/kotlin/coroutines-adv
REPLACE ME
Contact:
(ahmad@dicoding.com)
THANKS!
Follow us: @dicoding

More Related Content

What's hot

Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...DicodingEvent
 
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)Suryo Atmojo
 
Cara Mudah Berkolaborasi dengan Github - Gilang Ramadhan
Cara Mudah Berkolaborasi dengan Github - Gilang RamadhanCara Mudah Berkolaborasi dengan Github - Gilang Ramadhan
Cara Mudah Berkolaborasi dengan Github - Gilang RamadhanDicodingEvent
 
Belajar Server Side Rendering Yuk! - Dimas Maulana Dwi Saputra
Belajar Server Side Rendering Yuk! - Dimas Maulana Dwi SaputraBelajar Server Side Rendering Yuk! - Dimas Maulana Dwi Saputra
Belajar Server Side Rendering Yuk! - Dimas Maulana Dwi SaputraDicodingEvent
 
Slide - Aliber 2.0 (Human Resource Management)
Slide - Aliber 2.0 (Human Resource Management)Slide - Aliber 2.0 (Human Resource Management)
Slide - Aliber 2.0 (Human Resource Management)Edy Setiawan
 

What's hot (7)

Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
 
Android Workshop beginner
Android Workshop beginnerAndroid Workshop beginner
Android Workshop beginner
 
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
 
Cara Mudah Berkolaborasi dengan Github - Gilang Ramadhan
Cara Mudah Berkolaborasi dengan Github - Gilang RamadhanCara Mudah Berkolaborasi dengan Github - Gilang Ramadhan
Cara Mudah Berkolaborasi dengan Github - Gilang Ramadhan
 
Android Workshop for Intermediate
Android Workshop for Intermediate Android Workshop for Intermediate
Android Workshop for Intermediate
 
Belajar Server Side Rendering Yuk! - Dimas Maulana Dwi Saputra
Belajar Server Side Rendering Yuk! - Dimas Maulana Dwi SaputraBelajar Server Side Rendering Yuk! - Dimas Maulana Dwi Saputra
Belajar Server Side Rendering Yuk! - Dimas Maulana Dwi Saputra
 
Slide - Aliber 2.0 (Human Resource Management)
Slide - Aliber 2.0 (Human Resource Management)Slide - Aliber 2.0 (Human Resource Management)
Slide - Aliber 2.0 (Human Resource Management)
 

Similar to Menjalankan Proses di Background Thread pada Android

Pertemuan 11 thread dan asyntask
Pertemuan 11 thread dan asyntaskPertemuan 11 thread dan asyntask
Pertemuan 11 thread dan asyntaskheriakj
 
Pertemuan 2 - Materi [MP - 2016].pdf
Pertemuan 2 - Materi [MP - 2016].pdfPertemuan 2 - Materi [MP - 2016].pdf
Pertemuan 2 - Materi [MP - 2016].pdfandrirachmayadi90
 
Evaluasi Windows 8 dari Sisi HCI
Evaluasi Windows 8 dari Sisi HCIEvaluasi Windows 8 dari Sisi HCI
Evaluasi Windows 8 dari Sisi HCIRumah Studio
 
Power point android dan aplikasinya
Power point android dan aplikasinyaPower point android dan aplikasinya
Power point android dan aplikasinyaGibran Ghazi
 
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)eltwordy
 
Modul ajar membuat aplikasi mobile multiplatform menggunakan android studio
Modul ajar membuat aplikasi mobile multiplatform menggunakan android studioModul ajar membuat aplikasi mobile multiplatform menggunakan android studio
Modul ajar membuat aplikasi mobile multiplatform menggunakan android studioElsa Charming
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andoridArif Huda
 
Ppt android destika
Ppt android destikaPpt android destika
Ppt android destikaaditamayahya
 
372 Dasar Pengenalan Android Programming
372 Dasar Pengenalan Android Programming372 Dasar Pengenalan Android Programming
372 Dasar Pengenalan Android ProgrammingWirat Mojo
 
Membuat Aplikasi Android dengan App Inventor 2
Membuat Aplikasi Android dengan App Inventor 2Membuat Aplikasi Android dengan App Inventor 2
Membuat Aplikasi Android dengan App Inventor 2Rusmanto Maryanto
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application developmentGoogle
 
Pengantar Android
Pengantar AndroidPengantar Android
Pengantar AndroidSherly Uda
 
Presentasi komdas abiyoga nur sa'ad
Presentasi komdas abiyoga nur sa'adPresentasi komdas abiyoga nur sa'ad
Presentasi komdas abiyoga nur sa'adAbiyogaNursaad
 
Modul 2 dunia komputer
Modul 2 dunia komputerModul 2 dunia komputer
Modul 2 dunia komputerjiwaparadox
 
Proposal Smart Remot Control Berbasi Android BAB I
Proposal Smart Remot Control Berbasi Android BAB IProposal Smart Remot Control Berbasi Android BAB I
Proposal Smart Remot Control Berbasi Android BAB IWanry Lumban Batu
 
Java control parallel port aris suryadi
Java control parallel port   aris suryadiJava control parallel port   aris suryadi
Java control parallel port aris suryadiAris Suryadi
 

Similar to Menjalankan Proses di Background Thread pada Android (20)

Pertemuan 11 thread dan asyntask
Pertemuan 11 thread dan asyntaskPertemuan 11 thread dan asyntask
Pertemuan 11 thread dan asyntask
 
Pertemuan 2 - Materi [MP - 2016].pdf
Pertemuan 2 - Materi [MP - 2016].pdfPertemuan 2 - Materi [MP - 2016].pdf
Pertemuan 2 - Materi [MP - 2016].pdf
 
Evaluasi Windows 8 dari Sisi HCI
Evaluasi Windows 8 dari Sisi HCIEvaluasi Windows 8 dari Sisi HCI
Evaluasi Windows 8 dari Sisi HCI
 
Live coding #1
Live coding #1Live coding #1
Live coding #1
 
Power point android dan aplikasinya
Power point android dan aplikasinyaPower point android dan aplikasinya
Power point android dan aplikasinya
 
Kajian 2 3-batasan masalah
Kajian 2 3-batasan masalah Kajian 2 3-batasan masalah
Kajian 2 3-batasan masalah
 
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
 
Java mobile eition
Java mobile eitionJava mobile eition
Java mobile eition
 
Modul ajar membuat aplikasi mobile multiplatform menggunakan android studio
Modul ajar membuat aplikasi mobile multiplatform menggunakan android studioModul ajar membuat aplikasi mobile multiplatform menggunakan android studio
Modul ajar membuat aplikasi mobile multiplatform menggunakan android studio
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andorid
 
Ppt android destika
Ppt android destikaPpt android destika
Ppt android destika
 
372 Dasar Pengenalan Android Programming
372 Dasar Pengenalan Android Programming372 Dasar Pengenalan Android Programming
372 Dasar Pengenalan Android Programming
 
Membuat Aplikasi Android dengan App Inventor 2
Membuat Aplikasi Android dengan App Inventor 2Membuat Aplikasi Android dengan App Inventor 2
Membuat Aplikasi Android dengan App Inventor 2
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application development
 
Pengantar Android
Pengantar AndroidPengantar Android
Pengantar Android
 
Presentasi komdas abiyoga nur sa'ad
Presentasi komdas abiyoga nur sa'adPresentasi komdas abiyoga nur sa'ad
Presentasi komdas abiyoga nur sa'ad
 
Modul 2 dunia komputer
Modul 2 dunia komputerModul 2 dunia komputer
Modul 2 dunia komputer
 
Kodular.pptx
Kodular.pptxKodular.pptx
Kodular.pptx
 
Proposal Smart Remot Control Berbasi Android BAB I
Proposal Smart Remot Control Berbasi Android BAB IProposal Smart Remot Control Berbasi Android BAB I
Proposal Smart Remot Control Berbasi Android BAB I
 
Java control parallel port aris suryadi
Java control parallel port   aris suryadiJava control parallel port   aris suryadi
Java control parallel port aris suryadi
 

More from DicodingEvent

Developer Coaching #114.pdf
Developer Coaching #114.pdfDeveloper Coaching #114.pdf
Developer Coaching #114.pdfDicodingEvent
 
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...DicodingEvent
 
tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21DicodingEvent
 
Mengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatMengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatDicodingEvent
 
Membangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSMembangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSDicodingEvent
 
IDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingIDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingDicodingEvent
 
Membuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornMembuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornDicodingEvent
 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsDicodingEvent
 
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDTechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDDicodingEvent
 
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanMembuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanDicodingEvent
 
Potensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanPotensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanDicodingEvent
 
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101DicodingEvent
 
Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021DicodingEvent
 
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiTeknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiDicodingEvent
 
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...DicodingEvent
 
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...DicodingEvent
 
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusPengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusDicodingEvent
 
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...DicodingEvent
 
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...DicodingEvent
 
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...DicodingEvent
 

More from DicodingEvent (20)

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

Menjalankan Proses di Background Thread pada Android