Fungsi tingkat tinggi higher-order functions
Fungsi tingkat tinggi adalah salah satu konsep yang kuat dalam pemrograman Kotlin. Secara sederhana, fungsi tingkat tinggi adalah fungsi yang dapat menerima fungsi lain sebagai parameter atau mengembalikan fungsi. Ini memungkinkan kita untuk membuat kode yang lebih modular dan fleksibel.
1. Pengertian Fungsi Tingkat Tinggi
Dengan fungsi tingkat tinggi, kita dapat mengoperasikan fungsi sebagai bagian dari fungsi lain, yang sering kali mengarah pada pengembangan aplikasi yang lebih bersih dan efisien. Berikut adalah beberapa contoh penggunaan fungsi tingkat tinggi.
2. Membuat Fungsi Tingkat Tinggi
Mari kita mulai dengan mendefinisikan fungsi tingkat tinggi sederhana:
fun operasiMatematika(a: Int, b: Int, operasi: (Int, Int) -> Int): Int {
return operasi(a, b)
}
Penjelasan:
operasiMatematika
adalah fungsi yang menerima dua parameter bertipeInt
dan satu parameter fungsi (operasi
).- Parameter
operasi
adalah fungsi yang mengambil duaInt
dan mengembalikanInt
.
3. Menggunakan Fungsi Tingkat Tinggi
Selanjutnya, kita akan melihat bagaimana cara menggunakan fungsi operasiMatematika
yang telah kita buat:
fun jumlah(a: Int, b: Int): Int {
return a + b
}
fun kurang(a: Int, b: Int): Int {
return a - b
}
fun main() {
val hasilJumlah = operasiMatematika(5, 3, ::jumlah)
println("Hasil Jumlah: $hasilJumlah") // Output: Hasil Jumlah: 8
val hasilKurang = operasiMatematika(5, 3, ::kurang)
println("Hasil Kurang: $hasilKurang") // Output: Hasil Kurang: 2
}
Penjelasan:
- Kita mendefinisikan dua fungsi,
jumlah
dankurang
, lalu mengoperasikannya ke dalam fungsioperasiMatematika
. - Notasi
::jumlah
digunakan untuk mereferensikan fungsijumlah
sebagai parameter.
4. Mengembalikan Fungsi dari Fungsi
Fungsi juga dapat mengembalikan fungsi lain. Berikut ini adalah contoh cara melakukannya:
fun buatPenambah(penambahan: Int): (Int) -> Int {
return { angka: Int -> angka + penambahan }
}
fun main() {
val penambahDua = buatPenambah(2)
println(penambahDua(5)) // Output: 7
}
Penjelasan:
- Fungsi
buatPenambah
mengembalikan fungsi yang akan menambah nilai daripenambahan
keangka
. - Kita dapat menggunakan
penambahDua
yang dihasilkan untuk menambahkan 2 ke angka yang diberikan.
5. Fungsi Lambda
Kotlin juga mendukung penggunaan fungsi dengan pendekatan lambda. Fungsi lambda adalah ekspresi anonim yang bisa disimpan dalam variabel atau digunakan sebagai argumen. Berikut adalah contoh cara menggunakannya:
fun main() {
val angkaList = listOf(1, 2, 3, 4, 5)
val hasil = angkaList.filter { it % 2 == 0 } // Menggunakan lambda untuk memfilter angka genap
println("Angka Genap: $hasil") // Output: Angka Genap: [2, 4]
}
Penjelasan:
- Di sini, kita menggunakan fungsi
filter
dan melewatkan lambda untuk memfilter angka genap dariangkaList
.
Kesimpulan
Fungsi tingkat tinggi adalah fitur penting dalam Kotlin yang dapat meningkatkan kejelasan dan modularitas kode Anda. Dengan menggunakan fungsi tingkat tinggi, Anda dapat membuat kode yang lebih fleksibel dan mudah dibaca.
Semoga tutorial ini membantu Anda memahami konsep fungsi tingkat tinggi dalam Kotlin. Selamat mencoba!