Rabu, 20 Mei 2020

Pertemuan 4 Komponen Dasar Android (Activity)

KOMPONEN DASAR ANDROID
ACTIVITY

Pengertian Activity

Activity adalah komponen pada aplikasi Android yang menampilkan dan mengatur halaman aplikasi sebagai tempat interaksi antara pengguna dengan aplikasi, seperti membuat panggilan telepon, mengambil foto, mengirim pesan singkat, atau mengirim email. Sebuah Activity mengatur satu halaman user interface aplikasi. Sehingga jika sebuah aplikasi Android memiliki beberapa halaman user interface yang saling berinteraksi, berarti aplikasi tersebut memiliki beberapa Activity yang saling berinteraksi.
Activity merupakan salah satu komponen penting Android yang memiliki daur hidup (life cycle) dalam sebuah stack pada virtual sandbox yang disiapkan oleh Dalvik Virtual Machine (DVM) atau Android Runtime (ART) yang bersifat last in first out
Pada implementasinya, activity selalu memiliki satu layout user interface dalam bentuk berkas xml. Suatu aplikasi. Android bisa memiliki lebih dari satu activity dan harus terdaftar di berkas AndroidManifest.xml sebagai sub aplikasi

Konsep Last In, First Out

Saya coba jelaskan fase-fase di atas beserta contoh implementasinya pada aplikasi Whatsapp. Kita sepakati dulu halaman utama yang berisi list pesan dan grup disebut activity 1 dan halaman pesan disebut activity 2
  1. onCreate () yaitu fase ketika activity pertama kali diciptakan. misalnya ketika user tap icon aplikasi Whatsapp maka onCreate () akan dipanggil dan selalu diikuti dengan onStart ().
  2. onStart () yaitu fase yang dipanggil setelah onCreate (). Fase ini berlangsung cepat, membuat activity menjadi muncul pada layar. Pada fase ini user diarahkan ke tampilan halaman utama aplikasi Whatsapp.
  3. onResume () fase ini merupakan fase ketika user berinteraksi dengan dengan activity yang sedang berjalan. Contohnya ketika user men-scroll halaman utama aplikasi Whatsapp. Jika tiba-tiba ada interupsi masuk seperti saat ada panggilan telepon masuk, maka activity akan beralih ke posisi onPause (). Fase onResume () selalu diikuti onPause ().
  4. onPause () fase ini dipanggil ketika user meninggalkan suatu activity, fase ini berlangsung cepat sampai activity tidak lagi terlihat oleh user ( onStop () ).
  5. onStop () pada fase ini activity benar-benar tidak terlihat dan user tidak dapat berinteraksi dengan activity misalnya ketika berpindah activity. Ambil contoh ketika user di halaman utama Whatsapp (activity 1) kemudian berpindah ke halaman pesan (activity 2) maka activity 1 menjadi tidak terlihat dan activity 2 menjadi terlihat.
  6. onDestroy () pada fase ini activity dihancurkan. Contohnya saat user berada pada activity 2 (halaman pesan) kemudian kembali ke activity 1 (halaman utama) dengan menekan tombol back maka activity 2 (halaman pesan) akan dihancurkan.
  7. onRestart () fase ini terjadi ketika activity yang berada di posisi onStop () dipanggil kembali. Contohnya saat user kembali ke activity 1 (halaman utama) dari activity 2 (halaman pesan) aplikasi whatsapp maka activity 2 diarahkan ke onDestroy () dan activity 1 menuju onRestart (). fase ini selalu diikuti onStart().

Dari penjelasan diatas dapat kita lihat bahwa activity 2 masuk terakhir (last in) sehingga berada di stack teratas. Kemudian ketika user kembali ke activity 1 maka activity 2 menjadi aktivity yang pertama keluar dari stack (first out). Itulah konsep LIFO pada Android activity lifecycle.




1. Gambar 1
Jika Anda memiliki sebuah aplikasi yang terdiri dari 2 activity, maka activity pertama akan dijalankan setelah pengguna meluncurkan aplikasi melalui ikon aplikasi di layar device. Activity yang ada saat ini berada pada posisi activity running setelah melalui beberapa state onCreate ( created ) → onStart started ) → onResume (resumed) dan masuk ke dalam sebuah stack Bila pada activity pertama Anda menekan sebuah tombol untuk menjalankan activity kedua, maka posisi state dari activity pertama berada pada posisi stop . Saat itu, callback onStop() pada activity pertama akan dipanggil. Ini terjadi karena activity pertama sudah tidak berada pada layar foreground / tidak lagi ditampilkan. Semua informasi terakhir pada activity pertama akan disimpan secara otomatis.
Sementara itu , activity kedua masuk ke dalam stack dan menjadi activity terakhir yang masuk.

2. Gambar 2
Activity kedua sudah muncul di layar sekarang. Ketika Anda menekan tombol back pada physical button menu utama atau menjalankan metode finish()finish(), maka activity kedua Anda akan dikeluarkan dari stack Pada kondisi di atas, state activity kedua akan berada pada destroy. Oleh karenanya, metode onDestroy() akan dipanggil. Kejadian keluar dan masuk stack pada proses di atas menandakan sebuah model Last In, First Out Activity kedua menjadi yang terakhir masuk stack Last In ) dan yang paling pertama keluar dari stack First Out

3. Gambar 3
Activity Pertama akan dimunculkan kembali di layar setelah melalui beberapa state dengan rangkaian callback method yang terpanggil, onStop → onRestart → onStart → onResume.

Latihan Sederhana Penggunaan Activity

Tujuan

bertujuan untuk mengimplementasikan komponen activity pada aplikasi pertama yang akan bangun. Harapannya aktifitas ini dapat memberi gambaran yang jelas tentang cara kerja activity.

Logika Dasar

Melakukan input ke dalam obyek TextBox → melakukan validasi input → melakukan perhitungan volume balok ketika tombol hitung diklik maka tampil hasil perhitungan.

Berikut flow umumnya.
1. Ngoding Layout untuk user interface aplikasi
2. Ngoding Activity untuk menambahkan logika aplikasi



1. Silakan klik tab file activity_main.xml pada workspace Anda( res/Layout/activity_main.xml ), dan tambahkan baris baris berikut:


Akan muncul warning pada atribut android:text pada layout tersebut. Ini karena kita melakukan hardcoding pada nilai string nya. Mari kita hilangkan code warning tersebut dengan menekan Alt+Enter pada attribut android:text

Akan muncul dialog seperti ini, pilihlah extract string resource.


Kemudian akan muncul dialog seperti di bawah ini. Sesuaikan dengan nama yang ada.


Fungsi  extract string resource akan secara otomatis menambahkan nilai dari android:text ke dalam berkas res → values → strings.xml . Lakukan hal yang sama pada view lainnya hingga tidak ada warning lagi. 

Jika kita buka berkasstrings.xml , maka isinya akan menjadi seperti ini :
1.<resources>
2.<string name="app_name">BarVolume</string>
3.<string name="lebar">Lebar</string>
4.<string name="tinggi">Tinggi</string>
5.<string name="hitung">Hitung</string>
6.<string name="hasil">Hasil</string>
7.<string name="panjang">panjang</string>
8.</resources>

Jika terjadi kesalahan pada atribut dimens , maka kita perlu menambahkan berkas dimens.xml di
dalam res → values → dimens.xml . Kesalahan ini disebabkan karena pada Android Studio 2.3, berkas dimens.xml sudah tidak dibuat secara otomatis. 

Langsung saja tambahkan dengan cara Klik Kanan pada directory res . Akan muncul dialog seperti ini.


Kemudian isi sesuai di bawah ini.


Jika berkas dimens.xml sudah dibuat, sesuaikan isinya menjadi seperti berikut.

1.<resources>
2. <!--Default screen margins, per the Android Design guidelines.-->
3.<dimen name="activity_horizontal_margin">16dp</dimen>
4.<dimen name="activity_vertical_margin">16dp</dimen>
5.</resources>

Menambahkan Kode Logika Sederhana pada MainActivity

Selanjutnya setelah selesai, lanjutkan dengan membuka berkas MainActivity.java dan lanjutkan ngoding baris baris dibawah ini.

Jika terdapat baris merah seperti ini :


Jangan khawatir! Silakan klik di atas baris merah tersebut dan klik pada ikon bola lampu Atau dengan tekan tombol Alt + Enter lalu pilih implements method

Setelah selesai, silakan jalankan aplikasi dengan memilih menu Run → Run ‘app’ dari menu bar.


Pertemuan 3 KONSEP RUNNING APPLICATION Emulator dan Device

KONSEP RUNNING APPLICATION
Emulator dan Device


Running Apps di Emulator dan Device

Menjalankan App di Emulator harus memperhatikan beberapa
aspek

• Cek Aspek Virtualization

Virtualization merupakan sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara system lain aplikasi atau pengguna berinteraksi dengan sumber daya tersebut Hal ini termasuk membuat sebuah sumber daya tunggal seperti server sebuah sistem operasi sebuah aplikasi atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal
Pastikan aspek virtualization yaitu prosessor dan sistem operasi dari laptop/PC yang digunakan

1. Cek Aspek virtualization

  • Processor

Prosesor Intel :

Jika laptop/pc Anda menggunakan prosesor Intel, maka pastikan ia mendukung Intel VT-x, Intel EM64T (Intel 64), dan Execute Disable (XD) Bit functionality.

Prosesor AMD :

Jika laptop/pc Anda menggunakan AMD, maka pastikan bahwa Laptop/PC support dengan AMD Virtualization (AMD V) dan Supplemental Streaming SIMD Extensions 3 (SSSE3).

  • Sistem Operasi

Intel :

Jika menggunakan processor Intel maka Anda dapat menjalankannya di sistem operasi Windows, Linux, maupun Mac

AMD :
Untuk prosesor AMD maka hanya bisa menjalankannya di sistem operasi Linux.


• Persiapan Running menggunakan Emulator dan Device

2. Instal Hardware Accelerated Execution Manager (HAXM) Khusus pengguna WINDOWS atau    MAC

HAXM hardware assisted virtualization engine yang menggunakan teknologi VT dari Intel untuk mempercepat aplikasi Android yang diemulasi di mesin host.

HAXM diperlukan untuk menjalankan emulator di Android Studio.
Langkah2 Menginstal HAXM
1. Buka SDK Manager
2. Pilih SDK Update Sites, kemudian hidupkan Intel HAXM
3. Tekan OK
4. Cari berkas installer nya di directory folder sdk komputer anda,
~sdk extras intel Hardware_Accelerated_Execution_Manager intel haxm android exe
5. Jalankan installer dan ikuti petunjuknya sampai selesai

• Persiapan Running menggunakan Emulator dan Device

Pengguna Linux

Sistem operasi Linux dapat support accelerated virtual machine dengan menggunakan KVM
Untuk instal KVM, Anda bisa menggunakan perintah berikut ini

$ sudo apt get install qemu kvm libvirt bin ubuntu vm builder
bridge utils ia 32 libs multiarch

Selengkapnya dapat Anda baca pada halaman ini :

https
:://developer android com/studio/run/emulator html
https
:://developer android com/studio/run/emulator acceleration html
Menginstal Kernel
based Virtual Machine (KVM)

Kelebihan Menggunakan Device ( Smartphone) daripada Emulator

Saat kita melakukan pemrograman android, Running program selalu dilakukan di emulator.”Bisa ga kalau langsung di test dismartphone lewat USB kabel?”. Jawaban singkatnya bisa.
Apa sih kelebihan menggunakan real device ketimbang emulator? Ada dua yaitu:
  1. Memastikan bahwa aplikasi bisa berjalan di real hardware.
  2. Loading lebih cepat saat testing tanpa  memakan memori dan Prosesor Komputer.
Beberapa kelebihan Real Device jika dibandingkan dengan emulator yaitu :

  • Lebih cepat
  • Fitur seperti geo location, push notif bisa digunakan;
  • Bisa mengetahui daya serap baterai terhadap aplikasi.
  • Lebih mudah dan dapat memastikan aplikasi berjalan di pengguna.  

Running Project Aplikasi Android Studio dengan Device dan Emulator  

Saya akan mencoba mengulas bagaimana kita running project aplikasi yang telah kita buat. Bagi yang sudah pernah mengembangkan sebuah software maka sudah tidak asing dengan proses running ini. Namun pada pengembangan aplikasi Android ini terdapat pilihan, apakah anda akan mencoba running project aplikasi anda pada perangkat Android anda langsung atau ingin running pada Emulator.
  • Running dengan device
Untuk menjalankan menggunakan perangkat smartphone kita langsung hal yang pertama dilakukan adalah menghubungkan antara komputer dan perangkat kita menggunakan kabel usb.

Dalam menghubungkan disini anda perlu mengaktifkan “USB Debugging” pada device kita. Pengaturannya ada pada “Settings” kemudian “Developer Options”.

Developer Options
USB Debugging
Apabila anda menggunakan device baru dengan sistem Android 4.0 keatas, kemungkinan besar menu “Developer Options” tidak akan muncul. Untuk memunculkannya anda hanya perlu buka menu “Settings” kemudian “About Device” dan tab “Build Number” sebanyak 7 kali.
About Device
Build Number
Sekarang coba anda klik running pada toolbar Android Studio, apabila device kita sudah terbaca maka anda dapat langsung memilih dan menjalankan project aplikasi. Untuk pengguna os Linux mungkin device anda dapat langsung terdeteksi, namun apabila anda pengguna os Windows mungkin device anda tidak dapat langsung terdeteksi.
Bagi anda pengguna windows, agar device anda dapat terdeteksi maka anda harus install aplikasi tambahan yang dapat mendeteksi device anda. Aplikasi tambahan tersebut sesuai dengan vendor smartphone yang anda gunakan. Berikut beberapa aplikasi yang dapat anda gunakan:
Setelah anda install aplikasi tambahan tersebut silah coba restart dan klik running. Beberapa aplikasi tambahan lain dapat anda cari langsung biasanya dengan mengunjungi situs resmi dari vendor device anda masing-masing
  • Running dengan emulator
Emulator adalah sebuah perangkat lunak yang digunakan untuk mensimulasikan, misal kita dapat seolah-olah menggunakan perangkat Android Samsung S5 pada laptop kita secara virtual. Ada juga beberapa aplikasi tambahan yang meyediakan emulator, diantarnya yang cukup terkenal adalah Genymotion silahkan cek disini. Anda hanya perlu melakukan instalasi dan android studio akan mendeteksi secara otomatis bila emulator anda sudah jadi.

Namun pada dasarnya Android Studio sendiri sudah menyediakan emulator, ada hanya perlu melakukan konfigurasi sesuai kebutuhan. Untuk membuat emulator silahkan lakukan tutorial berikut:

- Buka Menu “Tools” kemudian “Android” dan pilih “AVD Manager”

- Untuk anda yang belum memiliki emulator maka akan muncul dialog dan klik “Create Virtual Device”

- Setelah itu anda harus memilih hardware dari device yang akan menjadi emulator anda

- Kemudian anda memilih os dari device yang akan digunakan. Disini saya memilih API Level 15, maksudnya untuk tidak memilih device yang terlalu terbaru agar kita tahu apakah project kita ketika digunakan pada device lama terjadi kesalahan atau tidak

- Tunggu proses download selesai lalu anda akan disuguhi konfigurasi untuk emulator anda, lalu klik Next

- Kemudian klik Finish

Untuk menjalankan silahkan klik tombol run lagi dan jika berhasil nama emulator anda akan muncul. Demikian ulasan singkat tentang bagimana kita dapat running project aplikasi yang telah kita buat. Pilihan sepenuhnya ada ditangan anda. Namun menurut saya sebaiknya kita bijak dalam memilih. Apabila kita hanya memiliki spesifikasi komputer yang tidak terlalu tinggi sebaiknya gunakan device untuk running project. Sedangkan apabila spesifikasi komputer kita sudah cukup mumpuni, alangkah lebih mudah menggunakan emulator. Selain itu sebaiknya anda jangan terlalu memaksakan, apabila dengan spesifikasi komputer yang minimal dan anda memaksa menggunakan emulator maka yang terjadi hanya akan memakan waktu debugging yang semakin lama. Semoga ulasan singkat ini dapat bermanfaat, terima kasih.

Sumber Referensi :

https://idncoding.blogspot.com/2016/09/running-project-aplikasi-android-studio.html

Komponen Android Service

Komponen Android Service Pengertian Service Sebelumnya telah belajar mengenai activity dan implementasinya. Activity adalah kom...