Anda di halaman 1dari 12

Modul 2 : Intent

Pendahuluan
Modul ini dibuat untuk rekan developer sekalian di Indonesia yang ingin memulai untuk
mempelajari cara membuat aplikasi mobile berbasis Android. Modul ini dibuat oleh Sidiq Permana,
Google Developer Expert, sekaligus Intel Android Software Innovator dan pencetus Developer
Mengajar. Modul ini hadir atas kerjasama Dicoding dan Intel. Apabila anda ingin
mempelajari lebih lanjut mengenai Intel dan Android, anda dapat mengakses Intel Developer
Zone.

Aplikasi yang dibuat dengan Android bisa dihasilkan dari penggunaan berbagai cara, misalnya
dengan Builder (AppInventor), HTML5+CSS3+JS (Phonegap, Intel XDK, Sencha), Native
(Eclipse, Android Studio), dan lain-lain. Salah satu tools yang disarankan oleh google adalah
menggunakan Android Studio, seperti yang digunakan pada modul ini.
Semoga modul ini dapat bermanfaat bagi rekan sekalian dan Selamat Berkarya!

Referensi
Android Application Development Guide (http://developer.android.com/guide/index.html)
Android Application Development Training
(http://developer.android.com/training/index.html)
Buku : Professional Android 4 Application Development by Reto Meier (PA4AD)

Review Komponen Aplikasi


Pada modul sebelumnya, telah dibahas penggunaan activity dan fragment sebagai bagian dari
komponen pemrograman Aplikasi Android. Modul ini akan membahas intent sebagai sebuah
metode perpindahan dari sebuah activity ke activity lain.
Komponen
Halaman
UI komponen
Logic
Berpindah halaman

Intent

Web
Page
HTML, CSS
PHP, ASP, JSP, RUBY etc
Tag (Hyperlink)

Android
Activity dan Fr
XML
Java
Intent

Intent adalah mekanisme untuk melakukan Action pada komponen dalam satu aplikasi yang
sama maupun aplikasi lain. Pemanfaatannya sebagai berikut :
Untuk berpindah halaman dari satu Activity ke Activity lain dengan atau tanpa data
Untuk menjalankan background Service misal dibutuhkan sebuah proses service
untuk mengambil lokasi pengguna, download file atau sikronisasi ke server
Untuk menyampaikan sebuah objek dari komponen Broadcast misal jika ingin
mengetahui jika device Android sudah selesai booting setelah diaktifkan

Explicit dan Implicit Intent


Explicit Intent
Untuk mengaktifkan komponen-komponen dalam satu aplikasi yang sama misal :
Berpindah Activity atau mengaktifkan service untuk mendownload file secara
background
Implicit Intent
Untuk mengaktikan komponen dari aplikasi lain. Misal : mengaktifkan dial phone
pada aplikasi Telp, mengaktifkan driving direction pada Google Maps atau
mengirimkan pesan via Gmail, sms atau aplikasi lainnya.

Ilustrasi
Ilustrasi bagaimana Intent mengaktifkan Activity pada aplikasi lain.
1. Activity A membuat Intent untuk melakukan sebuah Action dengan data object yang ada.
2. Sistem Android akan mencari aplikasi yang cocok Berdasarkan Intent filter
3. Activity pada aplikasi yang cocok akan ditampilkan.

Baca lebih lanjut : http://developer.android.com/guide/components/intents-filters.html atau


PA4AD : Page 166 s/d 172

Practice Session #2 :
Pengembangan Aplikasi Hitung Luas untuk Implementasi Activity pada Pengembangan
Aplikasi Android
1. Buat Project dengan Start a new Android Studio Project

2. Lalu isikan Application Name dengan Sample_Intent dan Company domain dengan nama yang
kamu mau, kemudian Klik Next dan Hingga Finish. Biarkan gradle menggenerate project kita.

3. Pada activity_main.xml (folder res/layout) silakan ketikan kode seperti dibawah ini, untuk
menghasilkan layout. Anda bisa membuat layout dengan sistem drag-n-drop apabila dikehendaki.
app\src\main\res\layout\activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_activity_sub_1"
android:text="Ke Activity Sub 1"
android:layout_marginBottom="8dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_activity_sub_2"
android:text="Ke Activity Sub 2"
android:layout_marginBottom="8dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_activity_dial"
android:text="Ke Activity Dial"
android:layout_marginBottom="8dp"/>
</LinearLayout>

4. Membuat Activity baru dengan cara pada Package utama (bukan yang ada AndroidTest)

silakan klik kanan -> New -> Activity -> Blank Activity seperti dibawah ini:

Lalu beri Nama Sub1Activity

5. Edit Sub1Activity pada berkas activity_sub1.xml (folder res/layout), sebagai berikut:


app\src\main\res\layout\activity_sub1.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="matc
1
h_parent"
2
3
android:layout_height="match_parent" android:paddingLeft="@dimen/activit
4
y_horizontal_margin"
5
android:paddingRight="@dimen/activity_horizontal_margin"
6
android:paddingTop="@dimen/activity_vertical_margin"
7
android:paddingBottom="@dimen/activity_vertical_margin"
8
tools:context="com.nbs.app.sample_intent.Sub1Activity">
9
10
<TextView android:text="Halo Ini Sub Activity
11
1" android:layout_width="wrap_content"
12
android:layout_height="wrap_content" />
</RelativeLayout>
Pada Sub1Activity, hanya menampilkan teks dan tidak mengharapkan data masukan apapun.

6. Ulangi langkah nomor 4 untuk membuat Sub2Activity, dan Edit pada berkas activity_sub2.xml
(folder res/layout), sebagai berikut:
app\src\main\res\layout\activity_sub2.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.nbs.app.sample_intent.Sub2Activity">

1
2
3
4
5
6
7
8
9
10
<TextView android:text="Data yang dikirim"
11 android:layout_width="wrap_content"
12
android:layout_height="wrap_content"
13
android:id="@+id/txt_data"/>
</RelativeLayout>

Pada Sub2Activity, teks yang ditampikan akan berasal dari masukan/kiriman activity sebelumnya.
Untuk itu kita juga perlu mengedit file Sub2Activity.java untuk memastikan data diterima dengan
benar.
app\src\main\java\com\nbs\app\sampleintent\Sub2Activity.java
package com.nbs.app.sample_intent;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class Sub2Activity extends AppCompatActivity

public static String KEY_DATA = "data";


private String receivedData = null;
private TextView txtData;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub2);

txtData = (TextView)findViewById(R.id.txt_data);
receivedData = getIntent().getStringExtra(KEY_DATA);
txtData.setText(receivedData);
}
}

7. Edit MainActivity.java untuk implementasi perpindahan Activity dengan atau tanpa data atau
mengaktifkan aplikasi lain. Dalam case ini adalah dial phone. Pastikan mengganti nomor telepon
menjadi nomor telepon anda pada saat memanggil intent dialer.
package com.nbs.app.sample_intent;
import
import
import
import
import
import

android.content.Intent;
android.net.Uri;
android.support.v7.app.AppCompatActivity;
android.os.Bundle;
android.view.View;
android.widget.Button;

public class MainActivity extends AppCompatActivity


{
private Button btnSub1, btnSub2, btnDial;
@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSub1 = (Button)findViewById(R.id.btn_activity_sub_1);
btnSub2 = (Button)findViewById(R.id.btn_activity_sub_2);
btnDial = (Button)findViewById(R.id.btn_activity_dial);
btnSub1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Sub1Activity.class);
startActivity(intent);
}
});
btnSub2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Sub2Activity.class);
intent.putExtra(Sub2Activity.KEY_DATA, "Training Aplikasi Android");
startActivityForResult(intent, 0);
}
});
btnDial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:082121212093"));
startActivity(intent);
}
});
}
}

8. Silakan Run dengan tombol Run ke emulator atau device atau export ke apk untuk instal secara
manual di device. Tampilan hasil apps adalah sebagai berikut.

Kiri atas : Tampilan Aplikasi ketika dibuka


Kanan Atas : Tampilan Aplikasi ketika diklik SubActivity1
Kiri Bawah : Tampilan Aplikasi ketika diklik SubActivity2

Kanan Bawah : Tampilan Aplikasi ketika diklik Dialer, membuka dialer yang ditunjuk (Misalnya
Hangout Dialer)

Anda mungkin juga menyukai