Apa Itu Kotlin?

Sejarah Kotlin sejak 2011 di JetBrains, statusnya sebagai bahasa resmi Android, dan pertumbuhannya di sisi server.

Daftar isi

Kotlin adalah bahasa pemrograman tujuan umum yang dipakai luas untuk aplikasi Android, aplikasi server, dan beragam alat bantu sehari-hari. Topik ini memperkenalkan sejarah singkat Kotlin, karakter utama bahasanya, serta dua program kecil yang memperlihatkan gaya penulisannya. Setelah membaca, cakupan bahasa ini dan alasan posisinya di industri sudah dapat dijelaskan.

Sejarah singkat Kotlin#

Kotlin dikembangkan oleh JetBrains, perusahaan perangkat lunak yang dikenal lewat rangkaian IDE-nya. Proyek ini diumumkan pertama kali pada tahun 2011 sebagai bahasa baru yang berjalan di atas mesin virtual Java (Java Virtual Machine, JVM). Motivasinya pragmatis, yaitu kode internal JetBrains yang panjang ketika ditulis di Java, sehingga bahasa baru dirancang lebih ringkas dan lebih aman tanpa meninggalkan ekosistem Java. Pada tahun 2012, kode sumbernya dibuka sebagai proyek open source di bawah lisensi Apache 2.0, sehingga bahasa ini dapat dipakai dan dikembangkan tanpa biaya lisensi.

Versi 1.0, yaitu versi stabil pertama yang dijamin kompatibel ke belakang, dirilis pada Februari 2016. Momentum besar datang dari Google. Pada konferensi Google I/O 2017, Kotlin diperkenalkan sebagai bahasa yang didukung resmi untuk pengembangan Android, lalu pada Google I/O 2019 statusnya dinaikkan menjadi bahasa resmi pengembangan Android. Sejak itu, template proyek Android baru menjadikan Kotlin sebagai bahasa bawaannya.

Kini pengembangan bahasa ini dipimpin bersama melalui Kotlin Foundation, organisasi nirlaba yang dibentuk oleh JetBrains dan Google pada tahun 2018. Garis stabil Kotlin berada di versi 2.x, dengan compiler generasi baru bernama K2 menjadi bawaan sejak versi 2.0 pada tahun 2024. Di luar Android, Kotlin juga dipakai untuk aplikasi server dan aplikasi web, antara lain melalui framework Ktor yang dikembangkan JetBrains.

Karakter utama bahasa#

Karakter pertama adalah bahasa bertipe statis (statically typed), yaitu tipe setiap nilai diperiksa compiler saat program dikompilasi, bukan saat program berjalan. Pemeriksaan semacam ini menangkap kesalahan tipe lebih awal, misalnya pemanggilan fungsi dengan argumen bertipe keliru. Pada saat yang sama, compiler menentukan sebagian besar tipe secara otomatis. Pada baris val nilai = listOf(80, 75, 85) pada contoh di bawah, tipenya ditentukan tanpa penulisan tipe sama sekali, sehingga deklarasi tetap ringkas.

Karakter kedua adalah null safety, yaitu aturan yang menuliskan kemungkinan nilai null secara eksplisit pada tipe. Compiler menolak pemakaian nilai null yang belum dilindungi, sehingga kelompok error yang paling terkenal di bahasa lain, yaitu null pointer exception, praktis hilang dari kode Kotlin yang mengikuti aturan ini. Keputusan tentang nilai yang belum tersedia dengan demikian terlihat pada kode, bukan tersimpan sebagai risiko di dalam program.

Karakter ketiga adalah interoperabilitas dengan Java. Kode Kotlin dan Java dapat berada dalam satu proyek yang sama, saling dipanggil tanpa lapisan tambahan, dan berbagi library yang sama. Karakter keempat berkaitan dengan cakupan platform. Selain bytecode JVM, compiler Kotlin menargetkan kode JavaScript dan biner native, sehingga satu bahasa yang sama dapat menjangkau JVM, browser, dan program native.

Seluruh komponen Kotlin, mulai dari compiler sampai library standar, merupakan perangkat lunak open source di bawah lisensi Apache 2.0. Pengembangan dan pemakaiannya tidak menimbulkan biaya lisensi, dan kode sumbernya dapat diperiksa di repositori resmi JetBrains pada GitHub.

Contoh pertama: program rata-rata#

Karakter ringkas bahasa ini paling mudah dilihat dari contoh. Program berikut menghitung rata-rata tiga nilai ujian lalu menampilkannya. Berkasnya utuh, sehingga dapat disalin dan dijalankan apa adanya.

kotlin RataRata.kt
// Menghitung rata-rata nilai ujian
fun main() {
    val nilai = listOf(80, 75, 85)
    val rataRata = nilai.average()
    println("Rata-rata: $rataRata")
}

Fungsi main menjadi pintu masuk setiap program Kotlin. Deklarasi val menandai nilai yang tidak berubah setelah diisi, sedangkan listOf membuat collection berupa daftar nilai. Pemanggilan average() berasal dari library standar Kotlin, dan baris println memakai string template, yaitu mekanisme menyisipkan nilai ke dalam string melalui tanda $. Untuk dijalankan dari terminal, berkas sumber dikompilasi menjadi berkas jar, yaitu arsip berformat Java Archive yang dapat dijalankan sendiri.

bash
# mengompilasi RataRata.kt menjadi jar yang dapat dijalankan sendiri
kotlinc RataRata.kt -include-runtime -d rata.jar
# menjalankan program
java -jar rata.jar
text Keluaran
Rata-rata: 80.0

Perintah kotlinc membutuhkan nama berkas sumber dan berkas keluaran yang ditandai opsi -d. Opsi -include-runtime menyertakan library standar ke dalam jar yang dihasilkan, sehingga perintah java -jar dapat menjalankannya tanpa konfigurasi tambahan. Rincian kedua alat ini dibahas pada topik Penyiapan Lingkungan.

Program kedua memperlihatkan cara mendeklarasikan fungsi. Fungsi sapa dideklarasikan dengan kata kunci fun, dan isinya berupa satu ekspresi, sehingga kata kunci return tidak diperlukan. Nilai ekspresi tersebut otomatis menjadi hasil fungsi. Dua program di atas juga memperlihatkan kebiasaan umum Kotlin, yaitu kode yang pendek tetapi tetap terbaca, karena kata kuncinya sedikit dan nama fungsi pada library standar menyatakan perilakunya, seperti average() yang menghitung rata-rata.

kotlin Sapa.kt
// Fungsi dengan isi satu ekspresi dan string template
fun sapa(nama: String): String = "Halo, $nama!"

fun main() {
    println(sapa("Kotlin"))
}
bash
# mengompilasi Sapa.kt menjadi jar yang dapat dijalankan sendiri
kotlinc Sapa.kt -include-runtime -d sapa.jar
# menjalankan program
java -jar sapa.jar
text Keluaran
Halo, Kotlin!

Ringkasan#

  • Kotlin diumumkan JetBrains pada 2011, mencapai versi stabil 1.0 pada Februari 2016, dan menjadi bahasa resmi Android melalui pengumuman Google I/O 2019.
  • Bahasa ini bertipe statis dengan null safety, ringkas, dan interoperabel penuh dengan Java.
  • Compiler Kotlin menargetkan bytecode JVM, kode JavaScript, dan biner native.
  • Seluruh komponennya open source di bawah lisensi Apache 2.0 dan dikembangkan bersama melalui Kotlin Foundation.

Referensi#