Anda di halaman 1dari 32

i

PEMROGRAMAN MOBILE ANDROID DENGAN JAVA

DESEMBER 2020

Penulis: Erma Susanti

HAK CIPTA DILINDUNGI UNDANG-UNDANG

ii
Erma Susanti Modul 2. Komponen-komponen Dasar Android
24
BAB 2.

KOMPONEN DASAR APLIKASI ANDROID


(ACTIVITY, INTENT, FRAGMENT)

Kompetensi:

Setelah membaca pokok bahasan ini, mahasiswa diharapkan mampu:

1. Memahami tentang komponen-komponen dasar aplikasi


Android.
2. Menjelaskan tentang Activity dan mempraktekkan pembuatan
activity.
3. Menjelaskan tentang intent (explicit dan implicit) dan
mempraktekkan pembuatan intent.
4. Menjelaskan tentang fragment dan mempraktekkan pembuatan
fragment.
5. Memahami tentang mengirim dan menerima data antar Activity.

2.1. Activity

Activity adalah sebuah komponen aplikasi yang merepresentasikan


sebuah window (jendela) atau satu hierarki view. Secara umum mengisi
sebuah screen, tetapi juga dapat ditambahkan pada Activity lain atau
muncul sebagai floating window. Activity merupakan sebuah class
Java, satu Activity adalah satu file java. Activity dapat

Erma Susanti Modul 2. Komponen-komponen Dasar Android


25
merepresentasikan sebuah Activity seperti memesan kopi, mengirim
email, mendapatkan arah, dan lain-lain. Activity dapat menangani
interaksi pengguna, seperti button click, text entry, atau login
verification. Activity memiliki life cycle yang terdiri dari is created,
started, runs, is paused, resumed, stopped, dan destroyed. Activity
pertama pengguna disebut dengan “main activity”. Activity dapat
diorganisasikan dalam hubungan parent-child dalam Android manifest.
Gambar 13 berikut merupakan contoh activity. Activity secara umum
mempunyai UI layout. Layout biasanya didefiniskan dalam satu atau
lebih file XML. Activity meng “inflates” layout sebagai bagian dari
pembuatan activity.

Gambar 13. Contoh Activity

Apa itu Activity?

1. Sebuah komponen Android yang berfungsi untuk menampilkan


user interface (antarmuka) ke layar Android dari pengguna
aplikasi.

Erma Susanti Modul 2. Komponen-komponen Dasar Android


26
2. Dalam sebuah aplikasi umunya terdapat lebih dari satu activity
yang saling terhubung dan memiliki tugas yang berbeda-beda.

3. Activity memiliki life cycle (daur hidup) dalam sebuah stack


(tumpukan) pada virtual sandbox yang disediakan oleh Dalvik
Virtual Machine (DVM) atau Android Runtime (ART) yang bersifat
LIFO (Last in First Out). Activity bisa dikatakan merupakan salah
satu komponen penting dalam Android.

4. Activity pada implementasinya selalu memiliki satu layout user


interface dalam bentuk file xml.

5. Sebuah aplikasi Android minimal memiliki sebuah activity atau


dapat memiliki lebih dari satu activity dan harus didaftarkan dalam
AndroidManifest.xml sebagai sub aplikasi.

6. Sebuah activity adalah sebuah class Java yang mewarisi dari


superclass Activity (extends Activity). Activity juga dapat
dikatakan merupakan inheritance dari superclass Activity atau
turunan dari class AppCompatActivity atau FragmentActivity.

Activity Life Cycle

Activity memiliki daur hidup atau life cycle mulai dari diciptakan sampai
dihapus dari memori.

onCreate (Bundle Metode ini bertanggung jawab untuk


storedInstanceState) membuat aktivitas saat pertama kali
melakukan atau meluncurkan Activity call.

Erma Susanti Modul 2. Komponen-komponen Dasar Android


27
onStart () Metode ini dipanggil saat aktivitas terlihat
oleh pengguna.

onResume () Metode ini dipanggil saat pengguna


berinteraksi dengan aktivitas.

onPause () Metode ini dipanggil saat sistem akan mulai


melanjutkan aktivitas sebelumnya.

onStop () Metode ini dipanggil saat aktivitas tidak lagi


terlihat oleh pengguna, karena aktivitas lain
telah dilanjutkan dan menutupi aktivitas ini.

onRestart () Metode ini dipanggil setelah aktivitas


dihentikan, sebelum dimulai lagi.

onDestroy () Metode ini adalah panggilan terakhir saat


aktivitas akan dimusnahkan.

Activity memiliki daur hidup atau life cycle seperti pada Gambar 14.

Erma Susanti Modul 2. Komponen-komponen Dasar Android


28
Gambar 14. Activity Life Cycle
https://developer.android.com/guide/components/images/activity_lifecycle.p
ng

Keterangan:

- Activity diluncurkan atau dibuka bersamaan dengan dipanggil


atau dieksekusinya method onCreate() yang bertanggung jawab
untuk membuat kegiatan atau alarm,

Erma Susanti Modul 2. Komponen-komponen Dasar Android


29
- Activity sudah terlihat oleh user kemudian method onStart()
dipanggil atau dieksekusi dimana berfungsi untuk memulai
kegiatan yang telah dibuat pada method onCreate(),
- onResume() akan dipanggil saat pengguna berinteraksi dengan
kegitan yang dimulai tadi,
- Activity berjalan, kemudian Activity lain tampil terlihat oleh user,
maka akan memanggil method onPause() dimana sistem akan
menghentikan sementara kegitan yang dikerjakan, ada 3 method
yang dapat dipanggil berdasarkan beberapa kondisi dan apa
yang akan terjadi pada kegiatan sebelumnya,
o Apabila pengguna kembali ke kegiatan sebelumnya maka
method onResume() akan dipanggil dan melanjutkan
kegiatan yang dilakukan sebelumnya,
o Apabila kegiatan tidak lagi terlihat maka akan memanggil
method onStop() dimana sistem akan menghentikan
kegiatan yang sebelumnya dilakukan,
o Apabila aplikasi membutuhkan prioritas memori yang lebih
tinggi maka terjadi proses penghentian aplikasi secara
paksa dan pengguna akan diarahkan ke proses awal
pembuatan kegiatan pada method onCreate(),
- Method onStop() dijalankan apabila saat method onPause()
mengalami kondisi dimana kegiatan tidak lagi terlihat, adapun
kegiatan atau method yang dipanggil setelah method onStop()
dengan beberapa kondisi,
- User atau pengguna mengarah ke kegiatan sebelumnya
sehingga method onRestart() dipanggil, digunakan untuk
mengulang kembali kegiatan sebelumnya yang telah berhenti,

Erma Susanti Modul 2. Komponen-komponen Dasar Android


30
dan kemudian kembali ke method onStart() untuk memulai
kegiatan yang sama seperti sebelumnya,
- Kegiatan sebelumnya telah selesai atau dihancurkan oleh sistem,
maka method yang dipanggil adalh onDestroy(), method terakhir
yang dipanggil untuk memusnahkan kegiatan yang dibuat
sebelumnya,
- Apabila aplikasi membutuhkan prioritas memori yang lebih tinggi
maka terjadi proses penghentian aplikasi secara paksa dan
pengguna akan diarahkan ke proses awal pembuatan kegiatan
pada method onCreate(),
- Method onDestroy merupakan method terakhir yang dipanggil
untuk menghancurkan atau menghilangkan kegiatan yang dibuat,
setelah method onDestroy() selesai dieksekusi kemudian Actvity
akan dimatikan atau dihentikan

Cara Mengimplementasikan Activity

1. Definisikan layout dalam XML

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/andro
id"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Belajar Membuat Activity" />
</RelativeLayout>

2. Definisikan Activity Java Class dengan extends


AppCompatActivity

Erma Susanti Modul 2. Komponen-komponen Dasar Android


31
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
}

3. Hubungkan Activity dengan Layout dengan SetContentView dalam


method onCreate()

public class Test extends AppCompatActivity {


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

4. Deklarasikan Activity dalam Android Manifest

<activity android:name=".MainActivity">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />

<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

Erma Susanti Modul 2. Komponen-komponen Dasar Android


32
Video-4 Membuat Activity dengan LinearLayout

https://youtu.be/gFOL36Sfqhk

Erma Susanti Modul 2. Komponen-komponen Dasar Android


33
Video-5 Membuat Activity dengan Inputan

https://youtu.be/NEyeIMpdgSo

Erma Susanti Modul 2. Komponen-komponen Dasar Android


34
2.2. Intent

Komponen dasar aplikasi Android yang sangat penting adalah Intent.


Intent merupakan suatu cara untuk melakukan sebuah action (aksi) dan
komunikasi antar komponen aplikasi. Komponen-komponen aplikasi
dapat terdiri dari activity, services, dan broadcast receiver. Ada
beberapa kegunaan umum intent dalam aplikasi Android yaitu antara
lain:

1. Berpindah dari satu activity ke activity lainnya dengan atau tidak


membawa data.

2. Untuk menjalankan background service, seperti melakukan


sinkronisasi ke server dan menjalankan proses berulang (periodic
scheduler task).

3. Mengirimkan obyek broadcast ke aplikasi yang membutuhkan.


Contoh, aplikasi harus bisa menerima obyek broadcast yang
dikirimkan oleh sistem Android, saat aplikasi membutuhkan
proses menjalankan sebuah background service setiap kali
aplikasi selesai melakukan booting.

Intent terdiri dari 2 jenis yaitu:

1. Explicit Intent
Explicit Intent memulai Activity dari class tertentu. Tipe Intent ini
digunakan untuk menjalankan komponen dari dalam sebuah
aplikasi. Explicit Intent dalam bekerja langsung menggunakan
atau menyebutkan nama kelas yang dituju.

Erma Susanti Modul 2. Komponen-komponen Dasar Android


35
2. Implicit Intent
Implicit Intent meminta sistem untuk menemukan sebuah class
Activity dengan sebuah registered handler yang dapat menangani
request (permintaan). Tipe intent ini tidak memerlukan detail
nama kelas yang ingin diaktifkan, seringkali digunakan untuk
menjalankan fitur/fungsi dari komponen aplikasi lain. Pada intent
ini dapat menerima request intent dari aplikasi lain.

Implicit Intent

Memulai Activity di aplikasi lain dengan mendeskripsikan aksi yang


ingin dilakukan, seperti “share sebuah artikel”, “view sebuah map”, atau
“ambil gambar”. Selain itu Implicit Intent juga dapat menentukan
tindakan dan secara opsional menyediakan data dengan melakukan
aksi tertentu. Pada Implicit Intent tidak perlu menentukan target class,
cukup aksi yang akan dilakukan. Android Runtime akan mencocokkan
request dari implicit intent dengan registered intent handlers. Jika ada
beberapa kecocokan, maka App Chooser akan membuka.

Bagaimana implicit intent bekerja?

1. Android Runtime menyimpan daftar Aplikasi yang terdaftar


2. Aplikasi harus terdaftar di AndroidManifest.xml
3. Runtime menerima request dan mencari kecocokan
4. Android runtime menggunakan Intent filter untuk pencocokan
5. Jika lebih dari satu kecocokan, tunjukkan daftar kemungkinan
kecocokan dan biarkan pengguna memilih salah satu
6. Android runtime memulai activity yang diminta.

Erma Susanti Modul 2. Komponen-komponen Dasar Android


36
Saat Android runtime menemukan multiple registered activity maka
dapat menangani sebuah implicit intent, akan ditampilkan sebuah App
Chooser seperti pada Gambar 15 untuk mengizinkan pengguna untuk
memilih.

Gambar 15. App Choser

Cara mengirim Implicit Intent

1. Buat sebuah Intent untuk sebuah aksi

Intent intent = new Intent(Intent.ACTION_CALL_BUTTON);

2. Mulai Activity

if (intent.resolveActivity(getPackageManager()) !=
null) {
startActivity(intent);
}

Cara mengirim Implicit Intent dengan data URI

1. Buat intent untuk aksi

Intent intent = new Intent(Intent.ACTION_DIAL);

2. Sediakan data sebagai URI

intent.setData(Uri.parse("tel:8005551234"));

3. Mulai Activity

if (intent.resolveActivity(getPackageManager()) !=
null) {

Erma Susanti Modul 2. Komponen-komponen Dasar Android


37
startActivity(intent);
}

Cara membuat sebuah URI dari sebuah string menggunakan


Uri.parse(String uri)

Uri.parse("tel:8005551234");
Uri.parse("geo:0,0?q=brooklyn%20bridge%2C%20brooklyn%2C
%20ny");
Uri.parse("http://www.android.com");

Contoh-contoh Implicit Intent

1. Menampilkan halaman web

Uri uri = Uri.parse("http://www.google.com");


Intent it = new Intent(Intent.ACTION_VIEW,uri);
startActivity(it);

2. Dial phone number

Uri uri = Uri.parse("tel:8005551234");


Intent it = new Intent(Intent.ACTION_DIAL, uri);
startActivity(it);

Cara Mengirim Implicit Intent dengan extras

1. Membuat sebuah Intent untuk aksi

Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);

2. Put extras

String query = edittext.getText().toString();


intent.putExtra(SearchManager.QUERY, query));

3. Start Activity (mulai Activity)

if (intent.resolveActivity(getPackageManager()) !=
null) {
startActivity(intent);
}

Erma Susanti Modul 2. Komponen-komponen Dasar Android


38
Explicit Intent

Untuk membuat Activity menggunakan Explicit Intent

1. Buat Intent

Intent intent = new Intent(this, ActivityName.class);

2. Gunakan Intent untuk memulai Activity

startActivity(intent);

Contoh Explicit Intent

Intent sederhana (berpindah dari satu activity ke activity lain)

Intent moveIntent = new Intent(MainActivity.this,


MoveActivity.class);
startActivity(moveIntent);

Intent untuk membawa data ke activity tujuan (berpindah dari satu


activity ke activity lain dengan membawa data)

Intent moveWithDataIntent = new


Intent(MainActivity.this, MoveWithDataActivity.class);
moveWithDataIntent.putExtra(MoveWithDataActivity.EXTRA_
NAME, "Erma Susanti");
moveWithDataIntent.putExtra(MoveWithDataActivity.EXTRA_
AGE, 25);
startActivity(moveWithDataIntent);

Cara ambil nilai data berdasarkan key

String name = getIntent().getStringExtra(EXTRA_NAME);


int age = getIntent().getIntExtra(EXTRA_AGE, 0);

Erma Susanti Modul 2. Komponen-komponen Dasar Android


39
Video-6 Explicit Intent dan Implicit Intent

https://youtu.be/eNCSgwKiD0s

Erma Susanti Modul 2. Komponen-komponen Dasar Android


40
2.3. Fragment

Apa itu Fragment?

1. Komponen yang memiliki fungsi untuk menampilkan antarmuka


ke pengguna melalui activity dengan memiliki layout xml sendiri.

2. Sama seperti activity juga memiliki life cycle (daur hidup) sendiri
dan bergantung penuh pada life cycle activity dimana ia
ditanamkan.

3. Fragment berguna agar tampilan aplikasi menjadi fleksibel dan


reusable (dapat digunakan kembali).

4. Dalam satu activity dapat memiliki lebih dari satu fragment.

5. Fragment tidak perlu didaftarkan ke dalam


file AndroidManifest.xml.

6. Sebuah class Java disebut sebagai fragment, saat kelas tersebut


meng-extends (inheritance) kelas Fragment.

7. Fragment bersifat kompatibel sampai dengan versi Gingerbread,


Android api level 10.

8. Analogi yang mirip dengan konsep fragment pada platform lain


adalah penggunaan komponen iframe pada aplikasi
berbasis web.

Fragment LifeCycle

Fragment seperti halnya activity memiliki life cycle. Gambar 16 berikut


merupakan life cycle dari fragment.
Erma Susanti Modul 2. Komponen-komponen Dasar Android
41
Gambar 16. Fragment Life Cycle
(https://developer.android.com/images/guide/fragments/fragment-view-
lifecycle.png?authuser=1)

Keterangan:

Resumed
Fragment bisa dilihat ketika activity sedang berjalan.

Erma Susanti Modul 2. Komponen-komponen Dasar Android


42
Paused
Paused terjadi saat activity lain menutupi sebagian activity dimana
fragment ditambahkan, sehingga masih ada bagian activity yang bisa
dilihat di layar. Ini terjadi ketika activity tidak tertutup sepenuhnya oleh
activity lain.

Stopped
Ketika fragment tidak terlihat di layer, ini dapat terjadi karena activity
dimana fragment ditambahkan berhenti atau bahkan sudah dihapus
dari activity. Saat terjadi kondisi ini fragment masih hidup dengan
semua informasinya, tetapi sudah tidak terlihat di layar dan akan
dihancurkan.

Erma Susanti Modul 2. Komponen-komponen Dasar Android


43
Video-7 tentang Fragment

https://youtu.be/YyGhp82RVGE

Erma Susanti Modul 2. Komponen-komponen Dasar Android


44
2.4. Kirim Data Antar Activity

Cara Mengirim dan Menerima Data Antar Activity dengan Intent

Data merupakan satu bagian informasi yang lokasi datanya dapat


direpresentasikan oleh sebuah URI. Extras adalah satu atau beberapa
informasi dari koleksi pasangan key-value dalam sebuah Bundle.

Pada Activity pertama, untuk mengirim (sending) Activity:

1. Buat obyek Intent


2. Put data atau extras dalam Intent
Contoh URI sebagai intent data

// Contoh URI sebagai intent data


// A web page URL
intent.setData(
Uri.parse("http://www.google.com"));
// a Sample file URI
intent.setData(
Uri.fromFile(new File("/sdcard/sample.jpg")));

Contoh informasi dalam intent extras

1. putExtra(String name, int value)

intent.putExtra("level", 3);

2. putExtra(String name, String[] value)


String[] drinkList = {"Coffee", "Juice", "Boba"};
intent.putExtra("drink", drinkLIst);

3. putExtras(bundle);
Jika memiliki banyak data, maka pertama-tama buat
sebuah bundle dan lewatkan bundle tersebut.

Erma Susanti Modul 2. Komponen-komponen Dasar Android


45
3. Mulai Activity baru dengan startActivity()

Contoh sending data ke activity dengan extras

public static final String EXTRA_MESSAGE_KEY =


"com.example.android.twoactivities.extra.MESSAGE";
Intent intent = new Intent(this, SecondActivity.class);
String message = "Hello Activity!";
intent.putExtra(EXTRA_MESSAGE_KEY, message);
startActivity(intent);

Pada Activity kedua, untuk menerima (receiving) Activity:

1. Get obyek Intent


a. getData();
Uri locationUri = intent.getData();

Uri locationUri = intent.getData();

b. int getIntExtra (String name, int defaultValue)

int level = intent.getIntExtra("level", 0);

c. Bundle bundle = intent.getExtras();


Ambil semua data sekaligus sebagai sebuah bundle.
2. Retrieve data atau extras dari obyek Intent

Contoh

1. startActivityForResult

public static final int CHOOSE_DRINK_REQUEST = 1;


Intent intent = new Intent(this,
ChooseDrinkItemsActivity.class);
startActivityForResult(intent, CHOOSE_DRINK_REQUEST);

2. Return data dan finish activity kedua

Erma Susanti Modul 2. Komponen-komponen Dasar Android


46
// Create an intent
Intent replyIntent = new Intent();

// Put data untuk dikembalikan ke ekstra


replyIntent.putExtra(EXTRA_REPLY, reply);
// Set the activity's result to RESULT_OK
setResult(RESULT_OK, replyIntent);
// Finish the current activity
finish();

3. Implement onActivityResult()

public void onActivityResult(int requestCode, int


resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode,
data);
if (requestCode == TEXT_REQUEST) { // Identify
activity
if (resultCode == RESULT_OK) { // Activity
succeeded
String reply =
data.getStringExtra(SecondActivity.EXTRA_REPLY);
// … do something with the data
}
}
}

Erma Susanti Modul 2. Komponen-komponen Dasar Android


47
Video-7 Intent Explicit untuk mengirim dan menerima data
menggunakan Extra

https://youtu.be/ac8Ly8hiOH4

Erma Susanti Modul 2. Komponen-komponen Dasar Android


48
Video-8 Intent Explicit untuk mengirim dan menerima data
menggunakan Bundle

https://youtu.be/FhDn3EObJzY

Erma Susanti Modul 2. Komponen-komponen Dasar Android


49
Video-9 Intent Explicit untuk mengirim dan menerima data
menggunakan Parcelable

https://youtu.be/fzbVSjpkjtk

Erma Susanti Modul 2. Komponen-komponen Dasar Android


50
DAFTAR PUSTAKA

Developers, Google. https://developer.android.com/ (diakses


November 2020)

Developers, Google.
https://developers.google.com/certification/associate-android-
developer/study-guide (diakses November 2020)

Developers, Google. Android Developer Fundamental Version 2,


https://developer.android.com/courses/fundamentals-
training/overview-v2?authuser=1 (diakses November 2020)

Google Developer Training Team. 2016. Practical Workbook, Android


Developer Fundamentals Course Learn to develop Android
Applications, https://google-developer-training.github.io/android-
developer-fundamentals-course-concepts/idn/android-developer-
fundamentals-course-concepts-idn.pdf

Griffiths, Dawn & Griffiths, David, Head First Android Development,


2nd Edition, O’Reilly Media, Inc, 2017

Hamzah, Amir & Susanti, Erma. 2018. Modul Praktikum Pemrograman


Mobile dengan Android. AKPRIND PRESS.

Imaduddin, Ahmad & Permana, Sidiq. 2017. Menjadi Android


Developer Expert Seri Android Associate. Bandung. PT.
Presentalogics

145
Smyth, Neil. 2016. Android Studio Development Essentials – Android
7 Edition,
https://www.ebookfrenzy.com/pdf_previews/AndroidStudioEssenti
alsA7Preview.pdf

Susanti, Erma. 2017. https://ermaweb.com/2017/11/29/membuat-


project-firebase-realtime-database-crud-untuk-android-app/
(diakses November 2020)

146
147

Anda mungkin juga menyukai