universitas riwijaya -...

Post on 18-Mar-2019

224 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Universitas riwijaya

Fakultas Ilmu

Komputer

Laboratorium

LEMBAR

PENGESAHAN

MODUL

PRAKTIKUM

SISTEM

MANAJEMEN

MUTU ISO

9001:2008

No. Dokumen Tanggal 4 AGUSTUS 2016

Revisi Halaman 2 DARI 48

MODUL PRAKTIKUM

Mata Kuliah Praktikum : Pemrograman Bergerak

Kode Mata Kuliah Praktikum : FSI12317

SKS : 1

Program Studi : SISTEM INFORMASI

Semester : 5 (Ganjil) 2016/2017

DIBUAT OLEH DISAHKAN OLEH DIKETAHUI OLEH

DOSEN PENGAMPUH

Rahmat Izwan Heroza, M.T.

KETUA JURUSAN

Endang Lestari R, M.T.

WAKIL DEKAN 1

BIDANG AKADEMIK

Syamsuryadi, S. SI., M. Kom

DAFTAR ISI

Cover........................................................................................................................................................ 1

Lembar Pengesahan..................................................................................................................................2

Daftar Isi...................................................................................................................................................3

Modul 1.....................................................................................................................................................4

Pendahuluan..........................................................................................................................................4

Dasar Pemrograman Android..............................................................................................................5

Fitur Perangkat Keras Android........................................................................................................... 6

Fitur Perangkat Lunak Android.......................................................................................................... 7

Framework Android.............................................................................................................................8

Perangkat Lunak Pengembangan...................................................................................................... 10

Modul 2...................................................................................................................................................11

Menginstall Eclipse.............................................................................................................................11

Mengkonfigurasi Eclipse dengan ADT............................................................................................ 13

Mengkonfigurasi Eclipse dengan SDK............................................................................................ 17

Modul 3...................................................................................................................................................18

Membangun Project Baru di Eclipse.................................................................................................. 18

Mengkonfigurasi Emulator................................................................................................................20

Menjalankan Project Aplikasi Android dengan Emulator...............................................................22

Struktu Project Android.....................................................................................................................26

Modul 4...................................................................................................................................................28

Modul 5...................................................................................................................................................35

Modul 1

2

1.1. Pendahuluan

Terdapat beberapa alasan mengapa Android berkembang dengan pesat dan kenapa

developersebaiknya membangunAplikasi Android.

a. MarketShare

Developermemiliki kesempatanuntuk mengembangkanaplikasiuntukpasaryangrelatif

barudansedangberkembangpesat. KeberadaanAndroidMarketakan menempatkan

aplikasiyangdibuatolehdeveloperlangsung kepadapengguna.Pengguna tidakperlu mencari

melaluiinternetuntukmenemukandanmeng-installaplikasi yangdibuatoleh developer.Penggunacukup

membukaAndroidMarketyangsudahter-installdiperangkat androidpenggunadan

mengaksesaplikasiyangpenggunabutuhkandanmeng-install ke dalamperangkat androidpengguna.

b. Time to Market

TerdapatAndroidAPIs (ApplicationProgramming Interfaces) yang memudahkandeveloper

untukmembangunaplikasi denganmudahdanwaktuyangsingkat.

c. OpenPlatform

SistemoperasiAndroid merupakan platformterbuka.Sehinggatidakmerujukpadasuatu

perusahaanhardware atausuatuprovider.Platform terbuka android memungkinkan perkembanganmarket

dengansangatcepat, karenasemuaperusahaanhardwaredan providerdapatmembuat dan menjual

perangkat android.Sourcecodeandroiddapatdi akses melalui athttp://source.android.com, untuk

digunakan dan dimodifikasi sesuai kebutuhanperusahaanhardware, providerataudeveloperaplikasi.

d. CrossCompatibility

Androiddapatberjalan diberbagaiperangkatdenganukurandanresolusilayaryang berbeda.Android

memiliki fituryangmembantu developeruntuk mengembangkan aplikasi yang compatible untuk

berbagai perangkat (cross-compatible application). Google memiliki

featuredetectionyangmengaturagaraplikasiyangdikembangkanolehdeveloper hanya berjalan di perangkat

yang compatible. Sebagai contoh, jika suatu aplikasimembutuhkan kameradepan(front-

facingcamera)makahanyaperangkatandroiddengan kameradepanyangakandapat melihat aplikasitersebut

di AndroidMarket.

Suatuperangkatandroidharus mengikutisuatuaturanuntukmendapatkansertifikat kesesuaian

terhadapAndroid Market untukmemastikanaplikasi dapat berjalandiatasnya,

diantaranyakeberadaan:(a)Kamera,(b)Kompas,(c)GPS(GlobalPositioningSystem),

(d)BluetoothTransceiver.

e. MashupCapability

MashupCapabilitymerupakan kemampuanuntukmengkombinasikan duaataulebih

layananuntukmengembangkan suatu aplikasi.Sebagaicontoh,developerdapatmembuat mashup dengan

menggunakan kamera dan GPS, sehingga terbangun aplikasi pengambilanphotodengandilengkapi

3

secaratepatlokasi pengambilannya.

Beberapacontohlainmashupyang mungkindikembangkandalamsuatuaplikasi,yaitu:

1. GeolocationdanSocialNetworking

Suatuaplikasi yangsecaraotomatismelakukantweet posisi penggunasetiap10menit.

2. GeolocationdanGaming

Location-basedgaming merupakan modelgame yangsaatinipopular.Gamememiliki

backgroundservicesuntukmengecekposisipenggunadan membandingnyadengan

posisipenggunayanglaindiareayangsama.Jikajarakantarapenggunakurangdari

1km misal,makaakandiberikannotifikasi danmemungkinkan merekauntukbertarung melalui

gametersebut.

1.2. DasarPemrograman Android

MembangunAplikasiAndroidsangat mudah,defaultuntukbahasa pemrograman yang digunakan oleh Android

adalah java.Tidaksemua fitur java yangada digunakan akan tetapi sebagiandari

javayangseringdisebutdenganDalvikVirtualMachine. Beberapabagiankecil dari

frameworkAndroidmenggunakanbahasa XMLuntukscripting-nya.

a. Activity

ActivitymerupakancontaineruntukUser Interface (UI). SebuahAplikasiAndroid terbangun dari

satuataubeberapaActivity.

b. Intents

Intent merupakansistem pesanutamayang menjalankanAndroid. Intent terdiri dari Action

yangharusdijalankan (Tampil,Ubah, Dial,dll)danData.

Intentdigunakanuntukmemulai aktivitasdankomunikasi antarbagiandari sistemAndroid. Suatuaplikasi

dapatmengirimkanataumenerimaintent.

1. MengirimkanpesandenganIntent

Ketikasuatuaplikasimengirimkan suatu intent,aplikasimengirimkan pesan memberitahukan Android

untuk menjalankan sesuatu.Misal: memberitahukan Android untukmenjalankansuatuActivitydari

aplikasi atau menjalankanaplikasi lain.

2. MendaftarkanIntentReceiver

Mengirimkan pesan dengan Intent bukan berarti sesuatu selanjutnya akan terjadi secara otomatis.

Aplikasi harus mendaftarkan intent receiver yang memperhatikan

intentdanmemberitahukanAndroidapayangharusdilakukan.

Contoh,jikapengguna menekanlamasuatuimagediimagegallery,makaakan

memunculkancontextmenuyangberkaitan denganimagesharing.Dikarenakan terdapatbeberapa

receiversyangdidaftarkanberkaitandenganimage sharing(email,

messaging,Bluetooth,dll)makacontext menu dimunculkanuntukmemberikanopsi

4

keputusankepadapenguna.

c. CursorlessControls

PerangkatAndroidmenggunakan jaripengguna sebagaiinput.Jikapadacomputerbiasa digunakan pointer

mouse, kemudian left-clickuntuk berinteraksi dengan suatu tombol missal, makapengguna

Androiddapat menggunakan jarinyalangsung ke tombol.Untuk menggantikan right-click, pengguna

Android dapat menekankan jarinya agak lama ke layar, kemudiancontext menuakanmuncul.

d. ViewsdanWidgets

Viewmerupakanelemendasar UI (User Interface). Sebagaicontohareakotakpada layar yangbertanggung

jawabuntuktampilandanmenerimaevent (eventhandling).Beberapa contohviewantaralain:

(1)ContextMenu,(2)Menu, (3) View,(4)SurfaceView.

Widgetsadalahelemen UIyanglebihcanggih.Merupakancontroluntukinteraksiantara

sistemdenganpengguna.Beberapacontoh Widgetsantaralain:(1)Button,(2)CheckBox, (3)DatePicker, (4)

DigitalClock, (5) Gallery,(6) FrameLayout, (7) ImageView,(8) RelativeLayout,(9)PopupWindow.

Untukmempelajariwidgetslebihlanjutdapat dilihat melalui url:

http://developer.android.com/reference/android/widget/package-summary.htmle.

Asynchronous Calls

Android memiliki sebuah classyangAsyncTaskyang memungkin aplikasi menjalan beberapaoperasipada

waktuyangbersamaan, tanpaharusmengaturbagaimana thread berjalansecara

khusus.AsyncTaskmemungkindeveloperuntukmembangunmodel programyangbersihuntukproses-

prosesasinkron.

Prosesasinkronbiasa digunakanuntukproses-prosesyangmembutuhkanwaktulama,

misal:NetworkCommunication(Internet),MediaProcessing,danberbagaiproseslain

yangmengharuskanpengguna menunggu.Jika penggunaharus menunggu,makadapat

digunakanprosesasinkronuntukmenampilkan UIyangmemberitahukanpenggunaapa yangterjadi.

f. BackgroundServices

Servicesmerupakanaplikasiyangberjalandibelakangdantidakterlalupentingmemiliki

UI,sebaicontoh:antiivirus. Sebagianbesarpemutasmusic(musicplayer)dariAndroid

Marketberjalansebagai BackgroundServices,yangmanapenggunadapatmendengarkan musiksembali

mengeceke-mailataumelakukan tugaslainyangmembutuhkan penggunaantampilanlayar.

1.3. Fitur PerangkatKerasAndroid

Perangkat Android memiliki beberapa fitur perangkat keras didalamnya, yang dapat

dimanfaatkandeveloperdalammembangunaplikasi.

a. Touchscreen

PerangkatAndroidmemilikifiturlayarsentuh (touchscreen)yangmemberikan beberapa kemungkinanan bagi

5

pengguna untukberinteraksi dengan aplikasi dengan menggunakan

jari.Penggunadapatmelakukanswipe,flip,drag,danpinch untukzoom.Androidjuga

mendukungmultitouchyangberarti keseluruhanlayardapatdisentuhdengansatuatau lebih jari padasaat

yangbersamaan.

b. GPS

Sistem operasi Android mendukung GPS yang memungkinkan developer untuk mengakseslokasi

pengguna.Contoh aplikasi yangmemanfaatkan GPS adalahAplikasi

Peta(Map)yangmenunjukkanlokasipengguna danmemberikanpetunjukuntukmenuju suatulokasi.

c. Accelerometer

AndroidmendukungAccelerometer,yaituperangkatyangdigunakan untukmengukur

percepatan.Accelerometerdapat memberitahukan apabilasuatuPerangkatAndroid

bergerak,atauterguncang,atauberbalikarahposisinya.

d. SD Card

Androidmemiliki fituryangmemungkinkanpenggunaatauaplikasiuntukmengakses (menyimpanatau

membuka)filepadaSDCard.SDCardmerupakan mediapenyimpanan medium yang digunakanPerangkat

Androiddanbeberapaperangkatmobile lain non Androidsebagaimediapenyimpanan.

1.4. Fitur PerangkatLunakAndroid

Androidmemilikibanyakfiturperangkatlunakyangdapatdigunakanolehdeveloperdalam

mengembangkanaplikasi.Beberapafiturpopuler yangakandijabarkandisini.

a. Internet

Kemampuan aksesinternetpada Android memberikan banyakkeunggulan.Berbagai informasi secara real-

time dapat diperoleh dengan mudah dengan internet. Contoh,

sebagaipengguna,dapatmenggunakaninternetuntukmelihatjadwalpemutaran film

bioskop,cuacasuatuarea,jadwalpenerbangan danlainnya.Sebagaideveloper,dapat

menggunakaninternetuntukaksessecarareal-time kepadadata,update data.Developer juga dapat

menggunakan internet untuk menyimpan berbagai asset untuk kemudiandigunakansuatuaplikasi,seperti

dilakukanPandoradanYouTube. Denganinternet dapat dibangunmodelaplikasi yangdisebutclient-

servercomputing.Contohlain,aplikasipeta, mengaksesdatapetadan GPSdari webserver.

b. AudiodanVideoSupport

SistemoperasiAndroidmemungkinkan developermenyertakanaudio danvideodalam aplikasi denganmudah.

Berbagaistandar format audiodanvideodidukung.

c. Contact

Androidmemungkinkan akses kecontacsyangtersimpandapatPerangkatAndroid. Developerdapat

menggunakan fituriniuntukmenampilkancontactsdalamcarabaruyang berbeda.Hal

lainyangdapatdilakukanadalahmembangunaplikasi yang menggabungkan antaracontactsdengan GPS,yang

6

memberikannotifikasi kepadapengguna jikapengguna beradadi dekat alamat satucontactyangada.

d. Security

Androidmemungkinkan aplikasiuntukmelakukanbanyakhal.AkantetapiAndroidjuga

menyiapkanmekanisme keamananberupapermissionberkaitandengan beberapatugas.

Contoh:Downloadimagedan menyimpannyadiSDCard, makaharusdisetujui terlebih

dahulupermissionuntukmengakses SD Card.

e. GoogleAPIs

SistemoperasiAndroidmemungkinkandengantidakterbatas membuatpanggilantelepon,

mengorganisasicontactsataumeng-installaplikasi.Developerdapatmengintegrasikan

peta(map)kedalamsuatuaplikasidengan menggunakan MapsAPIyangmengandung MapWidgets.Berbagai

fiturdapatditambahkandenganMapsAPI,antaralain:(1)

Menampilkansuatulokasidipeta,(2)Mendapatkanpanduannavigasi,(3)Komunikasi

dataantaraaplikasidenganclouds.

1.5. FrameworkAndroid

Android sepenuhnya open source,sehingga semua developeryangmembutuhkan dapat mengakses untuk

menggunakan dan memodifikasi kode program Android. Source code androiddapat di download melalui

http://source.android.com.

Androiddibangundiatas opensourcelinux kernel2.6.Kernellinexutersebutdipilih karena menyediakanfitur

utamauntukmembangunsistemoperasi Android,diantaranya:

4) SecurityModel:Linuxkernel menanganikeamananantaraaplikasi dansistem

5) MemoryManagement:Linuxkernelmenanganimanajemenmemori untukdeveloper

6) ProcessManagement:Linuxkernelmengaturprosesdenganbaik,mengalokasikan

resourceuntukprosessesuai dengankebutuhan

7) NetworkManagement:Linuxkerneljugamenangani jaringankomunikasi

8) DriverModel:Perusahaanperangkat kerasdapat mengembangkandriversperangkat merekasecaramandiri

untukberjalandi ataslinux

Diataskernellinux tersebut,frameworkAndroiddibangundengan berbagai fitur.Fitur-fitur

tersebutdiadopsidariberbagaiprojectopensource.Beberapa fiturAndroid framework diantaranya:

7

9) AndroidRunTime:Mengandunginti libraryjavadandalvikvirtual machine

10)OpenGL(GraphicsLibrary):MerupakanAPI(ApplicationProgramInterface)yang

digunakanuntukmenghasil graphics2Ddan3D,bersifatcross-languagedan cross- platform

11)Webkit:merupakanmesinwebbrowseropensourceyangmenyediakanfungsionalitas

untukmenampilkanwebkonten

12)SQLite: merupakan opensource mesin database yang di rancang untuk sistem embedded

13)Mediaframeworks:libraryyangdigunakanuntukmenjalankandanmerekamaudio sertavideo

14)SecureSocketLayer (SSL): library ini bertanggung jawab terhadapkeamananinternet

Untukpemanfaatan fitur-fiturdalamAndroid frameworkdiatas,disediakanberbagailibrary

dalamApplicationFrameworkyangdapat digunakanolehdeveloper,diantaranya:

15)ActivityManager:Mengelolasiklushidupactivity

16)TelephonyManager: Menyediakanaksesketelephoneservice

17)ViewSystem:Menangani viewdanlayoutyangmembangunUser Interface (UI)

18)LocationManager: menemukanlokasissecarageografi

8

1.6. PerangkatLunak Pengembangan

JavaJDK http://java.sun.com/javase/downloads/index.jsp

AndroidSDK http://developer.android.com/sdk/index.html

Eclipse IDE www.eclipse.org/downloads

AndroidADT https://dl-ssl.google.com/android/eclipse/

9

Modul 2

2.1. MenginstallEclipse

1. Double-ClickpadashortcutEclipse.exeuntukmenjalankanEclipse

10

2. Jikadibutuhkankonfigurasi workspace

Jikaandabekerjadenganbeberapaprojectdianjurkanuntukmenggunakanworkspaceyangberbedauntukmasing-masingproject.

3. Tampilanawal Eclipse

11

4. Clickpadaicon untukmenujuworkbench.

13

5. Workbench

2.2. MengkonfigurasiEclipsedenganADT

Untuk dapat menggunakan Eclipse dalam membangun Aplikasi Android. Terlebih dahulu

harusdilakukankonfigurasi AndroidDevelopmentTools(ADT) dalamEclipse.

1. Jalankan Eclipse(jikabelumberjalan)

2. Pilihpada menubarHelpInstall New Software

14

3. MunculInstallwindowpops-up,yangmengijinkanuntukmenginstallplug-inbarukedalam

Eclipse.

4. KlikButtonAdd,untukmenambahkan

5. Tuliskannamapada NameField, misal:AndroidADT

6. PadaLocationField, tuliskan: https://dl-ssl.google.com/android/eclipse/

15

7. Tampil:

8. SelectAll, kliknext> untukinstall

9. Review,kliknext>

16

10.LicenseAgreement,KlikFinish

11.Install dalam akanberjalan,pluginADTakanterinstall

17

2.3. Mengkonfigurasi lokasi SDK

1. Pada menubar, pilihwindowpreferences

2. PilihAndroidpada tabdikiri

3. AturlokasiSDK,Kemudian OK

18

Modul 3

3.1. Membangun ProjectBarudi Eclipse

1. DalamEclipse,PilihFileNewProject

2. PilihAndroidAndroid ProjectNext

19

3. PadaProject Name, tulis:HelloAndroid

4. UntukBuildTargetPilihAndroid2.2

5. IsikanuntukApplication Info:

ApplicationName :HelloAndroid

PackageName :emha.android.helloandroid

CreateActivity : MainActivity

MinimumSDK :8

KlikFinish

20

6. DidapatkantampilanpadaPackageExplorer sbb:

3.2. MengkonfigurasiEmulator

Untukmelihatapakah aplikasiyangdibangunpada kondisiberjalanbaikatau tidak,dapat

dicobadijalankandenganemulator.Developerharustahubagaimana men-setupemulator denganbeberapa

konfigurasiyangberbeda.Pertamaharus membuatAndroidVirtualDevice (AVD)yangdisebutjuga

emulator.AVDmerupakan PerangkatVirtualAndroidyangmemiliki fitur seperti Perangkat Android

sesungguhnya.

1. Buka AVD Manager, pada toolbarklikikon (OpensAndroidVirtual DeviceManager)

2. Muncul kotakdialogsbb:

21

3. KlikNew

Kemudianisikan:

Name :2_2_Default_HVGA

Target :Android2.2–API Level 8

SD Card :

<sementarakosongkan>Skin :HVGA

Hardware :

<sementaraabaikan>KlikButtonCreateAV

G

Didapatkanhasil sebagai berikut :

22

3.3. MenjalankanProjectAplikasiAndroiddenganEmulator

1. Sebelumprojectaplikasidijalankan,atur terlebihdahulurunconfiguration

PadaMenuBarRunRunConfiguration

2. PilihAndroidApplication

3. Kemudianklikikonnew

23

4. MasukanNama Konfigurasi danPilihProjectyangakandijalankandengankonfigurasi ini

Name :ContohKonfigurasi1

Project :HelloAndroid

PadaTabTarget : PilihAutomatickemudianAVD2_2_Default_HVGA

24

5. Jalankan

6. TampilanAVD

25

26

3.4. Struktur ProjectAndroid

PadaProject Explorerterlihatdetail strukturdarisuatuProjectAndroid

Terdapat beberapafolderdibawahNamaProject, yaitu:

src

merupakanfolderuntuksource

gen

merupakanfolder misterius.Folder ini berikanfileyangdigenerateolehADT

AndroidVersion(misal:Android2.2)

assets

27

merupakanfolderuntukmenempatkanberbagai fileasset(data)yangdimilikiproject

(contoh:filedatadariSQLite).Datadi folderinidapatdiakses melaluiAssetManager

ataumetodegetAssets().

res

merupakanfolderuntukmenempatkanberbagairesourceyangdigunakanolehproject, missal:filexml,iconataupicture.

Selain folder-folderdiatas,terdapatbeberapa folderlainmisal folder:bin,libs,danreferenced libraries.

Folderbintidaktampakdikarenakandihidden.Sementara folderlibsdanreferencedlibraries tidakakan

muncul sampaidevelopermenambahkanthird-partylibrarydandireferensidalam project.

FileAndroidManifest.xml membantudevelopermengidentifikasi komponenyangdibuilddan

dijalankanolehaplikasi.

Project.properties membantu developer mengidentifikasi default properties dari project android.

28

Modul 4

1. Buatlahsebuahproject androidbarudenganaturansebagai berikut:

ProjectName :PengalihModeSilent

ApplicationName:PengalihModeSilent

Contents :default

BuildTarget :Android2.2

Package Name :emha.android.pengalihmodesilent

CreateActivity :MainActivity

MinSDKVersion :8

2. Bukafilemain.xml difolderreslayout

Default-nya yang akan muncul adalah Visual Designer dari main.xml, klik pada tab main.xml

dibagianbawah.

29

Default Deklarasi XML

<?xmlversion="1.0"encoding="utf-8"?>

Baris pertama menunjukan deklarasi file xml. Memberikan informasi tipe file tersebut terhadapeditor.

TipeLayout

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical">

BarisselanjutnyadiatasmenunjukantipeLayoutyangdigunakan,dalamhaliniadalah

LinearLayout(akandibahaslebihlanjut nanti).

View

<TextView android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/>

Barisselanjutmenunjukanblokuntukview,yaitublokdasarpembangunuserinterface. Dalamhal ini

adalahsebuahTextView.

3. Dari main.xml, hapus bagian view (TextView) yang ada. Sehingga main.xml secara

keseluruhanakanmenjadi sbb:

30

4. Tambahkan(tarik) imageyangakandigunakankedalam folder resdrawable-mdpi

phone_on.pnguntukmodeteleponregular

phone_silent.pnguntukmodeteleponsilent

5. TambahkanimagekedalamLayout

Dilakukandenganmengetikkankodetambahandi main.xml sehinggamenjadi sbb:

6. Tambahkan(tarik) iconuntukaplikasikeproject, resdrawable-mdpi

31

7. Tambahkanbuttonkedalammain.xml, menjadi sbb:

8. Coba tampilkan Visual Designer

9. AturRun Configuration

10.Jalankan Aplikasi PengalihModeSilent

32

30

11.BukafileMainActivity.javadifolder srcemha.android.pengalihmodesilent

12.Kitaakanmencobamembuateventhandlerpertama, yang menanganijikabuttondiklik

Tambahkankodeprogramsbb:

13.Tandacrossmerahdikiri pinggir menunjukanterdapaterrorpadabariskode bersangkutan.

14.Hal ini terjadidikarenakanobjectButtondan View belumdikenali.

Pada tandacrossmerah, klik kemudianklikimportuntukmenambahkanlibrary

31

15.Padabagianataskode, akanterdapat beberapatambahan import sbb:

16.Untukselanjutnyaagakmanajemenkodeprogram menjadilebihbaik, makakitaubah,

denganmenempatkankodeprogram denganfungsitertentudalam satupaket method

32

17.Untukselanjutnyakitaakancobabekerjadenganaudioservicedanpengaturanmode.

Lengkapikodeprogram menjadisbb:

33

18.Jalankanaplikasi

34

KlikButton

35

Modul 5

1. Buatlahsebuahproject androidbarudenganaturansebagai berikut:

ProjectName :Materi4_NIMANDA

ApplicationName:Materi4_NIMANDA

Contents :default

BuildTarget :Android2.2

Package Name :emha.android.materi4

CreateActivity :MainActivity

MinSDKVersion :8

2. Bukamain.xml difolder layout

36

3. HapusTextView yangsudahadasehinggamain.xml menjadisbb:

4. Melalui Graphical Layout, tambahkanview-viewsebagai berikut:

12

3

4

5

6

7

8

9

10

11

5. Aturpropertysemuaviewsbb:

No TipeView Properti Nilai

1 TextView id @+id/textNama

text NamaLengkap

typeFace monospace

textSize 24dp

textStyle Bold

2 EditText (PlainText) id @+id/editNama

typeFace monospace

textSize 24dp

3 TextView id @+id/textEmail

text Email

typeFace monospace

37

textSize 24dp

textStyle Bold

4 EditText (E-Mail) id @+id/editEmail

typeFace Monospace

textSize 24dp

5 TextView id @+id/textJenisKelamin

text JenisKelamin

typeFace monospace

textSize 24dp

textStyle Bold

6 RadioGroup

a.RadioButton id radioLaki

text Laki-Laki

b.RadioButton Id radioPerempuan

text Perempuan

7 TextView id textHobi

text Hobi

typeFace monospace

textSize 24dp

textStyle Bold

8 CheckBox Id checkBaca

text Membaca

9 CheckBox id checkMemancing

text Memancing

10 CheckBox id checkBersepeda

text Bersepeda

11 Button id btnOK

text OK

6. menu.xml akanberubahmenjadisbb:

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

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

<TextViewandroid:id="@+id/textNama"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="NamaLengkap"

38

android:typeface="monospace"android:textSize="24dp"android:textStyle="bold"/>

<EditTextandroid:id="@+id/editNama"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="24dp"android:typeface="monospace"/>

<TextViewandroid:id="@+id/textEmail"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Email"android:typeface="monospace"android:textSize="24dp"android:textStyle="bold"/>

<EditTextandroid:id="@+id/editEmail"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="24dp"android:typeface="monospace"android:inputType="textEmailAddress"><requestFocus/>

</EditText>

<TextView android:id="@+id/textJenisKelamin"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="JenisKelamin"android:typeface="monospace"android:textSize="24dp"android:textStyle="bold"/>

<RadioGroupandroid:id="@+id/radioGroup1"android:layout_width="wrap_content"android:layout_height="wrap_content">

<RadioButtonandroid:id="@+id/radioLaki"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true" android:text="Laki-Laki"/>

<RadioButton android:id="@+id/radioPerempuan"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Perempuan"/>

</RadioGroup>

39

<TextViewandroid:id="@+id/textHobi"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hobi"android:textSize="24dp"/>

<CheckBoxandroid:id="@+id/checkBaca"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Membaca"/>

<CheckBox android:id="@+id/checkMemancing"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Memancing"/>

<CheckBox android:id="@+id/checkBersepeda"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Bersepeda"/>

<Buttonandroid:id="@+id/btnOK"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="OK"/>

</LinearLayout>

7. Coba jalankanaplikasi, akandidapatkantampilansbb:

Akantampakbahwa,ukuranlayarsecaravertical tidakcukupuntukmenampilkanseluruh obyekview

yangada. Solusinyaadalahdengan menambahkanScroll untukmenggulung layar kearahvertical.

40

8. TambahkanScrollView, danaturstruktur dalammain.xml

Ubah menjadi :<?xmlversion="1.0"encoding="utf-8"?>

<ScrollViewxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/scrollView1"android:layout_width="match_parent"android:layout_height="wrap_content">

<LinearLayout android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical">

<TextViewandroid:id="@+id/textNama"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="NamaLengkap"android:typeface="monospace"android:textSize="24dp"android:textStyle="bold"/>

...

</LinearLayout>

</ScrollView>

41

9. Tambahkankodeprogram kedalam btnOK, padamainActivity

JikadiklikOK, makaakan memunculkanidentitaskeForm

packageemha.android.materi4;

importandroid.app.Activity;importandroid.os.Bundle;importandroid.text.style.LineHeightSpan.WithDensity;importandroid.view.View;importandroid.widget.Button;importandroid.widget.CheckBox;importandroid.widget.EditText;importandroid.widget.RadioButton;

publicclassMainActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/

@OverridepublicvoidonCreate(BundlesavedInstanceState){

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

finalEditTexteditNama=(EditText)findViewById(R.id.editNama);

finalEditTexteditEmail=(EditText)findViewById(R.id.editEmail);

finalRadioButtonradioLaki=(RadioButton)findViewById(R.id.radioLaki);

finalRadioButtonradioPerempuan=(RadioButton)findViewById(R.id.radioPerempuan);

finalCheckBoxcheckBaca=(CheckBox)findViewById(R.id.checkBaca);

finalCheckBoxcheckMemancing=(CheckBox)findViewById(R.id.checkMemancing);

finalCheckBoxcheckBersepeda=(CheckBox)findViewById(R.id.checkBersepeda);

ButtonbtnOK=(Button)findViewById(R.id.btnOK);

btnOK.setOnClickListener(newView.OnClickListener(){

@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstubeditNama.setText("HarunAlRasyid");editEmail.setText("harun@amikom.ac.id");radioLaki.setChecked(true); checkBaca.setChecked(true);checkMemancing.setChecked(false);checkBersepeda.setChecked(true);

}});

}}

42

10.Jalankanaplikasi

11.KlikbuttonOK

43

Android memiliki beberapa resources,antara lain:

1)Layouts

Layout merupakanbagianyang mendefinisikanbagaimanakeadaanviewdalamaplikasi.

Filelayoutdefaultnyaberadadi direktori res/layouts. ADTsecaradefaultakanmembuat filemain.xml

padadirektori tersebut.

LinearLayout Layoutyang menyusunbagian-bagiannya dalamsatu

baris

RelativeLayout Layoutyangposisi dari bagian-bagiannyadapat di

deskripsikandalam relasi satudgnyglainnyaataudgn

induknya.

FrameLayout Layoutini dirancanguntukmemblokirareapadascreen

untukmenampilkansatukomponen. Developerdapat

menambahkanbeberapaanakbagian, tetapi semua

akandipatokkekiri atasscreen. Anakbagiandarilayout

akandigambarkandalamstack,yangterakhir akan beradadi

atasstack.

TableLayout Layoutyang menyusunanakbagiannyadalambarisdan

kolom

2)Strings

3)Images

4)Dimensions

Merupakanunit ukurannumerik:

- dp (density-independentpixels)

- sp (scale-independentpixels)

- pt (points)

- px(pixels))

- mm (millimeters)

- in (inches)

44

5)Styles

Stylesdi androidsangat miripdenganCascadingStyleSheets (CSS)di pengembangan

web.StylemerupakankumpulandaripropertyyangdapatditerapkanpadaView secara

mandiri,Activity,ataukeseluruhanaplikasi (melaluifile manifest). Style mendukung inheritance.

Contoh property style antara lain: font size, font color, dan screen background.

6)Themes

Theme merupakan Style yangditerapkan pada keseluruhan Activity atau Aplikasi.Jika

StylediterapakansebagaiThemedalamsuatuAplikasi,makasemuaView danActivity dalamAplikasi

akanMeng-Inheritssettingdari Style.

7)Values

Valuedapat mengandungberbagaitipeuntukaplikasi, diantaranya:

- Bool:merupakannilai Boolean.Disimpandalam filexml, biasanyadi lokasi

res/values/<filename>.xml;

Contoh: res/values/bools.xml

- Integer: merupakannilai Integer. Disimpandalam filexml,biasanyadi lokasi

res/values/<filename>.xml;

Contoh: res/values/integers.xml

- IntegerArray:merupakan ArrayInteger.Disimpandalam filexml,biasanyadi lokasi

res/values/<integers>.xml;Yang mana integersmerupakan<namafile>

- TypedArrays:merupakantipeyangdigunakanuntukmembuatArraydariberbagai

resourceyang tidaksejenis.Biasanyadisimpandi res/values/<filename>.xml; Misal

res/values/types.xml

8)Menus

Menudapatdidefinisikanmelalui kodemaupun XML.Caraawaluntukmendefinisikan menu adalah

melalui XML. Biasanyamenu diletakkan di direktori /menus.Setiap menu memilikifile .xmlsendiri.

9)Colors

Filecolorsbiasanyadiletakkandivalues/colors.xml.Fileinimemungkinkandeveloper

untukmendefinisikannamacolor, misal:login_screen_font_colors,yangberarti colordari font

yangdigunakanpadahalamanlogin.

45

LATIHAN

1. Bukakembali project PengalihModeSilent yangpernahdibuat

2. Padasesi latihanini akancobadi buatHome ScreenWidget untukAplikasi PengalihMode

Silent.Beberapaclassyangakandigunakan:

- Intent

- BroadcastReceiver

- AppWidgetProvider

- IntentService

- AppWidgetProviderInfo

HomeScreen Widgetdalamandroidmerupakanminiatureaplikasiyangdapatdilekatkan

padaaplikasilainsepertipadaHomeScreen.HalinijugadisebutAppWidgets. App

Widgetsdapatmenerimainputdaripenggunamelaluieventclickdandapatmeng-update

46

dirimerekasendirimelaluijadwalygregular.App Widgetdiimplementasikanpadahome

screendenganlong-pressing.

UntukmembuatAplikasiPengalihModeSilentlebihbermanfaat,maka akandigunakan

HomeScreenWidget,sehinggapenggunabisamenambahkanaplikasiinikehomescreen perangkat mereka.

3. Tambahkansebuahclassbarupadaprojectanda(AplikasiPengalihModeSilent),pada

packageemha.android. pengalihmodesilent, dengannama:AppWidget.java

4. Lengkapikodeprogram menjadiseperti berikutini:

47

5. Padalayout,buat sebuahlayoutbarudengannamawidget.xml

6. TambahkansebuahImageView,danaturpropertiessehinggadidapatkondisiwidget.xml sebagai berikut:

48

7. Lengkapikodeprogram padasrc/widget.java, menjadi sbb:

packageemha.android.pengalihmodesilent;

importandroid.app.Activity;importandroid.app.IntentService;importandroid.app.PendingIntent;importandroid.appwidget.AppWidgetManager;importandroid.appwidget.AppWidgetProvider;importandroid.content.ComponentName;importandroid.content.Context;importandroid.content.Intent;importandroid.media.AudioManager;importandroid.widget.RemoteViews;

publicclassAppWidgetextendsAppWidgetProvider{

@OverridepublicvoidonReceive(Contextcontext,Intentintent){

if (intent.getAction()==null){//Lakukansesuatucontext.startService(newIntent(context,ToggleService.class));

} else{super.onReceive(context,intent);

}}

@OverridepublicvoidonUpdate(Contextcontext,AppWidgetManager

appWidgetManager,int[]appWidgetIds){//LakukanSesuatucontext.startService(newIntent(context,ToggleService.class));

}

49

publicstaticclassToggleServiceextendsIntentService{publicToggleService(){

super("AppWidget$ToggleService");}

@OverrideprotectedvoidonHandleIntent(Intentintent){

ComponentNameme=newComponentName(this,AppWidget.class);AppWidgetManagermgr=AppWidgetManager.getInstance(this);mgr.updateAppWidget(me,buildUpdate(this));

}

privateRemoteViewsbuildUpdate(Contextcontext){ RemoteViewsupdateViews=new

RemoteViews(context.getPackageName(),R.layout.widget);AudioManageraudioManager=

(AudioManager)context.getSystemService(Activity.AUDIO_SERVICE);if(audioManager.getRingerMode()==

AudioManager.RINGER_MODE_SILENT){updateViews.setImageViewResource(R.id.kondisiPhone,

R.drawable.phone_on);audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

} else{updateViews.setImageViewResource(R.id.kondisiPhone,

R.drawable.phone_silent);audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

}Intenti=newIntent(this,AppWidget.class);PendingIntentpi= PendingIntent.getBroadcast(context,0,i,0);updateViews.setOnClickPendingIntent(R.id.kondisiPhone,pi);returnupdateViews;

}}

}

8. MengaturAppWidget Metadata a.

Padadirektori res/

b. Buatsatudirektori baru, NewFolder,beri nama:xml

c. Dalam folder xml, buat sebuat new android xml file, dengan nama:

widget_provider.xml

50

d. Tipe filetersebut adalahAppWidgetProvider

e. KlikFinish

9. Lengkapi widget_provider.xmlmenjadisbb:

51

10.Langkahselanjutnya, mendaftarkankomponenbarukemanifest a. Buka:

AndroidManifest.xml

Akantampaksourcexml sbb:

b. Tambahkanelemenxmlsehinggamenjadi sbb(ygdiblokorangeadalahkodeygbaru):

<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="emha.android.pengalihmodesilent"android:versionCode="1"android:versionName="1.0">

<uses-sdkandroid:minSdkVersion="8"/>

<application android:icon="@drawable/ic_launcher"android:label="@string/app_name"><activity

52

android:name=".MainActivity"android:label="@string/app_name"><intent-filter>

<actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter></activity>

<receiverandroid:name=".AppWidget"android:icon="@drawable/icon"android:label="@string/app_name"><intent-filter><actionandroid:name="android.appwidget.action.APPWIDGET_UPDATE"/></intent-filter><meta-data android:name="android.appwidget.provider"

android:resource="@xml/widget_provider"/></receiver>

<serviceandroid:name=".AppWidget$ToggleService"/></application>

</manifest>

11.Selanjutnya,MeletakkanWidget di atasHomeScreen a.

Kliklamadi homescreen

53

b. Akanmunculpopup,pilihwidgets

c. KemudianPilihPengalihModeSilent

54

12.Coba jalankanaplikasi,klikiconwidgets PengalihModeSilentdi homescreen

top related