Kompilator Kotlin menerjemahkan kode sumber menjadi bytecode JVM, dan bytecode tersebut dieksekusi oleh runtime Java. Tanpa JDK yang tepat, kita mungkin masih bisa mengompilasi, tetapi hasil kompilasi tidak akan berjalan dengan benar. Pada chapter ini kita akan memilih distribusi JDK yang sesuai, memasangnya, lalu mengatur variabel lingkungan JAVA_HOME agar tool Kotlin seperti kotlinc dan Gradle dapat menemukan instalasi Java secara konsisten.
Memilih Versi JDK #
Kotlin 2.0 secara resmi mendukung JDK 17 dan JDK 21 sebagai versi LTS yang direkomendasikan. Kedua versi tersebut sudah stabil dan dipakai luas di industri.
| Versi JDK | Status | Cocok untuk |
|---|---|---|
| 17 LTS | Long Term Support, matang | Aplikasi server, library, Android (AGP 8+) |
| 21 LTS | Long Term Support terbaru | Proyek baru, fitur pattern matching modern |
| 11 LTS | Mendekati akir dukuran | Legacy, sebaiknya tinggalkan |
| 8 | Sudah lama | Hanya untuk kode lama yang belum dimigrasi |
Distribusi JDK yang Populer #
Ada beberapa distribusi JDK yang dapat kita pilih. Semuanya kompatibel dengan Kotlin karena mengimplementasikan spesifikasi Java SE yang sama; perbedaannya hanya pada lisensi, dukungan komersial, dan fitur tambahan.
- OpenJDK: build open source resmi dari proyek OpenJDK. Lisensi GPL v2 dengan classpath exception.
- Oracle JDK: build resmi Oracle. Sejak JDK 17 lisensinya kembali ke Oracle No-Fee Terms and Conditions untuk penggunaan internal produksi.
- Eclipse Temurin: build komunitas dari Eclipse Adoptium, banyak dipakai di container dan CI.
- Amazon Corretto: build Amazon dengan patch tambahan untuk beban produksi AWS.
- Azul Zulu: build komersial dengan dukungan berbayar opsional.
Pemasangan JDK 21 di Linux #
Di Debian, Ubuntu, dan turunannya, OpenJDK tersedia di repositori resmi.
# Perbarui indeks paket
sudo apt update
# Pasang OpenJDK 21 JDK (bukan hanya JRE)
sudo apt install -y openjdk-21-jdk
# Verifikasi
java --version
javac --versionOutput yang umum di Ubuntu 24.04 terlihat seperti:
openjdk 21.0.4 2024-07-16
OpenJDK Runtime Environment (build 21.0.4+7-Ubuntu-1ubuntu22.04)
OpenJDK 64-Bit Server VM (build 21.0.4+7-Ubuntu-1ubuntu22.04, mixed mode)Pemasangan JDK 21 di macOS #
Di macOS, pemasangan paling mudah melalui Homebrew.
# Pasang Temurin 21 (build open source Eclipse Adoptium)
brew install --cask temurin@21
# Atau pasang OpenJDK resmi
brew install openjdk@21
# Tautkan agar dikenali sistem
sudo ln -sfn $(brew --prefix)/opt/openjdk@21/libexec/openjdk.jdk \
/Library/Java/JavaVirtualMachines/openjdk-21.jdkPemasangan JDK 21 di Windows #
Di Windows, dua jalur umum: melalui installer grafis atau melalui package manager seperti winget.
# Jalur winget (Windows Package Manager)
winget install --id EclipseAdoptium.Temurin.21.JDK
# Atau gunakan installer MSI resmi dari Oracle atau Adoptium
# Unduh dari https://adoptium.net/temurin/releases/?version=21Installer MSI biasanya menambahkan path bin JDK ke PATH dan mengatur variabel JAVA_HOME secara otomatis. Verifikasi dengan membuka PowerShell baru.
Mengatur Variabel JAVA_HOME #
Variabel JAVA_HOME menunjuk ke direktori instalasi JDK (bukan folder bin). Banyak tool — termasuk Gradle, Maven, dan kotlinc — memeriksa variabel ini ketika mencari JDK yang akan dipakai.
# Linux: tambahkan ke ~/.bashrc atau ~/.profile
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
export PATH=$JAVA_HOME/bin:$PATH
# macOS (Temurin)
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
# Windows (PowerShell, persisten)
[Environment]::SetEnvironmentVariable(
"JAVA_HOME",
"C:\Program Files\Eclipse Adoptium\jdk-21",
"User")Setelah menambahkan baris di atas, muat ulang shell (source ~/.bashrc di Linux, atau tutup dan buka kembali terminal di macOS/Windows) lalu verifikasi.
echo $JAVA_HOME
$JAVA_HOME/bin/java --versionVerifikasi Lengkap #
Verifikasi pemasangan JDK melibatkan dua perintah: java untuk runtime dan javac untuk kompilator. Kedua perintah harus melaporkan versi yang sama.
java --version
javac --versionOutput yang Dihasilkan di lingkungan Linux dengan OpenJDK 21:
openjdk 21.0.12 2024-10-15
OpenJDK Runtime Environment (build 21.0.12+1)
OpenJDK 64-Bit Server VM (build 21.0.12+1, mixed mode)
javac 21.0.12Program Verifikasi Java #
Untuk memastikan JDK benar-benar terdeteksi dari dalam program Kotlin, kita dapat membaca properti sistem yang dipaparkan oleh runtime Java. Properti tersebut dapat diakses langsung dari Kotlin melalui System.getProperty.
fun main() {
val javaVersion = System.getProperty("java.version")
val javaVendor = System.getProperty("java.vendor")
val javaHome = System.getProperty("java.home")
println("Versi Java : $javaVersion")
println("Vendor : $javaVendor")
println("JAVA_HOME : $javaHome")
println("JDK siap digunakan oleh Kotlin")
}Output yang Dihasilkan:
Versi Java : 21.0.12.1
Vendor : Debian
JAVA_HOME : /usr/lib/jvm/java-21-openjdk-amd64
JDK siap digunakan oleh KotlinMari kita bedah beberapa bagian kode di atas:
System.getProperty("java.version"): memanggil method bawaan JavaSystem.getPropertyyang mengembalikan nilai properti sistem berdasarkan kunci yang diberikan. Kuncijava.versionberisi versi JRE yang berjalan.javaVendordanjavaHome: dua properti lain yang berguna untuk diagnostik.java.vendoradalah vendor distribusi (Oracle, Debian, Eclipse Adoptium, dll.),java.homeadalah path direktori instalasi JRE.println("... $javaVersion"): string template$javaVersiondiganti dengan nilai variabel saat program dijalankan, sehingga kita tidak perlu menggabungkan string secara manual dengan+.
Referensi Resmi #
Dokumentasi resmi untuk pemasangan JDK dan kompatibilitasnya dengan Kotlin tersedia di:
Referensi Lanjutan #
- Get started with Kotlin — panduan resmi memulai Kotlin yang menyebutkan prasyarat JDK untuk kompilator
- SDKMAN! — alat manajemen SDK yang mempermudah pemasangan JDK lintas versi
Selanjutnya #
JDK kini terpasang dan JAVA_HOME terkonfigurasi. Namun agar kotlinc dapat dipanggil dari mana saja, kita perlu memastikan kompilator Kotlin berada di PATH dan variabel pendukung seperti KOTLIN_HOME diatur dengan benar. Pada chapter berikutnya, Konfigurasi Kotlin Compiler, kita akan menyusun PATH, KOTLIN_HOME, dan menguji kompilasi file .kt menjadi berkas .jar yang siap dijalankan.