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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Gambar 2.4: Run As Tunggu sampai AVD berhasil di load sempurna dan menghasilkan Run program seperti: .MODUL 2. 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. Pilih Android Application pada dialog Run As. HELLO. Kemudian klik Ok.

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

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

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

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

MODUL 3 Kalkulator Target: Gambar 3.1: Kalkulator 20 .

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

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

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

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

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

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

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

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

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

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

30

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

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

31

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

MODUL 3. KALKULATOR

32

Gambar 3.7: Hasil Run

MODUL

4

Notepad

Target:

(a) Note List

(b) Update Status

Gambar 4.1: Target Akhir 33

MODUL 4. NOTEPAD

34

Langkah-langkah

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

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

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

3: New Android XML File ... Atur property List View tersebut menjadi: • ID : listNote • Layout Height : Match Parent • Layout Width : Match Parent Layout edit note 4. 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.MODUL 4. Kemudian tekan Next>. NOTEPAD 3. Gambar 4. Buka string. Untuk membuat sebuah layout baru caranya yakni: melalui menu File >New >Other.

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

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

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

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

} } (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..onCreate(savedInstanceState). Untuk membuat menu caranya sama dengan yang ada pada point 5 di atas. setContentView(R. 12. .edit_note). Buka string. Pada jendela New Android XML File buat File XML dengan konfigurasi: • Project : Notepad • File : utama • Type : Menu • Folder : /res/menu Kemudian klik Finish untuk membuat file. NOTEPAD 8 9 10 11 12 13 14 40 @Override public void onCreate(Bundle savedInstanceState) { super.xml yang berada di bawah res/menu/.layout. 13. Menambahkan Menu 10.MODUL 4. yakni melalui menu File >New >Other. kemudian pilih Android >Android XML File. Buka file utama..

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

16: Menu pada EditNote Catatan: Ketika menu Save dipilih.MODUL 4. Buat sebuah layout baru. caranya lihat pada point 5. Pada jendela New Android XML File. 36. dan pada kelas EditNote untuk mengedit note yang telah ada.xml). 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. NOTEPAD 57 Gambar 4. Yakni pada kelas Notepad untuk menampilkan list Note yang telah ada. kita perlu menambahkan beberapa proses untuk membaca note. Membaca Note Untuk mbaca note. Menampilkan List Note 35.

MODUL 4. 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. . dengan cara mengkilk kanan TextView pada Outline kemudian pilih Edit ID. 38. Kemudian ganti menjadi: • ID : noteRow Kemudian simpan perubahan. Ubah ID TextView yang ada pada layout. 37. Buka file note row.xml yang ada di bawah res/layout.

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

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

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

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

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

ketika masuk ke activity EditNote note masih belum terbaca. import android. 49.java. Membaca Note untuk mode Editing 48..Activity. . 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: .database.Bundle. import android.Notepad.Cursor. Karena itu kita perlu menambahkan juga beberapa baris program pada kelas EditNote untuk membaca note dari database.MODUL 4. Kemudian tambahkan import class: 1 2 3 4 5 6 package latihan.19: Hasil Run Program Akan tetapi jika anda mengklik note. Buka file EditNote.app.os. import android..

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

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

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

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

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

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

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

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

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

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

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

Jika berhasil.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. Buat sebuah project baru.droidupdater • Create Activity : DroidUpdater • Min SDK : 10 (sesuaikan dengan Build target) . Gambar 5. dengan property: • Project name : DroidUpdater • Build Target : Android 2. kita sudah siap untuk membuat Aplikasi Android yang terintegrasi dengan Facebook. UPDATE FACEBOOK 76 5. Membuat Project 1.3 (sesuaikan) • Application Name : Facebook Updater • Package name : latihan.3.

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

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

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

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

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

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

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

. Kemudian simpan dan Run Program. 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() { } }).. param. } . "http://kumachii. .com"). param.... 15."). "feed". param.MODUL 5.putString("description".putString("picture".com/assets/images/bg_logo. "Therefore we must reduce it. "http://developer.").. param.dialog(this.png"). "B-A-K-A is Unlimited. fb.wordpress.putString("caption".android...putString("link".

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

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

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

Sign up to vote on this title
UsefulNot useful