SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
ANDROID 
FOR 
BEGINNER MODUL 10 
! 
[ANDROID ASYNTASK] 
!!!!! 
SUDARYATNO 
yatnosudar@gmail.com | @dodulz | facebook : yatno.sudar 
Page 1 of 6
ANDROID ASYNTASK 
! 
Asyntask adalah class yang digunakan untuk melakukan proses secara background atau disebut 
Background Processing. Tujuan dari aplikasi ini adalah agar aplikasi kita tidak error atau hang 
pada saat dijalankan. Class ini terdiri dari tiga proses yaitu persiapan,proses,progress, dan hasil. 
Contoh aplikasi yang menggunakan class AsynTask : GAME, aplikasi yang membutuhkan 
Koneksi, aplikasi yang memiliki proses atau perhitungan terlalu banyak, dsb. 
private class DownloadFilesTask extends AsyncTaskURL, Integer, Long { 
Code diatas adalah contoh menggunaan Asyntask untuk mendownload file yang menggunakan 
akses internet. Class DownloadFilesTask exteds dari class AsynTask dengan paramter 
URL,Integer,Long paramter ini dapat kita modifikasi sesuai dengan proses yang kita gunakan 
nantinnya. 
• Paramter pertama digunakan untuk deklarasi atau paramter dari proses 
• Paramter kedua digunakan untuk menampilkan progress dari proses yang sedang berlangsung 
• Paramter ketiga merupakan hasil dari background processing. 
! 
Ada beberapa method yang digunakan di class ini diantarnnya : 
1. onPreExecute() 
Method ini digunakan sebelum memulai background processing. Jika anda memiliki widget yang 
perlu di tampilkan deklarasikan di method ini. Karena untuk method doInBackground kita tidak 
dapat mendeklarasikan atau pun merubah. 
2. doInBackground(Params…) 
Page 2 of 6 
protected Long doInBackground(URL... urls) { 
int count = urls.length; 
long totalSize = 0; 
for (int i = 0; i  count; i++) { 
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); 
} 
}
Semua proses yang dilakukan di method ini. Method ini tidak dapat melakukan akses ke widget, 
karena method ini hanya khusus digunakan untuk background processing berlangsung. 
3. onProgressUpdate(Progress…) 
Method ini digunakan untuk menampilkan progres-progres dari doInBackground. 
4. onPostExecute(Result) 
Merupakan method yang digunakan untuk menampilkan hasil akhir dari proses yang sudah 
dilakukan. 
!! 
Page 3 of 6
PRAKTIKUM 
! Tujuan : Mengenal background processing di Android! 
Scope : AsynTask, Progressbar, method AsynTask! ! 
1. Buat project baru! 
2. Ubah file layout dengan code berikut :! 
RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android 
Page 4 of 6 
xmlns:tools=http://schemas.android.com/tools 
android:layout_width=match_parent 
android:layout_height=match_parent 
android:paddingBottom=@dimen/activity_vertical_margin 
android:paddingLeft=@dimen/activity_horizontal_margin 
android:paddingRight=@dimen/activity_horizontal_margin 
android:paddingTop=@dimen/activity_vertical_margin 
tools:context=.MainActivity  ! 
Button 
android:id=@+id/button1 
android:layout_width=match_parent 
android:layout_height=wrap_content 
android:layout_below=@+id/progressbar 
android:layout_centerHorizontal=true 
android:layout_marginTop=47dp 
android:onClick=_RunningProgress 
android:text=JALANKAN PROSES / ! 
ProgressBar 
android:id=@+id/progressbar 
style=?android:attr/progressBarStyleHorizontal 
android:layout_width=match_parent 
android:layout_height=wrap_content 
android:layout_alignLeft=@+id/button1 
android:layout_alignParentTop=true 
android:layout_marginTop=61dp / ! 
TextView 
android:id=@+id/text_progress 
android:layout_width=wrap_content 
android:layout_height=wrap_content 
android:layout_alignParentTop=true 
android:layout_centerHorizontal=true 
android:layout_marginTop=32dp 
android:text=PROGRES 
android:textAppearance=?android:attr/textAppearanceLarge / ! 
/RelativeLayout
3. Edit file MainActivity.java dengan code berikut :! 
Page 5 of 6 
public class MainActivity extends Activity { 
private ProgressBar progressbar; 
private TextView textView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
progressbar = (ProgressBar) findViewById(R.id.progressbar); 
textView = (TextView) findViewById(R.id.text_progress); ! 
} 
public void _RunningProgress(View view) { 
new BG_PROCESSING().execute(start); 
} 
class BG_PROCESSING extends AsyncTaskString, Integer, Boolean { 
int myProgres = 0; 
@Override 
protected void onPreExecute() { 
progressbar.setProgress(0); 
Toast.makeText(MainActivity.this, onPreExecute, 
Toast.LENGTH_SHORT).show(); 
textView.setText(Proses di Mulai); 
super.onPreExecute(); 
} 
@Override 
protected Boolean doInBackground(String... params) { 
if (params[0].equals(start)) { 
while (myProgres  100) { 
myProgres++; 
publishProgress(myProgres); 
SystemClock.sleep(100); 
} 
if (myProgres == 100) { 
return true; 
}} 
return false; 
} 
@Override 
protected void onProgressUpdate(Integer... values) { 
textView.setText(Proses ke  + values[0]); 
progressbar.setProgress(values[0]); 
super.onProgressUpdate(values); 
} 
@Override 
protected void onPostExecute(Boolean result) { 
textView.setText(Hasil adalah  + result); 
Toast.makeText(MainActivity.this, onPostExecute, 
Toast.LENGTH_SHORT).show(); 
super.onPostExecute(result); 
} 
} 
}
4. Code diatas digunakan untuk menampilakn progress bar dengan background proses. Di 
method onPreExecute digunakan untuk memulai proses. Di method ini kita masih bisa 
melakukan set untuk UI. Sedangkan di method doInBackground dilakukan proses perhitungan 
progressbar. Progress bar dihitung sampai 100. Jika progressbar tidak sama dengan 100 
maka return akan false. Method onProgressUpdata digunakan untuk menampilkan update 
dari progressbar. code publishProgress(myProgres); yang terdapat di method 
doInBackground berfungsi untuk melempar paramter ke method onProgressUpdate. Agar bisa 
ditampilkan ke UI. dan proses terakhir yaitu onPostExecute digunakan untuk menampilkan 
hasil akhir dari proses. 
5. Jalankan Aplikasi. 
! 
Tugas : 
1. Apakah fungsi dari AsyncTaskString, Integer, Boolean 
2. Apa maksud dari params[0] pada method doInBackground dan values[0] dari method 
onProgressUpdate 
3. Tambahkan Toast.makeText(MainActivity.this, Proses Berjalan, 
Toast.LENGTH_SHORT).show(); di method doInBackground apa yang akan terjadi. 
4. Kemudian tambahkan code berikut di method doInBackground 
Apakah terjadi perbedaan? Jika YA simpulkan… 
Page 6 of 6 
runOnUiThread(new Runnable() { 
@Override 
public void run() { 
Toast.makeText(MainActivity.this, Proses 
Berjalan, Toast.LENGTH_SHORT).show(); 
} 
});

Contenu connexe

En vedette

Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application developmentGoogle
 
Modul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android SudaryatnoModul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android SudaryatnoYatno Sudar
 
Modul praktikum 13 - Android Sudaryatno
Modul praktikum 13 - Android SudaryatnoModul praktikum 13 - Android Sudaryatno
Modul praktikum 13 - Android SudaryatnoYatno Sudar
 
Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndkGoogle
 
Modul praktikum 11 - Android Sudaryatno
Modul praktikum 11 - Android SudaryatnoModul praktikum 11 - Android Sudaryatno
Modul praktikum 11 - Android SudaryatnoYatno Sudar
 
Modul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android SudaryatnoModul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android SudaryatnoYatno Sudar
 
Material design for android (Diggest)
Material design for android (Diggest)Material design for android (Diggest)
Material design for android (Diggest)Google
 

En vedette (8)

Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application development
 
Modul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android SudaryatnoModul praktikum 2 - Android Sudaryatno
Modul praktikum 2 - Android Sudaryatno
 
Modul praktikum 13 - Android Sudaryatno
Modul praktikum 13 - Android SudaryatnoModul praktikum 13 - Android Sudaryatno
Modul praktikum 13 - Android Sudaryatno
 
Modul android
Modul android Modul android
Modul android
 
Pengenalan android ndk
Pengenalan android ndkPengenalan android ndk
Pengenalan android ndk
 
Modul praktikum 11 - Android Sudaryatno
Modul praktikum 11 - Android SudaryatnoModul praktikum 11 - Android Sudaryatno
Modul praktikum 11 - Android Sudaryatno
 
Modul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android SudaryatnoModul praktikum 9 - Android Sudaryatno
Modul praktikum 9 - Android Sudaryatno
 
Material design for android (Diggest)
Material design for android (Diggest)Material design for android (Diggest)
Material design for android (Diggest)
 

Similaire à Modul praktikum 10 - Android Sudaryatno

Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLiteCara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLitecreatorb dev
 
Belajar pemrograman berbasis web menggunakan dhtmlx 2
Belajar pemrograman berbasis web menggunakan dhtmlx 2Belajar pemrograman berbasis web menggunakan dhtmlx 2
Belajar pemrograman berbasis web menggunakan dhtmlx 2Tobing Manuppak
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriSyarif Fudin
 
Pemrograman Bergerak Pertemuan 9.pdf
Pemrograman Bergerak Pertemuan 9.pdfPemrograman Bergerak Pertemuan 9.pdf
Pemrograman Bergerak Pertemuan 9.pdfHendroGunawan8
 
Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...
Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...
Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...Tobing Manuppak
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxBBXSQUAD
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorialyunus pramono
 
Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysqlrikysp
 
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDETutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDEDimas Prawira
 
Jquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by YussanJquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by YussanYusuf A.H.
 
Understanding asynchronous process on website
Understanding asynchronous process on websiteUnderstanding asynchronous process on website
Understanding asynchronous process on websiteRizal Asrul Pambudi
 
Tutorial JSON-LD dan RabbitMQ di Java
Tutorial JSON-LD dan RabbitMQ di JavaTutorial JSON-LD dan RabbitMQ di Java
Tutorial JSON-LD dan RabbitMQ di JavaHendy Irawan
 
Tutorial Postgre SQL
Tutorial Postgre SQLTutorial Postgre SQL
Tutorial Postgre SQLHari Setiaji
 
Praktikum javascript
Praktikum javascriptPraktikum javascript
Praktikum javascriptYunia Ikawati
 

Similaire à Modul praktikum 10 - Android Sudaryatno (20)

Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLiteCara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
 
Belajar pemrograman berbasis web menggunakan dhtmlx 2
Belajar pemrograman berbasis web menggunakan dhtmlx 2Belajar pemrograman berbasis web menggunakan dhtmlx 2
Belajar pemrograman berbasis web menggunakan dhtmlx 2
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajri
 
Ii java input ouput
Ii   java input ouputIi   java input ouput
Ii java input ouput
 
Pemrograman Bergerak Pertemuan 9.pdf
Pemrograman Bergerak Pertemuan 9.pdfPemrograman Bergerak Pertemuan 9.pdf
Pemrograman Bergerak Pertemuan 9.pdf
 
Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...
Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...
Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...
 
Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorial
 
Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysql
 
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDETutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
Tutorial instalasi, konfigurasi glassfish serta integrasi dengan Eclipse IDE
 
Jquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by YussanJquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by Yussan
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 
Tugas Praktikum ke dua
Tugas Praktikum ke duaTugas Praktikum ke dua
Tugas Praktikum ke dua
 
Understanding asynchronous process on website
Understanding asynchronous process on websiteUnderstanding asynchronous process on website
Understanding asynchronous process on website
 
Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)
 
Tutorial JSON-LD dan RabbitMQ di Java
Tutorial JSON-LD dan RabbitMQ di JavaTutorial JSON-LD dan RabbitMQ di Java
Tutorial JSON-LD dan RabbitMQ di Java
 
Tutorial Postgre SQL
Tutorial Postgre SQLTutorial Postgre SQL
Tutorial Postgre SQL
 
Modul 07 basisdata
Modul 07 basisdataModul 07 basisdata
Modul 07 basisdata
 
Praktikum javascript
Praktikum javascriptPraktikum javascript
Praktikum javascript
 

Plus de Yatno Sudar

Introduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQueryIntroduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQueryYatno Sudar
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsYatno Sudar
 
Chatbot With Dialogflow
Chatbot With DialogflowChatbot With Dialogflow
Chatbot With DialogflowYatno Sudar
 
Dialog Flow - GITS Indonesia
Dialog Flow - GITS IndonesiaDialog Flow - GITS Indonesia
Dialog Flow - GITS IndonesiaYatno Sudar
 
Technical Feasibility For Product
Technical Feasibility For ProductTechnical Feasibility For Product
Technical Feasibility For ProductYatno Sudar
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITSYatno Sudar
 
MVVM Core By GITS-Indonesia
MVVM Core By GITS-IndonesiaMVVM Core By GITS-Indonesia
MVVM Core By GITS-IndonesiaYatno Sudar
 
Modul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android SudaryatnoModul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android SudaryatnoYatno Sudar
 
Modul praktikum 15 - Android Sudaryatno
Modul praktikum 15 - Android SudaryatnoModul praktikum 15 - Android Sudaryatno
Modul praktikum 15 - Android SudaryatnoYatno Sudar
 

Plus de Yatno Sudar (10)

Slack Time
Slack TimeSlack Time
Slack Time
 
Introduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQueryIntroduction Data Warehouse With BigQuery
Introduction Data Warehouse With BigQuery
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform Apps
 
Chatbot With Dialogflow
Chatbot With DialogflowChatbot With Dialogflow
Chatbot With Dialogflow
 
Dialog Flow - GITS Indonesia
Dialog Flow - GITS IndonesiaDialog Flow - GITS Indonesia
Dialog Flow - GITS Indonesia
 
Technical Feasibility For Product
Technical Feasibility For ProductTechnical Feasibility For Product
Technical Feasibility For Product
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITS
 
MVVM Core By GITS-Indonesia
MVVM Core By GITS-IndonesiaMVVM Core By GITS-Indonesia
MVVM Core By GITS-Indonesia
 
Modul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android SudaryatnoModul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android Sudaryatno
 
Modul praktikum 15 - Android Sudaryatno
Modul praktikum 15 - Android SudaryatnoModul praktikum 15 - Android Sudaryatno
Modul praktikum 15 - Android Sudaryatno
 

Modul praktikum 10 - Android Sudaryatno

  • 1. ANDROID FOR BEGINNER MODUL 10 ! [ANDROID ASYNTASK] !!!!! SUDARYATNO yatnosudar@gmail.com | @dodulz | facebook : yatno.sudar Page 1 of 6
  • 2. ANDROID ASYNTASK ! Asyntask adalah class yang digunakan untuk melakukan proses secara background atau disebut Background Processing. Tujuan dari aplikasi ini adalah agar aplikasi kita tidak error atau hang pada saat dijalankan. Class ini terdiri dari tiga proses yaitu persiapan,proses,progress, dan hasil. Contoh aplikasi yang menggunakan class AsynTask : GAME, aplikasi yang membutuhkan Koneksi, aplikasi yang memiliki proses atau perhitungan terlalu banyak, dsb. private class DownloadFilesTask extends AsyncTaskURL, Integer, Long { Code diatas adalah contoh menggunaan Asyntask untuk mendownload file yang menggunakan akses internet. Class DownloadFilesTask exteds dari class AsynTask dengan paramter URL,Integer,Long paramter ini dapat kita modifikasi sesuai dengan proses yang kita gunakan nantinnya. • Paramter pertama digunakan untuk deklarasi atau paramter dari proses • Paramter kedua digunakan untuk menampilkan progress dari proses yang sedang berlangsung • Paramter ketiga merupakan hasil dari background processing. ! Ada beberapa method yang digunakan di class ini diantarnnya : 1. onPreExecute() Method ini digunakan sebelum memulai background processing. Jika anda memiliki widget yang perlu di tampilkan deklarasikan di method ini. Karena untuk method doInBackground kita tidak dapat mendeklarasikan atau pun merubah. 2. doInBackground(Params…) Page 2 of 6 protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; for (int i = 0; i count; i++) { 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); } }
  • 3. Semua proses yang dilakukan di method ini. Method ini tidak dapat melakukan akses ke widget, karena method ini hanya khusus digunakan untuk background processing berlangsung. 3. onProgressUpdate(Progress…) Method ini digunakan untuk menampilkan progres-progres dari doInBackground. 4. onPostExecute(Result) Merupakan method yang digunakan untuk menampilkan hasil akhir dari proses yang sudah dilakukan. !! Page 3 of 6
  • 4. PRAKTIKUM ! Tujuan : Mengenal background processing di Android! Scope : AsynTask, Progressbar, method AsynTask! ! 1. Buat project baru! 2. Ubah file layout dengan code berikut :! RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android Page 4 of 6 xmlns:tools=http://schemas.android.com/tools android:layout_width=match_parent android:layout_height=match_parent android:paddingBottom=@dimen/activity_vertical_margin android:paddingLeft=@dimen/activity_horizontal_margin android:paddingRight=@dimen/activity_horizontal_margin android:paddingTop=@dimen/activity_vertical_margin tools:context=.MainActivity ! Button android:id=@+id/button1 android:layout_width=match_parent android:layout_height=wrap_content android:layout_below=@+id/progressbar android:layout_centerHorizontal=true android:layout_marginTop=47dp android:onClick=_RunningProgress android:text=JALANKAN PROSES / ! ProgressBar android:id=@+id/progressbar style=?android:attr/progressBarStyleHorizontal android:layout_width=match_parent android:layout_height=wrap_content android:layout_alignLeft=@+id/button1 android:layout_alignParentTop=true android:layout_marginTop=61dp / ! TextView android:id=@+id/text_progress android:layout_width=wrap_content android:layout_height=wrap_content android:layout_alignParentTop=true android:layout_centerHorizontal=true android:layout_marginTop=32dp android:text=PROGRES android:textAppearance=?android:attr/textAppearanceLarge / ! /RelativeLayout
  • 5. 3. Edit file MainActivity.java dengan code berikut :! Page 5 of 6 public class MainActivity extends Activity { private ProgressBar progressbar; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); progressbar = (ProgressBar) findViewById(R.id.progressbar); textView = (TextView) findViewById(R.id.text_progress); ! } public void _RunningProgress(View view) { new BG_PROCESSING().execute(start); } class BG_PROCESSING extends AsyncTaskString, Integer, Boolean { int myProgres = 0; @Override protected void onPreExecute() { progressbar.setProgress(0); Toast.makeText(MainActivity.this, onPreExecute, Toast.LENGTH_SHORT).show(); textView.setText(Proses di Mulai); super.onPreExecute(); } @Override protected Boolean doInBackground(String... params) { if (params[0].equals(start)) { while (myProgres 100) { myProgres++; publishProgress(myProgres); SystemClock.sleep(100); } if (myProgres == 100) { return true; }} return false; } @Override protected void onProgressUpdate(Integer... values) { textView.setText(Proses ke + values[0]); progressbar.setProgress(values[0]); super.onProgressUpdate(values); } @Override protected void onPostExecute(Boolean result) { textView.setText(Hasil adalah + result); Toast.makeText(MainActivity.this, onPostExecute, Toast.LENGTH_SHORT).show(); super.onPostExecute(result); } } }
  • 6. 4. Code diatas digunakan untuk menampilakn progress bar dengan background proses. Di method onPreExecute digunakan untuk memulai proses. Di method ini kita masih bisa melakukan set untuk UI. Sedangkan di method doInBackground dilakukan proses perhitungan progressbar. Progress bar dihitung sampai 100. Jika progressbar tidak sama dengan 100 maka return akan false. Method onProgressUpdata digunakan untuk menampilkan update dari progressbar. code publishProgress(myProgres); yang terdapat di method doInBackground berfungsi untuk melempar paramter ke method onProgressUpdate. Agar bisa ditampilkan ke UI. dan proses terakhir yaitu onPostExecute digunakan untuk menampilkan hasil akhir dari proses. 5. Jalankan Aplikasi. ! Tugas : 1. Apakah fungsi dari AsyncTaskString, Integer, Boolean 2. Apa maksud dari params[0] pada method doInBackground dan values[0] dari method onProgressUpdate 3. Tambahkan Toast.makeText(MainActivity.this, Proses Berjalan, Toast.LENGTH_SHORT).show(); di method doInBackground apa yang akan terjadi. 4. Kemudian tambahkan code berikut di method doInBackground Apakah terjadi perbedaan? Jika YA simpulkan… Page 6 of 6 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, Proses Berjalan, Toast.LENGTH_SHORT).show(); } });