• Tidak ada hasil yang ditemukan

Index of /Kuliah2016-2017/Struktur & Pemakaian Teknologi Game

N/A
N/A
Protected

Academic year: 2017

Membagikan "Index of /Kuliah2016-2017/Struktur & Pemakaian Teknologi Game"

Copied!
20
0
0

Teks penuh

(1)

BAB 6

(2)

92

6.1

Tujuan Pembelajaran

1. Memahami tentang cara penggunaan intent.

2. Memahami cara untuk menghubungkan dua buah activity.

6.2

Dasar Teori

Pada bab ini, akan dibahas mengenai Intent. Intent mungkin merupakan konsep

pengembangan aplikasi android yang paling unik dan paling penting. Disini akan dipelajari

bagaimana cara menggunakan intent untuk mem-broadcast data pada aplikasi, memulai

activity atau service secara eksplisit maupun implisit.

6.2.1

Intent

Intent bekerja menggunakan mekanisme transfer pesan (data) dari activity

satu ke activity lain, dari aplikasi satu ke aplikasi lain.

Pada penggunaan intent secara eksplisit, user menyebutkan sebuah class lain

untuk di load. Secara implisit, user hanya merequest sebuah action yang sudah

built-in untuk dijalankan. Intent juga memiliki fasilitas Broadcast Intent yang

digunakan sebagai sistem yang membroadacast pesan dan menggunakan Broadcast

Receiver untuk menerima pesan yang dikirim secara broadcast.

Menggunakan Intent untuk Memulai activity

Kegunaan yang paling umum dari intent adalah mengikat komponen

aplikasi. Intent digunakan untuk memulai dan transisi antar activity.

Intent secara Eksplisit

Untuk memulai intent secara eksplisit, pilih sebuah activity class dari aplikasi

lalu gunakan Context dari activity saat ini dan Class dari activity yang akan

dijalankan sebagai parameter penggunaan eksplisit intent.

Intent intent = new Intent(Activityku.this, ActivityLain.class);

(3)

93 Setelah startActivity dieksekusi, activity baru(dalam contoh ini ActivityLain) akan dibuat, menjadi terlihat dan aktif, bergerak ke bagian teratas

dari activity stack.

Memanggil finish pada activity yang baru dibuat atau menekan tombol back pada device akan menutup activity dan menghapusnya dari stack.

Intent secara Implisit

Implisit intent adalah mekanisme yang membiarkan komponen dari aplikasi anonim

merequest action service. Hal ini berarti aplikasi bisa meminta pada sistem untuk

menjalankan built-in atau action service yang sudah ditanam dalan android tanpa

mengetahui aplikasi mana atau activity mana yang mencetusnya.

Ketika membuat implisit intent, Anda harus menambakan sebuah action built-in

yang akan dijalankan dan secara opsional biasanya juga diikuti oleh URI data untuk

menjalankan action tersebut. Selain URI beberapa action juga membutuhkan data

tambahan untuk menjalankannya.

If(lampuKosMati){

Intent telpPLN = new Intent(Intent.ACTION_DIAL,

Uri.parse(tel:7108573));

startActivity(telpPLN);

}

Android akan membaca intent dan memulai activity yang menyediakan fasilitas dial

ke nomor telepon diatas

Table 4 Beberapa Action Intent yang biasa digunakan

ACTION_ANSWER Menjawab panggilan masuk

ACTION_ATTACH_DATA Mengindikasikan data yang harus dilekatkan pada tempat lain

ACTION_CALL Menempatkan panggilan pada lokasi yang menyediakan

ACTION_DELETE Menghapus data yang ditentukan

ACTION_DIAL Membuka activity pemanggilan dan

(4)

94 ACTION_EDIT Melayani akses pengubahan pada data yang

tersedia

ACTION_EMERGENCY_DIAL Memanggil nomor darurat

ACTION_GET_CONTENT Memilih dan mengembalikan data yang ditentukan

ACTION_INSERT Memasukkan ke item yang kosong

ACTION_MAIN Membentuk titik awal activity

ACTION_PICK Memilih item dan mengembalikan pilihan

ACTION_RUN Menjalankan data yang diberikan

ACTION_SEARCH Melakukan pencarian ke sistem

ACTION_SEND Mengirim data tanpa penentuan penerima

ACTION_SENDTO Mengirim data ke penerima yang ditentukan

ACTION_VIEW Menampilkan data kepada user

ACTION_WEB_SEARCH Melakukan pencarian web

Broadcast Intent

Intent yang mengirimkan ke lebih dari satu activity untuk ditangani. Sebagai contoh,

Broadcast Intent akan mengirimkan perubahan waktu activity dapat memproses ini dan bereaksi sesuai waktu yang diberikan atau pengiriman level baterai oleh

Broadcast Intent dapat digunakan untuk menghentikan aplikasi apabila baterai sudah dibawah level tertentu.

Action Broadcast

Intent intent = new Intent(ACTION_TIME_TICK);

sendBroadcast(intent);

Listener

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

public class MyBroadcastReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

//TODO: React to the Intent received.

(5)

95 Table 5 Beberapa Broadcast Intent yang biasa digunakan

Broadcast Intent Keterangan

ACTION_TIME_TICK Waktu sekarang telah berubah,

mengirim setiap menit.

ACTION_TIME_CHANGED Waktu telah diatur

ACTION_TIMEZONE_CHANGED Zona waktu telah berubah

ACTION_ BOOT_COMPLETED Disiarkan sekali ketika sistem telah menyelesaikan proses booting

ACTION_PACKAGE_ADDED Package aplikasi baru telah diinstal ke device

ACTION_PACKAGE_CHANGED Package aplikasi yang ada telah diubah ACTION_PACKAGE_REMOVED Package aplikasi yang ada telah

dipindahkan

ACTION_PACKAGE_RESTARTED Pengguna memulai kembali package

dan semua proses telah dimatikan

ACTION_PACKAGE_DATA_CLEARED Pengguna telah membersihkan data dari

package

ACTION_UID_REMOVE User ID telah dipindahkan dari sistem

ACTION_BATTERY_CHANGED Penyiaran meliputi keadaan pengisian,

level dan informasi lain mengenai

baterai.

ACTION_POWER_CONNECTED Daya dari luar dihubungkan ke device

ACTION_POWER_DISCONNECTED Daya dari luar dilepas dari device

ACTION_SHUTDOWN Device dimatikan

Objek Intent

Objek intent merupakan sekumpulan informasi berkaitan dengan komponen yang akan

menerima intent termasuk aksi yang akan diambil ditambah informasi berkaitan

dengan sistem Android termasuk kategori dari komponen yang seharusnya menangani

(6)

96 Atribut Intent

o Atribut Utama Action

String yang berisi nama dari aksi yang akan dilakukan atau pada Broadcast

Intent merupakan pelaporan dari aksi yang terjadi. Action yang biasa

dilakukan dapat dilihat pada bagian sebelumnya

Data

Setiap action akan memiliki pasangan jenis data yang berbeda-beda yang

dinyatakan sebagai URI. Misalnya, jika action adalah ACTION_EDIT, maka data akan mengandung URI dokumen yang akan ditampilkan untuk

diedit. Jika action adalah ACTION_CALL, maka data akan menjadi tel:

URI dengan nomor untuk panggilan. Demikian pula, jika tindakan tersebut

ACTION_VIEW dan bidang data adalah http: URI, activity menerima perintah untuk men-download dan menampilkan data apa pun mengacu

pada URI.

o Atribut Tambahan Category

Memberikan informasi tambahan mengenai tindakan untuk mengeksekusi.

Sebagai contoh, CATEGORY_LAUNCHER berarti harus muncul dalam

launcher sebagai aplikasi tingkat atas, sementara

CATEGORY_ALTERNATIVE berarti tindakan alternatif user yang dapat dilakukan pada sebuah data, misal: Print Preview adalah sebuah alternatif

dari Regular View.

Extra

Ini adalah Bundle dari setiap informasi tambahan. Extra dapat digunakan

untuk memberikan informasi tambahan ke komponen.

Flag

Pada sistem Android banyak perintah yang dapat mendeskripsikan

(7)

97 menjadi milik siapa dan bagaimana penanganan setelah dimuat. Semua

Flag ini didefinisikan pada Class Intent.

Type

Type digunakan untuk menspesifikasikan tipe data/file general pada Intent.

Contoh:

Pada aplikasi untuk mengirim gambar,

myIntent.setType(“image/png”);

Pada aplikasi mengirim email,

myIntent.setType(“message/rfc822”);

Component

Component digunakan sebagai salah satu cara untuk memulai activity

dengan menspesifikasikan ComponentName.

setComponent(ComponentName name);

ComponentName disusun dengan mengikat nama package dan nama class

bersama-sama membentuk sebuah parameter baru yang dapat dimanfaatkan

dalam intent.

Contoh:

Intent intent = new Intent();

intent.setComponent(new ComponentName(

"com.android.myPackage",

"com.android.myPackage.myActivity");

startActivity(intent)

Permission

Pada sebuah aplikasi android, penggunaan fasilitas Intent hampir selalu disertai oleh

penambahan permission pada AndroidManifest.xml karena secara default,

fasilitas-fasilitas telepon, sms, kamera, sensor, beserta hardware dilindungi oleh android. Hal

ini sangat dibutuhkan karena digunakan untuk memberi izin akses fitur-fitur yang

(8)

98 Pada eksplisit Intent yang tidak menggunakan action built-in melainkan class yang

didefinisikan sendiri oleh user, harus meregister class yang baru pada

AndroidManifest.xml.

Contoh untuk eksplisit Intent:

<application>

<activity

android:name=".ClassBaru"

android:label="@string/app_name" >

<intent-filter>

<category

android:name="android.intent.category.DEFAULT" />

</intent-filter>

</activity>

</application>

Untuk implisit Intent dan Broadcast Intent, cukup meregister action yang hendak

digunakan, sebagai contoh pada penggunaan fasilitas melakukan panggilan telepon:

<application>

</application>

(9)

99

Workshop 7

Intent 1

A.

Tujuan

1. Memahami cara untuk membuat Intent Implisit

B.

Tugas Pendahuluan

1. Pelajari dan buat rangkuman mengenai Intent Android

C.

Percobaan

a.

Percobaan 1: Memantau Baterai dengan BroadcastReceiver

Langkah 1: Buat project Android baru pada Eclipse

Langkah 2: Tambahkan statement berikut pada main.xml

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

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" > <TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:gravity="center_horizontal"

android:text="Battery Information"

android:textSize="30px"

(10)

100

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_below="@+id/textView1"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_below="@+id/textView1"

android:layout_marginTop="23dp"

android:padding="10dp" />

</RelativeLayout>

Langkah 3 : Lengkapi statement berikut pada class java MainActivity

package com.ai.intent;

public class IntentBatteryActivity extends Activity {

private TextView txtBat;

private BroadcastReceiver mBatInfoRec = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

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

(11)

101

this.registerReceiver(this.mBatInfoRec, new IntentFilter (Intent.ACTION_BATTERY_CHANGED));

} }

Langkah 4 : Tekan F11 untuk mendebug aplikasi pada emulator Android

Langkah 5 : Maka akan muncul tampilan layout sebagai berikut :

Gambar 36 Tampilan informasi Battery

b.

Percobaan 2: Membuat Intent Pemanggilan Telepon

Langkah 1: Buat project Android baru pada Eclipse

Langkah 2: Tambahkan statement berikut pada main.xml

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

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

(12)

102

<TextView

android:id="@+id/label1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="#ff0000cc"

android:layout_height="wrap_content"

android:text="Make Phone Call"

android:textStyle="bold" /> </LinearLayout>

Langkah 3: Tambahkan statement berikut pada MainActivity.java

package com.example.intent;

public class Intent1Activity extends Activity {

/** Called when the activity is first created. */ TextView label1;

EditText text1;

Button btnCallActivity2;

@Override

public void onCreate(Bundle savedInstanceState) {

(13)

103

btnCallActivity2=

(Button)findViewById(R.id.btnCallActivity2);

btnCallActivity2.setOnClickListener(new ClickHandler()); }

private class ClickHandler implements OnClickListener{

@Override

public void onClick(View v) {

try{

// myActivity2 places a phone call // for ACTION_CALL or ACTION_DIAL

// use 'tel:' formatted data: "tel:555-1234" // for ACTION_VIEW use data:

"http://www.youtube.com"

// (you also need INTERNET permission -see Manifest)

String myData= text1.getText().toString(); Intent myActivity2 = new

Intent(Intent.ACTION_DIAL, Uri.parse(myData)); startActivity(myActivity2); }

catch(Exception e) {

Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();

} }//onClick }//ClickHandler }

Langkah 4: Pada AndroidManifest.xml perhatikan setiap baris kodenya sebagai

berikut :

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.intent"

android:versionCode="1"

android:versionName="1.0" >

(14)

104

<category

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

</activity> </application> </manifest>

Langkah 5 : Tekan F11 untuk mendebug aplikasi pada emulator Android

Gambar 37 Tampilan Panggilan Telpon

Langkah 6 : Click pada button [Make Phone Call], maka program akan

(15)

105 Gambar 38 Tampilan Phone Call

c.

Percobaan 3: Membuat Implisit Intent (lanjut)

Langkah 1: Buat project Android baru pada Eclipse

Langkah 2: Tambahkan statement berikut pada main.xml

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

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent"> <Button

android:layout_height="wrap_content"

android:layout_width="match_parent" android:text="Pesan McDonald"

android:id="@+id/btnMcDonald"> </Button>

<Button

android:layout_height="wrap_content"

(16)

106 android:id="@+id/btnKFC">

</Button> <Button

android:text="Belajar Android" android:layout_height="wrap_content"

android:layout_width="match_parent"

android:id="@+id/btnBelajarAndroid"> </Button>

<Button android:text="Jadwal Puasa" android:layout_height="wrap_content"

android:id="@+id/btnJadwalPuasa"

android:layout_width="match_parent"> </Button>

<Button

android:text="Ambil Gambar"

android:layout_height="wrap_content"

android:id="@+id/btnKamera"

android:layout_width="match_parent"> </Button>

</LinearLayout>

Langkah 3: Tambahkan statement berikut pada MainActivity.java

package com.agusharyanto.net.implicit.intent;

public class BelajarImplicitIntentActivity extends Activity {

/** Called when the activity is first created. */ @Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button btnMcDonald = (Button)findViewById(R.id.btnMcDonald); Button btnKFC = (Button)findViewById(R.id.btnKFC);

Button btnBelajarAndroid =

(Button)findViewById(R.id.btnBelajarAndroid); Button btnJadwalPuasa =

(Button)findViewById(R.id.btnJadwalPuasa);

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

btnMcDonald.setOnClickListener(new Button.OnClickListener(){

(17)

107

// getRequest(txtResult,txtUrl); CallIntent(v);

} });

btnKFC.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){

btnKamera.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v){

public void CallIntent(View view) {

Intent intent = null;

switch (view.getId()) {

case R.id.btnKFC:

//akan melakukan Call ke nomor 14022 intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:14022"));

startActivity(intent);

break;

case R.id.btnMcDonald:

//akan melakukan Call ke nomor 14045 intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:14045"));

startActivity(intent);

break;

case R.id.btnBelajarAndroid:

(18)

108

intent = new Intent(Intent.ACTION_VIEW, Uri .parse("http://agusharyanto.net")); startActivity(intent);

break;

case R.id.btnJadwalPuasa:

//akan memanggil browser dan menampilkan website http://www.pkpu.or.id/imsyak/

intent = new Intent(Intent.ACTION_VIEW, Uri

.parse("http://www.pkpu.or.id/imsyak/")); startActivity(intent);

break;

case R.id.btnKamera:

//akan memanggil fungsi Camera android intent = new

public void onActivityResult(int requestCode, int resultCode,

Intent data) {

Langkah 4: Pada AndroidManifest.xml tambahkan kode yang dicetak tebal

sebagai berikut :

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

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.agusharyanto.net.implicit.intent"

android:versionCode="1"

android:versionName="1.0">

<uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon"

android:label="@string/app_name">

<activity android:name=".BelajarImplicitIntentActivity"

android:label="@string/app_name"> <intent-filter>

(19)

109

<category

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

</activity>

</application>

<uses-permission

android:name="android.permission.CALL_PRIVILEGED"></ uses-permission>

<uses-permission

android:name="android.permission.CALL_PHONE"></uses-permission> <uses-permission

android:name="android.permission.INTERNET"></uses-permission> <uses-permission

android:name="android.permission.CAMERA"></uses-permission>

</manifest>

Langkah 5 : Tekan F11 untuk mendebug aplikasi pada emulator Android

Langkah 6 : Maka akan tampil output sebagai berikut :

(20)

110 Langkah 7 : Lakukan percobaan button satu per satu :

[Pesan McDonald] [Pesan KFC] [Belajar Android]

[Jadwal Puasa] [Ambil Gambar]

Gambar

Table 4 Beberapa Action Intent yang biasa digunakan
Table 5 Beberapa Broadcast Intent yang biasa digunakan
Gambar 36 Tampilan informasi Battery
Gambar 37 Tampilan Panggilan Telpon
+4

Referensi

Dokumen terkait

Penelitian ini juga sesuai dengan penelitian Ikawati (2011), menunjukkan bahwa tidak terdapat pengaruh pendapatan keluarga baik pendapatan bapak atau pendapatan ibu terhadap

Hipertensi yang juga disebut sebagai silent killer ini adalah suatu keadaan ketika tekanan darah di pembuluh darah meningkat secara kronis.. Hal tersebut dapat terjadi

Budaya merupakan suatu beban, bilamana nilai-nilai bersama tidak cocok dengan nilai yang akan meningkatkan keefektifan organisasi itu Ini paling mungkin terjadi bila

Menimbang, bahwa mengenai keberatan Termohon / Pembanding terhadap pertimbangan Pengadilan Agama tentang permohonan izin cerai talak dari Pemohon / Terbanding yang

Guna melakukan Pembuktian Dokumen Kualifikasi atas Penawaran yang disampaikan oleh Perusahaan Saudara dan diharapkan perusahaan membawa kelengkapan Administrasi sebagai berikut

Kurangnya pembinaan dan pengarahan terhadap bahaya penyalahgunaan narkotika, dan maraknya fasilitas hiburan masyarakat yang merangsang timbulnya peredaran

[r]

BEA CUKAI TEMBILAHAN MUSNAHKAN BARANG ILEGAL SENILAI RP3.4 MILIAR TEMBILAHAN (30/11/2017)