Modul Pelatihan
Android Programming
Oleh:
Indra, S.Kom, M.T.I (indra@budiluhur.ac.id)
Dzulfaqqar (dzulfaqqar.arab@gmail.com)
Dolly Virgian Shaka Yudha Sakti, M.Kom
(Shaka@budiluhur.ac.id)
Daftar Isi
BAB 1 ................................................................................................................................................ 4
Object Oriented Programming........................................................................................................... 4
1.1. Konsep Pemrograman dan Paradigmanya .......................................................................... 4
1.2. Teknologi Java dan Perangkat Pemrograman...................................................................... 5
1.3. Konsep Dasar Pemrograman Berorientasi Objek .............................................................. 10
1.4. Karakteristik Pemrograman Berorientasi Objek ................................................................ 19
BAB 2 .............................................................................................................................................. 26
Android Programming ..................................................................................................................... 26
2.1. Pengenalan Android ......................................................................................................... 26
2.2. Arsitektur Sistem Android ................................................................................................ 27
2.3. Fitur pada Android ........................................................................................................... 28
2.4. Life Cycle pada Android .................................................................................................... 29
2.5. Persiapan Editor Android ................................................................................................. 31
BAB 3 .............................................................................................................................................. 33
Desain dan Membuat User Interface ............................................................................................... 33
3.1. Widget Android................................................................................................................ 33
BAB 4 .............................................................................................................................................. 40
Activity, Fragment dan Intent Android ............................................................................................. 40
4.1. Pengenalan Activity.......................................................................................................... 40
4.2. Pengenalan Fragment ...................................................................................................... 42
4.3. Pengenalan Intent ............................................................................................................ 47
BAB 5 .............................................................................................................................................. 52
Desain Algoritma di Android ............................................................................................................ 52
5.1. Kalkulator Mobile ............................................................................................................. 52
BAB 6 .............................................................................................................................................. 57
Shared Preference Android.............................................................................................................. 57
6.1. MacamMacam Penyimpanan .......................................................................................... 57
BAB 1
Object Oriented Programming
A. Teori Singkat
Bahasa pemrograman?
Komputer bekerja seperti switching dan hanya mengenali 0 dan 1. Manusia tidak
(paham) berbicara dengan bahasa 0 dan 1. Perlu bahasa pemrograman yang dapat
menjadi perantara percakapan antara komputer dan manusia. Bahasa
pemrograman diubah ke dalam bahasa yang dipahami oleh komputer dengan
menggunakan interpreter atau kompiler.
Compiler or Interpreter?
1. Compiler:
Mengkompilasi source code menjadi bentuk file yang bisa dieksekusi
2. Interpreter:
Mengkompilasi dan menjalankan source code secara langsung
C Language (Compiler)
Java Version
1.0 1996
8 2014
Why Java?
� Open Source
� GUI Application -> menggunakan AWT atau Swing untuk library GUI
B. Praktikum
1. Buat class HaloIndonesia
2. Isi HaloIndonesia.java dengan main method dan tiga tampilan di bawah:
Halo Indonesia
o Class: mobil
o Object: mobilnya pak Joko, mobilku, mobil berwarna merah
� Class seperti cetakan kue, dimana kue yg dihasilkan dari cetakan kue itu
adalah object
� Warna kue bisa bermacam-macam meskipun berasal dari cetakan yang sama
(object memiliki sifat independen)
2. Perhitungan matematika
3. Memonitor kejadian dari suatu event
Parameter
Sepeda akan berguna apabila ada object lain yang berinterasi dengan sepeda
tersebut. Object software berinteraksi dan berkomunikasi dengan object lain
dengan cara mengirimkan message atau pesan. Pesan adalah suatu method, dan
informasi dalam pesan dikenal dengan nama parameter
Konstruktor
Method yang digunakan untuk memberi nilai awal pada saat object diciptakan.
Dipanggil secara otomatis ketika new digunakan untuk membuat instan class
Sifat konstruktor:
1. Nama konstruktor sama dengan nama class
2. Tidak memiliki nilai balik dan tidak boleh ada kata kunci void
Kata Kunci ‘this’
Digunakan pada pembuatan class dan digunakan untuk menyatakan object
sekarang.
C. Praktikum
1. Membuat Class, Object dan Memanggil Atribut
c. kirimSMS()
d. matikan()
Isi masing-masing method dengan tampilan status menggunakan
System.out.println()
c. modifikasi()
Isi masing-masing method dengan tampilan status menggunakan
System.out.println()
Buat class MahasiswaBeraksi, dan panggil method-method diatas dalam class
tersebut
5. Buat Class bernama Matematika, yang berisi method dengan dua parameter:
a. pertambahan(int a, int b)
b. pengurangan(int a, int b)
c. perkalian(int a, int b)
d. pembagian(int a, int b)
Buat Class bernama MatematikaBeraksi, yang mengeksekusi method dan
menampilkan:
a. Pertambahan: 20 + 20 = 40
b. Pengurangan: 10-5 = 5
c. Perkalian: 10*20 = 200
d. Pembagian: 21/2 = 10
6. Buat class Bank
Buat konstruktor class Bank dengan parameter: saldo
Buat method: simpanUang, ambilUang, dan getSaldo
Buat class BankBeraksi, tetapkan saldo awal lewat konstruktur Rp. 100000,
jalankan 3 method di atas, dan tampilkan proses sebagai berikut:
Selamat Datang di Bank ABC
Saldo saat ini: Rp. 100000
Abstraction
Cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sebagai
suatu kumpulan subsistem (object) yang saling berinteraksi.
Encapsulation
Mekanisme menyembunyikan suatu proses dan data dalam sistem untuk
menghindari interferensi, dan menyederhanakan penggunaan proses itu sendiri.
Class access level (public, protected, privat) adalah implementasi dari konsep
encapsulation.
Enkapsulasi data dapat dilakukan dengan cara:
Dalam Dalam
Dalam Class Dalam Sub
Modifier package yang Package
yang sama Class
sama Lain
private √
tanpa
√ √
tanda
protected √ √ √
public √ √ √ √
Inheritance (Pewarisan)
Suatu class dapat mewariskan atribut dan method kepada class lain (subclass)
serta membentuk class hierarchy. Pewarisan sangat penting untuk Reusability.
Pewarisan pada Java menggunakan keyword “extends”.
Polymorphism
Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang
berbeda. Implementasi konsep polymorphism:
1. Overloading: Kemampuan untuk menggunakan nama yang sama untuk
beberapa method yang berbeda parameter (tipe dan atau jumlah)
2. Overriding: Kemampuan subclass untuk menimpa method dari superclass,
yaitu dengan cara menggunakan nama dan parameter yang sama pada method
Polymorphism – Overloading
Polymorphism – Overriding
B. Praktikum
1. Buat class MatematikaCanggih yang merupakan inherit dari class Matematika
a. Tambahkan method modulus(int a, int b) yang menghitung modulus dari a
dan b
b. Operator modulus adalah %
2. Buat class MatematikaCanggihBeraksi yang memanggil method pertambahan,
perkalian dan modulus
3. Overloading pada Matematika
a. Kembangkan class Matematika, MatematikaCanggih dan
MatematikaBeraksi
e. Misalnya:
pertambahan(12.5, 28.7, 14.2) pertambahan(12, 28, 14)
pertambahan(23, 34) pertambahan(3.4, 4.9)
BAB 2
Android Programming
2.1.Pengenalan Android
A. Tujuan
Praktikum diharapkan dapat:
1. Memahami Android
B. Teori Singkat
B. Teori Singkat
Android merupakan sistem operasi, middleware, dan aplikasi berdaya guna. Pada
android memiliki sistem arsiketur yang terdiri dari
� Linux Kernel => merupakan sistem operasi pada android yang berbasis Linux
� Android Runtime => merupakan inti atau nyawa, Dalvik Virtuual Machine
memang di optimalkan untuk android mobile device
B. Teori Singkat
Google telah menyediakan banyak fungsionalitas yang dapat memudahkan
programmer dalam membuat aplikasi apapun di android.
6. Media support for common audio, video, and still image formats (MPEG4,
H.264, MP3, AAC, AMR, JPG, PNG, GIF)
7. GSM Telephony (hardware dependent)
8. Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
B. Teori Singkat
Dalam pembuatan aplikasi android memiliki beberapa tahap seperti gambar
dibawah ini.
1. Pada tahap pertama ini menyiapkan tampilan dan kebutuhan seperti kata-
kata, gambar, warna dan lain-lain
a. layout => file-file xml berupa tampilan
b. string => file xml yang berisi variabel kata yang bersifat global
c. asset => tempat storage file seperti movie, sound dan lain-lain
d. style => file xml yang berisi theme
e. color => file xml yang berisi variabel warna yang bersifat global
2. Pada tahap kedua ini, SDK pada aplikasi akan otomatis mengenerate /
membuat R.java yang berisi kode-kode yang melambangkan setiap bagian
dari xml ke kode yang dapat dikenali file .java pada tahap ketiga.
3. Pada tahap ketiga ini, proses pembuatan activity. Untuk satu activity akan
menangani satu layout utama seperti contoh dibawah ini ActivityLayout
memiliki method onCreate yang mengatur setContentView ke
R.layout.activity_layout yang dibuat pada tahap pertama.
4. Pada tahap keempat ini, merupakan proses pengaturan aplikasi dari versi
android minimal dan maksimal, nama aplikasi, icon / gambar aplikasi,
permission yang dibutuhkan dan mendaftarkan setiap activity yang ada di
aplikasi. Aplikasi android terdiri dari satu hingga banyak activity.
5. Pada tahap kelima ini, keseluruhan file akan disatukan dan dibuild menjadi
aplikasi utuh yang sudah siap di gunakan.
5. Setting Android Virtual Device (AVD) dengan cara buka Eclipse ->
Window -> Android Virtual Manager -> pilih Create untuk membuat
device baru -> beri nama dan pilih OS yang diinginkan
C. Praktikum
1. Buat sebuah android application dengan cara pilih File -> New -> Android
Application Project dengan ketentuan berikut
� Theme : None
Jalankan aplikasi dengan cara klik kanan pada project -> pilih Run As ->
Android Application -> pilih AVD yang sudah dikonfigurasi sebelumnya.
BAB 3
Desain dan Membuat User Interface
3.1.Widget Android
A. Tujuan
Praktikan diharapkan dapat:
1. Mengetahui berbagai jenis widget
2. Mampu menggunakan widget
B. Teori Singkat
Widget digunakan untuk membuat tampilan memiliki fungsi. Dengan widget
sebagai perantara user menggunakan sistem pada aplikasi. Beberapa widget dasar
adalah: TextView, Button, Image, EditText, CheckBox, RadioButton, ListView.
Setiap widget memiliki property atau atribut yang mengatur bagaimana widget itu
ditampilkan, seperti tinggi dan lebar widget. Property ini dapat diset melalui xml
layout, property editor atau melalui program. Beberapa widget memiliki beberapa
event yang ter-trigger berdasarkan aksi dari pengguna, misalnya event click pada
button.
Berikut akan kita bahas beberapa widget yang terpenting. Silahkan buat project
baru.
1. Text View
TextView digunakan untuk menampilkan label teks. View memiliki beberapa
property seperti android:textSize, android:textStyle, android:textColor.
Contoh :
Hasil :
Penjelasan:
2. Button
Button merupakan turunan dari TextView sehingga yang berlaku di textView
juga berlaku di button. Tambahan property yang penting adalah
android:onClick
Contoh :
Hasil :
Penjelasan :
� android:clickable => membuat Button dapat di klik, bernilai true atau false
3. EditText
EditText digunakan untuk menerima input dari pengguna. Pada palette telah
disediakan berbagai jenis EditText, penggunaan disesuaikan berdasarkan apa
yang akan diinput. Property yang digunakan pada EditText memiliki tambahan
seperti
4. Spinner
Spinner digunakan untuk menampilkan pilihan seperti combo box
Contoh :
Gambar 1
Gambar 2
Gambar 3
Hasil :
Penjelasan :
� android:entries => mengisi Spinner dengan data array, digunakan saat isi
dari Spinner tetap
� Untuk mengisi data pada Spinner melalui program dapat diliat pada
Gambar 3
5. CheckBox
User dapat memilih lebih dari satu pilihan dengan checkbox.
Contoh:
Hasil:
Pada CheckBox memiliki property umum seperti yang lainnya, tetapi juga
memiliki property android:checked yang dapat diberi nilai true atau false.
Property tersebut digunakan untuk memberi checklist secara default pada
suatu pilihan jika diberi nilai true.
6. RadioButton
Pada radioButton, hanya satu pilihan yang boleh aktif (mutual exclusive) di
dalam satu group yang disebut radioGroup.
Contoh:
Hasil:
7. ListView
List view adalah widget untuk menampilkan data dalam bentuk list yang dapat
di-scroll. Karena ukuran layar smartphone terbatas, listview merupakan salah
satu widget terpenting dan paling sering digunakan untuk menampilkan
kelompok informasi.
BAB 4
Activity, Fragment dan Intent Android
4.1.Pengenalan Activity
A. Tujuan
Praktikan diharapkan dapat:
1. Memahami activity pada android
B. Teori Singkat
Activity adalah komponen terkecil penyusun Android App. Android pada
umumnya minimal memiliki satu activity atau lebih. Activity digunakan untuk
interaksi pengguna dengan sistem pada aplikasi. Pada android memiliki life cycle
activity seperti gambar di bawah ini
onPause() : method ini akan berjalan ketika ada activity lain sedang berjalan di
activity ini
onStop() : method ini akan berjalan ketika activity sudah tidak berjalan di
foreground maupun background
Mengatur activity ada 2 hal penting yang harus diperhatikan yaitu pada activity
class memiliki method setContentView() dan pada AndroidManifest.xml harus
didaftarkan untuk setiap activity.
4.2.Pengenalan Fragment
A. Tujuan
Praktikan diharapkan dapat:
1. Memahami fragment pada Android
B. Teori Singkat
Sebelumnya sudah mengetahui activity dan bagaimana menggunakan activity.
Activity merupakan wadah untuk tampilan. Activity yang di tampilkan pada
device dengan layar lebar seperti tablet akan berantakan atau tidak sesuai. Pada
akhirnya activity dapat menampung satu atau lebih mini-activity. Mini-activity ini
disebut dengan fragment.
Sebagai contoh fragment 1 akan merupakan activity pertama dan fragment 2
merupakan activity lain yaitu activity kedua. Activity pertama merupakan list
buku bacaan yang pengguna di arahkan memilih salah satu jenis. Activity kedua
akan menampilkan judul bacaan.
Fragment 1 Fragment 2
Majalah
Koran
Komik Judul Bacaan
...
...
Novel
Pada penerapannya pada device kecil maka akan menampilkan fragment menjadi
activity yang terpisah menjadi 2. Namun pada device berlayar besar fragment
akan menjadi satu activity.
Fragment 1 Fragment 2
Majalah
Koran
Judul
Komik
Bacaan
...
...
Novel
Fragment 1 Fragment 2
Majalah
Koran
Judul
Komik
Bacaan
...
...
Novel
C. Praktikum
Buat file di res->layout dengan nama fragment1.xml dan fragment2.xml dan ubah
main.xml
Pada main.xml diatas terdapat 2 fragment name Fragment1 dan Fragment2. Buat
file java Fragment1.java dan Fragment2.java seperti dibawah ini
Hasil :
Selanjutnya buat fragment secara dinamik, aplikasi akan memeriksa apakah
device dalam keadaan landscape atau portrait dan akan menampilkan setiap
fragment. Beri tanda remark atau komen pada kedua fragment di main.xml <!--
dan --> kemudian lengkapi program pada class MainActivity.
Hasil:
4.3.Pengenalan Intent
A. Tujuan
Praktikan diharapkan dapat:
1. Memahami Intent antar Activity
B. Teori Singkat
Untuk menghubungkan antar activity dapat digunakan intent. Intent adalah
fasilitas untuk menghubungkan satu activity ke activity yang lain, baik untuk app
yang sama maupun app yang berbeda. Intent juga digunakan untuk notifikasi
event misalnya SD card dimasukkan, SMS masuk dan lain-lain.
C. Praktikum
Intent tidak hanya dapat digunakan untuk memanggil activity pada aplikasi yang
sama tetapi dapat juga memanggil activity pada aplikasi lain seperti Web Browser
dan Telepon. Tambahkan beberapa button pada main.xml seperti berikut
Kemudian lengkapi program pada MainActivity.java seperti berikut
BAB 5
Desain Algoritma di Android
5.1.Kalkulator Mobile
A. Tujuan
Praktikan diharapkan dapat:
1. Membuat Aplikasi Kalkulator Sederhana
2. Mengembangkan dan Menerapkan Algoritma di Android
B. Teori Singkat
Kalkultator adalah perangkat sederhana sering digunakan oleh siswa, pekerja dan
ibu rumah tangga untuk menyelesaikan permasalahan terkait matematika. Pada
pembahasan ini akan dijelaskan pembuatan kalkulator sederhana untuk proses
perhitungan penambahan, pengurangan, pembagian dan perkalian. Ilustrasi dari
alur program kalkultor sederhana memiliki dua tahap. Tahap pertama adalah
memasukkan dua nilai yang akan dilakukan operasi matematika. Tahap kedua
adalah dua inputan yang sudah diinput akan dilakukan proses perhitungan sesuai
dengan jenis operator yang dipilih dengan menggunakan algoritma yang dibangun
berdasarkan perhitungan matematika.
Adapun kode atau sintak untuk membuat desain Form Kalkulator pada Gambar
5.1 perangkat Android pada main .xml adalah sebagai berikut:
Pada tahap terakhir adalah melihat hasil dari program Kalkulator Mobile seperti
pada Gambar 5.3 :
BAB 6
Shared Preference Android
6.1.Macam-Macam Penyimpanan
A. Tujuan
Praktikan diharapkan dapat:
1. Memahami penyimpanan data pada android
B. Teori Singkat
Metode penyimpanan pada android dapat menggunakan banyak cara, diantaranya
1. File Lokal
� SharedPreferences
� XML File
� Text
� SQL Lite
2. File Server
� XML File
� Text
File lokal mengartikan data tersimpan di dalam device dalam 4 bentuk diatas.
SQL Lite merupakan penyimpanan menggunakan bahasa Structure Query
Language (SQL) dengan ukuran yang terbatas. Penyimpanan data yang paling
sering digunakan yaitu menggunakan file server dengan cara XML File dan
JSON.
SharedPreference merupakan penyimpanan data berdasarkan key-value pair yang
berarti data disimpan dengan sebuah kode dalam bentuk kata dan memiliki nilai
sebagai pasangan dari kode tersebut.
C. Praktikum
1. Buatlah sebuah Android Application Project baru dan ubah main.xml menjadi
seperti berikut
Selanjutnya untuk memeriksa apakah data tersimpan dalam file xml maka
pada Eclipse pilih Window -> Open Perspective -> Other -> DDMS. Pilih
device aktif yang digunakan dari Devices.
Kemudian pilih File Explorer dan buka lokasi file SharedPreference berada,
yaitu di data -> data -> nama package (com.praktikum.android) ->
shared_prefs -> nama file preference (MyPrefs.xml) kemudian pilih export di
pojok kanan didalam lingkaran merah
Maka data akan tersimpan dalam file xml tersebut seperti berikut
Untuk melihat data yang telah dibuat sama seperti cara sebelumnya berada di
data -> data -> nama package (com.praktikum.android) -> shared_prefs ->
nama file berupa nama package ditambah _preferences
(com.praktikum.android_preference.xml).
Aplikasi ini memiliki 3 button pada main.xml
Load Preferences Screen untuk memanggil activity lain data akan tersimpan
disana
Display Preferences Screen untuk menampilkan isi saat ini pada file xml
Modify Preferences Screen untuk mengganti nilai pada file xml
Daftar Pustaka:
Lee,Wei Meng. (2012). Beginning Android 4 Application Development. John
Wiley & Sons, Inc. Indianapolis, Canada.
Satriawahono, Romi. (2013). OOP: Java GUI. Retrieved From
http://romisatriawahono.net/lecture/java/romi-java-03-gui-
october2013.pptx.