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)
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
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.
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:
<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;
@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;
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.
Kanan Bawah : Tampilan Aplikasi ketika diklik Dialer, membuka dialer yang ditunjuk (Misalnya
Hangout Dialer)