Slide IST205 11 Mobile Device Programming Android Studio 4 Intent dan Multi Activity App

Mobile Programming
Intent dan Activity

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

Capaian Pembelajaran
• Memahami intent sebagai object komunikasi message activity
• Memahami cara menjalankan activity dari suatu activity
• Memahami cara mengirim parameter data dari suatu activity ke
activity yang dijalankan (dipanggil) dengan menggunakan intent
• Memahami cara membuat komunikasi antar activity yang dijalankan
(dipanggil) dengan activity yang menjalankan (memanggil)
• Mampu membuat aplikasi multi activities yang dapat saling
komunikasi

Intent dan Activity
Pemahaman Tentang Intent

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


Intent
• Intent Android merupakan suatu object yang
membawa suatu intent, sebagai contoh;
message dari satu komponen ke komponen lain
atau message dari suatu komponen ke
komponen lain diluar aplikasi.
• Intent dapat mengkomunikasikan message di
antara salah satu dari tiga komponen suatu
aplikasi, yaitu;
▫ activity,
▫ Service,
▫ broadcast receiver.

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

Intent
• Intent adalah obyek yang menyediakan
runtime

yang
mengaitkan
antara
komponen terpisah (misal; dua activity).
• Intent merepresentasikan suatu aplikasi
“untuk tujuan melakukan sesuatu."
• Kita dapat menggunakan intent untuk
berbagai macam pekerjaan, salah satunya
untuk menjalankan activity.

Menjalankan Activity
Menjalankan Activity dan Mengirim Data Melalui
Parameter

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

Menjalankan (Memanggil) Activity
Persiapan activity yang menjalankan activity lain
• Untuk menjalankan activity dari suatu activity beberapa tahapan

dilakukan (misal; MainActivity menjalankan Activity2):
1.Persiapkan MainActivity (pemanggil) dengan salah satu
widget sebagai trigger pemanggil (misal; Button)
Nama Class
Activity yang
2.Pada widget trigger;
akan dipanggil
a. Buat object Intent
Intent intent = new Intent(this, Activity2.class);
b. Siapkan parameter yang ingin dikirim ke Activity2 yang akan
dijalankan (dipanggil).
intent.putExtra(“parNama", "Augury El Rayeb");

Nama parameter yang akan
dikirim

Nilai parameter yang akan
dikirim

intent.putExtra(“parUsia", 45);

c. Jalankan intent (untuk menjalankan Activity2).
startActivity(intent);

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

Menjalankan (Memanggil) Activity
Persiapan activity yang dijalankan (dipanggil)
• Activity yang dipanggil (misal; Activity2), akan menerima message
dari Activity pemanggil (misal; MainActivity), berikut adalah tahapan
untuk mengambil message dari pemanggil:
1. Pada Activity2 (method event onCreate);
a. Buat object Intent dengan method getIntent()
Intent ambilIntent = getIntent();
Object Intent dengan method

b. Siapkan variabel dengan
tipe sesuai tipe parameter yang ingin diambil.
getIntent()
Method utk mengambil parameter tipe

String

Nama
parameter

String strNama = ambilIntent.getStringExtra(“parNama“);

Method utk mengambil parameter tipe
int
int intUsia = ambilIntent.getIntExtra(“parUsia",-1);

Nama
parameter

Jika
c. Kaitkan variabel tersebut dengan widget (jika diperlukan) . parameter
tidak ada,
d. Untuk keluar, tambahkan instruksi finish() pada Button
maka bernilai


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

Menjalankan (Memanggil) Activity
Contoh: (MainActivity)
activity_main.
xml

MainActivity.ja
va
public
public void
void panggilActivity(View
panggilActivity(View view)
view) {{
Intent
Intent intent
intent == new
new Intent(this,
Intent(this, Activity2.class);

Activity2.class);
intent.putExtra(“parNama",
intent.putExtra(“parNama", "Augury
"Augury El
El Rayeb");
Rayeb");
intent.putExtra(“parUsia",
intent.putExtra(“parUsia", 45);
45);
startActivity(intent);
startActivity(intent);
}}

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

Menjalankan (Memanggil) Activity
Contoh: (Activity2)
Activity2.java
protected

protected void
void onCreate(Bundle
onCreate(Bundle savedInstanceState)
savedInstanceState) {{
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
setContentView(R.layout.activity_2);
TextView
TextView nama
nama == (TextView)
(TextView) findViewById(R.id.lblNama);
findViewById(R.id.lblNama);
TextView
TextView usia
usia == (TextView)
(TextView) findViewById(R.id.lblUsia);
findViewById(R.id.lblUsia);
Intent
Intent ambilIntent

ambilIntent == getIntent();
getIntent();
String
strNama
=
ambilIntent.getStringExtra(“parNama");
String strNama = ambilIntent.getStringExtra(“parNama");
int
int intUsia
intUsia == ambilIntent.getIntExtra(“parUsia",-1);
ambilIntent.getIntExtra(“parUsia",-1);
nama.setText("Nama:
nama.setText("Nama:
usia.setText("Usia:
usia.setText("Usia:

""
""

++

++

strNama);
strNama);
intUsia);
intUsia);

}}
public
public void
void selesai(View
selesai(View view)
view) {{
finish();
finish();
}}
activity_2.xml
activity_2.xml




Komunikasi Activity Dua
Arah

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

Komunikasi Activity Dua Arah
• Untuk melakukan komunikasi dua arah antar dua activity,
digunakan cara yang mirip dengan cara menjalankan (memanggil)
activity dari suatu activity dengan mengirimkan paramaeter.
• Perbedaannya adalah;
▫ Pemanggilan activity-nya dengan instruksi:
startActivityForResult(intent, NO_PERMINTAAN );

▫ Pada Activity pemanggil dibuat override terhadap method
onActivityResult() , dan lakukan pemeriksaan apakah respon sesuai
NO_PERMINTAAN pemeriksaan, dan lakukan pemeriksaan RESULT_OK
(keluar dari activity yang dipanggil bukan karena tombol back).
▫ Pada Activity yang dipanggil tambahkan button untuk exit, dan
sebelum instruksi finish(), siapkan parameter yang ingin dikirim
balik ke activity pemanggil dan tambahkan isntruksi setResult() .

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

Komunikasi Activity Dua Arah
Persiapan activity yang menjalankan activity lain
• Untuk menjalankan activity dari suatu activity dengan
komuniasi dua arah, beberapa tahapan dilakukan (misal;
MainActivity menjalankan Activity2):
1.Persiapkan MainActivity (pemanggil) dengan salah satu
widget sebagai trigger pemanggil (misal; Button)
Nama Class
Activity yang
2.Pada widget trigger;
akan dipanggil
a. Buat object Intent
Intent intent = new Intent(this, Activity2.class);

b.Siapkan parameter yang ingin dikirim ke Activity2 yang
akan dijalankan (dipanggil).
intent.putExtra(“parNama", "Augury El Rayeb");
Nama parameter yang akan
dikirim

intent.putExtra(“parUsia", 45);

Nilai parameter yang akan
dikirim

c. Jalankan intent (untuk menjalankan Activity2).
startActivityForResult(intent, NO_PERMINTAAN );

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

Komunikasi Activity Dua Arah
Persiapan activity yang menjalankan activity lain
3.Override terhadap method onActivityResult() pada
Activity pemanggil.
Isi method dengan intstruksi untuk memeriksa
Memeriksa
apakah respon sesuai
respon dan mengambil nilai
respon;
dengan nomor permintaaan yang
kita buat
Memeriksa apakah activity yang
dipanggil ditutup dengan instruksi
finish()

if(requestCode==NO_PERMINTAAN) {
if(resultCode==RESULT_OK) {
String hasilPeriksa = data.getStringExtra("parStatus");
status.setText(hasilPeriksa);
}
else { // kalau pengguna menekan tombol back pada device
status.setText("Anda menekan tombol back pada device");
}
Area ini dijalankan kalau user
}
menutup activity dengan
menekan tombol back

Mengambil
parameter
yang dikirim
Activity yang
dipanggil

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

Menjalankan (Memanggil) Activity
Persiapan activity yang dijalankan (dipanggil)
• Activity yang dipanggil (misal; Activity2), akan menerima message dari
Activity pemanggil (misal; MainActivity), berikut adalah tahapan untuk
mengambil message dari pemanggil:
1. Pada Activity2 (method event onCreate);
a. Buat object Intent dengan method getIntent()
Intent ambilIntent = getIntent();
Object Intent dengan method
dengan
tipe sesuai tipe parameter
getIntent()

b. Siapkan variabel
diambil.
Method utk mengambil parameter tipe
String

yang ingin
Nama
parameter

Jika
parameter
tidak ada,
int intUsia = ambilIntent.getIntExtra("usia",-1);
maka bernilai
c. Kaitkan variabel tersebut dengan widget (jika diperlukan)-1
.

Method utk
mengambil
parameter tipe
Nama
String
strNama=ambilIntent.getStringExtra("nama");
int
parameter

d. Untuk keluar, tambahkan Button dan siapkan parameter balasan (jika
diperlukan), instruksi setResult() , dan instruksi finish() pada Button.

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

Menjalankan (Memanggil) Activity
Contoh: (MainActivity)
activity_main.
xml


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

Menjalankan (Memanggil) Activity
Contoh: (MainActivity)
MainActivity.ja
va
public
public void
void panggilActivity(View
panggilActivity(View view)
view) {{
Intent
Intent panggil
panggil == new
new Intent(this,
Intent(this, Activity2.class);
Activity2.class);
panggil.putExtra("nama",
"Augury
El
panggil.putExtra("nama", "Augury El Rayeb");
Rayeb");
panggil.putExtra("usia",
45);
panggil.putExtra("usia", 45);
startActivityForResult(panggil,
startActivityForResult(panggil, 23);
23); //NO_PERMINTAAN=23
//NO_PERMINTAAN=23
}}

@Override
@Override
protected
protected void
void onActivityResult(int
onActivityResult(int requestCode,
requestCode, int
int resultCode,
resultCode, Intent
Intent data)
data) {{
super.onActivityResult(requestCode,
super.onActivityResult(requestCode, resultCode,
resultCode, data);
data);
if(requestCode==23)
{
if(requestCode==23) {
if(resultCode==RESULT_OK)
if(resultCode==RESULT_OK) {{
String
String strResponActivity2
strResponActivity2 == data.getStringExtra("parRespon");
data.getStringExtra("parRespon");
teksRespon.setText(strResponActivity2);
teksRespon.setText(strResponActivity2);
}}
else
else {{
teksRespon.setText("Maaf
teksRespon.setText("Maaf Anda
Anda telah
telah menekan
menekan tombol
tombol back
back pada
pada device");
device");
}}
}}
}}

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

Menjalankan (Memanggil) Activity
Contoh: (Activity2)
Activity2.jav
Activity2.jav
protected
protected void
void onCreate(Bundle
onCreate(Bundle savedInstanceState)
savedInstanceState) {{
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
setContentView(R.layout.activity_2);

a
a

TextView
TextView nama
nama == (TextView)
(TextView) findViewById(R.id.lblNama);
findViewById(R.id.lblNama);
TextView
usia
=
(TextView)
findViewById(R.id.lblUsia);
TextView usia = (TextView) findViewById(R.id.lblUsia);
Intent
Intent ambilIntent
ambilIntent == getIntent();
getIntent();
String
strNama
=
ambilIntent.getStringExtra("nama").toString();
String strNama = ambilIntent.getStringExtra("nama").toString();
int
int intUsia
intUsia == ambilIntent.getIntExtra("usia",-1);
ambilIntent.getIntExtra("usia",-1);

}}

nama.setText("Nama:
nama.setText("Nama: "" ++ strNama);
strNama);
usia.setText("Usia:
"
+
intUsia);
usia.setText("Usia: " + intUsia);

public
public void
void selesai(View
selesai(View view)
view) {{
Intent
Intent kirimRespon
kirimRespon == new
new Intent();
Intent();
activity_2.
kirimRespon.putExtra("parRespon",
activity_2.
kirimRespon.putExtra("parRespon", "Data
"Data sudah
sudah di
di proses");
proses");
setResult(RESULT_OK,
xml
setResult(RESULT_OK, kirimRespon);
kirimRespon);
xml
finish();


Contoh Penerapan
Penerapan Intent pada Komunikasi Activity untuk
Login

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

Terima Kasih

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

Referensi
• Android Tutorial: Simply Easy Learning by
tutorialspoint.com
• developer.android.com – Basics Training
https://developer.android.com/training/basics/firstapp/starting-activity.html

• TheNewBoston YouTube Playlist: Android App
Development for Beginners Playlist.
https://
www.youtube.com/watch?v=NMDPxN8FgXM&list=PL6gx4Cwl9DGBsvRxJJOzG4r4k_zLKrnxl&index=9

• tutorialspoint.com – Event Handling
https://www.tutorialspoint.com/android/android_event_handling.htm