DOSEN PENGAMPU
JUNADHI, M.KOM
Mengapa Android
Muncul pertanyaan kenapa menggunakan Android ? Android memanjakan penggunanya
dengan fiturnya yang sangat canggih seperti tampilan ui yang bagus baik dari segi user
interface dan user experience, dapat digunakan sebagai alat multimedia seperti pemutar
musik dan video, dan juga menggunakan perangkat keras seperti akselerometer, gyroscope
dan sensor lainnya ke dalam aplikasi. Disamping itu ada beberapa hal yang membuat Android
sebagai sistem operasi yang memang layak digunakan oleh pengguna atau dikembangkan
oleh para developer, seperti yang akan dijelaskan berikut ini.
Store
Aplikasi Android bisa di distribusikan dengan menggunakan web, copy apk, email dan store.
Store Android yaitu Google Play merupakan cara termudah bagi para developer untuk
medistribusikan aplikasinya ke pasar yang memiliki jutaan pengguna.
Google play merupakan store resmi Android yang dikelola oleh Google, pengguna bisa
mencari dan download aplikasi yang di kembangkan dengan menggunakan Android Software
Development Kit. Disamping aplikasi beberapa servis yang ditawarkan di dalam Google Play
adalah media digital, music, buku, majalah, film dan program televisi.
Bagaimana para developer memonetisasi aplikasi yang ada di dalam Google Play? Strategi
monetisasi aplikasi yang di tawarkan Google Play bermacam-macam dimulai dari paid
distribution (app berbayar), in-app produk, subscriptions, dan ads. Tentunya developer harus
mengikuti aturan yang ada untuk memastikan bahwa pengguna mendapatkan user
experience yang paling bagus.
Sejarah Android
Dibawah ini berupa list sejarah dari Android yang resmi di release oleh Google.
Sources : https://en.wikipedia.org/wiki/Android_(operating_system)
http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html/
Biasanya muncul pertanyaan? Apakah JRE cukup? Tidak, JRE adalah Java Runtime
Environment yang berfungsi sebagai Virtual Machine untuk menjalankan program Java.
Sedangkan JDK merupakan Java SE Development Kit, dimana JRE juga di ada di dalamnya.
Dan yang lebih penting adalah di dalamnya terdapat compiler dan tools untuk membuat dan
compile program.
Sederhananya JRE untuk menjalankan program, JDK untuk membuat program.
Mari kita mulai dengan proses instalasi dari JDK.
1. Langsung saja buka link di atas menggunakan browser Anda, dan pilih Java Platform
(JDK), tampilan dari layout download dari JDK.
3. Setelah proses download selesai, langsung install ke device Anda dan ikuti petunjuknya
sampai selesai.
Android Studio
Pada akademi kali ini kita akan menggunakan Android Studio sebagai IDE (Integrated
Development Environment). Android Studio di release 16 May 2013 pada Google IO. Android
Studio berbasiskan JetBrains Intellij IDEA, dan dikhususkan untuk mengembangkan software
berplatform Android.
Untuk Android Studio bisa download dari website resmi google :
https://developer.android.com/studio/index.html/
1. Dalam dialog ini kita bisa memberi nama dari aplikasi kita, dan company domain.
Company domain akan di gunakan dalam identifikasi unik dari aplikasi kita ketika
sudah di-publish. Kita juga dapat mengganti dari direktori dimana project kita akan
disimpan.
4. Dialog selanjutnya adalah nama dari activity yang pertama kali kita buat.
Nama Package
1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2. package="com.mobile.myapplication">
Package name merupakan sebagai identitas unik dari sebuahaplikasi. Identitas ini
juga yang akan digunakan di dalam store untuk membedakan suatu aplikasi dengan
aplikasi lainnya. Jangan pernah mengganti value di dalam package karena nantinya
akan dikenali sebagai aplikasi yang lainjika sudah masuk ke dalam store.
10
1. <application
2. android:allowBackup="true"
3. android:icon="@mipmap/ic_launcher"
4. android:label="@string/app_name"
5. android:roundIcon="@mipmap/ic_launcher_round"
6. android:supportsRtl="true"
7. android:theme="@style/AppTheme">
8. <activity android:name=".MainActivity">
9. <intent-filter>
10. <action android:name="android.intent.action.MAIN" />
11.
12. <category android:name="android.intent.category.LAUNCHER" />
13. </intent-filter>
14. </activity>
15.
16. <service
17. android:name=".MyIntentService"
18. android:exported="false" />
19.
20. <receiver
21. android:name=".MyReceiver"
22. android:enabled="true"
23. android:exported="true"></receiver>
24. </application>
Permission
Mendeklarasikan permission apa saja yang harus dimiliki oleh aplikasi untuk akses ke
dalam komponen API seperti internet, external storage, contact, dan juga untuk
berinteraksi kepada aplikasi lainnya.
Gradle
Gradle merupakan open source build automation system. Automation system berguna untuk
mengotomatisasi proses pembuatan dari software build dan proses-proses terkait lainnya
termasuk compile source code menjadi binary code, packaging binary code, dan
menjalankan automated test.
11
12
Android Settings
Di dalam block android kita bisa menetapkan compileSDKVersion dan
buildToolsVersion.
Default Config
Di dalamnya terdapat properties seperti applicationID, minSdkVersion,
targetSdkVersion dan test information.
Build Types
Di dalamnya terdapat properties dari debuggable, ProGuard enabling, debug signing,
version name suffix dan test information.
Dependencies
Di dalamnya terdapat `informasi tentang library yang digunakan oleh aplikasi.
13
Setelah proses sinkronisasi selesai maka akan muncul informasi pada log apakah proses
sinkronisasi berhasil atau tidak.
14
1. Jalankan icon run, kemudian akan muncul dialog seperti ini. Mari kita coba buat
emulator baru dengan memilih Create New Virtual Device.
2. Akan muncul dialog dengan pilihan beberapa emulator device yang bisa langsung anda
gunakan.
15
16
4. Anda dapat membuat hardware emulator baru atau bisa juga memilih dari hardware
emulator yang sudah ada. Setelah memilih hardware emulator langsung ke langkah
selanjutnya yaitu akan muncul dialog seperti ini.
17
5. Selanjutnya klik Next, dan akan muncul dialog verify configuration. Pada dialog ini
anda bisa sekali lagi memverifikasi configurasi dari emulator yang anda pilih.
18
19
1. Lebih cepat
2. Fitur seperti geo-location, push notif bisa digunakan
3. Bisa mengetahui daya serap baterai terhadap aplikasi
4. Lebih mudah
Dengan menggunakan device smartphone asli maka kita dapat mengetahui keadaan
(environment) aplikasi ketika dijalankan di device asli. Dengan memastikan bahwa aplikasi
kita berjalan secara wajar di device asli maka sudah cukup memberikan jaminan kepada
aplikasi kita ketika nantinya di pasarkan (store). Akan tetapi kadang kala dengan hanya run di
20
1. Pastikan device yang akan dipakai sesuai dengan target SDK atau paling tidak min SDK
version dari aplikasi kita.
2. Buka setting dan masuk ke dalam menu About. Di dalam about cari informasi tentang
build number.
21
23
24
25
26
Sebelum memulai kami yakin kamu masih mempertanyakan tentang ‘mahluk’ bernama
keystore itu seperti apa, baik, keystore adalah sebuah file binary yang berisi informasi tentang
satu atau lebih private key. Ini lebih mengarah pada konsep pengamanan apk yang kita buat
yang di generate dengan sertifikat berbasis public dan private key. Konsep umumnya sebagai
berikut : Sistem operasi android membutuhkan semua apk di signed / digenerate dengan
menggunakan sebuah sertifikat sebelum aplikasi atau apk-apk tersebut dipasang ke dalam
device. Proses penggunaan public dan private key berlangsung selama developer melakukan
generasi (signed) apk untuk versi debug maupun untuk versi production (release). Sebuah
sertifikat digital public key atau juga disebut identify certificate berisi informasi tentang
dirinya sendiri dan private key yang bisa digunakan dan juga termasuk metadata dari pemilik
certificate tersebut dalam hal ini developer yang melakukan proses pembuatan aplikasi.
Public key ini secara otomatis akan dilampirkan dalam file apk ketika proses signed/generate
apk dilakukan oleh gradle melalui signing tools yang disediakan oleh android studio. Public
key bersifat identifier unik yang hanya berasosiasi dengan file project android yang digunakan
dan file keystore terkait. Selain untuk menjaga keamanan dari apk yang dibuat ini juga akan
termasuk pada konsistensi dan menjaga originalitas ketika apk diupdate di Google Play Store.
Ingat apk hanya bisa diupdate jika keystore pertama kali upload sama dengan keystore ke n
kali upload. Kegunaan keystore sangat banyak dua diantaranya yang paling terpenting ialah :
Untuk integrasi ke layanan Google seperti Google Maps dengan menggunakan nilai
hash (diggest SHA1) didalamnya.
Untuk integrasi ke layanan api facebook dengan menggunakan keyhash base64 yang
terkandung didalam keystore.
27
1. Plih password yang sulit ditebak, kombinasikan angka, alphabet dan simbol dalam
membuatnya.
2. Bedakan antara keystore password dan keypassword ketika membuat file apk dengan
kustom keystore.
3. Jangan memberikan keystore kepada orang yang tidak dipercaya apalagi kamu
meletakannya didalam file project aplikasi.
Jika kamu ingin menemukan dimana default keystore kamu yang berupa debug.keystore
kamu bisa mendapatkannya di ~/.android/debug.keystore Pada mac dan
C:\User\YourUser\.android\debug.keystore pada windows.
Tenang pada latihan kali ini kita sama sekali tidak melakukan pengkodean. Mari kita mulai
dengan yang pertama :
1. Buka salah satu project android associate favoritmu, misal My Broadcast Receiver.
2. Sekarang klik menu Build
28
Sekarang tinggal kamu klik link yangterdapat pada notifikasi tersebut dan secara
otomatis akan diarahkan dimana file apk tersebut berada biasanya pada struktur
seperti berikut project-name/module-name/build/outputs/apk/dan jika disesuaikan
dengan project yang sedang digunakan maka akan menjadi
sepertiberikut MyBroadcastReceiver/app/build/outputs/apk/apk-debug.apk
29
Dalam modul ini kita akan belajar tentang komponen-komponen dasar yang digunakan
untuk membuat aplikasi android yang sederhana.
Beberapa komponen diantaranya adalah :
1. Activity
2. Intent
3. Views and ViewGroup
4. Style and Theme
5. RecyclerView
Teori
Untuk lebih mendalami tentang Activity, kami menyarankan anda untuk membaca
referensi berikut :
Activities (https://developer.android.com/guide/components/activities/)
30
Developer yang baik, harus mengetahui secara detail tentang lifecycle sebuah Activity untuk
melakukan aksi yang tepat, terutama ketika terjadi perubahan state dari Activity. Callback
methods yang ada dapat digunakan untuk melakukan beragam proses terkait state
dari Activity. Misal melakukan semua inisialisasi komponen di onCreate(), melakukan
disconnect terhadap koneksi ke server pada onStop() atau onDestroy() dan lain sebagainya.
Pemahaman yang baik tentang daur hidup Activity akan membuat implementasi fungsi dari
rancangan aplikasi anda menjadi lebih baik. Hal ini juga meminimalisir terjadinya
error/bug/force close yang tidak diinginkan.
31
Gambar 1: Jika anda memiliki sebuah aplikasi yang terdiri dari 2 Activity. Activity pertama
dijalankan setelah pengguna meluncurkan aplikasi anda melalui icon aplikasi di layar
device. Activity yang ada saat ini berada pada posisi Activity running setelah melalui
beberapa state onCreate() onStart() onResume() dan masuk ke dalam sebuah
stack Activity.
Bilamana dari Activity pertama anda menjalankan Activity kedua melalui klik sebuah
tombol (button); posisi state dari Activitypertama anda, berada pada posisi stop dan method
callback onStop() akan dipanggil. Ini terjadi karena Activity sebelumnya sudah tidak berada
32
LifeCycle (https://developer.android.com/guide/components/activities/#Lifecycle)
33
34
Logika Dasar
1. Buat Project Baru dengan klik File -> New -> New Project... pada Android Studio
anda
35
3. Kemudian pilih tipe device untuk aplikasi beserta target minimum SDK yang akan kita
gunakan. Pilihan target Android SDK yang kita pilih akan mempengaruhi banyaknya
device yang bisa menggunakan aplikasi buatan kita. Disini kita pilih untuk tipe device
Phone and Tablet dengan minimum SDK diset ke Level 15 (Ice Cream
Sandwich)/ Klik Next untuk melanjutkan.
36
ACTIVITY KETERANGAN
Add No Activity Tidak ada Activity yang ditambahkan
Basic Activity Activity dengan template komponen material design
seperti FloatingActionButton
Empty Activity Activity dalam bentuk yang paling dasar
Fullscreen Activity Activity fullscreen tanpa status bar
Google AdMob Ads Activity Activity dengan default konfigurasi iklan Admob
Google Maps Activity Activity dengan menyediakan konfigurasi dasar
Google Maps
Login Activity Activity untuk halaman login
Master / Detail Activity yang diperuntukan untuk alur aplikasi
Flow Master Detail pada device tablet
37
Saat ini kita pilih tipe Empty Activity, klik Next untuk melanjutkan.
5. Selanjutnya, tentukan nama Activity pertama kita, saat ini kita biarkan pada kondisi
apa adanya. Ingat, jika suatu saat nanti kita ingin melakukan penambahan Activity,
best practice nya adalah dengan menambahkan Activity setelah kata nama kelas yang
akan kita buat. Misal: ProfileActivity, SettingsActivity dan lain sebagainya.
Klik Finish untuk menyelesaikan.
38
39
Selanjutnya kita akan mulai melakukan pengkodean aplikasi atau lebih enaknya
disebut ngoding. Berikut flow umumnya.
Ngoding Layout untuk User Interface aplikasi
Ngoding Activity untuk menambahkan logika aplikasi
Jangan ngetik saja atau ngoding polos, Gunakan ctrl + space untuk menggunakan code
completion dari Android Studio agar mengoptimasi import package dari komponen yang
digunakan.
Dilarang Keras untuk copy - paste! Ngoding pelan-pelan akan membuat anda lebih jago di
masa depan.
Selamat ngoding!
1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2. xmlns:tools="http://schemas.android.com/tools"
3. android:layout_width="match_parent"
4. android:layout_height="match_parent"
5. android:paddingBottom="@dimen/activity_vertical_margin"
6. android:paddingLeft="@dimen/activity_horizontal_margin"
7. android:paddingRight="@dimen/activity_horizontal_margin"
8. android:paddingTop="@dimen/activity_vertical_margin"
9. android:orientation="vertical"
10. tools:context="com.mobile.associate.barvolume.MainActivity">
11. <TextView
12. android:layout_width="match_parent"
13. android:layout_height="wrap_content"
14. android:text="Panjang"
15. android:layout_marginBottom="@dimen/activity_vertical_margin"/>
16. <EditText
17. android:id="@+id/edt_length"
18. android:layout_width="match_parent"
19. android:layout_height="wrap_content"
20. android:inputType="numberDecimal"
40
2. Akan muncul warning pada attribut android:text pada layout tersebut. Ini disebabkan
karena kita hardcode code string kita. Mari kita hilangkan code warning tersebut
dengan menekan alt+enter pada attribut android:text. Akan muncul dialog seperti ini,
pilihlah extract string resource.
41
42
5. Jika terjadi error pada attribut dimens, maka kita perlu menambahkan file dimens.xml
di dalam res
2.3 file dimens.xml sudah tidak di generate secara otomatis ketika sebuah project
dibuat. Langsung saja tambahkan dengan cara klik kanan pada directory res. Akan
muncul dialog seperti ini.
43
44
Jangan khawatir, silakan klik keatas baris merah tersebut dan silakan klik pada
icon atau dengan tekan tombol (Alt + Enter)lalu pilih implements method
2. Setelah sudah selesai silakan jalankan aplikasi dengan mengklik atau Run
‘app’ dari menu bar. Kemudian ada pilihan seperti ini.
45
46
Kemudian tambahkan juga beberapa baris berikut pada baris terakhir method onCreate
1. if (savedInstanceState != null){
2. String hasil = savedInstanceState.getString(STATE_HASIL);
3. tvResult.setText(hasil);
4. }
4. Silakan jalankan aplikasi kembali kemudian coba lakukan perhitungan dan ganti
orientasi device. Jika sudah benar maka hasil perhitungan akan dijaga.
47
Intent adalah mekanisme untuk melakukan sebuah action dan komunikasi antar komponen
aplikasi misal Activity, Services, dan Broadcast Receiver. Ada tiga penggunaan umum Intent
dalam aplikasi Android yaitu:
Memindahkan satu Activity ke Activity lain dengan atau tidak membawa data.
Menjalankan background Service misal melakukan sinkronisasi ke server dan
menjalankan proses berulang (periodic/scheduler task).
Mengirimkan obyek broadcast ke app yang membutuhkan. Misal jika aplikasi
membutuhkan proses menjalankan sebuah background service setiap aplikasi selesai
melakukan booting. Aplikasi harus bisa menerima obyek Broadcast yang dikirimkan
oleh sistem Android untuk event booting tersebut.
Explicit Intent adalah tipe intent yang digunakan untuk menjalankan komponen dari
dalam sebuah aplikasi. Explicit intent bekerja dengan menggunakan nama kelas yang
dituju misal : com.mobile.activity.DetailActivity. Umumnya intent ini digunakan untuk
mengaktifkan komponen pada satu aplikasi.
Implicit Intent adalah tipe intent yang tidak memerlukan detail nama kelas yang ingin
diaktifkan, ini memungkinkan komponen dari aplikasi lain bisa merespon request
intent yang dijalankan. Penggunaan tipe Intent ini umumnya diperuntukan untuk
menjalankan fitur/fungsi dari komponen aplikasi lain. Contohnya ketika kita
membutuhkan aplikasi kita untuk mengambil foto, daripada kita harus membuat
sendiri fungsi kamera lebih baik kita menyerahkan proses tersebut pada aplikasi
kamera bawaan dari device atau aplikasi kamera lain yang telah terinstal sebelumnya
di device atau juga jika kita membutuhkan untuk fungsi berbagi konten, kita bisa
memanfaatkan intent untuk menampilkan mana saja aplikasi yang bisa menawarkan
fungsi berbagi (share) konten. Implementasi Intent Implicit ini akan sangat
memudahkan bagi pengembang agar tetap fokus pada proses bisnis inti dari aplikasi
yang dikembangkan.
48
Codelab ini menitik beratkan pada implementasi Intent untuk melakukan perpindahan dari
Activity ke Activity dengan atau tidak membawa data. Beberapa bagian dari code lab ini akan
menjawab beberapa pertanyaan umum dalam pengembangan aplikasi Android sebagai
berikut:
Logika Dasar
Berpindah dari satu Activity ke Activity lain dengan membawa data. Activity asal
akan mengirimkan data melalui Intent dan Activity tujuan akan menerima data yang
dikirimkan.
49
50
Jangan lupa untuk menambahkan file dimens.xml secara manual di dalam res
values. Dan isikan file dimens.xml seperti berikut
o <resources>
o <!-- Default screen margins, per the Android Design guidelines. -->
o <dimen name="activity_horizontal_margin">16dp</dimen>
o <dimen name="activity_vertical_margin">16dp</dimen>
o </resources>
4. Lalu untuk MainActivity.java tambahkan beberapa baris seperti ini.
o public class MainActivity extends AppCompatActivity implements View.OnCl
ickListener{
o private Button btnMoveActivity;
o @Override
o protected void onCreate(Bundle savedInstanceState) {
o super.onCreate(savedInstanceState);
o setContentView(R.layout.activity_main);
o
o btnMoveActivity = (Button)findViewById(R.id.btn_move_activity);
o btnMoveActivity.setOnClickListener(this);
o }
o @Override
o public void onClick(View v) {
o switch (v.getId()){
o case R.id.btn_move_activity:
o break;
o }
o }
o }
5. Button btnMoveActivity akan memiliki fungsi untuk berpindah Activity ke Activity
lain. Sekarang kita buat Activity baru dengan cara sebagai berikut: Klik kanan di
package utama
aplikasi com.mobile.associate.myintentapp New Activity Empty Activity.
51
55
Selesai! Langkah pertama untuk memindahkan satu Activity ke Activity lain sudah selesai,
sekarang silakan jalankan aplikasi anda dengan mengklik tombol pada menu bar.
Seharusnya sekarang anda sudah bisa memindahkan Activity dengan mengklik tombol
‘Pindah Activity’.
56
Kita telah belajar bagaimana membuat sebuah Activity baru, di materi sebelumnya syarat
sebuah Activity harus terdaftar pada file AndroidManifest.xml dan semenjak menggunakan
Android Studio proses pendaftaran Activity ke file AndroidManifest.xml dilakukan secara
otomatis tidak manual seperti di era eclipse.
57
1. <intent-filter>
2. <action android:name="android.intent.action.MAIN" />
3. <category android:name="android.intent.category.LAUNCHER" />
4. </intent-filter>
Baris diatas bermakna bahwa MainActivity memiliki Intent Action utama dari keseluruhan
Activity yang ada di sebuah Aplikasi. Sedangkan
Bermakna, bahwa MainActivity akan dikategorikan sebagai Activity Launcher yang pertama
kali diluncurkan ketika pengguna mengklik icon aplikasi pada handset Android anda.
Selanjutnya,
Kita membuat sebuah obyek Intent dengan cara seperti diatas dengan memberikan
Kelas Activity Asal (MainActivity.this) dan Kelas Activity tujuan (MoveActivity.class)
pada kontruktor kelas Intent (constructor).
Kelas asal selalu ditekankan dengan .this yang menandakan obyek kelas saat ini dan kelas
tujuan selalu ditekankan .class.
Jika kita membiarkan code assistant dari Android Studio, maka akan tampil rekomendasi
(code hint) sebagai berikut:
58
59
1. Ayo buka activity_main.xml lagi dan tambahkan satu tombol lagi dibawah tombol
sebelumnya sehingga kode activity_main.xml kita menjadi seperti ini.
25. <resources>
26. <!-- Default screen margins, per the Android Design guidelines. -->
27. <dimen name="activity_horizontal_margin">16dp</dimen>
28. <dimen name="activity_vertical_margin">16dp</dimen>
29. </resources>
2. Setelah selesai dengan penambahan pada file activity_main.xml, maka dilanjutkan
dengan menambahkan beberapa baris berikut di MainActivity.java (yang ditebalkan).
60
61
62
Bedah Kode
Pada bagian sebelumnya anda sudah mempelajari bagaimana memindahkan satu Activity ke
Activity lain dengan membawa data. Dan itu sangat penting karena ketika kita
mengembangkan sebuah aplikasi Android yang kompleks maka akan banyak sekali Activity
yang terlibat dan perpindahan Activity dengan data akan menjadi sangat krusial dalam
memaksimalkan konten yang ada dengan experience yang diberikan oleh aplikasi kepada
pengguna.
Perbedaan mendasar antara memindahkan Activity dengan membawa data dan tidak adalah
dengan menempatkan data yang akan dikirim ke Activity tujuan pada baris ini.
1. moveWithDataIntent.putExtra(MoveWithDataActivity.EXTRA_NAME, "MobileAcademy Bo
y");
2. moveWithDataIntent.putExtra(MoveWithDataActivity.EXTRA_AGE, 5);
Kita memanfaatkan method putExtra() untuk mengirimkan data bersamaan dengan obyek
Intent. Sedangkan method putExtra() itu sendiri merupakan method yang menampung
pasangan Key-Value dan memiliki beberapa pilihan tipe input seperti berikut :
Hampir semua tipe data untuk input value disupport oleh method putExtra().
1. moveWithDataIntent.putExtra(MoveWithDataActivity.EXTRA_NAME,"MobileAcademy Boy
");
63
Catatan : Key yang dikirimkan via putExtra() harus sama dengan Key sewaktu mengambil nilai
dari data yang dikirimkan melalui getStringExtra()
Dalam konteks diatas key yang dikirimkan dan key sewaktu mengambil nilai data adalah sama
yaitu EXTRA_NAME (yang bernilai “extra_name”) dan nilai dari data yang dikirimkan via Intent
disimpan kedalam variable name bertipe data String.
Begitu juga dengan,
Sekali lagi selamat! Anda telah mempelajari dua Intent explicit dengan atau tidak membawa
data. Sebelumnya, mengirimkan data bernilai tunggal dari satu Activity ke Activity lain adalah
hal yang mudah. Bernilai tunggal karena data yang dikirimkan berasal dari satu tipe data.
Misal diatas, pengiriman nilai data name dan age dilakukan secara sendiri-sendiri, yang satu
bertipe data String dan yang lainnya bertipe data integer. Sekarang pertanyaanya bagaimana
anda bisa mengirimkan data dalam bentuk Plain Old Java Object (POJO) dari satu Activity ke
Activity lain melalui Intent? Caranya adalah dengan mengkonversi Object POJO yang anda
miliki ke dalam bentuk parcelable object.
64
1. <Button
2. android:id="@+id/btn_dial_number"
3. android:layout_width="match_parent"
4. android:layout_height="wrap_content"
5. android:text="Dial a Number"
6. android:layout_marginBottom="@dimen/activity_vertical_margin"/>
65
Setelah selesai, silakan jalankan lagi aplikasi anda dan yeay, anda sudah bisa men-dial
sebuah nomor telepon melalui aplikasi telepon bawaan dari Android/Device anda.
Selamat!
66
Baru saja kita mengimplementasikan penggunaan Intent secara implicit untuk melakukan
proses dial sebuah no telepon. new Intent(Intent.ACTION_DIAL,
Uri.parse("tel:"+phoneNumber)); kita menggunakan inputan new Intent(ACTION,
Uri); pada konstruktor sewaktu menciptakan obyek Intent dimana :
Action : Intent.ACTION_DIAL
Uri : Uri.parse("tel:"+phoneNumber)
Variabel ACTION_DIAL menentukan intent filter dari aplikasi-aplikasi yang bisa menghandle
Action tersebut. Disini aplikasi yang memiliki kemampuan untuk komunikasi akan tampil pada
opsi pilihan yang tampil ke pengguna. Selain ACTION_DIAL, di Android sudah tersedia
berbagai Action yang tinggal didefinisikan sewaktu menciptakan obyek Intent untuk
mengakomodir berbagai tujuan.
Silakan cek link berikut untuk detailnya :
Intent (https://developer.android.com/reference/android/content/Intent.html)
Buat yang belum tau apa itu Uri, berikut penjelasan singkatnya :
Uri adalah sebuah untaian karakter yang digunakan untuk mengidentifikasi nama, sumber,
atau layanan di Internet sesuai dengan RFC 2396. Pada Uri.parse("tel:"+phoneNumber) kita
melakukan parsing Uri dari bentuk teks String menjadi sebuah obyek Uri dengan
menggunakan method static parse(String). Secara struktur dibagi menjadi :
Dimana “tel” adalah sebuah skema yang disepakati untuk sumber daya telepon dan
phoneNumber adalah variabel String yang bernilai “081210841382”. Skema lain dari Uri
seperti “geo” untuk peta, “http” untuk browser sisanya bisa dilihat di halaman ini :
67
68