Saturday, December 16, 2017

Intro to Kotlin: Extension, Lambda Expression and Higher Order Function

Pada tulisan sebelumnya tentang Kotlin, saya telah membahas 4 fitur unggulan yang dimiliki Kotlin yaitu Multiple Top Declaration, Named Parameter, Optional Semicolon dan Default Parameter. Selain 4 fitur keren di atas, terdapat beberapa fitur lain yang ada pada bahasa ini yang menurut saya tidak kalah kerennya. Fitur yang dimaksud adalah Extension, Higher Order Function dan Lambda Expression.

Extension

Extension adalah fitur pada Kotlin yang memungkinkan kita untuk menambahkan property dan function pada suatu kelas tanpa mengubah atau meng-extend kelas tersebut. Fitur ini sangat berguna jika kita menggunakan library yang dibuat oleh orang lain dan menemukan kekurangan dan ingin menambahkan sesuatu pada library tersebut. Berikut ini adalah contoh bagaimana extension dapat digunakan.

Misalnya kita menggunakan library yang memiliki kelas Person di dalamnya dan ingin menambahkan fungsi untuk menari dan dan ingin menambahkan property untuk mengetahui apakah objek Person yang kita buat itu sudah tua atau belum. Salah satu cara untuk melakukan ini tanpa extension adalah dengan membuat kelas baru yang meng-extend kelas Person dan menambahkan secara manual property dan fungsi yang diinginkan pada kelas tersebut. Tetapi, karena Kotlin memiliki fitur extension, hal ini dengan mudah dapat dilakukan dengan cara seperti di bawah ini.


Lambda Expression

Fitur lainnya yang ingin saya bahas adalah Lambda Expression. Lambda expression atau juga sering disebut sebagai anonymous function adalah fungsi yang tidak dideklarasikan tetapi langsung digunakan dalam bentuk expression. Berikut ini adalah contoh Lambda Expression.

Di atas adalah contoh lambda expression yang merepresentasikan fungsi yang menerima satu parameter berupa objek Person dan mengembalikan boolean. Lambda expression akan terasa berguna saat kita menggunakan Higher Order Function yang akan saya bahas pada poin berikutnya.

Higher Order Function

Apakah yang dimaksud dengan Higher Order Function(yang selanjutnya akan disebut dengan HOF)? HOF adalah fungsi yang dapat menerima parameter berupa fungsi dan dapat mengembalikan fungsi. Lalu apa gunanya HOF? Pada Functional Programming, HOF sangat berguna untuk melakukan perhitungan yang direpresentasikan dengan bentuk fungsi. Salah satu bidang ilmu yang menggunakan functional programming adalah matematika. Pada bidang ilmu matematika, suatu masalah sering direpresentasikan dengan bentuk fungsi, dan biasanya fungsi pada matematika dapat berupa fungsi komposisi, yaitu fungsi suatu nilai yang juga merupakan sebuah fungsi. Di bawah ini adalah contoh dari HOF.

Fungsi di ataas adalah fungsi yang menerima tiga buah parameter. Parameter pertama adalah List of Person, parameter kedua adalah conditon dan parameter ketiga adalah action. Fungsi ini akan melakukan action pada setiap elemen di List of person jika condition terpenuhi.

Demikianlah tulisan saya kali ini tentang Kotlin, semoga dapat bermanfaat :)

Keep on hackin'!

Referensi

Reference - Kotlin Programming Language

No comments:

Post a Comment