SlideShare a Scribd company logo
1 of 12
Download to read offline
1
Pemrograman Bergerak
Pertemuan 9
AsyncTask dan AsyncTaskLoader
9.1. AsyncTask dan AsyncTaskLoader
9.1.1. Threads
9.1.1.1. The main thread
● Jalur eksekusi independen dalam program yang sedang berjalan
● Kode dijalankan baris demi baris
● Aplikasi berjalan pada thread Java yang disebut "main" atau "UI thread"
● Menarik UI di layar
● Menanggapi tindakan pengguna dengan menangani peristiwa UI
9.1.1.2. Thread Utama harus cepat
● Layar pembaruan perangkat keras setiap 16 milidetik
● UI thread memiliki 16 ms untuk melakukan semua pekerjaannya
● Jika terlalu lama, aplikasi gagap atau hang
Gambar 9.1. Proses Thread
9.1.1.3. Pengguna mencopot pemasangan aplikasi yang tidak responsif
● Jika UI menunggu terlalu lama hingga operasi selesai, UI menjadi tidak responsif
● Kerangka kerja menunjukkan dialog Aplikasi Tidak Merespons (ANR)
Gambar 9.2. Dialog aplikasi tidak merespon
2
9.1.1.4. Apa itu tugas jangka panjang?
● Operasi jaringan
● Perhitungan panjang
● Mengunduh / mengunggah file
● Memproses gambar
● Memuat data
Gambar 9.3. Running task
9.1.1.5. Utas latar belakang
Jalankan tugas yang berjalan lama di utas latar belakang
Gambar 9.4. Main Tread (UI Thread)
● AsyncTask
● Kerangka Loader
● Layanan
9.1.1.6. Dua aturan untuk utas Android
● Jangan blokir utas UI
○ Selesaikan semua pekerjaan dalam waktu kurang dari 16 ms untuk setiap layar
○ Jalankan pekerjaan non-UI yang lambat pada utas non-UI
● Jangan mengakses toolkit UI Android dari luar thread UI
○ Apakah UI hanya berfungsi di thread UI
3
9.1.2. AsyncTask
9.1.2.1. Apa itu AsyncTask?
Menggunakan AsyncTask untuk menerapkan tugas latar belakang dasar
AsyncTask dimaksudkan untuk memungkinkan penggunaan thread UI yang tepat dan
mudah. Namun, yang paling kasus penggunaan umum adalah untuk mengintegrasikan ke
UI, dan itu akan menyebabkan kebocoran Konteks, terlewatkan callback, atau crash pada
perubahan konfigurasi. Ini juga memiliki perilaku yang tidak konsisten pada yang
berbeda versi platform, menelan pengecualian dari , dan tidak menyediakan Banyak
utilitas lebih dari menggunakan s secara langsung.doInBackgroundExecutor
AsyncTask dirancang untuk menjadi kelas pembantu di sekitar dan dan bukan merupakan
kerangka threading generik. AsyncTasks idealnya harus digunakan untuk operasi singkat
(paling lama beberapa detik (16 ms).) Jika Anda perlu menyimpan utas berjalan untuk
jangka waktu yang lama, sangat disarankan Anda menggunakan berbagai API disediakan
oleh paket seperti
,dan.ThreadHandlerjava.util.concurrentExecutorThreadPoolExecutorF
utureTask
Tugas asinkron didefinisikan oleh perhitungan yang berjalan pada utas latar belakang dan
yang hasilnya dipublikasikan di thread UI. Tugas asinkron didefinisikan oleh 3 generik
jenis, disebut
,dan,dan4langkah,disebut,,dan.ParamsProgressResultonPreExecutedoInBackg
roundonProgressUpdateonPostExecute
Gambar 9.5. Subclassing
Berikut adalah contoh subclassing:
private class DownloadFilesTask extends AsyncTask<URL, Integer,
Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
4
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i / (float) count) * 100));
// Escape early if cancel() is called
if (isCancelled()) break;
}
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}
Setelah dibuat, tugas dijalankan dengan sangat sederhana:
new DownloadFilesTask().execute(url1, url2, url3);
9.1.2.2. Override Dua metode
• doInBackground()—berjalan pada thread latar belakang
o Semua pekerjaan terjadi di latar belakang
• onPostExecute()—berjalan di utas utama saat pekerjaan selesai
o Hasil proses
o Mempublikasikan hasil ke UI
9.1.2.3. AsyncTask Metode pembantu
• onPreExecute()
o Berjalan di utas utama
o Menyiapkan tugas
• onProgressUpdate()
o Berjalan di utas utama
o menerima panggilan dari publishProgress() dari thread latar belakang
5
9.1.2.4. AsyncTask Metode pembantu
Gambar 9. 6. AsyncTask Metode pembantu
9.1.2.5. Membuat AsyncTask
• Subkelas AsyncTask
• Berikan tipe data yang dikirim ke doInBackground()
• Menyediakan tipe data unit kemajuan untuk onProgressUpdate()
• Provide data type of result for onPostExecute() private class
MyAsyncTask extends AsyncTask<URL, Integer, Bitmap>
{...}
9.1.2.6. MyAsyncTask Definisi kelas
private class MyAsyncTask extends AsyncTask <String, Integer,
Bitmap> {...}
Gambar 9.7. MyAsyncTask Definisi kelas
• String—bisa berupa kueri, URI untuk nama file
• Integer—persentase selesai, langkah-langkah selesai
• Bitmap—gambar yang akan ditampilkan
• Gunakan Void jika tidak ada data yang diteruskan
9.1.2.7. onPreExecute() protected
void onPreExecute() {
// display a progress bar
// show a toast
}
9.1.2.8. doInBackground() protected Bitmap
doInBackground(String... query) {
6
// Get the bitmap return bitmap;
}
9.1.2.9. onProgressUpdate()
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
9.1.2.10. onPostExecute()
protected void onPostExecute(Bitmap result) {
// Do something with the bitmap
}
9.1.2.11. Mulai pekerjaan latar belakang
public void loadImage (View view) {
String query = mEditText.getText().toString(); new
MyAsyncTask(query).execute();
}
9.1.2.12. Batasan(limitasi) AsyncTask
• Saat konfigurasi perangkat berubah, Aktivitas dihancurkan
• AsyncTask tidak dapat tersambung ke Aktivitas lagi
• AsyncTask baru dibuat untuk setiap perubahan konfigurasi
• AsyncTasks lama tetap ada
• Aplikasi mungkin kehabisan memori atau crash
9.1.2.13. Kapan menggunakan AsyncTask
• Tugas singkat atau terputus
• Tugas yang tidak perlu dilaporkan kembali ke UI atau pengguna
• Tugas dengan prioritas lebih rendah yang dapat dibiarkan belum selesai
• Gunakan AsyncTaskLoader sebaliknya
9.1.3. Loaders
9.1.3.1. Apa itu Loader?
• Menyediakan pemuatan data asinkron
• Menyambungkan kembali ke Aktivitas setelah perubahan konfigurasi
• Dapat memantau perubahan sumber data dan mengirimkan data baru
• Callback diterapkan di Aktivitas
• Banyak jenis loader tersedia
o AsyncTaskLoader, CursorLoader
7
9.1.3.2. Mengapa menggunakan loader?
• Jalankan tugas OFF thread UI
• LoaderManager menangani perubahan konfigurasi untuk Anda
• 3 Diimplementasikan secara efisien oleh kerangka kerja
• Pengguna tidak perlu menunggu data dimuat
9.1.3.3. Apa itu LoaderManager?
• Mengelola fungsi loader melalui callback
• Dapat mengelola beberapa loader
– loader untuk data database, untuk data AsyncTask, untuk data internet...
9.1.3.4. Dapatkan loader dengan initLoader()
• Membuat dan memulai loader, atau menggunakan kembali loader yang sudah ada,
termasuk datanya
● Gunakan restartLoader() untuk menghapus data di loader yang ada
getLoaderManager().initLoader(Id,args,callback);
getLoaderManager().initLoader(0,null,this);
getSupportLoaderManager().initLoader(0,null, this);
9.1.4. Implementasi AsyncTaskLoader
9.1.4.1. AsyncTaskLoader Overview
Gambar 9.8. . AsyncTask Loader Overview
9.1.4.2. AsyncTask → AsyncTaskLoader
Gambar 9. 9. AsyncTask → AsyncTaskLoader
9.1.4.3. Langkah-langkah untuk AsyncTaskLoader subclass
• Subkelas AsyncTaskLoader
8
• Menerapkan konstruktor
• loadInBackground()
• onStartLoading()
9.1.4.4. Subclass AsyncTaskLoader
public static class StringListLoader extends
AsyncTaskLoader<List<String>> {public StringListLoader(Context
context, String queryString) {super(context); mQueryString =
queryString;
}
}
9.1.4.5. loadInBackground()
public List<String> loadInBackground() {
List<String> data = new ArrayList<String>;
//TODO: Load the data from the
network or from a database
return data;
}
9.1.4.6. onStartLoading()
Ketika restartLoader() atau initLoader() dipanggil, LoaderManager
memanggil callback onStartLoading()
• Memeriksa data cache
• Mulai amati sumber data (jika perlu)
• Panggil forceLoad() untuk memuat data jika ada perubahan atau tidak ada data
cache yang dilindungi void onStartLoading() { forceLoad(); }
9.1.4.7. Menerapkan callback loader di Aktivitas
● onCreateLoader() — Membuat dan mengembalikan Loader baru untuk ID yang
diberikan
• onLoadFinished() — Dipanggil ketika loader yang dibuat sebelumnya telah
menyelesaikan muatannya
• onLoaderReset() — Dipanggil ketika loader yang dibuat sebelumnya sedang diatur
ulang sehingga datanya tidak tersedia
9.1.4.8. onCreateLoader()
@Override public Loader<List<String>> onCreateLoader(int id,
Bundle args) { return new
StringListLoader(this,args.getString("queryString"));
9
}
9.1.4.9. onLoadFinished()
Results of loadInBackground() are passed to onLoadFinished()
where you can display them public void
onLoadFinished(Loader<List<String>> loader, List<String> data)
{mAdapter.setData(data);
}
9.1.4.10. onLoaderReset()
• Hanya dipanggil ketika loader dihancurkan
• Biarkan kosong sebagian besar waktu
9.1.4.11. Dapatkan loader dengan initLoader()
@Override public void onLoaderReset(final LoaderList<String>>
loader) { }
• Di Activity
• Menggunakan support library agar kompatibel dengan lebih banyak perangkat
getSupportLoaderManager().initLoader(0, null, this);
9.2. Learn more
• AsyncTask Reference
• AsyncTaskLoader Reference
• LoaderManager Reference
• Processes and Threads Guide
• Loaders Guide
• Thread Performa: Exceed the Android Speed Limit
9.3. Diskusi
AsyncTask sangat wajib ada pada aplikasi berbasis Android. Selain membuat aplikasi menjadi
lebih responsif, juga sebagai nilai lebih di mata user yang menggunakan aplikasi tersebut
karena user dapat mengetahui proses dan progress dari aktivitas yang sedang berjalan. Nah
kira-kira dalam proses apa saja AsyncTask dapat diterapkan? Berikan contohnya ya.
Jawaban:
Meskipun AsyncTask telah digunakan secara luas dalam pengembangan Android untuk
menangani tugas latar belakang dan memperbarui UI, perlu dicatat bahwa penggunaan
AsyncTask telah dikritik dan disarankan untuk digantikan dengan pendekatan yang lebih
10
modern seperti menggunakan ViewModel bersama dengan LiveData, atau menggunakan
Executor dan Handler.
Namun, untuk memberikan pemahaman mengenai proses-proses apa saja AsyncTask dapat
diterapkan, berikut adalah beberapa contoh:
1. Pemanggilan Jaringan:
• Mengambil data dari internet menggunakan HTTP atau protokol lainnya tanpa
menghambat UI Thread. Contoh: mendownload file atau gambar dari server.
Gambar 9.9. Pemanggilan Jaringan
2. Operasi I/O Berat:
• Membaca atau menulis file ke penyimpanan lokal tanpa menghambat UI Thread.
Gambar 9.10. Operasi I/O Berat
3. Pengolahan Data yang Memakan Waktu:
• Melakukan pengolahan data yang memakan waktu tanpa memblokir UI Thread.
11
Gambar 9.11. Pengolahan Data yang Memakan Waktu
Perhatikan bahwa penggunaan AsyncTask harus mempertimbangkan siklus hidup aktivitas
yang memanggilnya, dan perlu dihindari dalam beberapa skenario terkait siklus hidup dan
konfigurasi yang lebih kompleks. Oleh karena itu, alternatif seperti ViewModel dan LiveData
disarankan untuk mengatasi kelemahan-kelemahan yang mungkin muncul dengan penggunaan
AsyncTask.
DAFTAR PUSTAKA
[1] Google, D. (2021, 09 24). Dasar-Dasar Developer Android. Retrieved from Google
Developers: https://developers.google.com/training/courses/android-
fundamentals?hl=id
12

More Related Content

Similar to Pemrograman Bergerak Pertemuan 9.pdf

Modul praktikum 10 - Android Sudaryatno
Modul praktikum 10 - Android SudaryatnoModul praktikum 10 - Android Sudaryatno
Modul praktikum 10 - Android SudaryatnoYatno Sudar
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorialyunus pramono
 
Web Service Menggunakan Axis
Web Service Menggunakan AxisWeb Service Menggunakan Axis
Web Service Menggunakan AxisBart Simpsons
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONDimas Prawira
 
Pemrograman Bergerak Pertemuan 10.docx
Pemrograman Bergerak Pertemuan 10.docxPemrograman Bergerak Pertemuan 10.docx
Pemrograman Bergerak Pertemuan 10.docxHendroGunawan8
 
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...DicodingEvent
 
Understanding asynchronous process on website
Understanding asynchronous process on websiteUnderstanding asynchronous process on website
Understanding asynchronous process on websiteRizal Asrul Pambudi
 
Python Network Programming For Network Engineers
Python Network Programming For Network EngineersPython Network Programming For Network Engineers
Python Network Programming For Network EngineersI Putu Hariyadi
 
TM-4-5-6 SQLite Database.pptx
TM-4-5-6 SQLite Database.pptxTM-4-5-6 SQLite Database.pptx
TM-4-5-6 SQLite Database.pptxAdityaWahyuR2
 
04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-server04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-serverAyu Karisma Alfiana
 
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy ServerModul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy ServerI Putu Hariyadi
 
Monitoring Jaringan Komputer dan Server di GNS3
Monitoring Jaringan Komputer dan Server di GNS3Monitoring Jaringan Komputer dan Server di GNS3
Monitoring Jaringan Komputer dan Server di GNS3Jumroh Arrasid
 
Network Monitoring Documentation
Network Monitoring DocumentationNetwork Monitoring Documentation
Network Monitoring DocumentationArif Wahyudi
 
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdfhusni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdfLiberitoSantos
 
Sentralisasi Hotspot Mikrotik Berbasis EoIP over PPTP
Sentralisasi Hotspot Mikrotik Berbasis EoIP over PPTPSentralisasi Hotspot Mikrotik Berbasis EoIP over PPTP
Sentralisasi Hotspot Mikrotik Berbasis EoIP over PPTPI Putu Hariyadi
 
Part 13 function dan user defined function
Part 13  function dan user defined functionPart 13  function dan user defined function
Part 13 function dan user defined functionDenny Yahya
 
Cara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di UbuntuCara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di UbuntuWirabumi Software
 
Podman - The Next Generation of Linux Container Tools
Podman - The Next Generation of Linux Container ToolsPodman - The Next Generation of Linux Container Tools
Podman - The Next Generation of Linux Container ToolsI Putu Hariyadi
 

Similar to Pemrograman Bergerak Pertemuan 9.pdf (20)

Modul praktikum 10 - Android Sudaryatno
Modul praktikum 10 - Android SudaryatnoModul praktikum 10 - Android Sudaryatno
Modul praktikum 10 - Android Sudaryatno
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorial
 
Web Service Menggunakan Axis
Web Service Menggunakan AxisWeb Service Menggunakan Axis
Web Service Menggunakan Axis
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
 
Pemrograman Bergerak Pertemuan 10.docx
Pemrograman Bergerak Pertemuan 10.docxPemrograman Bergerak Pertemuan 10.docx
Pemrograman Bergerak Pertemuan 10.docx
 
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
 
Understanding asynchronous process on website
Understanding asynchronous process on websiteUnderstanding asynchronous process on website
Understanding asynchronous process on website
 
Python Network Programming For Network Engineers
Python Network Programming For Network EngineersPython Network Programming For Network Engineers
Python Network Programming For Network Engineers
 
TM-4-5-6 SQLite Database.pptx
TM-4-5-6 SQLite Database.pptxTM-4-5-6 SQLite Database.pptx
TM-4-5-6 SQLite Database.pptx
 
Pert.12 pipelining lanjutan
Pert.12 pipelining lanjutanPert.12 pipelining lanjutan
Pert.12 pipelining lanjutan
 
04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-server04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-server
 
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy ServerModul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
 
Monitoring Jaringan Komputer dan Server di GNS3
Monitoring Jaringan Komputer dan Server di GNS3Monitoring Jaringan Komputer dan Server di GNS3
Monitoring Jaringan Komputer dan Server di GNS3
 
Network Monitoring Documentation
Network Monitoring DocumentationNetwork Monitoring Documentation
Network Monitoring Documentation
 
Presentation dyan
Presentation dyanPresentation dyan
Presentation dyan
 
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdfhusni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
 
Sentralisasi Hotspot Mikrotik Berbasis EoIP over PPTP
Sentralisasi Hotspot Mikrotik Berbasis EoIP over PPTPSentralisasi Hotspot Mikrotik Berbasis EoIP over PPTP
Sentralisasi Hotspot Mikrotik Berbasis EoIP over PPTP
 
Part 13 function dan user defined function
Part 13  function dan user defined functionPart 13  function dan user defined function
Part 13 function dan user defined function
 
Cara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di UbuntuCara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di Ubuntu
 
Podman - The Next Generation of Linux Container Tools
Podman - The Next Generation of Linux Container ToolsPodman - The Next Generation of Linux Container Tools
Podman - The Next Generation of Linux Container Tools
 

More from HendroGunawan8

Jaringan VOIP Ringkasan Video Pertemuan Ke-4.pdf
Jaringan VOIP Ringkasan Video Pertemuan Ke-4.pdfJaringan VOIP Ringkasan Video Pertemuan Ke-4.pdf
Jaringan VOIP Ringkasan Video Pertemuan Ke-4.pdfHendroGunawan8
 
Estetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdfEstetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdfHendroGunawan8
 
Estetika Humanisme Diskusi Video Sesi Ke-4.pdf
Estetika Humanisme Diskusi Video Sesi Ke-4.pdfEstetika Humanisme Diskusi Video Sesi Ke-4.pdf
Estetika Humanisme Diskusi Video Sesi Ke-4.pdfHendroGunawan8
 
Pengolahan Citra Diskusi Pertemuan Ke-4.pdf
Pengolahan Citra Diskusi Pertemuan Ke-4.pdfPengolahan Citra Diskusi Pertemuan Ke-4.pdf
Pengolahan Citra Diskusi Pertemuan Ke-4.pdfHendroGunawan8
 
Diskusi Modul Sistem Pakar Sesi Ke-4.pdf
Diskusi Modul Sistem Pakar Sesi Ke-4.pdfDiskusi Modul Sistem Pakar Sesi Ke-4.pdf
Diskusi Modul Sistem Pakar Sesi Ke-4.pdfHendroGunawan8
 
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfDiskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfHendroGunawan8
 
Estetika Humanisme Diskusi Modul Part Ke-3.pdf
Estetika Humanisme Diskusi Modul Part Ke-3.pdfEstetika Humanisme Diskusi Modul Part Ke-3.pdf
Estetika Humanisme Diskusi Modul Part Ke-3.pdfHendroGunawan8
 
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdfDiskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdfHendroGunawan8
 
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdfDiskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdfHendroGunawan8
 
Estetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdfEstetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdfHendroGunawan8
 
Pengolahan Citra Diskusi Pertemuan Ke-2.pdf
Pengolahan Citra Diskusi Pertemuan Ke-2.pdfPengolahan Citra Diskusi Pertemuan Ke-2.pdf
Pengolahan Citra Diskusi Pertemuan Ke-2.pdfHendroGunawan8
 
Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...
Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...
Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...HendroGunawan8
 
Estetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdfEstetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdfHendroGunawan8
 
Estetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdfEstetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdfHendroGunawan8
 
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfEstetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfHendroGunawan8
 
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdfJaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdfHendroGunawan8
 
PSTN adalah kumpulan jaringan telepon umum yang saling terhubung di seluruh d...
PSTN adalah kumpulan jaringan telepon umum yang saling terhubung di seluruh d...PSTN adalah kumpulan jaringan telepon umum yang saling terhubung di seluruh d...
PSTN adalah kumpulan jaringan telepon umum yang saling terhubung di seluruh d...HendroGunawan8
 
Pengolahan citra digital adalah teknologi visual yang digunakan untuk mengama...
Pengolahan citra digital adalah teknologi visual yang digunakan untuk mengama...Pengolahan citra digital adalah teknologi visual yang digunakan untuk mengama...
Pengolahan citra digital adalah teknologi visual yang digunakan untuk mengama...HendroGunawan8
 
Sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahu...
Sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahu...Sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahu...
Sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahu...HendroGunawan8
 
Estetika Humanisme Ringkasan Pertemuan 1.pdf
Estetika Humanisme Ringkasan Pertemuan 1.pdfEstetika Humanisme Ringkasan Pertemuan 1.pdf
Estetika Humanisme Ringkasan Pertemuan 1.pdfHendroGunawan8
 

More from HendroGunawan8 (20)

Jaringan VOIP Ringkasan Video Pertemuan Ke-4.pdf
Jaringan VOIP Ringkasan Video Pertemuan Ke-4.pdfJaringan VOIP Ringkasan Video Pertemuan Ke-4.pdf
Jaringan VOIP Ringkasan Video Pertemuan Ke-4.pdf
 
Estetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdfEstetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Modul Part Ke-4 (DipulihkanOtomatis).pdf
 
Estetika Humanisme Diskusi Video Sesi Ke-4.pdf
Estetika Humanisme Diskusi Video Sesi Ke-4.pdfEstetika Humanisme Diskusi Video Sesi Ke-4.pdf
Estetika Humanisme Diskusi Video Sesi Ke-4.pdf
 
Pengolahan Citra Diskusi Pertemuan Ke-4.pdf
Pengolahan Citra Diskusi Pertemuan Ke-4.pdfPengolahan Citra Diskusi Pertemuan Ke-4.pdf
Pengolahan Citra Diskusi Pertemuan Ke-4.pdf
 
Diskusi Modul Sistem Pakar Sesi Ke-4.pdf
Diskusi Modul Sistem Pakar Sesi Ke-4.pdfDiskusi Modul Sistem Pakar Sesi Ke-4.pdf
Diskusi Modul Sistem Pakar Sesi Ke-4.pdf
 
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfDiskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
 
Estetika Humanisme Diskusi Modul Part Ke-3.pdf
Estetika Humanisme Diskusi Modul Part Ke-3.pdfEstetika Humanisme Diskusi Modul Part Ke-3.pdf
Estetika Humanisme Diskusi Modul Part Ke-3.pdf
 
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdfDiskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
 
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdfDiskusi Modul Sistem Pakar Sesi Ke-3.pdf
Diskusi Modul Sistem Pakar Sesi Ke-3.pdf
 
Estetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdfEstetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdf
Estetika Humanisme Diskusi Video Sesi Ke-3 (DipulihkanOtomatis).pdf
 
Pengolahan Citra Diskusi Pertemuan Ke-2.pdf
Pengolahan Citra Diskusi Pertemuan Ke-2.pdfPengolahan Citra Diskusi Pertemuan Ke-2.pdf
Pengolahan Citra Diskusi Pertemuan Ke-2.pdf
 
Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...
Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...
Protokol dan prosedur yang menyediakan layanan komunikasi multimedia audio, v...
 
Estetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdfEstetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-2 Sesi Ke-2.pdf
 
Estetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdfEstetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdf
Estetika Humanisme Diskusi Modul Ke-1 Pertemuan Ke-2.pdf
 
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdfEstetika Humanisme Diskusi Video Sesi Ke-1.pdf
Estetika Humanisme Diskusi Video Sesi Ke-1.pdf
 
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdfJaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
Jaringan VOIP Ringkasan PTT Pertemuan Ke-1.pdf
 
PSTN adalah kumpulan jaringan telepon umum yang saling terhubung di seluruh d...
PSTN adalah kumpulan jaringan telepon umum yang saling terhubung di seluruh d...PSTN adalah kumpulan jaringan telepon umum yang saling terhubung di seluruh d...
PSTN adalah kumpulan jaringan telepon umum yang saling terhubung di seluruh d...
 
Pengolahan citra digital adalah teknologi visual yang digunakan untuk mengama...
Pengolahan citra digital adalah teknologi visual yang digunakan untuk mengama...Pengolahan citra digital adalah teknologi visual yang digunakan untuk mengama...
Pengolahan citra digital adalah teknologi visual yang digunakan untuk mengama...
 
Sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahu...
Sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahu...Sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahu...
Sistem pakar (expert system) adalah sistem yang berusaha mengadopsi pengetahu...
 
Estetika Humanisme Ringkasan Pertemuan 1.pdf
Estetika Humanisme Ringkasan Pertemuan 1.pdfEstetika Humanisme Ringkasan Pertemuan 1.pdf
Estetika Humanisme Ringkasan Pertemuan 1.pdf
 

Recently uploaded

KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxawaldarmawan3
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxFuzaAnggriana
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxmawan5982
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfirwanabidin08
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5KIKI TRISNA MUKTI
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5ssuserd52993
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDmawan5982
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfDimanWr1
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggeraksupriadi611
 
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptxGiftaJewela
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptxMiftahunnajahTVIBS
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxWirionSembiring2
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxsdn3jatiblora
 
Lembar Observasi Pembelajaran di Kelas.docx
Lembar Observasi Pembelajaran di  Kelas.docxLembar Observasi Pembelajaran di  Kelas.docx
Lembar Observasi Pembelajaran di Kelas.docxbkandrisaputra
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)3HerisaSintia
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfElaAditya
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfCloverash1
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfbibizaenab
 

Recently uploaded (20)

KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SD
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggerak
 
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx421783639-ppt-overdosis-dan-keracunan-pptx.pptx
421783639-ppt-overdosis-dan-keracunan-pptx.pptx
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptx
 
Lembar Observasi Pembelajaran di Kelas.docx
Lembar Observasi Pembelajaran di  Kelas.docxLembar Observasi Pembelajaran di  Kelas.docx
Lembar Observasi Pembelajaran di Kelas.docx
 
Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)Karakteristik Negara Mesir (Geografi Regional Dunia)
Karakteristik Negara Mesir (Geografi Regional Dunia)
 
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdfTUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
TUGAS GURU PENGGERAK Aksi Nyata Modul 1.1.pdf
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdf
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
 

Pemrograman Bergerak Pertemuan 9.pdf

  • 1. 1 Pemrograman Bergerak Pertemuan 9 AsyncTask dan AsyncTaskLoader 9.1. AsyncTask dan AsyncTaskLoader 9.1.1. Threads 9.1.1.1. The main thread ● Jalur eksekusi independen dalam program yang sedang berjalan ● Kode dijalankan baris demi baris ● Aplikasi berjalan pada thread Java yang disebut "main" atau "UI thread" ● Menarik UI di layar ● Menanggapi tindakan pengguna dengan menangani peristiwa UI 9.1.1.2. Thread Utama harus cepat ● Layar pembaruan perangkat keras setiap 16 milidetik ● UI thread memiliki 16 ms untuk melakukan semua pekerjaannya ● Jika terlalu lama, aplikasi gagap atau hang Gambar 9.1. Proses Thread 9.1.1.3. Pengguna mencopot pemasangan aplikasi yang tidak responsif ● Jika UI menunggu terlalu lama hingga operasi selesai, UI menjadi tidak responsif ● Kerangka kerja menunjukkan dialog Aplikasi Tidak Merespons (ANR) Gambar 9.2. Dialog aplikasi tidak merespon
  • 2. 2 9.1.1.4. Apa itu tugas jangka panjang? ● Operasi jaringan ● Perhitungan panjang ● Mengunduh / mengunggah file ● Memproses gambar ● Memuat data Gambar 9.3. Running task 9.1.1.5. Utas latar belakang Jalankan tugas yang berjalan lama di utas latar belakang Gambar 9.4. Main Tread (UI Thread) ● AsyncTask ● Kerangka Loader ● Layanan 9.1.1.6. Dua aturan untuk utas Android ● Jangan blokir utas UI ○ Selesaikan semua pekerjaan dalam waktu kurang dari 16 ms untuk setiap layar ○ Jalankan pekerjaan non-UI yang lambat pada utas non-UI ● Jangan mengakses toolkit UI Android dari luar thread UI ○ Apakah UI hanya berfungsi di thread UI
  • 3. 3 9.1.2. AsyncTask 9.1.2.1. Apa itu AsyncTask? Menggunakan AsyncTask untuk menerapkan tugas latar belakang dasar AsyncTask dimaksudkan untuk memungkinkan penggunaan thread UI yang tepat dan mudah. Namun, yang paling kasus penggunaan umum adalah untuk mengintegrasikan ke UI, dan itu akan menyebabkan kebocoran Konteks, terlewatkan callback, atau crash pada perubahan konfigurasi. Ini juga memiliki perilaku yang tidak konsisten pada yang berbeda versi platform, menelan pengecualian dari , dan tidak menyediakan Banyak utilitas lebih dari menggunakan s secara langsung.doInBackgroundExecutor AsyncTask dirancang untuk menjadi kelas pembantu di sekitar dan dan bukan merupakan kerangka threading generik. AsyncTasks idealnya harus digunakan untuk operasi singkat (paling lama beberapa detik (16 ms).) Jika Anda perlu menyimpan utas berjalan untuk jangka waktu yang lama, sangat disarankan Anda menggunakan berbagai API disediakan oleh paket seperti ,dan.ThreadHandlerjava.util.concurrentExecutorThreadPoolExecutorF utureTask Tugas asinkron didefinisikan oleh perhitungan yang berjalan pada utas latar belakang dan yang hasilnya dipublikasikan di thread UI. Tugas asinkron didefinisikan oleh 3 generik jenis, disebut ,dan,dan4langkah,disebut,,dan.ParamsProgressResultonPreExecutedoInBackg roundonProgressUpdateonPostExecute Gambar 9.5. Subclassing Berikut adalah contoh subclassing: private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> { protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; for (int i = 0; i < count; i++) {
  • 4. 4 totalSize += Downloader.downloadFile(urls[i]); publishProgress((int) ((i / (float) count) * 100)); // Escape early if cancel() is called if (isCancelled()) break; } return totalSize; } protected void onProgressUpdate(Integer... progress) { setProgressPercent(progress[0]); } protected void onPostExecute(Long result) { showDialog("Downloaded " + result + " bytes"); } } Setelah dibuat, tugas dijalankan dengan sangat sederhana: new DownloadFilesTask().execute(url1, url2, url3); 9.1.2.2. Override Dua metode • doInBackground()—berjalan pada thread latar belakang o Semua pekerjaan terjadi di latar belakang • onPostExecute()—berjalan di utas utama saat pekerjaan selesai o Hasil proses o Mempublikasikan hasil ke UI 9.1.2.3. AsyncTask Metode pembantu • onPreExecute() o Berjalan di utas utama o Menyiapkan tugas • onProgressUpdate() o Berjalan di utas utama o menerima panggilan dari publishProgress() dari thread latar belakang
  • 5. 5 9.1.2.4. AsyncTask Metode pembantu Gambar 9. 6. AsyncTask Metode pembantu 9.1.2.5. Membuat AsyncTask • Subkelas AsyncTask • Berikan tipe data yang dikirim ke doInBackground() • Menyediakan tipe data unit kemajuan untuk onProgressUpdate() • Provide data type of result for onPostExecute() private class MyAsyncTask extends AsyncTask<URL, Integer, Bitmap> {...} 9.1.2.6. MyAsyncTask Definisi kelas private class MyAsyncTask extends AsyncTask <String, Integer, Bitmap> {...} Gambar 9.7. MyAsyncTask Definisi kelas • String—bisa berupa kueri, URI untuk nama file • Integer—persentase selesai, langkah-langkah selesai • Bitmap—gambar yang akan ditampilkan • Gunakan Void jika tidak ada data yang diteruskan 9.1.2.7. onPreExecute() protected void onPreExecute() { // display a progress bar // show a toast } 9.1.2.8. doInBackground() protected Bitmap doInBackground(String... query) {
  • 6. 6 // Get the bitmap return bitmap; } 9.1.2.9. onProgressUpdate() protected void onProgressUpdate(Integer... progress) { setProgressPercent(progress[0]); } 9.1.2.10. onPostExecute() protected void onPostExecute(Bitmap result) { // Do something with the bitmap } 9.1.2.11. Mulai pekerjaan latar belakang public void loadImage (View view) { String query = mEditText.getText().toString(); new MyAsyncTask(query).execute(); } 9.1.2.12. Batasan(limitasi) AsyncTask • Saat konfigurasi perangkat berubah, Aktivitas dihancurkan • AsyncTask tidak dapat tersambung ke Aktivitas lagi • AsyncTask baru dibuat untuk setiap perubahan konfigurasi • AsyncTasks lama tetap ada • Aplikasi mungkin kehabisan memori atau crash 9.1.2.13. Kapan menggunakan AsyncTask • Tugas singkat atau terputus • Tugas yang tidak perlu dilaporkan kembali ke UI atau pengguna • Tugas dengan prioritas lebih rendah yang dapat dibiarkan belum selesai • Gunakan AsyncTaskLoader sebaliknya 9.1.3. Loaders 9.1.3.1. Apa itu Loader? • Menyediakan pemuatan data asinkron • Menyambungkan kembali ke Aktivitas setelah perubahan konfigurasi • Dapat memantau perubahan sumber data dan mengirimkan data baru • Callback diterapkan di Aktivitas • Banyak jenis loader tersedia o AsyncTaskLoader, CursorLoader
  • 7. 7 9.1.3.2. Mengapa menggunakan loader? • Jalankan tugas OFF thread UI • LoaderManager menangani perubahan konfigurasi untuk Anda • 3 Diimplementasikan secara efisien oleh kerangka kerja • Pengguna tidak perlu menunggu data dimuat 9.1.3.3. Apa itu LoaderManager? • Mengelola fungsi loader melalui callback • Dapat mengelola beberapa loader – loader untuk data database, untuk data AsyncTask, untuk data internet... 9.1.3.4. Dapatkan loader dengan initLoader() • Membuat dan memulai loader, atau menggunakan kembali loader yang sudah ada, termasuk datanya ● Gunakan restartLoader() untuk menghapus data di loader yang ada getLoaderManager().initLoader(Id,args,callback); getLoaderManager().initLoader(0,null,this); getSupportLoaderManager().initLoader(0,null, this); 9.1.4. Implementasi AsyncTaskLoader 9.1.4.1. AsyncTaskLoader Overview Gambar 9.8. . AsyncTask Loader Overview 9.1.4.2. AsyncTask → AsyncTaskLoader Gambar 9. 9. AsyncTask → AsyncTaskLoader 9.1.4.3. Langkah-langkah untuk AsyncTaskLoader subclass • Subkelas AsyncTaskLoader
  • 8. 8 • Menerapkan konstruktor • loadInBackground() • onStartLoading() 9.1.4.4. Subclass AsyncTaskLoader public static class StringListLoader extends AsyncTaskLoader<List<String>> {public StringListLoader(Context context, String queryString) {super(context); mQueryString = queryString; } } 9.1.4.5. loadInBackground() public List<String> loadInBackground() { List<String> data = new ArrayList<String>; //TODO: Load the data from the network or from a database return data; } 9.1.4.6. onStartLoading() Ketika restartLoader() atau initLoader() dipanggil, LoaderManager memanggil callback onStartLoading() • Memeriksa data cache • Mulai amati sumber data (jika perlu) • Panggil forceLoad() untuk memuat data jika ada perubahan atau tidak ada data cache yang dilindungi void onStartLoading() { forceLoad(); } 9.1.4.7. Menerapkan callback loader di Aktivitas ● onCreateLoader() — Membuat dan mengembalikan Loader baru untuk ID yang diberikan • onLoadFinished() — Dipanggil ketika loader yang dibuat sebelumnya telah menyelesaikan muatannya • onLoaderReset() — Dipanggil ketika loader yang dibuat sebelumnya sedang diatur ulang sehingga datanya tidak tersedia 9.1.4.8. onCreateLoader() @Override public Loader<List<String>> onCreateLoader(int id, Bundle args) { return new StringListLoader(this,args.getString("queryString"));
  • 9. 9 } 9.1.4.9. onLoadFinished() Results of loadInBackground() are passed to onLoadFinished() where you can display them public void onLoadFinished(Loader<List<String>> loader, List<String> data) {mAdapter.setData(data); } 9.1.4.10. onLoaderReset() • Hanya dipanggil ketika loader dihancurkan • Biarkan kosong sebagian besar waktu 9.1.4.11. Dapatkan loader dengan initLoader() @Override public void onLoaderReset(final LoaderList<String>> loader) { } • Di Activity • Menggunakan support library agar kompatibel dengan lebih banyak perangkat getSupportLoaderManager().initLoader(0, null, this); 9.2. Learn more • AsyncTask Reference • AsyncTaskLoader Reference • LoaderManager Reference • Processes and Threads Guide • Loaders Guide • Thread Performa: Exceed the Android Speed Limit 9.3. Diskusi AsyncTask sangat wajib ada pada aplikasi berbasis Android. Selain membuat aplikasi menjadi lebih responsif, juga sebagai nilai lebih di mata user yang menggunakan aplikasi tersebut karena user dapat mengetahui proses dan progress dari aktivitas yang sedang berjalan. Nah kira-kira dalam proses apa saja AsyncTask dapat diterapkan? Berikan contohnya ya. Jawaban: Meskipun AsyncTask telah digunakan secara luas dalam pengembangan Android untuk menangani tugas latar belakang dan memperbarui UI, perlu dicatat bahwa penggunaan AsyncTask telah dikritik dan disarankan untuk digantikan dengan pendekatan yang lebih
  • 10. 10 modern seperti menggunakan ViewModel bersama dengan LiveData, atau menggunakan Executor dan Handler. Namun, untuk memberikan pemahaman mengenai proses-proses apa saja AsyncTask dapat diterapkan, berikut adalah beberapa contoh: 1. Pemanggilan Jaringan: • Mengambil data dari internet menggunakan HTTP atau protokol lainnya tanpa menghambat UI Thread. Contoh: mendownload file atau gambar dari server. Gambar 9.9. Pemanggilan Jaringan 2. Operasi I/O Berat: • Membaca atau menulis file ke penyimpanan lokal tanpa menghambat UI Thread. Gambar 9.10. Operasi I/O Berat 3. Pengolahan Data yang Memakan Waktu: • Melakukan pengolahan data yang memakan waktu tanpa memblokir UI Thread.
  • 11. 11 Gambar 9.11. Pengolahan Data yang Memakan Waktu Perhatikan bahwa penggunaan AsyncTask harus mempertimbangkan siklus hidup aktivitas yang memanggilnya, dan perlu dihindari dalam beberapa skenario terkait siklus hidup dan konfigurasi yang lebih kompleks. Oleh karena itu, alternatif seperti ViewModel dan LiveData disarankan untuk mengatasi kelemahan-kelemahan yang mungkin muncul dengan penggunaan AsyncTask. DAFTAR PUSTAKA [1] Google, D. (2021, 09 24). Dasar-Dasar Developer Android. Retrieved from Google Developers: https://developers.google.com/training/courses/android- fundamentals?hl=id
  • 12. 12