Function adalah blok kode terpisah yang dapat dipanggil berulang untuk menjalankan tugas tertentu. Dengan function, kita tidak perlu menulis ulang logika yang sama di banyak tempat. Kotlin menggunakan keyword fun untuk mendeklarasikan function, mirip dengan bahasa C-like lainnya namun jauh lebih ringkas. Pada chapter ini kita akan membongkar anatomi sebuah deklarasi function, mulai dari nama, daftar parameter, tipe kembalian, hingga isi body.

Anatomi Deklarasi Function #

Bentuk paling umum deklarasi function di Kotlin terdiri dari lima bagian: keyword fun, nama function, daftar parameter dalam tanda kurung, tipe kembalian setelah tanda titik dua, dan body di dalam kurung kurawal. Perhatikan contoh berikut yang menjumlahkan dua bilangan bulat.

kotlin
fun tambah(a: Int, b: Int): Int {
    return a + b
}

fun sapa(nama: String) {
    println("Halo, $nama! Selamat datang di Kotlin.")
}

fun main() {
    val hasil = tambah(3, 5)
    println("Hasil 3 + 5 = $hasil")
    sapa("Budi")
    sapa("Siti")
}

Output yang Dihasilkan:

text
Hasil 3 + 5 = 8
Halo, Budi! Selamat datang di Kotlin.
Halo, Siti! Selamat datang di Kotlin.

Mari kita bedah baris per baris:

  1. fun tambah(a: Int, b: Int): Int: keyword fun memulai deklarasi. Nama function adalah tambah. Daftar parameter menuliskan tipe secara eksplisit — a: Int dan b: Int. Setelah tanda kurung tutup, tanda titik dua diikuti tipe kembalian Int.
  2. return a + b: kata kunci return mengirimkan hasil ekspresi a + b kepada pemanggil. Karena tipe kembalian Int, hasil ekspresi harus kompatibel dengan Int.
  3. fun sapa(nama: String): function sapa tidak menuliskan tipe kembalian. Kotlin menyimpulkan tipe kembalian Unit secara default.
  4. println(...): function dari standard library Kotlin untuk mencetak teks ke stdout. Pemanggilan ini adalah satu-satunya isi body sapa.
  5. val hasil = tambah(3, 5): pemanggilan function tambah dengan argumen 3 dan 5. Hasilnya disimpan ke variabel read-only hasil.

Komponen Wajib dan Opsional #

Tabel berikut merangkum komponen deklarasi function dan mana yang wajib dituliskan.

KomponenWajib?Contoh
fun keywordYafun
Nama functionYatambah, sapa
Daftar parameterBoleh kosong(a: Int, b: Int) atau ()
Tipe kembalianOpsional: Int, defaultnya Unit
Body { ... }Ya (kecuali single-expression){ return a + b }

Nama function di Kotlin menggunakan lowerCamelCase sesuai konvensi resmi. Penamaan yang konsisten membantu pembaca kode memahami maksud tanpa harus membuka isi body.

Aturan Parameter #

Setiap parameter wajib diberi tipe secara eksplisit. Kotlin tidak melakukan type inference untuk parameter function seperti halnya variabel lokal. Tipe parameter ditulis setelah tanda titik dua, dipisahkan dengan koma bila ada lebih dari satu parameter.

kotlin Contoh: beberapa parameter dengan tipe berbeda
fun buatProfil(nama: String, umur: Int, menikah: Boolean): String {
    return "$nama, umur $umur, menikah=$menikah"
}

Parameter bersifat immutable secara default — kita tidak dapat menugaskan ulang nilai nama, umur, atau menikah di dalam body. Bila membutuhkan variabel yang dapat berubah, deklarasikan variabel lokal baru dengan var.

Body Tanpa Return Eksplisit #

Bila sebuah function dideklarasikan tanpa return, Kotlin mengembalikan Unit secara implisit. Unit adalah tipe yang memiliki satu nilai saja, yaitu Unit — mirip void di Java tetapi tetap merupakan nilai konkret. Berikut dua bentuk function yang setara:

kotlin Contoh: dua bentuk function Unit yang setara
fun sapa1(nama: String): Unit {
    println("Halo, $nama")
}

fun sapa2(nama: String) {
    println("Halo, $nama")
}

Referensi Lanjutan #

  • Kotlin functions — panduan resmi deklarasi function, parameter, dan tipe kembalian di Kotlin
  • Kotlin basic syntax — ringkasan sintaks dasar Kotlin termasuk deklarasi fun untuk function

Ringkasan #

Deklarasi function di Kotlin menggabungkan kejelasan tipe dengan ringkasnya sintaks. Keyword fun memulai deklarasi, parameter wajib bertipe eksplisit, tipe kembalian boleh dihilangkan bila Unit. Pada chapter Parameter dan Argument berikutnya, kita akan membedah perbedaan istilah parameter dan argument serta bagaimana keduanya bekerja sama saat pemanggilan function.