Posted in

Android dan Arsitekturnya

Sejarah Android

Sejarah Android dimulai pada tahun 2003 ketika Andy Rubin bersama rekan-rekannya mendirikan Android Inc. di Palo Alto, California. Awalnya, Android dirancang sebagai sistem operasi untuk kamera digital, namun karena melihat potensi besar industri ponsel pintar, fokus pengembangannya dialihkan ke perangkat mobile. Pada tahun 2005, perusahaan ini diakuisisi oleh Google, yang kemudian mengembangkan Android menjadi sistem operasi berbasis Linux dengan konsep open-source.

Perjalanan sejarah perkembangan Android semakin kuat ketika Google membentuk Open Handset Alliance pada tahun 2007 untuk mendukung standar terbuka perangkat seluler. Setahun kemudian, smartphone Android pertama yaitu HTC Dream resmi diluncurkan ke pasar dan menjadi awal persaingan besar di industri smartphone. Android terus berkembang dengan berbagai pembaruan versi yang membawa peningkatan fitur, performa, serta keamanan, menjadikannya sistem operasi yang fleksibel dan mudah diadopsi oleh berbagai produsen.

Kini, Android menjadi sistem operasi mobile paling populer di dunia dan digunakan oleh berbagai merek ternama seperti Samsung, Xiaomi, dan banyak lainnya. Keunggulan Android terletak pada sifatnya yang terbuka, dukungan aplikasi yang luas melalui Google Play Store, serta inovasi berkelanjutan dalam bidang kecerdasan buatan dan keamanan. Melalui perjalanan panjangnya, sejarah Android membuktikan bagaimana sebuah inovasi teknologi mampu mengubah wajah industri komunikasi global secara signifikan.

Versi Android

Berikut ini adalah urutan versi Android dari awal hingga sekarang (tahun 2026) yang mencakup versi resmi yang dirilis Google dan yang diperkirakan tengah dalam siklus rilis:

📱 Daftar Versi Android (1.0 – 16, termasuk Android 17 Beta)

  1. Android 1.0 – Rilis 23 September 2008 (tanpa nama codename)
  2. Android 1.1 – Rilis 9 Februari 2009
  3. Android 1.5 Cupcake – 2009
  4. Android 1.6 Donut – 2009
  5. Android 2.0–2.1 Eclair – 2009
  6. Android 2.2 Froyo – 2010
  7. Android 2.3 Gingerbread – 2010
  8. Android 3.0–3.2 Honeycomb – 2011
  9. Android 4.0 Ice Cream Sandwich – 2011
  10. Android 4.1–4.3 Jelly Bean – 2012
  11. Android 4.4 KitKat – 2013
  12. Android 5.0–5.1 Lollipop – 2014
  13. Android 6.0 Marshmallow – 2015
  14. Android 7.0–7.1 Nougat – 2016
  15. Android 8.0–8.1 Oreo – 2017
  16. Android 9 Pie – 2018
  17. Android 10 – 2019
  18. Android 11 – 2020
  19. Android 12 – 2021
  20. Android 12L (12.1) – 2022
  21. Android 13 – 2022
  22. Android 14 – 2023
  23. Android 15 – 2024
  24. Android 16 – 2025
  25. Android 17 (Beta / Dalam pengembangan pada 2026) – Diperkirakan dirilis stabil di tahun 2026

Catatan:

  • Android 10 dan yang lebih baru tidak lagi menggunakan nama makanan secara resmi, namun Google masih memiliki codename internal untuk masing-masing versi.
  • Android 17 saat ini telah memasuki fase Beta di awal tahun 2026 sebelum dirilis secara penuh nanti.

Tujuan Diciptakannya Android

Berikut adalah beberapa alasan dan tujuan diciptakannya Android beserta penjelasannya secara lengkap:

1. Menciptakan Sistem Operasi Mobile yang Terbuka (Open-Source)

Salah satu alasan utama Android diciptakan adalah untuk menghadirkan sistem operasi berbasis open-source yang bisa digunakan dan dikembangkan oleh berbagai produsen perangkat. Setelah diakuisisi oleh Google, Android dikembangkan sebagai platform terbuka melalui dukungan Open Handset Alliance. Dengan konsep ini, produsen smartphone bebas memodifikasi dan menyesuaikan sistem sesuai kebutuhan perangkat mereka, sehingga mempercepat inovasi di industri mobile.

2. Menyaingi Dominasi Sistem Operasi Lain

Pada awal kemunculannya, pasar smartphone didominasi oleh Symbian, BlackBerry OS, dan kemudian iPhone dengan iOS milik Apple. Android diciptakan untuk menjadi alternatif yang fleksibel dan dapat digunakan oleh banyak produsen sekaligus, bukan eksklusif untuk satu merek saja. Strategi ini membuat Android cepat berkembang dan diadopsi secara luas oleh berbagai perusahaan teknologi dunia.

3. Mengembangkan Ekosistem Layanan Digital Google

Android juga diciptakan untuk memperluas ekosistem layanan Google seperti Gmail, Google Maps, YouTube, dan Play Store. Dengan hadirnya Android, Google dapat memastikan layanannya terintegrasi langsung dalam perangkat pengguna. Hal ini memperkuat posisi Google dalam industri periklanan digital, pencarian internet, dan distribusi aplikasi secara global.

4. Memberikan Akses Smartphone yang Lebih Terjangkau

Android dirancang agar dapat digunakan di berbagai spesifikasi perangkat, mulai dari kelas entry-level hingga flagship premium. Strategi ini memungkinkan produsen seperti Samsung, Xiaomi, dan lainnya memproduksi smartphone dengan harga yang lebih kompetitif. Dampaknya, masyarakat di berbagai negara dapat menikmati teknologi smartphone dengan harga yang lebih terjangkau.

5. Mendorong Inovasi Teknologi Mobile

Android diciptakan untuk menjadi platform yang terus berkembang. Sistem ini mendukung inovasi seperti layar sentuh penuh, widget interaktif, notifikasi real-time, kecerdasan buatan (AI), hingga dukungan perangkat lipat dan Internet of Things (IoT). Karena bersifat terbuka, para pengembang aplikasi juga dapat menciptakan berbagai inovasi baru yang memperkaya pengalaman pengguna.

Kesimpulan

Android diciptakan bukan hanya sebagai sistem operasi biasa, tetapi sebagai platform terbuka yang mendorong inovasi, memperluas ekosistem digital, serta memberikan akses teknologi yang lebih luas kepada masyarakat dunia. Dengan strategi tersebut, Android berhasil menjadi sistem operasi mobile paling dominan hingga saat ini.

Model Aplikasi Android

Model aplikasi Android adalah arsitektur dan pendekatan pengembangan aplikasi yang dirancang khusus untuk berjalan di sistem operasi Android. Model ini berbasis komponen (component-based architecture), di mana aplikasi tidak hanya terdiri dari satu program utama, tetapi terdiri dari beberapa komponen yang saling terhubung dan dikelola oleh sistem operasi Android itu sendiri.

Android dikembangkan oleh Google dan menggunakan kernel Linux sebagai fondasinya. Dalam model aplikasi Android, setiap aplikasi berjalan dalam sandbox (ruang terisolasi) untuk menjaga keamanan dan stabilitas sistem.

Komponen Utama Model Aplikasi Android

  1. Activity
    Merepresentasikan satu tampilan layar (UI) yang berinteraksi dengan pengguna.
  2. Service
    Berjalan di latar belakang tanpa antarmuka pengguna, misalnya untuk memutar musik atau sinkronisasi data.
  3. Broadcast Receiver
    Menerima dan merespons pesan sistem atau aplikasi lain, seperti notifikasi baterai lemah.
  4. Content Provider
    Mengelola dan berbagi data antar aplikasi.

Selain itu, aplikasi Android menggunakan file AndroidManifest.xml untuk mendefinisikan izin (permission), komponen, dan konfigurasi aplikasi. Distribusi aplikasi dilakukan melalui Google Play Store atau file APK (Android Package).

Ciri-Ciri Model Aplikasi Android

  • Berbasis komponen dan lifecycle (siklus hidup dikontrol sistem).
  • Mendukung multitasking dan komunikasi antar aplikasi (Intent).
  • Sistem keamanan berbasis permission dan sandbox.
  • Distribusi digital melalui toko aplikasi.
  • Sangat bergantung pada event (event-driven programming).

Perbedaan Model Aplikasi Android dan Model Aplikasi Tradisional

AspekModel Aplikasi AndroidModel Aplikasi Tradisional
ArsitekturBerbasis komponen (Activity, Service, dll.)Umumnya monolitik atau client-server
InstalasiMelalui Play Store atau file APKInstalasi manual melalui file installer
Manajemen MemoriDikelola sistem Android secara otomatisDikelola oleh aplikasi atau sistem operasi desktop
KeamananSandbox dan permission systemBergantung pada sistem operasi dan jaringan internal
DistribusiDigital & terpusatBiasanya melalui CD, installer, atau jaringan lokal
LingkunganMobile (smartphone/tablet)Desktop atau server lokal

Kesimpulan

Model aplikasi Android dirancang khusus untuk lingkungan mobile yang dinamis, ringan, dan berbasis komponen. Sistem ini memungkinkan aplikasi berjalan secara fleksibel dengan kontrol penuh dari sistem operasi. Sementara itu, model aplikasi tradisional lebih berorientasi pada instalasi lokal, infrastruktur internal, dan arsitektur yang cenderung statis.

Perbedaan utama keduanya terletak pada arsitektur, distribusi, serta cara pengelolaan sumber daya dan keamanan sistem.

Arsitektur Android

Arsitektur Android disusun dalam bentuk lapisan (layered architecture) yang terdiri dari lima lapisan utama. Setiap lapisan memiliki fungsi spesifik dan saling mendukung agar sistem operasi Android dapat berjalan dengan optimal di perangkat mobile.

Secara umum, urutan arsitektur Android dari atas ke bawah adalah:

  1. Applications
  2. Application Framework
  3. Libraries
  4. Android Runtime (ART)
  5. Linux Kernel

1. Applications (Lapisan Aplikasi)

Lapisan paling atas adalah Applications. Ini adalah aplikasi yang langsung digunakan oleh pengguna.

Contoh:

  • Aplikasi Telepon
  • SMS
  • Browser
  • Kamera
  • WhatsApp, Instagram, dan aplikasi pihak ketiga lainnya

Semua aplikasi ini dibangun menggunakan Application Framework dan berjalan di atas Android Runtime. Setiap aplikasi berjalan dalam sandbox tersendiri untuk menjaga keamanan.

2. Application Framework

Lapisan ini menyediakan layanan dan API yang digunakan oleh pengembang untuk membuat aplikasi Android.

Komponen penting dalam Application Framework:

  • Activity Manager → Mengatur siklus hidup aplikasi
  • Window Manager → Mengelola tampilan layar
  • Content Provider → Mengatur dan berbagi data antar aplikasi
  • Resource Manager → Mengelola resource seperti string, layout, gambar
  • Notification Manager → Mengatur sistem notifikasi

Framework ini memungkinkan pengembang tidak perlu mengatur detail tingkat rendah karena sudah disediakan oleh sistem.

3. Libraries (Native Libraries)

Lapisan ini berisi berbagai library berbasis C/C++ yang digunakan oleh sistem Android.

Beberapa library penting:

  • SQLite → Database ringan untuk penyimpanan data
  • WebKit → Engine untuk browser
  • OpenGL ES → Untuk grafis 2D dan 3D
  • Media Framework → Untuk audio dan video
  • SSL → Keamanan komunikasi

Library ini membantu aplikasi berjalan lebih efisien dan cepat.

4. Android Runtime (ART)

Android Runtime (ART) adalah lingkungan eksekusi aplikasi Android.

Fungsinya:

  • Menjalankan file .dex (Dalvik Executable)
  • Mengelola memori
  • Garbage Collection
  • Mengoptimalkan performa aplikasi

Sebelumnya Android menggunakan Dalvik Virtual Machine (DVM), namun kini menggunakan ART yang lebih cepat dan efisien.

5. Linux Kernel

Lapisan paling bawah adalah Linux Kernel.

Kernel ini bertanggung jawab atas:

  • Manajemen memori
  • Manajemen proses
  • Driver perangkat (kamera, WiFi, Bluetooth, layar)
  • Manajemen keamanan
  • Power management

Linux Kernel menjadi inti sistem yang menghubungkan perangkat keras (hardware) dengan perangkat lunak (software).

Kesimpulan

Arsitektur Android dirancang secara berlapis untuk memastikan sistem berjalan stabil, aman, dan efisien.

  • Lapisan atas berfokus pada interaksi pengguna.
  • Lapisan tengah menyediakan layanan dan runtime.
  • Lapisan bawah mengelola perangkat keras dan sistem inti.

Struktur ini memungkinkan Android menjadi sistem operasi yang fleksibel, aman, dan mendukung jutaan aplikasi di berbagai perangkat.

Komponen Aplikasi Android

Berikut adalah penjelasan lengkap mengenai komponen utama dalam Aplikasi Android yang wajib dipahami oleh setiap developer:

1. Activity

Activity adalah komponen yang merepresentasikan satu tampilan layar (User Interface) dalam aplikasi Android.

Setiap activity biasanya mewakili satu halaman atau satu fitur tertentu. Misalnya:

  • Halaman login
  • Halaman dashboard
  • Halaman detail produk

Ciri-Ciri Activity:

  • Memiliki siklus hidup (lifecycle) seperti onCreate(), onStart(), onResume(), onPause(), onStop(), dan onDestroy()
  • Berinteraksi langsung dengan pengguna
  • Dikelola oleh Activity Manager dalam sistem Android

Contoh sederhana: Saat pengguna membuka aplikasi, sistem menjalankan activity utama (MainActivity).

2. Intent

Intent adalah mekanisme komunikasi antar komponen dalam Android. Intent digunakan untuk:

  • Berpindah dari satu activity ke activity lain
  • Menjalankan service
  • Mengirim broadcast

Jenis Intent:

  1. Explicit Intent → Digunakan untuk memanggil komponen yang spesifik (misalnya berpindah ke activity tertentu dalam satu aplikasi).
  2. Implicit Intent → Digunakan untuk meminta sistem menjalankan komponen yang sesuai dengan aksi tertentu (misalnya membuka browser untuk mengakses URL).

Contoh penggunaan:

  • Membuka kamera
  • Mengirim email
  • Membuka Google Maps

Intent membuat sistem Android bersifat fleksibel dan saling terintegrasi.

3. Service

Service adalah komponen yang berjalan di latar belakang (background) tanpa antarmuka pengguna (tanpa UI).

Service digunakan untuk proses yang berjalan terus-menerus, seperti:

  • Memutar musik
  • Sinkronisasi data
  • Mengunduh file
  • Mengakses API secara berkala

Jenis Service:

  • Started Service → Berjalan sampai dihentikan secara manual
  • Bound Service → Berjalan selama terhubung dengan komponen lain

Service memungkinkan aplikasi tetap bekerja meskipun pengguna tidak sedang membuka aplikasinya.

4. Content Provider

Content Provider adalah komponen yang digunakan untuk mengelola dan membagikan data antar aplikasi.

Misalnya:

  • Mengakses kontak telepon
  • Mengakses galeri foto
  • Berbagi database antar aplikasi

Content Provider biasanya menggunakan SQLite sebagai database internal, dan diakses melalui URI (Uniform Resource Identifier).

Keunggulannya:

  • Data lebih aman
  • Akses diatur melalui permission
  • Mendukung pertukaran data antar aplikasi

5. Broadcast Receiver

Broadcast Receiver adalah komponen yang menerima dan merespons pesan siaran (broadcast message) dari sistem atau aplikasi lain.

Contoh broadcast dari sistem:

  • Baterai lemah
  • Mode pesawat aktif
  • Perangkat selesai booting
  • SMS masuk

Aplikasi dapat:

  • Mendaftarkan receiver di AndroidManifest.xml
  • Atau mendaftarkannya secara dinamis melalui kode program

Broadcast Receiver biasanya tidak memiliki tampilan UI dan hanya aktif ketika menerima pesan tertentu.

Ringkasan Komponen Aplikasi Android

KomponenFungsi Utama
ActivityMengatur tampilan dan interaksi pengguna
IntentMedia komunikasi antar komponen
ServiceMenjalankan proses di latar belakang
Content ProviderMengelola dan berbagi data
Broadcast ReceiverMenerima pesan dari sistem atau aplikasi lain

Kesimpulan

Kelima komponen ini membentuk fondasi utama arsitektur aplikasi Android.

  • Activity menangani tampilan.
  • Intent menghubungkan komponen.
  • Service menjalankan proses background.
  • Content Provider mengelola data.
  • Broadcast Receiver merespons event sistem.

Memahami komponen-komponen ini sangat penting untuk membangun aplikasi Android yang terstruktur, efisien, dan sesuai standar pengembangan resmi.

Struktur Aplikasi Android

Secara umum, struktur aplikasi Android terdiri dari beberapa folder dan file utama yang memiliki fungsi masing-masing. Struktur ini dapat dilihat di dalam direktori project Android Studio.

1. Manifests

📄 AndroidManifest.xml

File inti yang berisi informasi penting tentang aplikasi.

Fungsi:

  • Mendeklarasikan nama paket (package name)
  • Mendefinisikan komponen aplikasi (Activity, Service, Broadcast Receiver, Content Provider)
  • Mengatur permission (izin akses seperti internet, kamera, lokasi)
  • Menentukan activity utama (launcher activity)
  • Menentukan minimum SDK dan target SDK

File ini wajib ada karena menjadi identitas dan konfigurasi utama aplikasi.

2. Java / Kotlin (Source Code)

Berisi kode program utama aplikasi yang ditulis menggunakan bahasa Java atau Kotlin.

📁 Struktur umum:

  • MainActivity.kt / MainActivity.java
  • Class tambahan (LoginActivity, DatabaseHelper, dll)

Fungsi:

  • Mengatur logika aplikasi
  • Mengontrol tampilan (UI)
  • Mengelola interaksi pengguna
  • Menghubungkan data dengan tampilan

Ini adalah bagian inti dari proses pengembangan aplikasi Android.

3. Res (Resources)

Folder res berisi seluruh resource non-kode seperti layout, gambar, warna, dan string.

📁 Item di dalam folder res:

a. layout

Berisi file XML untuk desain tampilan antarmuka.

Contoh:

  • activity_main.xml

Fungsi:

  • Mengatur posisi tombol, teks, gambar, dan komponen UI lainnya

b. drawable

Berisi file gambar atau desain grafis.

Contoh:

  • File PNG, JPG
  • Vector drawable (XML)

Fungsi:

  • Menyimpan ikon, background, ilustrasi

c. values

Berisi file konfigurasi nilai.

Contoh:

  • strings.xml → Menyimpan teks
  • colors.xml → Menyimpan warna
  • styles.xml / themes.xml → Mengatur tema aplikasi

Fungsi:

  • Memisahkan nilai statis dari kode program
  • Mendukung multi-bahasa (localization)

d. mipmap

Berisi ikon launcher aplikasi.

Fungsi:

  • Menyimpan ikon aplikasi untuk berbagai resolusi layar

4. Gradle Scripts

Digunakan untuk konfigurasi build aplikasi.

📄 Contoh:

  • build.gradle (Module)
  • build.gradle (Project)

Fungsi:

  • Menentukan versi SDK
  • Menambahkan dependency/library
  • Mengatur konfigurasi build (debug/release)

Gradle mengatur proses kompilasi dan pembuatan file APK atau AAB.

5. Assets (Opsional)

Folder untuk menyimpan file mentah (raw file).

Contoh:

  • File HTML
  • Font custom
  • File JSON
  • Database awal

Perbedaannya dengan res:

  • File di assets tidak memiliki ID resource otomatis
  • Diakses menggunakan AssetManager

6. Libs (Opsional)

Berisi library eksternal dalam bentuk file .jar atau .aar jika tidak menggunakan dependency online.

Ringkasan Struktur Aplikasi Android

ItemKeterangan
AndroidManifest.xmlKonfigurasi dan deklarasi komponen aplikasi
Java/KotlinKode program utama
res/layoutDesain tampilan UI
res/drawableGambar dan grafis
res/valuesString, warna, style
mipmapIkon aplikasi
Gradle ScriptsKonfigurasi build dan dependency
assetsFile mentah tambahan
libsLibrary eksternal

Kesimpulan

Struktur aplikasi Android dirancang agar terorganisir, modular, dan mudah dikembangkan. Pemisahan antara kode program dan resource membuat aplikasi lebih rapi, mudah dirawat, dan mendukung berbagai ukuran layar serta bahasa.

Memahami struktur ini sangat penting sebelum mulai mengembangkan aplikasi Android secara profesional.

File Manifest

AndroidManifest.xml adalah file inti yang wajib ada di setiap aplikasi Android. File ini berada di folder manifests pada project Android Studio dan berfungsi sebagai identitas aplikasi sekaligus pengatur konfigurasi dasar. Tanpa file ini, sistem Android tidak bisa mengenali aplikasi dan komponennya.

Fungsi Utama File Manifest

  1. Mendeklarasikan Package Name
    • Package name unik yang digunakan sebagai identitas aplikasi.
    • Contoh: com.example.myapp
    • Package name ini juga digunakan untuk distribusi di Google Play Store.
  2. Mendeklarasikan Komponen Aplikasi
    File manifest berisi semua komponen utama aplikasi, seperti:
    • Activity – layar utama atau fitur aplikasi.
    • Service – proses yang berjalan di latar belakang.
    • Content Provider – untuk mengelola dan berbagi data antar aplikasi.
    • Broadcast Receiver – untuk menerima pesan dari sistem atau aplikasi lain.
    Contoh deklarasi Activity: <activity android:name=”.MainActivity”>
    <intent-filter>
    <action android:name=”android.intent.action.MAIN”/>
    <category android:name=”android.intent.category.LAUNCHER”/>
    </intent-filter>
    </activity>
  3. Menentukan Permission / Izin
    • Mengatur akses aplikasi ke fitur perangkat keras atau layanan penting.
    • Contoh: <uses-permission android:name=”android.permission.INTERNET”/>
      <uses-permission android:name=”android.permission.CAMERA”/>
    • Android 6.0 ke atas juga mendukung permission runtime untuk keamanan lebih.
  4. Menentukan Minimum dan Target SDK
    • Memberi tahu sistem versi Android minimum yang didukung aplikasi dan versi target pengembangan.
    • Contoh: <uses-sdk android:minSdkVersion=”21″
      android:targetSdkVersion=”33″/>
  5. Deklarasi Fitur dan Hardware
    • Menentukan fitur hardware yang diperlukan, misalnya kamera atau sensor GPS.
    • Contoh: <uses-feature android:name=”android.hardware.camera”/>
      <uses-feature android:name=”android.hardware.location.gps”/>
  6. Menentukan Tema dan Style Global
    • File manifest dapat menentukan tema default aplikasi.
    • Contoh: <application
      android:theme=”@style/AppTheme”
      android:icon=”@mipmap/ic_launcher”
      android:label=”@string/app_name”>
      </application>
  7. Menentukan Library Eksternal
    • File manifest juga dapat mendeklarasikan dependensi library yang memerlukan izin khusus atau fitur tertentu.

Struktur Umum File Manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"> <!-- Izin / Permission -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/> <!-- Minimum SDK dan Target SDK -->
<uses-sdk android:minSdkVersion="21"
android:targetSdkVersion="33"/> <!-- Deklarasi Application -->
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"> <!-- Deklarasi Activity -->
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity> <!-- Deklarasi Service -->
<service android:name=".MyService"/> <!-- Deklarasi Broadcast Receiver -->
<receiver android:name=".MyReceiver"/>

<!-- Deklarasi Content Provider -->
<provider android:name=".MyProvider"
android:authorities="com.example.myapp.provider"
android:exported="true"/>
</application></manifest>

Kesimpulan

AndroidManifest.xml adalah pusat konfigurasi aplikasi Android. Fungsinya meliputi:

  • Menentukan identitas aplikasi (package name)
  • Mendeklarasikan semua komponen aplikasi (activity, service, content provider, broadcast receiver)
  • Mengatur izin akses perangkat keras dan data pengguna
  • Menentukan versi Android minimum dan target
  • Mengatur tema dan ikon aplikasi

File manifest memastikan aplikasi dapat dikenali oleh sistem Android, beroperasi dengan benar, dan dapat terintegrasi dengan fitur perangkat. Tanpa file ini, aplikasi tidak dapat dijalankan di Android.

Back Stack

Back Stack adalah mekanisme manajemen urutan Activity di Android yang memungkinkan pengguna kembali ke Activity sebelumnya ketika menekan tombol “Back” pada perangkat.

Setiap kali pengguna membuka Activity baru, Android menempatkan Activity tersebut di atas tumpukan (stack). Activity yang terakhir dibuka berada di atas, sedangkan Activity sebelumnya tetap berada di bawah. Ini mengikuti prinsip Last In, First Out (LIFO), seperti tumpukan buku: buku terakhir yang diletakkan di atas akan diambil pertama.

Cara Kerja Back Stack

  1. Saat aplikasi dijalankan, Activity pertama (MainActivity) ditempatkan di back stack.
  2. Jika pengguna membuka Activity kedua (SecondActivity), Android menempatkan activity baru ini di atas stack.
  3. Menekan tombol “Back” akan menghapus (pop) activity di atas stack dan menampilkan activity di bawahnya.
  4. Proses ini berulang untuk setiap activity yang dibuka.

Contoh urutan:

[MainActivity]  <- Bottom (pertama)
[SecondActivity] <- Top (terakhir dibuka)

Jika pengguna menekan tombol Back:

  • SecondActivity dihapus dari stack → MainActivity muncul kembali

Manfaat Back Stack

  • Memudahkan navigasi antar activity tanpa harus membuat logika manual.
  • Menyediakan pengalaman pengguna yang konsisten dengan prinsip “Back” di Android.
  • Memungkinkan multi-tasking sederhana di level Activity.

Pengaturan Back Stack

Android menyediakan beberapa cara untuk mengatur back stack:

  1. Default Behavior
    • Android otomatis menambahkan activity baru ke top stack.
  2. Intent Flags
    • FLAG_ACTIVITY_CLEAR_TOP → Menghapus activity di atas activity tertentu.
    • FLAG_ACTIVITY_NEW_TASK → Membuat activity baru di task baru.
  3. Task & Affinity
    • Digunakan untuk mengelompokkan activity dalam satu task agar back stack lebih terkontrol.

Diagram Sederhana Back Stack

1. Buka MainActivity
Stack: [MainActivity]2. Buka SecondActivity
Stack: [MainActivity, SecondActivity]3. Tekan Back
Stack: [MainActivity]

Kesimpulan

Back Stack adalah mekanisme penting untuk navigasi antar Activity di Android.

  • Memanfaatkan prinsip LIFO (Last In, First Out).
  • Menjamin pengguna dapat kembali ke halaman sebelumnya dengan mudah.
  • Bisa dikontrol melalui intent flags dan task management untuk kebutuhan navigasi yang lebih kompleks.

Masa Hidup Activity

Masa hidup Activity adalah siklus hidup setiap Activity dari saat dibuat hingga dihancurkan. Android menggunakan Activity Lifecycle untuk mengatur status Activity, mengelola memori, dan menjaga pengalaman pengguna tetap konsisten.

Setiap Activity memiliki beberapa state dan callback method yang dijalankan secara otomatis oleh sistem Android.

1. State dan Callback Utama

a. onCreate()

  • Dipanggil ketika Activity pertama kali dibuat.
  • Digunakan untuk:
    • Menginisialisasi UI (setContentView)
    • Menyiapkan variabel, listener, dan resource lain

Contoh:

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}

b. onStart()

  • Dipanggil ketika Activity mulai terlihat oleh pengguna, tapi belum interaktif sepenuhnya.
  • Cocok untuk menyiapkan resource yang dibutuhkan saat Activity terlihat.

c. onResume()

  • Dipanggil ketika Activity sudah siap berinteraksi dengan pengguna.
  • Activity berada di foreground.
  • Contoh penggunaan: memulai animasi, menerima input, atau memulai sensor.

d. onPause()

  • Dipanggil ketika Activity tidak lagi menjadi fokus utama, misalnya saat Activity lain muncul sebagian atau layar mati.
  • Digunakan untuk:
    • Menyimpan data sementara
    • Menghentikan animasi atau sensor yang tidak perlu
    • Melepaskan resource yang berat

e. onStop()

  • Dipanggil ketika Activity tidak terlihat sama sekali.
  • Digunakan untuk:
    • Melepaskan resource berat
    • Menghentikan proses background yang terkait Activity

f. onRestart()

  • Dipanggil ketika Activity yang sudah dihentikan (onStop()) akan dilanjutkan kembali.
  • Biasanya diikuti oleh onStart().

g. onDestroy()

  • Dipanggil ketika Activity dihancurkan, baik karena pengguna menutup aplikasi atau sistem membebaskan memori.
  • Digunakan untuk:
    • Membersihkan resource
    • Menutup database
    • Menghentikan thread atau service terkait Activity

2. Diagram Sederhana Lifecycle Activity

onCreate()

onStart()

onResume() ← Activity aktif dan interaktif

onPause() ← Activity kehilangan fokus

onStop() ← Activity tidak terlihat

onRestart() ← Activity akan ditampilkan kembali

onDestroy() ← Activity dihancurkan

3. Ringkasan Fungsi Tiap Callback

CallbackFungsi Utama
onCreate()Inisialisasi Activity dan UI
onStart()Activity mulai terlihat
onResume()Activity siap untuk interaksi
onPause()Simpan data sementara, hentikan aktivitas ringan
onStop()Hentikan resource berat, Activity tidak terlihat
onRestart()Activity yang dihentikan akan dilanjutkan
onDestroy()Membersihkan resource dan menghancurkan Activity

4. Kesimpulan

Lifecycle Activity membantu pengembang mengelola resource, navigasi, dan pengalaman pengguna dengan efisien.

  • Sistem Android memanggil callback sesuai state Activity.
  • Pengembang dapat menaruh kode di callback yang tepat untuk menghemat memori, meningkatkan performa, dan mencegah crash.
  • Memahami lifecycle sangat penting untuk aplikasi yang kompleks, terutama yang menggunakan sensor, animasi, database, atau proses background.

Tantangan Pemrograman Android

Leave a Reply

Your email address will not be published. Required fields are marked *