Sejak Google mengumumkan Kotlin sebagai bahasa resmi untuk pengembangan Android pada 2017, ekosistem Android bergerak cepat menjauh dari dominasi Java murni. Pada 2019, Kotlin ditetapkan sebagai bahasa utama yang direkomendasikan untuk semua proyek Android baru. Bab ini memperkenalkan lanskap Android dari sudut pandang penulis Kotlin: SDK, NDK, Jetpack, dan empat komponen aplikasi yang menjadi pondasi setiap APK. Kita akan memetakan istilah-istilah tersebut agar bab-bab berikutnya dapat dibaca tanpa hambatan.

Apa itu Android #

Android adalah sistem operasi berbasis kernel Linux yang dirancang untuk peranti layar sentuh seperti ponsel, tablet, dan jam tangan pintar. Setiap aplikasi Android dikemas dalam format APK atau AAB dan dijalankan di atas mesin virtual ART (Android Runtime). Aplikasi ditulis dengan Kotlin (atau Java) yang dikompilasi menjadi bytecode DEX dan dijalankan oleh ART pada saat pengguna mengetuk ikon aplikasi.

Versi Android diidentifikasi dengan nama manis (Tiramisu, Upside Down Cake) dan tingkat API numerik yang menentukan kumpulan API sistem yang tersedia. Developer biasanya menetapkan minSdk (versi minimum yang didukung) dan targetSdk (versi yang sudah diuji penuh) pada build.gradle.kts. Kombinasi tersebut menentukan peranti mana yang dapat menginstal aplikasi.

Kotlin sebagai Bahasa Resmi #

Penetapan Kotlin sebagai bahasa resmi tidak menghapus Java dari ekosistem. Kedua bahasa tetap berinteroperable: kode Kotlin dapat memanggil library Java lama dan sebaliknya. Namun, semua dokumentasi resmi, contoh Google, dan template Android Studio terbaru memakai Kotlin sebagai default. Dukungan utama mencakup tiga area berikut:

AreaDukungan resmi
Bahasa utamaDefault di semua template Android Studio terbaru
CoroutinesSolusi resmi Google untuk operasi asinkron di Android
Jetpack ComposeToolkit UI deklaratif yang hanya tersedia untuk Kotlin

Selain ketiga area di atas, banyak library Jetpack seperti Room, ViewModel, dan Navigation memanfaatkan fitur Kotlin seperti null-safety, data class, dan extension function sehingga kode boilerplate yang dulu wajib di Java kini otomatis dihasilkan kompilator.

Komponen Aplikasi Android #

Setiap aplikasi Android tersusun dari empat jenis komponen. Kompilator dan sistem operasi tidak peduli bahasa yang dipakai — yang penting adalah komponen-komponen ini dideklarasikan di AndroidManifest.xml. Mari kita lihat pemetaan peran setiap komponen pada cuplikan berikut:

kotlin
// pengenalan_android.kt
// Mendemonstrasikan komponen aplikasi Android secara ringkas tanpa SDK Android.
// Mensimulasikan Activity, Service, BroadcastReceiver, dan ContentProvider
// sebagai entitas ringkas yang dapat dijalankan di JVM murni.

enum class KomponenAndroid(val peran: String) {
    Activity("UI dan interaksi pengguna"),
    Service("Operasi latar belakang tanpa UI"),
    BroadcastReceiver("Menerima siaran sistem/aplikasi"),
    ContentProvider("Berbagi data antar aplikasi")
}

data class VersiAndroid(val nama: String, val api: Int, val tahun: Int)

object AndroidInfo {
    const val BAHASA_RESMI = "Kotlin"
    val tahunResmi = 2017

    fun ringkasKomponen(): List<String> =
        KomponenAndroid.entries.map { "${it.name}: ${it.peran}" }
}

fun main() {
    val versi = listOf(
        VersiAndroid("Marshmallow", 23, 2015),
        VersiAndroid("Nougat", 24, 2016),
        VersiAndroid("Oreo", 26, 2017),
        VersiAndroid("Pie", 28, 2018),
        VersiAndroid("Tiramisu", 33, 2022)
    )
    println("Bahasa resmi sejak ${AndroidInfo.tahunResmi}: ${AndroidInfo.BAHASA_RESMI}")
    println("Jumlah komponen aplikasi: ${KomponenAndroid.entries.size}")
    AndroidInfo.ringkasKomponen().forEach { println(" - $it") }
    println("Rilis terbaru contoh: ${versi.last().nama} API ${versi.last().api} (${versi.last().tahun})")
}

Output yang Dihasilkan:

text
Bahasa resmi sejak 2017: Kotlin
Jumlah komponen aplikasi: 4
 - Activity: UI dan interaksi pengguna
 - Service: Operasi latar belakang tanpa UI
 - BroadcastReceiver: Menerima siaran sistem/aplikasi
 - ContentProvider: Berbagi data antar aplikasi
Rilis terbaru contoh: Tiramisu API 33 (2022)

Tabel singkat berikut merangkum kapan kita memakai masing-masing komponen:

KomponenKapan dipakaiDihentikan oleh
ActivityLayar dengan UI yang berinteraksi langsung dengan penggunaSistem saat memori rendah atau pengguna keluar
ServiceMemutar musik, mengunduh file, sinkronisasi latar belakangSistem dapat menghentikan Service latar belakang
BroadcastReceiverMerespons siaran seperti baterai rendah, konektivitas berubahHidup hanya selama menangani satu siaran
ContentProviderMenyediakan akses data lintas aplikasi (kontak, galeri)Sistem memvalidasi izin akses

Jetpack dan Modernisasi Android #

Jetpack adalah kumpulan library resmi Google di atas Android SDK. Jetpack membungkus pola yang sebelumnya harus ditulis manual: ViewModel untuk mempertahankan state lintas perubahan konfigurasi, Navigation Component untuk alur antar layar, Room untuk database SQLite, dan WorkManager untuk tugas latar belakang yang dijamin selesai. Compose, yang akan kita pelajari khusus pada beberapa chapter, juga bagian dari Jetpack. Dengan Jetpack, kode aplikasi menjadi lebih ringkas dan konsisten antar proyek.

Referensi Lanjutan #

  • Android developers — Kotlin — pusat sumber daya resmi Android + Kotlin dari Google
  • Jetpack — kumpulan library Android Jetpack sebagai standar ekosistem pengembangan aplikasi Android modern

Selanjutnya #

Setelah memahami posisi Kotlin di ekosistem Android, langkah berikutnya adalah memasang Android Studio, mengonfigurasi SDK, dan mengenal emulator AVD — alat-alat yang menjadi tempat kerja sehari-hari. Kita akan membahasnya pada chapter Android Studio dan SDK.