Fungsi #
Dalam Kotlin, fungsi (function) adalah blok kode yang dapat dipanggil dan dijalankan untuk melakukan suatu tugas tertentu. Kotlin menyediakan berbagai jenis fungsi dengan fitur-fitur yang fleksibel, memungkinkan pengembang untuk menulis kode yang lebih modular, reusable, dan mudah dipahami. Berikut adalah penjelasan mengenai berbagai jenis fungsi dalam Kotlin dan contoh penggunaannya:
Fungsi Dasar (Basic Functions) #
Fungsi dasar di Kotlin dideklarasikan dengan kata kunci fun
diikuti dengan nama fungsi, parameter (jika ada), dan tipe kembalian (jika ada). Fungsi ini dapat dipanggil dari mana saja di dalam kode.
Contoh:
fun greet(name: String): String {
return "Hello, $name!"
}
fun main() {
val greeting = greet("Alice")
println(greeting) // Output: Hello, Alice!
}
Pada contoh di atas, fungsi greet
menerima parameter name
dan mengembalikan string yang dipersonalisasi.
Fungsi dengan Default Parameter #
Kotlin memungkinkan Anda mendefinisikan parameter default dalam fungsi. Jika parameter tidak diberikan saat fungsi dipanggil, maka nilai default akan digunakan.
Contoh:
fun greet(name: String = "Guest"): String {
return "Hello, $name!"
}
fun main() {
println(greet()) // Output: Hello, Guest!
println(greet("Bob")) // Output: Hello, Bob!
}
Dalam contoh ini, jika greet
dipanggil tanpa parameter, nama “Guest” akan digunakan sebagai nilai default.
Fungsi Infix #
Fungsi infix memungkinkan Anda untuk memanggil fungsi dengan sintaks yang lebih natural tanpa menggunakan tanda titik (.
) dan tanda kurung. Fungsi infix hanya dapat memiliki satu parameter dan dideklarasikan dengan kata kunci infix
.
Contoh:
infix fun Int.times(str: String): String {
return str.repeat(this)
}
fun main() {
val result = 3 times "Hello "
println(result) // Output: Hello Hello Hello
}
Fungsi times
dalam contoh di atas dideklarasikan sebagai infix dan digunakan dengan sintaks 3 times "Hello "
.
Fungsi Ekstensi (Extension Functions) #
Kotlin memungkinkan Anda menambahkan fungsi baru ke kelas yang sudah ada tanpa harus mengubah kode sumber kelas tersebut. Ini dikenal sebagai fungsi ekstensi.
Contoh:
fun String.reverse(): String {
return this.reversed()
}
fun main() {
val original = "Kotlin"
val reversed = original.reverse()
println(reversed) // Output: niltoK
}
Fungsi reverse
adalah fungsi ekstensi yang ditambahkan ke kelas String
. Fungsi ini dapat dipanggil seperti fungsi anggota dari String
.
Fungsi Lambda (Lambda Functions) #
Lambda adalah fungsi anonim yang dapat disimpan ke dalam variabel dan digunakan sebagai ekspresi. Lambda di Kotlin dideklarasikan dengan sintaks { parameter -> body }
.
Contoh:
val sum: (Int, Int) -> Int = { a, b -> a + b }
fun main() {
val result = sum(3, 4)
println(result) // Output: 7
}
Di contoh ini, sum
adalah fungsi lambda yang menerima dua parameter dan mengembalikan hasil penjumlahan dari keduanya.
Fungsi Anonim (Anonymous Functions) #
Fungsi anonim adalah fungsi yang tidak memiliki nama, mirip dengan lambda, tetapi menggunakan sintaks yang lebih mirip dengan fungsi biasa.
Contoh:
val multiply = fun(a: Int, b: Int): Int {
return a * b
}
fun main() {
val result = multiply(3, 4)
println(result) // Output: 12
}
multiply
adalah fungsi anonim yang menerima dua parameter dan mengembalikan hasil perkalian mereka.
Fungsi Single-Expression #
Kotlin mendukung fungsi single-expression, di mana tubuh fungsi hanya terdiri dari satu ekspresi. Fungsi ini dapat ditulis lebih ringkas tanpa menggunakan blok return
.
Contoh:
fun square(x: Int): Int = x * x
fun main() {
println(square(5)) // Output: 25
}
square
adalah fungsi single-expression yang mengembalikan kuadrat dari parameter x
.
Fungsi Higher-Order (Higher-Order Functions) #
Fungsi higher-order adalah fungsi yang menerima fungsi lain sebagai parameter atau mengembalikan fungsi sebagai hasilnya.
Contoh:
fun performOperation(x: Int, y: Int, operation: (Int, Int) -> Int): Int {
return operation(x, y)
}
fun main() {
val sum = performOperation(3, 4) { a, b -> a + b }
println(sum) // Output: 7
val product = performOperation(3, 4) { a, b -> a * b }
println(product) // Output: 12
}
performOperation
adalah fungsi higher-order yang menerima dua angka dan fungsi operasi sebagai parameter, kemudian menerapkan fungsi operasi tersebut pada kedua angka.
Fungsi Rekursif #
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri untuk menyelesaikan tugas berulang.
Contoh:
fun factorial(n: Int): Int {
return if (n == 1) {
1
} else {
n * factorial(n - 1)
}
}
fun main() {
println(factorial(5)) // Output: 120
}
factorial
adalah fungsi rekursif yang menghitung faktorial dari n
.
Kesimpulan #
Kotlin menyediakan berbagai jenis fungsi untuk mendukung penulisan kode yang modular, reusable, dan ekspresif. Dari fungsi dasar, fungsi dengan parameter default, hingga fungsi higher-order dan lambda, Kotlin menawarkan fleksibilitas dalam bagaimana Anda mendefinisikan dan menggunakan fungsi dalam program Anda. Memahami berbagai jenis fungsi ini adalah kunci untuk menulis kode Kotlin yang efektif dan elegan.