Pertemuan 3 : Komponen Aplikasi Android Anggota Kelompok Kukuh Prasetyo Adhi (15.11.0307) Warsito Aji (15.11.0306) Karima Dewi R (15.11.0313) Alfano Kurniawan W (15.11.0316) Bagus Nanda P (15.11.0301) Shisen Nugraha B (15.11.0311)
Komponen APLIKASI ANDROID Komponen aplikasi adalah bagian penting dari sebuah aplikasi Android. Komponen ini harus terhubung dengan AndroidManifest.xml file yang menggambarkan setiap komponen dari aplikasi dan bagaimana mereka berinteraksi. Ada empat komponen utama yang dapat digunakan dalam aplikasi Android: Activity Untuk menampilkan antarmuka aplikasi. Service Untuk menjalankan proses aplikasi di belakang layar. Broadcast Receiver Untuk komunikasi antar activity, aplikasi dan antar device. Content Provider Untuk manajemen data dan database.
Komponen Tambahan : Komponen Deskripsi Fragment Merupakan bagian dari antarmuka pengguna dalam Activity seperti tampilan tab atau pager View Tampilan 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 Secara visual, jendela Android adalah hierarki tampilan, yang merupakan objek yang berasal dari kelas View dan ViewGroup. View adalah kelas dasar untuk subkelas android.widget, yang memberi instantiate objek UI sepenuhnya-diimplementasikan. Misalnya, Button adalah subclass dari View. ViewGroup adalah kelas dasar untuk subclass “layout", yang menerapkan berbagai jenis arsitektur tata letak UI. (ViewGroup adalah bentuk khusus Tampilan yang dapat berisi Tampilan lainnya.) Misalnya, Class LinearLayout , yang menerapkan tata letak yang mengatur anak-anaknya dalam satu kolom atau satu baris tunggal. Class TableLayout, yang mengatur anak-anaknya dalam barisan dan kolom seperti meja. Class RelativeLayout, dimana posisi anak dapat digambarkan relatif terhadap satu sama lain atau dengan orang tua. Class FrameLayout, yang menghalangi area di layar untuk menampilkan satu item. Beberapa anak dapat ditambahkan ke FrameLayout dan semua anak akan dipatok di kiri atas layar (ini, misalnya, adalah cara untuk melapisi satu set tombol di atas gambar). Kelas GridView, yang menampilkan item dalam grid bergulir dua dimensi.
PROSES THREAD Proses Secara Default, Semua Komponen Aplikasi Yang Sama Berjalan Dalam Proses Yang Sama Dan Kebanyakan Aplikasi Tidak Boleh Mengubah Ini. Akan Tetapi, Jika Anda Merasa Perlu Mengontrol Proses Milik Komponen Tertentu, Anda Dapat Melakukannya Dalam File Manifes. Ada lima tingkatan dalam hierarki prioritas. Daftar berikut berisi beberapa tipe proses berdasarkan urutan prioritas (proses pertama adalah yang terpenting dan dimatikan terakhir): Proses latar depan : Proses yang diperlukan untuk aktivitas yang sedang dilakukan pengguna. Proses yang terlihat : Proses yang tidak memiliki komponen latar depan. Proses layanan : Proses yang menjalankan layanan yang telah dimulai dengan metode startService() dan tidak termasuk dalam salah satu dari dua kategori yang lebih tinggi. Proses latar belakang : Proses yang menampung aktivitas yang saat ini tidak terlihat oleh pengguna (metode onStop() aktivitas telah dipanggil) Proses kosong : Sebuah proses yang tidak berisi komponen aplikasi aktif apa pun. Alasan satu-satunya mempertahankan proses seperti ini tetap hidup adalah untuk keperluan caching,
PROSES THREAD Thread Bila Aplikasi Diluncurkan, Sistem Akan Membuat Thread Eksekusi Untuk Aplikasi Tersebut, Yang Diberi Nama, "Main". Thread Ini Sangat Penting Karena Bertugas Mengirim Kejadian Ke Widget Antarmuka Pengguna Yang Sesuai, Termasuk Kejadian Menggambar. Ini Juga Merupakan Thread Yang Membuat Aplikasi Berinteraksi Dengan Komponen Dari Toolkit Android UI (Komponen Dari Paket Android.Widget Dan Android.View). Karena Itu, Thread 'Main' Juga Terkadang Disebut Thread UI. Sistem ini tidak membuat thread terpisah untuk setiap instance komponen. Semua komponen yang berjalan di proses yang sama akan dibuat instance-nya dalam thread UI, dan sistem akan memanggil setiap komponen yang dikirim dari thread itu. Akibatnya, metode yang merespons callback sistem (seperti onKeyDown() untuk melaporkan tindakan pengguna atau metode callback daur hidup) selalu berjalan di thread UI proses.
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. Nama kelas yang kita inisiasi adalah StartingPoint yang berada dalam package bernama com.thenewboston.travis. Package adalah suatu pembungkus atau suatu kemasan yang berisi banyak kelas-kelas. Setelah Activity menurunkan sifat-sifatnya atau dengan kata lain setelah StartingPoint melakukan extends kepada kelas Activity, maka siklus di atas berlaku pula pada kelas StartingPoint. Siklus sesungguhnya berisi dengan masing-masing state yang sebenarnya adalah suatu method yang dimiliki kelas activity
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). 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
PROJECT STRUCTURE – manifest di dalamnya terdapat AndroidManifest.xml yang berisi informasi dasar app yang sedang dibuat seperti minimal android yang yang dibutuhkan, informasi activity, izin untuk akses internet, dll – java Berisi file java yang dipakai di app. Terdapat juga file java yang mengatur activity. – res Folder berisi resources yang dipakai di app. Di dalam folder ini terdapat sup-sub folder sebagai berikut: – res/drawable Folder untuk meletakkan file gambar atau file XML yang dipakai di app. – res/layout Berisi layout berformat XML untuk mengatur tampilan app. – res/mipmap Berisi gambar yang dipakai di app sebagai icon yang akan tampil di launcher. – res/values Berisi string.xml, color.xml, menu.xml, dll untuk keperluan app. – gradle Sebuah featured build automation. File Gradle berisi daftar library yang digunakan, versi aplikasi, lokasi repository dll. File yang akan sering kita ubah adalah file build.gradle.
STRUKTUR XML Seperti yang telah kita ketahui pada tutorial sebelumnya bahwa struktur dasar XML terdiri dari beberapa elemen seperti root child dan subchild. Namun XML juga mempunyai bentuk atau struktur yang menyerupai bentuk sebuah pohon sehingga disebut struktur pohon atau Tree Struckture. Dan berikut ini adalah dalam bentuk struktur pohonnya : Struktur Pohon XML Struktur Penulisan XML
JENIS-JENIS LAYOUT Layout adalah suatu tampilan tata letak di android studio untuk mengatur penempatan text/gambar yang sudah terkonsep. Berikut jenis-jenis layout yang terdapat di Android : 1. LinearLayout 2. RelativeLayout 3. TableLayout 4. GridView 5. TabLayout 6. ListView
LinearLayout adalah layout yang menampilkan elemen-elemen view dengan arah linear, vertikal ataupun horizontal. Ini adalah layout paling sederhana di Android. 2. RelativeLayout adalah layout yang menampilkan elemen-elemen view dalam posisi yang relatif. Posisi dari sebuah view yang dapat diletakkan relatif terhadap posisi elemen view di sekitarnya atau relatif terhadap area layout utama. Sebuah desain tampilan aplikasi bisa dibuat lebih mudah dan sederhana menggunakan RelativeLayout dibandingkan dengan LinearLayout. 3. TableLayout 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>.
GridView adalah layout grid yang biasa digunakan untuk membuat galeri foto. 5. TabLayout adalah layout pada android dengan desain seperti tab. 6. ListView adalah jenis layout dengan tampilan list.
Mendesain user interface / layout Di Layout Editor Android Studio, Anda Bisa Dengan Cepat Membangun Layout Dengan Menyeret Widget Ke Dalam Editor Desain Visual Sebagai Ganti Menulis XML Layout Secara Manual. Editor Ini Bisa Menampilkan Pratinjau Layout Anda Dalam Berbagai Versi Dan Perangkat Android, Dan Anda Secara Dinamis Bisa Mengubah Ukuran Layout Untuk Memastikannya Berfungsi Dengan Baik Pada Berbagai Ukuran Layar. Layout Editor Sangat Berguna Saat Membangun Layout Baru Dengan Constraintlayout—pengelola Layout Yang Disediakan Dalam Pustaka Dukungan Yang Kompatibel Dengan Android 2.3 (API Level 9) Dan Yang Lebih Tinggi.
Android ui control
Contoh programnya ui control dalam aplikasi <Linearlayout Xmlns:android=http://Schemas.Android.Com/Apk/Res/Android android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical“ tools:context=“.UIandroid1” > <Textview android:id="@+id/text_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="contoh Program User Interface" /> <Button android:id="@+id/button_send" android:text=“Button" </Linearlayout>
sumber http://android-beginner-lessons.blogspot.co.id/2015/10/android-mengenal-komponen-aplikasi.html https://awesomedit.wordpress.com/2013/04/22/siklus-hidup-activity-android/ https://medium.com/@kalifardy56/mengenal-jenis-layout-android-studio-335a63666ff7 https://mobileacademycamp.wordpress.com/2016/02/15/struktur-project-pada-android-studio/ http://bisakomputer.com/aturan-penulisan-sintaks-pada-dokumen-xml/ http://eagle.phys.utk.edu/guidry/android/androidUserInterface.html https://developer.android.com/guide/topics/ui/controls.html?hl=id https://developer.android.com/guide/components/processes-and-threads.html?hl=id http://medyarizkadani.blogspot.co.id/2012/06/tutorial-xml-2-struktur-xml.html