universitas riwijaya -...
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("[email protected]");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