Sabtu, 05 Juni 2021

Pengenalan Explicit Intent dan Implicit Intent Pada Android Studio

 Hai teman - teman semua! Bertemu lagi di pembahasan Android Studio pada kesempatan kali ini kita akan mempelajari tentang Intent pada android studio. Disini saya akan menjelaskan dan mengimplementasikan Explicit Intent dan Impilcit Intent.

Apa sih Intent? Intent merupakan sebuah class pada pemrograman Android yang berfungsi untuk berpindah halaman. Intent adalah sebuah mekanisme yang digunakan untuk melakukan sebuah aksi dari komponen aplikasi. Untuk dapat melakukan sebuah aksi pada sebuah intent, ada 3 cara yang dapat dilakukan :

1. Menjalankan sebuah activity lain baik dengan data ataupun tanpa data.

2. Membuat sebuah service untuk menjalankan pekerjaan tertentu pada sebuah background/non main thread.

3. Mengirimkan sebuah broadcast. Pesan yang dikirimkan dalam keadaan tertentu, misalkan ketika booting atau sedang melakukan pengisian data baru mengirimkan data.

Di kutip dari developer.android.com, intent adalah objek yang menyediakan waktu proses antar komponen terpisah, seperti dua aktivitas. Mudahnya intent adalah cara memberikan action pada komponen dalam satu aplikasi yang sama maupun aplikasi lain jika diweb kita mengenalnya dengan istilah hyperlink.

Fungsi Intent

a. Untuk berpindah dari satu activity ke activity lain. Contohnya : Kita membuat aplikasi dengan 3 activity. Acitivity utama berisi tombol informasi dan login. Ketika tombol informasi di klik akan tampil activity informasi begitupun dengan tombol login ketika di klik akan menampilkan activity login.

b. Untuk transfer data dari satu activity ke activity lain. Contohnya : PAda saat kita mengisi data pada activity login maka nanti akan ditampilkan informasinya pada activity informasi user,

c. Untuk memanggil activity pada internal android seperti melakukan dial number, open email ataupun lainnya.

Terdapat 2 model Intent dalam pemrograman Android yaitu :

1. Explicit Intent

Explicit Intent digunkan untuk memanggil activity lain yang masih dalam satu project ataupun berbeda. Pemanggilan Intent secara explicit dengan menentukan nama activity tujuan. Intent membutuhkan dua parameter, yang pertama adalah context (dapat didapatkan dari activity atau application) dan berikutnya adalah nama NamaActivity class.

    Intent intent = new Intent (this, SecondActivity.class);
    startActivityForResult(intent, TEXT_REQUEST);

Sekarang kita akan mencoba mengimplementasikan fungsi inten explicit, langkahnya seperti berikut ini :

1. Kalian buka terlebih dahulu aplikasi Android Studio yang ada di PC kalian.

  • Pilih Start → Android Studio
  • Pilih Create New Projects
  • Pilih Empty Activity lalu klik Next

Akan muncul Configure Your Project

**

- Beri nama project yang ada kerjakan, misal disini kita membuat project dengan mana →  IntentEksplisit.

- Pilih lokasi penyimpanan (Save Location) →  Disesuaikan dengan keinginan kalian dimana project ini akan di simpan.

Untuk Package Name  ubah menjadi nama blog atau website kalian masing - masing, jika tidak ada website bisa menggunakan default, disini saya menggunakan url blog saya nofieanggraeni.blogspot.com lalu diikuti nama project IntentEksplisit.

- Untuk minimum API level kita pilih →  API 16 (di sesuaikan dengan spesifikasi PC kalian, disarankan memilih yang paling minimum untuk API levelnya dan yang butuhkan).

 - Untuk bahasa yang digunakan pilih Java.

Jika Sudah selesai klik  Finish.

configure project-intent explicit

2. Setelah melakukan Configurasi Project maka akan tampil halaman utama IDE Android Studio, setelah itu ubah layout menjadi RelativeLayout, kemudian kita buka file strings.xml pada folder res/values/strings.xml, dan kita masukkan source code dengan string name sebagai berikut :

<resources>
<string name="app_name">Intent Eksplisit</string> <!--variable yang akan di panggil activity-->
<string name="button_main">Send</string>
<string name="activity2_name">Second Activity</string>
<string name="text_header">Message Received</string>
<string name="editText_main">Enter Your Message Here</string>
<string name="button_second">Send</string>
<string name="editText_second">Enter Your Message Here</string>
<string name="text_header_reply">Reply Received</string> <!--variable yang akan di panggil activity-->
</resources>

 3. Selanjutnya, buat dimens.xml untuk mengatur jarak atau ukuran yang dimana nanti kita hanya akan memanggilnya saja sesuai dengan variable dan kebutuhan yang di tentukan di dimens.xml ini. Caranya: buka struktur folder project android anda pilih folder res/values lalu klik kanan pada folder values dan pilih New -> Values Resource File, buat nama dimens.xml lalu OK. Untuk lebih jelasnya kalian bisa baca di materi pembahasan sebelumnya.

4. Setelah membuat file dimens.xml ubah dan tambahkan source code berikut :

<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_horizontal_margin">16dp</dimen> <!--variable yang akan di panggil activity-->
<dimen name="activity_vertical_margin">16dp</dimen> <!--variable yang akan di panggil activity--> ffffffffffffffffcccc
</resources>

5. Selanjutnya, pada layout activity_main.xml kita tambahkan TextView, EditText dan Button. Hingga menjadi seperti di bawah ini :

Maka akan terlihat pada bagian design dan blue print seperti dibawah ini :

1-intent eksplisit

6. Setelah itu kita buka file MainActivity.java ubah dan tambahkan source code berikut :

7. Kemudian buat Activity baru untuk melakukan perpidahan halaman ketika klik Button, dengan cara seperti di bawah ini :

buat baru activity

Lalu sesuaikan Configure Activity sesuai dengan kebutuhan.

**

- Beri nama activity project yang ada kerjakan, misal disini kita membuat project dengan mana →  SecondActivity.

Beri nama layout project yang ada kerjakan, misal disini kita membuat project dengan mana →  activity_second.

Untuk Package Name  ubah menjadi nama blog atau website kalian masing - masing, jika tidak ada website bisa menggunakan default, disini saya menggunakan url blog saya nofieanggraeni.blogspot.com lalu diikuti nama project IntentEksplisit.

 - Untuk bahasa yang digunakan pilih Java.

Jika Sudah selesai klik  Finish.

new-activity

8. 
 Setelah melakukan Configurasi Activity maka akan tampil halaman utama IDE Android Studio lagi, kemudian kita buka file activity_second.xml, ubah dan tambahkan source code berikut :

9. Setelah itu kita buka file MainActivity.java ubah dan tambahkan source code berikut :

10. Selanjutnya buka file AndroidManifest.java  pada folder manifest, untuk mendaftarkan komponen Intent Filter yang ada sesuaikan dengan source code di bawah ini


11.
 Kemudian Jalankan emulator tambahan (Vysor) di kedua perangkat yaitu PC dan Handphone kalian masing - masing, sambungkan dengan menggunakan kabel USB lalu aktifkan mode debbuging USB. Kenapa menggunakan Vysor? Supaya tidak terlalu berat dan membebankan PC kalian, tetapi jika PC kalian memenuhi spesifikasi Android Studio atau bahkan lebih bisa langsung dari Android Studio di PCnya tanpa harus menggunakan Emulator tambahan.

HASIL Explicit Intent


2. Implicit Intent

Intent implisit adalah intent yang tidak memiliki target dan melemparkan tugas ke aplikasi lainnya. Intent jenis ini mengirim pesan dan permintaan, lalu System android akan mencari aplikasi yang dapat mengabulkan permintaan Intent. Aplikasi yang siap akan menangkap tugas yang menjalankan tugas.

Gambaran source code dari intent implisit, source di bawah ini dapat memanggil komponen browser untuk URL tertentu menggunakan intent.

    Intent intent = new Intent (Intent.ACTION_VIEW, Uri.parse("http://nofieanggraeni.blogspot.com"));
    startActivity(intent);

Terkadang pad aplikasi android yang dibangun, membutuhkan activity bawaan yazng telah disediakan oleh Android. Pemanggilan intent ini dilakukan secara implicit. Pada umumnya untuk melakukan ini, cukup dengan mendefinisikan aksi tertentu (dapat menggunakan konstanta pada intent yang umumnya menggunakan prefiks ACTION).

Aplikasi yang umum digunakan antara lain :

- call
- Dialpad
- Contact
- Browser
- Call Log
- Gallery
- Camera

Contoh source code pemanggilan Gallery yang berisi gambar, dapat dilihat pada kode berikut.

    Intent intent = new 
    Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivity(intent);

Sekarang kita akan mengimplementasikan fungsi intent implicit, langkahnya seperti berikut ini:

1. Seperti biasa buat project baru di Android Studio, jika sudah berada di halaman Android Studio maka langsung saja ikuti seperti langkah di bawah ini. Jika belum maka lakukan cara pembuatan file projects seperti langkah diatas (Explicit Intent).

  • Klik File → New Projects
  • Pilih Empty Activity lalu klik Next

Akan muncul Configure Your Project

**

- Beri nama project yang ada kerjakan, misal disini kita membuat project dengan mana →  ImplicitIntent.

- Pilih lokasi penyimpanan (Save Location) →  Disesuikan dengan keinginan kalian dimana project ini akan di simpan.

Untuk Package Name  ubah menjadi nama blog atau website kalian masing - masing, jika tidak ada website bisa menggunakan default, disini saya menggunakan url blog saya nofieanggraeni.blogspot.com lalu diikuti nama project ImplicitIntent.

- Untuk minimum API level kita pilih →  API 16 (di sesuaikan dengan spesifikasi PC kalian, disarankan memilih yang paling minimum untuk API levelnya dan yang butuhkan).

 - Untuk bahasa yang digunakan pilih Java.

Jika Sudah selesai klik  Finish.


2. Setelah melakukan Configurasi Project maka akan tampil halaman utama IDE Android Studio, setelah itu ubah layout menjadi LinearLayout, kemudian kita buka file strings.xml pada folder res/values/strings.xml, dan kita masukkan source code dengan string name sebagai berikut :

<resources>
<string name="app_name">Intents Implicit</string>
<string name="edittext_uri">http://nofieanggraeni.blogspot.com</string>
<string name="button_uri">Open Website</string>
<string name="edittext_loc">Pi.Not Corp</string>
<string name="button_loc">Open Location</string>
<string name="edittext_share">Belajar Android di Pi.Not</string>
<string name="button_share">Share This Text</string>
</resources>

3. Selanjutnya, buat dimens.xml untuk mengatur jarak atau ukuran yang dimana nanti kita hanya akan memanggilnya saja sesuai dengan variable dan kebutuhan yang di tentukan di dimens.xml ini. Caranya: buka struktur folder project android anda pilih folder res/values lalu klik kanan pada folder values dan pilih New -> Values Resource File, buat nama dimens.xml lalu OK. Untuk lebih jelasnya kalian bisa baca di materi pembahasan sebelumnya.

4. Setelah membuat file dimens.xml ubah dan tambahkan source code berikut :

<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>

5. Selanjutnya, pada layout activity_main.xml kita tambahkan TextView, EditText dan Button. Hingga menjadi seperti di bawah ini :

Maka akan terlihat pada bagian design dan blue print seperti dibawah ini :

6. Setelah itu kita buka file MainActivity.java ubah dan tambahkan source code berikut :

7. Selanjutnya buka file AndroidManifest.java  pada folder manifest, untuk mendaftarkan komponen Intent Filter yang ada sesuaikan dengan source code di bawah ini

Android Manifest

11. Kemudian Jalankan emulator tambahan (Vysor) di  kedua perangkat yaitu PC dan Handphone kalian masing - masing, sambungkan dengan menggunakan kabel USB lalu aktifkan mode debbuging USB. Kenapa menggunakan Vysor? Supaya tidak terlalu berat dan membebankan PC kalian, tetapi jika PC kalian memenuhi spesifikasi Android Studio atau bahkan lebih bisa langsung dari Android Studio di PCnya tanpa harus menggunakan Emulator tambahan.

HASIL Implicit Intent

Di bawah ini adalah hasil dari ketika kita klik button "Open Website" :

Hasil Implicit intent - Website

Di bawah ini adalah hasil dari ketika kita klik button "Open Location" :

Hasil Implicit intent -  membuka maps

Di bawah ini adalah hasil dari ketika kita klik button "Share This Text" :


Demikianlah Pengenalan Intent Explicit dan Intent Implicit pada Android Studio dan juga latihan - latihan yang tersedia. Semoga apa yang disampaikan bisa bermanfaat bagi teman-teman semua, mohon maaf jika ada kesalahan dan kekurangan lainnya. Sampai jumpa di Pembahasan selanjutnya.
Terima Kasih !!!



0 comments:

Posting Komentar