Fungsi pada kotlin dideklarasikan dengan keyword fun, jika dalam java dikenal dengan method. Sama halnya dengan java didalam function kotlin juga ada yang memiliki nilai kembalian (return). Untuk lebih jelasnya contoh function dalam code seperti berikut.
1 2 3 4 5 6 |
fun kaliDua(x: Int): Int { return 2 * x } //untuk penggunaan methodnya var nilai = kaliDua(2) //hasilnya adalah 4 |
pada code diatas dapat kita ketahui function double dengan parameter x tipe data Int, dan dengan return tipe data Int. Kemudian jika ingin menggunakan function tersebut dari kelas lain dapat dipanggil Instance kelas terlebih dahulu kemudian diikuti dengan nama function nya seperti berikut.
1 |
Utils().kaliDua(2) //hasilnya 4 |
Ternyata function di kotlin itu luas banget, yuk kita bedah satu-satu.
Parameter
Parameter pada function dituliskan dengan notasi Pascal, contohnya nama_variable: type_data. Parameter dipisahkan dengan koma, dan setiap parameter harus dituliskan secara explisit, berikut contoh penggunaan parameter dalam function.
1 2 3 4 5 |
fun perkalian(angka1: Int, angka2: Int): Int { return angka1 * angka2 } perkalian(2,4) //hasilnya adalah 8 |
Single-Line Functions
Single-line atau one-line functions adalah function yang hanya memiliki satu ekspresi ( satu baris proses kode). Pada function ini kita dapat menghilangkan kurung kurawal dan menggunakan tanda sama dengan ( = ) sebelum ekspresi, dengan kata lain akan hanya menjadi satu baris kode. Contohnya seperti berikut ini.
1 2 3 |
fun luasPersegi(panjang: Double): Double { return panjang * panjang } |
Function diatas bisa ditulis lebih singkat menjadi satu baris:
1 |
fun luasPersegi(panjang: Double) = panjang * panjang |
kita juga masih dapat menggunakan nilai kembalian seperti berikut ini :
1 |
fun luasPersegi(panjang: Double): Double = panjang * panjang |
Named Parameters
Artinya parameter diberi nama yang memungkinkan function lebih mudah dibaca, dengan cara menuliskan nama parameter pada saat penggunaan function tersebut. Bingungkan, langsung cek kode aja biar ga bingung.
1 2 3 |
fun namaLenkap(namaDepan: String, namaAkhir: String, namaTengah: String) { println("Nama Lengkap saya adalah $namaDepan$namaTengah$namaAkhir"); } |
Untuk menggunakan function di atas, kita dapat memanggilnnya seperti ini:
1 |
namaLengkap("Andri", "Dian","Utama") //hasilnya Andri Dian Utama |
Pada kode diatas kita tidak tahu mana parameter namaDepan, namaTengah, dan namaBelakang. Pada saat function harus melihat source code atau dokumentasi untuk mengetahui parameter yang sesuai.
1 2 3 4 |
namaLengkap(namaDepan = "Andri", namaTengah = "Dian", namaBelakang= "Utama") //hasilnya Andri Dian Utama namaLengkap(namaDepan = "Andri", namaBelakang = "Dian", namaTengah= "Utama") //hasilnya Andri Utama Dian |
Pada saat menggunakan nama parameter kita bebas meletakan urutan parameter, seperti pada kode yang kedua diatas. Penggunaan nama parameter mengurangi bugs pada saat penggunaan parameter yang banyak yang mungkin kita lupa urutannya karena tertukar.
Default Arguments
Berbeda dengan java ketika kita akan men-set default arguments dari suatu parameter dituliskan di dalam method, jika di kotlin dapat langsung diletakan pada parameter dengan menggunakan tanda sama dengan ( = ). Maksud dari default arguments adalah akan menggunakan nilai default jika penggunaan function tidak di assign. Contoh dalam kode function berikut ini.
1 2 3 |
fun namaLengkap(namaDepan: String, namaTengah: String = "N/A", namaBelakang: String) { println("$namaDepan- $namaTengah - $namaBelakang") } |
Untuk penggunaanya sangat disarankan untuk menggunakan nama parameter agar kompiler tidak bingung argumen yang kita gunakan dalam function, contoh penggunaan
1 2 3 |
namaLengkap("Andri", "Utama") //tidak adak dikompile namaLengkap(namaDepan="Andri", namaBelakang = "Utama") //hasilnya Andri N/A Utama |
Unlimited Arguments
Di Java, kita dapat membuat metode untuk menerima sejumlah argumen yang tidak ditentukan dengan menyertakan elipsis (…) setelah mengetikkan dalam daftar parameter metodenya. Konsep ini juga didukung oleh function Kotlin dengan penggunaan vararg modifier yang diikuti dengan nama parameter. Contoh aja biar ga bingung.
1 2 3 4 5 6 7 |
fun abjad(vararg hurufs: String) { for (n in hurufs) { print("$n\t") } } abjad( hurufs = *arrayOf("a", "b", "c")) //hasilnya a b c |
Dah segitu dulu untuk pengetahuan tentang function di Kotlin, jadi besok kalau baca code orang bisa mengenali maksud dari sebuah function. Intinya tanpa dasar programing kotlin yang kiat kiata akan kebingungan dalam menggunakan bahasa tersebut. Jadi kuatin fundamental bahasanya dulu sebelum terjun ke dunia coding nya. Salam pokoknya ngoding.