Create Your ANDROID Apps

Workshop BLICT Fest 2012
Fakultas Teknologi Informasi Universitas Budi Luhur

Daftar Isi

1 Installasi SDK dan AVD Persiapan System . . . . . . . . . . . . . . . . . . Installasi Android SDK Starter Pack . . . . . . . Installasi ADT plugin untuk Eclipse . . . . . . . Menambahkan Platform dan Komponen Lainnya Membuat Virtual Device . . . . . . . . . . . . . . 2 Hello, Android Membuat Project Baru Pengenalan project . . Menjalankan Aplikasi . Latihan . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

1 1 2 3 5 7 10 10 12 15 16

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

3 Kalkulator 20 Langkah-langkah: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4 Notepad i 33

ii Langkah-langkah . . . . . . . . . . . . Storage System . . . . . . . . . . . . . Menyimpan, Membaca dan Menghapus Latihan . . . . . . . . . . . . . . . . . . . . . . . Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 50 54 67

5 Update Facebook 70 Langkah-langkah . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Membuat Aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

– On Ubuntu Linux. Dan minimal kebutuhan space Hardisk untuk satu platform Android adalah 500MB (diluar JDK dan Eclipse).or 64-bit) • Mac OS X 10. 2.or 64-bit). Lucid Lynx) – GNU C Library (glibc) 2.5. version 8. Beberapa kebutuhannya antara lain: 1. or Windows 7 (32.04 or later is required. For information about how to add support for 32-bit applications. – 64-bit distributions must be capable of running 32-bit applications. Sistem Operasi • Windows XP (32-bit).MODUL 1 Installasi SDK dan AVD Persiapan System Sebelum memulai mengembangkan aplikasi untuk android. Vista (32. see the Ubuntu Linux installation notes. Anda perlu menyiapkan Komputer Anda agar siap untuk digunakan untuk installasi Android SDK. 1 .7 or later is required. Hardware Kebutuhan hardware paling tidak menyesuaikan dengan kebutuhan hardware dari Sistem Operasi yang ada di atas.8 or later (x86 only) • Linux (tested on Ubuntu Linux.

INSTALLASI SDK DAN AVD 2 3. Maka dari itu. Jangan lupa dimana Anda mengekstraknya. 5.eclipse.1 atau lebih besar) – Eclipse IDE untuk Java EE Developers • ADT Plugins untuk Eclipse Installasi Android SDK Starter Pack 1. Untuk mengecek apakah JDK telah terinstall coba jalankan perintah berikut: prompt> javac -version javac 1.com/sdk/index. Download versi terakhir dari Android SDK sesuai dengan Sistem Operasi Anda di: http://developer.MODUL 1.6.tgz. karena akan kita butuhkan nanti untuk konfigurasi ADT Plugin di Eclipse dan ketika menggunakan tool-tool untuk menginstall komponen ADT.zip dan .org/downloads/. 4. JRE saja tidak cukup. Eclipse IDE Minimal Eclipse 3.5.android. . maka JDK telah terinstall dengan baik. Android SDK Starter Package dan Android SDK Component. dan paling tidak telah memiliki: • Eclipse JDT plugins Jika Anda belum menginstall Eclipse ada dapat mendownload installernya di http://www.0_20 Jika telah muncul versi javac.5 (Galileo) atau lebih baru. estrak paket yang telah anda download pada direktory yang aman. sebaiknya Anda menginstall salah satu dari paketan berikut: – Eclipse IDE untuk Java Developers – Eclipse Classic (versi 3. Beberapa paket Eclipse yang ada telah disertakan dengan JDT namun ada juga yang belum. Untuk paket .html 2. JDK 5 atau JDK 6 Anda harus menginstall JDK terlebih dahulu sebelum bisa mengembangkan applikasi untuk Android.

3. kemudian installer nanti akan mengecek keberadaan JDK pada system Anda... . untuk menambahkan repository ADT. Jalankan Eclipse.. jalankan installer . Untuk menginstallnya.. Installasi ADT plugin untuk Eclipse 1. Khusus untuk windows Anda sebaiknya mendownload yang versi .1: Install New Software. kemudia install SDK.. Pada jendela Install tersebut klik button Add.. Pilih menu Help >Install New Software.exe.exe yang Anda download. 2. Gambar 1.MODUL 1. INSTALLASI SDK DAN AVD 3 3.

sebaiknya Anda menginstallnya melalui offline repository. Caranya yakni: 1. 2.MODUL 1. Jalankan Eclipse.android. Klik Browse pada SDK Location kemudian cari dimana anda mengextrak atau menginstall Android SDK. Jika sudah. INSTALLASI SDK DAN AVD 4. 4 Gambar 1. pilih Android. Pada jendela berikutnya Anda akan melihat list dari paket-paket yang akan di download. Pilih menu Window >Preferences. Filenya dapat Anda download di: http://developer.google. pada dialog Available Software. Kemudian pilih Next. Catatan: Jika Anda tidak memiliki koneksi internet.com/android/eclipse/ pada location di jendela Add Repository. (Pada Mac OS X melalui: Eclipse >Preferences) 3. 6.. Ketika installasi selesai. kemudian klik Ok. 4. Misalnya anda mengextraknya di /opt maka pada SDK Location menjadi: /opt/android-sdk-<versi-sdk>. centang Developer Tools kemudian klik Next.com/sdk/eclipse-adt..html Selanjutnya yakni Anda perlu mengarahkan plugin ADT tersebut agar mengetahui lokasi SDK yang telah anda install atau extrak di atas. Tambahkan alamat repository: https://dl-ssl. Pada side panel. restart Eclipse. 7. untuk membuka jendela konfigurasi.2: Menambah Repository 5. .

Anda dapat menginstall hanya satu saja atau beberapa platform sekaligus dalam SDK anda.0.exe pada direktory tempat Android SDK terinstall. 5 Menambahkan Platform dan Komponen Lainnya Langkah terakhir untuk dapat menggunakan SDK yakni menambahkan Platform Android ke SDK Anda. Android terdiri dari beberap Platform yakni dari 1.5 sampai dengan yang terakhir 3. Caranya yakni: 1. INSTALLASI SDK DAN AVD 5. Seperti Anda ketahui.MODUL 1. Kemudian jalankan perintah: ./android 2. Pada jendela Android SDK and ADV Manager navigasi ke bagian Available package . Klik Apply kemudian Ok./android kuro@linux:/opt/android-sdk-linux_x86/tools$ . Jalankan Android SDK and ADV Manager dengan cara: • Memalui Eclipse: pilih menu Window >Android SDK and AVD Manager • Melalui Windows: double klik SDK Manager. • Melalui Linux dan Mac OS X: Buka terminal dan masuk ke direktory tools/ yang ada di dalam direktory SDK Android Anda (misalnya /opt/android-sdk-linux x86).

Pilih (centang) paket-paket yang akan di install. Rekomendasi minimal yakni: • Android SDK Tools • Android SDK Platform tools • SDK Platform (sesuai kebutuhan) • USB Driver for Windows (Hanya untuk Windows) (Optional) • Documentation (Optional) • Sample For SDK API (Optional) • Google API’s (Optional) • Additional SDK Platforms (Optional) . INSTALLASI SDK DAN AVD 6 Gambar 1.3: Android SDK and ADV Manager 3.MODUL 1.

. Jalankan Android SDK and ADV Manager. .MODUL 1. INSTALLASI SDK DAN AVD 7 4. tanpa harus memiliki perangkat Android itu sendiri. Setelah installasi selesai.. Untuk membuat AVD baru. Anda dapat menambahkan Virtual device jika diinginkan pada SDK Anda. Membuat Virtual Device AVD atau Android Virtual Devices adalah device virtual yang bisa digunakan untuk mengemulasi dan mengujicoba program yang telah kita buat di dalam PC. Pada jendela Android SDK and ADV Manager navigasi ke bagian Virtual devices Gambar 1. 2. Kemudian klik Install Selected untuk menginstall semua paket yang dipilih. 5. caranya dapat Anda lihat pada bagian Menambahkan Platform di atas. Cara membuatnya yakni: 1. Klik New.4: Android SDK and ADV Manager 3.

6. Untuk mencoba. Anda juga dapat menambahkan beberap fitur lainnya untuk AVD tersebut dengan mengklik New. pada bagian Hardware. Beri nama. klik Create AVD.5: Create New Android Virtual Device (ADV) 4.. 5. kemudian pilih Target Platformnya. .MODUL 1. Jika sudah selesai. pada Jendela Android SDK and ADV Manager pilih AVD yang telah Anda buat kemudian klik Start.. INSTALLASI SDK DAN AVD 8 Gambar 1. kemudian pilih Launch pada jendela Launch Option. Untuk ukuran SD Card dapat anda tentukan bebas misalnya 512MiB...

MODUL 1.6: AVD yang telah berhasil dibuat . INSTALLASI SDK DAN AVD 9 Gambar 1.

. 2. Gambar 2. langkah-langkahnya yakni: 1. Jalankan Eclipse. untuk membuka dialog New Project. Pilih menu File >New >Project.MODUL 2 Hello. Android Membuat Project Baru Untuk membuat project Android baru.1: New Project 10 ..

HELLO.32 Gambar 2.3. ANDROID 11 3. 4. Sesuaikan dengan AVD atau target versi Android dimana aplikasi Anda akan berjalan nantinya.MODUL 2.2: New Android Project #1 dapat anda ganti dengan nama yang lain. Kemudian Klik Next>. Selanjutnya pada dialog New Android Project isi dengan: • Project name: HelloAndroid1 • Contents: pilih ”Create new project in workspace” dan centang ”Use default location” • Build target: Android 2. pilih project Android >Android Project. Pada jendela New Project tersebut. 2 1 .

helloAndroid3 • Create Activity: helloAndroid4 • Min SDK Version: 10 (Atau dikosongkan) Seperti terlihat pada kedua gambar di atas. . Kemudian klik Finish. Pengenalan project Pada jendela Eclipse. anda akan menemukan tiga sub window lainnya yakni: 3 4 harus minimal dua identifier dan dipisan tanda titik.MODUL 2. HELLO. ANDROID 12 Gambar 2. Hanya boleh satu kata.3: New Android Project #2 • Application name: Hello Android • Package name:latihan.

.3. Package Explorer 13 Pada Package Explorer ini Anda akan menemukan tree project yang telah anda buat. Sedangkan yang berada di bawah gen/ adalah file-file source code yang digenerate otomatis oleh SDK. HELLO. • Android 2. Pada latihan pertama ini kita masih belum menggunakannya.3 (atau terkadang Android Library) Berisi library target Android. • assets Berisi file-file yang akan dipaketkan bersama dengan aplikasi Anda. Beberapa hal yang perlu Anda perhatikan dalam project explorer ini yakni: • Source program (dibawah src/ dan gen/) File-file yang berada di bawah src/ adalah source code program yang dapat Anda ubah. ANDROID 1.MODUL 2.

xml. Untuk mencoba.java yang ada di bawah src/latihan. – values Berisi konstanta. . layout. • Manifest (file AndroidManifest. Selanjutnya coba buka file main. HELLO. – Layout (file res/layout/main. 2.xml yang ada pada res/layout/ atau file AndroidManifest.MODUL 2.xml) File XML ini berisi konfigurasi project Android Anda. Untuk aplikasi Hello Android ini hanya berisi gambar Icon aplikasi.xml) Berisi konfigurasi Layout atau susunan tampilan widget-widget pada layar Android. string dan lain sebagainya yang digunakan pada Aplikasi. ANDROID • resource (dibawah res/) Berisi: 14 – drawable-*. values dan lain sebagainya.helloAndroid/. silahkan buka file helloAndroid. Jendela editor akan langsung berubah sesuai dengan file apa yang dibuka. yakni resource yang berisi gambar-gambar untuk aplikasi Anda. Jendela Editor Pada jendela editor ini Anda dapat mengedit source code.

ANDROID 15 Menjalankan Aplikasi Untuk menjalankan aplikasi pada AVD. Gambar 2. HELLO.4: Run As Tunggu sampai AVD berhasil di load sempurna dan menghasilkan Run program seperti: . Pilih Android Application pada dialog Run As. caranya yakni: • pilih menu Run >Run atau • tekan tombol kombinasi Ctrl+F11 atau • tekan tombol Run yang ada pada toolbars. Kemudian klik Ok.MODUL 2.

Buka file strings.xml editor.xml.6: string.MODUL 2. HELLO.5: Hello. . ANDROID 16 Gambar 2. Gambar 2. Android Latihan 1.xml yang ada pada res/values/strings.

3. ANDROID Kemudian klik Add. . 17 2.. Kemudian klik OK. Pada dialog pilih String untuk menambahkan sebuah string. Gambar 2.MODUL 2. untuk menambahkan String. Kemudian simpan file.. HELLO. Isi string baru dengan: • Name*: credits • Value*: Dibuat oleh Candra (atau isi dengan nama Anda).7: Add new value.

HELLO. 5. Pada layout.xml. . ANDROID 18 Gambar 2.. Ubah New Text Value yang tadinya berisi @string/hello menjadi @string/credits.xml Gambar 2.8: Mengubah atribut String 4. Buka file res/layout/main. klik kanan pada text ”Hello World.. helloAndroid” kemudian pilih Properties >Text.9: layout main.MODUL 2. Kemudian klik OK.

Anda akan mendapatkan tampilan program yang tadinya bertuliskan ”Hello World. helloAndroid” menjadi ”Dibuat oleh Candra” Gambar 2. HELLO. dan Run ulang program. Simpan file.10: Mengubah property Text dari label.11: Run Hello Android. ANDROID 19 Gambar 2. . 6.MODUL 2.

1: Kalkulator 20 .MODUL 3 Kalkulator Target: Gambar 3.

Buka file string.xml yang berada pada res/values/string.xml.Kalkulator Create Activity: Kalkulator Min SDK Version: 10 (atau dikosongkan) Menyiapkan Resource 2. Buka file main.3. Kemudian tambahkan beberapa komponen sehingga menjadi (pastikan anda berada pada mode Graphical layout): . Kemudian Tambahkan beberapa item: • String – Name*: labelJumlahkan – Value*: Jumlahkan • String – Name*: buttonHandler – Value*: buttonHandler Kemudian simpan file.MODUL 3. beri nama project Kalkulator. Membuat Layout UI 3. Buat sebuah Android Project baru. dengan konfigurasi: Project name: Kalkulator Build target: Android 2.xml yang ada pada res/layout/.3 (sesuaikan dengan AVD yang ada) Application name: Kalkulator Package name: latihan. KALKULATOR 21 Langkah-langkah: Membuat Project 1.

: (kosongkan) ....2: Layout main.MODUL 3.. kemudian ubah property masing-masing komponen. : editPertama – Text. : editKedua – Text.. Caranya dengan meng-klik kanan komponen yang akan di ubah propertynya... Ubah propert masing-masing komponen menjadi: • textView1 – – – – – Text....xml Mengubah property komponen 4. : (kosongkan) – Numeric : Decimal • editText2 – Edit ID. kemudian pilih menu Properties >[property yang akan diubah].. : @string/app name Text Size.. : 24sp Layout gravity : Center Gravity : Bottom Layout Height : 90dip • editText1 – Edit ID. KALKULATOR 22 Gambar 3. Setelah layout dibuat.

: @string/buttonHandler Layout gravity : Center Gravity : Center Layout Width : 160dip 23 5. Sedangkan untuk mengatur property Layout Height dan Layout Width caranya yakni: Klik kanan komponen kemudian pilih Layout Width atau Layout Height kemudian pilih Other.. Untuk mengubah property ID caranya yakni: klik kanan pada komponen.3: Layout main... kemudian pilih Edit ID.... : @string/labelJumlahkan OnClick. .....MODUL 3. setelah itu set ukurannya. Sehingga layout akan terlihat seperti: Gambar 3. Kemudian simpan semua perubahan yang telah dilakukan. KALKULATOR – Numeric : Decimal • button1 – – – – – Text.xml 6.

widget.java yang berada pada src/latihan. android..view.. (d) Pada methode onCreate tambahkan bebarap baris berikut: . private EditText angka2. android.onCreate(savedInstanceState). KALKULATOR 24 Menambahkan Program 7.id... (c) Tambahkan kode program berikut (yang diberi warna biru) pada kelas Kalkulator: 10 11 12 13 14 15 16 17 .EditText.. Untuk melakukan penjumlahan kita perlu menambahkan logika penjumlahan ke dalam program. } .app. @Override . @Override public void onCreate(Bundle savedInstanceState) { super. 15 16 17 18 19 20 21 22 23 . caranya yakni: (a) Buka file kalkulator. angka2 = (EditText) findViewById(R. */ private EditText angka1. android.kalkulator.content.id. android. import import import import import import import android. public class Kalkulator extends Activity { /** Called when the activity is first created.DialogInterface.Kalkulator/.app.editKedua).Activity.MODUL 3.os. setContentView(R.View.Toast.main)..AlertDialog.layout. android.. (b) Tambahkan beberapa baris kode program berikut setelah deklarasi package: 1 2 3 4 5 6 7 8 9 package latihan. angka1 = (EditText) findViewById(R.widget..Bundle.editPertama). android.

return. dialog.makeText(this.Builder(this). } a = Double.OnClickListener() { @Override public void onClick(DialogInterface dialog. "Angka pertama masih kosong!". Begitu juga dengan Edit Text angka2. hasil.makeText(this. angka2. if(angka1.toString()).Builder builder = new AlertDialog. } if(angka2.show(). b.setText("").getText(). b = Double.MODUL 3.setPositiveButton("OK".dismiss().LENGTH_LONG).parseDouble(angka2. builder. Toast.setMessage("Hasil = "+String.LENGTH_LONG). builder. return.toString()).getText(). KALKULATOR 25 Untuk mensinkronisasikan antara Edit Text angka1 dengan Edit Text editPertama yang ada pada UI (pada layout yang telah dibuat di atas).valueOf(hasil)) .setTitle("Hasil Penjumlahan"). new DialogInterface.getText(). int which) { // TODO Auto-generated method stub angka1. AlertDialog. . Toast. hasil = a + b.getText().length() == 0) { Toast. (e) Tambahkan methode buttonHandler setelah methode onCreate. "Angka kedua masih kosong!".length() == 0) { Toast.setText(""). Kemudian isi dengan kode berikut: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 public void buttonHandler(View view) { double a.parseDouble(angka1.show().

8.MODUL 3.create(). Simpan semua perubahan dan Run program. . Gambar 3.show(). } Keterangan: Objek dialogHasil dari kelas AlertDialog digunakan untuk membuat dialog untuk menampilkan hasil. AlertDialog dialogHasil = builder.4: Hasil Run program. KALKULATOR 55 56 57 58 59 26 } }). dialogHasil.

Sehingga menjadi: . Tambahkan value baru pada string. KALKULATOR 27 Latihan 1. Tambahkan sebuah widget/komponen baru yakni Spinner pada Layout. Name* : prosesList – Item ∗ Value* – Item ∗ Value* – Item ∗ Value* – Item ∗ Value* : Penjumlahan : Pengurangan : Perkalian : Pembagian Kemudian simpan perubahan. 2.MODUL 3.xml yakni: • String – Name* : labelProses – Value* : Proses • String Array .

Ubah property text pada button1 menjadi: • Text. Atur property Spinner menjadi: • ID : spinnerOperasi • Entries. : @string/labelProses Sehingga layout akan terlihat seperti: .. KALKULATOR 28 Gambar 3.. : prosesList (ada pada Array/prosesList) 4..5: Menambahkan Spinner 3.MODUL 3..

setContentView(R. */ private EditText angka1..MODUL 3. spinOperasi = (Spinner) findViewById( .main).id.editPertama).6: Menambahkan Spinner 5. private EditText angka2. @Override public void onCreate(Bundle savedInstanceState) { super. KALKULATOR 29 Gambar 3..onCreate(savedInstanceState).layout. angka2 = (EditText) findViewById(R. Ubah program menjadi (Tambahkan bagian-bagian yang berwarna biru): 11 12 13 14 15 16 17 18 19 20 21 22 23 24 . angka1 = (EditText) findViewById(R. private Spinner spinOperasi. public class kalkulator extends Activity { /** Called when the activity is first created.editKedua).id.

MODUL 3. KALKULATOR
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

30

R.id.spinnerOperasi); } public void buttonHandler(View view) { double a, b, hasil; if(angka1.getText().length() == 0) { Toast.makeText(this, "Angka pertama masih kosong!", Toast.LENGTH_LONG).show(); return; } if(angka2.getText().length() == 0) { Toast.makeText(this, "Angka kedua masih kosong!", Toast.LENGTH_LONG).show(); return; } a = Double.parseDouble(angka1.getText().toString()); b = Double.parseDouble(angka2.getText().toString()); //hasil = a + b; switch(spinOperasi.getSelectedItemPosition()) { case 0: hasil = a + b; break; case 1: hasil = a - b; break; case 2: hasil = a * b; break; case 3: hasil = a / b; break; default: hasil = a + b; break; }

MODUL 3. KALKULATOR
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84

31

AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Hasil Operasi " + spinOperasi.getSelectedItem().toString()); builder.setMessage("Hasil = "+String.valueOf(hasil)) .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub angka1.setText(""); angka2.setText(""); dialog.dismiss(); } }); AlertDialog dialogHasil = builder.create(); dialogHasil.show(); } } Penambahan bagian kode program ini bertujuan untuk menghandle perubahan pilihan pada spinnerOperasi. Jika pilihan pada spinner adalah Penjumlahan maka yang akan di operasikan adalah case 0 ketika button Proses di-klik. Dan jika pilihan pada spinner adalah Perkalian maka yang akan dikerjakan adalah case 2, begitu juga untuk pilihan-pilihan lainnya. 6. Simpan dan Run program yang telah diubah tadi.

MODUL 3. KALKULATOR

32

Gambar 3.7: Hasil Run

MODUL

4

Notepad

Target:

(a) Note List

(b) Update Status

Gambar 4.1: Target Akhir 33

MODUL 4. NOTEPAD

34

Langkah-langkah

Membuat Project
1. Buat sebuah project baru dengan konfigurasi: Project name: Notepad Build target: Android 2.3.3 Application name: Catatan Package name: latihan.Notepad Create Activity: Notepad Min SDK Version: 10 (atau dikosongkan)

Membuat Layout
Layout Utama 2. Pada layout main.xml, tambahkan sebuah List View.

Gambar 4.2: Menambahkan List View pada Layout main.xml Catatan: List View berada pada Palette Composite.

NOTEPAD 3.xml kemudian tambahkan beberapa String baru: • String – Name* : note title – Value* : Title • String – Name* : note body – Value* : Body 35 5..MODUL 4. Gambar 4. Kemudian tekan Next>.. Untuk membuat sebuah layout baru caranya yakni: melalui menu File >New >Other. Atur property List View tersebut menjadi: • ID : listNote • Layout Height : Match Parent • Layout Width : Match Parent Layout edit note 4.3: New Android XML File . Buka string. kemudian Pilih Android >Android XML File.

NOTEPAD 36 6. Caranya Klik kanan pada layout (Bisa melalui Outline Dock yang berada di sebelah kanan jendela Eclipse). 8. Ubah Orientasi Linier Layout yang telah ada menjadi Vertikal. kemudian pilih Orientation>Vertical. Pada jendela New Android XML File buat File XML dengan konfigurasi: • Project : Notepad • File : edit note • Type : Layout • Folder : /res/layout Kemudian klik Finish untuk membuat file.4: New Android XML File 7.MODUL 4. Tambahkan beberapa komponen baru ke layout yakni: • Linier Layout (pada palette Layouts) – Text View . Gambar 4.

. NOTEPAD ∗ Text.xml dan Outline-nya Souce code untuk layout edit note. Untuk dapat memanggil layout edit note... Kita perlu membuatkan sebuah Kelas yang bertugas untuk menghandle layout tersebut. : (Kosongkan) – Gravity : Top Sehingga layoutnya menjadi: 37 (a) edit note.5: Layout edit note. : @string/note title – Edit Text ∗ ID : editTitle ∗ Text.xml (b) Outline Gambar 4.xml yang telah di buat di atas.. : (Kosongkan) ∗ Single Line : True • Text View – Text.. Cara membuatnya yakni: ....MODUL 4. : @string/note body • Edit Text – ID : editBody – Text.xml 9.

Pada popup menu.Notepad yang ada di bawah /Notepad/src/.Activity Kemudian Klik Finish.MODUL 4. . Buat kelas dengan konfigurasi sebagi berikut: • • • • • Source Folder : Notepad/src Package : latihan.Notepad Name : EditNote Modifier : Public Superclass : android. NOTEPAD 38 (a) Pada Package Exlporer.6: Membuat Class Baru (b) Pada jendela New Class. pilih New >Class Gambar 4.app. klik kanan package latihan.

Lalu tambahkan beberapa baris kode berikut: 1 2 3 4 5 6 7 package latihan.app. import android.Bundle.Notepad. import android.Activity.MODUL 4.7: Membuat Class Baru (c) Kemudian buka file EditNote. public class EditNote extends Activity { .os. NOTEPAD 39 Gambar 4.java yang telah dibuat dari langkah di atas.

setContentView(R. 12. Buka string. 13. } } (d) Kemudian simpan file. Untuk membuat menu caranya sama dengan yang ada pada point 5 di atas.MODUL 4.xml yang berada di bawah res/menu/.. .xml kemudian tambahkan beberapa String baru: • String – Name* : menu add new – Value* : Add New • String – Name* : menu about – Value* : About 11. Menambahkan Menu 10.layout. NOTEPAD 8 9 10 11 12 13 14 40 @Override public void onCreate(Bundle savedInstanceState) { super. Buka file utama.. kemudian pilih Android >Android XML File. yakni melalui menu File >New >Other.onCreate(savedInstanceState).edit_note). Pada jendela New Android XML File buat File XML dengan konfigurasi: • Project : Notepad • File : utama • Type : Menu • Folder : /res/menu Kemudian klik Finish untuk membuat file.

NOTEPAD 41 Gambar 4. in Menu” kemudian pilih Item. Pilih ”Create a new element at the top level.. Tambahkan dua buah Menu Item dengan mengklik Add.8: Menu Editor 14.. Gambar 4..MODUL 4.9: Menu Item Atur atribut masing-masing menu item menjadi: • Item – Id : @+id/menuAddNote – Title : @string/menu add note • Item – Id : @+id/menuAbout – Title : @string/menu about .

*/ @Override public void onCreate(Bundle savedInstanceState) { super.menu. import android.onCreate(savedInstanceState). NOTEPAD 42 Menambahkan Menu utama ke Activity Notepad 15. return super. public class Notepad extends Activity { /** Called when the activity is first created.onCreateOptionsMenu(menu).Bundle. } } 16.os. . Sekarang coba Run program.Activity.main). import android.MODUL 4.layout. import android.utama. buka file Notepad.Notepad/. Pada AVD. Kemudian tambahkan beberapa baris kode program berikut: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package latihan. setContentView(R.Notepad. tekan button menu untuk melihat apakah menu sudah ada pada program. menu). Sekarang.view.Menu.java yang ada pada src/latihan.app. } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.

..10: Tampilan menu Akan tetapi menu-menu itu masih belum memiliki handler di dalam program.. tambahkan methode onMenuItemSelected berikut pada program: 1 2 3 4 5 6 7 package latihan.Notepad... NOTEPAD 43 Gambar 4. 17. public class Notepad extends Activity { /** Called when the activity is first created. private static final int ACTIVITY_EDIT=1. */ private static final int ACTIVITY_CREATE=0. Memanggil Kelas EditNote dari Menu.MODUL 4. Untuk memanggil kelas EditNote kita perlu membuat handler utntuk masing-masing Menu Item terlebih dahulu. Untuk membuat handler. . .

ACTIVITY_CREATE).getItemId()) { case R. item). } return super.menuAbout: // handler untuk menu About showAbout().onCreateOptionsMenu(menu). case R.menuAddNote: //handler untuk menu Add Note createNote(). Kemudian coba pilih menu Add Note pada program.MODUL 4. return super.class).id. return true. NOTEPAD 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 44 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater(). } @Override public boolean onMenuItemSelected (int featureId. } private void showAbout() { // Dialog About. Simpan dan Run program.onMenuItemSelected(featureId.id. Belum diimplementasikan.EditNote.utama.inflate(R.menu. } private void createNote() { // Memanggil Kelas EditNote Intent i = new Intent(this. Apa yang terjadi? . } } 18. menu). MenuItem item) { switch(item. return true. startActivityForResult(i.

NOTEPAD 45 Gambar 4.MODUL 4. Menambahkan Activity Untuk dapat menanggulangi masalah di atas. kita perlu menambahkan/mengenalkan Activity yang telah kita buat (EditNote) ke AndroidManifest. Navigasi ke tab Application (tab berada di bagian bawah). Ini bukan terjadi karena kesalahan dalam program.xml.11: Crash Program akan Crash. 20. Buka file AndroidManifest.xml.12: Tab Application . akan tetapi ada satu langkah penting lagi yang harus dilakukan untuk dapat memanggil Activity lainnya. Caranya: 19. Gambar 4.

EditNote 23. Atur atribut Activity baru tersebut menjadi: • Name* : .MODUL 4. Gambar 4. kemudian pilih Activity untuk menambahkan Activity baru. Scroll layar ke bawah. Kemudian pada bagian Application Nodes Klik Add. NOTEPAD 46 21. Simpan dan Run kembali program.13: Aplication Nodes 22. .. Kemudian coba pilih kembali menu Add Note..

Buat menu baru (Caranya.14: Activity .MODUL 4. NOTEPAD 47 Gambar 4.xml kemudian tambahkan beberapa String baru: • String – Name* : menu save – Value* : Save • String – Name* : menu revert – Value* : Revert • String – Name* : menu delete – Value* : Delete 25.EditNote Menambahkan Menu untuk Activity EditNote 24. Buka string. baca pada point 11 dan 12) dengan konfigurasi: • Project : Notepad .

EditText.onCreate(savedInstanceState). setContentView(R.view. . public class EditNote extends Activity { private EditText noteTitle.os. @Override public void onCreate(Bundle savedInstanceState) { super. NOTEPAD • File : edit • Type : Menu • Folder : /res/menu 26.view. Buka file edit. Kemudian buat handlernya pada Kelas EditNote: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 . private EditText noteBody. android.edit_note). Pilih ”Create a new element at the top level.Menu.layout. android. in Menu” kemudian pilih Item.. 48 27.widget.MODUL 4.. Tambahkan tiga buah Menu Item dengan mengklik Add. Atur atribut masing-masing menu item menjadi: • Item – Id : @+id/menuSave – Title : @string/menu save • Item – Id : @+id/menuRevert – Title : @string/menu revert • Item – Id : @+id/menuDelete – Title : @string/menu delete 28.MenuItem...xml yang berada di bawah res/menu/..Bundle. import import import import android. android.

return super. } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater(). noteBody = (EditText) findViewById(R.id. Simpan dan Run program.id. case R. item).id. case R.menuSave: // save note return true.editTitle).id.edit. NOTEPAD 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 49 noteTitle = (EditText) findViewById(R.getItemId()) { case R. } return super. menu). } @Override public boolean onMenuItemSelected(int featureId.menuRevert: // revert note return true.onMenuItemSelected(featureId.id. } } 29.inflate(R.MODUL 4. MenuItem item) { switch(item.menu.menuDelete: // delete note return true. .onCreateOptionsMenu(menu).editBody).

NOTEPAD 50 Gambar 4. • Network Connection Menyimpan data ke dalam jaringan. .15: Menu pada EditNote Storage System Ada lima model penyimpanan data yang bisa kita gunakan dalam palikasi android yakni: • Shared preferences Untuk menyimpan data primitive ke dalam pasangan key-value. • SQLite Database Menyimpan data yang terstuktur ke dalam Database. • External Storage Mentimpan data ke External memory.MODUL 4. • Internal Storage Menyimpan data dalam devivce memory.

android. android. private static final String TAG = "NotesDbAdapter".MODUL 4.Context.SQLiteOpenHelper. public static final String KEY_ROWID = "_id".SQLiteDatabase.sqlite.Notepad.Cursor. Buat sebuah kelas baru di bawah package latihan. kita akan mencoba menyimpan datanya ke dalam database. android. Kemudian Edit kelas NoteDbAdapter tersebut. android.util. public class NoteDbAdapter { public static final String KEY_TITLE = "title".database.database.content.Log. Dengan Konfigurasi: • Source Folder : Notepad/src • Package : latihan. Menyiapkan Database Adapter 30. import import import import import import import android.content. private DatabaseHelper mDbHelper.sqlite. public static final String KEY_BODY = "body". NOTEPAD 51 Untuk Aplikasi Notepad ini. dan tambahkan beberapa baris source code berikut: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package latihan.Notepad • Name : NoteDbAdapter • Modifier : Public • Superclass : (kosongkan) 31. Untuk model penyimpanan lainnya akan kita bahas di lain waktu. android.ContentValues. android.database.SQLException. private SQLiteDatabase mDb.database.Notepad (Caranya baca pada point 9). .

MODUL 4. private final Context mCtx. " + "title text not null. } } public NoteDbAdapter(Context ctx) { this.w(TAG. private static final String DATABASE_NAME = "data". onCreate(db). DATABASE_VERSION).execSQL(DATABASE_CREATE). which will destroy all old data"). } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("DROP TABLE IF EXISTS notes"). } @Override public void onUpgrade(SQLiteDatabase db. private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context. null.mCtx = ctx. int oldVersion. db. NOTEPAD 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 52 private static final String DATABASE_CREATE = "create table notes (_id integer primary key autoincrement.". body text not null). DATABASE_NAME. private static final int DATABASE_VERSION = 2. "Upgrading database from version " + oldVersion + " to " + newVersion + ". private static final String DATABASE_TABLE = "notes". } . int newVersion) { Log.

. null. null) > 0. initialValues. null. null.query(DATABASE_TABLE. KEY_TITLE. KEY_TITLE. null. } public void close() { mDbHelper. null. KEY_ROWID + "=" + rowId. title). if (mCursor != null) { mCursor. new String[] {KEY_ROWID.close(). } public boolean deleteNote(long rowId) { return mDb.query(true. NOTEPAD 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 53 public NoteDbAdapter open() throws SQLException { mDbHelper = new DatabaseHelper(mCtx). KEY_BODY}. } public Cursor fetchNote(long rowId) throws SQLException { Cursor mCursor = mDb. null. } public Cursor fetchAllNotes() { return mDb. mDb = mDbHelper. KEY_ROWID + "=" + rowId. String body) { ContentValues initialValues = new ContentValues(). null). DATABASE_TABLE.put(KEY_BODY. null. body). KEY_BODY}. new String[] {KEY_ROWID. return mDb.getWritableDatabase().put(KEY_TITLE.delete(DATABASE_TABLE.MODUL 4. } public long createNote(String title. return this. null.moveToFirst().insert(DATABASE_TABLE. initialValues. null). initialValues). null.

kita perlu menambahkan proses penyimpanan pada handler untuk menu save. kita sudah membuat sebuah kelas untuk membantu proses CRUD (Create.update(DATABASE_TABLE. null) > 0.java. String body) { ContentValues args = new ContentValues(). body)..put(KEY_BODY.. Menyimpan Note Untuk menyimpan note. 1 2 . args. Dalam kelas tersebut telah ada methode untuk menyimpan note ke dalam database yakni createNote. args. } public boolean updateNote(long rowId. } } 32. Buka file EditNote. Read.MODUL 4. args. menghapus note yakni deleteNote. membaca note fetchNote dan meng-update yakni updateNote. public class EditNote extends Activity { . NOTEPAD 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 54 } return mCursor. kita perlu source code ketika user memilih menu Save pada Activity EditNote. Selanjutnya. Menyimpan. Caranya: 33. kemudian tambahkan sebuah methode saveNote() pada kelas tersebut. Membaca dan Menghapus Note Nah pada langkah di atas. Update dan Delete) data note yang ada dalam database. title).put(KEY_TITLE. return mDb. KEY_ROWID + "=" + rowId. String title.

NOTEPAD 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 55 private private private private EditText noteTitle. noteTitle = (EditText) findViewById(R.id. Long mRowId.KEY_ROWID). mDbHelper.id.. NoteDbAdapter mDbHelper. if (mRowId == null) { Bundle extras = getIntent(). @Override public boolean onMenuItemSelected(int featureId. mDbHelper = new NoteDbAdapter(this). mRowId = (savedInstanceState == null) ? null : (Long) savedInstanceState.MODUL 4.id.getExtras().getItemId()) { case R.editBody).onCreate(savedInstanceState).editTitle). case R. mRowId = extras != null ? extras.id. noteBody = (EditText) findViewById(R. EditText noteBody.getSerializable( NoteDbAdapter.menuRevert: .layout. } } .. MenuItem item) { switch(item. return true. @Override public void onCreate(Bundle savedInstanceState) { super.getLong(NoteDbAdapter.KEY_ROWID) : null.menuSave: // save note saveNote().open().edit_note). setContentView(R.

} } } 34. item). body). if (mRowId == null) { long id = mDbHelper.onMenuItemSelected(featureId. String body = noteBody. if (id > 0) { mRowId = id. body).toString().getText(). case R.MODUL 4.id. Simpan dan coba Run program. } public void saveNote() { String title = noteTitle.updateNote(mRowId.createNote(title.menuDelete: // delete note return true. . NOTEPAD 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 56 // revert note return true. title. } } else { mDbHelper.getText().toString(). } return super.

buat file XML dengan konfigurasi: • Project : Notead • File : note row . Pada jendela New Android XML File.xml). Buat sebuah layout baru. Menampilkan List Note 35.16: Menu pada EditNote Catatan: Ketika menu Save dipilih. kita perlu menambahkan beberapa proses untuk membaca note.MODUL 4. Yakni pada kelas Notepad untuk menampilkan list Note yang telah ada. Membaca Note Untuk mbaca note. dan pada kelas EditNote untuk mengedit note yang telah ada. 36. caranya lihat pada point 5. NOTEPAD 57 Gambar 4. masih belum terlihat efeknya karena kita masih belum membuat methode untuk menampilkannya pada tampilan utama aplikasi Notepad (pada layout main.

Ubah ID TextView yang ada pada layout. NOTEPAD • Type : Layout • Folder : /res/layout • root element : TextView 58 Pastikan Root element-nya menggunakan TextView. 37. 38. .17: Layout note row dengan TextView sebagai Root element-nya. Buka file note row.MODUL 4. Kemudian ganti menjadi: • ID : noteRow Kemudian simpan perubahan. Kemudian klik Finish Gambar 4.xml yang ada di bawah res/layout. dengan cara mengkilk kanan TextView pada Outline kemudian pilih Edit ID.

ContextMenu.database.ListActivity. NOTEPAD 59 (a) Layout note row.ContextMenu. import android.AdapterView.AdapterContextMenuInfo.view.MODUL 4.app. //import android. Kemudian tambahkan import class: package latihan.xml (b) Outline Gambar 4.View.SimpleCursorAdapter.Cursor.content.Menu. import android.ContextMenuInfo.view.java. import android.Bundle. import android.18: Layout note row. import android.view. public class Notepad extends Activity { . import android.MenuItem. Buka file Notepad.Notepad.widget.ListView.widget. import android.Intent.app. import android. import android.Activity.xml dan Outline-nya Menambahkan Program 39. import android. import android.widget. import android.os.view.view.

. Tambahkan objek mDbHelper untuk koneksi ke databse dan DELETE ID untuk membuat Contxt menu: package latihan..MODUL 4. private NoteDbAdapter mDbHelper. */ private static final int ACTIVITY_CREATE=0. public class Notepad extends ListActivity { /** Called when the activity is first created.AdapterContextMenuInfo.. private static final int ACTIVITY_EDIT=1. public class Notepad extends ListActivity { .... NOTEPAD /** Called when the activity is first created.widget.. 42. private static final int ACTIVITY_EDIT=1. ... import android. .. @Override public void onCreate(Bundle savedInstanceState) { super. .Notepad.AdapterView.. private static final int DELETE_ID = Menu.Notepad... . public class Notepad extends ListActivity { /** Called when the activity is first created. .FIRST + 1. */ private static final int ACTIVITY_CREATE=0.onCreate(savedInstanceState). 60 40. */ . Ganti superclass dari Notepad yang tadinya dari kelas Activity menjadi ListActivity package latihan. Buka koneksi ke database dengan memanggil methode open() dari objek mDbHelper pada methode onCreate(): package latihan.. . 41.Notepad.

.note_row..noteRow. String[] from = new String[]NoteDbAdapter. registerForContextMenu(getListView()). setListAdapter(notes).main). mDbHelper.. public class Notepad extends ListActivity { .xml: package latihan. } ....layout. SimpleCursorAdapter notes = new SimpleCursorAdapter(this. Catatan: Di sini kita memanggil layout note row..id. Buat methode fillData() untuk mengisi listView yang ada pada layout main.. NOTEPAD setContentView(R. mDbHelper = new NoteDbAdapter(this). notesCursor. 44.KEY_TITLE.xml..Notepad. } .open().fetchAllNotes().. from. . fillData(). to)..Notepad.layout. Tambahkan methode onListItemClick() untuk menghandle event ketika list di klik: package latihan. private void fillData() { Cursor notesCursor = mDbHelper. startManagingCursor(notesCursor). 61 43.MODUL 4. R. int[] to = new int[]R. . dimana TextView noteRow akan diisi dengan string berupa title dari note yang ada di dalam database.

. DELETE_ID. fillData().. @Override public void onCreateContextMenu(ContextMenu menu.getMenuInfo(). ACTIVITY_EDIT). View v.string. R. . EditNote. Intent i = new Intent(this. menuInfo).. id). v. startActivityForResult(i. @Override protected void onListItemClick(ListView l.putExtra(NoteDbAdapter...KEY_ROWID. maka ia akan menjalankan activity EditNote dalam mode Edit (ACTIVITY EDIT). i. public class Notepad extends ListActivity { .MODUL 4. long id) { super.deleteNote(info.getItemId()) { case DELETE_ID: AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.menu_delete). } @Override public boolean onContextItemSelected(MenuItem item) { switch(item. . mDbHelper.Notepad. Dimana ketika salah satu item dalam list di klik.onListItemClick(l.id). NOTEPAD public class Notepad extends ListActivity { . 62 Methode ini digunakan untuk menghandle event klik pada listView.. position. int position. menu. Tambahkan methode untuk membuat context menu pada List.. View v.onCreateContextMenu(menu. 0. } . v.. id). ContextMenuInfo menuInfo) { super.class).add(0. serta handler menunya: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package latihan. 45.

Notepad. Dan tambahkan sebuah methode untuk menghandle ketika sebuah activity selesai.. } return super. Simpan dan Run program.onActivityResult(requestCode. fillData()... int resultCode. } . Listing full program dapat dilihat pada halaman terakhir. public class Notepad extends ListActivity { . Jika tidak ada kesalahan maka program akan berjalan seperti: . resultCode.MODUL 4. NOTEPAD 21 22 23 24 25 63 return true.. maka List note yang ada di update kembali dengan memanggil methode fillData(): 1 2 3 4 5 6 7 8 9 10 11 12 package latihan.onContextItemSelected(item). Intent intent) { super... .. intent). @Override protected void onActivityResult (int requestCode. 47. 46.. } .

import android.os. Buka file EditNote. . import android.database. Karena itu kita perlu menambahkan juga beberapa baris program pada kelas EditNote untuk membaca note dari database. Kemudian tambahkan import class: 1 2 3 4 5 6 package latihan..Activity.Notepad. ketika masuk ke activity EditNote note masih belum terbaca.Bundle.java.app. NOTEPAD 64 (a) List Note yang telah dibuat (b) Context menu Delete Gambar 4. import android. 49.MODUL 4. Selanjutnya kita perlu menambahkan methode untuk me-retrive data (Title dan Body) Note dari database: .Cursor. Membaca Note untuk mode Editing 48.19: Hasil Run Program Akan tetapi jika anda mengklik note..

setText(note. Selanjutnay kita perlu memanggil methode populateFields() tersebut ketika activity EditNote dijalankan..getString( note.... startManagingCursor(note). ..Notepad.Notepad.fetchNote(mRowId)..getColumnIndexOrThrow(NoteDbAdapter.. } private void populateFields() { if (mRowId != null) { Cursor note = mDbHelper.. } } . noteTitle. NOTEPAD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 65 package latihan. @Override public void onCreate(Bundle savedInstanceState) { . noteBody.. mDbHelper. @Override public void onCreate(Bundle savedInstanceState) { .. . public class EditNote extends Activity { . public class EditNote extends Activity { . 50.open()...KEY_BODY))). .KEY_TITLE))).getString( note...MODUL 4.setText(note.getColumnIndexOrThrow(NoteDbAdapter. mDbHelper = new NoteDbAdapter(this). yakni pada methode onCreate(): 1 2 3 4 5 6 7 8 9 10 11 package latihan.

(a) Notepad (b) Edit Mode Gambar 4.KEY_ROWID) : null.KEY_ROWID).getSerializable( NoteDbAdapter.. } private void populateFields() { .getExtras().getLong(NoteDbAdapter. mRowId = extras != null ? extras.20: Hasil Run Program .MODUL 4. NOTEPAD 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 66 mRowId = (savedInstanceState == null) ? null : (Long) savedInstanceState. 51. Simpan kemudian Run program. if (mRowId == null) { Bundle extras = getIntent(). } populateFields()..

dialog.Builder(this).setMessage("Are you sure?") .MODUL 4. new DialogInterface.Builder(this). dialogHasil. builder.Builder builder = new AlertDialog. builder.setTitle("Delete Note"). Sebagai latihan mari kita coba tambahkan handler-handler ini: 1.setPositiveButton("OK". AlertDialog dialogHasil = builder.show(). builder. } }). 2.OnClickListener() { @Override public void onClick(DialogInterface dialog.OnClickListener() { . new DialogInterface. tambahkan dua buah methode baru yakni methode revertNote() dan deleteNote(): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 private void revertNote() { AlertDialog.setPositiveButton("OK". builder.setMessage("Are you sure?") . Buka dan edit file EditNote.create(). NOTEPAD 67 Latihan Pada program di atas. Kita masih belum membuat handler untuk menu Revert dan Delete pada menu EditNote. } Dan methode deleteNote(): 1 2 3 4 5 6 7 private void deleteNote() { AlertDialog.setTitle("Revert").java.dismiss(). int which) { // TODO Auto-generated method stub populateFields().Builder builder = new AlertDialog.

dismiss().show().create(). AlertDialog dialogHasil = builder. Simpan dan coba Run kembali program. dialog. Kemudian panggil methode-methode tersebut melalui handler menu yang telah dibuat pada methode onMenuItemSelected(). int which) { // TODO Auto-generated method stub mDbHelper. finish(). } }). } 3.MODUL 4. 4. dialogHasil. NOTEPAD 8 9 10 11 12 13 14 15 16 17 18 19 68 @Override public void onClick(DialogInterface dialog. .deleteNote(mRowId).

21: Hasil Akhir Run Program .MODUL 4. NOTEPAD 69 (a) Note awal (b) Revert hasil perubahan (c) Delete Note (d) List Note setelah dihapus Gambar 4.

1: Target Akhir 70 .MODUL 5 Update Facebook Target: (a) Halaman login (b) Update Status Gambar 5.

API key dan Apps Secret.php Gambar 5. Buka alamat: http://www.com/developers/apps. pertama-tama kita perlu meregistrasikan aplikasi kita terlebih dahulu di Facebook untuk mendapatkan Apps ID.MODUL 5. 2. Kemudian pilih +Set Up New Application . UPDATE FACEBOOK 71 Langkah-langkah Membuat Facebook Apps Sebelum bisa membuat aplikasi untuk mengakses Facebook. Untuk melakukan registrasi sebuah aplikasi di Facebook langkah-langkahnya yakni: 1.facebook.2: Creating Facebook Apps.

UPDATE FACEBOOK 72 Gambar 5. 3. Setelah itu Anda akan masuk ke halaman edit Apps. . Selanjutnya pada halaman berikutnya Anda akan dihadapkan dengan captcha.3: Creating Facebook Apps. Isi Apps Name dengan nama aplikasi yang akan Anda buat. Pada halaman ini anda dapat mengganti nama aplikasi. Misalnya DoroidUpdater (Facebook tidak memperkenenkan nama applikasi yang mengandung trademark Facebook).MODUL 5. 4. menambahkan Icon dan Logo (untuk ditampilkan di halaman Facebook) serta pengaturan lainnya. Kemudian Piliha Agree dan klik Create App. 5.

7.5: Apps Information 8. API Key. Gambar 5.4: Edit Apps. API Key dan App Secret Anda. 6. UPDATE FACEBOOK 73 Gambar 5. App Secret dan Lainnya. Pada halaman berikutnya Anda akan mendapatkan informasi dari aplikasi Anda. berupa App ID.MODUL 5. Simpan App ID. Karena nanti . Kemudian simpan perubahan yang telah anda lakukan.

.MODUL 5. 2. UPDATE FACEBOOK 74 akan digunakan saat melakukan request untuk koneksi dengan Facebook. Kita perlu mengimport SDK tersebut ke Eclipse untuk dijadikan sebuah Project library. . Pada jendela New Android Project pilih Create project from existing sources. Mengimport SDK sebagai Library Setelah berhasil di download dan di extrak.6: Facebook Android SDK Selanjutnya extrak SDK yang telah di download di tempat yang aman. Gambar 5. pilih Android Project.com/facebook/facebook-android-sdk Kemudian download SDK-nya. Facebook Android SDK Selanjutnya kita membutuhkan library Facebook untuk dapat menggunakan Kelas-kelas untuk melakukan koneksi ke Facebook. Dari menu File >New >Project. Untuk mendapatkannya buka halaman: https://github.. Caranya: 1.

. klik Browse.. kemudian pilih sub direktory facebook.3. Gambar 5. dan cari direktory dimana anda mengextrak facebook SDK yang telah anda download.7: Import Facebook Android SDK ke Eclipse . Pada Build target pilih Android 2. Dan direktory test berisi test project. 4. facebook dan test. Direktory example berisi contoh-contoh penggunaan SDK. Pada Location. yakni example. Direktory facebook berisi library SDK. UPDATE FACEBOOK 75 3. Catatan : Pada direktory SDK facebook tersebut terdapat tiga buah direktory.MODUL 5.3 (atau sesuaikan).

3.8: Project com facebook android Membuat Aplikasi Setelah semua persiapan untuk pembuatan aplikasi sudah selesai. Buat sebuah project baru. Jika berhasil.droidupdater • Create Activity : DroidUpdater • Min SDK : 10 (sesuaikan dengan Build target) . maka Anda akan mendapatkan sebuah project baru bernama com facebook android pada Package Explorer Anda. Gambar 5. kita sudah siap untuk membuat Aplikasi Android yang terintegrasi dengan Facebook.MODUL 5. dengan property: • Project name : DroidUpdater • Build Target : Android 2.3 (sesuaikan) • Application Name : Facebook Updater • Package name : latihan. UPDATE FACEBOOK 76 5. Membuat Project 1.

Ubah layout main.MODUL 5.9: Layout main. UPDATE FACEBOOK 77 Membuat UI 2. Kemudian ubah property masing-masing objek menjadi: • LinearLayout – Orientation : Vertical .xml 4.xml: • String – Name : post wall – Value : Post to Wall • String – Name : postToWall – Value : postToWall • Color – Name : biru – Value : #FF0000FF • String – Name : abu – Value : #FFEEEEEE 3.xml menjadi: (a) Layout (b) Outline Gambar 5. Tambahkan beberapa value pada string.

10: Project com facebook android . UPDATE FACEBOOK – Layout width : Fill parent – Layout height : Fill parent – Background : @color/abu • Text View – – – – – – – – – – – – – – – Layout Width : Fill parent Layout Height : 90dip Text Color : @color/biru Text Size : 20sp Text Style : bold Gravity : center Layout Gravity : center Text : @string/app name Layout Width : Wrap Content Layout Height : Wrap Content Text Style : bold Gravity : center Layout Gravity : center On Click : @string/postToWall Text : @string/post wall 78 • Button Sehingga layout akan terlihat seperti: Gambar 5.MODUL 5.

os.Intent.*. com. UPDATE FACEBOOK 79 Membuat Koneksi 5. Tambahkan beberapa import library: 1 2 3 4 5 6 7 8 import import import import import import import .. Buka file DroidUpdater. 8..Bundle.app.android.*.content. Penting: Ganti ”147478081988384” dengan App ID Anda yang telah di buat di atas.facebook.android. Pilih Add untuk menambahkan Permission tambahkan: • Uses Permission – Name : android.. android. com. com.MODUL 5.view. @Override ..permission.FacebookError. android.xml kemudian masuk ke Tab Permission.facebook. 7. Pada methode onCreate() tambahkan beberapa baris berikut: .facebook. android.. public class DroidUpdater extends Activity { /** Called when the activity is first created..View. Kemudian tambahkan property pada kelas DroidUpdater: 1 2 3 4 5 6 7 8 . */ private static final Facebook fb = new Facebook("147478081988384").INTERNET Hint: Cukup pilih permission yang ada pada Combo Box.java untuk mengubah activity DroidUpdater.Activity. android. Buka file AndroidManifest.android. 6.Facebook. 9.

. . } .authorize(this . */ private static final Facebook fb = new Facebook("147478081988384").MODUL 5. Tambahkan methode onActivityResult: 1 2 3 4 5 . 10.. public class DroidUpdater extends Activity { /** Called when the activity is first created. UPDATE FACEBOOK 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 80 .. public class DroidUpdater extends Activity { /** Called when the activity is first created.. setContentView(R.onCreate(savedInstanceState). */ private static final Facebook fb = new Facebook("147478081988384").new DialogListener() { @Override public void onFacebookError(FacebookError e) { } @Override public void onError(DialogError e) { } @Override public void onComplete(Bundle values) { } @Override public void onCancel() { } }). @Override public void onCreate(Bundle savedInstanceState) { super..main). fb.layout..

onActivityResult(requestCode. data). Intent data) { super... } @Override public void onActivityResult( int requestCode. } } 11.MODUL 5.11: Hasil Run . data).authorizeCallback(requestCode. int resultCode. Simpan dan coba Run program. resultCode. resultCode. fb. UPDATE FACEBOOK 6 7 8 9 10 11 12 13 14 15 16 17 18 19 81 @Override public void onCreate(Bundle savedInstanceState) { . (a) Halaman login (b) Authentikasi Gambar 5.

Kita perlu menambahkan akses untuk bisa melakukan post ke Wall. 13.MODUL 5. hak akses yang dimiliki hanya hak untuk mengakses informasi dasar saja.. private static final String[] POST_AUTH = new String[] { "publish_stream". "friends_status" }. */ private static final Facebook fb = new Facebook("147478081988384"). "friends_status" }. */ private static final Facebook fb = new Facebook("147478081988384"). program masih belum bisa digunakan untuk mengupdate status karena kita belum membuat methode untuk menghandle event onClick pada Button. public class DroidUpdater extends Activity { /** Called when the activity is first created.. Pada hasil Run di atas.. Untuk menambahkannya. UPDATE FACEBOOK 82 Akan tetapi. public class DroidUpdater extends Activity { /** Called when the activity is first created. Ubah mode autentikasi saat pemanggilan methode authorize() dari objek fb: 1 2 3 4 5 6 7 8 . Caranya: 12.. kita perlu mengubah mode authentikasi ketika memanggil methode authorize(). Tambahkan sebuah property pada kelas DroidUpdater: 1 2 3 4 5 6 7 8 9 10 11 12 .. @Override public void onCreate(Bundle savedInstanceState) { .. Aplikasi kita harus memiliki akses untuk melakukan posting ke Wall. private static final String[] POST_AUTH = new String[] { "publish_stream". Post to Wall Untuk bisa melakukan posting ke Wall. .

@Override public void onCreate(Bundle savedInstanceState) { .new DialogListener() { @Override public void onFacebookError(FacebookError e) { } @Override public void onError(DialogError e) { } @Override public void onComplete(Bundle values) { } @Override public void onCancel() { } }).authorize(this. public class DroidUpdater extends Activity { .main). } . Tambahkan methode postToWall() untuk mempost ke Wall: 1 2 3 4 5 6 7 8 9 10 .POST_AUTH .. 14...MODUL 5. . fb..layout..onCreate(savedInstanceState). UPDATE FACEBOOK 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 83 @Override public void onCreate(Bundle savedInstanceState) { super.. setContentView(R.. } public void postToWall(View view) { Bundle param = new Bundle()..

. param.")...putString("link".. 15. "http://developer.")..dialog(this.android. fb.putString("caption".com/assets/images/bg_logo.. } .putString("description". new DialogListener() { @Override public void onFacebookError(FacebookError e) { } @Override public void onError(DialogError e) { } @Override public void onComplete(Bundle values) { } @Override public void onCancel() { } }).. Kemudian simpan dan Run Program. "Therefore we must reduce it. UPDATE FACEBOOK 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 84 param. "http://kumachii. .putString("picture". "B-A-K-A is Unlimited.. param.wordpress.MODUL 5. "feed". param.png"). param.com").

UPDATE FACEBOOK 85 (a) Halaman login (b) Authentikasi (c) Halaman Utama (d) Post to Wall Gambar 5.12: Hasil Run .MODUL 5.

13: Status yang terupdate menggunakan DroidUpdate. .MODUL 5. UPDATE FACEBOOK 86 Gambar 5.

android. Mobile Apps . http://developers.Daftar Referensi [1] Google Inc. 87 .Facebook Developers.facebook.com/guide/index. 2011. [2] Facebook. http://developer.com/docs/guides/mobile/. 2011... Android Developers Guide.html.