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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MODUL 3 Kalkulator Target: Gambar 3.1: Kalkulator 20 .

xml. Kemudian tambahkan beberapa komponen sehingga menjadi (pastikan anda berada pada mode Graphical layout): .3 (sesuaikan dengan AVD yang ada) Application name: Kalkulator Package name: latihan. beri nama project Kalkulator. Membuat Layout UI 3. dengan konfigurasi: Project name: Kalkulator Build target: Android 2.xml yang ada pada res/layout/.MODUL 3. Buka file main. 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. Buka file string. Buat sebuah Android Project baru. KALKULATOR 21 Langkah-langkah: Membuat Project 1.xml yang berada pada res/values/string.3.

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

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

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

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

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

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

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

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

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.MODUL 4.3: New Android XML File . Buka string. Atur property List View tersebut menjadi: • ID : listNote • Layout Height : Match Parent • Layout Width : Match Parent Layout edit note 4.. NOTEPAD 3. kemudian Pilih Android >Android XML File.xml kemudian tambahkan beberapa String baru: • String – Name* : note title – Value* : Title • String – Name* : note body – Value* : Body 35 5.. Kemudian tekan Next>. Gambar 4.

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

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

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

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

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

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

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

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

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

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

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

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

. android. NOTEPAD • File : edit • Type : Menu • Folder : /res/menu 26.view.Bundle.xml yang berada di bawah res/menu/. . Pilih ”Create a new element at the top level. 48 27. in Menu” kemudian pilih Item.MODUL 4.. @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 . android.view.widget.edit_note).MenuItem.layout. Tambahkan tiga buah Menu Item dengan mengklik Add.Menu.EditText.os. 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.onCreate(savedInstanceState)... public class EditNote extends Activity { private EditText noteTitle. private EditText noteBody. Buka file edit. import import import import android. setContentView(R.. android.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

10: Project com facebook android .MODUL 5. 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.

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful