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

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

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

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

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

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

MODUL 1. INSTALLASI SDK DAN AVD 6 Gambar 1. 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) .3: Android SDK and ADV Manager 3.

. 2.4: Android SDK and ADV Manager 3. Anda dapat menambahkan Virtual device jika diinginkan pada SDK Anda. Klik New.. Cara membuatnya yakni: 1. Setelah installasi selesai. caranya dapat Anda lihat pada bagian Menambahkan Platform di atas.. Pada jendela Android SDK and ADV Manager navigasi ke bagian Virtual devices Gambar 1.MODUL 1. Kemudian klik Install Selected untuk menginstall semua paket yang dipilih. 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. Untuk membuat AVD baru. tanpa harus memiliki perangkat Android itu sendiri. INSTALLASI SDK DAN AVD 7 4. 5. Jalankan Android SDK and ADV Manager.

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

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

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

4. Kemudian Klik Next>.32 Gambar 2.3. pilih project Android >Android Project.MODUL 2. ANDROID 11 3. Pada jendela New Project tersebut.2: New Android Project #1 dapat anda ganti dengan nama yang lain. 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. 2 1 . HELLO. Sesuaikan dengan AVD atau target versi Android dimana aplikasi Anda akan berjalan nantinya.

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

ANDROID 1. . • Android 2. Sedangkan yang berada di bawah gen/ adalah file-file source code yang digenerate otomatis oleh SDK. HELLO. Pada latihan pertama ini kita masih belum menggunakannya.MODUL 2. Package Explorer 13 Pada Package Explorer ini Anda akan menemukan tree project yang telah anda buat. 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. • assets Berisi file-file yang akan dipaketkan bersama dengan aplikasi Anda.3 (atau terkadang Android Library) Berisi library target Android.3.

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

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

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

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

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

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

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

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

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

KALKULATOR – Numeric : Decimal • button1 – – – – – Text.. kemudian pilih Edit ID.. : @string/labelJumlahkan OnClick. Untuk mengubah property ID caranya yakni: klik kanan pada komponen.xml 6...3: Layout main... Sehingga layout akan terlihat seperti: Gambar 3. : @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. .. Kemudian simpan semua perubahan yang telah dilakukan.. setelah itu set ukurannya.MODUL 3...

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

return.parseDouble(angka2.setTitle("Hasil Penjumlahan").Builder builder = new AlertDialog.LENGTH_LONG).LENGTH_LONG).dismiss().getText().valueOf(hasil)) . "Angka pertama masih kosong!". b. } a = Double. (e) Tambahkan methode buttonHandler setelah methode onCreate. AlertDialog. hasil. Toast. builder. dialog.getText().makeText(this.setText(""). hasil = a + b. Toast. Begitu juga dengan Edit Text angka2. builder.OnClickListener() { @Override public void onClick(DialogInterface dialog. 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.getText().length() == 0) { Toast. KALKULATOR 25 Untuk mensinkronisasikan antara Edit Text angka1 dengan Edit Text editPertama yang ada pada UI (pada layout yang telah dibuat di atas). new DialogInterface. int which) { // TODO Auto-generated method stub angka1.Builder(this).toString()).toString()).show(). "Angka kedua masih kosong!". .getText().setText("").length() == 0) { Toast. return.setPositiveButton("OK". } if(angka2. b = Double. angka2.show().MODUL 3. if(angka1.setMessage("Hasil = "+String.makeText(this.

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

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

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

layout. */ private EditText angka1.6: Menambahkan Spinner 5.main).id. angka1 = (EditText) findViewById(R. private EditText angka2. public class kalkulator extends Activity { /** Called when the activity is first created.editKedua). private Spinner spinOperasi.MODUL 3. @Override public void onCreate(Bundle savedInstanceState) { super.id. spinOperasi = (Spinner) findViewById( . 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 . setContentView(R...onCreate(savedInstanceState).editPertama). KALKULATOR 29 Gambar 3.

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.

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

kemudian pilih Orientation>Vertical. Gambar 4. 8. NOTEPAD 36 6. Ubah Orientasi Linier Layout yang telah ada menjadi Vertikal. Caranya Klik kanan pada layout (Bisa melalui Outline Dock yang berada di sebelah kanan jendela Eclipse).4: New Android XML File 7. 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.MODUL 4. Tambahkan beberapa komponen baru ke layout yakni: • Linier Layout (pada palette Layouts) – Text View .

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

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

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

12. Menambahkan Menu 10.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.onCreate(savedInstanceState).layout. . Buka file utama. Buka string. yakni melalui menu File >New >Other. } } (d) Kemudian simpan file.. Untuk membuat menu caranya sama dengan yang ada pada point 5 di atas. setContentView(R.edit_note). NOTEPAD 8 9 10 11 12 13 14 40 @Override public void onCreate(Bundle savedInstanceState) { super.. 13. kemudian pilih Android >Android XML File. 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.

8: Menu Editor 14. Gambar 4. Pilih ”Create a new element at the top level.MODUL 4. Tambahkan dua buah Menu Item dengan mengklik Add..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 . in Menu” kemudian pilih Item... NOTEPAD 41 Gambar 4.

import android.Menu. menu).layout. NOTEPAD 42 Menambahkan Menu utama ke Activity Notepad 15.Activity.Bundle.os.main). Sekarang.menu. .inflate(R.app. buka file Notepad. import android.utama.onCreateOptionsMenu(menu).Notepad.MODUL 4. 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. Pada AVD.java yang ada pada src/latihan. } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().onCreate(savedInstanceState). } } 16. public class Notepad extends Activity { /** Called when the activity is first created. return super. */ @Override public void onCreate(Bundle savedInstanceState) { super.view.Notepad/. tekan button menu untuk melihat apakah menu sudah ada pada program. Sekarang coba Run program. setContentView(R. import android.

. public class Notepad extends Activity { /** Called when the activity is first created... . NOTEPAD 43 Gambar 4. private static final int ACTIVITY_EDIT=1. 17..Notepad. Untuk membuat handler. Memanggil Kelas EditNote dari Menu.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.MODUL 4. . */ private static final int ACTIVITY_CREATE=0.. Untuk memanggil kelas EditNote kita perlu membuat handler utntuk masing-masing Menu Item terlebih dahulu.

return true.menuAbout: // handler untuk menu About showAbout().getItemId()) { case R. Kemudian coba pilih menu Add Note pada program. item). case R.onMenuItemSelected(featureId. Apa yang terjadi? .MODUL 4.EditNote. } } 18.id. menu). } private void createNote() { // Memanggil Kelas EditNote Intent i = new Intent(this.inflate(R. ACTIVITY_CREATE).menuAddNote: //handler untuk menu Add Note createNote().menu. 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. Simpan dan Run program. return super. Belum diimplementasikan. MenuItem item) { switch(item. return true. } return super. } private void showAbout() { // Dialog About.class).id. startActivityForResult(i.utama.onCreateOptionsMenu(menu).

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

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

baca pada point 11 dan 12) dengan konfigurasi: • Project : Notepad . Buka string.14: Activity .EditNote Menambahkan Menu untuk Activity EditNote 24. 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.MODUL 4. Buat menu baru (Caranya.

. android.Bundle.edit_note). . private EditText noteBody. in Menu” kemudian pilih Item.. Buka file edit.Menu.. android. import import import import android.view.onCreate(savedInstanceState). @Override public void onCreate(Bundle savedInstanceState) { super. Kemudian buat handlernya pada Kelas EditNote: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ..layout.view.xml yang berada di bawah res/menu/. public class EditNote extends Activity { private EditText noteTitle.widget.MenuItem.MODUL 4. 48 27. NOTEPAD • File : edit • Type : Menu • Folder : /res/menu 26. Tambahkan tiga buah Menu Item dengan mengklik Add.. Pilih ”Create a new element at the top level. 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. android. setContentView(R.os.EditText.

id.id. noteBody = (EditText) findViewById(R. } } 29.editBody).inflate(R.menuSave: // save note return true.menuRevert: // revert note return true. Simpan dan Run program.edit.onCreateOptionsMenu(menu).editTitle).getItemId()) { case R. case R. } return super. return super. MenuItem item) { switch(item. } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater(). . } @Override public boolean onMenuItemSelected(int featureId.menuDelete: // delete note return true.id.MODUL 4. 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. case R.menu.id.id. item).onMenuItemSelected(featureId. menu).

• Network Connection Menyimpan data ke dalam jaringan. • Internal Storage Menyimpan data dalam devivce memory. • External Storage Mentimpan data ke External memory. NOTEPAD 50 Gambar 4. • SQLite Database Menyimpan data yang terstuktur ke dalam Database.MODUL 4.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. .

database.Log. Kemudian Edit kelas NoteDbAdapter tersebut. private DatabaseHelper mDbHelper.SQLException.content. import import import import import import import android.Notepad (Caranya baca pada point 9).SQLiteOpenHelper. . Buat sebuah kelas baru di bawah package latihan. android.ContentValues. NOTEPAD 51 Untuk Aplikasi Notepad ini. android. android. android. public static final String KEY_BODY = "body".Context.database. Untuk model penyimpanan lainnya akan kita bahas di lain waktu. android. android. public static final String KEY_ROWID = "_id".Cursor.content. 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. private SQLiteDatabase mDb.database. kita akan mencoba menyimpan datanya ke dalam database.sqlite.SQLiteDatabase. public class NoteDbAdapter { public static final String KEY_TITLE = "title". private static final String TAG = "NotesDbAdapter".MODUL 4. Dengan Konfigurasi: • Source Folder : Notepad/src • Package : latihan.database.util.sqlite.Notepad. Menyiapkan Database Adapter 30.

null.mCtx = ctx. which will destroy all old data"). private final Context mCtx. private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context. int newVersion) { Log. DATABASE_VERSION).".execSQL("DROP TABLE IF EXISTS notes").execSQL(DATABASE_CREATE). body text not null). DATABASE_NAME. } } public NoteDbAdapter(Context ctx) { this. } @Override public void onUpgrade(SQLiteDatabase 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. " + "title text not null. db. private static final int DATABASE_VERSION = 2. private static final String DATABASE_TABLE = "notes". private static final String DATABASE_NAME = "data". } @Override public void onCreate(SQLiteDatabase db) { db. onCreate(db). "Upgrading database from version " + oldVersion + " to " + newVersion + ".w(TAG.MODUL 4. int oldVersion.

. new String[] {KEY_ROWID. } public Cursor fetchNote(long rowId) throws SQLException { Cursor mCursor = mDb. mDb = mDbHelper. String body) { ContentValues initialValues = new ContentValues(). null. KEY_TITLE. null. null). initialValues).query(true. null.getWritableDatabase().put(KEY_TITLE. null. new String[] {KEY_ROWID. null. body). return this. null. initialValues. initialValues. null). title).close(). KEY_ROWID + "=" + rowId. } public void close() { mDbHelper. null.insert(DATABASE_TABLE.query(DATABASE_TABLE. null. null. if (mCursor != null) { mCursor.delete(DATABASE_TABLE. } public boolean deleteNote(long rowId) { return mDb.moveToFirst(). null) > 0. DATABASE_TABLE.put(KEY_BODY. } public Cursor fetchAllNotes() { return mDb.MODUL 4. return mDb. KEY_BODY}. KEY_ROWID + "=" + rowId. 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_TITLE. } public long createNote(String title. KEY_BODY}.

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

setContentView(R. case R.getSerializable( NoteDbAdapter.KEY_ROWID). mDbHelper = new NoteDbAdapter(this).menuSave: // save note saveNote(). EditText noteBody.getItemId()) { case R. noteBody = (EditText) findViewById(R. @Override public void onCreate(Bundle savedInstanceState) { super. MenuItem item) { switch(item. if (mRowId == null) { Bundle extras = getIntent(). @Override public boolean onMenuItemSelected(int featureId.KEY_ROWID) : null.id. mDbHelper.edit_note). 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.editTitle). noteTitle = (EditText) findViewById(R.id.. } } .getExtras().open().MODUL 4.id.layout.menuRevert: .id.. mRowId = (savedInstanceState == null) ? null : (Long) savedInstanceState. NoteDbAdapter mDbHelper.getLong(NoteDbAdapter.onCreate(savedInstanceState). return true. Long mRowId. mRowId = extras != null ? extras.editBody).

} public void saveNote() { String title = noteTitle. Simpan dan coba Run program. 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. String body = noteBody.toString().getText().updateNote(mRowId. } return super.onMenuItemSelected(featureId.createNote(title. . item).MODUL 4.toString().menuDelete: // delete note return true.id.getText(). body). } } else { mDbHelper. body). } } } 34. if (id > 0) { mRowId = id. if (mRowId == null) { long id = mDbHelper. case R.

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

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

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

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

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

KEY_ROWID.string. Dimana ketika salah satu item dalam list di klik.MODUL 4. ContextMenuInfo menuInfo) { super. fillData(). id). 62 Methode ini digunakan untuk menghandle event klik pada listView. View v..onCreateContextMenu(menu. position. menu... maka ia akan menjalankan activity EditNote dalam mode Edit (ACTIVITY EDIT). 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. i. View v.. } . DELETE_ID. mDbHelper. } @Override public boolean onContextItemSelected(MenuItem item) { switch(item. public class Notepad extends ListActivity { .id). Tambahkan methode untuk membuat context menu pada List. 0.Notepad. long id) { super.getItemId()) { case DELETE_ID: AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.putExtra(NoteDbAdapter. v. .deleteNote(info. R. @Override protected void onListItemClick(ListView l. EditNote..onListItemClick(l. v. int position. . menuInfo)..menu_delete).getMenuInfo(). 45. ACTIVITY_EDIT). Intent i = new Intent(this. id).add(0.. NOTEPAD public class Notepad extends ListActivity { .. startActivityForResult(i.class). @Override public void onCreateContextMenu(ContextMenu menu.

. } return super. public class Notepad extends ListActivity { .MODUL 4. resultCode. intent).onContextItemSelected(item). Listing full program dapat dilihat pada halaman terakhir. NOTEPAD 21 22 23 24 25 63 return true. ... } . Jika tidak ada kesalahan maka program akan berjalan seperti: ..Notepad. fillData(). Simpan dan Run program.onActivityResult(requestCode.. int resultCode... 46. 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.. Intent intent) { super. 47. @Override protected void onActivityResult (int requestCode. Dan tambahkan sebuah methode untuk menghandle ketika sebuah activity selesai. } .

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

} private void populateFields() { if (mRowId != null) { Cursor note = mDbHelper.open(). Selanjutnay kita perlu memanggil methode populateFields() tersebut ketika activity EditNote dijalankan. noteTitle. public class EditNote extends Activity { .MODUL 4.Notepad. mDbHelper. yakni pada methode onCreate(): 1 2 3 4 5 6 7 8 9 10 11 package latihan. .setText(note.KEY_TITLE))).setText(note.. 50. noteBody.. } } . . public class EditNote extends Activity { . 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) { .getString( note.. startManagingCursor(note).fetchNote(mRowId).getColumnIndexOrThrow(NoteDbAdapter...KEY_BODY))).Notepad........getString( note.getColumnIndexOrThrow(NoteDbAdapter. @Override public void onCreate(Bundle savedInstanceState) { .. mDbHelper = new NoteDbAdapter(this). .

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

new DialogInterface. dialogHasil.create().setTitle("Delete Note"). } }).setPositiveButton("OK". builder.MODUL 4. } Dan methode deleteNote(): 1 2 3 4 5 6 7 private void deleteNote() { AlertDialog.java. builder. 2.dismiss().Builder builder = new AlertDialog.OnClickListener() { .setTitle("Revert"). AlertDialog dialogHasil = builder.OnClickListener() { @Override public void onClick(DialogInterface dialog. Buka dan edit file EditNote. builder. new DialogInterface.setMessage("Are you sure?") . 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.setMessage("Are you sure?") . NOTEPAD 67 Latihan Pada program di atas.setPositiveButton("OK".Builder(this).Builder(this). dialog. int which) { // TODO Auto-generated method stub populateFields(). builder. Sebagai latihan mari kita coba tambahkan handler-handler ini: 1.show().Builder builder = new AlertDialog. Kita masih belum membuat handler untuk menu Revert dan Delete pada menu EditNote.

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

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

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

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

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

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

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

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

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

UPDATE FACEBOOK 77 Membuat UI 2.xml 4. Tambahkan beberapa value pada string.xml menjadi: (a) Layout (b) Outline Gambar 5.9: Layout main. Ubah layout main. Kemudian ubah property masing-masing objek menjadi: • LinearLayout – Orientation : Vertical .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.MODUL 5.

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

.MODUL 5. public class DroidUpdater extends Activity { /** Called when the activity is first created. setContentView(R. fb. */ private static final Facebook fb = new Facebook("147478081988384")...main).. . } ..authorize(this .. public class DroidUpdater extends Activity { /** Called when the activity is first created. @Override public void onCreate(Bundle savedInstanceState) { super. 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 . */ private static final Facebook fb = new Facebook("147478081988384"). 10. Tambahkan methode onActivityResult: 1 2 3 4 5 .onCreate(savedInstanceState).layout.new DialogListener() { @Override public void onFacebookError(FacebookError e) { } @Override public void onError(DialogError e) { } @Override public void onComplete(Bundle values) { } @Override public void onCancel() { } }).

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

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

. Tambahkan methode postToWall() untuk mempost ke Wall: 1 2 3 4 5 6 7 8 9 10 .main). .. fb. public class DroidUpdater extends Activity { .MODUL 5.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.POST_AUTH .. 14...layout.onCreate(savedInstanceState). setContentView(R. 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. @Override public void onCreate(Bundle savedInstanceState) { . } ... } public void postToWall(View view) { Bundle param = new Bundle()..

wordpress. new DialogListener() { @Override public void onFacebookError(FacebookError e) { } @Override public void onError(DialogError e) { } @Override public void onComplete(Bundle values) { } @Override public void onCancel() { } }). "B-A-K-A is Unlimited. param..MODUL 5. } .putString("description".putString("picture". "http://developer.. param.png"). "Therefore we must reduce it..putString("link". param. 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. 15. "feed"..putString("caption". param. fb.android."). ..com/assets/images/bg_logo. Kemudian simpan dan Run Program.dialog(this.com").").. "http://kumachii...

MODUL 5. 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. UPDATE FACEBOOK 86 Gambar 5. .

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

Sign up to vote on this title
UsefulNot useful