Slide IST205 9 Mobile Device Programming Android Studio 2 Android Application Life Cycle

Mobile Programming
Folder Resources (Res) dan tata
kelolanya
Siklus hidup activity pada aplikasi
berbasis Android

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Capaian Pembelajaran
• Memahami Folder Resources dan isinya
• Mampu mengakses
• Mengenal siklus hidup activity aplikasi
berbasis Android.
• Memahami fungsi state pada siklus hidup
activity aplikasi berbasis Android.
• Membuat aplikasi berbasis Android yang
menerapkan pemanfaatan state pada siklus
hidup activity aplikasi berbasis Android.

Augury El Rayeb, S.Kom., MMSI.

Mobile Device Programming Technology (Android Studio) | IST205

Isi Folder Resources (Res)
Directory

Deskripsi

anim/

Tempat file XML yang berisi definisi property animasi.
Lokasi folder: res/anim/
Akses melalui: class R.anim

color/

Tempat file XML yang berisi definisi property warna (color).
Lokasi folder: res/color/
Akses melalui: class R.color

drawable/


Tempat file gambar (.png, .jpg, .gif) atau file XML yang dicompile menjadi bitmap, gambar untuk animasi, dsb.
Lokasi folder: res/drawable/
Akses melalui: class R.drawable

layout/

Tempat file XML yang berisi definisi layout UI (user Interface)
Lokasi folder: res/layout/
Akses melalui: class R.layout

menu/

Tempat file XML yang berisi definisi menu aplikasi, seperti,
Options Menu, Context Menu, atau Sub Menu.
Lokasi folder: res/menu/
Akses melalui : R.menu class

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205


Isi Folder Resources (Res)
Directory

Deskripsi

raw/

Tempat menyimpan sembarang (segala) file dalam bentuk
mentah.
Untuk membuka file raw: callResources.openRawResource()
dengan resource ID: R.raw.namaFile

values/

Tempat file XML yang berisi nilai (value), seperti; strings,
integers, dan colors.
Berikut adalah aturan penamaan file pada directory ini:
arrays.xml  resource arrays, diakses melalui: class R.array
integers.xml  resource integers, diakses melalui: class

R.integer bools.xml  resource boolean, diakses melalui:
class R.bool
colors.xml  color values, diakses melalui: class R.color
dimens.xml  dimension values, diakses melalui: class
R.dimen
strings.xml  string values, diakses melalui: class R.string
styles.xml  styles, diakses melalui: class R.style

xml/

Tempat menyimpan berbagai file konfigurasi dala bentuk XML
yang dapat dibaca saat runtime.

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Mengakses Resource dari Code Java
• Saat aplikasi android di-compile, class R akan dibuat, class R
ini akan berisi semua ID resource yang ada di dalam directory
res/ (termasuk subfoldernya).


Dengan demikian kita dapat mengakses resource dengan :
▫ Menggunakan class R disertai sub-derectory dan nama resourcenya (nama file maupun name pada tag), contoh:
R.drawable.gambarLogo
Artinya: mengakses file gambarLogo yang berada pada directory
res/drawable/
▫ Menggunakan class R disertai dengan resource ID-nya, contoh:
R.id.setinganGambar
Artinya: mengakses nilai yang didefinisikan dengan ID
setinganGambar pada file yang terdapat di dalam folder res/
atau res/sub-directory/
ImageView
ImageView imageView
imageView == (ImageView)
(ImageView) findViewById(R.id.myimageview);
findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);
imageView.setImageResource(R.drawable.myimage);

Augury El Rayeb, S.Kom., MMSI.

Mobile Device Programming Technology (Android Studio) | IST205

Mengakses Resource dari Code Java
Contoh:
ImageView
ImageView imageView
imageView == (ImageView)
(ImageView) findViewById(R.id.myimageview);
findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);
imageView.setImageResource(R.drawable.myimage);

Contoh:

Misal suatu file Strings.xml berisi definisi seperti berikut:



Hello, World!
World!




Mengakses nilai
yang ada pada id
msg

TextView
TextView msgTextView
msgTextView == (TextView)
(TextView) findViewById(R.id.msg);
findViewById(R.id.msg);
msgTextView.setText(R.string.hello);
msgTextView.setText(R.string.hello);
Mengakses nilai pada tag
string dengan name:hello

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205


Mengakses Resource dari XML
Contoh:
Misal suatu file strings.xml;


Pesan ini
ini diambil
diambil dari
dari di
di Strings.xml
Strings.xml



dan colors.xml :


#3F51B5
#303f9f




ntuk mengakses nilai tsb di atas dari tag TextView pada activity.xml:


@string/pesan
nilai ada di tag
name: pesan

, artinya: lokasi
string dengan

@color/colorPrimaryDark ,
artinya: lokasi nilai ada di tag
color dengan name:
colorPrimaryDark

Siklus Hidup
Activity


Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

State pada Siklus Hidup
Activity

• Aplikasi android merupakan aplikasi yang siklus hidupnya
memiliki beberapa state (kondisi).
• Berdasarkan diagram siklus hidup aplikasi android di atas
diketahui terdapat beberapa method utama terkait state
(kondisi) dari activity yang ada pada aplikasi android:
1. onCreate()
2. onStart()
3. onResume()
4. onPause()
5. onStop()
6. onRestart()

7. onDestroy()

Berikut adalah state
lainnya yang tidak memiliki
method:
8. Activity is shutdown
9. Process is killed

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Log untuk Debug State Activity
• Sistem Android menggunakan sistem terpusat untuk setiap
log.
• Log ini juga bisa digunakan untuk mengetahui state suatu
activity pada siklus hidup activity.
• Berikut yang harus dilakukan untuk mengakses log:
▫ Import class Log
Import android.util.Log;

▫ Buat di dalam class field TAG (penanda) agar log mudah
dikenali
Pivate static final String TAG="Augury";

▫ Pada method state yang ingin dideteksi, tambahkan method
Log berikut
Log.i(TAG, "tuliskan nama state disini");

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Contoh Log untuk Debug State Activity
import
import android.util.Log;
android.util.Log;
public
public class
class MainActivity
MainActivity extends
extends Activity
Activity {{
private
private static
static final
final String
String TAG
TAG == "KataAugury";
"KataAugury";
@Override
@Override
protected
protected void
void onCreate(Bundle
onCreate(Bundle savedInstanceState)
savedInstanceState) {{
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setContentView(R.layout.activity_main);
Log.i(TAG,
Log.i(TAG, "Method
"Method onCreate
onCreate Jalan");
Jalan");
}}
@Override
@Override
protected
protected void
void onStart()
onStart() {{
super.onStart();
super.onStart();
Log.i(TAG,
Log.i(TAG, "Method
"Method onStart
onStart Jalan");
Jalan");
}}

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Monitor Log di Konsol
• Untuk memonitor log, gunakan
konsol
Click Android Monitor
pada tab paling bawah di
android monitor.
IDE
• Akan tampil Konsol seperti di bawah ini:
Click dan pilih Edit Filter Configuration, akan
tampil dialog spt pada slide berikut ini.

Click dan pilih Info pada Monitors, sesuai method Log
yang kita gunakan.
Dalam hal ini info, karena kita menggunakan Log.i( )

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Monitor Log di Konsol
• Dialog yang tampil setelah pilih Edit
Filter Configuration:
Isi dengan String yang kita isi pada field
Nama filter
yang akan
kita buat

string TAG.
Misal data field:
private static final String TAG =
"KataAugury";

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Monitor Log di Konsol
• Dialog yang tampil setelah pilih Edit
Filter Configuration:
Pilih nama

filter yang
sebelumnya
kita buat

Tampilan konsol sesuai filter yang kita
tentukan, yaitu; hanya menampilkan
info yang mengandung kata:
KataAugury

Activity State

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Monitor saat activity pertama kali jalan:
… com.contoh.augury.aplikasi2 I/KataAugury: Method
onCreate Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method
onStart Jalan
… com.contoh.augury.aplikasi2 I/KataAugury: Method
onResume Jalan

Monitor kalau tombol home ditekan,
meninggalkan Activity:






com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2

I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:

Method
Method
Method
Method
Method

onCreate Jalan
onStart Jalan
onResume Jalan
onPause Jalan
onStop Jalan

Activity State

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Monitor saat activity dijalankan lagi melalui menu history aplikasi:









com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2

I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:

Method
Method
Method
Method
Method
Method
Method
Method

onCreate Jalan
onStart Jalan
onResume Jalan
onPause Jalan
onStop Jalan
onRestart Jalan
onStart Jalan
onResume Jalan

Monitor kalau tombol back ditekan, keluar dari Activity:












com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2
com.contoh.augury.aplikasi2

I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:
I/KataAugury:

Method
Method
Method
Method
Method
Method
Method
Method
Method
Method
Method

onCreate Jalan
onStart Jalan
onResume Jalan
onPause Jalan
onStop Jalan
onRestart Jalan
onStart Jalan
onResume Jalan
onPause Jalan
onStop Jalan
onDestroy Jalan

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

TIPS - Log untuk Debug State Activity
• Sistem Android menggunakan sistem terpusat untuk setiap
log.
• Log ini juga bisa digunakan untuk mengetahui state suatu
activity pada siklus hidup activity.
• Berikut yang harus dilakukan untuk mengakses log:
▫ Import class Log
Import android.util.Log;

▫ Buat di dalam class field TAG (penanda) agar log mudah
dikenali
Pivate static final String TAG="Augury";

▫ Pada method state yang ingin dideteksi, tambahkan method
Log berikut
Log.i(TAG, "tuliskan nama state disini");

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Log Method
• Method yang bisa digunakan pada log:
 Log.v()  verbose
Segala sesuatu hal akan di-log

 Log.d()  debug
Untuk keperluan debug (nilai variable akan di-log)

 Log.i()  info
Untuk me-log informasi yang diperlukan, contoh; menampilkan
informasi sukses saat koneksi ke server berhasil.

 Log.w()  warning
Untuk me-log warning

 Log.e()  error
Untuk me-log error

 Log.wtf()  what a terrible failure
Untuk me-log kesalahan yang benar-benar parah

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

TIPS - Auto Generate Method
• Alt+Insert
Akan tampil menu seperti dibawah,
kemudian pilih method yang ingin di auto
generate.

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Terima Kasih

Augury El Rayeb, S.Kom., MMSI.
Mobile Device Programming Technology (Android Studio) | IST205

Referensi
• Android Tutorial: Simply Easy Learning
by tutorialspoint.com
• TheNewBoston YouTube Playlist: Android
App Development for Beginners Playlist.
https://
www.youtube.com/watch?v=NMDPxN8FgXM&list=PL6gx4Cwl9DGBsvRxJJOzG4r4k_zLKrnxl&index=9