MESYUARAT KURIKULUM BIL 1/2024 SEKOLAH KEBANGSAAN SRI SERDANG
Pemrograman Bergerak Pertemuan 10.docx
1. 1
Pemrograman Bergerak
Pertemuan 10
AsyncTask dan AsyncTaskLoader
10.1. Koneksi internet
10.1.1. Langkah-langkah untuk terhubung ke Internet
Menambahkan izin ke Manifes Android
Periksa Koneksi Jaringan
Membuat Thread Worker
Menerapkan tugas latar belakang – Buat URI
– Buat Koneksi HTTP
– Hubungkan dan DAPATKAN Data
Hasil proses
– Hasil Penguraian
● Permissions
10.2. Permissions in AndroidManifest
Internet
<uses-permission android:name="android.permission.INTERNET"/>
Check Network State
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>
10.2.1. Kelola Koneksi Jaringan
Mendapatkan informasi Jaringan
Manajer Konektivitas
Menjawab pertanyaan tentang status konektivitas jaringan
○ Memberi tahu aplikasi saat konektivitas jaringan berubah
● NetworkInfo
Menjelaskan status antarmuka jaringan dari jenis tertentu
○ Seluler atau Wi-Fi
2. 2
Periksa apakah jaringan tersedia
ConnectivityManager connMgr =
(ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo =
connMgr.getActiveNetworkInfo(); if (networkInfo
!= null && networkInfo.isConnected()) { //
Create background thread to connect and get
data new
DownloadWebpageTask().execute(stringUrl);
} else { textView.setText("No network
connection available.");
}
Check for WiFi & Mobile NetworkInfo networkInfo =
connMgr.getNetworkInfo(ConnectivityManager.TYPE_W
IFI); boolean isWifiConn =
networkInfo.isConnected(); networkInfo =
connMgr.getNetworkInfo(ConnectivityManager.TYPE_M
OBILE); boolean isMobileConn =
networkInfo.isConnected();
10.3. Worker Thread
Use Worker Thread
● AsyncTask—tugas yang sangat singkat, atau tidak ada hasil yang dikembalikan ke UI
● AsyncTaskLoader—untuk tugas yang lebih panjang, mengembalikan hasil ke UI
● Background Service—Bab selanjutnya
Pekerjaan latar belakang
Dalam tugas latar belakang (misalnya di doInBackground())
● Membuat URI
● Buat Koneksi HTTP
● Unduh Data
10.4. Membuat URI
URI = Uniform Resource Identifier
String yang memberi nama atau menempatkan sumber daya tertentu
● file://
● http:// and https://
3. 3
● content://
Contoh URL untuk Google Books API
https://www.googleapis.com/books/v1/volumes?
q=pride+prejudice&maxResults=5&printType=books
Konstanta untuk Parameter
final String BASE_URL =
"https://www.googleapis.com/books/v1/v
olumes?"; final String QUERY_PARAM
= "q"; final String MAX_RESULTS =
"maxResults"; final String PRINT_TYPE
= "printType";
Membuat URI untuk permintaan tersebut
Uri builtURI = Uri.parse(BASE_URL).buildUpon()
.appendQueryParameter(QUERY_PARAM, "pride+prejudice")
.appendQueryParameter(MAX_RESULTS, "10")
.appendQueryParameter(PRINT_TYPE, "books")
.build();
URL requestURL = new URL(builtURI.toString());
10.5. Koneksi Klien HTTP
Buat koneksi dari awal
● Pakai HttpURLConnection
● Harus dilakukan pada thread terpisah
● Membutuhkan InputStreams dan mencoba / menangkap blok
Create a HttpURLConnection
HttpURLConnection conn =
(HttpURLConnection) requestURL.openConnection();
Configure connection conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET"); conn.setDoInput(true);
Connect and get response conn.connect(); int response =
conn.getResponseCode(); InputStream is = conn.getInputStream();
String contentAsString = convertIsToString(is, len); return
contentAsString;
4. 4
Close connection and stream
} finally {
conn.disconnect();
if (is != null) { is.close();
}
}
10.6. Konversi Respons ke String
Ubah aliran input menjadi string
publik String convertIsToString(InputStream stream, int len) throws
IOException, UnsupportedEncodingException {
Reader reader = null; reader = new InputStreamReader(stream, "UTF-8");
char[] buffer = new char[len]; reader.read(buffer); return new
String(buffer);
}
BufferedReader lebih efisien
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new
InputStreamReader(inputStream)); String line; while ((line =
reader.readLine()) != null) { builder.append(line + "n");
}
if (builder.length() == 0) { return null;
}
resultString = builder.toString();
10.7. Perpustakaan Koneksi Klien HTTP
Membuat koneksi menggunakan pustaka
● Gunakan pustaka pihak ketiga seperti OkHttp atau Volley
● Dapat dipanggil di utas utama
● Jauh lebih sedikit kode
Volley
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://www.google.com";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override public void onResponse(String response) {
5. 5
// Do something with response
}
}, new Response.ErrorListener() {
@Override public void onErrorResponse(VolleyError error) {}
});
queue.add(stringRequest);
OkHttp
OkHttpClient client = new OkHttpClient();
Request request =
.url("http://publicobject.com/helloworld.txt").build();
new Request.Builder()
client.newCall(request).enqueue(new Callback() {
@Override public void onResponse(Call call, final Response
response)
throws IOException {
try {
String responseData = response.body().string();
JSONObject json = new JSONObject(responseData);
final String owner =
json.getString("name");
} catch
}
});
10.8. Mengurai Hasil Mengurai hasil
(JSONException e) {}
● Menerapkan metode untuk menerima dan menangani hasil
( onPostExecute())
● Response is often JSON or XML
Mengurai hasil menggunakan helper classes
● JSONObject, JSONArray
● XMLPullParser—parses XML
6. 6
JSON basics
{
"population":1,252,000,000,
"country":"India",
"cities":["New Delhi","Mumbai","Kolkata","Chennai"]
}
JSONObject basics
JSONObject jsonObject = new JSONObject(response); String nameOfCountry =
(String) jsonObject.get("country"); long population = (Long)
jsonObject.get("population");
JSONArray listOfCities = (JSONArray) jsonObject.get("cities");
Iterator<String> iterator = listOfCities.iterator(); while
(iterator.hasNext()) {
// do something
}
Contoh JSON lainnya
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}
Get "onclick" value of the 3rd item in the "menuitem" array
JSONObject data = new JSONObject(responseString); JSONArray menuItemArray
= data.getJSONArray("menuitem"); JSONObject thirdItem =
menuItemArray.getJSONObject(2);
String onClick = thirdItem.getString("onclick");
7. 7
10.9. Diskusi
Seperti yang sudah kita ketahui sebuah Service adalah komponen aplikasi yang dapat
melakukan operasi yang berjalan lama di latar belakang dan tidak memiliki antarmuka
pengguna/interface. Ketika kita menggunakan perangkat Android, banyak service yang kita
gunakan, apalagi memang dari aplikasi tersebut sedang ada Service yang berjalan. Kira-kira
contoh service dari sebuah aplikasi apa yang pernah Anda gunakan dan bagaimana dia berjalan?
Jawaban:
Saat menggunakan aplikasi, terdapat banyak contoh layanan (Service) yang berjalan di latar
belakang untuk melakukan operasi yang berlangsung lama atau untuk memberikan
fungsionalitas tertentu. Berikut adalah beberapa contoh umum dari layanan aplikasi:
1. Musik Streaming:
Contoh: Layanan streaming musik seperti Spotify, Apple Music, atau Google
Play Music.
Cara Kerja: Layanan ini berjalan di latar belakang untuk mengalirkan musik
tanpa memerlukan antarmuka pengguna yang aktif. Ini memungkinkan
pengguna untuk mendengarkan musik bahkan ketika aplikasi ditutup.
2. Pembaruan Lokasi:
Contoh: Layanan pembaruan lokasi dari aplikasi peta atau layanan pengiriman
makanan.
Cara Kerja: Layanan ini terus-menerus memantau lokasi pengguna dan
memberikan pembaruan ke aplikasi atau server. Ini memungkinkan aplikasi
untuk memberikan informasi lokasi yang akurat.
3. Sinkronisasi Otomatis:
Contoh: Layanan sinkronisasi otomatis seperti Google Drive atau Dropbox.
Cara Kerja: Layanan ini berjalan di latar belakang untuk menyinkronkan data
pengguna antara perangkat dan penyimpanan awan. Ini memastikan bahwa data
selalu terbarui di semua perangkat.
4. Notifikasi dan Pemberitahuan:
Contoh: Layanan notifikasi dari aplikasi media sosial atau email.
Cara Kerja: Layanan ini memberikan notifikasi kepada pengguna ketika ada
pesan baru, interaksi sosial, atau peristiwa penting lainnya. Ini memungkinkan
aplikasi untuk memberi tahu pengguna bahkan ketika aplikasi tidak aktif.
5. Pemantauan Kesehatan:
8. 8
Contoh: Layanan pemantauan kesehatan dari aplikasi pelacak kebugaran atau
aplikasi kesehatan.
Cara Kerja: Layanan ini dapat terus memantau sensor perangkat, seperti sensor
detak jantung atau langkah-langkah pengguna, untuk memberikan informasi
kesehatan dan kebugaran yang akurat.
6. Pengunduhan:
Contoh: Layanan pengunduhan dari aplikasi manajer pengunduhan.
Cara Kerja: Layanan ini berjalan di latar belakang untuk mengelola unduhan file
atau konten. Pengguna dapat melanjutkan atau membatalkan unduhan bahkan
setelah keluar dari aplikasi.
Layanan di atas bekerja di latar belakang tanpa perlu antarmuka pengguna yang aktif,
memungkinkan aplikasi memberikan fungsionalitas tambahan dan pengalaman pengguna yang
lebih baik.
Untuk isi modul yang lebih detail silahkan di akses modul PPTnya ya
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
Website:
https://www.slideshare.net/HendroGunawan8/pemrograman-bergerak-pertemuan-10pdf