Kotlin API reference di kotlinlang.org/api/latest/jvm/stdlib/ adalah katalog lengkap standard library Kotlin. Berbeda dari dokumentasi tutorial yang menjelaskan konsep, API reference adalah kamus: setiap function, class, dan property di standard library punya halaman dengan tanda tangan, parameter, dan contoh kode resmi. Pada chapter ini kita memetakan package utama, mendemokan function yang paling sering dipakai, dan menunjukkan cara navigasi yang efisien.

Package Utama Standard Library #

Standard library Kotlin terbagi menjadi beberapa package besar. Berikut tiga package paling sering dipakai dan isi kuncinya:

PackageIsi umumContoh symbol
kotlin.collectionsList, Set, Map, Sequence, dan operasinyafilter, map, groupBy, chunked
kotlin.textString, Char, dan operasinyauppercase, split, replace, padStart
kotlin (root)Top-level function, scope function, primitivelet, run, apply, also, repeat, lazy

Selain tiga package di atas, ada juga kotlin.io (I/O), kotlin.ranges (rentang), kotlin.comparisons (comparator), dan kotlin.concurrent (thread-safe).

Demo Function Standar #

Cara terbaik memahami standard library adalah melihat function yang dipakai berulang kali. Cuplikan berikut menyatukan collection operations, string operations, dan scope functions dalam satu file runnable:

kotlin
// kotlin_api_reference.kt
// Tour Kotlin API reference (standard library):
// https://kotlinlang.org/api/latest/jvm/stdlib/
// Mendemokan beberapa stdlib function paling umum.

fun main() {
    println("=== Kotlin API Reference (stdlib) ===")
    println("Sumber: https://kotlinlang.org/api/latest/jvm/stdlib/")
    println()

    println("--- 1. Collection operations (kotlin.collections) ---")
    val angka = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    println("angka         = $angka")
    println("filter genap  = ${angka.filter { it % 2 == 0 }}")
    println("map kuadrat   = ${angka.map { it * it }}")
    println("sum           = ${angka.sum()}")
    println("average       = ${angka.average()}")
    println("maxOrNull     = ${angka.maxOrNull()}")
    println("minOrNull     = ${angka.minOrNull()}")
    println("sorted desc   = ${angka.sortedDescending()}")
    println("take 3        = ${angka.take(3)}")
    println("drop 7        = ${angka.drop(7)}")
    println("chunked 3     = ${angka.chunked(3)}")
    println("associate     = ${angka.associateBy({ it }, { it * it })}")

    println()
    println("--- 2. String operations (kotlin.text) ---")
    val s = "Halo, Kotlin 2.0!"
    println("s                 = $s")
    println("uppercase         = ${s.uppercase()}")
    println("lowercase         = ${s.lowercase()}")
    println("length            = ${s.length}")
    println("split             = ${s.split(", ")}")
    println("replace           = ${s.replace("Kotlin", "Dunia")}")
    println("startsWith(\"Halo\") = ${s.startsWith("Halo")}")
    println("substring 0..4   = ${s.substring(0, 4)}")
    println("trim              = ${"  halo  ".trim()}")
    println("padStart          = ${"42".padStart(5, '0')}")

    println()
    println("--- 3. Scope functions (kotlin) ---")
    data class Pengguna(var nama: String = "", var umur: Int = 0)

    // let — return value lambda
    val panjangNama = "Budi".let { it.length }
    println("let (string length) = $panjangNama")

    // run — return value lambda, no receiver arg
    val ringkas = Pengguna("Siti", 30).run {
        "$nama ($umur tahun)"
    }
    println("run                  = $ringkas")

    // with — return value lambda, receiver sebagai arg pertama
    val sb = StringBuilder()
    val hasil = with(sb) {
        append("halo, ")
        append("dunia")
        toString()
    }
    println("with                 = $hasil")

    // apply — return receiver, untuk konfigurasi
    val u = Pengguna().apply {
        nama = "Dewi"
        umur = 25
    }
    println("apply                = $u")

    // also — return receiver, untuk side effect (mis. logging)
    val v = Pengguna("Eka", 22).also {
        println("  juga: dibuat pengguna ${it.nama}")
    }
    println("also                 = $v")

    println()
    println("--- 4. stdlib lainnya ---")
    val daftar = listOf(
        "repeat(n) { }     -> eksekusi blok n kali",
        "lazy { }          -> inisialisasi tertunda",
        "TODO(reason)      -> throw NotImplementedError",
        "measureTimeMillis -> ukur waktu eksekusi",
        "Pair(a, b)        -> tuple 2 elemen",
        "Triple(a, b, c)   -> tuple 3 elemen",
        "Result<T>         -> tipe untuk success/failure",
        "Random.nextInt(n) -> angka acak (seeded untuk test)"
    )
    daftar.forEach { println("  $it") }

    println()
    println("--- 5. Cara navigasi API reference ---")
    val cara = listOf(
        "Cari symbol lewat search bar (atas)",
        "Browse by package (kiri) -> kotlin.collections, kotlin.text, dst",
        "Setiap halaman punya: signature, contoh, sejak versi",
        "Filter by platform: JVM, JS, Native, Common",
        "Lihat source code lewat link 'Source' (GitHub)"
    )
    cara.forEach { println("  $it") }
}

Output yang Dihasilkan:

text
=== Kotlin API Reference (stdlib) ===
Sumber: https://kotlinlang.org/api/latest/jvm/stdlib/

--- 1. Collection operations (kotlin.collections) ---
angka         = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filter genap  = [2, 4, 6, 8, 10]
map kuadrat   = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
sum           = 55
average       = 5.5
maxOrNull     = 10
minOrNull     = 1
sorted desc   = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
take 3        = [1, 2, 3]
drop 7        = [8, 9, 10]
chunked 3     = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
associate     = {1=1, 2=4, 3=9, 4=16, 5=25, 6=36, 7=49, 8=64, 9=81, 10=100}

--- 2. String operations (kotlin.text) ---
s                 = Halo, Kotlin 2.0!
uppercase         = HALO, KOTLIN 2.0!
lowercase         = halo, kotlin 2.0!
length            = 17
split             = [Halo, Kotlin 2.0!]
replace           = Halo, Dunia 2.0!
startsWith("Halo") = true
substring 0..4   = Halo
trim              = halo
padStart          = 00042

--- 3. Scope functions (kotlin) ---
let (string length) = 4
run                  = Siti (30 tahun)
with                 = halo, dunia
apply                = Pengguna(nama=Dewi, umur=25)
  juga: dibuat pengguna Eka
also                 = Pengguna(nama=Eka, umur=22)

--- 4. stdlib lainnya ---
  repeat(n) { }     -> eksekusi blok n kali
  lazy { }          -> inisialisasi tertunda
  TODO(reason)      -> throw NotImplementedError
  measureTimeMillis -> ukur waktu eksekusi
  Pair(a, b)        -> tuple 2 elemen
  Triple(a, b, c)   -> tuple 3 elemen
  Result<T>         -> tipe untuk success/failure
  Random.nextInt(n) -> angka acak (seeded untuk test)

--- 5. Cara navigasi API reference ---
  Cari symbol lewat search bar (atas)
  Browse by package (kiri) -> kotlin.collections, kotlin.text, dst
  Setiap halaman punya: signature, contoh, sejak versi
  Filter by platform: JVM, JS, Native, Common
  Lihat source code lewat link 'Source' (GitHub)

Perhatikan tiga kelompok utama yang dicetak: collection operations pada List<Int> (filter, map, sum, take, chunked), string operations (uppercase, split, replace, padStart), dan lima scope functions (let, run, with, apply, also) yang masing-masing punya peran berbeda.

Cara Navigasi API Reference #

Halaman API reference punya beberapa jalur navigasi. Search bar di paling atas memakai Algolia dan menerima nama symbol atau potongan teks. Sidebar kiri memetakan package; mengklik package memunculkan daftar class dan function di dalamnya. Tiap halaman symbol memuat tanda tangan lengkap, contoh kode, sejak versi Kotlin berapa ditambahkan, dan link Source ke GitHub. Filter platform di pojok kanan atas memperlihatkan ketersediaan JVM, JS, Native, dan Common — berguna saat menulis kode KMP.

Referensi Lanjutan #

Selanjutnya #

Standard library adalah fondasi; selanjutnya adalah pustaka yang memperluas Kotlin untuk kasus khusus. Chapter berikutnya membahas panduan coroutines — library resmi JetBrains untuk pemrograman asinkron.