Kamis, 05 Februari 2015

Video
Text

ANDROID NO.6: Mengenal Intent dan Kegunaannya (Praktek Mengirim Data Antar Activity dalam Satu Aplikasi)

Part 1: Praktek Mengirim Data Antar Activity dalam Satu Aplikasi

Seberapa seringkah anda menggunakan Intent? Saya yakin untuk anda yang berkecipung dengan Android Programming sudah sangat familiar bahkan akrab di luar kepala, tapi bagi para pemula memahami Intent sangat lah tidak mudah :P

Intent ini biasanya digunakan untuk interaksi antar komponen pada sistem operasi Android. Ingat, antar komponen. Nah, maka pada tutorial ini kita akan membahas tentang Intent dan kegunaannya.


Intent merupakan object dari package android.content. Intent ini bisa kita gunakan sebagai jembatan interaksi antar komponen dalam system operasi Android. Anda bisa lihat pada screenshot di atas.

Jembatan gimana maksudnya? Kalo dalam bahasa pemrograman banyak yang menyebut “runtime binding” antar komponen atau “messaging object” antar komponen. Intent ini banyak sekali manfaat untuk kita, tapi kebanyakan digunakan untuk interaksi antar “activity” dalam satu aplikasi maupun interaksi antar “activity” antar beberapa aplikasi. Hebat kan?

Anda sudah tahu tentang “activity” bukan?

Mari kita bayangkan anda adalah seorang programmer Android hebat, kemudian anda membuat sebuah aplikasi Email. Nah, dalam aplikasi tersebut kita bisa membuat beberapa activity untuk proses masing – masing, seperti:

ActivityInbox -> untuk meloading email – email yang masuk,
ActivityCompose -> untuk meloading halaman menulis email,
ActivitySuccess -> untuk menampilkan halaman sukses kirim email,
ActivitySent -> untuk meloading halaman email terkirim,

Nah, bayangkan cukup empat (4) buah activity itu saja. Bila anda ingin interaksi antar activity tersebut, anda bisa menggunakan Intent :) . Ini baru interaksi antar activity dalam satu aplikasi lho, belum interaksi antar activity antar aplikasi yang berbeda.

Gampang kan membayangkannya? Membuat nya juga gampang bila anda sudah familiar dengan intent.

Mari lanjut...

Setelah itu, anda bisa membuat aplikasi lain, misalnya aplikasi PHOTO VIEWER. Nah, dalam aplikasi PHOTO VIEWER ini anda bisa memberikan fasilitas berbagi photo, salah satunya berbagi melalui email. Ketika pengguna menekan tombol berbagi melalui email, maka aplikasi PHOTO VIEWER memanggil salah satu activity dari aplikasi email kita tadi, tentu saja juga menggunakan Intent. Hebatkan? Memanggil activity aplikasi tertentu dari aplikasi lain dengan Intent.

Nah, inilah hebatnya Intent :)

Sebetulnya, Intent tidak hanya digunakan untuk hal – hal yang berhubungan dengan interaksi activity, tapi juga interaksi dengan ‘service’ dan ‘broadcast’.

SELAIN ITU, intent bisa kita gunakan sebagai tempat membawa beberapa data yang akan kita kirimkan ke komponen lain. Cool...

Untuk mengetahui lebih detail tentang Intent, bisa anda lihat dan baca di http://developers.android.com/docs/guide/components/intents-filters.html

Nah, bila anda baca document di atas, anda bisa mengetahui bahwa type intent itu ada dua, yaitu explisit intent dan implicit intent. Kalo kita memanggil sebuah komponen dengan dengan memberikan nama komponen yang dipanggil berarti metode ini disebut explisit intent, begitu juga sebaliknya.

Mari lanjutt....

Saat Intent ingin memanggil sebuah Activity atau service, pasti Intent ini dilengkapi dengan parameter yang dibawa. Parameter yang dimaksud adalah sebagai berikut:
1.Component Name
2.Action
3.Data
4.Category
5.Extras
6.Flags

Detail tentang parameter tersebut silahkan baca dokumentasi nya developer.android.com

Guna memperjelas kegunaan Intent, mari kita praktek beberapa simple aplikasi:
a.Mengirim Data ke Activity Tertentu dan Menampilkannya (Part 1, halaman ini)
b.Mengirim Data ke Activity Pada Aplikasi Lain dan Menampilkannya (Part 2, belum)
c.Memanggil Activity Aplikasi Tertentu dari Aplikasi kita (Part 3, belum)

Mari kita mulai praktek :)
a. Mengirim Data ke Activity Tertentu dan Menampilkannya

Ket: Saya menggunakan Android Studio IDE, bila anda menggunakan IDE lain silahkan menyesuaikan.

Kita akan membuat project untuk mengirim data dari suatu activity ke activity yang lain, nah, setidaknya kita di sini akan membuat 2 (dua) buah activity, yaitu MainActivity dan DisplayActivity.

Ingat, saat membuat DisplayActivity, pastikan parent dari DisplayActivity adalah MainActivity.

Kenapa demikian?

Dengan menambahkan parent activity, maka nanti akan ada tombol up , yang bisa mengarah ke activity sebelumnya (ativity atasnya), lihat screenshot final di halaman bawah ini. :)

Lihat gambar parent activity:


Anda pun bisa melihat raw code pada AndroidManifest.xml nya.

Sudahkah anda mengenal activity? :) bila belum tahu apa itu activity, coba browsing atau buka – buka tutorial sebelumnya tentang activity.

Yup, activity ini beda dengan Class lho, anda bisa membuat activity kan? Nah, di sini saya menggunakan Android Studio, official IDE dari Google untuk Android. Perhatikan activity yang telah saya buat.
Lihat gambar 1:


Tahukah anda apa bedanya Activity dengan Class biasa? :P

Yup, selain Activity membuat beberapa method secara otomatis, nih object juga membuat layout xml secara otomatis pula :)
Lihat gambar 2:


Pada IDE modern apa pun, Android Studio, QT Editor, Visual Studio, pasti selalu ada bagian layout (biasanya xml) maupun bagian code backend nya.
Begitu juga dengan saat kita membuat Activity, maka secara otomatis membuat xml nya sebagai layout/ui. Anda tahu layout kan?

Nah, mari kita buka layout main kita (activity_main.xml).
Lihat gambar 3:


Pada activity_main.xml, saya menambahkan:
-TextView Component , saya berikan tulisan “Masukan nama anda”
-EditText Component, saya berikan id txtNama
-Button Component, saya berikan id btnKirim

Anda sudah tahu kan cara menambahkan komponen di atas? :) anda juga sudah tahu kan cara menambahkan id pada setiap komponen? :P bila belum tahu, coba cari di google :P,

Nah, komponen Button dengan id btnKirim tadi kita berikan properties “onClick” dengan value sendData.
Lihat gambar 3.1:


sendData ini adalah sebuah method atau function yang kita berikan kepada Button. Kenapa value di sana tidak sendData melainkan @string/_sendData_ ? Hayo, coba diinget – inget.. :P

Anda pun bisa melihat raw xml code dengan mengklik tab xml.
Lihat gambar 3.2:


Itu semua adalah activity_main.xml , sekarang mari kita lihat activity_display.xml dan menambahkan juga komponen TextView.
Lihat gambar 4:


Nah, saya menambahkan sebuah TextView component dengan id displayName.
Ingatlah id dari setiap komponen, karena kita akan menggunakan id tersebut untuk mengedit setiap komponen :)

Sampai di sini mudah bukan? Ada kesulitan? Bila ada coba pecahkan kesulitan anda terlebih dahulu, gunakan Google sebagai referensi pencarian, biasakan anda tetap menggunakan bahasa inggris :P

Mari kita lanjut ke source java kita....

Pertama, mari kita buka MainActivity.java, saya akan mencoba membuat sebuah variable yang nanti nya akan kita kirim ke activity yang lain. Variable ini saya namakan dengan DATA_NAMA, perhatikan gambar,
Lihat gambar 5:


Nah, DATA_NAMA saya berikan public static final. Sudah kah anda tau maksud ini? :P bila belum, coba cari cari di Google, ini adalah dasar – dasar pemrograman Java. Hayo, sebelum ke Android Programming alangkah baiknya bila anda familiar dengan Java :)

Berikutnya, masih ingat kan dengan method sendData yang tadi kita berikan kepada properties onclick pada button?

Sekarang kita akan membuat method / function sendData tersebut.
Lihat gambar 6:


Lihat, kita menggunakan Intent untuk interaksi antar Activity :)
Pertama – tama , kita membuat sebuah Object intent, dengan parameter Contex dan Class.
Lihat gambar 7:


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

Perhatikan parameter pertama, bahwa ‘this’ mengacu kepada activity itu sendiri, dalam hal ini adalah MainActivity.java. Activity merupakan subclass dari Context, sehingga penggunaan ‘this’ sudah tepat.

Parameter kedua adalah ‘Class’ dimana system harus men-send intent, dalam kasus ini sebagai penerima intent adalah DisplayActivity. :) mudah bukan?

Line berikutnya, kita menseleksi object yang kita butuhkan yaitu EditText Component yang kita beri id txtNama tadi.

EditText edittext_datanama = (EditText) findViewById(R.id.txtNama);

Setelah kita menyeleksi komponen, selanjutnya kita mengambil value dari komponen tersebut dan meng-convertnya ke string,

String dataNama = edittext_datanama.getText().toString();

Baru kemudian kita memasukan value ke variable yang kita buat tadi, kemudian memanggil Activity target.

intent.putExtra(DATA_NAMA,dataNama);
startActivity(intent);


Gampang sekali bukannn???

Anda bisa melihat documentasi dari intent dan method beserta standard activity action nya di http://developer.android.com/reference/android/content/Intent.html

Kita sudah berhasil membuat method untuk mengirim data, nah, sekarang kita harus membuat DisplayActivity.java agar bisa menerima data yang sudah dikirimkan oleh MainActivity.java.
Lihat gambar 8:


Perhatikan bahwa, method onCreate() secara otomatis sudah digenerate oleh Android Studio saat kita membuat Activity.
Yang harus kita lakukan adalah membuat sebuah object intent.

Intent intent = getIntent();

Berikutnya, kita membuat sebuah variable, variable yang kita buat adalah dataNama. Kemudian mengambil variable DATA_NAMA dari intent dan memasukan ke nilainya ke variable yang kita buat tadi.

String dataNama = intent.getStringExtra(MainActivity.DATA_NAMA);

Nah, sampai disini mudah bukan?
Mari lanjut....

Setelah kita mendapatkan nilai dari DATA_NAMA, maka kita akan MENYELEKSI object yang nanti nya kita gunakan sebagai tempat untuk menaruh DATA_NAMA.

Masih ingat dengan komponen TextView yang kita tambahkan ke DisplayActivity.java? kita akan menyeleksinya dan mengganti tulisannya :P ,,,

TextView textview_datanama = (TextView) findViewById(R.id.displayName);
textview_datanama.setText(dataNama);


Mudah bukan, , ,

Hasil dari tutorial di atas adalah seperti ini,
Lihat gambar 9:


Demikian mudah – mudahan bermanfaat.
Salam :)

PART YANG LAIN:
Part 1: Mengirim Data ke Activity Tertentu dan Menampilkannya (halaman ini)
Part 2: Memanggil Activity Aplikasi Tertentu dari Aplikasi kita
Part 3: Mengirim Data ke Activity Pada Aplikasi Lain dan Menampilkannya (SILAHKAN ANDA KERJAKAN SENDIRI)
===================

DAFTAR CODE
MainActivity.java


DisplayActivity.java


Activity_main.xml


Activity_display.xml


Please share bila tutorial ini cukup berbobot untuk anda!

MediaTutorial mengedepankan tutorial yang berkualitas. Semua penjelasan dipaparkan sedetail mungkin.
Please, bila tutorial ini membantu anda dan cukup berkualitas bagi anda mohon untuk share pada button sharing berikut ini.

Writen by: Okie Eko Wardoyo

Comments

5 komentar:

Permainan Bayi mengatakan...

bang artikel.a..bngt bngt bwt newbee yang mau cr kink belajar ngeblog>>>
by dedi mitsubishi

cha rani mengatakan...

Waah kereen ni.. Biasanya mudah dipahami..
Btw, ada tutorial yg bkin aplksi client server gtu gk bang? Hee

Harlan Mukdis mengatakan...

mau nanya mas, gini kalau misalkan si nilai di kirim alert dialog gmna ya?

Vian V mengatakan...

Saya coba dulu gan,,maklum masih pemula dan cari2 buku tentang android

Mahendra Fajar mengatakan...

Bagus ni artikelnya, penjelasannya sampai tuntas, yg newbie kaya ane lebih ngerti

Poskan Komentar