Pemrograman Android
ITFest
IT Fest2015
2015HMPS
HMPSTI
TIUniversitas
UniversitasStikubank
Stikubank(Unisbank)
(Unisbank)Semarang
Semarang
0
Pemrograman Android
Table of Content
Daftar Isi
Table of Content ............................................................................................................................ 1
Daftar Isi ........................................................................................................................... 1
Basic.............................................................................................................................................. 2
Java dan Android ............................................................................................................. 2
Struktur Aplikasi Android ........................................................................................ 3
User Interface................................................................................................................................ 4
Layout (XML Layout) ...................................................................................................... 4
Form Widgets, Component Palette........................................................................... 4
Contoh Program.................................................................................................................. 5
Resources ...................................................................................................................................... 10
Images .................................................................................................................................... 10
Contoh Program.................................................................................................................. 10
Intent ............................................................................................................................................ 15
Konsep Intent .................................................................................................................... 15
Pemanggilan Intent Internal (Built-in)........................................................... 15
Pemanggilan Intent Sub-activity........................................................................... 16
Contoh Program.................................................................................................................. 16
Aplikasi Belajar Android................................................................................................................. 21
Ide Cerita ........................................................................................................................... 21
Implementasi ...................................................................................................................... 21
Kode Program ...................................................................................................................... 21
Indeks ........................................................................................................................................... 22
Dalam membuat program android, kita harus mengetahui dasarnya yaitu bahasa Java.
Program bahasa Java sering disebut sebagai Class. Hal ini dikarenakan bahasa Java
merupakan bahasa yang berorientasi objek, di mana segala sesuatu dibuat ke dalam
struktur objek yang dapat berupa nama objek, anggota objek dan kemampuan dari objek
tersebut, lebih dikenal dengan Class-Attribut-Methode. Struktur dari sebuah class dapat
dilihat pada contoh Kode Program 1.
Struktur sebuah aplikasi android sering disebut project dapat dilihat pada Bagan 2
bagian nomor 1. Beberapa folder dan file tersebut memiliki fungsi sebagai berikut:
src berisi package (paket) yang menapung seluruh Class
gen berisi file java yang digenerate secara otomatis, menyimpan alamat semua
variabel, resource, layout ke dalam bentuk class
bin berisi file objek hasil kompilasi projek
libs tempat menyimpan pustaka yang diperlukan oleh aplikasi
res tepat menyimpan berkas eksternal (images), layout, daftar variabel, dll
AndroidManifest.xml berisi manifes penyusun aplikasi
Layout mengatur bagaimana aplikasi menampilkan posisi widget di layar. Terdapat banyak
variasi dari layout yang dapat digunakan pada aplikasi android. Namun kita dapat melihat beberapa
layout utama yang sering digunakan yaitu:
Relative Layout
Linear Layout
Grid Layout
Table Layout
Absolute Layout
Bagan 4. Rancangan UI
Kemudian lakukan perubahan nilai Text masing-masing komponen di kolom Properties menjadi
seperti pada Bagan 5.
Sebelum menuliskan kode program utama, silahkan Anda kompilasi aplikasi tersebut
dengan cara: Klik kanan nama project (di kolom Package Explorer) pilih menu Run As |
Android Application. Pastikan tidak ada kesalahan sehingga emulator akan menampilkan
aplikasi seperti ditunjukkan pada
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2"
android:layout_marginTop="22dp"
android:text="Nama"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:text="Kota Asal"
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView3"
android:layout_below="@+id/textView3"
android:text="Hobi"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView3"
android:layout_marginLeft="36dp"
android:layout_toRightOf="@+id/textView1"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_alignTop="@+id/textView3"
android:ems="10" />
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText2"
android:layout_below="@+id/editText2"
android:ems="10" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView4"
android:layout_below="@+id/editText3"
android:layout_marginTop="16dp"
android:text="Proses" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_alignRight="@+id/editText3"
android:text="Tutup" />
<TextView
android:id="@+id/textView5"
</RelativeLayout>
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edNama=(EditText)findViewById(R.id.editText1);
edKota=(EditText)findViewById(R.id.editText2);
edHobi=(EditText)findViewById(R.id.editText3);
txHasil=(TextView)findViewById(R.id.textView5);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Pastikan tidak ada kesalahan atau tanda error yang muncul (kecuali tanda warning)
kemudian lakukan kompilasi seperti cara sebelumnya.
Images
Gambar merupakan komponen yang sangat penting untuk menjadikankan aplikasi
lebih menarik. Dikarenakan sebuah perangkat mobile memiliki variasi kerapatan pixel
maupun resolusi layar yang beragam, maka dalam membangun aplikasi kita harus
mempertimbangkan bagaimana gambar yang kita sertakan dapat ditampilkan secara
proporsional pada perangkat yang berbeda. Android telah menyediakan direktori khusus
untuk masing-masing gambar berdasarkan kerapatan pixel yaitu:
project/res/drawable-hdpi
project/res/drawable-ldpi
project/res/drawable-mdpi
Pengelompokan tersebut ditentukan seperti pada Bagan 7.
ldpi untuk low density (resolusi rendah), mdpi untuk medium dan hdpi untuk high
density.
Contoh Program
a. Percobaan 1
Pada percobaan ini, kita akan membuat aplikasi sederhana untuk menampilkan
gambar baik sebagai background, maupunsebagaiproperti dari sebuah widget (Button,
ImageButton, ImageView). Silahkan buat projek baru melalui menu File | New | Android
Application Project, isi nama aplikasi beserta nama project dengan UI_Image. Kemudian
click Next hingga selesai.
Buka direktori /res/drawable-hdpi, copy-paste file gambar yang sudah disediakan ke
dalam folder tersebut. Adapun file gambar yang akan digunakan dapat dilihat pada Bagan 8.
Buka Palette Images & Media, tambahkan satu buah komponen ImageView dan dua
buah ImageButton, atur posisi sesuai keinginan Anda. Setiap Anda menambahkan sebuah
widget tersebut, Anda akan langsung diminta untuk menyertakan file gambar sebagai
sumber.
Untuk lebih detail, Anda dapat memeriksa file xml-layoutnya, seperti pada Kode
Program 4.
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="170dp"
android:layout_marginRight="51dp"
android:src="@drawable/man_aqua" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imageView1"
android:layout_alignParentBottom="true"
android:layout_marginBottom="28dp"
android:src="@drawable/pilih_tombol_ok" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageButton1"
android:layout_marginRight="18dp"
android:layout_toLeftOf="@+id/imageButton1"
android:src="@drawable/pilih_tombol_cancel" />
</RelativeLayout>
Periksa kempali penulisan project lalu Simpan dan lakukan kompilasi program Anda.
b. Percobaan 2
Pada percobaan kedua ini, kita akan melakukan modifikasi program sebelumnya, yaitu
membuat efek switching untuk komponen ImageButton.
Lakukan klik kanan pada direktory /res/drawable-hdpi/ pilih New| Android XML File,
dengan nama file pilih_tombol_ok, pilih root element: selector, lalu Finish. Lakukan sekali
lagi untuk file pilih_tombol_cancel.
<item android:state_pressed="true"
android:drawable="@drawable/button_ok"></item>
<item android:drawable="@drawable/button_ok2"></item>
</selector>
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ImageButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ui_image);
tombolOk = (ImageButton)findViewById(R.id.imageButton2);
tombolOk.getBackground().setAlpha(0);
tombolCancel = (ImageButton)findViewById(R.id.imageButton1);
tombolCancel.getBackground().setAlpha(0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Simpan dan lakukan kompilasi program Anda, perhatikan efek yang terjadi, lakukan
percobaan dengan mengganti gambar, atau sesuai dengan kreasi Anda. Selamat mencoba.
Konsep Intent
Sebuah aplikasi yang ada di perangkat mobile, seperti android, dapat memiliki satu
buah tampilan antarmuka atau lebih, tergantung dari fitur yang dimilikinya. Masing-masing
antarmuka tersebut tentunya memiliki activity yang berbeda. Untuk dapat berpindah dari
satu tampilan activity ke activity lainnya, Android menyediakan mekanisme pemanggilan
dengan Intent. Activity yang dipanggil dapat berupa sub-activity yang dimiliki oleh aplikasi
yang dibuat, dapat pula berupa activity yang sudah ada (built-in) di dalam perangkat
android. Struktur activity beserta pemanggilan intent ditunjukkan pada Bagan 13.
Proses pembuatan intent sangat mudah. Intent memiliki dua buah argumen utama
yaitu :
1. Action Nama fungsi yang ingin ditampilkan, dapat berupa fungsi built-in seperti:
ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, dll. Atau activity yang dibuat oleh
user.
2. Data data primer sesuai dengan aksi yang akan ditampilkan.
Contoh Program
Buat projek baru melalui menu File | New | Android Application Project, isi nama
aplikasi beserta nama project dengan UI_Intent. Kemudian click Next hingga selesai.
Buka file layout kemudian rancanglah seperti pada Bagan 14.
Selanjutnya, buat sebuah class yang akan dijadikan sub-activity. Buka direktori
/src/package/ pastikan terdapat satu file class yaitu MainActiviti.java sebagai activity
utama. Klik kanan pada direktori tersebut, pilih New | Class, lalu buat nama BioData dan
finish. Perhatikan Bagan 15.
Maka akan ditampilkan satu buah class kosong, lakukan perubahan agar class tersebut
menjadi sebuah Activity, seperti ditunjukkan pada Bagan 16.
import android.app.Activity;
import android.os.Bundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout._________);
}
}
Kemudian buat Antarmuka untuk sub-activity BioData tersebut. Klik kanan pada
direktory /res/layout/, pilih menu New | Android XML File, isi nama dengan ui_biodata,
pilih root element nya LinearLayout, lalu Finish.
PERHATIKAN: Pastikan besar kecilnya huruf dari kode yang Anda tulis.
Ide Cerita
Buat sebuah aplikasi untuk menampilkan informasi utama berkaitan dengan materi
pemrograman android seperti yang ada pada modul ini. Aplikasi memiliki menu seperti yang
ada pada daftar isi modul. Masing-masing sub-activity merepresentasikan sub-bab yang ada
pada modul.
Implementasi
Aplikasi tersusun seperti pada Bagan 21.
tutup Aplikasi
Kode Program
Silahkan kembangkan Kreasi Anda dalam membuat aplikasi tersebut sesuai dengan
materi yang sudah Anda praktekkan sebelumnya. Selamat mencoba