MODUL PEMBELAJARAN PEMROGRAMAN APLIKASI BERBASIS ANDROID
Oleh
I PUTU AGUS EKA PRATAMA, ST MT
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG
2013
DAFTAR ISI Bab I Level Pemula Android (1).............................................................................1 I.1 Sekilas Mengenai Android.............................................................................1 I.1.1 Kernel Linux................................................................................................1 I.1.2 DVM (Dalvik Virtual Machine)...................................................................2 I.1.3 Android SDK...............................................................................................2 I.1.4 ADT (Android Development Tool)..............................................................3 I.1.5 Arsitektur Android ......................................................................................3 I.1.6 Aplikasi Fundamental Android....................................................................4 I.1.7 Versi Android...............................................................................................5 I.2 Persiapan Untuk Pemrograman Berbasis Android.........................................5 I.2.1 Instalasi Java................................................................................................6 I.2.2 Instalasi Eclipse dan ADT Dalam 1 Paket...................................................7 I.2.3 Membuat AVD (Android Virtual Device)....................................................9 I.2.4 Membuat Program Awal : Sebuah Kalimat Sederhana..............................11 I.3 Soal Latihan.................................................................................................13 Bab II Level Pemula Android (2)..........................................................................14 II.1 User Interface (UI) di Android....................................................................14 II.1.1 UI di Android Beserta Komponennya......................................................14 II.1.2 Mengenal Android Manifest.....................................................................14 II.1.3 Contoh Aplikasi UI : Jam Android...........................................................14 II.2 Soal Latihan ...............................................................................................20 Bab III Level Menengah Android (1)....................................................................21 III.1 Droiddraw..................................................................................................21 III.1.1 Penjelasan DroidDraw.............................................................................21 III.1.2 Contoh : Aplikasi Wisata Sejarah Kota Bandung....................................23 III.2 WebKit.......................................................................................................30 III.2.1 Penjelasan WebKit..................................................................................30 III.2.2 Penerapan WebKit di Android : Aplikasi Buka Web...............................31 III.3 Array dan File............................................................................................38
III.3.1 Penjelasan Array dan File........................................................................38 III.3.2 Penerapan Array dan File di Android......................................................38 III.4 Database SQLite........................................................................................48 III.4.1 Penjelasan Database SQLite....................................................................48 III.4.2 Penerapan Database SQLite di Android..................................................49 III.5 MySQL dan SQL Server di Android.........................................................73 III.5.1 Koneksi dengan MySQL di Android.......................................................73 III.5.2 Koneksi Dengan SQL Server di Android................................................85 Bab IV Level Expert Android (1) .........................................................................93 IV.1 Pemetaan di Android..................................................................................93 IV.1.1 Location Based Service...........................................................................93 IV.1.2 GPS di Android Menggunakan Emulator................................................94 IV.1.3 API Key Google......................................................................................98 IV.1.4 Contoh Aplikasi Penerapan...................................................................100 IV.2 Handle Telephone di Android..................................................................105 IV.2.1 Dial Panggilan di Emulator Android.....................................................105 IV.2.2 SMS Emulator di Android.....................................................................108 IV.3 Beberapa Studi Kasus Aplikasi Android..................................................109 IV.3.1 Integrasi dengan HTML 5 ....................................................................109 Bab V Level Expert Android (2).........................................................................118 V.1 ERP (Enterprise Resource Planning)........................................................118 V.1.1 Definisi ERP...........................................................................................118 V.1.2 Manfaat ERP...........................................................................................118 V.1.3 Modul – Modul Pada ERP......................................................................118 V.2 SOA (Service Oriented Architecture)........................................................119 V.2.1 Definisi SOA...........................................................................................119 V.2.2 Manfaat SOA..........................................................................................119 V.3 Implementasi Modul – Modul ERP Di Android (Porting/Mobile ERP)...119 V.3.1 Latar Belakang .......................................................................................119 V.3.2 Mobile ERP.............................................................................................119 V.3.3 Manfaat ..................................................................................................120 V.3.4 Implementasi...........................................................................................121
Daftar Pustaka....................................................................................................122
Bab I
Level Pemula Android (1)
Tujuan : Melalui Bab 1 ini diharapkan pembaca dapat mengetahui mengenai : 1. Linux, Android, DVM (Dalvik Virtual Machine), Android SDK (Software Development Toolkit), ADT (Android Development Tool), arstitektur Android, aplikasi fundamental Android, dan versi Android. 2. Persiapan – persiapan yang harus dilakukan agar dapat memulai pemrograman
aplikasi
berbasis
Android
(Android
development
programming). Mencakup : instalasi Java, instalasi Android SDK, instalasi IDE Eclipse, instalasi ADT di Eclipse, membuat AVD (Android Virtual Device). 3. Membuat aplikasi sederhana di Android (menanpilkan kalimat, misal : Hai selamat pagi), dan menjalankannya di emulator maupun porting langsung ke smartphone berbasis Android. I.1 I.1.1
Sekilas Mengenai Android Kernel Linux Kernel merupakan perangkat lunak komputer yang menjadi inti dari
sebuah sistem operasi (baik sistem operasi desktop, server, maupun mobile). Pada kernel terdapat fungsi – fungsi dasar dari sebuah sistem operasi. Kernel ditulis dengan beragam bahasa pemrograman. Salah satunya bahasa C pada kernel Linux. Kernel Linux diciptakan oleh Linus Torvald berdasarkan sistem operasi Minix yang telah ada. Minix sendiri mengadpsi sistem operasi UNIX yang saat itu terbilang mahal. Kernel Linux yang ditulis dengan bahasa C ini dilepas bebas ke masyarakat (komunitas) oleh Linus, untuk kemudian bersama – sama dikembangkan, dengan lisensi open source. Misalkan dibungkus dengan beragam aplikasi dan library berlisensi open source GNU GPL, maka menjadi sistem operasi GNU/Linux (umum disebut linux saja). Implementasinya sangat banyak, mulai dari sistem operasi Linux untuk enterprise (misal Red Hat Linux), komunitas (misal Ubuntu, Fedora, Slackware, dan lainnya), dikembangkan dari kernel Linux menjadi sistem operasi lainnya (misal Mikrotik, Android, Tizen,
1
Firefox OS), maupun linux embbeded system (pada mobil, kulkas, televisi, dan lainnya). Dengan makin berkembangnya teknologi informasi, maka penerapan Linux dan open source di berbagai bidang makin besar. Termasuk dalam cloud computing, smart city, dan beragam device mobile lainnya. I.1.2
DVM (Dalvik Virtual Machine) Sebelum munculmnya Android sebagai sebuah platform dan sistem
operasi perangkat mobile dengan memanfaatkan kernel linux, sebelumnya dikenal pemrograman J2ME (Java 2 Mobile Edition) untuk aplikasi mobile, misalkan pada sistem operasi Symbian. J2ME, sebagaimana Java, memiliki virtual machine (JVM/Java Virtual Machine), yang menjadi elemen kunci dari platform Java. Dengan adanya virtual machine tersebut, programmer dapat memastikan apakah aplikasi java mobile yang dikembangkan tersebut dapat berjalan dengan baik juga di deviec sesungguhnya (handphone, smartphone, PDA). JVM bersifat stack based. Android memiliki virtual machine sendiri bernama DVM (Dalvick Virtual Machine). DVM memiliki sifat register based. Dengan adanya DVM ini, executable file dapat dieksekusi dengan lebih baik, sehingga dapat membantu mengcompile code dalam bahasa Java menggunakan tool yang disediakan oleh Software Development Kit (SDK) Android. I.1.3
Android SDK Android SDK (Software Development Kit) merupakan perangkat API
(Application
Programming
Interface)
untuk
memudahkan
di
dalam
mengembangkan perangkat lunak pada platform Android dengan menggunakan bahasa pemrograman Java. SDK Android bersifat open source dan dapat diunduh melalui http://www.developer.android.com. Salah satu IDE open source untuk pemrograman Java, yaitu Eclipse, dapat ditambahkan Andrid SDK untuk memudahkan anda di dalam mengembangkan aplikasi berbasis Android.
2
I.1.4
ADT (Android Development Tool) ADT (Android Development Toolkit) merupakan plugin pada IDE Eclipse
untuk memudahkan di dalam melakukan pengembangan aplikasi berbasis Android.
ADT
juga
bersifat
open
source
dan
bebas
diunduh
di
http://www.developer.android.com. Melalui ADT, file .apk bisa dibuat sehingga memudahkan distribusi aplikasi Android. I.1.5
Arsitektur Android Arsitektur pada Android mencakup lima level komponen, Kelima level
tersebut mencakup Applications and Widgets, Application Frameworks, Libraries, Android Run Time, dan kernel linux. Applications and Widgets merupakan layer yang memuat aplikasi inti pada aplikasi Android (E-Mail Client, SMS, kalender, kontak, peta, web browser, dan lainnya) yang ditulis dengan menggunakan bahasa pemrograman Java. Application Framework merupakan layer di mana pengembang dapat turut serta membangun aplikasi berbasis Android, terutama terkait dengan konten proider (SMS, telepon). Komponen pada Application Framework mencakup Views, Content Provider, Resource Manager, Notification Manager, dan Activity Manager. Libraries merupakan sekumpulan librari sebagai sebuah layer, di mana para pemrogram dapat mengaksesnya sehingga aplikasi dapat dijalankan. Libraries berjalan di atas kernel. Libraries ini terdiri atas berbagai library C, C++, Libc, SSL, library media untuk penyimpanan audio dan video, serta library untuk manajemen tampilan. Android Run Time adalah layer untuk menjalankan aplikasi Android, di mana di dalam Android Run Time ini semua proses mengimplementasikan proses di linux sebagai kernelnya. Android Run Time memiliki 2 bagian utama, yaitu Core Libraries (berfungsi untuk menterjemahkan bahasa C/Java dengan bantuan DVM) serta DVM (seperti dijelaskan di sub bab atas). Linux kernel adalh layer utama yang menjadi nti dari sistem operasi Android ini. Memuat semua fungsi dasar sistem operasi Android (processing,
3
memory, resource, driver). Kernel linux yang digunakan adalah versi 2.6. Kernel linux bersifat open source. I.1.6
Aplikasi Fundamental Android Saat melakukan pemrograman aplikasi Android, digunakan bahasa
pemrograman Java di dalamnya, yang bersifat object oriented. Setelah selesai melakukan pemrograman, kemudian dikompilasikan dan dipaketkan dengan bantuan apt-tools, untk kemudian menjadi aplikasi .apk yang dapat diinstall di perangkat mobile dengan sistem operasi Android. Pada Android terdapat empat komponen utama yang penting. Keempat komponen tersebut mencakup Activities, Services, Broadcast Receiver, dan Content Provider. Activities berfnngsi untuk menyajikan tampilan tatap muka (Graphic User Interface/GUI) kepada pengguna. Banyaknya activities pada sebuah program Android dapat beragam antara satu buah hingga beberapa buah, sesuai dengan keperluan. Service berfungsi memberikan layanan kepada pengguna terkait dengan aplikasi yang dijalankan di Android. Service kebanyakan berjalan di belakang background. Setiap activities memiliki service. Broadcast receiver adalah komponen yang berfungsi untuk memberikan aksi dan menerima reaksi untuk notifikasi berdasarkan kondisi tertentu (batere lemah, pengambilan gambar oleh kamera, perubahan zona waktu, dan lainnya). Sebagaimana service, Broadcast Receiver tidak memiliki GUI namun memiliki activity untuk respon informasi. Content Provider bertugas mengelola data untuk bisa dijadikan informasi oleh pengguna. Content provider menggunakan engine database untuk pengelolaan ini, misalkan SQLite untuk koneksi aplikasi Android dan database. Penerapannya misalkan pada aplikasi pemetaan online di Android, pendaftaran, login, ERP mobile, atau aplikasi lainnya yang memerlukan koneksi dengan database.
4
I.1.7
Versi Android Android mulai banyak beredar di pasaran (dalam hal ini sebagai sistem
operasi di device mobile) mulai dari versi kelima (Froyo/Frozen Yogurt/2.2). Sebelum itu, versi Android masih memiliki banyak kekurangan sebagai sebuah aplikasi di platform mobile phone/smartphone. Berikut adalah urutan versi Android dari yang pertama hingga yang terakhir (tahun 2013). 1. Versi 1.1 (2009) dengan fitur voice search, pengiriman pesan via Gmail, berbagai aplikasi, jam, dan lainnya. 2. Versi 1.5 (CupCake) dengan penambahan SDK, bluetooth, animasi layar, dan lainnya. 3. Versi 1.6 (Donut) dengan tambahan applet VPN, upload foto, text to speech, dial kontak, dan lainnya. 4. Versi 2.0 dan 2,1 (Eclair) dengan tambahan optimasi hardware, dukungan HTML5, browser dan tampilan baru, flash untuk kamera, dan lainnya. 5. Versi 2.2 (Froyo) mulai banyak digunakan di berbagai smartphone/mobile phone. Mulai mengoptimalkan DVM (Dalvik Virtual Machine). 6. Versi 2.3 (Gingerbread) dengan tambahan SIP berbasis VOIP, download manager, dukungan kamera depan dan kamera belakang, NFC (Near Field Communication), dan lainnya. 7. Versi 3.0 (Honeycomb) mulai banyak digunakan di PC tablet, dilanjutkan dengan versi 3.1 dan versi 3.2. 8. Versi 4.0 (Ice Cream Sandwitch) yang dimulai dari November 2011 hingga tahun 2013 ini. 9. Versi 4.1 (Jelly Bean), dilanjutkan dengan versi 4.1 dan versi 4.2. 10. Versi 4.3 (KitKat), di mana versi ini baru saja dirilis tahun 2013 ini. Tentu saja ke depannya akan muncul lagi versi – versi yang lebih baru dengan tambahan fitur yang lebih baik dan lengkap. I.2
Persiapan Untuk Pemrograman Berbasis Android Untuk dapat melakukan pemrograman aplikasi Android di komputer anda,
perlu dipersiapkan beberapa hal penting. Pertama, anda wajib menyediakan sistem operasi di komputer anda. Penulis merekomendasikan sistem operasi Linux
5
(namun anda boleh menggunakan Microsoft Windows maupun Mac OS). Pengalaman penulis sendiri dan referensi pengalaman pengguna lainnya, di sistem operasi Linux, emulator Android berjalan lebih baik dan lebih cepat. Selain itu, dengan kesamaan kernel dan ketersediaan beragam IDE open source yang lengkap, maka memudahkan di dalam pengembangan aplikasi. Langkah kedua adalah penyediaan IDE untuk pemrograman. IDE (Integrated Development Environment/Lingkungan Pengembangan Terintegrasi) yang disarankan untuk pengembangan aplikasi Android adalah IDE open source Eclipse. Penulis menyarankan Eclipse yang telah dibundel menjadi satu dengan ADT, ADV, SDK Android, agar lebih simpel. Langkah ketiga, kuasai pemahaman mengenai bahasa pemrograman Java dan konsep Object Oriented. Java merupakan salah satu bahasa pemrograman yang menggunakan konsep pemrograman berorientasi objek (Object Oriented). I.2.1
Instalasi Java Untuk dapat melakukan pemrograman aplikasi berbasis Android, anda
harus menginstal Java di komputer anda. Lihat kembali prasyarat yang disebutkan di sub bab di atas. Untuk sistem operasi Linux, Windows, dan Mac OS, unduhlah terlebih dahulu
instaler
Java
di
http://www.oracle.com
http://java.com/en/download/manual.jsp?locale=en.
Kemudian
ataupun klik
di untuk
memulai proses instalasi. Pada sistem operasi linux, selain mengunduh dan menginstal secara manual, anda juga dapat melakukannya secara lebih mudah dan otomatis melalui repository masing – masing distribusi (distro) linux yang anda gunakan. Misalkan di Debian/Ubuntu based menggunakan synaptic/apt-get, di Fedora/Red Hat based menggunakan yum atau yumex. Cukup ketik java maka sistem di repository linux akan menampilkan semua paket dependecies terkait dengan Java. Centangi semuanya, kemudian klik untuk instalasi. Atau anda dapat menggunakan perintah ini di terminal linux anda : (1) Untuk basis Debian/Ubuntu : $
Jika sudah, baik di sistem operasi manapun, anda bisa mengeceknya melalui terminal Linux/Mac OS maupun command line (CMD) Windows dengan perintah java –version.
I.2.2
Instalasi Eclipse dan ADT Dalam 1 Paket Langkah selanjutnya adalah menginstall IDE Eclipse untuk pemrograman
Java dan Android application, SDK Android, dan ADT. Agar tidak repot, anda dapat
mengunduh
bundel
semuanya
(komplit
dalam
1
file
zip)
di
http://developer.android.com/sdk/index.html atau bisa copy ke penulis.
Gambar 1.1 Unduh ADT Eclipse bundel File ini dapat digunakan di sistem operasi Linux, Wndows, dan Mac OS, dengan cukup hanya mengesktrak saja kemudian mengklik menu run aplikasi IDE Eclipse yang sudah terintegrasi dengan ADT. Jika proses ekstrasi selesai dilakukan, maka anda akan menemui 2 buah sub folder di dalamnya, yaitu Eclipse IDE dan SDK.
7
Gambar 1.2 Folder bundel ADT Eclipse setelah diekstrak Kemudian pindah ke folder Eclipse, kemudian klik file eksekusi Eclipse. Maka anda harusnya akan melihat Eclipse IDE dengan bundel ADT siap dijalankan.
Gambar 1.3 Eclipse eksekusi file siap dijalankan
8
Gambar 1.4 Eclipse ADT siap disajikan Langkah
selanjutnya
adalah
mengeset
/home/user-anda/workspace/android).
workspace
anda
(disarankan
di
Hal ini cukup dilakukan sekali saja,
sehingga nati saat memprogram otomatis semua project yang anda kerjakan tersimpan di workspace tersebut. Catatan : Jika SDK dianggap belum ada (missing) oleh Eclipse, maka Eclipse akan menampilkan pesan peringatan dan opsi untuk mengubah konfigurasi letak SDK berada. Pilihlah opsi konfigurasi tersebut, kemudian pilih lokasi folder sdk (yang berada 1 folder dgn folder eclipse). I.2.3
Membuat AVD (Android Virtual Device) AVD (Android Virtual Device) adalah emulator yang berfungsi untuk
menjalankan
aplikasi Android
yang
anda
buat
selayaknya
di
device
smartphone/hand phone/tablet yang asli. Anda bahkan dapat memilih jenis device yang akan digunakan, resolusi, dan versi Android yang digunakan. AVD adalah suatu kewajiban di dalam tahap pengembangan perangkat lunak mobile berbasis Android.
9
Untuk mengatur dan menjalankan AVD, beralihlah ke tab menu Windows --> Android Virtual Device manager. Kemudian Pilih New dan isilah dengan nama AVD, memilih device, dan lainnya. Anda dapat membuat lebih dari satu AVD.
Gambar 1.5 Menu pengaturan Android Virtual Device
Gambar 1.6 Pemilihan device untuk AVD
10
Gambar 1.7 Daftar AVD yang dibuat I.2.4
Membuat Program Awal : Sebuah Kalimat Sederhana Pada sub bab ini akan dibahas tata cara pembuatan sebuah project
sederhana untuk aplikasi Android. Contoh yang ditunjukkan adalah membuat sebuah aplikasi untuk menampilkan sebuah kalimat sederhana pada aplikasi Android yang anda buat dan anda jalankan di emulator. Pada contoh ini akan dibuat sebuah aplikasi untuk menampilkan kalimat “Belajar pemrograman Android di linux asyik banget“. Pertama, masih dalam kondisi IDE Eclipse ADT terbuka, klik tab menu File --> New --> Android Development Project. Kemudian berilah nama project Android anda, misalkan Halo. Kemudian biarkan pengaturan lainnya sesuai standarisasi Android dengan menekan Next, Next, sampai Finish. Maka akan muncul sebuah folder bernama Halo lengkap dengan sub folder di dalamnya (lihat di kiri Eclipse anda). Merujuklah ke sub folder res --> value --> strings.xml, lalu buka di Eclipse anda. Kemudian gantilah standarisasi “Hello World“ menjadi kalimat sesuka anda, misalkan menjadi “Belajar pemrograman Android di linux asyik banget“. Kini arahkan ke folder Halo, kemudian klik kanan dan pilih opsi Run as Android Application, Jika benar maka anda akan melihat tampilan emulator Android anda (Android Virtual Device) menjalankan aplikasi yang anda bat tersebut.
11
Gambar 1.8 Script strings.xml yang akan diubah
Gambar 1.9 Aplikasi dijalankan di emulator (ADV)
12
Gambar 1.10 Aplikasi berada di daftar aplikasi I.3
Soal Latihan
Kerjakan latihan berikut : 1. Install sistem operasi Linux (distro bebas) di komputer anda. Jika tidak, boleh tetap memakai OS Windows ataupun Mac OS. Saya menyarankan sistem operasi Linux untuk stabilitas, kemudahan, kehandalan, relatif lebih aman, dan stabil. 2. Install Eclipse + ADT + SDK Android (dalam 1 bundel file zip) sesuai petunjuk di modul. 3. Jalankan Eclipse. 4. Atur workspace anda. 5. Pilih dan konfigurasi AVD anda. 6. Buat project pertama anda (nama project bebas terserah anda). 7. Buat aplikasi sederhana seperti contoh di atas. Anda dapat menggantikan kalimat yang ditampilkan. 8. Jalankan aplikasi anda di AVD. 9. Buat dokumentasi sederhana tentang materi bab ini di blog/website anda masing – masing (untuk poin latihan 1 - 8 di atas), lengkap dengan capture jika diperlukan.
13
Bab II
Level Pemula Android (2)
Tujuan : Melalui Bab 2 ini diharapkan pembaca dapat mengetahui mengenai : 1. User Interface (UI) di Android dan pembuatannya. 2. Activity, Widget, dan View di Android 3. Konsep pada Bab 1 dan Bab 2 ini akan menjadi dasar untuk mempelajari level menengah dan level expert di bab – bab selanjutnya. II.1 User Interface (UI) di Android II.1.1 UI di Android Beserta Komponennya Di Android, User Interface (UI) terdiri atas activity dan komponen dengan lokasi di /res/layout pada file berkekstensi .xml untuk kemudian dipanggil di program utama melalui R.layout.main. Komponen – komponen User Interface di Android terdiri atas ViewGroup, View, RequestFocus, dan Include. ViewGroup terdiri atas LinearLayout, RelativeLayout, FrameLayout, dan lainnya (dibahas tuntas di bab 3 tentang DroidDraw). View lebih dikenal dengan Individual UI component. RequestFocus merupakan elemen kosong yang didefinisikan di dalam View. Include merupakan upaya untuk memasukkan file layout ke layout. II.1.2 Mengenal Android Manifest Android
Manifest
berupa
sebuah
file
dengan
ekstensi
.xml
(androidmanifest.xml). Fungsinya untuk mendeskripsikan variabel global dari paket aplikasi yang digunakan. II.1.3 Contoh Aplikasi UI : Jam Android Sebagai bahan latihan, akan dicoba disajikan pembuatan sebuah aplikasi sederhana Jam Android. Aplikasi sederhana ini sebenarnya hanya memanggil sistem waktu yang ada di komputer melalui script Java. Pertama, seperti biasa, buatlah sebuah project Android melalui menu File --> Android Application Project. Kemudian berikan nama project ini Jam Android.
14
Gambar 2.1 Membuat project Jam Android Kemudian klik tombol Next, biarkan secara default tercentang untuk opsi pembuatan launcher icon dan activity. Kemudian tekan Next untuk melanjutkan ke pemilihan icon launcher dan blank activity.
Gambar 2.2 Proses create launcher icon dan activity
15
Gambar 2.3 Memilih launcher icon
Gambar 2.4 Memilih blank activity Pada tahap Blank Activity, untuk Activity Name diberi nama JamAndroid. Untuk layout name diberikan jam_android. Kemudian tekan Next.
16
Gambar 2.5 Memberi nama Blank Activity Seharusnya akan terbentuk folder project anda bernama JamAndroid. Kemudian melangkah ke sub direktori src, tepatnya di com.putushinoda.jamandroid, kemudian buatlah sebuah kelas Java baru bernama JamAndroid.
Gambar 2.6 Membuat kelas Java JamAndroid Kini isikan kelas JamAndroid.java tersebut dengan script Java berikut ini : package com.putushinoda.jamandroid;
Setelah selesai, kemudian simpan. Lalu klik kanan project Android anda dan pilih opsi Run as Android application. Harusnya akan muncul emulator Android (AVD) yang menampilkan aplikasi Jam Android ini dan menjalankannya :
Gambar 2.7 Instalasi .apk project ke emulator (AVD)
18
Gambar 2.8 Aplikasi di menu Android
Gambar 2.9 Aplikasi dijalankan di emulator (AVD) Sampai di sini proses pembuatan aplikasi Jam Android sudah selesai. Diharapkan pembaca dapat makin memahami mengenai User Interface di Android dan prakteknya dalam pembuatan aplikasi Android. Untuk tahap User Interface lebih lanjut akan dibahas di bab 3 melalui pemanfaatan DrodDraw yang lebih lengkap.
19
II.2 Soal Latihan Kerjakan soal latihan berikut ini : 1. Siapkan komputer anda beserta dengan sistem operasi Linux/sistem operasi yang ada. 2. Jalankan Eclipse anda. 3. Coba jalankan script project di atas sesuai urutan langkah yang telah dijelaskan. 4. Seperti point 3, namun anda harus menggunakan nama project, nama activity, nama kelas, dan lainnya yang berbeda dengan yang telah digunakan di contoh atau nomor 3 di atas. (Hasil output program boleh sama, boleh divariasikan). 5. Buat dokumentasi (beserta capture jika diperlukan) di blog/website masing – masing.
20
Bab III
Level Menengah Android (1)
Tujuan : Melalui Bab 3 ini diharapkan pembaca dapat mengetahui mengenai : 1. Droiddraw di Android untuk pembuatan User Interface (UI) beserta dengan contoh penerapannya pada aplikasi Converter (konversi Dollar ke Rupiah dan sebaliknya). 2. Konsep webkit di Android dan penerapan di dalam aplikasi. 3. Array dan File di Android beserta penerapannya di aplikasi, 4. Konsep dan praktek database di Android memanfaatkan SQLite. III.1 Droiddraw III.1.1 Penjelasan DroidDraw Droiddraw (http://www.droiddraw.org/) merupakan WYSIWYG (What You See Is What You Get) User Interface (UI) designer/editor/builder yang diperuntukkan untuk perangkat mobile dengan platform Android di dalamnya. DroidDraw dapat dijalankan di sistem operasi Linux, Windows, dan Mac OS. Cara menggunakannya pun sangatlah mudah. Pada contoh ini diberikan di sistem operasi Linux, namun anda dapat mencobanya di sistem operasi Windows dan Mac OS karena sama/relatif sama. Pertama, tentu saja anda harus mengunduh DroidDraw sesuai dengan sistem operasi anda di situs DrodiDraw di atas. Kemudian setelah selesai diunduh, installah dengan cara mengkliknya (jika berupa file .exe), atau pada sistem operasi Linux anda memperoleh file .tar.gz yang mana harus anda ekstrak terlebih dahulu dengan perintah tar -xzvf nama-file.tar.gz (atau via klik kanan dan ekstrak menggunakan Ark). Kemudian beralih ke folder hasil bentukan ekstrasi lalu klik file .jar atau file .sh (jika tidak bisa berarti berikan permission dengan chmod +x nama-aplikasi.ekstensi). Berikut contoh menjalankan DroidDraw di Linux melalui terminal :
21
Gambar 3.1 Menjalankan DroidDraw di terminal Linux
Gambar 3.2 Menjalankan DroidDraw di terminal Linux Kedua, setelah DroidDraw dijalankan (dan tentu saja sambil menjalankan Eclipse Android ADT anda), mulailah membuat desain anda di sana. Dalam hal ini, secara garis besar adalah menentukan Root Layout menjadi Relative Layout, kemudian mendrag LinierLayout di Layout tab ke kanvas Relative Layout. Lanjutkan ke tab Widget dengan mendrag widget yang anda inginkan (misalkan
22
Radio Button, Edit Text, dan lainnya). Jangan lupa untuk mengedit parameter setiap widget tersebut (misal Radio Button diubah menjadi Indonesia jika ingin menjadikannya untuk mengubah ke bahasa Indonesia/kurs Indonesia sesuai aplikasi yang dibuat). Langkah terakhir, klik menu Generate, dan anda akan disajikan script XML dari desain anda ini. Langkah ketiga, tentu saja, membuat project aplikasi Android anda. Kemudian script XML hasil generate desain di DroidDraw tadi dicopykan ke dalam file XML di sub folder layout pada project anda. Selanjutnya tentu saja menambahkan script Java di project Android anda sesuai dengan aplikasi yang anda buat. Langkah terakhir, menjalankan aplikasi anda di emulator atau langsung di device Android mobile phone anda. III.1.2 Contoh : Aplikasi Wisata Sejarah Kota Bandung Berdasarkan uraian di atas, maka akan dicoba disajikan langsung langkah – langkah praktek dengan studi kasus pembuatan aplikasi sederhana untuk wisata sejarah di kota Bandung. Karena masih sederhana, maka hanya disediakan tiga buah pilihan wisata sejarah beserta dengan penjelasannya. Dalam hal ini diset statis, tidak memakai database. Poin utama pembelajarannya adalah proses pembuatan menu menggunakan DroidDraw, menggenerate XML, kemudian membuat project Android aplikasi dan menggunakan XML hasil generate tersebut. Pertama – tama, jalankan Eclipse ADT Android anda seperti biasa. Kemudian jalankan DroidDraw. Kini ubah pengaturan di bagian Root Layout menjadi RelativeLayout dengan cara Screen --> Root Layout --> RelativeLayout. Kemudian klik tab Layouts yang ada di menu sebelah kanan. Pilihlah LinearLayout. Kemudian drag dan letakkan di kanvas yang telah diset sebagai RelativeLayout tadi. Aturlah panjang dan lebarnya dengan cara mengklik dua kali LinearLayout yang anda drag tadi. Berilah ukuran sesuai kreasi anda. Misalkan pada contoh ini height (panjang) 300px dan width (lebar) 330px. Kemudian klik Apply. Satu langkah sudah selesai. Kemudian beralihlah ke tab Widgets. Drag widget TextView ke arah kanvas, kemudian edit di bagian id menjadi TextView1. Berilah nama di bagian
23
Text dengan misalkan : Wisata Sejarah di Kota Bandung. Sampai di sini langkah kedua selesai. Lanjut ke langkah ketiga, masih di tab Widgets, drag widget RadioGroup. Berikan nilai id dengan RadioGroup1 dan pada width ubah ke fill_parent. Untuk height biarkan default sebagai wrap_content. Lanjut lagi dengan mendrag tiga buah widget Radio Button. Letakkan sejajar ke bawah berurutan. Untuk masing – masing widget Radio Button ini editlah dan berikan id masing – masing RadioButton1, RadioButton2, dan RadioButton3. Jangan lupa untuk masing – masing text di RadioButton berikan nama Gedung Sate, Museum Asia Afrika, dan Savoy Homann. Sampai di sini langkah ketiga selesai. Langkah terakhir, klik menu Generate (kiri atas). Anda akan disajikan kode XML. Biarkan kode itu, karena akan kita gunakan nanti di project :)
Gambar 3.3 Hasil akhir desain UI menggunakan DroidDraw Kini beralih ke Eclipse. Seperti biasa buat project aplikasi Android yang baru melalui menu File --> New --> Android Application Project. Berikan nama proyek ini Wisata Sejarah Bandung. Untuk package name anda bebas memberikan namanya. Misalkan pada contoh ini com.putushinoda.wisatasejarahbandung. Untuk lainnya biarkan saja standar.
24
Gambar 3.4 Memberi nama proyek aplikasi Android Langkah selanjutnya hanya menekan tombol Next. Biarkan semua pengaturan secara standar.
Gambar 3.5 Membuat activity dan custom launcher
25
Kemudian pada bagian pengaturan Activity tambahkan nama activity dengan nama WisataSejarahBandung dan nama layout sebagai wisata_sejarah_bandung. Kemudian klik Next.
Gambar 3.6 Pengaturan di activity Harusnya akan terbentuk project bernama WisataSejarahBandung. Kini di bagian src-->
com.example.wisatasejarahbandung
akan
ada
file
bernama
WisataSejarahBandung.java. Kemudian isikan dengan script berikut : package com.example.wisatasejarahbandung; import import import import import import import import
public class WisataSejarahBandung extends Activity { TextView TextView1; RadioGroup RadioGroup1; RadioButton RadioButton1, RadioButton2, RadioButton3; Button Button1; EditText EditText1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {
26
super.onCreate(savedInstanceState); setContentView(R.layout.wisata_sejarah_bandung); /*Mendeklarasikan semua variabel yang digunakan, berhubungan dengan file main.xml */ RadioGroup1 = (RadioGroup) findViewById(R.id.RadioGroup1); RadioButton1 = (RadioButton) findViewById(R.id.RadioButton1); RadioButton2 = (RadioButton) findViewById(R.id.RadioButton2); RadioButton3 = (RadioButton) findViewById(R.id.RadioButton3); Button1 = (Button) findViewById(R.id.Button1); EditText1 = (EditText) findViewById(R.id.EditText1); EditText1.setText(""); TextView1 = (TextView) findViewById(R.id.TextView1); /*Jika tombol diclick jalankan class tomboldiclick */
// Berhubungan dengan button melalui XML // Bagian ini untuk handler button pada widget class tomboldiclick implements Button.OnClickListener { public void onClick(View v) { if (v == Button1) { if (RadioButton1.isChecked()) { EditText1.setText("Gedung peninggalan Belanda yang kini menjadi kantor Gubernur Jawa Barat."); } if (RadioButton2.isChecked()) { EditText1.setText("Tempat diadakannya Konferensi Asia Afrika oleh Presiden Soekarno."); } if (RadioButton3.isChecked()) { EditText1.setText("Merupakan hotel tertua di kota Bandung peninggalan Belanda."); } } } } }
Kemudian beralih ke layout --> wisata-sejarah_bandung.xml. Buka via XML Android editor di ADT Eclipse, kemudian ganti dengan script ini :
27
Gambar 3.7 Project diinstal di emulator untuk dijalankan Simpan dan klik kanan project dan jalankan dengan opsi Run as Android Application. Harusnya akan muncul sebuah emulator Android (AVD).
Gambar 3.8 Emulator menjalankan project aplikasi Android
29
Gambar 3.9 Memilih salah satu opsi Sampai di sini pembelajaran mengenai DroidDraw selesai. Anda bisa mencoba – coba lagi dengan kreasi anda masing – masing. III.2 WebKit III.2.1 Penjelasan WebKit Webkit sejatinya adalah sebuah aplikasi (toolkit) untuk rendering (menampilkan, membaca) suatu halaman web di platform mobile. Oleh sebab itu, webkit dapat juga diartikan sebagai sebuah aplikasi web browser sebagaimana layaknya Opera, Firefox, dan lainnya yang ada di platform mobile, termasuk juga di platform Android. Dengan adanya webkit, anda dapat memasukkan kode – kode HTML untuk aplikasi Android yang anda buat. Hal ini ke depannya akan sangat membantu untuk berbagi aplikasi GUI di Android yang membutuhkan koneksi internet, GIS (Graphic Information System), dan layanan mobile lainnya. Webkit sendiri memiliki banyak kelas, namun yang umum digunakan di dalam pemrograman Android adalah WebView.
30
III.2.2 Penerapan WebKit di Android : Aplikasi Buka Web Berikut akan dibahas mengenai pembuatan sebuah aplikasi memanfaatkan Webkit di Android, dengan studi kasus sebuah URL internet maupun intranet yang diketikkan oleh pengguna aplikasi. Di sini akan dijelaskan juga pengaturan di file manifest XML milik emulator Android (AVD) agar dapat mengakses internet memanfaatkan koneksi internet yang dimiliki oleh komputer anda. Seperti biasa, buat terlebih dahulu project Android di Eclipse. Berikan nama project ini BukaWeb, kemudian dilanjutkan dengan launcher icon dan create activity.
Gambar 3.10 Membuat project baru Buka Web
31
Gambar 3.11 Membuat launcher icon dan activity
Gambar 3.12 Konfigurasi launcher icon
32
Gambar 3.13 Konfigurasi activity Pada konfigurasi launcehr icon anda dapat memilih icon yang akan digunakan, kemudian lanjutkan ke Next. Lalu di bagian activiy pilihlah Blank Activity, kemudian klik Next. Lanjutkan dengan memberikan nama Activity Name dengan BukaWeb, Layout Name bukaweb, lalu klik Finish.
Gambar 3.14 Activity Name
33
Pada file BukaWeb.java yang berada di src --> com.putushinoda.bukaweb, isikan dengan script Java sebagai berikut ini : package com.putushinoda.bukaweb; import import import import import import import import import import
Kemudian beralih ke file AndroidManifest.xml. Isikan tambahan baris berikut di bagian bawah sebelum penutup (yaitu di atas :
Baris tersebut berfungsi untuk memberikan permission (hak akses) kepada emulator Android (AVD) agar dapat menggunakan koneksi internet yang ada di komputer anda.
Gambar 3.16 Modifikasi Manifest.xml file Setelah selesai dan tidak ada kesalahan, kemudian jalankan project via emulator melalui klik kanan --> Run as Android application. Maka anda akan menjumpai tampilan icon launcher di menu dan aplikasi berjalan dengan menyuguhkan address bar alamat untuk diketik dan dijalankan.
36
Gambar 3.17 Icon launcher aplikasi Buka Web di emulator menu
Gambar 3.18 Menjalankan aplikasi dan membuka URL Selain alamat internet, alamat intranet bisa juga dibuka. Tentunya dalam hal ini anda harus menginstall dan mengaktifkan daemon web server anda. Misal di linux IGOS Nusantara pada contoh panduan ini dengan perintah /opt/lampp/lampp start
37
Gambar 3.19 Membuka alamat intranet Sampai di sini panduan mengenai pemanfaatan Webkit di Android telah selesai disampaikan, Diharapkan pengguna dapat mencoba kembali mengutak – atik sesuai dengan imajinasi anda. III.3 Array dan File III.3.1 Penjelasan Array dan File Pada pemrograman aplikasi Android, untuk pemanfaatan Array dapat menggunakan ArrayAdapter. ArrayAdapter merupakan salah satu kelas yang terdapat pada android.widgets.Adapter. Konsep Array pada pemrograman Android ini dapat digunakan untuk menyimpan data inputan di array untuk kemudian ditampilkan kembali. Namun tentunya akan lebih bagus jika menggunakan database (dijelaskan di materi selanjutnya). Sedangkan untuk file di Android, akan dijabarkan kemampuan aplikasi Android untuk menampilkan pesan yang ada di file teks yang anda sisipan saat pemrograman aplikasi ini. III.3.2 Penerapan Array dan File di Android Berikut akan dijelaskan salah satu implementasi pemanfaatan Array di Android dalam bentuk aplikasi. Aplikasi ini akan menampilkan data yang
38
disimpan dalam sebuah array. Ditampilkan juga pemanfaatan ArrayAdapter dan ListView melalui proses import dan pemanggilan kelas. Seperti biasa, buat terlebih dahulu project baru untuk aplikasi Array di Android, melalui menu File --> New --> Android Application Project. Berikan nama project ini Array.
Gambar 3.20 Membuat project Array
Gambar 3.21 Memberi nama project
39
Gambar 3.22 Membuat launcher icon dan activity
Gambar 3.23 Membuat launcher icon Kemudian lanjutkan dengan membuat activity. Pilih blank activity, kemudian berikan nama untuk blank activity anda (mencakup activity name dan layout name).
40
Gambar 3.24 Memilih blank activity
Gambar 3.25 Memberi nama untuk blank activity Setelah selesai klik Finish. Kini isikan script berikut untuk file array.xml yang berada di /res/layout :
41
Gambar 3.26 File array.xml Perhatikan bahwa di file XML ini terdapat kelas ListView yang akan dipanggil di kelas utama (program utama) bernama Array.java. Isikan dengan script Java sebagai berikut : package com.putushinoda.array; import import import import import
Gambar 3.27 File array.java Pada bagian String items untuk konten array anda bebas menggantikannya selain contoh di atas. Kini setelah selesai, klik kanan pilih opsi Run as Android application. Jika tidak terjadi kesalahan, maka emulator akan segera menjalankannya.
43
Gambar 3.28 Aplikasi diinstall di emulator
Gambar 3.29 Aplikasi berjalan di emulator Sampai di sini sub bab yang membahas mengeai Array di android selesai dijelaskan. Sekarang akan dibahas mengenai pemanfaatan file di Android. Pada kasus ini anda tidak perlu secara manual membuat sebuah file teks untuk diletakkan di
44
path project Android anda (untuk dapat dibaca) maupun di lokasi lainnya. Aplikasi akan membuatkan sendiri file teks sesuai dengan nama file yang anda setting di program dan meletakkannya di sandbox, sehingga hanya bisa ditulis dan dibaca saja tanpe perlu mengakses lokasi dan file bersangkutan. Untuk lebih memahami, mari ulangi langkah – langkah di atas untuk pembuatan project baru dengan nama Fileku. Lakukan hal yang sama pada nama acitivty yaitu diberikan nama Fileku.
Gambar 3.30 Mengisikan activity dengan nama Fileku Setelah semua persiapan selesai, maka akan terbentuk folder project anda bernama Fileku. Kini isikan file Fileku.java yang berada di /src/com.putushinoda.fileku dengan kode berikut : package com.putushinoda.file; import import import import import import import import import import import
public class Fileku extends Activity { private static final String TAG = Fileku.class.getName(); private static final String FILENAME = "Filegue.txt"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fileku); String textToSaveString = "Ini file gue di Android unyu unyu..."; writeToFile(textToSaveString); String textFromFileString =
readFromFile();
if ( textToSaveString.equals(textFromFileString) ) Toast.makeText(getApplicationContext(), "Kedua string sama", Toast.LENGTH_SHORT).show(); else Toast.makeText(getApplicationContext(), "Maaf terjadi masalah ", Toast.LENGTH_SHORT).show(); } private void writeToFile(String data) { try { OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput(FILENAME, Context.MODE_PRIVATE)); outputStreamWriter.write(data); outputStreamWriter.close(); } catch (IOException e) { Log.e(TAG, "Penulisan file gagal : " + e.toString()); } } private String readFromFile() { String ret = ""; try { InputStream inputStream = openFileInput(FILENAME); if ( inputStream != null ) { InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String receiveString = ""; StringBuilder stringBuilder = new StringBuilder(); while ( (receiveString = bufferedReader.readLine()) != null ) { stringBuilder.append(receiveString);
46
} inputStream.close(); ret = stringBuilder.toString();
} } catch (FileNotFoundException e) { Log.e(TAG, "File tidak ditemukan : " + e.toString()); } catch (IOException e) { Log.e(TAG, "Tidak dapat membaca file : " + e.toString()); } }
return ret;
}
Jangan lupa untuk isikan kode berikut ini di file strings.XML, yang berada di /res/values
:
FilekuSettingsIni file gue di Android unyu unyu...
Kemudian jalankan project aplikasi dengan mengklik kanan project dan memilih opsi Run as Android application. Jika tidak ada kesalahan maka isi file teks akan ditampilkan di emulator.
47
Gambar 3.31 Aplikasi Fileku di menu aplikasi pada emulator
Gambar 3.32 Aplikasi Fileku dijalankan III.4 Database SQLite III.4.1 Penjelasan Database SQLite SQLite (http://www.sqlite.org/) merupakan aplikasi open source untuk database (relational database management system) yang dapat diembededkan, ringan, dengan konsumsi memori yang rendah. SQLite menggunakan engine
48
SQL. SQLite bersifat runtime, sehingga dengan versi Android apapun anda dapat membuat database memanfaatkan SQLite. Saat ini SQLite pun juga memiliki SQLite browser (http://sourceforge.net/projects/sqlitebrowser/) yang bermanfaat untuk memudahkan pengelolaan database SQLite secara GUI (insert, delete, update/edit), sebagaimana layaknya PHPMAdmin pada MySQL. III.4.2 Penerapan Database SQLite di Android Berikut akan diberikan contoh penerapan database SQLite di aplikasi Android. Pada contoh ini akan diterapkan bagaimana membuat database, tabel, pemrosesan data (insert, delete, update, edit), serta menampilkannya di aplikasi Android untuk memastikan inputan tersimpan di database. Penulis mempelajari contoh
yang
penulis
temukan
di
internet
(http://androiddevelopmentworld.blogspot.com/2013/04/android-sqlitetutorial.html) dengan sedikit perubahan. Seperti biasa, awali dengan membuat sebuah project baru untuk aplikasi Android melalui menu File --> New --> Android Application Project. Berilah nama project ini AndroidAdvanceSQLite. Kemudian lanjutkan dengan membuat Activity bernama main.XML. Lanjutkan dengan menekan next hingga project terbentuk. Kemudian di bagian /src buatlah dua buah folder package bernama db dan screen. Lakukan proses pembuatan folder package ini dengan cara klik kanan project anda di bagian folder /src kemudian pilih opsi New --> Package sebanyak dua kali, masing – masing diberi nama db (menjadi com.androidadvance.db) dan screen (com.androidadvance.screen).
49
Gambar 3.33 Dua folder package baru dibuat di /src Kemudian di folder package db (com.androidadvance.db) buatlah kelas Java bernama DatabaseHelper.java. Lakukan dengan melakukan klik kanan pada folder package com.androidadvance.db --> New --> Class--> Beri nama DatabaseHelper. Kemudian isikan dengan kode java berikut : package com.androidadvance.db;
Gambar 3.34 Isi script di DatabaseHelper.java Kemudian lanjutkan pada folder package com.androidadvance.screen dengan membuat tujuh buah kelas Java. Ketujuh kelas tersebut mencakup : 1. AddRecord.java 2. AddUpdateValues.java 3. AndroidAdvanceSqliteActivity.java
57
4. DeleteRecord.java 5. ProductModel.java 6. UpdateRecord.java 7. ViewRecord.java Untuk kelas AddRecord.java isikan dengan kode Java berikut ini : package com.androidadvance.screen; import com.androidadvance.db.DatabaseHelper; import import import import import import import import
protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.addupdatevalues); i = getIntent(); txtpname = (EditText) findViewById(R.id.txt_udatepname); txtpprice = (EditText) findViewById(R.id.txt_udatepprice); txtpname.setText(i.getExtras().getString("Produk")); txtpprice.setText(i.getExtras().getString("Harga")); btn_updaterecord = (Button) findViewById(R.id.btn_updaterecord); btn_updaterecord.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btn_updaterecord: if (txtpname.getText().toString().equals("") || txtpprice.getText().toString().equals("")) { Toast.makeText(AddUpdateValues.this, "Tolong inputkan nilai", Toast.LENGTH_LONG).show(); } else { db = new DatabaseHelper(getApplicationContext()); db.getWritableDatabase(); pm = new ProductModel(); pm.productname = txtpname.getText().toString(); pm.productprice = txtpprice.getText().toString(); pm.idno = i.getExtras().getString("id"); Log.i(">>>>>productid<<<<<", "" + i.getExtras().getString("id")); db.updateProduct(pm); Toast.makeText(AddUpdateValues.this, "Data berhasil diperbarui", Toast.LENGTH_LONG) .show(); db.close(); super.onResume(); } break; } }
60
}
Untuk kelas AndroidAdvanceSqliteActivity.java isikan dengan kode Java berikut : package com.androidadvance.screen; import import import import import import
public class AndroidAdvanceSqliteActivity extends Activity implements OnClickListener { private Button btn_add, btn_view; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn_add = (Button) findViewById(R.id.btn_add); btn_view = (Button) findViewById(R.id.btn_view); btn_add.setOnClickListener(this); btn_view.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btn_add: Intent addintent = new Intent(AndroidAdvanceSqliteActivity.this, AddRecord.class); startActivity(addintent); break; case R.id.btn_view: Intent viewintent = new Intent(AndroidAdvanceSqliteActivity.this, ViewRecord.class); startActivity(viewintent); break; default: break; } } }
Untuk kelas DeleteRecord.java, isikan dengan kode Java sebagai berikut : package com.androidadvance.screen;
61
import android.app.Activity; public class DeleteRecord extends Activity { }
Untuk kelas ProductModel.java, isikan dengan kode Java sebagai berikut : package com.androidadvance.screen; public class ProductModel { public String getnamaproduk() { return namaproduk; } public void setnamaproduk(String namaproduk) { this.namaproduk = namaproduk; } public String gethargaproduk() { return hargaproduk; } public void sethargaproduk(String hargaproduk) { this.hargaproduk = hargaproduk; } public String idno="", namaproduk="", hargaproduk=""; public String getIdno() { return idno; } public void setIdno(String idno) { this.idno = idno; } }
Untuk kelas UpdateRecord.java, isikan dengan kode Java sebagai berikut ini : package com.androidadvance.screen; import android.app.Activity; public class UpdateRecord extends Activity { }
Untuk kelas ViewRecord.java, isikan dengan kode Java berikut ini : package com.androidadvance.screen; import java.util.ArrayList; import com.androidadvance.db.DatabaseHelper;
viewHolder.txtidno.setText(_productlist.get(position).getIdno() .trim()); final int temp = position; (convertView.findViewById(R.id.btn_update)) .setOnClickListener(new OnClickListener() { public void onClick(View arg0)
{
String _productid = String.valueOf(_productlist
.get(temp).g
etIdno());
String _namaproduk =
_productlist.get(temp)
.getnamaprod
uk();
String _hargaproduk =
_productlist.get(temp)
.gethargapro
duk(); Intent intent = new
Intent(ViewRecord.this, AddUpdateValues.class);
Bundle bundle = new
Bundle();
bundle.putString("id",
_productid);
bundle.putString("nama",
_namaproduk);
bundle.putString("price", _hargaproduk);
65
intent.putExtras(bundle);
startActivity(intent); }
}); (convertView.findViewById(R.id.btn_delete)) .setOnClickListener(new OnClickListener() { public void onClick(View arg0)
{
AlertDialog.Builder alertbox = new AlertDialog.Builder( ViewRecord.this); alertbox.setCancelable(true); alertbox.setMessage("Yakin ingin dihapus ?"); alertbox.setPositiveButton("Ya", DialogInterface.OnClickListener() { public void onClick( DialogInterface arg0, int arg1) {
Kemudian beralihlah ke direktori /res/layout dan buatlah lima buah file XML. Kelima file XML tersebut mencakup addrecord.xml, addupdatevalues.xml, listview_row.xml, main.xml, dan viewrecord.xml. Untuk addrecord.xml isikan dengan kode XML sebagai berikut :
67
68
android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Save" /> Untuk addupdatevalues.xml isikan dengan kode XML sebagai berikut :
Untuk listview_row.xml isikan dengan kode XML sebagai berikut :
69
android:orientation="vertical" >
70
Untuk Main.XML isikan dengan kode XML sebagai berikut ini :
71
Untk viewrecord.xml isikan dengan kose XML sebagai berikut :
Jika sudah, kemudian project dijalankan di emulator dengan cara klik kanan dan pilih opsi Run as Android application. Jika sukses, emulator akan menginstal aplikasi tersebut untuk kemudian dijalankan. Anda dapat segera mengisikan inputan data, mengedit, menghapus, dan melihat entri data yang ada.
72
Gambar 3.35 Aplikasi diinstal di emulator
Gambar 3.36 Aplikasi berjalan dengan dua pilihan menu
73
Gambar 3.37 Input data
Gambar 3.38 Input data berjalan sukses
74
Gambar 3.39 Lihat data Kita juga dapat mengedit/update dan menghapus data jika diperlukan.
Gambar 3.40 Update entri data
75
Gambar 3.41 Update entri data berhasil III.5 MySQL dan SQL Server di Android III.5.1 Koneksi dengan MySQL di Android Pada pemrograman aplikasi di Android, anda pun juga dapat membuat aplikasi yang dapat mengkoneksikan dengan database di MySQL. Untuk dapat membuat proyek ini, anda perlu membuat kode PHP (untuk koneksi ke MySQL), kode Java (untuk project Android application yang akan dihubungkan ke PHP MySQL), dan XML (untuk interface aplikasi Android anda tersebut). Aksi yang dapat anda lakukan dengan aplikasi Android yang terhubung ke server Apache, database MySQL, interface PHPMyAdmin, melalui halaman PHP, adalah proses insert, delete, edit/update, dan view data dari database. Pada contoh ini, akan dibuatkan sebuah aplikasi sederhana untuk melihat menu makanan di sebuah warung makan. Interaksi dan proses yang terjadi adalah input nama makanan, edit makanan, dan lihat makanan. Field yang termasuk di dalamnya adalah nama makanan dan harga makanan. Pertama, buatlah sebuah project baru bernama Warungmakan di Eclipse anda melalui New --> Android Application Project. Isikan nama project dengan warungmakan.
Untuk
package
name
ubahlah
com.putushinoda.warungmakan, kemudian klik Next.
76
dari
example
ke
Gambar Memulai project android Kemudian lakukan pengaturan untuk launcher icon (centangi opsi Create Launcher Icon) dan activity (centangi opsi Create Activity). Lalu klik Next.
Gambar Mencentangi create launcher icon dan activity Langkah selanjutnya adalah memilih launcher icon, Next saja. Langkah selanjutnya adalah memilih Activity. Pilihlah Blank Activity. Kemudian klik Next. Anda akan segera diarahkan untuk melakukan pengisian Activity Name, Layout
77
Name, dan Navigation Type. Isikan Warungmakanan untuk Activity name, warungmakanan untuk layout name, dan None utuk navigation type. Lalu klik Finish.
Gambar Pengisian activity name, layout name Pertama, buat dulu layout untuk aplikasi menggunakan XML. Layout ini digunakan untuk menu Tambah Data pada aplikasi. Kita berikan nama file ini tambah.xml. Untuk membuatnya, klik /res/layout pada project aplikasi anda ini, kemudian klik kanan pilih New --> Android XML File.
78
Gambar Menambahkan file XML baru Kemudian isikan dengan script berikut ini :
Kemudian buat lagi file XML untuk membantu layout menampilkan data yang tersimpan di database ke aplikasi di Android. Buatlah sebuah file XML bernama tampilkanmenu.xml, lalu isikan dengan script berikut :
79
Gambar File XML tampilkanmenu.xml Sekarang kita melakukan proses coding untuk Java. Pertama, dilakukan coding terhadap file Java bernama Warungmakanan.java (yang menjadi main acitivy). Di dalamnya ditampilkan menu untuk Tambah data menu makanan, Lihat data menu makanan, dan menu Keluar. Isikan dengan script Java berikut ini : package com.putushinoda.warungmakan; import import import import import import import import import
Kemudian buatlah kelas Java yang baru untuk fungsionalitas penambahan data menu makanan ke dalam server (melalui aplikasi Android ini). Berikan nama kelas ini Tambahmenu.java. Untuk membuatnya, klik kanan project anda di bagian nama-project/src/com.nama-project,, kemudian pilih opsi New -> Class, isikan dengan nama kelas Tambahmenu.
Gambar Membuat kelas Java baru
81
Gambar Memberikan nama kelas batu Java Isi dari file Tambahmenu.java adalah sebagai berikut : package com.putushinoda.warungmakan; import import import import import import import import import import
JSONActivity.java. Kelas ini berfungsi untuk menampilkan data yang tersimpan di database server (dalam bentuk JSON). Berikut isi script Java untuk file kelas JSONActivity.java package com.putushinoda.warungmakan; import import import import import import import import import import import import import
} private void parse(TextView txtResult) throws Exception { jObject = new JSONObject(xResult); JSONArray menuitemArray = jObject.getJSONArray("makanan"); String sret=""; for (int i = 0; i < menuitemArray.length(); i++) { sret +=menuitemArray.getJSONObject(i) .getString("nama_makanan").toString()+" : "; System.out.println(menuitemArray.getJSONObject(i) .getString("nama_makanan").toString()); System.out.println(menuitemArray.getJSONObject(i).getString( "harga").toString()); sret +=menuitemArray.getJSONObject(i).getString( "harga").toString()+"\n"; } txtResult.setText(sret); } public String getRequest(String Url) { String sret=""; HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(Url); try { HttpResponse response = client.execute(request); sret =request(response); } catch(Exception ex) { Toast.makeText(this,"Gagal "+sret, Toast.LENGTH_SHORT).show(); } return sret; } public static String request(HttpResponse response){ String result = ""; try{ InputStream in = response.getEntity().getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder str = new StringBuilder(); String line = null; while((line = reader.readLine()) != null){ str.append(line + "\n"); } in.close(); result = str.toString(); }catch(Exception ex){ result = "Error"; } return result; } }
84
Pada kedua contoh di atas, alamat http://10.0.2.2 menggantikan alamat http://127.0.0.1 atau http://localhost atau http://alamatip-address-atau-web-anda
Kemudian editlah file Androidmanifest.xml yang ada di project aplikasi Android anda ini, dengan cara klik kanan file tersebut, kemudian pilih opsi Open With --> Android Common XML Editor. Gantilah dengan script berikut ini :
Kini beralih ke PHP dan MyQL Aktifkan XAMPP server anda dengan perintah berikut : bash-4.2# /opt/lampp/lampp start
Perintah di atas akan mengaktifkan sekaligus Apache web server, MySQL database server, dan interface database PHPMyAdmin. Kini buatlah sebuah database bernama warungmakan, dengan sebuah tabel di dalamnya bernama makanan. Isi dari tabel makanan adalah field id_makanan (Int, 11, not null),
85
nama_makanan (Varchar, 50), dan harga_makanan (Int, 11). Atur id-makanan sebagai primary key dalam tabel ini. Gunakan PHPMyAdmin untuk membuat database dan tabel beserta field tersebut, atau masukkan script SQL berikut di PHPmyAdmin atau SQL anda : 1.) Untuk membuat database : CREATE DATABASE warungmakan;
2.) Untuk membuat tabel dan field di dalamnya : CREATE TABLE tbl_makanan ( id_makanan INT(11) NOT NULL AUTO_INCREMENT, nama_makanan VARCHAR(50) NOT NULL, harga_makanan INT(11) NOT NULL, PRIMARY KEY (id_makanan) ) ENGINE=MyISAM;
Kemudian buatlah sebuah direktori bernama warungmakan di root web anda (/opt/lampp/htdocs), serta berikan akses sepenuhnya (777) : bash-4.2# mkdir /opt/lampp/htdocs/warungmakan/ bash-4.2# chmod 777 -R /opt/lampp/htdocs/warungmakan/ bash-4.2#
Lalu buatlah sebuah file PHP bernama daftarmakanan.php. Pada contoh ini digunakan editor (IDE) Geany untuk pemrograman PHP di linux. Isi script sebagai berikut :
=
mysql_query($query,
query database :
$link)
or
'.$query);
$rows = array(); while ($r = mysql_fetch_assoc($result)) {
Kemudian kembali lagi ke PHPMyAdmin dengan kondisi masih berada di database warungmakan. Kemudian masukkan data – data berikut, atau gunaan menu SQL untuk memasukkan script SQL berikut ini : insert into tbl_makanan values(null,'Nasi + ayam penyet',15000); insert
into
tbl_makanan
values(null,'Sayur
pecel
+
ketupat',10000); insert into tbl_makanan values( null,'Roti keju',8000);
Jika benar, maka seharusnya ketiga data ini akan masuk ke tabel makanan. Anda bisa mengeceknya melalui tab menu Jelajah (browse). Kini buat lagi sebuah file PHP bernama tambahmenu.php yang berfungsi untuk mengatur proses penambahan menu makanan. Masukkan script PHP berikut ini :
=
Jika semuanya sudah tersimpan dengan baik, kemudian klik kanan project anda dan pilih opsi Run as Android application, Maka seharusnya akan dijalankan di emulator android anda (AVD), aplikasi yang menampilkan 3 buah pilihan, yaitu : Tambah Menu, Tampilkan Menu, dan Keluar. Semua data yang ditambahkan (insert) maupun ditampilkan (view) merupakan data yang tersimpan di database server dan ditampikan secara remote melalui query database memanfaatkan koneksi jaringan.
III.5.2 Koneksi Dengan SQL Server di Android Koneksi aplikasi Android dengan SQL server dapat dilakukan dengan cara yang sama seperti koneksi MySQL. Anda cukup menginstal SQL server di komputer anda dan membuat koneksi ke PHP (jika diperlukan) dan interface berupa aplikasi Android (di client). Untuk contoh anda dapat merujuk kembali ke panduan di MySQL. Berdasarkan panduan SQLite di materi sebelumnya, anda juga dapat memanfaatkannya untuk membuat koneksi aplikasi Android ke SQL. Tentu saja,
88
anda
harus
sudah
menginstal
(http://www.zentus.com/sqlitejdbc/)
SQLite dan
JDBC
SQLite
Server Browser
(http://sqlitebrowser.sourceforge.net/). Berikut
adalah
contoh
yang
penulis
peroleh
dari
sumber
http://blog.om4g.us/2011/05/java-sqlite-membuat-aplikasi-database-sql-berbasisteks-tanpa-server/#more-680. Anda dapat langsung mengunduh contoh aplikasi dari link tersebut yang disediakan oleh si pembuat aplikasi (Oki Agus Muttaqin). Pertama – tama, buatlah sebuah proyek baru di Eclipse anda, misalkan AndroSQL. Kemudian buatkan file bernama mainFrame.java dengan kode sebagai berikut ini (script penulis ambil langsung dari contoh di link di atas) : package us.om4g; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class MainFrame extends javax.swing.JFrame { public MainFrame() { initComponents(); connectDatabase(); } private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); jButton1 = new javax.swing.JButton(); jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); jRadioButton1 = new javax.swing.JRadioButton(); jRadioButton2 = new javax.swing.JRadioButton(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jButton2 = new javax.swing.JButton();
Anda dapat menjalankannya di IDE selain Eclipse, misalkan Netbeans (https://netbeans.org/) dan tersedia untuk sistem operasi Linux, Windows, dan Mac OS. Latihan : 1. Berdasarkan penjelasan di atas, coba salin script di contoh – contoh di atas kemudian jalankan di Eclipse pada Linux anda. 2. Kemudian coba anda ubah parameter/isi script di atas dan jalankan, sambil pahami setiap kelas, fungsi, dan prosedur yang ada di dalamnya. 3. Ubahlah contoh – contoh aplikasi di atas sesuai keinginan anda, dengan tetap mengacu kepada materi bab ini (misal : pada contoh MySQL Android menggunakan kasus stok barang, anda dapat mengubahnya menjadi absensi siswa, atau lainnya).
95
Bab IV
Level Expert Android (1)
Tujuan : Melalui Bab 4 ini diharapkan pembaca dapat mengetahui mengenai : 1. Konsep pemetaan di Android menggunakan GIS/GPS/Coding Map 2. Praktek langsung aplikasi pemetaan di Android untuk dijalankan di emulator Android (AVD). 3. Konsep dan penerapan handle telephone di emulator Android (mencakup : dial panggilan telepon dan kirim pesan SMS). 4. Contoh aplikasi penerapan (HTML5 Integration).
IV.1 Pemetaan di Android IV.1.1 Location Based Service Location Based Service (LBS) merupakan sebuah layanan untuk menemukan lokasi perangkat mobile anda secara online, sehingga posisi pengguna perangkat mobile maupun objek tertentu lainnya yang terkait. Informasi yang diberikan ini dapat meningkatkan nilai informasi itu sendiri serta dapat diolah menjadi beragam layanan dan informasi lainnya yang makin bermanfaat. Sebelum lanjut ke sesi pemrograman untuk pemetaan di android, ada baiknya diketahui dulu mengenai elemen dan komponen penting pada LBS ini. LBS memiliki dua buah elemen utama, yaitu Location Manager (API Maps) dan Location Provider (API location). LBS memiliki lima komponen utama yang mencakup perangkat mobile (handphone, GPS, smartphone, lainnnya), jaringan komunikasi (misalkan GSM pada provider), komponen penunjuk lokasi (positioning), penyedia layanan dan aplikasi (untuk memproses data menjadi informasi), serta penyedia data dan konten (dapat berasal dari data sendiri, dapat berasal dari pihak ketiga/penyedia). Location Manager (API/Application Programming Interface) Maps berfungsi untuk menampilkan dan memanipulasi data. Elemen ini diperoleh dengan menggunakan paket com.google.android.maps. Tentunya anda harus mengaktifkan API ini di project anda dan menggenerate key (dijelaskan di sub bab
96
selanjutnya). Location Provider (API location) berfungsi untuk mencari lokasi. Elemen ini dapat dijalankan dengan menggunakan paket Android Location. IV.1.2 GPS di Android Menggunakan Emulator Berikut akan dijabarkan sebuah aplikasi sederhana untuk menampilkan koordinat lokasi anda via aplikasi Android. Aplikasi ini memanfaatkan konsep pemetaan (GPS) di Android. Pertama, buatlah sebuah project aplikasi android di eclipse dengan nama Androgps, dengan nama package com.putushinoda.androgps (boleh ganti dengan nama lain). Seperti biasa, tekan Next, lalu isi centang untuk opsi Create Custom Launcher Icon dan Create Activity. Kemudian klik Next untuk memilih Launcher icon (default saja). Lalu klik Next dan pilih Blank Acitivy. Kemudian Next lagi dan berikan nama Androgps untuk Activity name, androgps untuk layout name, dan untuk navigation type pilih none. Lalu klik Finish. Setelah terbentuk project, kemudian pada file Androidmanifest.xml, isikan kode sebagai berikut di dalamnya :
97
Opsi
android.permission.ACCESS_FINE_LOCATION
berfungsi
untuk
menjalankan fungsi android.location (pemetaan lokasi di android). Kemudian pada file Androgps.java yang berada di project anda --> src --> com.putushinoda.androgps, isikan dengan kode berikut : package com.putushinoda.androgps; import import import import import import import import import
public class Androgps extends Activity { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.androgps); LocationManager locationManager; locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER) ; updateWithNewLocation(location); } /** Update UI with a new location */ private void updateWithNewLocation(Location location) { TextView myLocationText = (TextView)findViewById(R.id.action_settings); String latLongString; if (location != null) { double lat = location.getLatitude(); double lng = location.getLongitude(); latLongString = "Lat:" + lat + "\nLong:" + lng; } else { latLongString = "Tidak ada lokasi yang ditemukan !"; } myLocationText.setText("Posisi anda saat ini adalah :\n" + latLongString); }
98
}
Jika sudah selesai mengerjakan semuanya, kemudian simpan project anda. Lalu lanjutkan dengan klik kanan dan pilih opsi Run as Android application.
Gambar Menjalankan aplikasi peoject GPS android Anda juga wajib menjalankan DDMS (Dalvik Debug Monitor System) untuk mengecek GPS di emulator android anda. Lokasinya berada di path SDK android anda --> tools --> ddms --> klik saja. Pada contoh ini berada di /home/certaindeath/adt-bundle-linux-x86-20130522/sdk/tools
99
Gambar Lokasi ddms berada di SDK android Klik otomatis file eksekusi ddms tersebut agar berjalan di terminal Linux lalu menampilkan GUI. Kemudian setelah DDMS muncul, pilih emulator yang digunakan untuk menjalankan aplikasi project anda --> pilih Emulator Control --> Location Controls --> Manual --> klik tombol Send.
Gambar DDMS dijalankan Aplikasi project yang telah dirunning maka akan terinstall dan ditampilkan di menu aplikasi pada emulator anda :
100
Gambar Aplikasi berada di menu aplikasi pada emulator IV.1.3 API Key Google Untuk
dapat
menggunakan
fitur
layanan
pemetaan
di Android
memanfaatkan LBS (Location Based Service), perlu adanya key untuk API Google Map. Anda dapat menggeneratenya secara manual di IDE Eclipse, baik pada sistem operasi Linux, Windows, maupun Mac OS. Mulai Google Map API V2), Google tidak lagi memperkenankan kita untuk mengirimkan API yang telah digenerate sebelumnya di terminal. Google API kini didistribusikan sebagai bagian dari Goole Play Service SDK. Anda bisa mengecek rujukannya di : https://developers.google.com/maps/documentation/android/. Untuk sumber panduan lengkap penulis mengambilnya di https://developers.google.com/maps/documentation/android/start#installing_the_g oogle_maps_android_v2_api Pertama, masih dalam keadaan menjalankan Eclipse dan ADT, beralihlah ke tab menu Windows --> Android SDK Manager, kemudian anda akan melihat beragam versi Android dengan API di bagian kiri. Pilihlah versi terbaru (pada contoh ini penulis memilih versi terbaru yaitu Android 4.3 API 18). Centangilah opsi install untuk Google API. Kemudian sistem akan menampilkan list untuk
101
setiap tambahan tersebut. Klik Install dan klik opsi untuk menyetujui ketentuan yang disertakan. Kemudian biarkan proses instalasi berjalan. Lama tidaknya sesuai dengan kecepatan internet anda dan spesifikasi komputer yang digunakan.
Gambar Menambahkan Google API
Gambar Menyetujui ketentuan dan persiapan instalasi
102
Gambar Mulai instalasi IV.1.4 Contoh Aplikasi Penerapan Berikut
akan
disajikan
pembuatan
sebuah
aplikasi
sederhana
memanfaatkan Google API untuk pemetaan di aplikasi Android. Seperti biasa, buka Eclipse, kemudian pilih File --> New --> Android Application Project. Kita misalkan
nama
aplikasi
proyek
ini
GPSKu
dengan
com.putushinoda.gpsku.
Gambar Memulai proyek GPSKu
103
nama
package
Kemudian lanjutkan dengan mencentangi opsi untuk Create Custom Launcher Icon, Create Activity, dan Create Project in Workspace.
Gambar Centangi custom launcher, icon, dan workspace Pada pilihan untuk Configure Launcher Icon, pilihlah launcher icon untuk proyek anda. Klik tombol Next untuk melanjutkan.
Gambar Mengkonfigurasi Launcher Icon
104
Pada halaman selanjutnya adalah membuat (create) activity. Anda boleh memilih Blank Activity.
Gambar Membuat Blank Activity Lanjutkan dengan memberikan nilai untuk Blank Activity, misalkan untuk Actitivy Name diisikan GPSActivity, Layout Name diisikan dengan activity_gps, dan Navigation Type diisikan dengan none.
Gambar Pemberian nilai untuk Blank Activity
105
Kini pada layar komputer anda akan tampil paket di Eclipse terkait proyek anda. Pada bagian file activity_gps.xml (di /res/layout) isikan dengan script berikut : Kemudian pada file GPSActivity.java isikan dengan file berikut ini : package com.putushinoda.gpsku; import import import import import import import import import
android.os.Bundle; android.app.Activity; android.view.Menu; com.google.android.gms.maps.GoogleMap; com.google.android.gms.maps.SupportMapFragment; com.google.android.gms.maps.model.LatLng; com.google.android.gms.maps.model.MarkerOptions; android.support.v4.app.FragmentActivity; android.view.Menu; public class GPSActivity extends FragmentActivity { private GoogleMap mMap; private LatLng mLokasi; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // data dummy mLokasi = new LatLng(-7.841785, 110.469904); // setup maps initMap(); } /** * inisialisasi map ketika pertama kali jalan */
106
private void initMap() { // cek apakah map kosong atau tidak if (mMap == null) { mMap = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map)).getMap(); // jika maps sudah ada, // maka setup map, if(mMap!=null){ setupMap(); } } } private void setupMap() { mMap.setMyLocationEnabled(true); mMap.addMarker(new MarkerOptions().position(mLokasi)); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Kemudian cek di file AndroidManifest.xml, kemudian ubah isi di dalamnya menjadi seperti berikut ini :
107
Kini jalankan proyek anda melalui AVD. IV.2 Handle Telephone di Android Pada panduan di sub bab ini, kita akan belajar untuk membuat beberapa aksi di emulator sebagaimana layaknya di mobile/smartphone asli (hardware). Beberapa aksi umum tersebut mencakup dial panggilan dan SMS. Melalui panduan ini anda akan dapat mengetahui tentang kemampuan emulator Android untuk menyerupai device handphone sebenarnya. IV.2.1 Dial Panggilan di Emulator Android Dial panggilan ini dapat digunakan untuk menguji sebuah panggilan dari sembarang nomor layaknya di handphone asli. Untuk melakukan ini, anda perlu mengklik (jalankan) file eksekusi ddms yang berada di lokasi SDK android anda (yaitu di /home/certain-death/adt-bundle-linux-x86-20130522/sdk/tools). DDMS (Dalvic Debug Management System) merupakan sebuah file eksekusi yang berguna sebagai pengendali dan debugger emulator Android. Nah
108
setelah file ini dijalankan, akan muncul tampilan awal dan pilihlah tab menu Emulator Control (kanan). Pastikan bahwa sebelum anda menjalankan DDMS, anda telah menjalankan AVD.
Gambar Lokasi file ddms
Gambar DDMS dijalankan
109
Pada kolom Incoming Number, masukkan nomor telepon sembarangan. Anggap nomor tersebut adalah nomor yang akan menghubungi “handphone“ anda di emulator (AVD). Kemudian lanjutkan dengan mengklik tombol Call.
Gambar Memasukkan Incoming Number
Gambar Menerima panggilan di emualator
110
IV.2.2 SMS Emulator di Android Sekarang kita mencoba sebuah emulator pengiriman dan penerimaan pesan
(SMS)
di
emulator
(AVD),
layaknya
seperti
di
perangkat
handphone/smartphone asli. Langkahnya sama seperti sub bab di atas (Telepon Dial Up), hanya saja anda cukup mengganti lokasi memasukkan nomor (Incoming Number) dari voice ke SMS.
Gambar Kirim pesan berupa SMS IV.3 Beberapa Studi Kasus Aplikasi Android IV.3.1 Integrasi dengan HTML 5 Kita pun dapat mengintegrasikan HTML 5 dengan pemrograman aplikasi di Android. Ada 2 pilihan yang dapat anda gunakan. Pertama, secara langsung (native) di Android. Kedua, menggunakan framework PhoneGap. Berikut akan ditampilkan proses integrasi HTML 5 dengan pemrograman aplikasi Android secara native. Pertama,
seperti
HTML5AndroidGue.
biasa
dibuat
sebuah
project
bernama
Lanjutkan dengan membuat launcher icon dan activity.
Pada bagian launcher icon, pilhlah icon yang ingin anda gunakan untuk launcher icon aplikasi anda. Untuk activity, pilihlah blank activity, kemudian berikan nama
111
untuk acitivy anda (Activity Name) HTML5AndroidGue. Sedangkan untuk layout name berikan nama html5_android_gue.
Gambar membuat project
Gambar Membuat Launcher icon dan activity
112
Gambar Memilih launcher icon
Gambar Memilih blank activity
113
Gambar Memberikan nama untuk blank activity Setelah selesai klik Finish. Seharusnya akan terbentuk project anda. Kini lakukan penambahan script pada beberapa file berikut ini (html5_android_gue.xml dan html5_android_gue.java, dan Manifest.XML). Pada file html5_android_gw.xml, isikan dengan script berikut ini :
Pada file html5_android_gue.java, isikan dengan script Java berikut ini : package com.putushinoda.html5androidgue; import import import import import import import
Pada file Manifest.xml, isikan dengan script berikut ini :
115
Gambar File manifest.xml di project
Gambar file XML untuk layout
116
Gambar File HTML5AndroidGue.java Kemudian aktifkan XAMPP server anda (misalkan di contoh ini XAMPP Linux dengan
perintah
/opt/lampp/htdocs).
Kemudian
pindahlah
ke
lokasi
/opt/lampp/htdocs sebagai root web anda. Buatlah sebuah folder bernama htmnl5androidgue, kemudian buatkan file index.html. Isikan dengan script HTML 5 sebagai berikut ini : HTML 5 di Android Gue
HTML 5 di Android
Belajar pemrograman di Linux asyik banget ^_^ Jangan menyerah dan selalu berlatih yah...
117
Gambar File HTML 5 Jika sudah, kemudian klik kanan project anda dan pilih opsi Run as Android application. Emulator akan menginstal file .apk dari project anda untuk kemudian menjalankannya di emulator.
Gambar
118
Gambar Aplikasi project terdapat di menu pada emulator
Gambar Aplikasi saat dijalankan di emulator Anda dapat bervariasi lagi dengan membuat kode – kode HTML 5 lainnya. Contoh di atas hanyalah sebuah kode HTML 5 sederhana, sebagaimana layaknya HTML biasa.
119
Bab V
Level Expert Android (2)
Tujuan : Melalui Bab 5 ini diharapkan pembaca dapat mengetahui mengenai : 1. Definisi dan konsep ERP 2. Definisi dan konsep SOA 3. Konsep Mobile ERP 4. Modul – Modul Pada ERP dan Implementasinya Pada Android Application (Porting). V.1
ERP (Enterprise Resource Planning)
V.1.1 Definisi ERP ERP
(Enterprise
Resource
Planning/Perencanaan
Sumber
Daya
Perusahaan) merupakan sebuah perangkat lunak sistem informasi yang di dalamnya
terjadi
proses
integrasi
dan
otomatisasi
proses
bisnis
dari
perusahaan/lembaga yang menerapkannya, dalam hal ini produksi, distribusi, dan operasi. ERP bersifat sebagai back office system, bukan front office system (seperti halnya E-Commerce, CRM, E-Gov), sehingga di dalam ERP pelanggan dan publik tidak disertakan dalam sistem. Penerapan ERP akan makin optimal jika adanya hardware, software, infrastruktur jaringan, komputer, dan SDM yang memadai. V.1.2 Manfaat ERP ERP memberikan banyak manfaat, antara lain : memudahkan top level management di dalam melihat dan mengontrol kinerja keuangan perusahaan, meningkatkan produktifitas, meningkatkan mutu produk,
menyeragamkan
laporan untuk standarisasi data dan informasi. V.1.3 Modul – Modul Pada ERP Beberapa modul yang terdapat pada ERP untuk perlu diketahui antara lain modul operasi (General Logistics, Sales and Distribution, Materials Management, Logistics Execution, Quality Management, Plant Maintenance, Customer Service, Production Planning and Control, Project System, Environment Management), 120
modul finansial dan akuntasi (General Accounting, Financial Accounting, Controlling, Investment Management, Treasury, Enterprise Controlling,), dan modul Sumber Daya Manusia (Personnel Management, Personnel Time Management, Payroll, Training and Event Management, Organizational Management, Travel Management). V.2
SOA (Service Oriented Architecture)
V.2.1 Definisi SOA SOA (Service Oriented Architecture/Arsitektur Berorientasi Layanan) merupakan sebuah pemodelan arsitektur untuk membuat dan menggunakan proses bisnis terkait dengan suatu sistem dan paket layanan dalam bentuk perangkat lunak, sepanjang siklus perangkat lunak tersebut. SOA mencakup komponen 4P (People, Platform, Process, Practice). V.2.2 Manfaat SOA Sebagai sebuah pemodelan arsitektur, SOA memungkinkan intergasi data antar perusahaan terjadi, sehingga menunjang tercapainya inovasi, keterhubungan layanan, peningkatan produktifitas, serta strategi bisnis berbasis teknologi. Manfaat – manfaat inilah yang akan diperoleh di dalam penerapan SOA. V.3
Implementasi Modul – Modul ERP Di Android (Porting/Mobile ERP)
V.3.1 Latar Belakang Terkait dengan materi pendahuluan mengenai ERP dan SOA di atas, maka akan dilanjutkan dengan materi mengenai layanan mobile yang dewasa ini makin banyak diimplementasikan. Implementasi ke dalam bentuk mobile tidaklah terjadi pada semua jenis aplikasi. Meski demikian, dengan adanya teknologi cloud computing, peranan platform mobile setidaknya mengubah paradigma para pengembang aplikasi untuk mencoba membuat versi mobile atau interface mobile. V.3.2 Mobile ERP ERP sebagaimana diketahui, saat ini berjalan di komputer desktop dan komputer server (termasuk untuk databasenya). Ini berarti semua pengguna dan para pengambil keputusan hanya dapat melakukannya melalui koneksi wired dan
121
wireless dari komputer desktop dan komputer jinjing. Berdasarkan permasalahan ini, dicoba diberikan solusi untuk pembuatan mobiel ERP berupa interface application berbasis mobile Android untuk menghubungkan pengguna ke server ERP (termasuk juga ke database), sebagai sebuah layanan. Layanan ini mencakup proses login, melihat data, input data, edit/delete data, grafik, dan sebagainya, melalui mobile device. Ini bukan berarti bahwa aplikasi mobile ERP sepenuhnya menggunakan device mobile anda (smartphone, tablet) untuk menyimpan dan mengolah data ERP yang sedemikian besar dan kompleks. Sebuah/beberapa server ERP dan koneksi jaringan tetap diperlukan, sedangkan aplikasi di mobile dengan basis Android akan menampilkan sekaligus membantu anda mengolah data di server ERP. Antara perangkat mobile anda (dengan aplikasi ERP mobile) dan server ERP dijembatani oleh SOA. Ilustrasinya dapat digambarkan dalam bagan sederhana sebagai berikut :
Gambar Bagan Android – SOA – ERP server
V.3.3 Manfaat Dengan adanya implementasi mobile ERP diharapkan dapat membantu para pengguna (termasuk para pengambil keputusan di perusahaan pemakai ERP terhadap hasil yang ditunjukkan oleh ERP system) dengan lebih mudah. Mereka cukup menghubungkan device mobile mereka ke server ERP melalui jaringan yang tersedia, kemudian mengakses semua menu, layanan, dan data di ERP melalui interface aplikasi mobile yang telah diinstal sebelumnya.
122
V.3.4 Implementasi Berikut akan dicoba dijabarkan contoh implementasi mobile ERP. Pada kasus ini akan diinstal terlebih dahulu aplikasi ERP (contoh menggunakan produk open source bernama Open ERP). Kemudian dibuatkan sebuah script Java pada project Android anda untuk mengkoneksikan dengan server Open ERP. Dengan adanya koneksi ini, maka memudahkan di dalam melakukan remote ke mesin server Open ERP untuk melihat, memasukkan, mengedit, maupun menghapus data di dalamnya. Pertama, lakukan instalasi Open ERP di komputer Linux anda. Pada Linux versi Red Hat based digunakan perintah yum install ke server repository. Untuk distro basis lainnya menyesuaikan (misal basis Debian dan Ubuntu dengan apt-get install). bash-4.2# yum install openerp Setelah selesai, kemudian jalankan aplikasi Open ERP di sistem operasi Linux anda. Pastikan bahwa anda sudah mengaktifkan layanan database yang diperlukan (PostGreSQL/MySQL). Langkah selanjutny adalah membuat aplikasi berbasis Android untuk interface (tatap muka) yang menghubungkan perangkat mobile anda (misalkan smartphone) dengan sistem di Open ERP beserta database. Ini bermanfaat untuk memudahkan anda di dalam mengelola ERP secara cepat, mudah, dan mobile tanpa harus berada di depan komputer. Untuk contoh, penulis menyarankan anda mencoba mengunduh dan menjalankan
salah satu proyek open source Android Open ERP di
https://github.com/zikzakmedia/android-openerp. Akhir kata, sampai di sini panduan yang penulis sampaikan untuk pemrograman aplikasi Android. Penulis menyadari segala kekurangan yang penulis miliki. Penulis menyarankan pembaca untuk membaca lagi referensi – referensi yang penulis gunakan (sebagian besar dari internet) melalui link (URL) yang disertakan, dan tentu saja melalui mesin pencari Google.
123
Daftar Pustaka [1] Nazruddin Safaat H (2012) : Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Penerbit Informatika. Bandung.
124
modul-pelatihan-android-itb.pdf
modul-pelatihan-android-itb.pdf. modul-pelatihan-android-itb.pdf. Open. Extract. Open with. Sign In. Main menu. Displaying modul-pelatihan-android-itb.pdf.