universitas riwijaya -...

58

Upload: lyanh

Post on 18-Mar-2019

224 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN
Page 2: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 3: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 4: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 5: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 6: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 7: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 8: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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:

Page 9: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 10: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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/

Page 11: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

9

Modul 2

2.1. MenginstallEclipse

1. Double-ClickpadashortcutEclipse.exeuntukmenjalankanEclipse

Page 12: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

10

2. Jikadibutuhkankonfigurasi workspace

Jikaandabekerjadenganbeberapaprojectdianjurkanuntukmenggunakanworkspaceyangberbedauntukmasing-masingproject.

3. Tampilanawal Eclipse

Page 13: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

11

4. Clickpadaicon untukmenujuworkbench.

Page 14: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 15: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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/

Page 16: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

15

7. Tampil:

8. SelectAll, kliknext> untukinstall

9. Review,kliknext>

Page 17: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

16

10.LicenseAgreement,KlikFinish

11.Install dalam akanberjalan,pluginADTakanterinstall

Page 18: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

17

2.3. Mengkonfigurasi lokasi SDK

1. Pada menubar, pilihwindowpreferences

2. PilihAndroidpada tabdikiri

3. AturlokasiSDK,Kemudian OK

Page 19: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

18

Modul 3

3.1. Membangun ProjectBarudi Eclipse

1. DalamEclipse,PilihFileNewProject

2. PilihAndroidAndroid ProjectNext

Page 20: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

19

3. PadaProject Name, tulis:HelloAndroid

4. UntukBuildTargetPilihAndroid2.2

5. IsikanuntukApplication Info:

ApplicationName :HelloAndroid

PackageName :emha.android.helloandroid

CreateActivity : MainActivity

MinimumSDK :8

KlikFinish

Page 21: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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:

Page 22: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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 :

Page 23: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

22

3.3. MenjalankanProjectAplikasiAndroiddenganEmulator

1. Sebelumprojectaplikasidijalankan,atur terlebihdahulurunconfiguration

PadaMenuBarRunRunConfiguration

2. PilihAndroidApplication

3. Kemudianklikikonnew

Page 24: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

23

4. MasukanNama Konfigurasi danPilihProjectyangakandijalankandengankonfigurasi ini

Name :ContohKonfigurasi1

Project :HelloAndroid

PadaTabTarget : PilihAutomatickemudianAVD2_2_Default_HVGA

Page 25: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

24

5. Jalankan

6. TampilanAVD

Page 26: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

25

Page 27: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

26

3.4. Struktur ProjectAndroid

PadaProject Explorerterlihatdetail strukturdarisuatuProjectAndroid

Terdapat beberapafolderdibawahNamaProject, yaitu:

src

merupakanfolderuntuksource

gen

merupakanfolder misterius.Folder ini berikanfileyangdigenerateolehADT

AndroidVersion(misal:Android2.2)

assets

Page 28: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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.

Page 29: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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.

Page 30: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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:

Page 31: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 32: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

31

7. Tambahkanbuttonkedalammain.xml, menjadi sbb:

8. Coba tampilkan Visual Designer

9. AturRun Configuration

10.Jalankan Aplikasi PengalihModeSilent

Page 33: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

32

Page 34: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 35: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

31

15.Padabagianataskode, akanterdapat beberapatambahan import sbb:

16.Untukselanjutnyaagakmanajemenkodeprogram menjadilebihbaik, makakitaubah,

denganmenempatkankodeprogram denganfungsitertentudalam satupaket method

Page 36: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

32

17.Untukselanjutnyakitaakancobabekerjadenganaudioservicedanpengaturanmode.

Lengkapikodeprogram menjadisbb:

Page 37: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

33

18.Jalankanaplikasi

Page 38: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

34

KlikButton

Page 39: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 40: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 41: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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"

Page 42: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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>

Page 43: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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.

Page 44: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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>

Page 45: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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("[email protected]");radioLaki.setChecked(true); checkBaca.setChecked(true);checkMemancing.setChecked(false);checkBersepeda.setChecked(true);

}});

}}

Page 46: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

42

10.Jalankanaplikasi

11.KlikbuttonOK

Page 47: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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)

Page 48: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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.

Page 49: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 50: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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:

Page 51: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

47

5. Padalayout,buat sebuahlayoutbarudengannamawidget.xml

6. TambahkansebuahImageView,danaturpropertiessehinggadidapatkondisiwidget.xml sebagai berikut:

Page 52: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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));

}

Page 53: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 54: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

50

d. Tipe filetersebut adalahAppWidgetProvider

e. KlikFinish

9. Lengkapi widget_provider.xmlmenjadisbb:

Page 55: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 56: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

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

Page 57: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

53

b. Akanmunculpopup,pilihwidgets

c. KemudianPilihPengalihModeSilent

Page 58: Universitas riwijaya - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/Praktikum-Pemrog... · Universitas riwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN

54

12.Coba jalankanaplikasi,klikiconwidgets PengalihModeSilentdi homescreen