0% menganggap dokumen ini bermanfaat (0 suara)
156 tayangan80 halaman

Modul Pemrograman Java Mobile

Dokumen tersebut membahas tentang visi dan misi Program Studi Manajemen Informatika yang menargetkan menjadi program studi unggul di Indonesia dengan menghasilkan lulusan berkompeten dalam bidang aplikasi bisnis berbasis web pada 2024 serta menyelenggarakan pendidikan, penelitian, dan pengabdian masyarakat yang unggul.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
156 tayangan80 halaman

Modul Pemrograman Java Mobile

Dokumen tersebut membahas tentang visi dan misi Program Studi Manajemen Informatika yang menargetkan menjadi program studi unggul di Indonesia dengan menghasilkan lulusan berkompeten dalam bidang aplikasi bisnis berbasis web pada 2024 serta menyelenggarakan pendidikan, penelitian, dan pengabdian masyarakat yang unggul.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 80

Pemrograman Mobile Bahan Ajar

Pemrograman Java Mobile

Visi Prodi Manajemen Informatika :


Menjadi program studi unggul di Indonesia, menghasilkan lulusan yang berkompeten dalam
bidang aplikasi bisnis berbasis web pada tahun 2024.

Misi Prodi Manajemen Informatika :


1. Menyelenggarakan pendidikan dan pengajaran yang unggul, yaitu:
a. Unggul pada penguasaan ilmu dan keterampilan Manajemen Informatika khususnya
dalam bidang aplikasi bisnis berbasis web pada tahun 2024;
b. Suasana akademik yang kondusif untuk mendukung proses belajar-mengajar,
pembinaan individu dan pengembangan karakter.
2. Menyelenggarakan penelitian yang unggul dan profesional dalam rangka pengembangan
aplikasi bisnis berbasis webyang berkualitas yang dapat berperan meningkatkan daya
saing nasional.
3. Menyelenggarakan pengabdian kepada masyarakat yang unggul dan profesional dengan
menerapkan aplikasi bisnis berbasis web yang sesuai dengan kebutuhan dan kegunaannya
bagi masyarakat;
4. Menyelenggarakan manajemen dan pelayanan yang unggul, yaitu:
a. Budaya kerja dan budayaakademikyang profesional;
b. Pelayanan administrasi yang profesional;

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 0


Pemrograman Mobile Bahan Ajar

MODUL 1
PENGENALAN MOBILE PROGRAMING

Tujuan :
1. Mahasiswa dapat memahami dan mengetahui lebih dalam tentang mobile
programing.
2. Mahasiswa dapat mengetahui sistem operasi apa saja yang digunakan pada perangkat
mobile.
3. Mahasiswa mampu memahami dan mengetahui bagaimana mobile programing
bekerja dengan komponen eksternal.

Tugas pendahuluan :
1. Apa yang dimaksud sistem operasi ?
2. Sistem operasi apa saja pada handphone?

DASAR TEORI
1. Sistem operasi mobile
Sistem operasi perangkat mobile (bahasa Inggris: mobile operating system,
disingkat Mobile OS) adalah suatu sistem operasi yang mengontrol sistem dan kinerja pada
barang elektronik yang mobile, mirip dengan fungsi Windows,Mac OS X, dan Linux pada
Desktop PC atau Laptop/Notebook tetapi lebih sederhana. Biasanya penggunaannya hadir di
ponsel pintar, PDA, tablet komputer, dan PMP. Pada tahun 1993 dirilis smartphone yang
pertama, “IBM Simon” yang memiliki fitur layar sentuh, email serta PDA. Selang 3 tahun
kemudian, tahun 1996 Palm Pilot 1000 memperkenalkan personal digital assistant (PDA)
untuk pertama kalinya dengan sistem operasi Palm OS. Masih dalam tahun yang sama PC
Handled untuk pertama kalinya diperkenalkan dengan sistemWindows CE. 4 tahun
kemudian, tahun 2000 Symbian menjadi sistem operasi mobile modern pertama pada
smartphone yang diluncurkan oleh Ericsson R380.
Tahun 2002, Microsoft pertama Windows CE (Pocket PC) pada smartphone . Masih
pada tahun 2002, Blackberry merilis smartphone pertamanya. 3 tahun kemudian, tahun 2005
Nokia memperkenalkan Maemo OS pada tablet internet pertama Nokia N770. Lalu tahun
2007, Apple iPhone dengan iOS diperkenalkan sebagai iPhone “mobile phone” dan “internet
communicator”. Setahun kemudian, tahun 2008 OHA yang dibentuk oleh Google merilis
Android 1.0 dengan HTC Dream (T-Mobile G1) sebagai ponselAndroid yang pertama.

Sistem operasi yang umum saat ini:

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 1


Pemrograman Mobile Bahan Ajar

 Android dari Google Inc. (open source, Apache)


Sistem operasi yang berbasis linux dan banyak digunakan oleh para pembuat/pabrikan
telepon genggam sekarang ini (Samsung, HTC, Motorola, Sony Ericsson, LG, Huawei,
dll). Android OS adalah sebuah sistem operasi mobile yang diperuntukan bagi
smartphone dan komputer tablet. Android OS yang bebasis linux kernel ini
dikembangkan oleh Open Handset Alliance dibawah bendera Google. Pengembangkan
aplikasi-aplikasi Android dan menguploadnya di Android Market, dengan tujuan
aplikasi-aplikasi tersebut dapat didownload oleh para pengguna smartphone android.
Dalam empat tahun terakhir (rilis tahun 2008) Android berhasil merilis versi terbaru
mulai dari : Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb , Ice Cream
Sandwich, jelly beam dan yang terbaru adalah kitkat.

 BlackBerry OS dari RIM (closed source, proprietary)


BlackBerry menggunakan BlackBerry OS sebagai sistem operasinya. BlackBerry OS,
dikembangkan oleh Reseach in Motion (RIM), untuk BlackBerry, perusahaan
telekomunikasi asal Kanada ini. Diawal kemunculannya BlackBerry booming dengan
layanan push-email dan sebagai smartphone yang sukses dipasaran. Versi terakhir dari
BlackBerry OS adalah BlackBerry OS 7.

 iOS dari Apple Inc. (closed source, proprietary)


iOS adalah sistem operasi mobile milik Apple yang dikembangkan dan hanya
diaplikasikan untuk perangkat Apple Inc seperti iPhone, iPod Touch, iPad dan Apple
TV. iOS memiliki lebih dari 500.000 aplikasi di App Store dengan angka penjualan
perangkat smartphone terbaik di dunia pada tahun 2011 disusul Google Android dan
Nokia Symbian. iOS menjadi “leading” bagi sistem operasi mobile yang lain dengan
mengusung interface multitouch yang bisa digeser (slider), ditekan (switch), dan
tombol. Perangkat Apple masih menjadi nomor satu dalam hal teknologi dan angka
penjualan di dunia. Produk smartphone Apple yang terbaru adalah iPhone 5 dan iOS7
adalah versi terbaru.

 Symbian OS dari the Symbian Foundation (open public license)


Symbian terdiri dari beberapa mobile OS yang tidak saling mendukung secara penuh;
S60 3rd edition, S60 5th edition, S80, UIQ, MOAP, dan Symbian^3/Anna. Symbian OS
adalah sebuah Operating System yang digunakan untuk operasi standar ponsel dengan
perangkat smartphone. Symbian OS menetapkan persyaratan bahwa sistem operasi ini

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 2


Pemrograman Mobile Bahan Ajar

hanya dapat digunakan oleh ponsel dengan fitur 2.5G dan 3G.

 Windows Phone dari Microsoft (closed source, proprietary)


Windows Mobile merupakan sistem operasi mobile yang dikembangkan oleh
Microsoft, produk Mobile Windows seperti Sagem myS-7, O2 Xphone dll. Sistem
operasi yang berhasil dikembangkan dan diaplikasikan mulai dari Pocket PC 2000
hingga Windows Mobile versi 6.5.5. Meskipun ada beberapa kelebihan seperti fitur
GPS, dapat menonton televisi, mobile blog, mobile database namun kelemahan dari
Windows Mobile adalah minim developer independen. Karena pihak Microsoft yang
menerapkan peraturan bahwa Windows Mobile bersifat tertutup. Hal ini tidak
menguntungkan bagi pasar Windows Mobile karena produk mereka yang minim
developer berakibat pada minimnya aplikasi-aplikasi yang dapat dikembangkan.
Sehingga Windows Mobile kalah bersaing dengan smartphone lain, terutama bagi
vendor yang menerapkan sistem terbuka bagi developer manapun yang bersedia
mengembangkan sebuah sistem operasi, seperti Andorid.

2. Arsitektur mobile programing


Google sebagai pencipta Android yang kemudian diasuh oleh Open Handset Alliance
mengibaratkan Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini
menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi.
Tumpukan paling bawah adalah kernel. Google menggunakan kernel Linux versi 2.6
untuk membangun Android, yang mencakup memory management, security setting, power
management, dan beberapa driver hardware. Bertempat di level yang sama dengan library
adalah lapisan runtime yang mencakup serangkaian inti library Java. Dengannya, para
programmer dapat mengembangkan aplikasi untuk Android menggunakan bahasa
pemrograman Java. Lapisan selanjutnya adalah application framework, yang mencakup
program untuk mengatur fungs i- fungsi dasar smartphone.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 3


Pemrograman Mobile Bahan Ajar

Gambar 4. Arsitektur Android

1. Linux Kernel
Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan android bukanlah
linux, karena dalam android tidak terdapat paket standar yang dimiliki oleh linux
lainnya. Linux merupakan sistem operasi terbuka yang handal dalam manajemen memori
dan proses. Oleh karenanya pada android hanya terdapat beberapa servis yang
diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan
driver. Kernel linux menyediakan driver layar, kamera, keypad, WiFi, Flash Memory,
audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang
keamanan.

2. Libraries
Android menggunakan beberapa paket pustaka yang terdapat pada C/C++ dengan
standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk
tertanam pada kernel Linux. Beberapa pustaka diantaranya:
• Media Library untuk memutar dan merekam berbagai macam format audio dan
video.
• Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.
• Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 4


Pemrograman Mobile Bahan Ajar

3D.
• SQLite untuk mengatur relasi database yang digunakan pada aplikasi.
• SSl dan WebKit untuk browser dan keamanan internet.

3. Android Runtime
Pada android tertanam paket pustaka inti yang menyediakan sebagian besar fungsi
android. Inilah yang membedakan Android dibandingkan dengan sistem operasi lain
yang juga mengimplementasikan Linux. Android Runtime merupakan mesin virtual yang
membuat aplikasi android menjadi lebih tangguh dengan paket pustaka yang telah ada.
Dalam Android Runtime terdapat 2 bagian utama, diantaranya:

4. Application Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk
mengembangkan aplikasi android. Selain itu, juga menyediakan abstraksi generik untuk
mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi.
Bagian terpenting dalam kerangka aplikasi android adalah sebagai berikut [Hello
Android 2nd Edition]:
1. Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga
keadaan ”Backstack“ untuk navigasi penggunaan.
2. Content Providers, berfungsi untuk merangkum data yang memungkinkan
digunakan oleh aplikasi lainnya, seperti daftar nama.
3. Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta
menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan
file layout.
4. Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi
perangkat android berada.
5. Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk,
janji, dan lain sebagainya yang akan ditampilkan pada status bar.

5. Application Layer
Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget. Lapisan
aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan
program. Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui
proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime
dengan menggunakan kelas dan service yang tersedia pada framework aplikasi. Lapisan

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 5


Pemrograman Mobile Bahan Ajar

aplikasi android sangat berbeda dibandingkan dengan sistem operasi lainnya. Pada
android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak ketiga berjalan
diatas lapisan aplikasi dengan menggunakan pustaka API (Application Programming
Interface) yang sama.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 6


Pemrograman Mobile Bahan Ajar

MODUL II
DASAR IMPLEMENTASI MOBILE PROGRAMING

Tujuan :
1. Mahasiswa mampu mengetahui dan memahami dasar-dasar mobile programming
2. Mahasiswa mampu melakukan instalasi dan konfigurasi SDK
3. Mahasiswa mampu menggunakan ADT & Eclipse sebagai dasar pengembangan
Program berbasis android

Pokok bahasan :
1. Instalasi da2n Konfigurasi SDK
2. Dasar Penggunaan ADT & Eclipse
3. XML (eXtensible Markup Language)

1. XML (eXtensible Markup Language)


XML kependekan dari eXtensible Markup Language, dikembangkan mulai tahun 1996
dan mendapatkan pengakuan dari W3C pada bulan Februari 1998. Teknologi yang
digunakan pada XML sebenarnya bukan teknologi baru, tapi merupakan turunan dari SGML
yang telah dikembangkan pada awal 80-an dan telah banyak digunakan pada dokumentasi
teknis proyek-proyek berskala besar. Ketika HTML dikembangkan pada tahun 1990, para
penggagas XML mengadopsi bagian paling penting pada SGML dan dengan berpedoman
pada pengembangan HTML menghasilkan markup language yang tidak kalah hebatnya
dengan SGML.
Seperti halnya HTML, XML juga menggunakan elemen yang ditandai dengan tag
pembuka (diawali dengan ‘<’ dan diakhiri dengan ‘>’), tag penutup(diawali dengan ‘</
‘diakhiri ‘>’) dan atribut elemen(parameter yang dinyatakan dalam tag pembuka misal <form
name=”isidata”>). Hanya bedanya, HTML medefinisikan dari awal tag dan atribut yang
dipakai didalamnya, sedangkan pada XML kita bisa menggunakan tag dan atribut sesuai
kehendak kita. Pada eclipse XML biasanya digunaka untuk mengatur layout pada layar
gadget.

2. Instalasi dan Konfigurasi SDK


SDK merupakan kependekan dari Software Development Kit. Android SDK adalah
perangkat lunak yang digunakan dalam pengembangan aplikasi pada android. Sebelum itu
kita harus menginstall eclipse yaitu sebuah IDE (Intergratied Development Environment)
untuk mengembangan perangkat lunak dan dapat dijalankan di semua platform. Berikut

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 7


Pemrograman Mobile Bahan Ajar

adalah sifat dari eclipse :


 Multi –platform : Target sisitem operasi Eclipse adalah Microsoft Windows, Linux,
solaris, AIK, HP-UX dan Mac OS.
 Multi-language : Eclipse dikembangkan dengan bahasa pemrograman java, namun
eclipse mendukung pengembangan aplikasi berbasis lainnya, seperti C/C++, Cobol,
Python, Perl, PHP.
 Multi-role : Selain sebagai IDE untuk pengembangan aplikasi , eclipse pun bisa
digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak,seperti
dokumentasi,test perangkat lunak.
Eclipse selalu dilengkapi dengan JDT (Java Development Tools), yaitu sebuah plugin
yang memebuat Eclipse dapat dipakai untuk mengembangkan program java,serta dilengkapi
dengan PDE (Plugin Development Environment) yang bisa dipaki untuk membuat plugin
baru. Ada beberapa versi eclipse yang sudah release , pada modul praaktikum ini
menggunakan versi dengan kode nama Juno. File bisa didownload di
http://www.mediafire.com/download/owef6j4gc35e3ig/adt -bundle-windows-x86-
20130717.zip format file Zip. Pastikan PC anda sudah terinstal JDK (Java development Kit).
Setelah download selesai berikut adalah cara mengkonfigurasi eclipse. Jika di komputer
belum terinstal java, maka lakukan intalasi terlebih dahulu. Beriku langkah:

1. Install jdk yang ada dalam folder.

2. Tampilan Aplikasi Java Klik Next .

3. Merupakan directory dimana java terinstall-Klik Next

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 8


Pemrograman Mobile Bahan Ajar

4. Selanjutnya klik install dan tunggu proses selesai.

5. Setelah selesai mengintall,masuk ke Control Panel\All Control Panel Items\System. Pilih


Advenced System Setting, pilih Environment Variabel

6. Masukan directory instalasi java ke System variabel – Path-seperti gambar lalu ok.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 9


Pemrograman Mobile Bahan Ajar

Java Development kit sudah terinstall kemudian mengkonfigurasi eclipse dan kelengkapan
dalam membuat project.
1. Pilih folder eclipse. Eclipse tidak memerlukan wizard instalasi . Dalam folder eclipse
akan ditemukan eclipse.exe, cukup pilih file tersebut

2. Akan Tampil Workspace Launcher, merupakan dimana project akan tersimpan, anda
bisa langsung memilih Ok.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 10


Pemrograman Mobile Bahan Ajar

3. Berikut adalah tampilan awal aplikasi eclipse, anda bisa pilih New adaroid Aplication.

4. Berikut tampilan awal dalam membuat project. Saya coba membuat Apliction Name
Latihan1. Pada kolom Package Name.example dihapus sehingga seperti gambar, klik
next.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 11


Pemrograman Mobile Bahan Ajar

5. Dalam eclipse anda bisa membuat icon project yang akan dibuat .

6. Berikutnya adalah membuat activity

7. Dalam activity anda bisamerubah nama activitynya, jika sudah pilih finish.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 12


Pemrograman Mobile Bahan Ajar

8. Proses pembuatan project sudah selesai berikut adalah area kerja dari eclipse.
Terdapat Hellow word yang secara otomatis akan muncul

Project eclipse sudah selesai di buat namun belum bisa berjalan / running. Untuk cara running
program ada beberapa kelengkapan yang harus dipenuhi.
1. Instalasi SDK manager, pilih gambar logo SDK pada ruang kerja eclipse.

2. Akan tampil sdk yang sudah dan belum terinstal. Dalam hal ini saya sudah menginstal
package yang diperlukan untuk menjalankan project yang akan dibuat. Jika ingin
melengkapi anda bisa langsung memilih Instal Package dan memerlukan koneksi
internet.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 13


Pemrograman Mobile Bahan Ajar

3. Membuat AVD untuk menjalankan project. Pilih icon pada gambar.

4. Berikut tampilan AVD , karena belum ada maka kita buat , pilih new

5. Berikan nama AVD1, pada device bisa pilih sesuai keinginan, lalu tekan ok.

6. Kembali ke tampilan avd , kini sudah terdapat satu avd, pilih avd tersebut dan
start. Memerlukan banyak waktu untukmemebuka avd, tunggu proses hingga selesai

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 14


Pemrograman Mobile Bahan Ajar

3. Dasar penggunaan ADT & Eclipse


Pada sebuah proyek memiliki banyak komponen yang bisa dilihat di bagian Package
Explorer. Berikut adalah penjelasan bebebrapa komponen:

1. Folder src adalah folder terdapat nama proyek dan dibawahnya ada file java untuk
menuliskan source code yang menjelaskan logic dari android anda.Di dalam folder ini
ada file java yang vital dan berperan penting yaitu MainActivity.java.
2. Folder gen adalah folder yang belum akan anda temukan jika baru membuat aplikasi.
Ketika script aplikasi itu anda compile, maka folder gen akan mencul. Terdapat file-file
java salah satunya R.java yang fungsinya mengatur apapun yang terlihat dilayar gadget.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 15


Pemrograman Mobile Bahan Ajar

3. Folder android merupakan folder yang menunjukan versi android proyek dan berisi
sejumlah library agr program bisa berjalan di sistem operasi android yang ditentukan.
4. Folder assets adalah folder yang digunakan untuk menyimpan aset – aset yang
mungkin anda butuhkan dalam aplikasi. Sebagai contoh aset bisa berupa file XML atau
database yang mungkin diperlukan agar aplikasi bisa berfungsi dengan baik.
5. Folder res juga disebut resources yang digunakan untuk menyimpan file yang pasti
digunakan oleh aplikasi. Contoh adalah gambar,foto dan suara.dalam file ini ada
beberapa folder untuk menyimpan file yaitu:
 Drawable berisi file – file bitmap yang mendukung aspek grafis pada aplikasi.
 Drawable-xhdpi sama dengan folder drawable, hanya saja digunakan untuk
menyimpan file foto dengan resolusi sangat tinggi.XHDPI sendiri adalah extra
high density screens yang cocok digunakaan pada tablet berukuran besar.
 Drawable –hdpi menyimpan file dengan kualitas yang tinggi namun masih dibawah
xhdpi.
 Drawable –mdpi adalah medium density screens yang menyimpan file foto dengan
kualitas menengah.
 Drawable – ldpi adalah low density screens yang menyimpan file foto dengan
kulaitas menengah.
 Layout meenyimpan file XML untuk mengatur layout tata letak didalam layar
gadget.
 Menu menyimpan file XML yang mengatur menu - menu di dalam aplikasi.
 Values menyimpan file XML yang mengandung nilai –nilai sederhana seperti
string,integer,dan warna. Di dalam folder ini hanya terdapat file Array.xml,
Color.xml, Dimens.xml, String.xml, Styles.xml.

Layar kerja pada eclipse :


 Res – layout- main_activity.xml –graphical layout

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 16


Pemrograman Mobile Bahan Ajar

 Res – layout- main_activity.xml –graphical layout

Hasil dari project diatas setelah dirun. Cara running program klik kanan pada nama project di
package project – pilih RunAs Android Aplication- pilih avd yang sudah dibuat AVD1:

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 17


Pemrograman Mobile Bahan Ajar

MODUL III
IMPLEMENTASI MOBILE PROGRAMING

Tujuan :
1. Mahasiswa mampu mengetahui dan memahami dasar-dasar mobile programming
2. Mahasiswa mampu memahami kode program dasar untuk membangun program
berbasis android.

Pokok bahasan :
1. Dasar coding menggunakan XML dan Membangun Code Program
- Variabel
- Percabangan (Decision)
- Perulangan (Looping)

2. Konsep Dasar Antarmuka pada Mobile Programming


- Widget
- Layout

1. Konsep Dasar Antarmuka pada Mobile Programing


A. Widget
Komponen user interface pada eclipe ini disebut widget. Beberapa widget dasar
adalah: TextView, Button, Image, EditText, CheckBox, RadioButton, ListView.
Setiap widget memiliki property atau atribut yang mengatur bagaimana widget itu
ditampilkan, seperti tinggi dan lebar widget. Property ini dapat diset melalui xml
layout, property editor atau melalui program. Beberapa widget memiliki beberapa
event yang ter-trigger berdasarkan aksi dari pengguna, misalnya event click pada
button. Berikut adalah contoh pengaplikasian widget. Untuk menampilkan cukup
drag icon ke layar kerja.

1) TextView digunakan untuk menampilkan label teks. View ini sudah kita
gunakan Beberapa contoh property dari TextView adalah android:textSize,
android:textStyle, android:textColor.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 18


Pemrograman Mobile Bahan Ajar

Contoh:
<TextView
android:id=" @+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text=" @string/belajar"
android:textColor="#00ff00"
android:textStyle="italic"/>

Bila dijalankan maka hasilnya

2) Button merupakan turunan dari TextView sehingga yang berlaku di textView


juga berlaku di button.
Contoh :
Button
android:id=" @+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft=" @+id/textView1"
android:layout_below=" @+id/textView1"
android:layout_marginTop="98dp"
android:text=" @string/button" />

Maka Hasilnya

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 19


Pemrograman Mobile Bahan Ajar

3) Image view adalah widget yang digunakan untuk menampilkan image. Image
yang akan ditampilkan dalam button diletakkan di direktori /res sesuai dengan
resolusinya. Jadi untuk hasil yang maksimal, untuk setiap image yang akan
anda gunakan harus disediakan 4 image untuk setiap resolusi (mdpi sampai
dengan xxhdpi). Hal ini untuk mencegah gambar yang digunakan terlihat pecah
atau terlalu kecil pada device dengan resolusi berbeda. Pada folder res sudah
terdapat image android. Sebagai contoh kita tampilkan gambar tersebut. Drag
image view kelayar kerja.

Contoh penerapan pada main.xml


<ImageView
android:id=" @+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_alignParentRight="true"
android:layout_alignTop=" @+id/textView1"
android:layout_marginRight="14dp" android:src=" @drawable/ic_launcher" />

setelah dijalankan

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 20


Pemrograman Mobile Bahan Ajar

4) EditText digunakan untuk menerima input dari pengguna. Pada palette telah
disediakan berbagai jenis EditText, silahkan dicoba satu persatu dan perhatikan
XML yang dihasilkan. sebagai contoh adlah sebagai berikut

EditText
android:id=" @+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft=" @+id/textView1"
android:layout_below=" @+id/imageView1"
android:ems="10" >

setelah dijlankan anda dapat menginput texs di dalamnya

5) RadioButton hanya satu pilihan yang boleh aktif (mutual exclusive) di dalam

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 21


Pemrograman Mobile Bahan Ajar

satu group yang disebut radioGroup. Sedangkan User dapat memilih lebih
dari satu pilihan dengan checkbox. Pada palette, Checkbox ada di bagian
FormWidgets.
Contoh script

<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/radioButton1"
android:layout_alignBottom="@+id/radioButton1"
android:layout_alignRight="@+id/imageView1"
android:layout_marginRight="33dp"
android:text="@string/cek1" />

<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/radioButton2"
android:layout_alignBottom="@+id/radioButton2"
android:layout_alignLeft="@+id/checkBox1"
android:text="@string/cek2" />

<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/editText1"
android:layout_marginTop="22dp"
android:text="@string/android" />

<RadioButton

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 22


Pemrograman Mobile Bahan Ajar
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/radioButton1"
android:text="@string/IoS" />

Dari keseluruhan hasilnya adalah

B. Layout
Kategori komponen pertama adalah layout. Komponen - komponen di kategori ini
menentukan struktur visual untuk antarmuka pengguna, seperti Uluntuk activity atau
widget. Mendeklarasikan layout di XML jugamemeudahkan anda memvisualisaikan
struktur dari antar muka. Berikut adalah contoh dari Linier Layout Horizontal
dengan menambah kan 3 button pada layar kerja.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 23


Pemrograman Mobile Bahan Ajar

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2" />

<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 3" />

</LinearLayout>
Berikut hasilnya . untuk Linier Layout vertical hanya perlu mengganti
android:orientation="vertical"

Relative layout memungkinkan anda menentukan letak komponen secara relatif


dengan komponen lainyya. Layout ini merupakan paling flexible yang
memungkinkan meletakan kompnen sesuai keinginan. Di relative layout biasa
menggunakan, above, below, left, right untuk mengatur isi komponen. Sebagai
contoh adalah memasukan 2 button.

Beberapa atribut yang mengatur posisi widget di relative layout adalah:

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 24


Pemrograman Mobile Bahan Ajar

 Android:layout_above
 Android:layout_below
 Android:layout_toLeftOf
 Android:layout_toRightOf.

Seperti contoh berikut :


<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="37dp"
android:layout_marginTop="50dp"
android:text="Button" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_marginTop="22dp"
android:layout_toRightOf="@+id/button1"
android:text="Button" />

Gambar 5.31 Tampilan relative layout

Untuk layout_width dan layout_height ada dua pilihan: match_parent (view


berusaha sebesar parent) dan wrap_content (view hanya berusaha sebesar content
yang berada di dalamnya). Sedangkan padding menyatakan jarak antara pinggir

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 25


Pemrograman Mobile Bahan Ajar

layar dengan komponen. Perhatikan penggunaan atribut layout_toRightOf yang


menyatakan bahwa button2 berada disebelah kanan button1.

Untuk mengatur posisi ada tambahan lima atribut: android: layout_alignT op,
android:layout_alignBottom,android:layout_alignLeft,
android:layout_alignBaseline.

2. Dasar coding menggunakan XML dan Membangun Code Program


1. Variabel
Pada pemrograman eclipse pendeklarasian variabel sama seperti pada java. Variabel
pada java adalah satuan dasar penyimpanan dalam program. Cara pendeklarasian
variabel
tipe namaVariabel; //untuk mendeklarasikan sebuah
variabel tipe namaVariabel1,variabel2,... //untuk
mendeklarasikan beberapa variabel

contoh :
int X;
NB : int merupakan tipedata dari variabel, X merupakan Nama variabel

Latihan program
1. Buatlah project baru dengan nama Variabel
2. Inputkan EditText, TextView, Dan Button. Berikut adalah main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android
"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 26


Pemrograman Mobile Bahan Ajar
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="36dp"
android:text="INPUT 1" />

<EditText android:id="@+id/input1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_marginLeft="17dp"
android:layout_toRightOf="@+id/textView1"
android:ems="10" />

<TextView
android:id="@+id/hasil"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/btnHitung"
android:layout_below="@+id/input1"
android:layout_marginTop="108dp"
android:text="hasil"
android:textStyle="bold"/>

<EditText
android:id="@+id/input2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/input1"
android:layout_below="@+id/input1"
android:layout_marginTop="37dp"
android:ems="10" >

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 27


Pemrograman Mobile Bahan Ajar

<requestFocus />
</EditText>

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/input2"
android:layout_toLeftOf="@+id/input1"
android:text="INPUT 2" />

<Button
android:id="@+id/btnReset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/input2"
android:layout_below="@+id/hasil"
android:layout_marginRight="16dp"
android:layout_marginTop="54dp"
android:text="RESET" />

<Button android:id="@+id/btnHitung"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/btnReset"
android:layout_alignBottom="@+id/btnReset"
android:layout_alignLeft="@+id/textView2"
android:text="HITUNG"/>
</RelativeLayout>
3. Pada Activitymain.java ketikan coding berikut

import com.variabel.R.id;
import android.os.Bundle;
import android.app.Activity;

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 28


Pemrograman Mobile Bahan Ajar
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

EditText input1, input2;


TextView hasil;
Button tampil,reset;

int x, y, hitung;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// meng-import widget ke variabel, dengan menemukan


id pada widget
input1=(EditText) findViewById(R.id.input1);
input2=(EditText) findViewById(R.id.input2);
hasil=(TextView) findViewById(R.id.tampilHasil);
tampil =(Button)findViewById(R.id.btnHitung);
reset=(Button)findViewById(R.id.btnReset);

// membuat button bekerja saat di klik


tampil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// mem-parse nilai integer ke string karena inputan
berupa string
x = Integer.parseInt(((EditText)
input1).getText().toString());

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 29


Pemrograman Mobile Bahan Ajar
y = Integer.parseInt(((EditText)
input2).getText().toString());
hitung = x + y;
hasil.setText("Hasil"+"="+hitung);
}
});
// mereset inputan dan hasilnya
reset.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {

input1.setText("");
input2.setText("");
hasil.setText("");

}
});
}

Berikut hasilnya setelah dinput dan direset.

2. Percabangan
a) Percabangan if
 Buatlah prject baru beri nama percabangan

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 30


Pemrograman Mobile Bahan Ajar

 Berikut adalah main xml


<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<EditText android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="102dp"
android:ems="10" >

<requestFocus />
</EditText>

<TextView android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editText1"

android:layout_alignParentLeft="true"
android:layout_marginBottom="50dp"
android:layout_marginLeft="16dp"
android:text="Masukan Nilai" />

<Button android:id="@+id/button1"
android:layout_width="wrap_content"

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 31


Pemrograman Mobile Bahan Ajar

android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textVie w1"
android:layout_below="@+id/editText1"
android:layout_marginTop="24dp"
android:text="Grade" />

<TextView android:id="@+id/textView2"
android:layout_width="wrap_content"

android:layout_height="wrap_content"
android:layout_alignRight="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginTop="55dp"
android:text=" " />

</RelativeLayout>

 Pada Main Activity.java


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {


// membuat variabel
TextView hasil;
Button tampil;
EditText input;

int nilai, hasil1;

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 32


Pemrograman Mobile Bahan Ajar

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

hasil=(TextView)findViewById(R.id.textView2); tampil=(Button)
findViewById(R.id.button1); input=(EditText)
findViewById(R.id.editText1);

// memeberi action pada button ketoka ditekan


tampil.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
// memeparse variabel nilai
nilai = Integer.parseInt(((EditText)
input).getText().toString());

if (nilai > 85)


hasil.setText("Grade A !");
else if (nilai > 75 )
hasil.setText("Grade B !");
else if (nilai > 65 )
hasil.setText("Grade C !");
else if (nilai > 55 )
hasil.setText("Grade D !");
else{
hasil.setText("Grade E !");}
}
});
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 33


Pemrograman Mobile Bahan Ajar
is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

Bila dijalankan akan seperti berikut

b) Percabangan switch case


 Buatlah project baru, beri nama percabangan2
 Berikut adalah main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 34


Pemrograman Mobile Bahan Ajar
android:text="masukan angka 1 -6"
/>
<EditText android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_marginTop="22dp"
android:layout_toRightOf="@+id/textView1"
android:ems="10" >
<requestFocus />
</EditText>

<Button android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textVie w1"
android:layout_below="@+id/editText1"
android:text="HASIL" />

<TextView android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_marginLeft="24dp"
android:layout_marginTop="24dp"
android:layout_toRightOf="@+id/button1"
android:textSize="18pt" android:text="" />

</RelativeLayout>

 Pada mainAvtivity .java


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 35


Pemrograman Mobile Bahan Ajar
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {


TextView hasil;
EditText input;
Button tampil;

int nilai;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

hasil=(TextView) findViewById(R.id.textView2);
input=(EditText) findViewById(R.id.editText1);
tampil=(Button) findViewById(R.id.button1);
tampil.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
// mem-parse bilangan integer
nilai = Integer.parseInt(((EditText)
input).getText().toString());
switch (nilai) {
case 1 :
hasil.setText(" Hari Senin");
break;
case 2 :
hasil.setText("Hari Selasa");
break;
case 3 :
hasil.setText("Hari Rabu");
break;

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 36


Pemrograman Mobile Bahan Ajar
case 4 :
hasil.setText(" Hari Kamis");
break;
case 5 :
hasil.setText("Hari Jumat");
break;
case 6 :
hasil.setText("Hari Sabtu");
break;
default :
hasil.setText("Hari Minggu ");
}
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu); return true;
}
}

Berikut adalah hasilnya

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 37


Pemrograman Mobile Bahan Ajar

3. Perulangan
a) Perulangan menggunakan for
 Buat project baru , beri nama perulangan
 Berikut adalh main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="INPUT NILAI AKHIR"
/>

<EditText android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textVie w1"
android:layout_below="@+id/textView1"
android:layout_marginLeft="30dp"
android:layout_marginTop="18dp"
android:ems="10" >
<requestFocus />

</EditText>

<Button

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 38


Pemrograman Mobile Bahan Ajar
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textVie w1"
android:layout_below="@+id/editText1"
android:layout_marginTop="20dp"
android:text="HITUNG" />

<TextView android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_marginTop="82dp"
android:layout_toRightOf="@+id/button1"
android:text=" " />

</RelativeLayout>

 Pada main.java
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.EditText;

public class MainActivity extends Activity {


TextView hasil;
EditText input;
Button tampil;

int nilai; String cetak;


@Override
protected void onCreate(Bundle savedInstanceState) {

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 39


Pemrograman Mobile Bahan Ajar
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

hasil=(TextView) findViewById(R.id.textView2);
input= (EditText) findViewById(R.id.editText1);
tampil=(Button) findViewById(R.id.button1);
tampil.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
cetak="";
nilai = Integer.parseInt(((EditText)
input).getText().toString());
for (int i = 1; i <=nilai; i++) {
if ( i % 2==0) {
cetak=cetak+" "+Integer.toString(i);
}
hasil.setText(cetak);
}
}});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Berikut adalah hasilnya

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 40


Pemrograman Mobile Bahan Ajar

b) Perulangan while
Buat project baru , beri nama perulangn2. Pada perulangan while buat project
sama dengan perulangan for, kita cukup ganti syntak perulanganya. Bila pada
for hasil yang ditampilkan adalah genap, maka pada while kita tampilkan
bilangn ganjil. Berikut adalah syntak dari perulangan while. Kitamulai dari
action button

tampil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {

cetak="";
nilai = Integer.parseInt(((EditText)
input).getText().toString());

int i = 1;
while (i <=nilai) {
if ( i % 2==1) {
cetak=cetak+""+Integer.toString(i);

} i++; hasil.setText(cetak);
}
}
});

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 41


Pemrograman Mobile Bahan Ajar

Bila dijalankan akan seperti berikut

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 42


Pemrograman Mobile Bahan Ajar

MODUL IV
ACTIVITY DAN INTENT

Tujuan :
1. Mahasiswa mampu mengetahui dan memahami dasar-dasar mobile programming
2. Mahasiswa mengetahui Activity dan Intent
3. Mahasiswa mampu membangun program menggunakan activity intent

Pokok bahasan :
1. Dasar teori
2. Latihan Project activity

1. Dasar Teori
Activity adalah jendela yang berisi user interface antara pengguna dengan aplikasi.
Pada saat layar interface terlihat oleh pengguna pada saat itulah activity melakukan
sebuah proses walaupun tersembunyi. Setiap proses yang dilakukan activity dinamakan
dengan siklus activity.
Pada dasarnya activity memiliki empat keadaan yaitu :
1. Active ,jika activity berada pada posisi atas stack
2. Pause , jika activitytidak dibutuhkan pada suatu saat tertentu, tetapi activity itu
masih ada, ketika activity baru yang ditangani oleh sistem activity yang lama
disebut pause dan masih ada di memory.
3. Stopped , jika activity tidak dipakai dan digantikan oleh activity lain, activity
yang di stop tidak akan pernah dipanggil lagi dan memory pun tidak menyimpan
ifo activity ini.
4. Restart , jika activity pause atau stop dalam waktu sasaat kemudian dilakukan
restart activity tersebut akan kembali ke keadan awal.
Intent merupakan bagian activity yang fungsinya menjalankan aplikasi yang berbeda
agar dapat bekerja secara bersamaan. Intent adalah bagian dari activity yang
memeiliki konsep sebagai perangkat yang dapat mengaktivkan activity dari
aplikasi yang berbeda untuk dapat bekerja secara bersamaan seolah activity
tersebut dimiliki oleh satu aplikasi. Syntak intent
IntentNamaIntent = new Intent(getApplicationContext(),ClassTujuan.class);
StartActivity(NamaIntent);

Contoh penerapan activity menggunakan intent(switching activity)

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 43


Pemrograman Mobile Bahan Ajar

1) Buat project baru beri nama LatihanActivity. Kemudian buat activity baru
dengan cara berikut. Klik new – other

5. Pilih Android Activity – Next, pada layar berikutnya pilih


BlankActivity

6. Pada layar ini kita menentukan nama dari activity yang akan dibuat. Beri nama
Activity 2. Lalu finish.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 44


Pemrograman Mobile Bahan Ajar

7. Pada package explorer akan ada activity baru yang anda buat.

8. Setelah membuat activity , sekarang kita akan buat code dari programnya
9. Buat layout main_activity seperti berikut. Tambahakan text view dan button.
Pada button id ganti dengan nama next.
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="screen 1" android:textSize="18pt" />

<Button
android:id="@+id/next"
android:layout_width="wrap_content"

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 45


Pemrograman Mobile Bahan Ajar
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/textView1"
android:layout_marginBottom="59dp" android:text="Next"
/>

10. Buat layout activity_activity2 seperti berikut. Ganti button id dengan nama
back.
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Screen 2" android:textSize="18pt" />

<Button android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dp" android:text="Back"
/>

11. Berikut adalah code dari MainActivity.


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.content.Intent;
import android.widget.Button;

public class MainActivity extends Activity {

@Override

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 46


Pemrograman Mobile Bahan Ajar
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button btnNext = (Button) findViewById(R.id.next);


btnNext.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
// berikut adalah deklasi intent
Intent i= new Intent
(getApplicationContext(),Activity2.class);
//mengaktifkan intent untuk memanggil activity kedua
startActivity(i);

}
});
}

Atau bisa dengan code

12. Berikut adalah code dari Activity2.


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.content.Intent;
import android.widget.Button;

public class Activity2 extends Activity {

@Override

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 47


Pemrograman Mobile Bahan Ajar
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity2);

Button btnBack=(Button)findViewById(R.id.back);
btnBack.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {

finish();

}
});
}

Atau bisa dengan code

13. Kemudian jalankan program.

MODUL V

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 48


Pemrograman Mobile Bahan Ajar

GRAFIK 2 DIMENSI

Tujuan :
1. Mahasiswa mampu mengetahui dan memahami dasar-dasar menggunakan canvas pada
eclipse android.
2. Mahasiswa mampu membuat tampilan grafik 2d pada eclipse android.

Pokok bahasan :
1. Menggambar grafik 2d di canvas pada eclipse
2. Menulis texs di canvas

Pada modul ini akan membahas penggunaan canvas pada eclipse.Canvas, sesuai
namanya adalah tempat untuk menggambar bentuk 2D. Dengan canvas, kita dapat
menggambar bentuk (lingkaran, kotak, garis, titik), menggambar text dan melakukan operasi
translate, scale, rotate. Paint digunakan untuk menyimpan style, warna dan informasi lainnya
yang dibutuhkan untuk menggambar.

Class Color digunakan untuk merepresentasikan warna. Android menggunakan 4


angka untuk alpha, red, green dan blue (RGB) dengan masing- masing rentang nilai 0 sd 255.
Alpha digunakan menyatakan transparansi: alpha 0 artinya transparan 100% .

cat.setColor(Color.argb(75, 255, 0, 0)); //alphpa,reg,gree,blue

Berikut adalah penerapan:


1. Buat project baru Grafik2d.
2. Tambahakan class ViewGrafik.
3. Pada class ViewGrafik .java tambahakan code berikut
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Paint.Style;
import android.graphics.Typeface;
import android.view.View;

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 49


Pemrograman Mobile Bahan Ajar
public class ViewGrafik extends View {
// RectF batas Layar (kiri,atas,bawah,kanan)
private RectF kotak1 = new RectF(100,100,300,200);
// kiri,atas,kanan,bawah
private RectF kotak2 = new RectF(200,25,300,75);
private RectF kotak3 = new RectF(300,210,400,300);
private RectF oval = new RectF(100,200,200,300);
//oval akan mengikuti rect
private RectF oval2 = new RectF(100,320,200,400); Paint cat= new
Paint();
protected void onDraw(Canvas c) {
//gambar kotak
cat.setColor(Color.argb(200, 247, 4, 4));
//alpha transparasi warna,red,green,blue
c.drawRect(kotak1,cat);
//gambar lingkaran cat.setColor(Color.BLUE);
c.drawCircle(60,60, 40, cat);
//kiri, atas,radius

//gambar kotak dengan ujung tumpul


c.drawRoundRect(kotak2, 10, 10, cat);
//memanggil lokasi kotak2,kiri-radius oval, kanan radius oval
//ukuran sebuah lingkaran adlah 360 derajat
// derajat dihitung dari derajat awal ditentukan ,lengkungan
akan mengikuti rect oval
//paramater ke 4 jika true garis penutup melewati titik pusat
//berikut dimulai dari 30 derajat, sepanjang 120 derajat
c.drawArc(oval, 30, 120, true,cat);
cat.setColor(Color.YELLOW);
//jika parameter ke-4 false maka garis akan melewati
//ujung ke ujung tanpa harus ke titik pusat
//menyebabkan efek spt stengah lingkaran
c.drawArc(oval2, 180, 180, false,cat);
//gambar garis
cat.setColor(Color.RED);

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 50


Pemrograman Mobile Bahan Ajar
c.drawLine(50,400,400,400,cat);
//kiri,atas,kanan,bawah
//gambar kotak kosong
cat.setColor(Color.CYAN);
cat.setStyle(Style.STROKE);
cat.setStrokeWidth(5); c.drawRect(kotak3,cat);
//gambar titik secara acak jika program direfreshmaka posisi
akan berubah
cat.setColor(Color.BLACK);
for (int i=0;i<10;i++) {
c.drawPoint( (float) Math.random()*500,
(float)Math.random()*500, cat);
}

//Menggunakan tulisan
cat.setColor(Color.RED);
//diisi dalam maupun outline
cat.setStyle(Style.FILL_AND_STROKE);
cat.setStrokeWidth(2); cat.setTextSize(35);
c.drawText("Hello World", 10, 500, cat);
//menggunakan font
cat.setTypeface(Typeface.create(Typeface.SERIF,Typeface.BOLD_IT
ALIC)
);
c.drawText("font serif italic_bold", 10, 550, cat);

}
public ViewGrafik(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

}
4. Pada mainActivity.java tambahkan code berikut untuk menampikan
dari class grapic view

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 51


Pemrograman Mobile Bahan Ajar

Berikut adalah hasilnya

Method drawText dapat digunakan untuk menambahkan teks di canvas, sedangkan Path dan
drawTextOnPath dapat digunakan untuk menggambar teks yang mengikuti jalur tertentu.
Untuk jelasnya berikut adalah contohnya:
1. Buat project baru beri nama GrafikPath
2. Tambahakan class ViewPath
3. Pada class ViewPath.java tambahakan code berikut.

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.view.View;
public class ViewPath extends View{ Paint cat= new Paint();
private Path path = new Path();

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 52


Pemrograman Mobile Bahan Ajar

protected void onDraw(Canvas c) { path.moveTo(10,85);


path.lineTo(250,150); path.lineTo(350,300);
cat.setTextSize(25);
//0,0 artinya tidak ada jarak antara tulisan dgn path (offset)
c.drawTextOnPath("penerapan path ", path, 0, 0, cat);
// gambar tulisan melingkar
//kosongkan path
path.reset();
//x,y,radius dan berlawan jarumjam (CCW) path.addCircle(250,
250, 50, Path.Direction.CCW); c.drawTextOnPath("ini mengikuti
lingkaran", path, 0, 0, cat);
}
public ViewPath(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

4. Pada mainAvtivity tamabahakan

5. Bila dijalankan

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 53


Pemrograman Mobile Bahan Ajar

Selenjutnya kita akan membuat app yang akan menggambar kotak ditempat pengguna
menyentuh layar. Buat project baru dan tambahkan class beri nama GraphicsView.

Berikut adalah isi dari kelas tersebut


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class GrapicView extends View {

public GrapicView(Context context) {


super(context);
}

public float posx=-1;


public float posy=-1;
private int offset=25;
private Paint cat = new Paint();

@Override
protected void onDraw(Canvas c) {
//clear screen cat.setColor(Color.BLACK);

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 54


Pemrograman Mobile Bahan Ajar
c.drawRect(0,0,c.getWidth(),c.getHeight(),cat);
//gambar kotak diposisi yang disentuh
if (posx!=-1) {
cat.setColor(Color.YELLOW);
c.drawRect(posx-offset,posy-offset,posy+offset,posx+offset,cat);

}
}

Pada main.java ketikan coding berikut


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

public class MainActivity extends Activity implements


OnTouchListener {

private GrapicView gv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gv=new GrapicView (this); gv.setOnTouchListener(this);
setContentView(gv);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 55


Pemrograman Mobile Bahan Ajar
return true;
}

@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN: //jari menyentuh layar
//passing posisi ke graphicsview
gv.posx = event.getX(); gv.posy = event.getY(); gv.invalidate();
//draw ulang break;
case MotionEvent.ACTION_MOVE: //bergerak
break;
case MotionEvent.ACTION_UP: //diangkat
break;
case MotionEvent.ACTION_CANCEL: //batal
break; default: break;
}
return true;

Bila dijalankan maka akan tampil seperti berikut

MODUL VI
SENSOR PROXIMITY DAN ACCELOMETER

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 56


Pemrograman Mobile Bahan Ajar

Tujuan :
1. Mahasiswa mampu mengetahui dan memahami sensor yang ada pada android.
2. Mahasiswa mampu membuat program penerapan sensorpada android

Pokok bahasan :
1. Dasar teori
2. Contoh program sensor android

1. Dasar teori
Sensor Proximity adalah sensor yang di gunakan untuk mendeteksi keberadaan
suatu objek tanpa kontak fisik. Manfaat dari proximity sensor salah satunya untuk
mematikan layar secara otomatis pada saat menelpon.

Pada smartphone android sensor ini apabila smartphone di dekatkan pada telinga saat
menelpon maka lampu layar dari smartphone akan mati secara otomatis. Jadi sensor ini
sangat penting untuk menghemat baterai saat pemakaian telepon.

Sensor Accelerometer adalah merupakan salah satu fitur yang di tanam pada
smartphone android yang biasanya berfungsi untuk menentukan derajat kemiringan dari
smartphone. Pada dasarnya fungsi sensor ini untuk mengubah tampilan layar dari posisi
landscape menjadi potrait ataupun sebaliknya, sehingga tampilan menu dan aplikasi yang
ada di smartphone akan menyesuaikan posisi dari smartphone.salah satu contoh yang sering
menggunakan sensor ini adalah aplikasi game, misal game dalam balapan mobil sehingga
kita cukup memiringkan smartphone saat belok ke kanan atau ke kiri.

2. Contoh penerapan sensor proxymity

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 57


Pemrograman Mobile Bahan Ajar

1. Buatlah project baru , beri nama SensorProximity


2. Buat dua gambar seperti berikut

3. Tempatkan gambar tersebut di directory file project , SensorProximity/res/drawable-


mdpi
4. Pada main.xml tambahkan imageview.

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

< Im ag eV ie w
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="157dp" android:src="@drawable/jauh"
/>
</RelativeLayout>

5. Pada mainActivity.java berikut adalah codenya


import android.os.Bundle;
import android.app.Activity;

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 58


Pemrograman Mobile Bahan Ajar
import android.view.Menu;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.widget.ImageView;

public class MainActivity extends Activity implements


SensorEventListener {
private Sensor
Manager sensormanager;
private Sensor sensor;
ImageView image;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

sensormanager=(SensorManager)getSystemService(SENSOR_SERVICE);
sensor=sensormanager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
image=(ImageView)findViewById(R.id.imageView1);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);
return true;
}
protected void onResume(){ super.onResume();
sensormanager.registerListener(this, sensor,
sensormanager.SENSOR_DELAY_NORMAL);
}

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 59


Pemrograman Mobile Bahan Ajar
protected void onPause(){ super.onPause();
sensormanager.unregisterListener(this);
}

public void onAccuracyChanged(Sensor sensor,int accuracy){


}

public void onSensorChanged(SensorEvent event){


if(event.values[0]==0){
image.setImageResource(R.drawable.dekat);
}else{
image.setImageResource(R.drawable.jauh);
}
}
}

6. Untuk menjalankan project ini diperlukan akses ke hardware dari device,


maka dari itu menjalankan program sebaiknya langsung pada device. Tampilan
awal adalah jauh, jika sensor di tutup maka akantampil dekat.

3. Penerapan sensor accelometer


Berikut contoh accelometer yang menampilkan kordinat 3 sumbu axis accelometer,
yaitu sumbu X,Y,Z seperti gambar berikut:

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 60


Pemrograman Mobile Bahan Ajar

1. Buat project baru beri nama SensorAcelo


2. Pada main.xml buat seperti berikut.
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="25dp"
android:layout_marginTop="89dp"
android:text="X Kordinat :" />

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_centerVertical="true"
android:text="Z Kordinat :" />

<TextView

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 61


Pemrograman Mobile Bahan Ajar
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView3"
android:layout_alignLeft="@+id/textView1"
android:layout_marginBottom="36dp"
android:text="Y Kordinat :" />

<TextView
android:id="@+id/xkoor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_marginLeft="46dp"
android:layout_toRightOf="@+id/textView1"
android:text="TextView" />

<TextView
android:id="@+id/ykoor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:layout_alignLeft="@+id/xkoor"
android:text="TextView" />

<TextView
android:id="@+id/zkoor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/ykoor"
android:layout_centerVertical="true"
android:text="TextView" />

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 62


Pemrograman Mobile Bahan Ajar
</RelativeLayout>

Gambar coding diatas

3. Berikutnya pada mainactivity.java


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.hardware.Sensor; // memanggil funsi API
sensor di android
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.widget.TextView;

public class MainActivity extends Activity implements


SensorEventListener
{

private SensorManager sensorManager;


TextView xCoor; // deklarasikan X axis objek TextView
yCoor; // deklarasikan Y axis objek TextView zCoor; //
deklarasikan Z axis objek

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

xCoor=(TextView)findViewById(R.id.xkoor); // buat X axis

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 63


Pemrograman Mobile Bahan Ajar
objek
yCoor=(TextView)findViewById(R.id.ykoor); // buat Y axis
objek
zCoor=(TextView)findViewById(R.id.zkoor); // buat Z axis
objek

sensorManager=(SensorManager)getSystemService(SENSOR_SERVIC
E);
// menambahkan listener. Listener untuk class ini adalah
accelerometer
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
// fungsi api yang dipakai untuk perubahan screen
orientation
SensorManager.SENSOR_DELAY_NORMAL);
}

@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;
}

@Override
public void onAccuracyChanged(Sensor sensor,int accuracy){

@Override
public void onSensorChanged(SensorEvent event){

// cek jenis sensor

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 64


Pemrograman Mobile Bahan Ajar
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
//jika menggunakan tipe data float atau double hasil
koordinat akan lebih spesifik.
int x=(int) event.values[0];
int y=(int) event.values[1];
int z=(int) event.values[2];

xCoor.setText("X: "+x); yCoor.setText("Y: "+y);


zCoor.setText("Z: "+z);
}
}
}

4. Jalankan program pada device,jika pada posisi rata maka hasilnya adalah

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 65


Pemrograman Mobile Bahan Ajar

MODUL VII
DATA BASE

Tujuan :
1. Mahasiswa mampu mengetahui dan memahami database pada android.
2. Mahasiswa mampu memahami kode program dasar untuk membangun program
berbasis android.

Pokok bahasan :
1. Database SqlLite.
2. Penerapan database pada android.

1. Dasar teori
Pada modul bagian ini kita akan membahas fasilitas untuk membuat database pada
android yang dikenal dengan SQLite. SQLite adalah salah satu software
embeddedyang sangat populer,kombinasi SQl interface dan penggunaan memory yang
sedikit.SQLite termasuk dalam android runtime ,sehingga setiap versi dari android
dapat membuat database dengan SQLite. Dalam sisitem android memiliki beberapa
teknik untuk menyimpan data. Teknik yang umum digunakan adlah:
1. Shared Preferences yaitu menyimpan data beberapa nilai dalam bentuk groups
key yang dikenal deng preferences
2. Files yaitu menyimpan data dalam file , dapat berupa menulis ke file atau
membaca file.
3. SQLite Databases yaitu menyimpan data dalam bentuk database.
4. Content Providers yaitu menyimpan data dalam bentuk content providers service.

Jika kita menggunakan Sqlite kitaharus mengcreate database , mendefenisikan tabel dan
inisialisai data. Kelas SQLiteOpenHelper menggunakan 3 metode dalam membuat dan
membuka data yaitu:
1. Constuctor , menyediakan representasi versi dari database dan skema databasse
yang digunakan.
3. Oncreate,mnyediakan SQLiteDatabase object yang kita gunakan dalam defenisi
tabel dan inisialisai data.
4. Onupgrade, menyediakan fasilitas konversi database dari database versi lama ke
database versi terbaru.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 66


Pemrograman Mobile Bahan Ajar

Pada database SQLite kita juga mengenal query data dan cursor. Query berfungsi
mengembalikan objeck cursor. Cursor adalah hasil dari query,yaitu satu baris
(record)ndari hasil query. Dengan cursor, Android bisa melakukan buffer hasil query
dengan efisien karena tidak perlu load data ke memory. Cursor menyediakan method
get*(), misalnya cursor.getCount(). Selain method get ada beberapa method pada cursor
yaitu:
1. MoveToFirst() : Memindahkan cursor ke baris pertama dari hasil query.
2. MoveToNext() : Memindahkan cursor ke baris selanjutnya
3. MoveToPrevious() : Memindahkan cursor ke baris sebelumnya
4. MoveToPosition() : Memindahkan cursor ke baris yang ditentukan.

2. Penerapan database android


Contoh program ini terdiri dari dua bagian, yaitu program yang menampilkan sebuah
form pengisian data dimana pengguna bisa memasukkan data kemudian menyimpannya
di dalam database.
1. Buat project baru beri nama DatabaseSQLite.
2. Buat baru layout beri nama Add.xml seperti berikut:
Berikut adalah codenya (Perhatikan idnya)

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

<TextView android:text="Nama"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>

<EditText android:text="" android:id="@+id/edAddNama"


android:layout_width="100dp"
android:layout_height="wrap_content">
</EditText>

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 67


Pemrograman Mobile Bahan Ajar

<TextView android:text="Nim"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>

<EditText android:text="" android:id="@+id/edAddNim"


android:layout_width="100dp"
android:layout_height="wrap_content">
</EditText>

<TextView android:text="KotaAsal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>

<EditText android:text="" android:id="@+id/edAddAsal"


android:layout_width="100dp"
android:layout_height="wrap_content">
</EditText>

<Button android:text="Simpan" android:id="@+id/btnAddSimpan"


android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>

3. Buat baru layout xml, Beri nama edit berikut adalalah codenya

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 68


Pemrograman Mobile Bahan Ajar

<TextView
android:text="Nama"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>

<EditText
android:text=""
android:id="@+id/edEditNama"
android:layout_width="100dp"
android:layout_height="wrap_content">
</EditText>

<TextView
android:text="Nim"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>

<EditText
android:text=""
android:id="@+id/edEditNim"
android:layout_width="100dp"
android:layout_height="wrap_content">
</EditText>

<TextView
android:text="KotaAsal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>

<EditText

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 69


Pemrograman Mobile Bahan Ajar
android:text=""
android:id="@+id/edEditAsal"
android:layout_width="100dp"
android:layout_height="wrap_content">
</EditText>

<Button
android:text="Simpan"
android:id="@+id/btnEditSimpan"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>

4. Pada main.xml isikan kode berikut:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Database SQLite"
/>
<ListView android:id="@+id/ListView01"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>

5. Setelah selesai membuat layoutnya kini mengisi sode untuk menjalankannya.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 70


Pemrograman Mobile Bahan Ajar

Buat class baru beri nama SQLHelper.java isikan code berikutt. Code ini
membuat databse dan tabel.

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class SQLHelper extends SQLiteOpenHelper{

private static final String DATABASE_NAME = "db.db";


private static final int DATABASE_VERSION = 1;

public SQLHelper(Context context) {


super(context, DATABASE_NAME, null,
DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table kota( id integer primary key
autoincrement, nama text null, " +"nim text null, asal text
null);";
Log.d("Data", "onCreate: " + sql);
db.execSQL(sql);
sql = "INSERT INTO kota (id, nama, nim, asal) VALUES (1,
'Yoga', '111', 'jkt');";
db.execSQL(sql);
sql = "INSERT INTO kota (id, nama, nim, asal) VALUES (2,
'Sukarta', '333', 'dps');";
db.execSQL(sql);

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 71


Pemrograman Mobile Bahan Ajar
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}

6. Tambahkan class baru lagi dan beri nama EditActivity dan isikan code
berikut:

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class EditActivity extends Activity {


protected Cursor cursor;
SQLHelper dbHelper;

Button btnEditSimpan;
EditText edEditNama;
EditText edEditNim;
EditText edEditKota;
@ Ov er ri de
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit);

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 72


Pemrograman Mobile Bahan Ajar

dbHelper = new SQLHelper(this);

edEditNama = (EditText) findViewById(R.id.edEditNama);


edEditNim = (EditText) findViewById(R.id.edEditNim);
edEditKota = (EditText) findViewById(R.id.edEditAsal);

SQLiteDatabase db = dbHelper.getReadableDatabase();

cursor = db.rawQuery("SELECT * FROM kota WHERE nama = '" +


getIntent().getStringExtra("nama") + "'",null);

cursor.moveToFirst();
if (cursor.getCount()>0)
{
cursor.moveToPosition(0);
edEditNama.setText(cursor.getString(1).toString());
edEditNim.setText(cursor.getString(2).toString());
edEditAsal.setText(cursor.getString(3).toString());
}

btnEditSimpan = (Button) findViewById(R.id.btnEditSimpan);


// daftarkan even onClick pada btnSimpan
btnEditSimpan.setOnClickListener(new
Button.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("update kota SET nama='" +
edEditNama.getText().toString()+"', " +"nim='"+
edEditNim.getText().toString() +"', " +"asal='" +
edEditAsal.getText().toString() + "' WHERE " + " nama = '" +
getIntent().getStringExtra("nama") + "'");
Toast.makeText(getApplicationContext(), "Berhasil",

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 73


Pemrograman Mobile Bahan Ajar
Toast.LENGTH_LONG).show();
MainActivity.ma.RefreshList();
finish();
}
});

}
}

7. Tambahkan lagi class baru dengan nama AddActivity berikut adalah kode nya:

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle; import android.view.Menu; import
android.view.MenuItem; import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button; import android.widget.EditText;
import android.widget.ListView; import android.widget.Toast;

public class AddActivity extends Activity {


protected Cursor cursor; SQLHelper dbHelper;

Button btnAddSimpan; EditText edAddNama; EditText edAddNim;


EditText edAddKota;

@ Ov er ri de
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add);

dbHelper = new SQLHelper(this);

edAddNama = (EditText) findViewById(R.id.edAddNama); edAddNim


= (EditText) findViewById(R.id.edAddNim); edAddKota =

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 74


Pemrograman Mobile Bahan Ajar
(EditText) findViewById(R.id.edAddAsal);

btnAddSimpan = (Button) findViewById(R.id.btnAddSimpan);


// daftarkan even onClick pada btnSimpan
btnAddSimpan.setOnClickListener(new
Button.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("insert into kota(nama, nim, asal) values('"
+ edAddNama.getText().toString()+"','"+
edAddNim.getText().toString() +"','" +
edAddAsal.getText().toString() + "')");
Toast.makeText(getApplicationContext(),
"Berhasil", Toast.LENGTH_LONG).show();
MainActivity.ma.RefreshList(); finish();
}

});

}
}

8. Pada main activity.java ketikan kode berikut

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu; import android.view.MenuItem;
import android.view.View;

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 75


Pemrograman Mobile Bahan Ajar
import android.widget.AdapterView; import
android.widget.ArrayAdapter; import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity { String[] daftar;


ListView ListView01; Menu menu;
protected Cursor cursor; SQLHelper dbHelper;
public static MainActivity ma;

@ Ov er ri de
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ma = this;

dbHelper = new SQLHelper(this); RefreshList();


}

public void RefreshList()


{
SQLiteDatabase db = dbHelper.getReadableDatabase();

cursor = db.rawQuery("SELECT * FROM kota",null);

daftar = new String[cursor.getCount()];


cursor.moveToFirst();
for (int cc=0; cc < cursor.getCount(); cc++)
{
cursor.moveToPosition(cc);
daftar[cc] = cursor.getString(1).toString();
}

ListView01 = (ListView)findViewById(R.id.ListView01);
ListView01.setAdapter(new ArrayAdapter(this,

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 76


Pemrograman Mobile Bahan Ajar
android.R.layout.simple_list_item_1, daftar));
ListView01.setSelected(true);
ListView01.setOnItemClickListener(new
OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2,
long arg3) {
final String selection = daftar[arg2];
final CharSequence[] dialogitem = {"Edit", "Delete"};

AlertDialog.Builder builder = new


AlertDialog.Builder(MainActivity.this);
builder.setTitle("Pilih ?");
builder.setItems(dialogitem, new
DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int item) {

switch(item){

case 0 :

Intent i = new Intent(getApplicationContext(),


EditActivity.class);
i.putExtra("nama", selection);
startActivity(i);

break;
case 1 :
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("delete from kota where nama = '"+selection+"'");
RefreshList();
break;
}

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 77


Pemrograman Mobile Bahan Ajar
}
});
builder.create().show();
}});

((ArrayAdapter)ListView01.getAdapter()).notifyDataSetInvalida
ted
();
}

@ Ov er ri de
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;

menu.add(0, 1, 0,
"Tambah").setIcon(android.R.drawable.btn_plus);
menu.add(0, 2, 0,
"Refresh").setIcon(android.R.drawable.ic_menu_rotate);
menu.add(0, 3, 0,
"Exit").setIcon(android.R.drawable.ic_menu_close_clear_cancel
);
return true;
}

@ Ov er ri de
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
Intent i = new Intent(MainActivity.this,
AddActivity.class);
startActivity(i);
return true;
case 2: RefreshList();
return true;
case 3: finish(); return true;

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 78


Pemrograman Mobile Bahan Ajar
}
return false;
}

Setelah selesai jalankan programnya. Akan tampil data inputan pertama yang diabuat yaitu
nama yoga dan sukarta.

Klik menu pada device untuk tambah , maka akan muncul seperti berikut:

Kemudian klik simpan, dan database bertambah.

Muhammad Syahputra Novelan, S.Kom, M.Kom Page 79

Anda mungkin juga menyukai