Setelah memahami sejarah, karakteristik, dan target kompilasi Kotlin, pertanyaan praktis berikutnya adalah: di mana Kotlin benar-benar dipakai di dunia industri? Memetakan use case Kotlin membantu kita melihat potensi karier, memilih library yang tepat, dan memahami arah perkembangan bahasa ini. Pada chapter ini kita akan membahas tujuh bidang utama pemakaian Kotlin di produksi, lengkap dengan perusahaan nyata yang sudah mengadopsinya.
Android #
Android adalah bidang adopsi Kotlin paling masif. Sejak Google mengumumkan Kotlin sebagai bahasa utama Android pada 2019, hampir semua aplikasi baru Android ditulis dengan Kotlin. Banyak API Jetpack modern — terutama Jetpack Compose — dirilis Kotlin-first atau bahkan eksklusif Kotlin.
Perusahaan yang memakai Kotlin untuk Android:
- Pinterest: migrasi aplikasi Android mereka ke Kotlin pada 2016, menjadi salah satu adopsi awal berskala besar.
- Basecamp: aplikasi Android ditulis 100% Kotlin sejak 2017.
- Trello: memigrasi sebagian besar basis kode Android ke Kotlin.
- Netflix: memakai Kotlin untuk aplikasi Android dan sebagian alat internal.
Server-side #
Kotlin/JVM tumbuh menjadi pilihan populer untuk backend berkat framework seperti Spring Boot (yang punya dukungan Kotlin first-class sejak versi 5), Ktor (framework asinkron native Kotlin dari JetBrains), dan library persistensi seperti Exposed atau sqldelight.
Perusahaan yang memakai Kotlin di server:
- Atlassian: memakai Kotlin untuk sejumlah layanan backend Jira dan Confluence.
- Coursera: mengadopsi Kotlin di backend untuk produktivitas developer.
- JetBrains: hampir semua layanan internal JetBrains (mis. JetBrains Space) ditulis dengan Ktor atau Spring.
Multiplatform Mobile #
Kotlin Multiplatform Mobile (KMM) menjadi solusi untuk berbagi logika bisnis antara aplikasi Android dan iOS. KMM tidak menggantikan UI native — kita tetap menulis UI dengan Jetpack Compose di Android dan SwiftUI di iOS — tetapi model data, repository, dan lapisan jaringan bisa dibagi.
Adopsi KMM di antaranya:
- Philips: memakai KMM untuk aplikasi kesehatan yang berjalan di Android dan iOS.
- McDonald’s: aplikasi pelanggan memakai KMM untuk berbagi logika pemesanan.
- Forbes: memakai KMM untuk berbagi logika presentasi data lintas platform.
Web Frontend #
Kotlin/JS dan Compose Web memungkinkan kita menulis aplikasi front-end dengan Kotlin. Targetnya bisa berupa DOM manipulation langsung via kotlinx.html, atau UI deklaratif dengan Compose Web. Beberapa proyek internal JetBrains memakai pendekatan ini, termasuk bagian dari JetBrains Space.
Native Desktop #
Kotlin/Native memungkinkan kita membangun aplikasi desktop native tanpa bergantung pada JVM. Compose Multiplatform mendukung target desktop (JVM dan native), dan banyak plugin IntelliJ IDEA ditulis dengan Kotlin. Aplikasi seperti JetBrains Toolbox juga memakai Kotlin di lapisan UI dan tooling.
Scripting dan Build Tools #
Kotlin bisa dipakai sebagai bahasa skrip (.kts). Gradle sejak versi 5 mendukung Kotlin DSL sebagai alternatif Groovy, dan banyak proyek besar sudah migrasi build.gradle ke build.gradle.kts. Selain Gradle, Kotlin Scripting (kotlinc -script) dipakai untuk automation, build customization, dan REPL interaktif.
Data Science #
Komunitas data science Kotlin tumbuh lewat library seperti Kotlin DataFrame dan Kandy (visualisasi). Meski belum sebesar Python di bidang ini, Kotlin punya tempat di pipeline data yang terintegrasi dengan JVM — mis. ETL yang memanfaatkan Apache Spark melalui library Kotlin for Apache Spark.
Contoh Pemetaan Use Case #
Program berikut memetakan sebagian use case Kotlin dan perusahaan penggunanya:
data class UseCase(
val bidang: String,
val contoh: List<String>
)
fun main() {
val useCases = listOf(
UseCase("Android", listOf("Pinterest", "Basecamp", "Trello")),
UseCase("Server-side", listOf("Atlassian", "Coursera", "JetBrains")),
UseCase("Multiplatform Mobile", listOf("Philips", "McDonald's", "Forbes")),
UseCase("Web Frontend", listOf("JetBrains Space", "Zeplin")),
UseCase("Native Desktop", listOf("JetBrains Toolbox", "IntelliJ IDEA plugin"))
)
useCases.forEach { uc ->
println("${uc.bidang}:")
uc.contoh.forEach { c ->
println(" - $c")
}
}
}Output yang Dihasilkan:
Android:
- Pinterest
- Basecamp
- Trello
Server-side:
- Atlassian
- Coursera
- JetBrains
Multiplatform Mobile:
- Philips
- McDonald's
- Forbes
Web Frontend:
- JetBrains Space
- Zeplin
Native Desktop:
- JetBrains Toolbox
- IntelliJ IDEA pluginBeberapa catatan dari kode di atas:
data class UseCase(...): satu baris deklarasi menghasilkan class lengkap dengantoString,equals, dancopy.listOf(...): membuat list immutable bertipeList<UseCase>.uc.contoh.forEach { c -> ... }: nested loop yang iterasi list di dalam list — pola yang sering muncul saat mencetak struktur bertingkat.
Referensi #
- https://developer.android.com/kotlin
- https://kotlinlang.org/docs/home.html
- https://www.jetbrains.com/kotlin/
Referensi Lanjutan #
- Kotlin server-side overview — ringkasan use case Kotlin untuk backend dan layanan server
- Kotlin Multiplatform — ringkasan use case Kotlin untuk aplikasi multiplatform lintas platform
Selanjutnya #
Sejauh ini kita sudah mengenal Kotlin secara konseptual: sejarah, karakteristik, perbandingan, target kompilasi, dan use case nyata. Section Persiapan Lingkungan berikutnya akan membawa kita dari teori ke praktik — kita akan memasang JDK, kompilator Kotlin, dan editor untuk mulai menulis kode Kotlin pertama yang sesungguhnya.