PMO Pertemuan 3 – Pengenalan Aplikasi Android

  • Komponen Aplikasi Android

Komponen apikasi android adalah bagian penting dari sebuah aplikasi android. Ada empat macam komponen utama yang dapat digunakan dalam aplikasi android antaralain :

  1. Activity

Activity adalah komponen yang dapat dilihat oleh pengguna, sehingga mereka dapat berinteraksi dengan aplikasi. Bila dibandingkan dengan aplikasi web dan desktop, Activity sama seperti halaman dan form.

  1. Service

Service adalah komponen yang berjalan di latar belakang. Sebagai contoh, Service bisa memainkan musik di latar belakang saat pengguna berada dalam aplikasi yang berbeda, atau mungkin mengambil data melalui jaringan tanpa menghalangi interaksi pengguna dengan aktivitas.

  1. Broadcast Receivers

Broadcast Receiver berfungsi menerima pesan intent dari aplikasi lain atau dari sistem. Sebagai contoh, suatu aplikasi mengirim pesan berisi perintah tertentu untuk aplikasi lain bahwa beberapa data telah diunduh ke perangkat dan tersedia bagi mereka untuk menggunakan apklikasi tersebut, jadi Broadcast Receiver inilah yang akan menangani komunikasi ini dan akan melakukan tindakan yang tepat.Sebuah Broadcast Receiver diimplementasikan sebagai subclass dari class BroadcastReceiver dan setiap pesan akan dikirim dan diterima sebagai objek Intent.

  1. Content Providers

ContentProvider adalah penyedia konten dari satu aplikasi ke aplikasi lain atas perintah tertentu. Perintah tersebut ditangani oleh sebuah method dari class ContentResolver. Data dapat disimpan dalam sistem file, database atau di tempat lainnya.ContentProvider diimplementasikan sebagai subclass dari class ContentProvider dan harus menerapkan satu set standar API yang memungkinkan aplikasi lain untuk melakukan transaksi.

Ada beberapa komponen tambahan yang digunakan dalam pembuatan aplikasi selain yang disebutkan di atas, diantaranya:

Komponen Deskripsi
Fragment Meupakan bagian dari antarmuka pengguna dalam activity seperti tampilan tab atau pager
View Ampilan UI yang dimuat di layar seperti tombol, list, gambar, dan lain-lain
Layout Mengontrol sebuah View dengan melihatnya sebagai hirarki
Intent Mengirim atau menerima sebuah perintah dari aplikasi lain
Resource Element yang dibutuhkan secara visual seperti teks aplikasi (string), gambar, dan lain-lain
Manifes Konfigurasi dari sebuah aplikasi.

 

  • Hyrarchy of screen elements

Kerangka kerja Android memberi Anda fleksibilitas untuk menggunakan salah satu atau kedua metode ini guna mendeklarasikan dan mengelola UI aplikasi Anda. Misalnya, Anda bisa mendeklarasikan layout default aplikasi Anda dalam XML, termasuk elemen-elemen layar yang akan muncul di dalamnya dan di propertinya.

  1. User Interface

Semua elemen antarmuka pengguna dalam aplikasi Android dibangun menggunakan objek View dan ViewGroup. View adalah objek yang menarik sesuatu di layar dan dapat berinteraksi dengan pengguna. ViewGroup merupakan sebuah objek yang menyimpan objek View lainnya (dan ViewGroup) untuk mendefinisikan layout antarmuka.

Android menyediakan sekumpulan subkelas View dan ViewGroup yang menawarkan kontrol masukan umum (seperti tombol dan bidang teks) serta berbagai model layout (seperti layout linier atau relatif).

  1. Layout Antarmuka Pengguna

Antarmuka pengguna untuk setiap komponen aplikasi Anda didefinisikan menggunakan hierarki objek View dan ViewGroup, seperti yang ditampilkan dalam gambar 1. Setiap kelompok tampilan merupakan kontainer tak terlihat yang mengelola tampilan anak, sementara tampilan anak ini dapat berupa kontrol masukan atau widget lain yang menggambar sebagian dari UI. Pohon hierarki ini bisa sederhana atau bisa juga kompleks sesuai kebutuhan (namun yang sederhana paling baik untuk kinerja).

Untuk mendeklarasikan layout, Anda dapat menyediakan objek View dalam kode dan mulai membangun pohon, namun cara termudah dan terefektif untuk mendefinisikan layout adalah dengan file XML. XML menawarkan struktur layout yang dapat dibaca manusia, serupa dengan HTML.

Nama elemen XML untuk tampilan sesuai dengan kelas Android yang diwakilinya. Dengan demikian elemen <TextView> membuat widget TextView dalam UI Anda, dan elemen <LinearLayout> membuat kelompok tampilan LinearLayout .

  • Proses Thread

Thread adalah bagian di dalam sebuah proses ,yang dapat dijadwalkan untuk di eksekusi. Semua thread dari sebuah proses ,akan saling membagi virtual address space  dan system resources. Sedangkan proses mempunyai virtual address space tersendiri atau terpisah. Thread memiliki akses langsung ke segmen data dari proses. sedangkan proses mempunyai salinan segmen data ,dari induk proses sendiri.

Thread ada dua tipe yaitu :

  1. User Thread

User thread didukung oleh kernel dan diimplementasikan oleh thread library ditingkat pengguna. Library mendukung untuk pembentukan thread, penjadualan, dan managemen yang tidak didukung oleh kernel. Contoh user thread adalah POSIX Pthreads, Mach C-threads, dan Solaris threads.

  1. Kernel Thread

Kernel thread didukung secara langsung oleh sistem operasi: pembentukan thread, penjadualan, dan managemen dilakukan oleh kernel dalam ruang kernel. Karena managemen thread telah dilakukan oleh sistem operasi, kernel thread biasanya lebih lambat untuk membuat dan mengelola daripada pengguna thread. Windows NT, Solaris, dan Digital UNIX adalah sistem operasi yang mendukung kernel thread.

Macam – macam thread ada 2 yaitu :

  1. Single threading : proses hanya mengeksekusi satu thread dalam satu waktu.
  2. Multi-threading : proses dapat mengeksekusi sejumlah thread dalam satu waktu.
  • Siklus Hidup Activity

Activity adalah suatu kelas yang disediakan oleh Android guna mengimplementasikan siklus hidup suatu kelas-kelas pada suatu aplikasi. Oleh karena itu, kelas Activity wajib diturunkan ke kelas-kelas lain pada aplikasi.

Berikut penjelasan pada masing-masing state  :

  • onCreate()

Method ini dipanggil ketika activity pertama kali dibuat

  • onStart()

Method ini dipanggil ketika sebuah activity tampil ke pengguna

  • onResume()

Method ini dipanggil ketika activity yang berjalan pada saat itu dihentikan sementara (paused) dan activity sebelumnya dijalankan kembali(resumed). (Hasil dari method OnRestart())

  • onFreeze()

Method ini dipanggil ketika activity berada dalam keadaan freeze atau tidak merespon akibat sedang sibuk mengerjakan task tertentu pada sistem

  • onPause()

Method ini dipanggil ketika activity di hentikan sementara (pause) dan berikutnya ketika dijalankan kembali akan berada dalam posisi resume dan memanggil method OnResume()

  • onStop()

Method ini dipanggil ketika activity tidak lagi tampak kepada pengguna

  • onDestroy()

Method ini dipanggil sebelum activity dihancurkan (destroy) oleh sistem (baik secara manual maupun untuk kepentingan pelonggaran memori

  • onRestart()

Method ini dipanggil ketika acitivity dijalankan kembali setelah state Stop

Pada state di atas, kita bebas mendefenisikan method-method terkait seperti contoh pada state start, kita dapat mendefenisikan suatu Splash screen sehingga saat aplikasi baru dimulai, akan menampilkan suatu gambar terlebih dahulu disertai dengan musik lalu masuk ke aplikasi utama. Siklus di atas pun berlangsung terus menerus hingga aplikasi atau activity akhirnya di terminasi.

Konsep siklus ini penting agar developer tidak mengimplementasikan banyak kelas di waktu yang bersamaan yang pastinya memakan banyak sekali memori. Ketika kelas lain aktif, kelas yang tidak berjalan perlu dihentkan sementara agar menghemat penggunaan memori.

  • Project Structure

Terdapat banyak folder seperti di atas. Anda perlu meluangkan waktu sebentar untuk mengenal dan mengetahui fungsi dan ini masing-masing folder, hal tersebut sangat penting karena semua aplikasi yang anda buat nantinya akan berhubungan dengan susunan folder-folder tersebut.

Untuk penjelasan masing-masing folder di atas sebagai berikut :

  1. src

Folder yang berisi mainactivity.java saat dibangun pertama kali. Berada dalam peckage ( sesuai dengan yang kita buat). src beri paket java yan ditulis oleh developer atau diimpor untuk aplikasi. Tiap package bisa memiliki file java yang mempresentasikan class yang berbeda-beda.

  1. gen

Folder yang di-generate secara otomatis oleh ADT, yang  berisi ID untuk mengakses resource aplikasi yang ada pada folder res/. Secara default, sebaiknya anda tidak ubah isi dari file Java yang ada di dalam folder ini.

  1. Android Version

Folder ini menunjukan versi android yang digunakan termasuk file Android.jar pada veri android yang dipakai.

  1. assets

Folder ini secara default isinya kosong. Anda dapat meletakan file aset raw (raw files) yang dapat mendukung jalanya aplikasi. Beberapa file tersebut dapat berupa audio, teks, video, atau ketika berhubungan denga database, maka file-file seperti SQLite dapat diletakan dalam folder ini.

  1. Res

Folder ini dapat berisi beragam file, seperti file string, layout, tampilan,dll. pada folder res/ ini terbagi menjadi sub folder yang sudah terstruktur disesuaikan dengan kebutuhan ketika proses coding untuk membangun sebuah aplikasi

  1. Selain folder – folder di atas, juga terdapat file AndroidManifest dan Project Properties.

File AndroidManifest.xml, merupakan file yang penting, berisi segala informasi penting yang dibutuhkan oleh aplikasi untuk bekerja, antara lain :

  • Nama package Java dari aplikasi tersebut.
  • Daftar komponen aplikasi.
  • Perimission yang dibutuhkan oleh aplikasi untuk mengakses API atau berkomunikasi denga aplikasi lain.
  • Minimum level android API yang dibuthkan untuk aplikasi.
  • Daftar libraries yang dibutuhkan aplikasi.
  • Manifest, yang berisi version code ( merupakan versi code yang kita gunakan untuk membedakan versi aplikasi yang terbaru denga yang lama, hal ini cukup penting karena memberi tahu user apakah ada update terbaru dari aplikasi atau tidak) juga version name ( merupakan versi rilis aplikasi kita).

Sedangkan file Project Properties, menunjukan target platform yang akan digunakan dalam aplikasi ( Android versi berapa). Merupakan file setting pada aplikasi kita sehingga aplikasi tidak akan kebingungan pada target platform yang akan dituju. Hendaknya file ini tidak anda hapus dari aplikasi.

  • Struktur XML

Sebuah dokumen XML harus berisi element root, elemen ini merupakan parent dari element-element yang lain. Elemen dalam dokumen XML membentuk struktur pohon. Sebuah pohon dimulai dengan root dan memiliki cabang sampai level yang paling rendah. Semua elemen dapat mempunyai sub elemen(elemen child).

Istilah parentchild, dan sibling yang digunakan untuk menggambarkan hubungan antar elemen. Elemen root memiliki childchildren pada tingkat yang sama disebut sibling(saudara).

Contoh XML :

  • Baris pertama merupakan deklarasi XML, Ini mendefinisikan versi XML (1.0) dan pengkodean yang digunakan (ISO-8859-1 = Latin-1/West European character set).
  • Baris berikutnya menggambarkanroot element dari dokumen, seperti mengatakan, dokumen ini adalah tentang buku
  • Tiga baris berikutnya menggambarkanchild element dari root (pengarang, judul, tahun)
  • Dan baris terakhir adalah penutuproot

Dari dokumen xml tersebut dapat digambarkan bahwa, buku tersebut dikarang oleh robert, judulnya mak lampir, dan diterbitkan tahun1990.

  • Jenis – Jenis Layout Android

Layout adalah sebuah struktur visual yang digunakan untuk antarmuka pengguna.

Berikut jenis jenis layout pada android :

  1. Relative Layout

Relative layout adalah layout yang tergantung. Relative layout akan meletakkan elemen secara bebas, tidak terurut. Peletakan berdasarkan ketergantungannya kepada yang lain misal kepada parent atau kepada elemen lain.

  1. Linear Layout

Linear layout adalah layout yang terstruktur. linear layout akan meletakkan elemen yang ada di dalamnya secara berurutan tergantung orientationnya. jika  orientationnya vertical, maka peletakan elemen akan terurut kebawah. Sedangkan jika orientationnya horizontal (secara default, orientation horizontal tidak ditulis di dalam XML), maka peletakan elemennya akan terurut ke samping.

  1. Absolute Layout

AbsoluteLayout adalah tampilan dimana kita dapat memasukkan posisi x dan y dari widget yang ada di dalamnya secara pasti sehingga penempatan posisi dapat ditentukan secara pasti.

  1. Frame Layout

FrameLayout merupakan tampilan dimana widget-widget di dalamnya akan saling menumpuk satu sama lain. Bedanya antara layout ini dengan RelativeLayout adalah jika di RelativeLayout, kita dapat menempatkan sebuat widget posisinya di sebelah kanan/kiri/atas/bawah, sedangkan pada FrameLayout, widget yang ditulis lebih akhir akan diletakkan di DEPAN widget sebelumnya, sehingga akan menutupi kecuali jika warnanya transparan.

  1. Table Layout

Table layout adalah layout yang menampilkan elemen view berdasarkan baris dan kolom. Bagi Anda yang telah mempelajari HTML, penggunaan TableLayout disini seperti penggunaan table di HTML yaitu dengan tag <table> dan <tr> serta <td>.

  1. Grid View

Grid view adalah layout grid yang biasa digunakan untuk membuat galeri foto.

  1. TabLayout adalah layout pada android dengan desain seperti tab.
  2. ListView adalah jenis layout dengan tampilan list.

Layout memungkinkan Anda untuk membuat tampilan desain menggunakan file XML. Semua file layout harus di simpan dalam path /res/layout folder.

  • Mendesain User Interface/Layout

Desain Antarmuka atau yang lebih sering dikenal dengan istilah Design Interface adalah desain untuk komputer, peralatan, mesin, perangkat komunikasi mobile, aplikasi perangkat lunak, dan situs web yang berfokus pada pengalaman dan interaksi penggunanya.
Tujuan dari penggunaan design interface ini adalah untuk membuat interaksi pengguna sesederhana dan seefisien mungkin.

Design Interface ini sangat penting karena akan sangat berpengaruh pada user dalam menggunakan atau berkomunikasi. Apabila suatu program sulit untuk digunakan, maka hal ini akan memaksa user untuk melakukan suatu kesalahan saat menggunakan program tersebut.

Dari tahun ke tahun teknologi berkembang sangat pesat oleh sebab itu, perkembangan dari Human Computer Interface (HCI) menjadi sangat penting bagi seorang analyst yang merancang atau menciptakan suatu software. Di mana harus memperhatikan kaidah-kaidah atau prinsip prinsip dasar seperti User Friendly dan User Oriented.

Kunci dari sebuah desain antar muka (user interface) aplikasi yang bagus atau menarik adalah kemudahan pengguna dalam menggunakannya. Prinsip dalam membuat desain antar muka (user interface) sangat penting karena jika terlalu memusingkan, pengguna harus belajar lagi cara menggunakannya dan akan membuat mereka frustasi.

Hal-hal yang dibutuhkan dalam mendesain Interface yang bagus :

  1. Ketahui karakteristik penggunamu

Ketahui apa keahlian dan pengalaman penggunamu, ketahui apa yang mereka inginkan. Jangan mengikuti desain antar muka yang trendi atau menambahkan fitur baru hanya karena takut dikalahkan dalam kompetisi. Utamakan kebutuhan penggunamu agar kamu bisa membuat desain antar muka (user interface) yang “mereka banget”.

  1. Pecahkan masalah

Tidak perlu berusaha menciptakan hal-hal yang baru. Misalnya, jika seorang pengguna ingin memilih item dari sebuah list, sudah ada cara untuk melakukannya, checkbox misalnya. Jangan menciptakan sesuatu agar dibilang berbeda, gunakan metode yang sudah ada agar pengguna langsung akrab dengan desain antar muka (user interface) buatanmu.

  1. Tetap konsisten

Pengguna butuh konsistensi, artinya ketika mereka tahu cara melakukan sesuatu, mereka dapat melakukannya kembali. Desain antar muka (user interface) yang konsisten membantu pengguna mengerti bagaimana sesuatu akan bekerja yang pada akhirnya meningkatkan efisiensi mereka.

  1. Penempatan/layout

Tujuan pertama dalam membuat desain antar muka (user interface) adalah pengguna nanti tidak disulitkan dalam menjelajah isi website/aplikasi, jangan habiskan waktu pengguna sia-sia hanya karena berpikir cara menjelajah website/aplikasi kamu. Oleh karena itu, tempatkan elemen website/aplikasi di tempat yang mudah dicari oleh pengguna, contohnya search bar.

  1. Toleransi kesalahan pengguna

Sebagus-bagusnya atau sejelas-jelasnya desain kamu, pengguna bisa melakukan kesalahan. Desain antar muka (user interface) buatanmu harus bisa menolerir kesalahan mereka, misalnya jika pengguna salah memasukkan tanggal lahir mereka, pengguna dapat menghapus dan memasukkan kembali tanggal lahir mereka. Dan, jika terjadi eror karena pengguna, beri pesan yang dapat dimengerti pengguna bahwa pengguna melakukan kesalahan dan pastikan mereka tahu cara mencegah eror tersebut sebelum terjadi kembali.

  1. Buatlah sederhana

Desain antar muka (user interface) yang bagus adalah jika di dalamnya tidak terdapat elemen yang tidak diperlukan. Elemen yang diperlukan malah terlihat singkat dan nyambung. Kapan pun kalau kamu ingin menambahkan fitur atau elemen baru ke dalam interface kamu, tanyakan, “Apakah pengguna benar-benar butuh ini?” Jangan biarkan egomu merusak interfacemu.

  1. Lanjut terus

Kunci utama dari prinsip desain antar muka (user interface) adalah lanjut terus. Banyak yang bilang saat mengembangkan desain antar muka (user interface), kamu harus lebih banyak gagal, dan sering mengulang. Kamu pasti sering membuat kesalahan saat membuat desain antar muka (user interface). Lanjut terus aja, dan ingat, jangan mengulang dari awal lagi.

  • Android UI Control (TextView, Edit Text, Button, Spinner, Check Box, Radio Button).

User interface adalah sebuah desain yang digunakan sebagai penghubung antara manusia sebagai pengguna dengan software pada perangkat sehingga akan memudahkan pengoperasian dari perangkat tersebut. Mudahnya, UI merupakan desain tampilan pada layar perangkat seperti yang dimiliki oleh smartphone, tablet dan berbagai jenis perangkat lainnya. Atau sebagian orang awam lebih mengenalnya sebagai tema.

Didalam android ui atau input control adalah komponen interaktif atau View yang digunakan untuk merancang antarmuka pengguna aplikasi. Android memiliki beragam UI atau kontrol masukan yang tersedia, yaitu TextView, EditText, Buttons, Checkbox, Progressbar, Spinners, dll.

Berikut ini adalah representasi gambar dari antarmuka pengguna (UI) atau kontrol input dalam aplikasi android.

Umumnya, di android desain antarmuka pengguna sebuah aplikasi dibuat dengan koleksi objek View and ViewGroup.

View adalah kelas dasar untuk semua komponen UI di android dan digunakan untuk membuat komponen UI interaktif seperti TextView, EditText, Checkbox, Radio Button, dll dan bertanggung jawab untuk penanganan dan pengambilan gambar.

ViewGroup adalah subclass dari View dan akan bertindak sebagai kelas dasar untuk tata letak dan parameter tata letak. ViewGroup akan menyediakan wadah tak terlihat untuk menampung Views atau ViewGroup lainnya dan untuk menentukan properti tata letak.

Untuk mengetahui lebih banyak tentang View dan ViewGroup di aplikasi android, lihat Android View dan ViewGroup ini.

Di android, kita bisa mendefinisikan UI atau input control dengan dua cara, yaitu :

  1. Deklarasikan elemen UI dalam XML
  2. Buat elemen UI saat runtime

Kerangka kerja android memungkinkan kita untuk menggunakan salah satu atau kedua metode ini untuk menentukan UI aplikasi kita.

  • Contoh programnya UI Control dalam aplikasi

Daftar Pustaka

http://android-beginner-lessons.blogspot.co.id/2015/10/android-mengenal-komponen-aplikasi.html?m=1 diakses pada 22 oktober 2017 pukul 15:21.

https://developer.android.com/guide/topics/ui/overview.html?hl=id diakses pada 23 oktober 2017 pukul 19:00

https://developer.android.com/guide/topics/ui/declaring-layout.html?hl=id diakses pada 23 oktober 2017 pukul 30:30

http://tipblack.blogspot.co.id/2016/01/struktur-file-android.html diakses pada 24 oktober 2017 pukul 15:22

https://703junior.wordpress.com/2010/09/25/sistem-operasi/ diakses pada 25 oktober 2017 pukul 09:15

http://u-t-s-sumbawa.blogspot.co.id/2015/03/definisi-proses-dan-thread.html diakses pada 24 oktober 2017 pukul 13:00

https://awesomedit.wordpress.com/2013/04/22/siklus-hidup-activity-android/ diakses pada 24 oktober 2017 pukul 13:45

 

Download File :

Doc    : PMO_Kelompok_3_TI15C_Pertemuan_ke-3_Doc

PPT    : PMO_Kelompok_3_TI15C_Pertemuan_ke-3_PPT