Pengantar Materi Android Fundamental

Dalam kelas ini kita akan belajar tentang komponen-komponen dasar yang digunakan untuk membuat aplikasi android sederhana dengan menggunakan Android Studio. Berikut adalah materi yang akan kita pelajari :Dasar Pengembangan Aplikasi Android

Pada bagian ini, kita meninjau ulang konsep-konsep dasar dalam pengembangan aplikasi Android yang sudah dipelajari pada kelas Android Pemula. Mulai dari Activity, XML, Intent, View & ViewGroup, Style & Theme, RecyclerView, serta Library & ViewBinding.



Fragment
Fragment adalah sebuah komponen yang dapat digunakan dalam aplikasi Android yang memungkinkan Anda untuk membagi tampilan aplikasi Anda ke dalam beberapa bagian kecil yang dapat dipasang dan dihapus secara dinamis sesuai kebutuhan. Ini bisa sangat berguna ketika Anda ingin menampilkan beberapa bagian tampilan yang berbeda pada layar yang sama atau ketika Anda ingin menampilkan tampilan yang berbeda pada perangkat dengan ukuran layar yang berbeda.


Navigation
Navigation sangat berguna untuk membantu pengguna berselancar di dalam aplikasi Anda dengan mudah dan memahami bagian mana yang sedang mereka akses. Navigation dapat mencakup berbagai macam fitur seperti Navigation Drawer atau Bottom Navigation untuk menyediakan menu navigasi yang terletak di sisi kiri atau bagian bawah layar.


Background Thread dan Networking
Background Thread adalah sebuah thread yang dijalankan di latar belakang aplikasi Android dan tidak terganggu oleh interaksi pengguna dengan aplikasi. Thread ini berguna ketika Anda ingin menjalankan tugas yang membutuhkan waktu lama atau mengakses sumber daya eksternal seperti networking. Networking adalah proses mengakses dan mengambil data dari server web melalui jaringan.


Android Architecture Component
Android Architecture Components adalah sekumpulan library yang dikembangkan oleh Google yang bertujuan untuk membantu Anda mengelola aplikasi Android dengan lebih mudah dan efisien sesuai dengan best-practice. Komponen-komponen ini mencakup berbagai macam fitur seperti mengelola database, mengelola data yang akan ditampilkan, dan mengelola navigasi di aplikasi. Komponen-komponen ini juga membantu Anda mengelola kode aplikasi Anda dengan lebih baik dengan memisahkan tugas-tugas yang berbeda ke dalam komponen yang lebih kecil dan lebih mudah dikelola.


Testing
Testing adalah proses menguji aplikasi Android untuk memastikan bahwa aplikasi tersebut berfungsi seperti yang diharapkan dan tidak terdapat bug atau masalah yang mengganggu pengguna. Testing ini meliputi unit testing untuk menguji setiap fungsi dan UI testing untuk menguji alur aplikasi. Membuat testing secara teratur juga dapat membantu Anda mengelola kode aplikasi Anda dengan lebih baik dengan memastikan bahwa setiap perubahan yang Anda buat tidak merusak bagian lain dari aplikasi.


Local Data Persistent
Local data persistent adalah cara untuk menyimpan data pada aplikasi Android yang tersimpan secara lokal pada perangkat yang sedang digunakan. Data ini tidak akan hilang jika aplikasi dihentikan atau perangkat dimatikan, sehingga dapat digunakan kembali pada saat aplikasi dibuka kembali. Penyimpanan ini meliputi file storage, DataStore untuk penyimpanan konfigurasi, dan database menggunakan Room.


Background Task & Scheduler
Background task adalah proses yang dijalankan di latar belakang pada aplikasi Android, sehingga tidak mempengaruhi interaksi pengguna dengan aplikasi. Contohnya, aplikasi dapat menjalankan proses pengiriman notifikasi, sinkronisasi data dengan server, atau proses lainnya di latar belakang tanpa harus menunggu selesainya proses tersebut untuk melanjutkan interaksi dengan pengguna. Ada beberapa komponen yang bisa Anda gunakan untuk melakukan hal ini, yaitu Alarm Manager dan WorkManager.

Menarik, bukan? Semua hal tersebut akan Anda pelajari di dalam kelas ini. Ini merupakan dasar-dasar yang Anda perlukan untuk bisa membuat aplikasi Android sendiri dan siap untuk di-publish di PlayStore.

Tidak hanya teori, di dalamnya juga ada banyak latihan untuk membuat Anda praktik secara langsung dan paham dengan materi yang dipelajari. Di akhir kelas, juga ada Submission yang direview oleh para expert untuk memvalidasi kemampuan Anda dalam membuat aplikasi Android. Sudah tidak sabar? Yuk, kita mulai langkah kita!




maka setidaknya Anda harus memiliki bekal pengetahuan dasar tentang pembuatan aplikasi Android, seperti.Memahami penggunaan Android Studio untuk membuat dan menjalankan project.
Mempelajari konsep dasar Activity untuk mengambil dan menampilkan data.
Memahami cara untuk berpindah halaman beserta mengirimkan data pada aplikasi dengan menggunakan Intent.
Mengetahui cara mendebug aplikasi jika terjadi error, baik melalui menampilkan Log pada Logcat maupun menggunakan debug breakpoint.
Mengetahui berbagai macam layout dan komponen yang dapat digunakan untuk mendesain aplikasi.
Memahami penggunaan resources untuk pembuatan desain aplikasi.
Memahami konsep dan cara kerja RecyclerView untuk menampilkan data yang berjumlah banyak secara dinamis.

Sudah siap? Yuk, mari lanjut ke modul selanjutnya!
Prasyarat Tools

Selain kemampuan prasyarat yang sudah Anda ketahui di materi sebelumnya, kelas ini juga memiliki prasyarat tools yang perlu Anda penuhi terlebih dahulu. Berikut beberapa tools yang bisa Anda gunakan.



Komputer/Laptop

Komputer/Laptop menjadi tools wajib untuk mengikuti kelas ini. Anda bebas menggunakan sistem operasi apa saja, baik Windows, Linux, atau pun MacOS. Pastikan komputer atau laptop yang Anda gunakan juga terhubung dengan internet. Untuk spesifikasi yang digunakan minimal adalah sebagai berikut:Prosesor : Intel Core i3 (Rekomendasi Core i5 ke atas).
RAM : 8 GB atau lebih.
Resolusi layar : 1280 x 800 (Rekomendasi Full HD 1920 x 1080).



Android Studio

Selain komputer/laptop, tools lain yang diperlukan adalah Android Studio. Android Studio merupakan IDE (Integrated Development Environment) berbasis JetBrains Intellij IDEA yang dikhususkan untuk pengembangan software berbasis Android. Kami sarankan Anda menggunakan versi terbaru dari Android Studio.

Untuk melihat tata cara instalasi Android Studio secara lebih detail di masing-masing OS, Anda dapat melihatnya pada tautan berikut.

https://developer.android.com/studio/install

Selain itu, Anda juga perlu mengetahui cara menjalankan project ke emulator atau device secara langsung. Detailnya dapat dilihat pada tautan berikut.https://developer.android.com/studio/run

Glosarium

Ini adalah glosarium dengan istilah umum yang digunakan di dalam kelas. Anda dapat membaca sekilas materi ini untuk mengenali istilah-istilah umum yang ada di modul kelas ini. Selain itu, Anda juga dapat mengunjungi kembali halaman ini setiap kali menemukan istilah yang belum dimengerti. Carilah istilah tersebut pada laman glosarium ini untuk mengidentifikasi makna atau definisinya. Jika masih terdapat kosakata yang tidak Anda pahami dan belum masuk di daftar ini, Anda dapat memberikan saran melalui fitur Laporan Materi.


A

Abstract Class
Sebuah class yang ditandai dengan keyword “abstract”, yang mempunyai beberapa properti dan atau fungsi yang belum terdapat implementasinya. Class ini harus diimplementasi terlebih dahulu oleh class lainnya agar bisa diinisiasi.

Abstraction/Abstraksi
Proses representasi data menjadi lebih umum, dengan menyembunyikan rincian/detail implementasi dan hanya fokus pada yang penting saja.

Annotation
Tanda yang diberikan untuk memasukkan metadata pada suatu class maupun variable pada saat compile time dengan memanfaatkan reflection.

API (Application Programming Interface)
Sebuah interface yang dapat menghubungkan suatu aplikasi dengan aplikasi lainnya, baik dalam satu platform yang sama maupun berbeda.

Architecture
Gambaran umum secara high-level tentang bagaimana suatu aplikasi dibangun.

Argument
Sebuah nilai yang akan disematkan atau diteruskan ke dalam parameter sebuah fungsi.

Asynchronous
Proses yang berjalan tidak berurutan, bersamaan/berbarengan dalam suatu waktu.

Attribute
Merepresentasikan karakteristik dari suatu objek atau properti dari sebuah objek.



B

Best Practice
Suatu cara paling efisien (upaya paling sedikit) dan efektif (hasil terbaik) untuk menyelesaikan suatu tugas, berdasarkan suatu prosedur yang dapat diulangi yang telah terbukti manjur untuk banyak orang dalam jangka waktu yang cukup lama.

Boilerplate Code
Penulisan baris kode berulang di banyak tempat tanpa adanya perubahan.

Bug
Segala bentuk kecacatan dalam suatu aplikasi.

Business Logic/Domain Logic
Kode yang berisi logika utama dari suatu aplikasi yang merepresentasikan proses bisnis di dunia nyata.


C

Callback
Fungsi yang akan diteruskan sebagai argumen ke kode lain yang diharapkan untuk dieksekusi sebagai argumen pada waktu yang tepat.

Class
Class merupakan blueprint atau definisi struktur dari sebuah objek yang belum diinisiasi. Di dalamnya terdapat kumpulan properti dan fungsi yang mencerminkan kegunaan dari class.

Clean Code
Aturan dalam penulisan kode saat pengembangan aplikasi yang digagas oleh Robert C. Martin, di mana menerapkan beberapa teknik tertentu agar kode yang dituliskan bisa dengan mudah dibaca, ditulis, maupun diperbaiki.

Collection
Objek yang dapat digunakan untuk menyimpan sekumpulan objek.

Compiler
Perangkat lunak yang digunakan untuk menerjemahkan bahasa pemrograman menjadi program system.

Configuration Change
Perubahan konfigurasi yang terjadi pada device yang menyebabkan Activity di-destroy/dihapus dari memori lalu dibuat lagi dari awal, misalnya saat screen rotation (perubahan orientasi layar dari potrait ke landscape dan sebaliknya).

Constant (Konstanta)
Tidak berubah-ubah nilainya.

Constructor
Method yang secara default sudah terbentuk ketika kelas dibuat. Ketika suatu kelas dibuat (instansiasi) maka konstruktor akan terpanggil juga.

Console
Tool yang dapat digunakan untuk menjalankan perintah atau melihat pesan log.cm

Crash
Keadaan dari suatu sistem (aplikasi atau sistem operasi), di mana sistem tersebut tidak berfungsi dengan normal dan terpaksa mengakhiri berjalannya sistem tersebut.



D

Data Classes
Kelas sederhana yang bisa berperan sebagai data container pada kotlin. Di dalamnya terdapat beberapa fungsi yang sudah disediakan untuk menghandle beberapa operasi data seperti equals(), toString(), hashCode(), & copy().

Debug
Proses mengidentifikasi atau menghapus error pada sebuah perangkat keras atau perangkat lunak.

Dependency
Suatu object yang dibutuhkan untuk melakukan suatu proses.

Design Pattern
Pola dasar atau template dari sebuah cara untuk menyelesaikan suatu permasalahan dalam situasi yang berbeda-beda.



E

Endpoint
Bagian akhir pada API yang digunakan untuk menentukan data apa yang diambil.

Exception
Kesalahan yang muncul saat aplikasi dijalankan.

Expression
Kombinasi dari data, variabel, dan atau operator yang mengembalikan suatu nilai.

Extends
Kata kunci yang digunakan untuk mengimplementasikan konsep inheritance.



F

Field
Bagian dari class yang berisi nilai khusus untuk object.

Framework
Kerangka kerja yang sudah disediakan untuk mengembangkan aplikasi. Kerangka kerja di sini sangat membantu developer dalam menuliskan sebuah kode dengan lebih terstruktur dan tersusun rapi.



G

Getter
Fungsi yang digunakan untuk membaca nilai sebuah variabel yang terenkapsulasi.



I

Immutable
Objek yang nilainya tidak bisa diubah saat runtime.

Implementation
Realisasi dari suatu spesifikasi aplikasi, misalnya seperti mengimplementasikan interface atau membuat real class dari abstract class.

Index
Indikator dalam bentuk angka yang merepresentasikan posisi dari sebuah item di dalam sebuah list atau daftar (daftar karakter, array, dsb).

Inisialisasi
Sebuah proses pemberian nilai awal setelah deklarasi sebuah variabel.

Inner Class
Kelas yang dideklarasikan di dalam sebuah kelas.

Instance
Perwujudan dari sebuah class (kelas).

Interface
Kontrak yang digunakan untuk berkomunikasi antara satu pihak dengan pihak yang lain. Di mana semua method di dalamnya harus diimplementasikan oleh class yang memakainya (mengimplementasikannya)



J

JSON (JavaScript Object Notation)
Format data yang menyajikan pasangan key dan value yang digunakan dalam pertukaran data antar program aplikasi dan juga bisa digunakan sebagai tempat penyimpanan dari suatu data.



K

Keyword
Dalam pemrograman, keyword adalah susunan huruf atau frasa yang sudah disediakan oleh bahasa program tertentu dan mempunyai arti spesial pada compiler.



L

Lifecycle
Siklus hidup atau tahapan-tahapan suatu proses dalam aplikasi mulai dari awal sampai akhir.



M

Mapping
Proses perubahan dari satu jenis model data ke jenis model lainnya.

Method
Bagian dari class yang menjalankan suatu aksi tertentu.

Mutable
Tipe variable yang bisa diubah nilainya.



N

Native
Asli atau murni.

Networking
Proses untuk mengambil data dari network/server.

Null
Tidak memiliki nilai/value.

Nullable
Kondisi dari sebuah variabel yang dapat menampung nilai null.



O

Object/Objek
Merupakan instance atau wujud nyata dari suatu kelas.

Observable
Objek yang bisa diamati/di-observe dalam jangka waktu tertentu.

Operator
Fungsi tertentu yang digunakan untuk menjalankan sebuah proses untuk menentukan hasil.

Override
Kata kunci yang digunakan untuk mengambil alih fungsi yang diwariskan.



P

Package
Cara yang digunakan untuk mengelompokkan kumpulan kelas.

Parameter
Nilai inputan berupa variabel pada saat fungsi itu didefinisikan.

Parenthesis
Tanda kurung/( ) yang berada pada sebuah function atau constructor.

Parsing
Proses penguraian suatu data dari satu data ke bentuk data lainnya.

Plugins
Kode dengan fungsi tertentu yang memungkinkan aplikasi atau program untuk menjalankan fitur tambahan di aplikasi atau program tersebut.

Properties
Atribut yang menjadi anggota dari suatu kelas. Properti digunakan untuk menyimpan data yang relevan dengan kelas. Seperti yang sudah disebutkan sebelumnya seperti tinggi, berat, dan umur adalah properti dari suatu kelas.



Q

Query
Syntax atau perintah yang dipakai untuk mengakses dan menampilkan data pada sistem database SQL.



R

Read-Only
Adalah kondisi di mana kita hanya dapat menjalankan proses membaca namun tidak dapat menjalankan proses menulis.

Refactor
Proses menulis ulang suatu kode menjadi lebih baik.

Reference
Suatu value yang mempunyai akses secara tidak langsung ke data atau objek lain.

Return Type
Tipe kembalian dari sebuah function.



S

Separation of Concern (SoC)
Proses pemisahan fungsi yang ada pada aplikasi.

Singleton Pattern
Sebuah pattern yang membatasi suatu object hanya memiliki satu instance saja dan satu cara akses ke instance tersebut.

Statement
Sebuah instruksi dalam bentuk kode yang digunakan oleh komputer untuk menjalankan aksi tertentu.

Synchronized
Keyword yang digunakan supaya hanya ada satu thread yang diperbolehkan untuk mengakses suatu instance dalam satu waktu.



T

Thread
Sekumpulan instruksi yang dapat dijalankan pada CPU.

Tipe Data Primitif
Tipe data primitif adalah tipe data yang hanya menyimpan satu nilai pada setiap satu variabel, seperti integer, string, dan boolean.



V

Variable
Dalam konteks pemrograman, variable adalah tempat yang digunakan untuk menyimpan suatu data.

Visibility Modifier
Keyword yang mengatur aksesibilitas dari suatu class, objek, interface, fungsi, dan properti. Contohnya seperti public, private, protected, dan internal.



Daftar Referensi

[1] Android Developers Channel. “Google Keynote (Google I/O'19)”. youtube.com. https://youtu.be/lyRPyRKHO8M (diakses pada 12 Apr 2021).

[2] Statista. “Mobile operating systems' market share worldwide from January 2012 to January 2021”. statista.com. https://www.statista.com/statistics/272698/global-market-share-held-by-mobile-operating-systems-since-2009/ (diakses pada 11 Apr 2021).

[3] Statista. “Number of available applications in the Google Play Store from December 2009 to December 2020”. statista.com. https://www.statista.com/statistics/266210/number-of-available-applications-in-the-google-play-store/ (diakses pada 11 Apr 2021).

[4] M. Shafirov. “Kotlin on Android. Now official”. blog.jetbrains.com. https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/ (diakses pada 11 Apr 2021).

[5] X. Ducrohet; T. Norbye; K.Chou. “Android Studio: An IDE built for Android”. android-developers.googleblog.com. https://android-developers.googleblog.com/2013/05/android-studio-ide-built-for-android.html (diakses pada 12 Apr 2021).

[6] I. Lake. “Android Design Support Library”. android-developers.googleblog.com. https://android-developers.googleblog.com/2015/05/android-design-support-library.html (diakses pada 27 Apr 2021).

[7] Android Developers. “Modern Android Development”. https://developer.android.com/modern-android-development (diakses pada 25 Mar 2021).

[8] Android Developers Channel. “#AndroidDevSummit '21: The Keynote!”. https://youtu.be/WZgR5Yf1iq8 (diakses pada 29 Okt 2021).

[9] Android Developers Blog. “Use Android Jetpack to Accelerate Your App Development”. https://android-developers.googleblog.com/2018/05/use-android-jetpack-to-accelerate-your.html (diakses pada 24 Mar 2021).

[10] Android Developers Channel. “What’s new in Jetpack | Session”. https://youtu.be/xeQ9faYJktM (diakses pada 20 Mei 2021).

[11] Android Developers Channel. “Architecture components - introduction (Google I/O '17)”. https://www.youtube.com/watch?v=FrteWKKVyzI (diakses pada 24 Mar 2021).

[12] M. Amygdalidis; S. Linzner; N. Korostelev . “Android Testing Support Library 1.0 is here!”. android-developers.googleblog.com. https://android-developers.googleblog.com/2017/07/android-testing-support-library-10-is.html (diakses pada 27 Apr 2021).

[13] J. Wharton; F. Muntenescu; J. Lau. “Introducing Android KTX: Even Sweeter Kotlin Development for Android”. android-developers.googleblog.com. https://android-developers.googleblog.com/2018/02/introducing-android-ktx-even-sweeter.html (diakses pada 27 Apr 2021).

0 Response to "Pengantar Materi Android Fundamental"