buku ajar mobile internet Android untuk siswa.unlocked.doc

147
ANDROID FOR MOBILE INTERNET APLICATION SEMESTER VII (2 SKS/ 3 Jam/Minggu) Penyusun : Drs. Yoyok Heru P.I., MT NIP. 196807081994031002 JURUSAN TEKNIK ELEKTRO PROGRAM STUDI TEKNIK TELEKOMUNIKASI POLITEKNIK NEGERI MALANG 2013

Transcript of buku ajar mobile internet Android untuk siswa.unlocked.doc

Page 1: buku ajar mobile internet Android untuk siswa.unlocked.doc

ANDROID FOR MOBILE INTERNET APLICATION

SEMESTER VII

(2 SKS/ 3 Jam/Minggu)

Penyusun:

Drs. Yoyok Heru P.I., MT NIP. 196807081994031002

JURUSAN TEKNIK ELEKTROPROGRAM STUDI TEKNIK TELEKOMUNIKASI

POLITEKNIK NEGERI MALANG2013

Page 2: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1

KATA PENGANTAR

Segala puji dan syukur disampaikan kepada Allah SWT, atas limpahan rahmat, karunia

dan cahaya petunjuk-Nya yang tiada tara, sehingga buku “ANDROID FOR MOBILE

INTERNET APLICATION” untuk matakuliah Mobile Internet Aplication di Program Studi

Jaringan Teknik Digital Telekomunikasi POLINEMA. Buku ini sebenarnya hanya dipakai untuk

kalangan internal POLINEMA, namun apabila ada dari saudara kita di luar POLINEMA yang

berminat menggunakan buku ini, dengan senang hati kami persilahkan. Sholawat dan salam

semoga tetap terkunjuk pada junjungan Nabi Agung Muhammad SAW, keluarga, sahabat,

thabiit, dan thabiin, dengan ghirroh perjuangan yang tinggi dan keikhlasan yang mendalam

dalam memberantas kebodohan dan menegakkan kebenaran di muka bumi ini.

Buku ajar ini dimaksudkan untuk membantu dan memfasilitasi peserta didik dalam

mempelajari mobile internet khususnya menggunakan android. Salah satu faktor yang

menentukan keberhasilan sebuah pembelajaran di kelas adalah buku ajar oleh karena itu

keberadaan dan pemberdayaan buku ini menjadi penting dan merupakan salah satu rujukan

dalam menempuh matakuliah pemrograman computer. Sistem yang ditekankan dalam buku ini

lebih ditekankan pada proses latihan dasar dalam membuat program, dengan tujuan

membangkitkan daya nalar dan logika Mahasiswa.

Penulis berharap semoga buku ini dapat bermanfaat bagi mahasiswa program studi T.

Telekomunikasi yang menempuh matakuliah mobile internet aplication maupun semua

pembaca buku ini. Terimaksih bagi siapa saja yang sudi memberikan saran dan kritik atas

penulisan buku ini, karena kami yakin bahwa masih banyak kekurangan alam penuisan buku

ini.

Malang, Nopember 2013

Penulis

Page 3: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2

DAFTAR ISI

LEMBAR PENGESAHANKATA PENGANTAR 1DAFTAR ISI 2DAFTAR GAMBAR 4PENDAHULUAN 5BAB I ARSITEKTUR DAN STRUKTUR ANDROID 17

I.1 Tujuan 17I.2 Teori Dasar 17I.2.1 Arsitektur Android 17I.2.2 Perangkat Lunak Yang Diperlukan 20I.3 Sekilas Instalasi Android 20

BAB II MEMBUAT SEBUAH PROJECT 24II.1. Tujuan 24II.2. Teori Dasar 24II.2.1 WorkBench atau Lembar Kerja 24II.3 Latihan Membuat Aplikasi 26II.4. SOAL (UJI KEMAMPUAN) 31

BAB III PENGGUNAAN BUTTON 32III.1. Tujuan 32III.2. Teori Dasar 32III.2.1 Perbedaan OnClickListener dengan Onclick Biasa pada Button 32III.2.2 OnClickListener() 32III.3. Latihan Program 33III.4. SOAL (UJI KEMAMPUAN), 36

BAB IV CHECK BOX DAN RADIO BUTTON 37IV.1. Tujuan 37IV.2. Teori Dasar 37IV.2.1 CHECK BOX 37IV.2.2 Radio Group dan Button 38IV.3. LATIHAN PROGRAM 39IV.4. SOAL (UJI KEMAMPUAN) 46

BAB V SPINER 47V.1. Tujuan 47V.2. Teori Dasar 47V.3. LATIHAN PROGRAM 48V.4. SOAL (UJI KEMAMPUAN) 51

BAB VI BEKERJA DENGAN BEBERAPA LAYAR 52VI.1 Tujuan 52VI.2 Teori Dasar 52VI.3. LATIHAN PROGRAM 53VI.4. SOAL (UJI KEMAMPUAN) 57

BAB VII GRAFIK KLASIK DI ANDROID 58VII.1. Tujuan 58VII.2. Teori Dasar 58VII.2.1 OPEN GL ES 58VII.2.2 TITIK, GARIS, DAN POLYGON 60VII.3. LATIHAN PROGRAM 61VII.3.1 Implementasi grafik pada bentuk klasik 61VII.4. SOAL (UJI KEMAMPUAN) 63

BAB VIII IMAGE ATAU CITRA 64

Page 4: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 3

VIII.1. Tujuan 64VIII.2. Teori Dasar Fungsi 64VIII.2.1 Image 64VIII.2.2 Memanggil Image 64VIII.2.3 Menampilkan Image 65VIII.3. LATIHAN PROGRAM 65VIII.3.1 Menampilkan Gambar antena 65VIII.3.2 Latihan Pemrosesan Citra 67VIII.4. SOAL (UJI KEMAMPUAN) 72

BAB IX DATABASE SEDERHANA 73IX.1. Tujuan 73IX.2. Teori Dasar 73IX.3. LATIHAN PROGRAM 74IX.4. SOAL (UJI KEMAMPUAN) 78

BAB X PROJECT DAN Presentasi 79DAFTAR PUSTAKA 81

Page 5: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4

DAFTAR GAMBAR

Gambar 1. Wireless IP 7Gambar 2. Arsitektur Jaringan semua IP 8

Gambar 3. Hirarki Dari Jaringan Heterogen Yang Terintegrasi 8Gambar 1.1 Keterkaitan antara Industi, Developer, dan User 17Gambar 1.2. Integrasi, Extended, dan Replace 18Gambar 1.3 Android Layers 18Gambar 1.4. bahasa program yang menangani per Layer 20Gambar 1.5. Konfigurasi Workspace 21Gambar 1.6. Tampilan Awal Eclipse 21Gambar 1.7. Workbench, dari Eclipse 22Gambar 1.8. Kotak Dialog Tempat Menginstall Plug-in Pada Eclipse 22Gambar 1.9. Plug-in Repository 23Gambar 2.0 WorkBench atau Lembar kerja 24Gambar 2.1. Kotak Dialog Nama Project, Aplikasi, Paket,... 26Gambar 2.2. Seting Icon Aplikasi 27Gambar 2.3. Jendela Pengaturan Aktivitas 27Gambar 2.4 Dialog Activity 28Gambar 2.5. Lembar Kerja 29Gambar 2.6. Latihan Membuat Desain 31Gambar 3.1. GraphicLayout Activity Button1 33Gambar 4.1. elemen CheckBox 37Gambar 4.2. GraphicLayout Contoh Penggunaan CheckBox 39Gambar 4.3. Desain Latihan Radio Button 42Gambar 5.1. Tampilan Spinner 47Gambar 5.2. Desain Penggunaan Komponen Spinner 48Gambar 6.1. Membuat Class Baru 52Gambar 6.2 Membuat Aplikasi 53Gambar 6.3. Nama Aktivitas 53Gambar 6.4. Desain Layar Utama 54Gambar 6.5 Membuat Screen baru “layar2.xml” 54Gambar 6.6. Desain screen layar2 55Gambar 6.7. Menambah Script pada AndroidManifest 55Gambar 6.8. Membuat Class Baru “Layar1” 56Gambar 8.1 Desain Panggil Gambar 65Gambar 8.2. Desain Aplikasi project Gambar2 67

Page 6: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 5

PENDAHULUAN

Konsep Teknologi Mobile dan Mobile Internet

Ada dua istilah yang mirip tetapi mempunyai konsep perbedaan yang mendasar yaitu

“The Internet on Mobile” dan “The Mobile Internet”. Pada kedua istilah ini mempunyai

kesamaan requirement, yaitu sama-sama menggunakan media wireless. The Internet on

Mobile di artikan bahwa semua bentuk yang berkaitan dengan internet seperti program-

program aplikasi under web, browsing, e-mail, dan yang lainnya berada pada mobile device

(mobile phone, blackbery, tablet,…), dan dapat diakses melalui mobile device. The Mobile

Internet di artikan bahwa internet bisa diakses secara mobile, tidak terbatas pada mobile

device saja, sebagai contoh dekstop atau laptop yang menggunakan broadband modem

(Indosat, XL, Telkom cell,…) dimana aksesnya dapat dilakukan dengan cara mobile.

Buku tentang “The Mobile Internet” menyebutkan bahwa mobile internet mempunyai

potensi perkembangan yang sangat pesat, hal ini dibuktikan dalam sejarah pemakian mobile

internet di Afrika, Amerika, Australia, dan Asia. Akhir-akhir ini masyarakat di Afrika lebih banyak

mempunyai mobile phones ketimbang komputer atau sambungan internet yang menggunakan

kabel, akhirnya lebih banyak sambungan internet yang diakses melalui mobile phone dari pada

sambungan internet kabel. ITU melaporkan bahwa selama kuartal ke tiga (tiga bulan terakhir)

tahun 2009 jumlah rakyat Afrika yang mengakses internet melalui sambungan mobile phone

lebih banyak ketimbang jumlah masyarakat yang mengakses internet melalui sambungan

kabel.

Ada sebuah istilah yang sangat terkenal dan sering digunakan yaitu “Mobile

Computing”, istilah ini menggambarkan penggunaan aplikasi pada piranti yang berukuran kecil,

portable, serta dukungan komunikasi dengan nirkabel. Dalam hal ini piranti yang termasuk

mobile computing adalah: laptop dengan sambungan internet nirkabel, mobile phone, tablet,

wearable computer, PDA dengan bloetooth atau IRDA.

Tabel 1 di bawah ini menunjukkan perkembangan teknologi mobile phone:

Page 7: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6

No. Generasi Standar Kemampuan

1 0G

Push to Talk, Mobile TelephoneSystem, Improved Mobile TelephoneSystem, Advanced Mobile TelephoneSystem (900 Mhz, In japan)

2 1G

Nordic Mobile Telephone (1rst cell phone in jerman), Advanced MobilePhone System (analog mobile phone), Analog, Band frekuensi 800 MHz

radio sinyal bersifat analog, Pada frekuensi 800 Mhz & 400Mhz, Dimulai dari Chicago, dikomersilkan 1983

3 2G

Digital System, Global System for Mobile communications (GSM: originally from Groupe Spécial Mobile,The most standard cell phone, SMS), Integrated Digital Enhanced Network(iDEN): (Developed by Motorola, Uses Time Division Multiple Access), Digital AMPS, code division multiple access(CDMAone), Menggunakan frek: (800,900, 1800, 1900 MHz)

radio sinyal bersifat digital, dimulai dari maret 1993, Menggunakan TDM (Time Division Multiplexing), Frekuensi800 – 1900 Mhz, DikenalnyaGSM dan CDMA

4 2.5GGeneral Packet Radio System, 56 –114 Kbps, for :(SMS, MMS, WAP, Internet)

digital high speed

5 2.75GCDMA2000, Enhanced Data rates forGSM Evolution (EDGE) or EnhancedGPRS (EGPRS)

digital high speed

6 3G

Wideband Code Division Multiple Access (WCDMA), Universal Mobile Telecommunication System, CDMA2000, WiMAX (WorldwideInteroperability for Microwave Access)

digital high speed

7 3.5GHSDPA (High-Speed Downlink PacketAccess) : (1.8, 3.6, 7.2 and 14.4Mbit/s)

8 4G Ultra Mobile Broadband (UMB) IPv6, voice, digital high speed

Konsep Wireless IP

Konsep dasar dari wireless IP adalah pertemuan yang kuat dari layer interworking

jaringan dan konektivitas tanpa batas dengan atau tanpa mobilitas dalam sebuah jaringan

yang heterogen dengan ketentuan konektivitas tanpa batas melalui subdomain jaringan.

Kombinasi yang terbaik antara teknologi wireless dan IP telah membawa era teknologi wireless

IP. Wireless IP akan diperoleh cost-effective, kualitas yang bagus, layanan multimedia berbasis

IP, dan voice melalui IP. Gambar (1) menunjukkan jaringan wireless IP.

Page 8: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7

Gambar 1. Wireless IP

Operator dan vendor telah menyadari bahwa ada keuntungan ekonomi yang besar dengan

memultiplexing semua jenis traffic melalui jaringan packet switched bukan melalui jaringan

circuit switched, hal ini di dukung oleh core network dan radio access network dunia, dengan

membangun infrastruktur yang didasarkan pada standar generasi 3G.

Arsitektur baru akan memerlukan jaringan cerdas yang didasarkan pada sebuah paradigma

bahwa setiap user menggunakan mobile internet, sehingga jaringan harus mampu membawa

semua jenis traffic, akhirnya jaringan sangat membutuhkan QoS yang sangat bagus, selain

kemampuan layanan yang handal.

IP telah muncul sebagai pemersatu protokol layer jaringan yang bekerja melalui layer

link dan layer fisik yang heterogen. Upaya yang dilakukan untuk memastikan bahwa QoS,

signaling, routing, manajemen sumber daya, mobilitas, dan fungsi keamanan dan fitur yang

disediakan pada layer IP dan di atas dan dipetakan sesuai dengan lapisan bawah sehingga

menjadi konsisten dan bermakna end-to-end. Gambar (2) menunjukkan arsitektur semua IP

dimana aksesnya melalui sebuah jenis teknologi nirkabel yang cerdas yang berada pada

access dan backbone utama yang menyediakan paket transport. Fungsi-fungsi khusus,

feature-feature, dan kemampuan dari jaringan dan layanan akan didukung oleh server-server

khusus yang potensial.

Page 9: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 8

Gambar 2. Arsitektur Jaringan semua IP

Kebanyakan akses jaringan wireless saat ini adalah point-to-point, jaringan inti dan

backbone kebanyakan adalah bertipe mesh. Tipe point-to-point mempunyai kerugian

konektivitas tidak handal, dan distribusi traffic yang tidak balance yang menghasilkan

pemanfaatan yang rendah dari sumber-sumber jaringan. Sangat jelas bahwa topologi mesh

untuk jangka panjang menjadi disukai, dan batas-batas buatan akses jaringan radio (RAN) dan

jaringan inti (CN) akan dihilangkan, gambar (3) menunjukkan hirarki dari jaringan heterogen

yang terintegrasi,

Gambar 3. Hirarki Dari Jaringan Heterogen Yang Terintegrasi

Page 10: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 9

Distribusi jaringan flat saat ini exist saat ini pada jaringan backbone, yang akan di teruskan

pada saluran koneksi pemakai melalui wireless. Peningkatan akses jaringan heterogen akan

terus bertambah, lapisan IP yang akan mengintegrasikan layer secara bersama akan

membutuhkan kesepakatan dengan topologi-topologi akses yang berbeda, dari topolodi mesh

ke point-to-point, dari bandwith dedicated ke shared bandwith, dan dari servis layanan yang

terbaik yang menggaransi QoS nya melalui teknologi link layer yang berbeda.

Operating System

Secara umum pengertian dari sistem operasi adalah suatu interface berupa software

yang menjadi perantara antara user dan device yang digunakan untuk mengontrol/memanage

device maupun aplikasi di dalamnya. Bukan hanya komputer yang mempunyai system operasi,

mobile device (ponsel, tablet, BB,…) juga punya sistem operasi. Seperti halnya sistem operasi

pada komputer, sistem operasi mobile adalah software utama yang melakukan menejemen

dan kontrol terhadap hardware secara langsung serta manajemen dan mengotrol software

aplikasi sehingga aplikasi tersebut dapat bekerja. Sehingga suatu system operasi mobile

(mobile operating system) akan bertanggung jawab dalam mengoperasikan berbagai fungsi

dan fitur yang tersedia dalam perangkat mobile tersebut seperti, schedulling task, keyboard,

WAP, email, text message, sinkronisasi dengan aplikasi dan perangkat lain, memutar musik,

camera, dan mengontrol fitur-fitur lainnya, dibawah ini beberapa contoh sistem operasi pada

mobile phone:

1. Sistem Operasi Windows Mobile.

Windows Mobile adalah sistem operasi seluler yang ditawarkan oleh Microsoft, OS

windows mobile biasanya hanya digunakan pada ponsel jenis PDA .Versi terbaru yang

sedang dikembangkan Microsoft adalah Photon, yang didasarkan pada Windows

Embedded CE 6.0 dan diharapkan dapat mengintegrasikan versi smartphone dan

Pocket PC. Keunggulan windows mobile adalah :

- Mempunyai kompatibilitas yang tinggi terhadap aplikasi dan fiture yang berbasis

windows, termasuk dengan jenis komputer yang beroperating sistem windows.

- Windows Mobile menawarkan berbagai fitur unggulan seperti Mobile Blog, GPS,

menonton televisi, serta Mobile Database.

Page 11: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1010

Kelemahan Windows Mobile adalah bersifat tertutup sehingga sulit bagi software

developer independen untuk menciptakan aplikasi-aplikasi baru.

2. Sistem Operasi Palm.

Palm adalah pesaing utama dari sistem operasi Windows Mobile di awal tahun 2000-an

lalu. Palm juga merupakan pelopor sistem operasi yang handal digunakan oleh sebuah

ponsel pintar. Keunggulan OS Palm adalah tidak memerlukan banyak memory untuk

dapat menjalankannya dengan baik. Dengan kapasitas sebesar 16 MB misalnya sudah

cukup untuk menyuntikkan berbagai fungsi aplikasi tambahan

3. Sistem Operasi Symbian.

Symbian adalah sistem operasi yang dikembangkan oleh Symbian Ltd. yang dirancang

untuk peralatan bergerak mobile. OS Symbian yang didirikan sejak tahun 1998 dulunya

digunakan oleh Nokia dan hingga saat ini telah digunakan oleh banyak Vendor

Smartphone. Symbian telah mengalami perkembangan yg sangat cepat dan hingga

sekarang tetap banyak digunakan sebagai OS kategori Smartphone. Symbian

merupakan perusahaan independen hasil kolaborasi vendor2 raksasa pd masa itu

yakni Ericsson, Nokia, Motorola, dan Psion. Nokia sebagai pemegang saham terbesar

dengan angka 47,9 persen.

4. Sistem Operasi Java.

OS Java biasanya diterapkan pada jenis yang telah polyponik namun kelas monoponik

pun juga telah tersedia. Biasanya terdapat pada ponsel tipe lama, namun tipe baru

sekalipun saat ini biasanya juga telah mendukung untuk fitur ini. Harga untuk ponsel

jenis ini lebih terjangkau. Java sebagai middleware yang diperkenalkan pada ponsel,

memberikan jawaban yang cukup memuaskan. Dengan adanya Java, seseorang dapat

membuat aplikasi bermodalkan komputer dan sebuah aplikasi notepad. Sayangnya,

kemampuan Java sebagai middleware mengakibatkan terbatasnya feature hardware

ponsel yang dapat diakses oleh sebuah aplikasi berbasis Java.

5. Sistem Operasi Android.

Android adalah sistem operasi terkini sebuah ponsel besutan perusahaan raksasa

Google. Sistem operasi ini sudah mulai digunakan oleh vendor terkemuka dibidang

PDA berlayar sentuh yaitu HTC diikuti oleh vendor lokal IMO yang barangkali ingin

mencoba sedikit peruntungannya. Mengandalkan berbagai fitur milik Google yang saat

ini menjadi ancaman bagi perusahaan lainnya sekelas Microsoft dan Yahoo. Android

berusaha mencuri perhatian melalui Maps, Search hingga browsernya yang diklaim

jauh lebih ringkas dan cepat. Perkembangan OS android sangat pesat, karena sistem

operasi ini bersifat open sehingga para developer mudah untuk otak-atik dan

mengimplentasikan hasil eksperimennya.

6. Sistem Operasi Linux

Page 12: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1111

Linux adalah salah satu sistem operasi yang kerap digunakan oleh vendor Motorola.

Baik dalam seri ROKR maupun seri PDA layar sentuh mereka. Namun keterbatasan

dukungan fungsi aplikasi tambahan dan user interface yang kurang familiar

menyebabkan sistem operasi ini timbul tenggelam dalam dunia ponsel.

OS Linux telah memasuki dunia OS sejak lama tapi digunakan untuk Smartphone

hanya sejak tahun 2003, hingga kini Smartphone yang menggunakan OS Linux dan

menjadi terkenal hanya dengan brand Motorola saja. Tapi sebenarnya ada banyak

Vendor ponsel yang sedang mengembangkan ponsel atau PDA dan Smartphone

berbasis Linux, karena OS Linux untuk smartphone masih baru maka sebenarnya

belum banyak pihak ketiga yang ikut mengembangkan programnya. Hal ini sedikit

membuat kata Smartphone kurang cocok untuk ponsel yang memiliki dukungan

ataupun berbasisLinux.

7. Sistem Operasi BlackBerry.

Perusahan telekomunikasi asal Canada, Reserch in Motion (RIM), mengembangkan

perangkat komunikasi bergerak. Awalnya produk mereka adalah memproduksi layanan

penyeranta (Pager) dua arah, namun dalam perkembangannya perusahaan ini

membuat terobosan baru dengan menciptakan pearangkat Blackberry yang terkenal

dengan layanan push-email, dan sekarang blackberry berubah menjadi smartphone

yang memiliki berbagai fungsi seperti, GPS, internet mobile, serta dapat mengakses

Wi-FI. RIM sebagai developer untuk sistem operasi blackberry telah mengeluarkan

sistem operasi baru dengan salah satu aplikasi yang tertanam didalamnya adalah

Document to Go versi trial buatan DataViz, suatu aplikasi yang memiliki fungsi

officeseperti Word to Go, Presenter to Go yang otomatis memiliki Sheet to Go sebagai

aplikasi Spreadsheet.

8. Sistem Operasi Maemo.

Pernah dengar OS Maemo? Maemo adalah sebuah sistem operasi terbaru dari sebuah

vendor besar Nokia yang digunakan oleh device terbatas Internet Tablet yaitu seri

N770, N800, N810 dan N900. Sistem operasi ini lebih mengkhusus diperuntukkan bagi

mereka yang lebih mengutamakan aktifitas internetan dan browsing ketimbang voice

atau komunikasi. Tak heran dalam setiap rilis devicenya, Nokia selalu mengutamakan

resolusi layar yang besar dan lebar lengkap dengan layar sentuh plus keypad

QWERTY dalam bentuk slide.

SEJARAH DAN ALASAN PENGGUNAAN ANDROID

Android Inc, adalah sebuah perusahaan software kecil yang didirikan pada bulan

Oktober 2003 di Palo Alto, California, USA. Didirikan oleh beberapa senior di beberapa

Page 13: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1212

perusahaan yang berbasis IT & Communication; Andy Rubin, Rich Miner, Nick Sears dan Chris

White. Menurut Rubin, Android Inc didirikan untuk mewujudkan mobile device yang lebih peka

terhadap lokasi dan preferensi pemilik. Dengan kata lain, Android Inc, ingin mewujudkan

mobile device yang lebih mengerti pemiliknya. Sejarah Android dimulai dari sini. Konsep yang

dimiliki Android Inc, ternyata menggugah minat raksasa Google untuk memilikinya. Pada bulan

Agustus 2005, akhirnya Android Inc diakuisisi oleh Google Inc. Seluruh sahamnya dibeli oleh

Google. Nilai pembelian Android Inc ini oleh google tidak ada release pastinya. Tetapi banyak

yang memperkirakan nilai pembelian Android Inc oleh Google adalah sebesar USD 50 juta.

Saat itu banyak yang berspekulasi, bahwa akuisisi ini adalah langkah awal yang dilakukan

Google untuk masuk ke pasar mobile phone. Sejarah android Andy Rubin, Rich Miner, Nick

Sears dan Chris White tetap di Android Inc yang dibeli Google, sehingga akhirnya mereka

semua menjadi bagian dari raksasa Google dan sejarah android. Saat itulah mereka mulai

menggunakan platfor linux untuk membuat sistem operasi bagi mobile phone.

Sejarah Android dan Open Handset Alliance

Pada bulan nopember 2007, terbentuklan Open Handset Alliance yang merupakan konsorsium

dari beberapa perusahaan : Broadcom Corporation, Google, HTC, Intel, LG, Marvell

Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile

dan Texas Instruments. Mereka sepakat untuk membuat open standart bagi mobile phone.

Pada hari yang sama, mereka mengumumkan produk pertama mereka, yaitu Android yang

berbasis Linux kernel versi 2.6. Bulan Desember 2008, bergabunglah 14 perusahaan lainnya

yaitu : ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd,

PacketVideo, Softbank, Sony Ericsson, Toshiba Corp dan Vodafone Group Plc. Hal ini

merupakan langkah besar dalam sejarah Android untuk menjadi pemimpin dalam sistem

operasi untuk mobile phone.

Berikut ini tahapan peluncuran sistem operasi Android yang diciptakan Google:

Android versi 1.1

Pada 9 Februari 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi

dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara),

Page 14: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1313

pengiriman pesan dengan Gmail, pemutar Youtube, mendukung Wifi juga Bluetooth,

dan pemberitahuan email.

Android Versi 1.5 (Cupcake)

Pada 30 April 2009, Google kembali merilis telepon seluler dengan menggunakan

Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat

beberapa pembaruan termasuk juga penambahan beberapa fitur dalam versi ini, yakni

kemampuan merekam dan menonton video, mengunggah video ke Youtube dan

gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan

terhubung secara otomatis ke headset Bluetooth, animasi layar pada saat perpindahan

anatar layar, rotasi layar secara otomatis, kemampuan copy paste pada saat di browser

internet, dan keyboard pada layar yang dapat disesuaikan dengan sistem, juga

kemampuan keyboard dalam memprediksi kata-kata.

Android Versi 1.6 (Donut)

Donut (versi 1.6) dirilis pada 15 September 2009 dengan menampilkan proses

pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan

kontrol applet VPN. Fitur lainnya adalah integrasi antara galeri dengan kamera dengan

camcorder, mendukung CDMA / EVDO - VPN, indikator pemakaian baterai,

kemampuan dial kontak, teknologi text to change speech (tidak tersedia pada semua

ponsel), pengadaan resolusi VWGA.

Android Versi 2.0 (Eclair)

Pada 26 Oktober 2009 kembali diluncurkan ponsel Android dengan versi 2.0/2.1

(Eclair), perubahan yang dilakukan adalah kemampuan “turn by turn” pada google

maps, kemampuan sync untuk email dan contact, live wallpapers, peningkatan

kecepatan hardware, browser mendukung HTML5, fitur kamera diperbaruhi,

mendukung berbagai ukuran serta pixel layar, dan mendukung Bluetooth 2.1.

Android Versi 2.2 (Froyo: Frozen Yoghurt)

Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan

umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1,

Page 15: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1414

kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript

engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada

browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan

kemampuan auto update dalam aplikasi Android Market.

Android Versi 2.3 (Gingerbread)

Pada 6 Desember 2010, Android versi 2.3 (Gingerbread) diluncurkan. Perubahan-

perubahan umum yang didapat dari Android versi ini antara lain pada home screen

dapat dipasang shortcuts, mendukung portable wifi hotspot, kemampuan disable

jaringan internet lewat smartphone, mendukung adobe flash, peningkatan kemampuan

permainan (gaming), layar antar muka (User Interface) didesain ulang, download

manager baru, dukungan format video VP8 dan WebM, efek audio baru (reverb,

equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near

Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.

Android Versi 3.0 (Honeycomb)

Pada tanggal 22 Februari 2011, Android Honeycomb dirancang khusus untuk tablet.

Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada

Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga

mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk

grafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah Motorola

Xoom. Adapun fitur yang diperbaruhi, seperti kemampuan multitasking yang

disederhanakan, home screen yang dapat diubah sesuka hati, peningkatan kinerja

hardware, dapat meng-enkripsi semua data pemakai, dan masih banyak lagi.

Android versi 4.0 (Ice Cream Sandwich)

Diumumkan pada tanggal 19 Oktober 2011, membawa fitur Honeycomb untuk

smartphone dan menambahkan fitur baru termasuk membuka kunci dengan

pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, terpadu kontak

jaringan sosial, perangkat tambahan fotografi, mencari email secara offline, aplikasi

dapat diakses langsung lewat lock screen, dapat menjalankan aplikasi browser google

Page 16: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1515

chrome, dapat menutup aplikasi yang ada di background, kemampuan memberikan

peringatan pemakaian data yang melewati batas, dan berbagi informasi dengan

menggunakan NFC.

Android Versi 4.1 (Jelly Bean)

Google mengumumkan peluncuran Android versi 4.1 (Jelly Bean) pada tanggal 27 June

2012, dengan membawa beberapa kelebihan diantaranya: Peningkatan beberapa

fungsi dan performa dari User Interface, peningkatan performa tersebut termasuk

"Project Butter", dimana semakin meningkatnya performa responsifitas dari android

tersebut, maka akan lebih ringan juga halus dalam pengoperasiannya. Juga khusus

untuk Tablet akan memiliki kelebihan “Dual Boot”. Dimana tablet pertama yang

memakainya adalah Nexus 7, yang diluncurkan pada tanggal 13 Juli 2012.

Android Versi 4.2 (Jelly Bean)

Google pada awalnya berencana untuk mengumumkan Jelly Bean 4.2 pada sebuah

acara di New York pada tanggal 29 October 2012, akan tetapi terpaksa ditunda akibat

“Badai Sandy”. Pada akhirnya pihak Google mengganti rencana “Live Event” dengan

hanya “Press Release”, dengan membawa "A new flavor of Jelly Bean". Perangkat

pertama yang Android 4.2 adalah LG Nexus 4 dan Samsung Nexus 10, yang mana

diluncurkan pada tanggal 13 November 2012. Pada versi ini ada beberapa peningkatan

fitur, seperti notifikasi pada waktu download, dimana akan diketahui berapa lama waktu

perkiraan untuk download tersebut selesai. Juga akan ada nada baru untuk “wireless

charging” dan “low battery”. Animasi pada galeri akan lebih cepat loading nya.

Android Versi 5.0 (Key Liem Pie)

Android 5.0 adalah suksesor dari Android 4.x (Jelly Bean), yang secara umum

dirumorkan dengan nama Key Lime Pie, meskipun belum ada pernyataan resmi

mengenai hal ini. Pada February 2013, dokumen yang bocor dari pabrik semikonduktor

(Qualcomm) menyatakan bahwa Key Lime Pie akan diluncurkan pada kuartal kedua

tahun 2013. Kemungkinan akan membawa peningkatan seperti pengintegrasian social

media, built in video chat, dll.

Page 17: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1616

Sejarah keberadaan android dan perkembangannya menggambarkan betapa pesat minat

masyarakat terhadap device yang berbasis android, sehingga muncul beberapa alasan

penggunaan android pada matakuliah ini, diantaranya adalah:

1. Sangat memasyarakat

2. Pengembangan dari JAVA yang basisnya adalah C++, yang diajarkan pada semester

sebelumnya.

3. Open source

4. Library nya sangat kaya, sehingga untuk eksperimen tentang pengolahan citra, data

base, komunikasi data, pemrosesan sinyal, dan yang lain mahasiswa tidak mengalami

kesulitan

Page 18: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1717

BAB IARSITEKTUR DAN STRUKTUR ANDROID

I.1 TUJUAN

Tujuan latihan program pertemuan pertama ini adalah,

1. Mahasiswa mengenal struktur dan arsitektur android

2. Mahasiswa memahami komponen pendukung android untuk membuat aplikasi

3. Mahasiswa memahami cara install android

I.2 TEORI DASAR

I.2.1 Arsitektur Android

Android merupakan software yang full stack sebagai operating system, middleware,

aplikasi, dan IDE. Android juga full open dalam source dan ideologi, dengan user controll nya

kita dapat membuat aplikasi yang sesuai, industri menyediakan fungsi-fungsi dalam library nya

yang diperuntukkan pengembang dan user, Sehingga ada link antara user, pengembang, dan

industri, ditunjukkan oleh gambar 1.1. dibawah:

Gambar 1.1 Keterkaitan antara Industi, Developer, dan User

Keterkaitan yang saling menguntungkan antara industri, user, dan pengembang dapat dilihat

pada tabel 1.1 dibawah:

No. Industri Pengembang User

1 Software Stack open source

berbasis Linux Kernel 2.6

Pengembang tidak memer-

lukan ijin untuk otak-atik

aplikasi

Pengguna mempunyai

kontrol dari apa yang di-

eksperimenkan

2 Sumber tersedia setelah

perkumpulan sekitar 45

industri konsorsium (Open

Handsets Alliance)

mengadakan kesepakatan I

Tidak ada yang

disembunyikan atau

diistimewakan pada

framework API nya

User dapat mengontrol

apa yang telah diinstallnya

3 Setiap orang akan dapat

membangun sistem citra

Dapat mengintegrasi, mem-

perluas, dan menumpuki,

komponen yang ada

dapat memilih default atau

extended

Page 19: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1818

Yang dimaksud dengan integrasi, extend, dan menumpuki diperlihatkan seperti gambar 1.2

dibawah:

Gambar 1.2. Integrasi, Extended, dan Replace

Inti dari system service android adalah Linux versi 2.6, karena satu-satunya kernel yang

digunakan oleh android adalah kernelnya Linux, gambar 1.3 menunjukkan layer yang ada pada

android:

Gambar 1.3 Android Layers

Page 20: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 1919

Gambar 1.3 menunjukkan bahwa system core layanan android menggunakan kernel linux,

sehingga untuk interface antara I/O port, I/O device, dan Mobile Device yang menangani

adalah Kernel Linux. Untuk RunTime ada dua komponen utama yaitu Core Libraries yang

sekarang dipegang langsung oleh Google; didalam core library ini terdapat fungsi-fungsi

dengan bahasa java, dan Dalvic Virtual Machine yang berfungsi sebagai emulator dari device

mobile yang di tuju, dimana DVM bertugas sebagai emulator yang memvirtualkan hasil running

dari program aplikasi sebelum aplikasi tersebut di running di device mobile. DVM dasar

licensinya adalah Java , registernya berbasis VM, eksekusi file dalam bentuk format (*.dex)

diksekusi oleh Dalvik, yang merupakan hasil konversi classes menjadi format .dex oleh DX

tool.

Layer Libraries terdiri dari beberapa komponen diantaranya adalah:

- Libc : library c standar

- SSL : Layer pengaman socket

- SGL : mesin image 2 dimensi

- Open GL/ES : mesin image 2 dimensi

- Media Frame Work : bagian inti dari android multimedia

- SQLite : Database yang diembededkan

- WebKit : Kernel dari web browser

- Free Type : Bitmap dan vektor

- Surface Manager : menangani masalah window yang berbeda untuk

aplikasi yang berbeda juga.

Layer Aplication FrameWork, fungsi dari komponen diantaranya adalah:

- Apps tanpa batas

- Mempunyai kesamaan masing-masing apps

- Mudah untuk mengembededkan web browser

- Bisa paralel running

Layer Aplikasi, merupakan lapisan yang menangani semua masalah aplikasi (email, web,…)

Secara detail berkaitan dengan bahasa maka dapat dijelaskan seperti gambar 1.4.

Page 21: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2020

Gambar 1.4. bahasa program yang menangani per Layer

1.2.2 Perangkat Lunak Yang Diperlukan

Ada dua ADT (Android Developer Tool) yaitu Eclip dan Net Bean, ke dua developers

tersebut saling punya kelebihan dan kelemahan. Menurut hemat penulis eclip mempunyai

beberapa kemudahan yang ditawarkan bagi pemula, termasuk mahasiswa sebagai pemula

pengguna android. Perangkat lunak developer yang di perlukan adalah :

Java JDK -> h tt p : / /j a v a . su n . c o m / j a v ase / do w n l oads / i nde x .j sp Android SDK -> h tt p : / / de v e l ope r. and r o i d . co m / s d k / i nde x . h t m l Eclipse IDE -> ww w . ec l i pse . o r g / do w n l oads Android ADT -> h tt p s : / / dl - ss l. g o o g l e . c o m / and r o i d / ec li pse/

1.3 Sekilas Instalasi Android

Untuk melakukan installasi Android siapkan perangkat lunak yang diperlukan seperti

diberitahukan pada Sub Bab 1.2.2. kemudian lakukan langkah seperti di bawah ini, (perlu

diketahui bahwa setiap proses installasi tidak harus sama persis, tergantung dari sumber yang

dipunyai) :

- Usahakan semua requariment yang diperlukan diletakkan dalam satu folder

misalnya (Android_Eclip)

- Jalankan file “Java Development Kids.exe”, ikuti apa yang diminta dan lakukan

sampai finish

- Jalankan file “Eclipse.exe”, kemudian jika minta konfigurasi workspace seperti

dibawah:

Page 22: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2121

Gambar 1.5. Konfigurasi Workspace

- Setelah itu muncullah tampilan awal dari Eclip seperti gambar 1.6. di bawah:

Gambar 1.6. Tampilan Awal Eclipse

- Kemudian Click pada icon untuk menuju workbench, seperti gambar 1.7. di bawah:

Page 23: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2222

Gambar 1.7. Workbench, dari Eclipse

Gambar 1.7. ini merupakan tempat kerja untuk membuat atau mendesai sebuah

aplikasi project, tetapi tempat kerja ini masih belum siap, untuk itu ikuti langkah

berikutnya.

- Mengkonfigurasi ADT, syarat untuk mengkonfigurasi ADT, adalah eclipse harus

sudah running, dalam kondisi workbench siap.

Masuklah menu Help -> Install New Software, kemudian muncul kotak dialog

seperti gambar 1.8. berikut:

Gambar 1.8. Kotak Dialog Tempat Menginstall Plug-in Pada Eclipse

Kemudian klik , untuk menambahkan plug-in,muncul kotak dialog

Page 24: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2323

Gambar 1.9. Plug-in Repository

Misalnya pada Name: tuliskan “Android ADT”, pada Location, tuliskan : h t t p s :// d l -

s s l . g o o g l e . c o m / a nd r o i d / e c li p s e / ,

Jangan lupa pada proses ini koneksikan komputer dengan internet jika tidak maka

akan mengalami kegagalan.

Kemudian akan muncul kotak dialog seperti di bawah ini,

Tekan select all, kemudian tekan Next, untuk proses installasi, kemudian jika minta

License Agreement pilih accept dan tekan Finish.

Akhirnya jika proses nya benar tidak ada yang terlewatkan maka terjadilah proses

instalasi penambahan plug-in ADT.

- Proses berikutnya adalah mengkonfigurasi lokasi SDK, pada menu eclipse pilih

menu window -> preference, kemudian pilih Android pada tab sebelah kiri,

kemudian pilih Browse, dan pilih folder dimana file-file SDK berada.

- Proses Installasi selesai, dan Eclipse siap digunakan untuk membuat project,

running, dan compiling.

Page 25: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2424

BAB IIMEMBUAT SEBUAH PROJECT

II.1. TUJUAN

Materi pertemuan ketiga dititik beratkan pada mendesain sebuah aplikasi melalui Project,

adapun tujuan khusus dari Bab dua ini adalah,

1. Mahasiswa mampu menyiapkan lembar kerja dalam sebuah project

2. Mahasiswa mampu mengubah tulisan background lembar kerja

3. Mahasiswa mampu menjalankan program aplikasi.

II.2. TEORI DASAR

II.2.1. WorkBench atau Lembar Kerja

Workbench atau lembar kerja Android dengan Eclipse seperti ditunjukkan oleh gambar

2. memberitahukan bahwa lembar tersebut mempunyai komplektisitas environment,

Gambar 2.0. WorkBench atau Lembar kerja

Lembar Kerja Eclips terdiri dari beberapa komponen utama diantaranya adalah:

a. Baris Menu, (File, Edit, Refactor,...)

b. Baris ShorCut ( )

c. Jendela Packet Explorer :

Page 26: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2525

d. Lembar Kerja atau lembar aktivitas, yang terdiri dari beberapa bagian:

- Pallete atau dalam program Delphi/C++Builder disebut komponen

- ShortCut

- Aktivitas, yang terdiri dari GUI atau sering disebut form untuk delphi atau

C++Builder, UI atau sering disebut lembar coding.

e. Jendela Task List

f. Jendela OutLine yang terdiri dari Relative layout dan properties; ini mirip dengan

jendela Object Inspector pada delphi atau C++Builder

Page 27: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2626

II.3. Latihan Membuat Aplikasi

Ada hal yang harus kita pahami bahwa mendesain sebuah aplikasi dalam android sama

dengan membuat sebuah project, dimana environment dari project cukup banyak, sebagai

latihan pertama buat project aplikasi dengan nama “Percobaan”, ikuti langkah berikut: (dengan

menggunakan IDE Eclip ...., beda IDE agak sedikit berbeda, tetapi secara prinsip sama)

- Langkah 1, berisi tentang persiapan membuat sebuah aplikasi dengan nama

“Percobaan” :

File-> New -> Android Project Aplication, kemudian muncul box dialog seperti

gambar 2.1. berikut

Gambar 2.1. Kotak Dialog Nama Project, Aplikasi, Paket,...

Lakukan pengisian sebagai berikut:

- Application Name, isi dengan : Percobaan (Perlu diperhatikan huruf pertama

harus huruf besar, alasan tanya pada pembimbing/pengajar....)

- Secara otomatis Project Name dan Package Name terisi dengan nama sama

dengan nama aplikasi, j a ngan lakukan perubahan apapun.

- Build SDK pilih versi android sesuai dengan OS device yang diinginkan, dalam

hal ini kita coba pilih : Android 2.1 (API 7)

- Kemudian tekan , NEXT, maka akan muncul jendela seperti gambar 2.2.

dibawah:

Page 28: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2727

Gambar 2.2. Seting Icon Aplikasi

Gambar 2.2. diperlukan untuk seting Icon dari aplikasi yang kita inginkan, untuk

latihan pertama ini tidak perlu dilakukan perubahan apapun, (Silakan tanya pada

pengajar untuk mengetahui lebih detail) , berikutnya tekan NEXT

- Berikutnya muncul window aktivitas, seperti gambar 2.3., untuk sementara tidak

perlu lakukan apapun, (Untuk lebih detail tanyakan ke pengajar)

Gambar 2.3. Jendela Pengaturan Aktivitas

Page 29: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2828

Sementara tidak perlu melakukan perubahan apapun, kemudian tekan NEXT

- Berikutnya akan muncul kotak dialog seperti pada gambar 2.4. berikut:

Gambar 2.4 Dialog Activity

Isi Activity Name dengan “Percobaan”, dan yang lainnya akan mengikuti, tempak

seperti gambar 2.4. di atas

- Persiapan membuat aplikasi sudah selesai, dan muncullah lembar yang

disediakan oleh Eclip dalam bentuk yang sangat kompleks tampak seperti

gambar 2.5., keterangan per item pelajari Teori,

(a) (b)

Page 30: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 2929

(c) (d)

Gambar 2.5. Lembar Kerja

Gambar 2.5.(a) menunjukkan bahwa project dengan aktivitas

activity_percobaan.xml sedang aktiv dan siap untuk di edit, running, dan yang

lain; (b) menunjukkan struktur dari project Percobaan; (c) menunjukkan bahwa

lembar kerja eklip (GDI) terdapat dua jenis, pertama adalah desain grafik, mirip

dengan bentuk form program delphi maupun program c++ builder; sedangkan

bentuk kedua adalah tempat menuliskan code, atau script dari program, mirip

dengan unit pada delphi atau c++ builder; (d) merupakan bentuk desain grafik.

- Langkah II:

Ubah background “Hello Word !” menjadi “Latihan Android Pertama” langkahnya

adalah:

a. Klik 2X folder “values” pada Packect Exlporer aplikasi Percobaan,

b. Pada folder “Strings.xml” click 2X, sehingga muncul lembar coding seperti

berikut:

Tulisan “Hello Android !” ganti dengan “Latihan Android Pertama”, sehingga

menjadi :

c. Running Program, usahakan AVDM (Android Virtual Device Manager) terus

dalam keadaan on; bila terjadi tanyakan pada Pengajar yang mendampingi.

Page 31: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 3030

- Langkah III :

a. Membuat Palet Text, ada beberapa jenis text, TextView, Large, Medium, dan

small. Kita coba buat beberapa model seperti di bawah ini:

b. Kemudian tampilan kita ganti TextView->”Tulisan Normal”; Large Text ->”Tulisan

Besar”; Medium Text -> “Tulisan Sedang”; Small Text -> “Tulisan Kecil”

Caranya adalah : Klik 2x TextView, sehingga muncul script:

c. Ubah tulisan pada “TextView” di menjadi “Tulisan Normal”,

d. Lakukan semua Text sesuai dengan langkah b.

e. Sehingga desain menjadi seprti berikut,

f. Coba running program

Page 32: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 3131

II.4. SOAL (UJI KEMAMPUAN),

Kerjakan setiap soal di bawah ini simpan dengan nama Aplikasi Latihan_1,

dan nama activity Latihan_1

1. Buat desain activity seperti di bawah gambar (2.6) ini

Gambar 2.6. Latihan Membuat Desain

Page 33: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 3232

BAB III PENGGUNAAN BUTTON

II.1. TUJUAN

Materi pertemuan ketiga dititik beratkan optimalisasi penggunaan pallet widget Button, adapun

tujuan latihan program pertemuan kedua ini adalah,

1. Mahasiswa mampu menggunakan widget button dengan model “OnClick”

2. Mahasiswa mampu menggunakan widget button dengan model “OnClickListener”

III.2. TEORI DASAR

III.2.1. Perbedaan OnClickListener dengan Onclick Biasa pada Button

Pallet button yang disediakan pada Widget ada beberapa macam yaitu : button, small

button, dan togle button. Penggunaan antara button dan tgle button agak sedikit berbeda.

Eksekusi Button bisa menggunakan onclick klasik dan onclicklistener. Tujuannya sama

sedangkan implementasinya yang berbeda.

III.2.2. OnClickListener()

Event ini disebut juga event listener, Suatu event yang berfungsi menangkap kejadian yang

berhubungan dengan user. misalnya user menekan tombol(SetOnClick). Event ini sangat

berkaitan dengan event handler, setelah user melakukan suatu kejadian, misalnya menekan

tombol, maka apakah langkah selanjutnya yang dilakukan ?? itulah yang dinamakan event

Handle.

Contoh : tombol button di tekan memunculkan hasil perkalian antara input1 dan input2, seperti

pada latihan dibawah.

Nama ID button adalah button1, setOnclick adalah klik, maka coding yang berkaitan

adalah :

tekan=(Button)findViewById(R.id.button1);tekan.setOnClickListener(new klik());class klik implements Button.OnClickListener{

public void onClick (View v){int b1 = Integer.parseInt(bil1.getText().toString());int b2 = Integer.parseInt(bil2.getText().toString());

}}

OnClick()

int hsl = b1 * b2;hs.setText(String.valueOf(hsl));

Event ini disebut event klasik, dimana sistem kerjanya adalah, tombol button di klik maka

variabel onclik akan mengeksekusi nama variabel pada strings.xml, kemudian value dari

variable strings.xml dianggap sebuah function yang mengeksekusi proses fungsi tersebut,

prosesnya dapat di gambarkan sebagai berikut:

Page 34: buku ajar mobile internet Android untuk siswa.unlocked.doc

III.3. LATIHAN PROGRAM,

Buat Desain dengan nama Aplikasi Latih_2, dan nama aktivitas juga Latih_2, desain seperti

gambar (3.1) di bawah:

Gambar 3.1. GraphicLayout Activity Button1

Kemudian edit Id dari masing-masing komponen berikut, (Perhatikan huruf besar dan kesilnya):

EditText1 -> Isi1

EditText2 -> isi2

TextView3 -> Hasil

dan ketikan source code dibawah sesuaikan dengan nama file, tempat, dan foldernya:

“Activity_Latih_2.xml”:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"

Page 35: buku ajar mobile internet Android untuk siswa.unlocked.doc

android:layout_width="fill_parent"android:layout_height="fill_parent" >

<TextView android:id="@+id/Hasil" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" tools:context=".Latih1_b" />

<EditText android:id="@+id/Isi1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginTop="14dp" android:layout_toRightOf="@+id/TextView01" android:ems="12" android:inputType="numberDecimal" >

<requestFocus /></EditText>

<TextView android:id="@+id/TextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/Isi1" android:layout_alignBottom="@+id/Isi1" android:layout_alignParentLeft="true" android:text="Bilangan Pertama"android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText android:id="@+id/isi2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@+id/Isi1" android:layout_marginTop="26dp" android:layout_toRightOf="@+id/textView2" android:ems="12" android:inputType="numberDecimal" />

<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/isi2" android:layout_alignBottom="@+id/isi2" android:layout_alignParentLeft="true" android:text="Bilangan Kedua"android:textAppearance="?android:attr/textAppearanceMedium" />

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

Page 36: buku ajar mobile internet Android untuk siswa.unlocked.doc

android:layout_alignBaseline="@+id/Hasil" android:layout_alignBottom="@+id/Hasil" android:layout_alignRight="@+id/textView2" android:onClick="@string/tekankali" android:text="Tekan Lihat Hasil" />

</RelativeLayout>

“Strings.xml”

<resources>

<string name="app_name">Latih1_b</string><string name="hello_world"> </string><string name="menu_settings">Settings</string><string name="title_activity_latih1_b">Latih1_b </string><string name="tekankali">kali </string>

</resources>

“Latih_2.java”

package com.example.latih1_b;

import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View;import android.widget.EditText;import android.widget.TextView;public class Latih1_b extends Activity {

private EditText bil1;private EditText bil2;private TextView hsk;

@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_latih1_b); bil1=(EditText) findViewById(R.id.Isi1); bil2=(EditText) findViewById(R.id.isi2);hsk =(TextView) findViewById(R.id.Hasil);

}public void kali (View v) {double a,b,hs;a = Double.parseDouble(bil1.getText().toString()); b = Double.parseDouble(bil2.getText().toString()); hs=a*b ;hsk.setText(String.valueOf(hs));//hsk.setText(String.valueOf(hs ));

}

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_latih1_b, menu);return true;

}}

Page 37: buku ajar mobile internet Android untuk siswa.unlocked.doc

III.4. SOAL (UJI KEMAMPUAN),

1. Buat Project dengan nama aplikasi “Tugas_3” dan nama activity sama

“Tugas_3”, buat desain sama dengan contoh tetapi buat script nya

dengan menggunakan onClickListener

2. Buat Project dengan nama aplikasi “Tugas_3” dan nama activity sama

“Tugas_3”, buat desain sama dengan contoh ubahlah komponen button

menjadi Imagebutton, dan buat script nya dengan menggunakan

onClickListener maupun onClick klasik.

Page 38: buku ajar mobile internet Android untuk siswa.unlocked.doc

BAB IVCHECK BOX DAN RADIO BUTTON

IV.1. TUJUAN

Komponen check Box dan radio button adalah komponen yang disediakan untuk pilihan ganda

atau pilihan tunggal, model dan bentuknya mirip dengan miliknya Delphi atau C++Builder.

Adapun tujuan dari pertemuan ini adalah,

1. Mahasiswa mampu mendesain project menggunakan komponen check box dan radio

button.

2. Mahasiswa mampu membuat script yang berkaitan dengan check box dan radio button.

3. Mahasiswa mampu mengimplementasikan komponen check box dan radio button pada

project sederhana.

4. Mahasiswa mampu membedakan penggunaan RadioButton dan RadioGroup pada

sebuah project.

IV.2. TEORI DASAR

IV.2.1 CHECK BOX

Checkbox sering juga disebut tickbox adalah elemen (Widget) dari GUI pada android

yang mengijinkan user untuk melakukan pilihan dengan logika biner, artinya jika dicentang

maka nilainya adalah true, jika tidak dicentang nilainya adalah false, bentuk dan

penggunaannya hampir sama dengan pemrograman C++Builder atau delphi. Untuk melakukan

pencentangan menggunakan mouse atau spacebar keyboard, bentuk dari checkbox adalah

seperti gambar (4.1) di bawah ini:

Gambar 4.1. elemen CheckBox

Nama Id default adalah : “ @ + i d /checkBox1” Pada

gambar 4.1. isi dari text adalah : “Paralael” data

script dari elemen ini adalah sebagai berikut:

<CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" android:layout_marginTop="14dp" android:text="Paralel" />

Page 39: buku ajar mobile internet Android untuk siswa.unlocked.doc

IV.2.2 Radio Group dan Button

Radio button atau disebut juga option button yang terdapat pada Radio Group adalah

elemen dari GUI, yang mengijinkan user memilih hanya satu pilihan, ada beberapa model link

eksekusi diantaranya adalah:

- Menggunakan onClick, yang melingkan file *.xml dengan file program script java

(*.java), link nya dapat dijelaskan berikut:

Lebih jelas lihat contoh/latihan program no. 2 !- Menggunakan OnClickListener, model ini mempunyai pengaturan hanya pada

script java saja (*.java), yaitu:a. tambahkan statement OnClickListener pada class uatma, miaslnya :

public class Rad_btn extends Activity {………….. -> ubah menjadi public class Rad_btn extends Activity implements View.OnClickListener{………………………………..

b. tambahkan variabel untuk radiobutton pada type onclicklistener, seperti: rd1=(RadioButton) findViewById(R.id.radio0); rd1.setOnClickListener(this);

c. buat prosedur dengan nama onClick(View variabel){…………, seperti contoh dibawah:

public void onClick(View v){switch(v.getId()){case R.id.radio0 :

if (rd1.isChecked())Toast.makeText(this,"Anda Pilih Nomer 1",Toast.LENGTH_LONG).show();

break;case R.id.radio1 :

if (rd2.isChecked())Toast.makeText(this,"Anda Pilih Nomer 2",Toast.LENGTH_LONG).show();

break;}

}

- Berikutnya adalah model Item onclicklistener, yaitu pemberian statement berdasarkan komponen atau elemen nya.

Page 40: buku ajar mobile internet Android untuk siswa.unlocked.doc

IV.3. LATIHAN PROGRAM,

1. Buat Desain project CheckBox berikut, dengan nama Aplikasi Latih_4_chkbox, dan

nama aktivitas juga Latih_4_1chkbox, desain seperti gambar (4.1) di bawah:

Gambar 4.2. GraphicLayout Contoh Penggunaan CheckBox

Ubah nama Id, dengan nama sesuai dengan script / coding yang dituliskan di bawah ini,

dan letakkan masing-masing script sesuai dengan nama file, folder, dan aktivitas yang

sesuai:

“activity_latih4_chkbox.xml”:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" >

<TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" tools:context=".Latih4_chkbox" />

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

Page 41: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4040

android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="27dp" android:text="Input R1 : "android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="20dp" android:text="Input R2 : "android:textAppearance="?android:attr/textAppearanceMedium" />

<CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" android:layout_marginTop="14dp" android:text="Paralel" />

<CheckBox android:id="@+id/checkBox2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/checkBox1" android:text="Seri" />

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView3" android:layout_alignParentLeft="true" android:onClick="@string/tekan" android:text="Nilai R Pengganti" />

<EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/textView1" android:layout_alignBottom="@+id/textView1" android:layout_alignParentRight="true" android:inputType="numberDecimal" android:ems="10" >

<requestFocus /></EditText>

<EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@+id/textView2"

Page 42: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4141

android:inputType="numberDecimal"android:ems="10" />

<TextView android:id="@+id/pengganti" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/textView3" android:layout_toRightOf="@+id/textView3" android:text=" "android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout><strings.xml>

<resources>

<string name="app_name">Latih4_chkbox</string><string name="hello_world"> </string><string name="menu_settings">Settings</string><string name="tekan">hasil </string><string name="title_activity_latih4_chkbox">Latih4_chkbox</string>

</resources>

<Latih4_chkbox.java>

package com.example.latih4_chkbox;

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

public class Latih4_chkbox extends Activity {private EditText r1; private EditText r2; private CheckBox cek1; private CheckBox cek2; private TextView hs;

@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_latih4_chkbox); r1=(EditText) findViewById(R.id.editText1); r2=(EditText) findViewById(R.id.editText2); hs=(TextView) findViewById(R.id.textView3); cek1=(CheckBox) findViewById(R.id.checkBox1); cek2=(CheckBox) findViewById(R.id.checkBox2); hs.clearComposingText();

}public void hasil (View v){

double a,b,c;if (r1.getText().length()==0 || r2.getText().length()==0)

{ Toast.makeText(this, "R1 maupun R2 tidak boleh Kosong !",

Toast.LENGTH_LONG).show();return;

Page 43: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4242

} a=Double.parseDouble(r1.getText().toString()); b=Double.parseDouble(r2.getText().toString()); c=0;if (((cek1.isChecked()==false) && (cek2.isChecked()==false)) ||((cek1.isChecked()) && (cek2.isChecked())))

{ Toast.makeText(this, " Pilih Salah Satu Saja !",

Toast.LENGTH_LONG).show();return;

}

if (cek1.isChecked()){c=a+b;

} elseif (cek2.isChecked()){

c=1/a+1/b;c=1/c;

}hs.setText(String.valueOf(c));

}

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_latih4_chkbox, menu);return true;

}}

Kemudian Running Program!

2. Buat desain dengan menggunakan komponen radio button dan radio group berikut, beri

nama Aplikasi Latih4_rdbtn, dan nama aktivitas juga Latih4_rdbtn, desain seperti

gambar (4.2) di bawah:

Gambar 4.3. Desain Latihan Radio Button

Page 44: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4343

Ubah nama Id, dengan nama sesuai dengan script / coding yang dituliskan di bawah ini,

dan letakkan masing-masing script sesuai dengan nama file, folder, dan aktivitas yang

sesuai:

<activity_Latih4_rdbtn.xml>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"android:layout_height="fill_parent" >

<TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" tools:context=".Latih4_rdbtn" />

<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="15dp" android:layout_marginTop="22dp" android:text="Pilih Negara :"android:textAppearance="?android:attr/textAppearanceMedium" />

<RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="19dp" android:text="Indonesia" />

<RadioButton android:id="@+id/radioButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/radioButton1" android:layout_below="@+id/radioButton1" android:text="Malaysia" />

<RadioButton android:id="@+id/radioButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/radioButton2" android:layout_below="@+id/radioButton2" android:text="Jepang" />

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

Page 45: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4444

android:layout_centerVertical="true"android:text="Hasil :" />

<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/button1" android:layout_marginTop="22dp" android:text="Pilih Salah Satu"android:textAppearance="?android:attr/textAppearanceMedium" />

<RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/textView2" android:layout_marginLeft="22dp" android:layout_toRightOf="@+id/textView1" >

<RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:onClick="pilihgrp" android:text="Indonesia" />

<RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="pilihgrp" android:text="Malaysia" />

<RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="pilihgrp" android:text="Jepang" />

</RadioGroup>

</RelativeLayout>

<Latih4_rdbtn.java>

package com.example.latih4_rdbtn;

import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View;import android.view.View.OnClickListene r ;import android.widget.Button;import android.widget.EditTex t ; import android.widget.RadioGrou p ; import android.widget.TextView; import android.widget.Toast;

Page 46: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4545

import android.widget.RadioButton;

public class Latih4_rdbtn extends Activity {private RadioButton rb1;private RadioButton rb2; private RadioButton rb3; private RadioButton r1,r2,r3; private Button tekan;private TextView hasil;

@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_latih4_rdbtn); rb1=(RadioButton) findViewById(R.id.radioButton1); rb2=(RadioButton) findViewById(R.id.radioButton2); rb3=(RadioButton) findViewById(R.id.radioButton3); tekan=(Button) findViewById(R.id.button1); tekan.setOnClickListener(new klik()); hasil=(TextView) findViewById(R.id.textView3);// RadioGroup r g =(RadioGroup) findViewById(R.id.radioGroup1);r1=(RadioButton) findViewById(R.id.radio0);r2=(RadioButton) findViewById(R.id.radio1);r3=(RadioButton) findViewById(R.id.radio2);r1.setChecked(false);

}class klik implements Button.OnClickListener{

String t1="",t2="",t3="";public void onClick (View v){

if (rb1.isChecked()){t1="Indonesia";//return;

}if (rb2.isChecked()){t2="Malaysia";//return;

}if (rb3.isChecked()){t3="Jepang";//return;

}hasil.setText("Negara Pilihan :" + t1+" "+t2+" "+t3);}

}

public void pilihgrp(View view){switch(view.getId()){case R.id.radio0 :

if (r1.isChecked()){Toast.makeText(this, "Bendera Indonesia : Merah Putih",Toast.LENGTH_LONG).show();return;

}break;

case R.id.radio1:if (r2.isChecked()){

Page 47: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4646

Toast.makeText(this, "Bendera Malaysia : Bulan Bintang", Toast.LENGTH_LONG).show();

return;}break;

case R.id.radio2:if (r3.isChecked()){Toast.makeText(this, "Bendera Jepang : Matahari Terbit", Toast.LENGTH_LONG).show();

return;}

break;

}}

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_latih4_rdbtn, menu);return true;

}}

IV.4. SOAL (UJI KEMAMPUAN),

Kerjakan setiap permasalahan dengan membuat desain yang indah,

masing- masing simpan dengan nama aplikasi dan nama aktivitas sama !

1. Buat desain sebuah project dengan memasukkan komponen checkbox untuk pilihan

ganda ->sifat sinyal analog, dan komponen RadioGroup untuk pilihan tunggal ->Agama.

Gunakan sembarang data dan tidak ada output, simpan file Soal4_1

2. Buat desain dengan input nilai angka, nama, jurusan, dan output nilai huruf dan

keterangan.

Nama : Input biasa

Jurusan : gunakan radiobutton

Nilai angka : guanakan GroupRadio (80< Nilai <= 100) -> output nilai huruf A

(75< Nilai <= 80) -> output nilai huruf B+

(65< Nilai <= 75) -> output nilai huruf B

(50< Nilai <= 65) -> output nilai huruf C+

(40< Nilai <= 50) -> output nilai huruf C

(Nilai <=40) output nilai huruf D

Output keterangan “Lulus” untuk nilai A,B+,B,C+, dan C dan “Gagal” untuk D.

Simpan file Soal4_2

Page 48: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4747

BAB V SPINER

V.1. TUJUAN

Komponen Spinner yang disediakan oleh android merupakan komponen yang penggunaannya

mirip dengan komponen combobox pada program C++Builder maupun Delphi. Adapun tujuan

dari pertemuan ini adalah,

1. Mahasiswa mampu mendesain project menggunakan komponen Spinner.

2. Mahasiswa mampu membuat script yang berkaitan dengan komponen Spinner.

3. Mahasiswa mampu mengimplementasikan komponen Spinner pada project sederhana.

V.2. TEORI DASAR

Spinner menyediakan cara cepat untuk memilih sebuah nilai dari beberapa pilihan

dasar yang disediakan, nilai yang tampil pada pallet spiner adalah nilai yang dipilih terbaru oleh

user. Menu bentuk drop down akan muncul jika komponen spinner di sentuh, sebagai contoh

adalah :

Gambar 5.1. Tampilan Spinner

Kita juga dapat menambah atau mengubah bentuk tampilan pada script object spinner, seperti

berikut:

<Spinner android:id="@+id/planets_spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" />

Dan isi dari spinner dapat diperoleh dari menambahkan String-Array, untuk lebih jelas silakan

perhatikan lihat contoh berikut,

Page 49: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4848

V.3. LATIHAN PROGRAM,

1. Buat desain dengan menggunakan komponen Spinner berikut, beri nama Aplikasi

Latih5_spin, dan nama aktivitas juga Latih5_spin, desain seperti gambar (5.2) di bawah:

Gambar 5.2. Desain Penggunaan Komponen Spinner

Ubah nama Id, dengan nama sesuai dengan script / coding yang dituliskan di bawah ini,

dan letakkan masing-masing script sesuai dengan nama file, folder, dan aktivitas yang

sesuai:

<activity_Latih5_spin.xml>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"android:layout_height="fill_parent" android:orientation="vertical" android:background="#22cccaaa" >

<TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" tools:context=".Spiner1Activity" />

<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_marginTop="23dp" android:text="Bil. Pertama"android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1"

Page 50: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 4949

android:layout_marginTop="28dp" android:text="Bil. Kedua" android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText android:id="@+id/bil1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/textView1" android:layout_alignBottom="@+id/textView1" android:layout_alignLeft="@+id/textView3" android:layout_marginLeft="26dp" android:inputType="numberDecimal" android:ems="10" >

<requestFocus /></EditText>

<TextView android:id="@+id/hasil" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView3" android:layout_toLeftOf="@+id/editText2" android:text=""android:textAppearance="?android:attr/textAppearanceLarge" />

<Spinner android:id="@+id/pilihan" android:entries="@array/listing" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/hasil" android:layout_alignParentLeft="true" android:layout_marginBottom="32dp" />

<EditText android:id="@+id/bil2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/textView2" android:layout_alignBottom="@+id/textView2" android:layout_alignLeft="@+id/bil1" android:inputType="numberDecimal" android:layout_alignParentRight="true" android:ems="10" />

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/pilihan" android:layout_alignBottom="@+id/pilihan" android:layout_alignLeft="@+id/bil2" android:text="Processing" android:onClick="proses"/>

</RelativeLayout>

<strings.xml>

<resources>

Page 51: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 5050

<string name="app_name">spine r </string><string name="hello_world">Hello world!</string><string name="menu_settings">Settings</string><string name="title_activity_spiner1">MainActivity</string><string-array name="listing">

<item>Jumlah </item><item>Kuran g </item><item>Kali </item><item>Bagi </item><item>Pangkat </item>

</string-array>

</resources>

<Latih5_spinActivity.java>

package com.example.spiner;

import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View;import android.widget.EditText; import android.widget.TextView; import android.widget.Spinner; import android.widget.Toast; import android.app.AlertDialo g ;import android.content.DialogInterface ;

public class Spiner1Activity extends Activity {private EditText bl1,bl2; private Spinner spn1; private TextView has;

@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.spiner1); bl1=(EditText) findViewById(R.id.bil1); bl2=(EditText) findViewById(R.id.bil2); spn1=(Spinner) findViewById(R.id.pilihan); has=(TextView) findViewById(R.id.hasil);

}

public void proses(View view){double a,b,hsl;

if (bl1.getText().toString()==""){Toast.makeText(this, "Bilangan gak boleh kosong",

Toast.LENGTH_LONG).show();return;

}if (bl2.getText().toString()==""){

Toast.makeText(this, "Bilangan gak boleh kosong",Toast.LENGTH_LONG).show();

return;}

Page 52: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 5151

a = Double.parseDouble(bl1.getText().toString()); b = Double.parseDouble(bl2.getText().toString()); hsl=a + b;switch (spn1.getSelectedItemPosition()){case 0:

case 1:

case 2:

case 3:

case 4:

}}

hsl = a + b;break;

hsl = a - b;break;

hsl = a * b;break;

hsl = a / b;break;

hsl = Math.pow(a, b);break;

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.spiner1, menu);return true;

}}

V.4. SOAL (UJI KEMAMPUAN),

Kerjakan setiap permasalahan dengan membuat desain yang indah, masing-

masing simpan dengan nama aplikasi dan nama aktivitas sama !

1. Ubah program latihan4_1 dan 4_2 kedalam bentuk spinner, desainlah formnya sesuai

dengan yang anda inginkan, simpan file -> Latih5_1 dan Latih5_2

Page 53: buku ajar mobile internet Android untuk siswa.unlocked.doc

BAB VIBEKERJA DENGAN BEBERAPA LAYAR

VI.1. TUJUAN

Sebuah aplikasi bisa memiliki lebih dari satu layar, mirip halnya dengan pemrograman Delphi

atau C++Builder satu project memiliki lebih dari form. Untuk membuat multi layar di dalam

Android mempunyai cara yang khusus, sehingga tujuan dari Bab ini adalah:

1. Mahasiswa mampu mendesain project dengan multi layar.

2. Mahasiswa mampu membuat script yang melingkan antara layar satu dengan yang

lainnya.

3. Mahasiswa mampu mengimplementasikan multi layar pada project sederhana.

VI.2. TEORI DASAR

Dalam sebuah project biasanya mempunyali lebih dari satu scrren. Screen pada

android dibuat di bawah activity, sehingga pembuatan multi screen juga melibatkan

multi activity. Dalam activity dikemas dalam sebuah file XML, sehingga multi screen

akan menyebabkan project memiliki lebih dari satu file XML. Screen berkaitan

dengan layout atau form, jika kita membuat lebih dari satu layout, ada script yang

harus dituliskan untuk menghubungkan antar layout agar layout tersebut saling

mengenal, yang akirnya ada konektivitas antar scree. Berikut adalah tata cara

membuat desain project dengan multiscreen:

1. Yang pertama b u a t p r o j e c t , lakukan pembuatan halaman

utama s e p e r t i b i a s a dengan menuliskan nama activity seperti

sebelumnya;

2. Buat Class baru dengan nama lain, dengan cara buka jendela Package,

kemudia buka src -> com.example……, kemudian klik kanan new->class,

seperti gambar 6.1. berikut:

Gambar 6.1. Membuat Class Baru

3. Hubungkan antara class pada halaman utama dengan class kedua, dengan

mengisi script pada file AndroidManifest.xml

4. Isi script masing-masing class script java sesuai dengan keperluan.

Page 54: buku ajar mobile internet Android untuk siswa.unlocked.doc

Untuk lebih jelas pelajari dan coba perhatikan latihan program di bawah ini.

VI.3. LATIHAN PROGRAM,

Pada sesi ini kita akan mendesain sebuah project dengan menggunakan dua layar atau

“screen”. Dimana konsep dari desain ini ingin menunjukkan prinsip kerja dari project yang

menggunakan 2 layar. Hasil dari program ini adalah default adalah layar1 aktif, untuk menuju

aatau mengaktifkan layar2 tekan tombol butoon, demikian juga sebaliknya, ntuk itu ikuti

langkah-langkah berikut:

1. Buat Project baru dengan nama aplikasi adalah : Latih6_dualayar, seperti gambar 6.2.

berikut:

Gambar 6.2 Membuat Aplikasi

2. Beri nama activity “Layar1” seperti di bawah ini,

Gambar 6.3. Nama Aktivitas

Tekan tombol ok, dan lanjutkan sampai kita dapatkan layout utama.

Page 55: buku ajar mobile internet Android untuk siswa.unlocked.doc

3. Tambahkan widget atau komponen button, ubah text nya “Menuju layar 2”, tambahkan

juga komponen TextView, ubah textnya “Ini Adalah Layar 1”, seperti pada gambar 6.4.

berikut:

Gambar 6.4. Desain Layar Utama

4. Buat layout dengan nama “layar2.xml”, dengan cara seperti di bawah ini :

Gambar 6.5 Membuat Screen baru “layar2.xml”

5. Berikutnya adalah menambahkan komponen button dan textview pada screen layar2, dan

ubahlah masing-masing text nya sesuai dengan gambar 6.6. berikut:

Page 56: buku ajar mobile internet Android untuk siswa.unlocked.doc

Gambar 6.6. Desain screen layar2

6. Pada file AndroidManifest.xml tambahkan script seperti yang ada dalam lingkaran gambar

6.5.:

Gambar 6.7. Menambah Script pada AndroidManifest

Penambahan script ini berfungsi mengenalkan aktivitas, java, dan xml “layar2” yang

dibuat pada tahap kedua.

7. Buat Class baru dengan nama “Layar1”, ikut cara seperti yang tampak pada Gambar 6.5.

berikut:

Page 57: buku ajar mobile internet Android untuk siswa.unlocked.doc

Gambar 6.8. Membuat Class Baru “Layar1”

8. Berikutnya adalah tambahkan script pada file Layar1.java, sebagai berikut:

9. Dan juga tambahkan script pada file layar2.java, berikut:

Page 58: buku ajar mobile internet Android untuk siswa.unlocked.doc

10. Untuk menguji apakah desain aplikasi berjalan atau tidak silakan di running aplikasinya.

VI.4. SOAL (UJI KEMAMPUAN),

Ubah program latihan4_1 dan 4_2 kedalam bentuk dua layar menjadi satu aplikasi, desainlah

formnya sesuai dengan yang anda inginkan, simpan file -> Latih6_1.

Page 59: buku ajar mobile internet Android untuk siswa.unlocked.doc

BAB VIIGRAFIK KLASIK DI ANDROID

VII.1. TUJUAN

Secara umum grafik pada pemrograman dibedakan menjadi dua yaitu grafik berbasis kurva

dikenal dengan grafik klasik, dan grafik dengan obyek citra atau gambar. Tujuan dari BAB ini

adalah,

1. Mahasiswa mengenal grafik klasik pada pemrograman android.

2. Mahasiswa mampu mendesain grafik klasik sederhana pada sebuah project aplikasi.

3. Mahasiswa mengenal operasi geometri dasar untuk diimplementasikan pada grafik

klasik.

VII.2. TEORI DASAR

VII.2.1. OPEN GL ES

Framework Android mendukung OpenGL ES 1.0/1.1 dan OpenGL ES 2.0, dimana ES adalah

sebuah singkatan dari Embeded System, merupakan bagian dari OPENGL khusus yang

dirancang untuk perangkat embeded. OpenGl adalah bebas biaya dan lintas platform. Dimana

API nya mempunyai full fungsi yang mendukung grafik 2D dan 3D, pada sistem embedednya,

seperti perangkat mobile. OpenGL 1.X menggunakan arsitektur pipeline yang fix secara

tradisional, dan menekankan pada percepatan hardware dari API. Yang menawarkan

penambahan fungsi, kualitas gambar yang bagus dan performansi yang tinggi. OpenGL 2.X

berfungsi dalam hal pemrograman hardware. Ini menekankan pada pemrograman grafik 3D

dan mengijinkan user untuk membuat bayangan dan objek-object program. Dengan ES 2.x kita

juga dapat menulis vertex. Dilain pihak OpenGL 2.X tidak suport pada transformasi fungsi fix

dan fragmentasi pipeline yang OpenGL 1.X support.

Pemanggilan fungsi glutInit, berguna untuk inisialisasi secara umum terhadap nilai-nilai yang

ada pada library GLUT.

Untuk menginisialisasi modus display dilakukan dengan memanggil fungsi:

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB) pada procedure myInit();

Fungsi tersebut meminta window yang bersifat double buffered, dengan warna RGB. Beberapa

baris berikut ini adalah membuat window.

Page 60: buku ajar mobile internet Android untuk siswa.unlocked.doc

Seperti yang kita lihat, GLUT langsung membuat window tanpa memerlukan macam-macam

syarat.

fungsi glOrtho digunakan untuk membuat kotak tempat obyek yang sedang digambar.

Berikut ini adalah fungsi-fungsi aplikasi yang kita buat :

glutDisplayFunc(display);glutMainLoop();

Fungsi pertama digunakan untuk mengubah pandangan dengan menggunakan GLUT.

Selanjutnya dipanggil fungsi glutMainLoop() , yaitu digunakan untuk menjalankan program.

Semua fungsi sebelumnya akan berpengaruh setelah fungsi ini dieksekusi.

Fungsi aplikasi untuk menampilkan kotak di dalam window adalah sebagai berikut :

void display(void){

glClear(GL_COLOR_BUFFER_BIT); glRectf(-5.0, 5.0, 5.0, -5.0); glutSwapBuffers();

}

Pertama-tama dipanggil fungsi glClear dengan parameter GL_COLOR_BUFFER_BIT. Fungsi

ini akan menghapus window dan memberi warna yang telah kita definisikan sebelumnya

dengan menggunakan glClearColor. Selanjutnya menggambar segiempat yang kita inginkan

dengan menggunakan fungsi glRectf.

Suatu fungsi memiliki beberapa macam prototipe. Contohnya fungsi glColor, memiliki beberapa

prototipe berikut ini :

glColor3f(float, float, float); glColor4f(float, float, float, float); glColor3d(double, double, double); glColor3i(int, int, int);etc, etc, etc.

Fungsi-fungsi tersebut memiliki bagian-bagian:

gl Color 3 f

Page 61: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6060

Walaupun ada fungsi yang memiliki beberapa macam versi, sebaiknya dipilih versi yang

menggunakan bilangan float. Karena dalam OpenGL semua nilai yang digunakan secara

internal akan dikembalikan dalam bentuk float point.

VII.2.2. TITIK, GARIS, DAN POLYGON

OpenGL menggunakan sistem koordinat Cartesius, sumbu datar sebagai sumbu x, sumbu

tegak sebagai sumbu y, dan sumbu z nya adalah mendekat atau menjauh. Sumbu z positif

selalu menuju ke arah kita, sebaliknya sumbu z negatif selalu menjauh dari kita. Dengan

menggunakan sistem ini kita dapat menyatakan titik dalam ruang tiga dimensi, yang disebut

juga “vertex”, dengan tiga sumbu koordinat x, y, dan z. Sebagai contoh :

(0,0,0) pusat sistem koordinat(2,0,4) dua unit ke kanan, 4 unit menuju kita, dan sumbu y pada pusat(3,-4,-2) 3 unit ke kanan, 4 unit ke bawah, dan 2 unit menjauh dari kita

Untuk menyatakan titik tersebut OpenGL menyediakan fungsi glVertex yang didahului dan

diakhiri dengan glBegin dan glEnd:

glBegin(GL_POINTS); /* Ingin menggambar titik */ glVertex3f(2.0, 0.0, 4.0); /* menyatakan sejumlah titik */ glVertex3f(3.0, -4.0, -2.0);glEnd(); /* Akhir dari menggambar titik */

Fungsi glBegin memberitahu kepada OpenGL bahwa kita akan mulai menggambar sekaligus

menyatakan apa yang akan digambar, yaitu dengan memberikan parameter GL_POINTS.

Fungsi glEnd menyatakan pembuatan gambar diakhiri. Dengan menggunakan OpenGL,

menggambar pada bidang 3D sangat fleksibel, misalnya akan menggambar suatu garis, maka

pada glBegin diberi parameter GL_LINES. Dengan ini pasangan-pasangan glVertex akan

membentuk garis. Bila glVertex tidak memiliki pasangan maka perintah tersebut diabaikan

(tidak akan menggambar titik)

glBegin(GL_LINES); /* mulai menggambar garis */ glVertex3f(6.0, 4.0, 2.0); /* garis pertama, pasangan glVertex */ glVertex3f(2.0, -4.0, 3.3);glVertex3f(5.0, 8.0, 8.0); /* garis ke dua */glVertex3f(-4.7, 5.0, -3.0);glVertex3f(0.0, 0.0, 0.0); /* garis ke tiga */glVertex3f(6.0, -1.0, -7.0);glEnd();

Untuk menggambar suatu bangun, OpenGL memiliki 6 macam bangun primitif, yaitu : GL_TRIANGLES : setiap 3 glVertex membentuk segitiga, dan tiap segitiga saling

lepas.GL_TRIANGLE_STRIP : setiap 3 glVertex membentuk segitiga, dan semua segitiga

saling terkait

Page 62: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6161

GL_TRIANGLE_FAN : membentuk beberapa segitiga yang berpusat pada satu titik(seperti kipas)

GL_QUADS : tiap 4 glVertex membentuk segi empatGL_QUAD_STRIP : tiap 4 glVertex membentuk segi empat, dan semuanya saling

menempelGL_POLYGON. : n glVertex akan membentuk bidang bersisi n

VII.3. LATIHAN PROGRAM,

Buat aplikasi Project dengan nama “Latih7_grafik_klasik”, demikian juga dengan nama

aktivitas, paket, dan yang linnya gunakan nama yang sama. Latihan VII.3.1 ini merupakan

implementasi grafik klasik dengan bentuk segitiga, dan melibaatkan 2 class. Gunakan virtual

manager gunakan minimal “API 10”

VII.3.1 Implementasi grafik pada bentuk klasik

Lanjutkan dengan mengedit source code pada file “Latih7_grafik_klasik.java” pada Latih7_grafik_klasik -> Src -> Com.example.latih7_grafik_klasik -> Latih7_grafik_klasik.java,< Latih7_grafik_klasik.java>

package com.example.latih7_grafik_klasik;

import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.Button; import android.view.Vie w ;import android.view.View.OnClickListene r ;import android.content.Context;import android.opengl.GLSurfaceView;

public class Latih7_grafik_klasik extends Activity {private Button teka n ;private GLSurfaceView grafik1;@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_latih7_grafik_klasik);tekan=(Button)findViewById(R.id.button1);grafik1 = new HelloESSurfaceView(this);setContentView(grafik1);

}@Overrideprotected void onPause() {super.onPause();// The following call pauses the rendering thread. grafik1.onPause();}@Overrideprotected void onResume() {super.onResume();// The following call resumes a paused rendering thread. grafik1.onResume();}

Page 63: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6262

class HelloESSurfaceView extends GLSurfaceView { public HelloESSurfaceView(Context context){ super(context);// Set the Renderer for drawing on the GLSurfaceView setRenderer(new segitiga());}}

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_latih7_grafik_klasik, menu);return true;}

}

Kemudian buat class dengan nama “segitiga.java”, pada Src yang sama, ketikan

script di bawah ini:

<segitiga.java>

package com.example.latih7_grafik_klasik;import java.nio.ByteBuffer;import java.nio.ByteOrder;import java.nio.FloatBuffer;import javax.microedition.khronos.egl.EGLConfig;import javax.microedition.khronos.opengles.GL10;import android.opengl.GLSurfaceView;public class segitiga implements GLSurfaceView.Renderer{

private FloatBuffer triangle;public void onSurfaceCreated(GL10 gl, EGLConfig config) {// Set the background frame color to blue gl.glClearColor(0.0f, 0.0f, 0.9f, 1.0f);// initialize the triangle vertex array initShapes();// Enable use of vertex arraysgl.glEnableClientState(GL10.GL_VERTEX_ARRAY);}public void onDrawFrame(GL10 gl) {// Redraw background colorgl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);// Draw the triangle using green color gl.glColor4f(0.0f, 1.0f, 0.0f, 0.0f); gl.glVertexPointer(3, GL10.GL_FLOAT, 0, triangle); gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);}public void onSurfaceChanged(GL10 gl, int width, int height) {gl.glViewport(0, 0, width, height);}private void initShapes(){float vertices[] = {// (x, y, z) of triangle-0.6f, -0.5f, 0,0.6f, -0.5f, 0,0.0f, 0.5f, 0};// initialize vertex Buffer for triangle// argument=(# of coordinate values * 4 bytes per float)ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);// use the device hardware’s native byte ordervbb.order(ByteOrder.nativeOrder());

Page 64: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6363

// create a floating point buffer from the ByteBuffer triangle = vbb.asFloatBuffer();// add the coordinates to the FloatBuffer triangle.put(vertices);// set the buffer to read the first vertex coordinates triangle.position(0);}

}

VII.4. SOAL (UJI KEMAMPUAN),

Kerjakan setiap permasalahan dengan menuliskan source code yang

dibutuhkan, masing-masing simpan dengan nama file SOAL7_1, SOAL7_2,

dan SOAL7_3.

1. Ubahlah latihan dengan merubah bentuk segitiga yang lain.

2. Buat bentuk polygon 5, dan 6 sisi.

3. Kembangkan ke dalam bentuk lingkaran.

Page 65: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6464

BAB VIII IMAGE ATAU CITRA

VIII.1. TUJUAN

Menampilkan, memodifikai, mengatur, dan analisa citra merupakan bagian dari pemrosesan

citra, dan pemrosesan citra merupakan bagian dari grafik. Grafik dalam ilmu pemrograman

dibedakan menjadi grafik klasik dan grafik moderen, klasik berkaitan dengan kurva dan

moderen berkaitan dengan citra atau gambar dengan berbagai format seperti BMP, JPG, GIF,

dan yang lain. Tujuan dari BAB kedelapan ini adalah,

1. Mahasiswa mampu mengenal citra yang diimplementasikan ke dalam android

2. Mahasiswa mampu mendesain project untuk memanggil, mengedit, menampilkan dan

menyembunyikan citra.

3. Mahasiswa mampu melakukan pengolahan citra sederhana di dalam android.

VIII.2. TEORI DASAR

VIII.2.1 Image

Android secara umum mendukung 3 jenis format gambar, yaitu PNG, JPG, dan GIF. Gambar

yang di simpan dalam folder res/layout/drawable, secara otomatis akan dikenal oleh android.

Untuk SDK Android versi 1.6 terdapat beberapa direktori drawable, untuk keperluan resolusi

layar yang berbeda-beda. Ada resolusi low, medium, dan high; nama-nama direktorinya

adalah drawable-mdpi, drawable-hdpi, dan drawable-ldpi. Android juga mengijinkan kita untuk

membuat citra pada DPI yang berbeda untuk menambah penampilan pada aplikasi kita.

Semua nama file harus menggunakan huruf kecil, dan bisa terdiri dari huruh, angka dan garis

bawah.

VIII.2.2 Memanggil Image

Komponen layout untuk menampilkan citra adalah elemen utama yang digunakan untuk

menampilkan gambar di dalam android. Silakan coba copy kan gambar ke dalam

res/layout/drawable-mdpi, dan usahakan ada file gambar yang bernama “test” kemudian

tuliskan script sederhana ini ke dalam project anda

<ImageView android:id="@+id/test_image" android:src="@drawable/test" android:layout_width="wrap_content" android:layout_height="wrap_content"/>

Kemudian tambahkan script sederhana ini ke dalam file <*.java> anda,

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);ImageView image = (ImageView) findViewById(R.id.test_image);

Page 66: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6565

Kemudian coba running project anda, anda akan mendapatkan bahwa gambar tidak langsung

tampil tetapi dlam proses memanggil gambar.

VIII.2.3. Menampilkan Image

Mengubah citra yang dilakukan dengan menggunakan bantuan komponen object ImageView

untuk memanggil sekalian menampilkan citra, sehingga citra lama yang tampil di screen akan

ganti dengan citra yang di set seperti di bawah ini:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);ImageView image = (ImageView) findViewById(R.id.test_image);image.setImageResource(R.drawable.test2);

VIII.3. LATIHAN PROGRAM :

Pada Bab ini kita akan mencoba melakukan latihan untuk memanggil, menampilkan,

memutar, dan melakukan deteksi tepi. Yang perlua anda persiapkan adalah mengkopikan citra

sembarang ke dalam folder yang diminta dalam script, dan ubah namanya sesuai dengan yang

diminta dalam script.

VIII.3.1. Menampilkan Gambar antena, untuk itu copykan gambar antena pada src ->

drawable, file antena1; kemudian juga kopikan file ball_small pada direktori

yang sama, kemudian ikuti langkah berikut:

1. Buat aplikasi dengan nama gb1, dan nama yang untuk yang lain.

2. Buat desain seperti di bawah ini:

Gambar 8.1 Desain Panggil Gambar

3. Tambahkan script yang ada dalam lingkaran berikut, pada file “gb1.XML”

<gb1.xml>

Page 67: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6666

Gambar 8.2. Coding gb1.XMLb

4. Ketikkan script untuk gb1.java berikut:

<g1Activity.java>

package com.example.gb1;

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

public class Gb1Activity extends Activity {

@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.gb1);

}public void tampil (View v){ImageView gb1=(ImageView)findViewById(R.id.imageView1);gb1.setImageResource(R.drawable.ball_small);

}

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

Page 68: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6767

getMenuInflater().inflate(R.menu.gb1, menu);return true;

}}

VIII.3.2. Latihan Pemrosesan Citra Putar, Brightness, Grey Scale, dan deteksi tepi. Ikuti

langkah berikut ini:

1. Buat aplikasi project dengan nama Gambar2, dan berikan nama yang sama untuk

semua file.

2. Copykan file gambar atau foto pada folder src->drawable dan ubah namanya menjadi

bapak.

3. Buat desain seperti di bawah ini:

Gambar 8.2. Desain Aplikasi project Gambar2

4. Ketikan script berikut:

<gambar2.xml>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="fill_parent" >

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

Page 69: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6868

android:layout_centerVertical="true" android:text="@string/hello_world" tools:context=".Gambar2Activity" />

<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/bapak" />

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginLeft="23dp" android:layout_marginTop="54dp" android:onClick="tekan" android:text="Putar" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_alignRight="@+id/imageView1" android:onClick="tekan2" android:text="Brightness" />

<Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/button2" android:layout_marginLeft="18dp" android:layout_toRightOf="@+id/textView1" android:text="Grey Scale" android:onClick="tekan3"/>

<Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_below="@+id/button1" android:layout_marginTop="37dp" android:text="Bagian Tepi" android:onClick="tekan4"/>

</RelativeLayout>

5. Ketikkan script untuk string berikut:

<string.xml>

<resources>

<string name="app_name">gambar2</string>

Page 70: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 6969

<string name="hello_world">Hello world!</string><string name="menu_settings">Settings</string><string name="title_activity_gambar2">gambar2</string><string name="tekan">putar </string><string name="tekan2">pencahayaan </string><string name="tekan3">grey scale</string><string name="tekan4">Garis Tepi </string>

</resources>

6. Ketikkan coding berikut pada file java,<Gambar2Activity.java>

package com.example.gambar2;

import com.example.gambar2.R.id ;

import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Color;import android.widget.ImageView;import android.graphics.Matrix;

public class Gambar2Activity extends Activity {

@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.gambar2);

}//===========================================================

public void putar(){ImageView image; Bitmap bMap; Matrix matrix;

//Get ImageView from layout xml fileimage = (ImageView) findViewById(R.id.imageView1);

//Decode Image using Bitmap factory.bMap = BitmapFactory.decodeResource(getResources(),

R.drawable.bapak);

//Create object of new Matrix. matrix = new Matrix();

//set image rotation value to 45 degrees in matrix. matrix.postRotate(45);//matrix.postTranslate(400, 5);

//Create bitmap with new values.Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0,

bMap.getWidth(), bMap.getHeight(), matrix, true);

//put rotated image in ImageView. image.setImageBitmap(bMapRotate);

}

Page 71: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7070

public void tekan (View vew){putar();

}//==================================================================

public void cahaya(int cahayaofset){ImageView image; Bitmap bMap; Matrix matri x ;

//Get ImageView from layout xml fileimage = (ImageView) findViewById(R.id.imageView1);

//Decode Image using Bitmap factory.bMap = BitmapFactory.decodeResource(getResources(),

R.drawable.bapak);

int lbr=bMap.getWidth(); int tg=bMap.getHeight(); int[] ttk=new int[lbr*tg];bMap.getPixels(ttk, 0, lbr, 0, 0, lbr, tg);int indek=0;for(int y=0; y<tg; y++){

for (int x=0; x<lbr; x++){int r = (ttk[indek]>> 16) & 0xff;int g = (ttk[indek] >> 8) & 0xff;int b = ttk[indek]& 0xff;r = Math.max(0, Math.min(255, r+ cahayaofset)); g = Math.max(0, Math.min(255, g+ cahayaofset)); b = Math.max(0, Math.min(255, b+ cahayaofset)); ttk[indek++]=0xff000000|(r<<16)|(g<<8)|b;

}}bMap=Bitmap.createBitmap(lbr, tg, Bitmap.Config.RGB_565); bMap.setPixels(ttk, 0, lbr, 0, 0, lbr, tg); image.setImageBitmap(bMap);

}public void tekan2 (View vew){

cahaya(50);}

//========================================================public void grey(){

ImageView image; Bitmap bMap; Matrix matri x ;

//Get ImageView from layout xml fileimage = (ImageView) findViewById(R.id.imageView1);

//Decode Image using Bitmap factory.bMap = BitmapFactory.decodeResource(getResources(),

R.drawable.bapak);

int lbr=bMap.getWidth(); int tg=bMap.getHeight(); int[] ttk=new int[lbr*tg];bMap.getPixels(ttk, 0, lbr, 0, 0, lbr, tg);

Page 72: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7171

int indek=0;for(int y=0; y<tg; y++){

for (int x=0; x<lbr; x++){int r0 = (ttk[indek]>> 16) & 0xff;int g0 = (ttk[indek] >> 8) & 0xff;int b0 = ttk[indek]& 0xff;

int r = Math.round((r0+g0+b0)/3);int g = Math.round((r0+g0+b0)/3);int b = Math.round((r0+g0+b0)/3);ttk[indek++]=0xff000000|(r<<16)|(g<<8)|b;

}}bMap=Bitmap.createBitmap(lbr, tg, Bitmap.Config.RGB_565); bMap.setPixels(ttk, 0, lbr, 0, 0, lbr, tg); image.setImageBitmap(bMap);

}public void tekan3 (View vew){

grey();}

//========================================================public void tepi(){

ImageView image; Bitmap bMap,bMap1; Matrix matri x ;

//Get ImageView from layout xml fileimage = (ImageView) findViewById(R.id.imageView1);

//Decode Image using Bitmap factory.bMap = BitmapFactory.decodeResource(getResources(),

R.drawable.bapak);bMap1 = BitmapFactory.decodeResource(getResources(),

R.drawable.bapak);int lbr=bMap.getWidth();int tg=bMap.getHeight();bMap1=Bitmap.createBitmap(lbr, tg, Bitmap.Config.RGB_565);

// int [] ttk =new int [lbr *tg ];// bMap.getPixels(tt k , 0, lb r , 0, 0, lb r , t g );

int batas=25;for(int y=1; y<tg; y++){

for (int x=1; x<lbr; x++){int titik=bMap.getPixel(x, y);int r0 = Color.red(titik); int g0 = Color.green(titik); int b0 = Color.blue(titik);

int vp1 = Math.round((r0+g0+b0)/3);titik=bMap.getPixel(x-1, y);r0 = Color.red(titik);g0 = Color.green(titik);b0 = Color.blue(titik);int vp2 = Math.round((r0+g0+b0)/3);titik=bMap.getPixel(x, y-1);r0 = Color.red(titik);g0 = Color.green(titik);b0 = Color.blue(titik);int vp3 = Math.round((r0+g0+b0)/3);

int s1=Math.abs(vp2-vp1);

Page 73: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7272

int s2=Math.abs(vp3-vp1);if (s1>=batas && vp1>=batas){ int warna = Color.rgb(255, 255, 255);

bMap1.setPixel(x, y, warna);}if (s1>=batas && vp1>=batas){ int warna = Color.rgb(255, 255, 255);

bMap1.setPixel(x-1, y, warna);}if (s2>=batas && vp1>=batas){ int warna = Color.rgb(255, 255, 255);

bMap1.setPixel(x, y, warna);}if (s2>=batas && vp1>=batas){ int warna = Color.rgb(255, 255, 255);

bMap1.setPixel(x, y-1, warna);}

}}

image.setImageBitmap(bMap1);}public void tekan4 (View vew){

tepi();}

//========================================================@Overridepublic boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.gambar2, menu);return true;

}}

VIII.4. SOAL (UJI KEMAMPUAN)

Kerjakan setiap permasalahan dengan menuliskan strukur aplikasinya dan

juga buat desain, tuliskan script masing masing element yang berkaitan

simpan ke dalam SOAL8_1, dan SOAL8_2

1. Buat desain dengan menampilkan sebuah gambar apa saja, kemudian olah gambar

tersebut, zooming, filter, dan contrast.

2. Fotolah suatu tempat kemudian simpan filenya dengan backgroud, dan foto pada tempat

yang sama dengan meletakkan obyek, boleh sepeda motor, orang atau apa saja, kemudian

simpan filenya dengan campuran. Kemudan lakukan pengolahan citra dengan memisahkan

obyek dengan backgroundnya, sebagai petunjuk bisa gunakan metode XOR, atau

substracting.

Page 74: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7373

BAB IX DATABASE SEDERHANA

IX.1. TUJUAN

Pemrograman berorientasi objek merupakan paradigma pemrograman yang semua data dang

fungsi dibungkus dalam kelas-kelas atau obyek-obyek. Tujuan dari BAB kesembilan ini

adalah,

1. Mahasiswa mampu membandingkan pemrograman antara logika terstrukur dengan

logika berorientasi obyek.

2. Mahasiswa mampu menyusun permasalahan dalam struktur dan kelas.

3. Mahasiswa mampu mendesain sebuah program dengan memanfaatkan struct dan

class sebagai elemen OOP.

IX.2. TEORI DASAR

Kita sebagai pengguna program Android sangat beruntung karena Android menyediakan

sebuah database yang secara default yang sudah ada di dalam library Android, yaitu SQLite.

Untuk keperluan operasi database pada smartphone atau tablet Android, SQLite sangat

memadai karena ukurannya yang kecil, cepat dan ringan dalam hal sumber daya. Karena

sifatnya sebagai embedded database, SQLite tidak memiliki server namun bentuknya adalah

library yang akan dipanggil saat program dijalankan. Seperti halnya database pada umumnya,

SQLite memiliki objek-objek seperti table, view dan index. Perintah-perintah SQL-nya pun

sangat mirip seperti yang biasa digunakan yaitu SELECT, INSERT, UPDATE, DELETE dan

sebagainya. Informasi mengenai SQLite dapat dibaca secara lengkap pada situs resminya di:

dari h tt p:/ / w ww.s q lite . o r g , y aitu:

Pada umumnya aplikasi dengan embedded database tidak menyertakan database yang sudah

berbentuk pada saat aplikasi itu diinstal pada perangkat. Jadi yang diinstal hanya programnya,

sedangkan databasenya tidak ada sama sekali. Database akan dibuat pada saat aplikasi itu

dijalankan pertama kali, yaitu program akan memeriksa apakah database ditemukan. Jika

database tidak ditemukan maka serangkaian perintah SQL akan menjalankan perintah

Page 75: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7474

CREATE yang akan membentuk file database diikuti dengan table-table di dalamnya.

Tentunya programmer harus membuat sendiri perintah SQL tersebut secara spesifik

tergantung struktur data di dalam aplikasi yang dibuatnya. Ini adalah teknik yang biasanya

digunakan programmer dalam membuat sebuah aplikasi dengan embedded database dimana

ia tidak menyertakan file database di dalam paket instalasi aplikasi.

IX.3. LATIHAN PROGRAM :

Membuat Database sederhana, yaitu create, append,...., dan yang lainnya

IX.3.1. Pada Tahap ini kita membuat database sederhana, untuk itu ikuti langkah-langkah

berikut ini:

1. Jalankan program Eclipse dan buat sebuah Android Project baru.2. Buat Project dengan nama DBProject13. Gunakan Android 2.34. Berikan nama yang sama untuk beberapa file yang lain5. Tambahkan sebuah class baru dan beri nama DBAdapter.

Tekan Finish untuk melanjutkan.Tambahkan perintah import berikut ini pada program header DBAdapter.java.

4. Perhatikan beberapa library SQLite yang akan digunakan disebutkan di situ.

Page 76: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7575

==============================================================import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import ndroid.database.sqlite.SQLiteOpenHelper; import android.util.Log;

5. Ketikkan skrip berikut ini di dalam class DBAdapter. Perhatikan class ini mengandung sebuah constructor DBAdapter(Context) untuk menginisiasi class, kemudian method open dan close masing-masing untuk membuka dan menutup database.

public class DbAdapter {private static final String TAG="DbAdapter"; private static finalString DATABASE_NAME="books"; private static final intDATABASE_VERSION=1;private static final String TABLE_CREATE = "create table titles (_id integerprimary key autoincrement, "+ "isbn text not null, title text not null, "+ "publisher text not null)";private static final String TABLE_DROP = "DROP TABLE IF EXISTStitles";

private final Context context; private DatabaseHelper dbHelper;private SQLiteDatabase db;

public DbAdapter(Context ctx) {this.context = ctx;dbHelper = new DatabaseHelper(this.context);}

private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context ctx) {super(ctx, DATABASE_NAME, null, DATABASE_VERSION);}

@Overridepublic void onCreate(SQLiteDatabase db) {

db.execSQL(TABLE_CREATE);

@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion

+ ", which will destroy all old data");db.execSQL(TABLE_DROP);onCreate(db);}}public DbAdapter open() throws SQLException { db = dbHelper.getWritableDatabase(); return this; }public void close() {dbHelper.close();

}}

6. Sampai tahap ini jalankan aplikasi tersebut untuk menguji-coba dengan cara klik-

kanan nama pada projek di dalam Package Explorer, kemudian pilih Run As Android

Page 77: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7676

Application.

7. Tunggu sejenak sampai emulator Android ditampilkan dan menjalankan aplikasi ini.

Sepintas Anda tidak akan melihat sesuatu yang istimewa pada tampilan

aplikasi tersebut, kecuali sebuah pesan yang muncul pada emulator.

8. Perhatikan potongan-potongan program berikut:

MainActivity.java DBAdapter.java

DBAdapter db = new DBAdapter(this); public DBAdapter(Context ctx) {this.context = ctx;dbHelper = new DatabaseHelper this.context);

}

private static class DatabaseHelper extendsSQLiteOpenHelper {

DatabaseHelper(Context ctx) {super(ctx, DATABASE_NAME, null,

DATABASE_VERSION);}

@Overridepublic void onCreate(SQLiteDatabase db) {

db.execSQL(TABLE_CREATE);}

private static final String TABLE_CREATE = "create table titles (_id integer primary key autoincrement, "+ "isbn text not null, title text not null, "+ "publisher text not null)";

Saat MainActivity.java membuat objek DBAdapter dengan di dalam baris “DBAdapter db

= new DBAdapter(this);” maka rangkaian pemanggilan baris-baris program lainnya

akan dijalankan seperti diperlihatkan pada gambar di atas, seperti pembuatan objek

DatabaseHelper dan pemanggilan method super, onCreate dan terakhir yang berujung

pada dijalankannya method execSQL untuk membuat sebuah table bernama titles.

Tanpa disadari sebuah file database bernama books dengan sebuah table titles di

dalamnya telah terbentuk. Lalu sekarang bagaimana memastikan database ini telah

terbentuk? Satu- satunya cara tentunya harus menemukan bahwa file database itu

memang ada, bukan?

a. Jalankan menu Window -> Open Perpective -> DDMS atau cukup meng-klik icon

DDMS, perpective pada sudut kanan-atas layar.

Page 78: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7777

b. Pada tab File Explorer, buka folder data -> data.

c. Cari nama package dari projek ini (pada contoh ini adalah

net.houseoflife.dbsample), kemudian buka foldernya hingga ditemukan folder

databases dan sebuah file database di dalamnya. Itu adalah file database SQLite

yang dibentuk oleh aplikasi tersebut.

File database SQLite yang tampak pada File Explorer perlu dibuka untuk memastikan

sebuah table telah terbentuk di dalamnya. Database itu tidak dapat langsung dibuka di

dalam Eclipse tetapi harus dibuka menggunakan sebuah program yang bernama SQLite

Manager. Program ini akan dijelaskan kemudian, tetapi untuk saat ini file database ini harus

dibawa keluar dari emulator agar bisa diakses dari komputer lokal.

1. Pastikan file database disorot/dipilih pada File Explorer, kemudian klik icon

dengan tulisan “Pull a file from the device” pada sudut kanan-atas layar.

Page 79: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7878

2. Simpan file tersebut pada komputer lokal

SQLite Manager adalah sebuah program yang sangat membantu programmer dalam

mengelola database SQLite seperti membuat table, index dan menjalankan perintah-

perintah SQL. Program ini sangat mudah digunakan dan betul-betul bermanfaat untuk

berbagai keperluan praktis. Satu hal lagi yang tidak kalah pentingnya: program ini

gratis

IX.4. SOAL(UJI KEMAMPUAN)

Buat Database Sederhana dengan menggunakan SQL LITE SOAL9_1, dan

SOAL9_2

1. Buat program untuk mengisi data dan menampilkan data biodata.

2. Buat program dengan membuat desain reseler, transaksi penjualan (kasir) sederhana.

Page 80: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 7979

BAB X (PERTEMUAN INI)

s.d.

(PERTEMUAN KELIMA BELAS)

Presentasi

Implementasikan Materi bab I s.d. XII kemudian desailah sebuah project, dimana masing-masing mahasiswa wajib membuat project, kemudian dikumpulkan dan di presentasikan!Setiap Pertemuan Siswa wajib menunjukkan kemajuan project yang dikerjakan, jika tidak ada kemajuan maka siswa diberi hukuman

Page 81: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 8080

SELAMAT BEKERJA, BELAJAR DAN SEMOGA ALLAH SELALU MELIMPAHKAN ILMU YANG BERMANFAAT

DUNIA DAN AKHIRAT KEPADA KITA SEMUAAMIN 99X

Page 82: buku ajar mobile internet Android untuk siswa.unlocked.doc

YHPI -> hal : 8181

DAFTAR PUSTAKA

Dimarzio,J.F,2008, Android A Programer’s Guide, MC Graw Hill, New York Chicago San

Francisco Lisbon London Madrid City.

Huang, Jim, 2011, Android Graphics, Oxlab Developer & Co-Founder.

Merier, Reto, 2009, Android Aplication Development, Wiley Publishing, Inc, United States of

America.

Djunaedi, Feri, 2011, Menggunakan Database di Android