Anda di halaman 1dari 9

Module II.

Konsep Activity dan Intent

A. Tujuan
Agar mahasiswa dapat memahami konsep Activity dan Intent dalam android.
B. Bahan
1. Software Android Studio
2. Koneksi Internet
3. Smartphone
C. Teori
Activity dan Intent
Komponen utama yang penting dan sangat vital pada android adalah
penggunaan Activity dan Intent. Dua komponen itu adalah element basic yang
ada di aplikasi Android.
Activity diibaratkan sebagai satu buah halaman/screen. Aplikasi Android bisa
mempunyai lebih dari satu Activity untuk menampilkan berbagai macam
screens/halaman. Contohnya satu Activity untuk menampilkan
halaman Settings, Activity lainnya untuk menampilkan halaman About, lainnya
menampilkan Main Menu dan seterusnya.
Intent adalah object yang digunakan mengirim pesan antar komponen di
Android.. Dengan bantuan intent, komponen bisa meminta fungsional dari
komponen lain. Intent juga membantu mengkomunikasikan bagian dari sebuah
aplikasi; perpindahan dari satu layar (aktifitas) ke layar lain.
Semua komponen (aplikasi dan layar) dari perangkat Android itu terisolasi satu
sama lain. Satu-satunya cara mereka bisa berkomunikasi adalah dengan
menggunakan intent.
Jenis Intent
Android mendukung dua jenis intent: eksplisit dan implisit. Ketika aplikasi
menentukan komponen target dalam sebuah intent, itu adalah intent eksplisit.
Saat aplikasi tidak menentukan target komponen, itu adalah intent implisit.
Contoh Intent Eksplisit

Intent numbersIntent =
new Intent(MainActivity.this,NumbersActivity.class);

startActivity(numbersIntent);
Di sini, NumbersActivity adalah target komponen dari MainActivity. Ini
artinya NumbersActivity adalah komponen yang akan dipanggil oleh Android.
Contoh Intent Implisit

Intent intent = new Intent(Intent.ACTION_VIEW,


Uri.parse("http://www.unair.ac.id"));
startActivity(intent);

Disini, aplikasi android memanggil komponen browser untuk URL tertentu


menggunakan intent.
Tapi bagaimana sistem Android mengenali komponen mana yang bisa bereaksi
atas suatu intent? Sebuah komponen bisa didaftarkan melalui intent filter untuk
aksi spesifik. Intent filter bisa didaftarkan untuk komponen secara statis
pada AndroidManifest.xml. Berikut adalah contoh yang mendaftarkan sebuah
komponen sebagai web viewer:

<activity android:name=".BrowserActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http"/>
</intent-filter>
</activity>

D. Praktikum
Contoh01
Langkah I : Membuat Activity
Bukalah Android Studio dengan project baru menggunakan template Empty
Activity, maka dihasilkan file activity_main.xml di folder res/layout yang
berpasangan dengan file MainActivity.java di folder java/domainproject.
Selanjutnya buatlah activity baru menggunakan template Empty Activity dan
beri nama SubActivity, maka dihasilkan file activity_sub.xml di folder
res/layout yang berpasangan dengan file SubActivity.java di folder
java/domainproject.

Langkah II : Membuka file xml.


Bukalah file res/layout/activity_main.xml dan ketiklah code di bawah ini :
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="id.ac.unair.fst.si.modul2contoh01.MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="Halaman Utama"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:text="Button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />

</android.support.constraint.ConstraintLayout>

Bukalah file res/layout/activity_sub.xml dan ketiklah code di bawah ini :


<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="id.ac.unair.fst.si.modul2contoh01.SubActivity">

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="Sub Halaman"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Langkah III : Membuka file java


Bukalah file java/domainproject/MainActivity.java dan ketiklah code di bawah
ini :
package id.ac.unair.fst.si.modul2contoh01;

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

public class MainActivity extends AppCompatActivity {


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

//----------------- kode tambahan : mulai ----------------------

Button button = (Button) findViewById(R.id.button);


button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SubActivity.class);
startActivity(intent);
}
});

//----------------- kode tambahan : akhir ----------------------


}
}

File java/domainproject/SubActivity.java tidak ada perubahan code apapun


seperti tampak dibawah ini :
package id.ac.unair.fst.si.modul2contoh01;

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

public class SubActivity extends AppCompatActivity {

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

Perhatikan file manifests/AndroidManifest.xml, semua file java yang dilibatkan


dalam aplikasi akan terdaftar di file AndroidManifest.xml.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="id.ac.unair.fst.si.modul2contoh01">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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


</intent-filter>
</activity>
<activity android:name=".SubActivity"></activity>
</application>

</manifest>

Catatan :
Activity yang pertama kali dijalankan diberi tag
<action android:name="android.intent.action.MAIN" />
Seperti :
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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


</intent-filter>
</activity>

Contoh 2
Pada bagian ini, dibuat sebuah aplikasi kecil untuk mencoba kedua jenis intent.
Aplikasi tersebut akan memiliki form untuk mengisi nama pertama dan nama
terakhir. Saat tombol Submit diklik, kedua nilai akan diteruskan ke aktifitas
lain. Akan ada juga tombol untuk memanggil browser

Langkah I : Membuat Activity


Bukalah Android Studio dengan project baru menggunakan template Empty
Activity, maka dihasilkan file activity_main.xml di folder res/layout yang
berpasangan dengan file MainActivity.java di folder java/domainproject.
Selanjutnya buatlah activity baru menggunakan template Empty Activity dan
beri nama ShowActivity, maka dihasilkan file activity_show.xml di folder
res/layout yang berpasangan dengan file ShowActivity.java di folder
java/domainproject.

Langkah II : Membuka file xml


Bukalah file res/layout/activity_main.xml dan ketiklah code di bawah ini :
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_margin="16dp"
tools:context="com.unair.fst.taufik.Modul2Contoh02.MainActivity">
<TextView
android:id="@+id/first_name_view"
android:layout_width="wrap_content"
android:layout_height="19dp"
android:text="Enter first name"
app:layout_constraintTop_toTopOf="parent" />

<EditText
android:id="@+id/first_name_text"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:padding="8dp"
app:layout_constraintTop_toBottomOf="@+id/first_name_view"
tools:layout_editor_absoluteX="0dp" />

<TextView
android:id="@+id/last_name_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Enter last name"
app:layout_constraintTop_toBottomOf="@+id/first_name_text"
tools:layout_editor_absoluteX="0dp" />

<EditText
android:id="@+id/last_name_text"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:padding="8dp"
app:layout_constraintTop_toBottomOf="@+id/last_name_view"
tools:layout_editor_absoluteX="0dp" />

<Button
android:id="@+id/submit_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Submit"
app:layout_constraintTop_toBottomOf="@+id/last_name_text"
tools:layout_editor_absoluteX="0dp" />

<Button
android:id="@+id/browser_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="open_browser"
app:layout_constraintTop_toBottomOf="@+id/submit_button"
tools:layout_editor_absoluteX="0dp" />
</android.support.constraint.ConstraintLayout>

Selanjutnya bukalah file res/layout/activity_show.xml dan ketiklah code di


bawah ini :
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
android:layout_margin="16dp"
tools:context="com.unair.fst.taufik.Modul2Contoh02.ShowActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="First Name:"/>

<TextView
android:id="@+id/show_first_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Last Name:"/>

<TextView
android:id="@+id/show_last_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>

Langkah III : Membuka file java


Bukalah file java/domainproject/MainActivity.java dan ketiklah code di bawah
ini :
package com.unair.fst.taufik.Modul2Contoh02;

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

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ------------------ kode tambahan : mulai -------------------

final Button submitButton = (Button) findViewById(R.id.submit_button);

submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText firstName = (EditText) findViewById(R.id.first_name_text);
EditText lastName = (EditText) findViewById(R.id.last_name_text);

String firstNameString = firstName.getText().toString();


String lastNameString = lastName.getText().toString();

Intent submitIntent = new Intent(MainActivity.this, ShowActivity.class);


submitIntent.putExtra("firstNameString", firstNameString);
submitIntent.putExtra("lastNameString", lastNameString);
startActivity(submitIntent);
}
});

final Button browserButton = (Button) findViewById(R.id.browser_button);

browserButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.unair.ac.id"));
startActivity(intent);
}
});

// ------------------ kode tambahan : akhir -------------------


}
}

Penjelasan :
Untuk tombol Submit, diatur sebuah OnClickListener untuk menjalankan
sebuah aksi saat tombol diklik. Saat klik terjadi, diambil nama pertama dan
terakhir dari view, dan mengirimkannya ke aktifitas berikutnya: ShowActivity.
Target komponen disebut secara eksplisit dalam intent.
Untuk tombol browser, OnClickListener akan membuat sebuah intent baru
untuk memanggil aplikasi apapun yang cocok dengan filter:
sebuah ACTION_VIEW yang bisa menangani sebuah URL web (membuka
sebuah browser web). Jika terdapat lebih dari satu browser terinstall di
smartphone, maka akan diminta untuk memilih salah satu untuk menjalankan
aksi membuka website. Ini adalah contoh intent implisit.

Selanjutnya bukalah file java/domainproject/ShowActivity.java dan ketiklah


code di bawah ini :
package com.unair.fst.taufik.Modul2Contoh02;

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

public class ShowActivity extends AppCompatActivity {

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

// ------------------ kode tambahan : mulai -------------------

Bundle extras = getIntent().getExtras();


String inputFirstName = extras.getString("firstNameString");
String inputLastName = extras.getString("lastNameString");

TextView showFirstName = (TextView) findViewById(R.id.show_first_name);


TextView showLastName = (TextView) findViewById(R.id.show_last_name);

showFirstName.setText(inputFirstName);
showLastName.setText(inputLastName);

// ------------------ kode tambahan : akhir -------------------


}
}

Penjelasan :
Pada aktifitas ini, dimulai dengan mengambil string dari MainActivity. Bisa
didapat referensi ke intent yang memanggil aktifitas ini dengan fungsi
getIntent(). Lalu bisa diakses string yang dilempar menggunakan
getExtras().getString(). Akhirnya, setelah mendapat instance TextView dari
layout, menampilkan nilai yang didapat.
E. Tugas
F. Pustaka
https://developer.android.com/guide/topics/ui/layout/

Anda mungkin juga menyukai