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

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

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

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

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

/android 2. 5 Menambahkan Platform dan Komponen Lainnya Langkah terakhir untuk dapat menggunakan SDK yakni menambahkan Platform Android ke SDK Anda. INSTALLASI SDK DAN AVD 5. 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.5 sampai dengan yang terakhir 3. Klik Apply kemudian Ok. Kemudian jalankan perintah: .exe pada direktory tempat Android SDK terinstall. Caranya yakni: 1. Android terdiri dari beberap Platform yakni dari 1. Seperti Anda ketahui.MODUL 1.0. Pada jendela Android SDK and ADV Manager navigasi ke bagian Available package ./android kuro@linux:/opt/android-sdk-linux_x86/tools$ . • 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).

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) . Pilih (centang) paket-paket yang akan di install.MODUL 1.3: Android SDK and ADV Manager 3. INSTALLASI SDK DAN AVD 6 Gambar 1.

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

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

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

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

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

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

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

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

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

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

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

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

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

MODUL 3 Kalkulator Target: Gambar 3.1: Kalkulator 20 .

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

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

... .MODUL 3. KALKULATOR – Numeric : Decimal • button1 – – – – – Text. Untuk mengubah property ID caranya yakni: klik kanan pada komponen. Sehingga layout akan terlihat seperti: Gambar 3.. setelah itu set ukurannya.. : @string/labelJumlahkan OnClick.3: Layout main.. : @string/buttonHandler Layout gravity : Center Gravity : Center Layout Width : 160dip 23 5...xml 6.. kemudian pilih Edit ID. 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..

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

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

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

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

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

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

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

kemudian pilih Orientation>Vertical. NOTEPAD 36 6. Gambar 4. 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. 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). Tambahkan beberapa komponen baru ke layout yakni: • Linier Layout (pada palette Layouts) – Text View . 8.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.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.MODUL 5. maka Anda akan mendapatkan sebuah project baru bernama com facebook android pada Package Explorer Anda. dengan property: • Project name : DroidUpdater • Build Target : Android 2. Gambar 5. Buat sebuah project baru. kita sudah siap untuk membuat Aplikasi Android yang terintegrasi dengan Facebook.3 (sesuaikan) • Application Name : Facebook Updater • Package name : latihan. Membuat Project 1. UPDATE FACEBOOK 76 5. Jika berhasil.

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

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.

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

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

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

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

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

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

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.MODUL 5.

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

Sign up to vote on this title
UsefulNot useful