Modul Android Gabungan 1
Modul Android Gabungan 1
TINGKAT DASAR
MATERI:
1. PERANGKAT
ANDROID
2. ARSITEKTUR
APLIKASI
ANDROID
3. INTEGRATED
DEVELOPMENT
ENVIRONMENT
ANDROID STUDIO
OLEH : DWI WAHYU W
DAFTAR ISI
TUJUAN PEMBELAJARAN:
Perusahaan yang didirikan di Palo Alto, California pada Oktober 2003 ini
digawangi oleh Andy Rubin, yang juga dikenal sebagai Bapak Android
bersama Rich Miner, Nick Sears, dan Chris White. Pada perkembangan
selanjutnya, akhirnya Android dibeli oleh Google hingga pada tahun 2008 lalu
dirilis HTC Dream, ponsel pertama yang dibekali dengan sistem operasi
Android.
Kedua versi awal Android ini mungkin agak asing, hal ini karena versi Android 1.0
Astro (Alpha) dan Android 1.1 Bender (Beta) ini belum diluncurkan secara publik
untuk kebutuhan komersil. Platform Android sendiri pertama kali diluncurkan pada
September 2008 dengan andil Andy Rubin yang saat ini dikenal sebagai Bapak
Android. Walau belum menggunakan nama makanan manis, kedua sistem operasi
Android ini tentu menjadi pionir. Pasalnya, di sinilah urutan OS
Android bermula lewat smartphone pertama, HTC Dream.
Kalau versi Android pertama tadi belum menggunakan nama dessert, maka berbeda
dengan versi Android terbaru yang rilis tahun 2009 ini. Mulai dari versi Android 1.5
ini, nama Android mulai menggunakan nama makanan manis untuk setiap versi
yang diluncurkan. Android 1.5 Cupcake dirilis pada tanggal 30 April 2009 dengan
berbagai fitur di sebuah perangkat smartphone untuk menggantikan featured phone
kala itu.
Sama seperti versi sebelumnya, OS Android terbaru selanjutnya, yakni Android 2.0
dan 2.1 Eclair, masih berfungsi untuk menutupi bug yang masih ditemukan pada
sistem operasi mobile ini. Di samping itu, Android juga menambah berbagai fitur
menarik di dalamnya yang siap digunakan oleh para pengguna smartphone berbasis
OS Android ini. Misalnya, dukungan fitur Bluetooth hingga fitur kamera yang mulai
menjadi nilai jual smartphone kala itu. Android 2.0 & 2.1 Eclair digunakan pada
perangkat seperti HTC Nexus One.
Mulai dari versi Android ini tampaknya sudah mulai dikenal luas oleh berbagai brand
smartphone. Android 2.2 Frozen Yoghurt alias Froyo ini dirilis pertama kali pada
tanggal 20 Mei 2010. Walaupun sudah mulai dipergunakan pada beberapa brand,
namun tetap saja Android masih kalah bersaing dengan Symbian yang
mendominasi pasar featured phone. Tingkatan Android 2.2 Froyo memberikan
peningkatan pada kecepatan kerja, fitur USB tethering, WiFi hotspot, serta fitur
keamanan.
Untuk para pengguna smartphone mungkin akan agak asing dengan versi Android
yang satu ini. Sebab, penggunaan Android 3.0 & 3.2 Honeycomb yang
menggunakan ikon lebah ini memang diperuntukkan khusus untuk perangkat tablet.
Tentu perilisan Android
3.0 & 3.2 Honeycomb pada 10 Mei 2011 ini untuk mendukung Samsung yang mulai
merilis perangkat tablet Samsung Galaxy Tab Series untuk menyaingi Apple iPad.
Selain itu, Android juga merilis versi Android 4.0 Ice Cream Sandwich yang kembali
diperuntukkan untuk perangkat smartphone. Sistem Android terbaru selanjutnya ini
dirilis pada 19 Oktober 2011 silam dan masih tetap menggunakan nama dessert,
merupakan versi nama paling panjang hingga saat ini. Android 4.0 Ice Cream
Sandwich memberikan banyak pembaruan, mulai dari animasi yang semakin halus,
sederhana, dan mudah digunakan.
Menggunakan nama brand cemilan terkenal, Android 4.4 KitKat pertama kali dirlis
pada Oktober 2013 lalu. Versi Android terbaik pada masanya ini pun bisa dikatakan
menjadi jenis Android terfavorit karena mendukung hampir seluruh perangkat
smartphone di dunia. Hal ini dikarenakan Android 4.4 KitKat dapat memberikan
optimalisasi yang baik, termasuk pada perangkat smartphone yang memiliki
memadai atau cukup rendah saat itu.
Mulai beberapa versi Android ke belakang, Android dan Google pun mulai secara rutin
memperbarui sistem operasi mereka dalam selang waktu setahun. Termasuk
Android
5.0 & 5.1 Lollipop dengan API level 21 yang dirilis dan diresmikan pada Juni 2014.
Bisa dibilang, seri Android ini menjadi pionir dibuatnya smartphone flagship dengan
spesifikasi cukup mumpuni. Versi Android ini sudah mendukung arsitektur 64-bit yang
sudah memungkinan penggunaan RAM di atas 3GB. Salah satunya Asus Zenfone 2
yang sudah mengusung RAM 4GB saat itu.
Untuk saat ini, sistem operasi Android 7.0 & 7.1 Nougat mungkin masih digunakan
pada beberapa smartphone jadul. Android 7.0 & 7.1 Nougat pertama kali
diperkenalkan pada Juni 2016 dengan menampilkan ikon robot Android dengan
batangan Nougat. Versi Android ini mengalami perubahan dari segi tampilan
antarmuka. Selain itu, ada juga fitur splitscreen untuk membagi tampilan layar
untuk dua aplikasi sekaligus.
Selanjutnya, Android 8.0 & 8.1 Oreo menjadi sistem operasi Android yang banyak
digunakan pada beberapa smartphone, salah satunya mungkin smartphone yang
kamu gunakan saat ini. Versi Android ini dirilis secara stabil mulai Agustus 2017 dan
sudah mengalami pembaruan lewat versi Android 8.1.0 Oreo. Android 8.0 & 8.1 Oreo
menjadi versi Android kedua yang menggunakan makanan manis dari nama brand
terkenal setelah Android 4.4 KitKat. Sistem operasi Android Oreo menawarkan
pengalaman multitasking yang makin mumpuni dibanding versi sebelumnya. Ada
juga Project Treble yang memungkinkan pengguna mendapat pembaruan lebih
cepat.
Fitur lainnya yang cukup berguna adalah sistem notifikasi, pengatur kecerahan,
hingga sistem screenshoot terbaru yang lebih memudahkan pengguna.
16. Android 10
Lalu, ada versi Android terbaru Q atau versi Android 10 yang baru diluncurkan pada
13 Maret 2019 dan saat ini masih terbatas pada beberapa perangkat HP Android saja.
Versi Android tertinggi sekarang yang sudah rilis ini pertama disematkan
pada seri smartphone Google, yakni Google Pixel, Google Pixel XL, Google Pixel 2,
Google Pixel 2 XL, dan lainnya. Salah satu fitur dalam versi Android terbaru 2019 ini
adalah Dark Mode alias mode gelap yang diklaim mampu meningkatkan performa
baterai.
Siklus penamaan menggunakan nama dessert sempat berhenti setelah Google merilis
Android 10. Nah, pada versi Android terbaru 2020 yang disebut Android 11, Google
kabarnya akan kembali menamainya dengan nama makanan manis, yakni Red Velvet
Cake. Namun, versi Android terbaru ini masih belum dirilis secara resmi sehingga
nama Android 11 masih dipertimbangkan dan hanya digunakan oleh tim developer
saja. Berdasarkan kabar yang beredar, ada sejumlah fitur Android 11 yang
kemungkinan bisa dinikmati setelah versi ini dirilis, misalnya fitur keamanan yang lebih
canggih dari sebelumnya.
a. Touchscreen
Perangkat Android memiliki fitur layar sentuh yang memberikan beberapa
kemungkinan bagi pengguna untuk berinteraksi dengan aplikasi dengan
menggunakan jari. Pengguna dapat melakukan swipe, flip, drag, dan pinch
untuk zoom. Android juga mendukung multitouch yang berarti keseluruhan
layar dapat disentuh dengan satu atau lebih jari pada saat ang bersamaan.
b. GPS
Sistem operasi Android mendukung GPS yang memungkinkan develoer untuk
mengakses lokasi pengguna. Contoh aplikasi ang memanfaatkan GPS adalah
aplikasi peta (Map) ang menunjukan lokasi pengguna dan memberikan
petunjuk untuk menuju suatu lokasi.
c. Accelerometer
Android mendukung Accelerometer yaitu perangkat yang digunakan untuk
mengukur percepatan. Accelerometer dapat memberitahukan apabila suatu
perangkat android bergerak atau terguncang atau berbalik arah posisinya.
d. SD Card
Android memiliki fitur yang memungkinkan pengguna atau aplikasi untuk
mengakses (menyimpan atau membuka) file pada SD Card. SD Card
merupakan media penyimpanan medium yang digunakan perangkat android
dan beberapa perangkat mobile lain non android sebagai media penyimpanan.
a. Internet
Kemampuan akses internet pada Android memberikan banyak keunggulan.
Berbagai informasi secara reat-time dapat diperoleh dengan mudah dengan
internet. Contoh, sebagai pengguna dapat menggunakan unternet untuk
melihat jadwal pemutaran film bioskop, cuaca suatu area, jadwal
penerbangan dan lainnya. Sebagai developer dapat menggunakan internet
untuk akses secara real-time kepada data, input data. Developer juga dapat
menggunakan internet untuk menyimpanan berbagai asset untuk kemudian
digunakan suatu aplikasi, seperti yang dilakukan Pandora dan Youtube.
Dengan internet dapat dibangun model aplikasi yang disebut client-server
computing. Contoh lain aplikasi peta mengakses data peta dan GPS dari web
server.
c. Contact
Android memungkinkan akses ke contacs yang tersimpan di perangkat
Android. Developer dapat menggunakan fitur ini menampilkan contacts dalam
cara baru yang berbeda. Hal ini yang dapat dilakukan adalah membangun
aplikasi yang menggabungkan antara contacts dengan GPS yang memberikan
notifikasi kepada pengguna jika pengguna berada didekat alamat satu contact
yang ada.
e. Google APIs
Sistem operasi Android memungkinkan dengan tidak terbatas membuat
panggilan telepon mengorganisasi contacts atau menginstall aplikasi.
Developer dapat mengintegrasikan peta kedalam suatu aplikasi dengan
menggunakan Maps API yang mengandung Map Widgets. Berbagai fitur
dapat ditambahkan dengan Maps API, antara lain:
(1) Menampilkan suatu lokasi di peta
(2) Mendapatkan panduan navigasi
(3) Komunikasi data antara aplikasi dengan clouds
Android didesain untuk berjalan di banyak jenis perangkat, mulai dari ponsel hingga
tablet dan TV. Sebagai developer, berbagai perangkat memberikan potensi
penggunaan yang sangat besar untuk aplikasi . Agar berhasil di semua perangkat ini,
aplikasi harus memberi toleransi beberapa variasi fitur dan menyediakan antarmuka
pengguna fleksibel yang dapat beradaptasi dengan beragam konfigurasi layar.
1. Pengertian “Kompatibilitas”
PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
// This device does not have a compass, turn off the compass feature
disableCompassFeature();
}
3. Versi Platform
Perangkat yang berbeda dapat menjalankan versi platform Android yang berbeda,
seperti Android 4.0 atau Android 4.4. Setiap versi platform setelahnya sering
menambahkan API baru yang tidak tersedia di versi sebelumnya. Untuk
menunjukkan kumpulan API yang
...
}
}
Untuk mengetahui informasi selengkapnya tentang file build.gradle, baca tentang cara
mengonfigurasi build . Setiap versi Android setelahnya memberikan kompatibilitas
untuk aplikasi yang dibuild menggunakan API dari versi platform sebelumnya,
sehingga
Android berjalan di perangkat dengan berbagai ukuran, dari ponsel, tablet, dan TV.
Untuk menggolongkan perangkat menurut jenis layarnya, Android menentukan dua
karakteristik untuk setiap perangkat: ukuran layar (ukuran fisik layar) dan kepadatan
layar (kerapatan fisik piksel pada layar, yang dikenal sebagai DPI). Untuk
menyederhanakan konfigurasi yang berbeda, Android menggeneralisasi varian ini ke
dalam grup yang membuatnya lebih mudah untuk ditargetkan:
Empat ukuran umum: kecil, normal, besar, dan xlarge.
Dan beberapa kepadatan umum: mdpi (sedang), hdpi (tinggi), xhdpi (ekstra tinggi),
xxhdpi (ekstra-ekstra tinggi), dan lainnya.
Secara default, aplikasi kompatibel dengan semua ukuran dan kepadatan layar,
karena sistem membuat penyesuaian yang tepat pada tata letak UI dan resource
gambar yang diperlukan untuk setiap layar. Akan tetapi, harus mengoptimalkan
pengalaman pengguna untuk setiap konfigurasi layar dengan menambahkan tata
letak khusus untuk ukuran layar yang berbeda dan gambar bitmap yang dioptimalkan
untuk kepadatan layar yang umum. Untuk mengetahui informasi tentang cara membuat
resource alternatif untuk berbagai layar dan cara membatasi aplikasi ke ukuran layar
tertentu bila diperlukan,
Android berjalan pada beragam perangkat yang memiliki berbagai ukuran layar dan
kepadatan piksel. Sistem akan melakukan penskalaan dasar dan mengubah ukuran
untuk menyesuaikan antarmuka pengguna ke beragam layar, tetapi masih ada
banyak pekerjaan yang harus dilakukan untuk memastikan User Interface beradaptasi
dengan tepat ke setiap jenis layar.
Ukuran layar adalah ruang terlihat yang disediakan untuk UI aplikasi . Ukuran layar
yang diketahui oleh aplikasi bukanlah ukuran layar perangkat yang sebenarnya—
ukuran ini mempertimbangkan orientasi layar, dekorasi sistem (seperti menu
navigasi), dan perubahan konfigurasi jendela (seperti saat pengguna mengaktifkan
mode multi-jendela. Secara default, Android mengubah ukuran layout aplikasi agar
sesuai dengan layar saat ini. Untuk memastikan layout dapat diubah ukurannya
dengan baik bahkan ketika terdapat perbedaan kecil dalam ukuran layar, harus
mengimplementasikan layout dengan mempertimbangkan fleksibilitas. Prinsip pokok
yang harus diikuti adalah menghindari hard-coding untuk posisi dan ukuran komponen
UI . Sebagai gantinya, buat pengaturan ukuran tampilan untuk membesar dan
menetapkan posisi tampilan relatif terhadap tampilan induk atau tampilan sejenis
lainnya sehingga urutan yang diinginkan dan ukuran relatif tetap sama dengan layout
yang semakin besar.
Gambar 20 Aplikasi yang sama menggunakan layout berbeda untuk ukuran layar yang berbeda
Karena layout harus direntangkan agar sesuai dengan ukuran layar , demikian juga
semestinya bitmap yang disematkan ke setiap tampilan layout. Namun,
merentangkan bitmap biasa secara sembarangan bisa menghasilkan artefak
penskalaan yang aneh dan gambar yang tidak simetris. Untuk mengatasi ini, Android
mendukung bitmap nine-patch tempat menentukan area piksel kecil yang dapat
direntangkan—bagian gambar yang lain tidak diubah.
Kepadatan piksel adalah jumlah piksel dalam area fisik layar dan sering disebut
sebagai dpi (dots per inch). Ini berbeda dengan resolusi, yang merupakan jumlah total
piksel pada layar
Untuk memastikan gambar terlihat seoptimal mungkin pada semua layar, harus
menyediakan bitmap alternatif agar pas dengan setiap kepadatan layar. Misalnya, jika
aplikasi hanya menyediakan bitmap untuk layar berkepadatan menengah (mdpi),
Android akan memperbesarnya ketika ditampilkan pada layar berkepadatan-tinggi
sehingga gambar mempergunakan ruang fisik yang sama di layar. Ini bisa
menyebabkan
Untuk jenis gambar sederhana (biasanya ikon), bisa menghindari pembuatan gambar
terpisah untuk setiap kepadatan dengan menggunakan grafik vektor. Karena grafik
vektor menetapkan ilustrasi dengan jalur garis geometris, bukan piksel, mereka bisa
digambar dalam ukuran apa pun tanpa artefak penskalaan.
Rekomendasi di atas berlaku untuk semua faktor bentuk Android, tetapi jika ingin
membuat aplikasi untuk Wear OS, Android TV, Android Auto, atau perangkat Chrome
OS, harus melakukan lebih banyak pekerjaan.
Masing-masing perangkat ini memiliki model interaksi pengguna mereka sendiri yang
harus diakomodasi aplikasi . Dalam beberapa kasus, seperti Wear OS, harus
memikirkan ulang pengalaman pengguna aplikasi dan membuat aplikasi yang khusus
untuk perangkat tersebut. Dan untuk mendukung perangkat Chrome OS (seperti
Google Pixelbook), mungkin hanya memerlukan sedikit modifikasi pada aplikasi saat
ini untuk mendukung interaksi keyboard/mouse dan layar yang jauh lebih besar.
1. Buatlah analisa perkembangan sistem operasi android dari android 1.0 hingga
sekarang beserta penambahan fitur masing-masing versi android tersebut
(Bisa dalam bentuk bagan, table atau bentuk lain sesuai kreativitas tim Anda).
2. Lakukan Analisa fitur perangkat keras dan perangkat lunak pada smartphone
Anda sesuai contoh penjelasan modul, termasuk versi Android, Processor, dan
RAM (Bisa dalam bentuk bagan, table atau bentuk lain sesuai kreativits tim
Anda)
3. Klasifikasikan mana yang termasuk kompatibilitas perangkat dan mana yang
termasuk kompatibilitas aplikasi pada smartphone android anda. Bisa dibuat
dalam bentuk tabel atau bagan atau bentuk lain beserta penjelasan dari setiap
kompatibilitas tersebut.
3. Libraries ................................................................................................. 3
4. Aplication Framework........................................................................... 3
5. Application ............................................................................................ 4
1. Activities ................................................................................................ 5
2. Services ................................................................................................. 7
3. Broadcast Receivers........................................................................... 16
TUJUAN PEMBELAJARAN
Setelah melakukan diskusi kelompok dengan metode windows shoping,
peserta dapat:
1. Linux Kernel
Tumpukan paling bawah pada arsitektur Android adalah kernel. Google
menggunakan kernel Linux versi 2.6 untuk membangun sistem Android, yang
mencakup memory management, security settting, power management, dan
beberapa driver hardware.
Kernel berperan sebagai abstraction layer antara hardware dan keseluruhan
software.
Sebagai contoh, HTC GI dilengkapi dengan kamera. Kernel Android terdapat
driver kamera yang memungkinkan penggunak mengirimkan perintah ke
hardware kamera.
2. Android Runtime
Lapisan setelah kernel Linux adalah Android Runtime. Android Runtime ini berisi
CORE LIBRARIES dan DALVIK VIRTUAL MACHINE.
Core Libraries mencakup serangkaian inti library Java, artinya Android
menyertakan satu set library-library dasar bahasa pemrograman Java.
Dalvik adalah Java Virtual Machine yang memberi kekuatan pada sistem Android.
Dalvik VM ini di optimalkan untuk telepon seluler.
Setiap aplikasi yang berjalan pada Android berjalan pada prosesnya sendiri,
dengan instance dari Dalvik Virtual Machine. Dalvik telah dibuat sehingga sebuah
piranti yang memakainya dapat menajalankan multi Virtual Machine dengan
efisien. Dalvik VM dapat mengeksekusi file dengan format Dalvik Executable
(.dex) yang telah dioptimasi untuk menggunakan minimal memory footprint. Virtual
Machnie ini register-based, dan menjalankan class-class yang dicompile
menggunakan compiler java yang kemudian ditransformasi menjadi format .dex
menggunakan "dx" tool yang telah disertakan.
Dalvik VM menggunakan kernel Linux untuk menjalankan fungsi fungsi seperti
threading dan low-level memory management.
4. Aplication Framework
Lapisan selanjutnya adalah Application Framework yang mencakup program
untuk mengatur fungsi-fungsi dasar smartphone. Application Framework
merupakan serangkaian tool dasar seperti alokasi resource smartphone, aplikasi
telepon, pergantian antar - proses atau program, dan pelacakan lokasi fisik
5. Application
Susunan lapisan teratas terdapat aplikasi itu sendiri. Dalam lapisan inilah
ditemukan fungsi-fungsi dasar smartphone seperti menelepon dan mengirim
pesan singkat, menjalankan web browser, mengakses daftar konten, dan lain-
lalin. Bagi rata-rata pengguna, lapisan inilah yang paling sering diakses.
Pengguna aplikasi android mengakses fungsi-fungsi dasar tersebut melalui user
interface.
Komponen Deskripsi
Content Suatu komponen yang menangani data dan masalah manajemen basis
Providers data.
1. Activities
Sebuah activity merepresentasikan sebuah layar dengan User Interface. Dalam
artian, activity yang melakukan aksi pada layar, Contohnya: Ada halaman utama
lalu ada halaman kedua, pada halaman utama ada tombol next menuju halaman
kedua. Halaman utama adalah sebuah activity yang berbeda dengan halaman
kedua. Jika sebuah aplikasi memiliki lebih dari 1 activity, maka salah satu dari
activity tersebut harus ditandai sebagai activity yang ditampilkan secara default
ketika aplikasi dijalankan.
Activity memiliki siklus hidup (lifecycle) yang merupakan kondisi yang akan dialami
saat diciptakan sampai dihancurkan. Ada beberapa kondisi yang akan dialami
oleh Activity seperti yang tergambar pada flow chart berikut ini.
2. Services
Contoh lain dari implementasi services yaitu pada aplikasi facebook. Dimana
services akan terus berjalan secara background walaupun pengguna berinteraksi
atau tidak saat adanya notifikasi friend request. Contoh interaksi langsung dengan
services adalah saat accept friend request. Ada banyak aplikasi yang
mengimplementasikan services ini, terutama aplikasi yang memiliki fitur notifikasi,
chatting, dan sejenisnya.
Started
komponen yang lain dimatikan oleh sistem Android. Service ini digunakan
untuk melakukan proses yang tidak memberikan nilai balik ke komponen
berkas.
Bound
Service jenis ini merupakan tipe service yang dijalankan oleh komponen
lain, namun saling mengikat satu sama lain. Hubungan yang terjadi antar
kedua komponen tersebut seperti client-server. Bisa saling menerima
response dan menerima request yang ada. Pada service ini dimungkinkan
terjadi proses IPC (Interprocess Communication). Service ini akan tetap
berjalan di background selama masih ada komponen lain yang
mengikatnya. Jika tidak, maka Service akan dimatikan oleh sistem. Aplikasi
pemutar musik merupakan salah satu jenis aplikasi yang
mengimplementasikan Service jenis ini. Perlu diingat, Service berjalan di
Thread Utama dari proses hostingnya. Service tidak
membuat Thread sendiri dan tidak berjalan di proses terpisah. Kecuali jika
anda menetapkannya.
Jika service akan melakukan pekerjaan yang banyak membutuhkan CPU atau
operasi pemblokiran (seperti pemutaran MP3 atau jaringan), maka memerlukan
pembuatan Thread baru dalam layanan untuk melakukan pekerjaan itu.
Contohnya :
</manifest>
Started Services
perilaku yang sesuai, seperti membuat thread sekunder yang akan digunakan.
Intent yang disediakan oleh klien di langkah 1. (Klien dalam konteks ini adalah
Setelah dimulai, service bisa berjalan di latar belakang tanpa dibatasi waktu,
jaringan. Bila operasi selesai, service harus berhenti sendiri dengan memanggil
stopService().
IntentService
Sebagian besar service yang dimulai tidak perlu menangani beberapa permintaan
secara bersamaan, dan jika service melakukannya, maka akan mengakibatkan
adalah subkelas yang berguna dari Service. Beberapa hal terkait IntentService adalah
sebagai berikut.
Bound Services
diikat ke service sekaligus, namun bila semuanya telah dilepas, service akan
service yang akan merespons Intent tersebut, dan pengguna tidak bisa melihat
service mana yang dimulai. Mulai dengan Android 5.0 (API level 21), sistem
Daur hidup service lebih sederhana daripada activity. Akan tetapi, ini jauh lebih
penting karena memperhatikan dari dekat cara service dibuat dan dimusnahkan.
Karena tidak memiliki UI, service bisa terus berjalan di latar belakang tanpa
pekerjaan pada waktu yang sesuai. Berikut kerangka service yang memperagakan
setiap metode daur hidup Started Service dan Bound Service. Bound Service
sehingga bila tidak ada lagi komponen yang diikat ke service tersebut, sistem akan
Gambar dibawah ini adalah menampilkan perbedaan daur hidup dari keduanya :
Walaupun sebagian besar layanan berjalan di latar belakang, sebagian lagi ada
Service adalah service yang diketahui pengguna, jadi ini bukan layanan yang akan
dimatikan sistem bila memori tinggal sedikit. Misalnya, pemutar musik yang
memutar musik dari service harus disetel untuk berjalan di latar depan, karena
Untuk meminta agar layanan berjalan di latar depan, dengan cara memanggil
startForeground() sebagai ganti startService(). Metode ini menggunakan dua
untuk bilah status. Notifikasi ini sedang berlangsung, artinya tidak bisa ditutup.
Notifikasi tetap berada di bilah status hingga service dihentikan atau dibuang dari
latar depan. Untuk membuang layanan dari latar depan, dengan cara memanggil
akan membuang notifikasi bilah status atau tidak. Metode ini tidak menghentikan
service. Akan tetapi, jika Anda menghentikan service sewaktu masih berjalan di
latar depan, maka notifikasi juga akan dibuang.
Scheduled services
Untuk API level 21 dan yang lebih tinggi, bisa meluncurkan service menggunakan
3. Broadcast Receivers
Broadcast Receiver adalah sebuah komponen Android yang berfungsi untuk
melakukan broadcast pesan dari aplikasi lain atau dari sistem itu sendiri. Pesan
yang di broadcast disebut event atau intent. Aplikasi melakukan broadcast untuk
memberi tahu aplikasi lainnya bahwa beberapa data telah di unduh ke perangkat
yang tersedia, lalu penerima broadcast akan menerima pesan untuk melakukan
transfer informasi
Berikut ini adalah cara kerja Broadcast Receiver ketika dijalankan, yaitu :
Register Broadcast Receiver
Broadcast Intent
Android mengirimkan Intent ke penerima yang telah terdaftar dengan
memanggil method onReceive()
Event diterima oleh method onReceive()
Ada beberapa langkah penting untuk membuat Broadcast Receiver, yaitu:
Creating Broadcast Receiver
Registering Broadcast Receiver
Tujuan pembuatan pesan broadcast dari dalam aplikasi yaitu untuk memungkinkan
aplikasi tersebut bereaksi terhadap suatu event yang terjadi di dalamnya. Misalnya
ketika pengguna melakukan suatu aksi, dan ingin melakukan suatu proses setelah
aksi tersebut terjadi. Ada tiga cara untuk mengirimkan broadcast, yakni:
1. Method sendOrderedBroadcast, kita bisa memastikan pesan broadcast
untuk dikirimkan hanya pada satu receiver. Setiap broadcast secara
bergantian bisa mengirimkan data ke broadcast sesudahnya atau
menyelesaikan prosesnya di kelas receiver yang menerima.
2. Method sendBroadcast mirip dengan method di atas, tapi dengan satu
perbedaan. Semua broadcast receiver akan menerima pesan broadcast dan
tidak bergantung pada broadcast lain.
3. Method LocalBroadcastManager.sendBroadcast hanya akan mengirimkan
pesan broadcast ke receiver yang terdapat di dalam aplikasi yang sama dan
tidak mengumumkannya ke aplikasi lain.
Broadcast Receivers merespon terhadap pesan broadcast dari aplikasi lain atau
dari system, Contohnya: aplikasi juga dapat melakukan broadcast agar aplikasi
lain tahu bahwa beberapa aplikasi yang telah di download ke dalam perangkat
dan dapat mereka gunakan. Di sinilah fungsi Broadcast Receivers yang berfungsi
mengambil alih komunikasi seperti ini dan menginisiasi aksi yang tepat.
Hal-hal yang perlu diperhatikan terkait Broadcast receiver adalah sebagai berikut:
Jangan mengirimkan data sensitif melalui implicit broadcast karena aplikasi
apapun yang menunggu data tersebut bisa menerimanya. Kita bisa mencegah
hal ini dengan menentukan package name atau memberikan sebuah
permission ke pesan broadcast.
4. Content Providers
Content providers menyediakan cara yang fleksibel untuk membuat data yang
tersedia di seluruh aplikasi. Misalkan ingin membuat semua jenis data dalam
aplikasi (misalnya membuat daftar pengguna dan menyimpannya pada setiap
lokasi penyimpanan, mungkin dalam data base, sistem file atau dalam ruang
penyimpanan online. Kemudian melalui content provider, aplikasi lain dapat
melakukan query, akses atau bahkan memodifikasi data yang telah dibuat.
Dalam cara yang sama pengguna dapat mengakses data yang
Tiga dari empat tipe komponen, yaitu activities, services, dan broadcast receiver
diaktifkan oleh pesan asinkron yang disebut intent. Tidak seperti aktivities,
services, dan broadcast receiver, Content Providers tidak diaktifkan oleh intent.
Melainkan, diaktifkan saat ditargetkan oleh permintaan dari ContentResolver,
yang menangani semua transaksi langsung dengan Content Provider sehingga
2. Sistem Android akan mencari aplikasi yang cocok berdasarkan Intent filter
TUJUAN PEMBELAJARAN
Setelah berdiskusi kelompok dan praktek peserta mampu:
1. Menganalisis Integrated Development Android
Studio Bumblebee dengan benar
2. Melakukan instalasi Android Sudio Bumblebee dengan benar
3. Mengaplikasikan pengaturan layout dengan benar
4. Mengaplikan penggunaan user interface dengan benar
5. Mengaplikasikan penggunaan intent dengan benar
6. Mengaplikasikan penggunaan operator dengan benar
Salah satu Bahasa yang bisa digunakan untuk development Android adalah Java.
Selain Java ada beberapa Bahasa lain yang bisa digunakan seperti C/C++, Go,
dan pada May 2017 Google resmi support Kotlin. Pada kegiatan pembelajaran ini
akan menggunakan Java sebagai Bahasa pemrograman. Oleh karena itu
sebelum melakukan instalasi Android Studio maka perlu melakukan instalasi Java
Development Kit (JDK). JDK merupakan Java SE Development Kit, dimana JRE
juga di ada di dalamnya, dan yang lebih penting adalah di dalamnya terdapat
compiler dan tools untuk membuat dan compile program. Sederhananya JRE
untuk menjalankan program, JDK untuk membuat program. Android Studio release
16 May 2013 pada Google IO. Android Studio berbasiskan JetBrains Intellij IDEA,
dan dikhususkan untuk mengembangkan software berplatform Android.
Android Studio Bumblebee jika sudah terinstall, akan mempunyai lingkungan kerja
seperti tertera pada gambar berikut ini.
No PENJELASAN
Merupakan bagian dari Palette yang berisi beberapa tools atau component
2. yang bisa kita gunakan untuk memberi tampilan pada aplikasi yang akan kita
bangun.
Ketika membuat sebuah project pada Android Studio, maka akan terlihat
bagian Struktur Project seperti berikut ini.
No PENJELASAN
Pada bagian kedua terdapat folder Java yang di dalamnya terdapat folder
bernama seperti domain yang diisikan saat pertama kali membuat aplikasi,
pada contoh ini dibuat dengan nama (com.example.dualayar), di dalam
2 folder tersebut terdapat file MainActivity.java, pada bagian file ini akan
memuat program Java untuk aplikasi yang akan dibuat.
Pada bagian ketiga ini terdapat folder drawable, folder drawable ini
merupakan bagian dari folder resource. Folder drawable ini digunakan
3 untuk menyimpan file gambar dengan format .jpg atau .png yang akan
digunakan pada aplikasi yang akan dibangun
Pada bagian keenam ini terdapat folder values yang berisi beberapa file
antara lain
:
6
String.xml yang merupakan file berisi resource data-data text
yang akan digunakan sebagai komponen aplikasi.
Style.xml yang merupakan file berisi resource tentang tema seperti
Toolbar, yang akan kita gunakan untuk komponen aplikasi nantinya.
Color.xml yang merupakan file berisi resource warna-warna dari file Style.x
Pada bagian ketujuh terdapat Gradle. Gradle ini merupakan tools untuk
build yang digunakan pada Android Studio, untuk Compile, Run project
7 Aplikasi yang akan dibangun. Jika pernah menggunakan Eclipse, maka
tidak akan menemukan build tools Gradle, karena Eclipse menggunakan
build tools Ant.
8. Selanjutnya klik next, maka akan terlihat tampilan seperti berikut ini.
11. Selanjutnya klik next, terlihat tampilan bahwa android studio telah
berhasil diinstal, lalu klik finish.
13. Selanjutnya klik next, maka akan terlihat tampilan pemilihan tipe
i n s t a l a s i Android Studio, pilih saja standard, lalu klik next.
15. Selanjutnya klik next, maka akan terlihat tampilan beberapa komponen
android studio yang telah terinstall.
17. Jika proses download selesai, akan terlihat tampilan berikut ini.
4. Buka folder res, buka folder layout, buka file activity_main.xml, maka
akan terlihat layout tampilan berupa text “Hello World”. Klik text,
lalu klik
6. Pilih device yang ingin digunakan seperti berikut ini, lalu klik next
12. Terlihat output program pada AVD yang telah dibuat tadi, berupa
tulisan selamat datang.
1. Linear Layout
2. Relative Layout
4. Frame Layout
2. Kolom adalah sub bagian terbagi dari setiap baris dan satu
baris dapat menampung beberapa jenis kolom. Setiap
kolom terdiri dari jenis informasi yang berbeda mengenai
baris tersebut.
Dalam Lembar kerja ini, terdapat contoh latihan yang dijelaskan langkah-langkah
pengerjaannya secara terperinci dan sudah ada source codenya untuk
dipraktekkan. Lembar Kerja ini juga memuat tugas berupa soal untuk dicari
pemecahan jawabannya sekaligus dipraktekkan dalam diskusi kelompok pada
kegiatan pembelajaran. Semua Lembar kerja baik latihan maupun tugas
sebaiknya dipraktekkan, dengan tujuan dapat mengaplikasikan topik materi ini.
A. Linear Layout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical" >
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="62dp"
android:text="BBPPMPV BMTI"
android:textAlignment="center" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="password" />
<EditText
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="top"
android:hint="isi pesan" />
<Button
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="next" />
</LinearLayout>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:background="#FFF5F5F5"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/contoh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="tombol satu" />
</LinearLayout>
3. Buka tab design tambahkan tombol dua dan tombol tiga dengan
pengaturan width dan height dibedakan menggunakan match parent atau
wrap content, seperti berikut ini.
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:background="#FFF5F5F5"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/contoh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="tombol satu" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TOMBOL DUA" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="tombol tiga" />
</LinearLayout>
4. Jalankan program akan terlihat output pada emulator seperti berikut ini.
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Tengah" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentLeft="true"
android:text="Kiri Atas" />
<Button
android:id="@+id/button3"
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentRight="true"
android:text="Kanan Atas" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="Kiri.T" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:text="Kanan.T" />
<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Kiri Bawah" />
<Button
android:id="@+id/button8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:text="T.Bawah" />
<Button
android:id="@+id/button9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:text="Kanan Bawah" />
</RelativeLayout>
Untuk mengatur posisi elemen UI, misalnya Button, cukup drag pada posisi yang
diinginkan, tapi jika ingin menggunakan kode XML, ada beberapa atribut yang
bisa digunakan pada elemen atau kompenen UI didalam RelativeLayout
yaitu:
Pengaturan posisi relatif antara elemen UI dengan elemen UI lainnya juga dapat
dilakukan, ada beberapa atribut yang bisa digunakan yaitu:
D. Constraint Layout
<TextView
<ImageView
android:id="@+id/imageView2"
android:layout_width="210dp"
android:layout_height="198dp"
android:src="@drawable/ikon1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.606"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.6" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NEXT"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.805" />
</androidx.constraintlayout.widget.ConstraintLayout>
Frame Layout adalah Layout yang biasanya digunakan untuk membuat objek
yang saling bertindihan contohnya yaitu kita membuat button di atas image.
Berikut ini contoh coding frame layout.
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_gravity="center"
android:background="@color/colorPrimary"
/>
<Button
android:layout_width="300px"
android:layout_height="100px"
android:layout_gravity="center"
android:text="Tombol"
android:background="@color/colorAccent"
android:textColor="#fff"
android:textSize="20sp" />
</FrameLayout>
Agar elemen UI didalam FrameLayout terlihat rapih serta bisa diatur sendiri,
dapat menggunakan beberapa atribut berikut ini.
1. Row/ baris pada dasarnya digunakan untuk menyimpan satu jenis record,
hanya satu informasi yang dapat disimpan.
2. Kolom adalah sub bagian terbagi dari setiap baris dan satu baris dapat
menampung beberapa jenis kolom. Setiap kolom terdiri dari jenis informasi
yang berbeda mengenai baris tersebut.
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableRow
android:paddingTop="10px"
android:gravity="center"
android:layout_marginTop="20px">
<TextView
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_span="2"
android:text="LOGIN"
</TableRow>
<TableRow
android:layout_marginTop="20dip" >
<TextView
android:layout_width="wrap_content"
android:text="Username :"
android:textSize="20sp"
android:textColor="#000000"
android:layout_marginLeft="20dip"
></TextView>
<EditText
android:id="@+id/screenName"
android:layout_height="wrap_content"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_weight="1" >
</EditText>
</TableRow>
<TableRow
android:layout_marginTop="20dip" >
<EditText
android:id="@+id/password"
android:layout_height="wrap_content"
</EditText>
</TableRow>
<TableRow
android:gravity="center"
android:layout_marginTop="20dip" >
<Button
android:text="Submit"
android:clickable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/save" android:layout_span="2" ></Button>
</TableRow>
</TableLayout>
Intent adalah sebuah kelas dalam programming Android yang berfungsi untuk
perpindahan halaman. Intent juga merupakan suatu objek yang terdapat dalam
suatu activity dimana objek tersebut dapat komunikasi dengan activity yang lain,
baik activity pada fungsi internal android misal seperti memanggil activity dalam
satu package atau beda package yang masih berada dalam satu project.
Dalam Lembar kerja ini, terdapat contoh latihan yang dijelaskan langkah-langkah
pengerjaannya secara terperinci dan sudah ada source codenya untuk
dipraktekkan. Lembar Kerja ini juga memuat tugas berupa soal untuk dicari
pemecahan jawabannya sekaligus dipraktekkan dalam diskusi kelompok pada
kegiatan pembelajaran. Semua Lembar kerja baik latihan maupun tugas
sebaiknya dipraktekkan, dengan tujuan dapat mengaplikasikan topik materi ini.
3. Atau bisa diubah dari tab code dan buat coding seperti berikut ini
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:text="Halaman Selanjutnya" />
</RelativeLayout>
4. Buat activity baru dengan cara klik File, New, Activity, empty activity
seperti berikut ini
<TextView
android:id="@+id/textView"
android:layout_width="302dp"
android:layout_height="82dp"
android:text="HALAMAN KEDUA"
android:textColor="#FF5722"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent
" app:layout_constraintHorizontal_bias="0.549"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.364" />
</android.support.constraint.ConstraintLayout>
package com.example.duaactivity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import
android.content.Intent;
import android.view.View;
import
android.widget.Button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Next = findViewById(R.id.button); // Inisialisasi ID pada Button
}
}
Sebuah project dapat memiliki lebih dari satu activity, bisa dua activity , tiga activity
bahkan lebih. Android Studio mengatur default activity adalah activity 1, artinya
activity yang running pertama, ketika project dijalankan adalah activity 1. Tetapi
dalam android studio dapat diatur yang running duluan bukan activity 1, tetapi bisa
activity 2, activity 3, atau activity lain. Pengaturan running activity dapat dilakukan
dengan tahapan seperi berikut ini.
3. Pilih specified activity pada lunch, lalu pilih activity yang ingin
running pertama seperti berikut ini.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>
</manifest>
Coding yang diberi kotak diganti dengan gambar icon yang telah disiapkan,
seperti berikut ini
android:icon="@mipmap/gbr"
android:roundIcon="@mipmap/gbr"
Buatlah project penggunaan intent untuk tiga activity dengan tampilan seperti
berikut ini, diklik enter muncul halaman kedua, lalu pada halaman kedua diklik
next, muncul halaman ketiga. Tambahkan background warna atau gambar pada
ketiga activity tersebut, lalu ganti icon ic_launcher untuk project tersebut.
KELOMPOK 1
ANGGOTA:
1. INA
2. IFA
3. IDA
NEXT