Pada kesempatan kali ini, kita akan membahas tentang Java 8 Lambda Expression. Java 8 memperkenalkan fitur Lambda Expression, yaitu suatu cara untuk menulis kode yang lebih kompak dan mudah dibaca. Fitur ini sangat berguna untuk membuat kode yang berbasis function, karena kita dapat menyederhanakan kode dengan menghilangkan syntax yang redundant.
Pada intinya, Java 8 Lambda Expression adalah kemampuan untuk menulis kode function secara langsung tanpa harus membuat class secara terpisah. Hal ini memungkinkan kita untuk menulis kode yang lebih ringkas dan mudah dibaca.
Namun sebelum kita membahas lebih jauh tentang Java 8 Lambda Expression, ada baiknya jika kita terlebih dahulu memahami apa itu Lambda Expression dan bagaimana ia berfungsi.
Lambda Expression sendiri adalah suatu konsep yang berasal dari pemrograman fungsional. Pemrograman fungsional adalah suatu paradigma pemrograman yang berbasis pada fungsi. Fungsi adalah sebuah blok kode yang menerima input dan menghasilkan output.
Lambda Expression memungkinkan kita untuk menulis fungsi yang dapat digunakan sebagai parameter atau pengembalian nilai pada fungsi lainnya. Lambda Expression juga memungkinkan kita untuk membuat kode yang lebih ringkas dan mudah dibaca.
Contoh penerapan Lambda Expression dapat dilihat pada kode berikut:
“`
List
// Menggunakan Lambda Expression untuk memfilter bilangan genap
List
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
“`
Pada contoh di atas, kita menggunakan Lambda Expression untuk memfilter bilangan genap pada sebuah List. Ketika fungsi `filter` dipanggil, kita mengirimkan sebuah Lambda Expression yang akan dievaluasi pada setiap elemen List. Lambda Expression tersebut adalah `n -> n % 2 == 0`, yang artinya mengecek apakah bilangan tersebut genap atau tidak. Hasil evaluasi Lambda Expression akan digunakan untuk menentukan apakah elemen tersebut akan diterima atau tidak.
Setelah itu, kita menggunakan fungsi `collect` untuk mengumpulkan semua elemen yang diterima oleh fungsi `filter` menjadi sebuah List baru.
Dari contoh di atas, kita dapat melihat bahwa Lambda Expression memungkinkan kita untuk menulis kode yang lebih ringkas dan mudah dibaca. Namun agar lebih memahami tentang penggunaan Lambda Expression dalam Java 8, mari kita bahas lebih detail.
Lambda Expression dalam Java 8
Pada Java 8, Lambda Expression terdiri dari dua komponen utama, yaitu parameter dan body. Parameter adalah nilai yang diterima oleh fungsi, sedangkan body adalah blok kode yang akan dieksekusi ketika fungsi dipanggil.
Lambda Expression pada Java 8 ditulis dengan format berikut:
“`
(parameter) -> body
“`
Contoh penggunaan Lambda Expression pada Java 8 dapat dilihat pada kode berikut:
“`
Runnable r = () -> System.out.println(“Hello World!”); ;
r.run();
“`
Pada contoh di atas, kita membuat sebuah Lambda Expression yang tidak memiliki parameter dan mencetak string “Hello World!” pada body. Lambda Expression tersebut kami assign pada variable `r` yang bertipe `Runnable`. Setelah itu, kita memanggil fungsi `run()` yang akan mengeksekusi blok kode pada Lambda Expression.
Dalam contoh ini, Lambda Expressionm memungkinkan kita untuk menulis kode yang lebih ringkas dan mudah dibaca. Sebagai perbandingan, jika kita menuliskan kode serupa pada Java 7, maka akan terlihat seperti ini:
“`
Runnable r = new Runnable()
public void run()
System.out.println(“Hello World!”);
;
r.run();
“`
Dari contoh tersebut, kita dapat melihat bahwa Lambda Expression memungkinkan kita untuk membuat kode yang lebih singkat dan mudah dibaca.
Menggunakan Lambda Expression pada Collection
Salah satu penggunaan paling umum dari Lambda Expression pada Java 8 adalah untuk memanipulasi data Collection. Pada Java 8, kita dapat menggunakan method baru pada Collection seperti `stream()`, `filter()`, `map()`, dan `reduce()`.
Pada contoh di bawah ini, kita menggunakan Lambda Expression dan method `stream()` untuk mencari nilai terbesar pada List:
“`
List
Optional
.max((a, b) -> a.compareTo(b));
System.out.println(maxNumber.get());
“`
Pada contoh di atas, kita menggunakan method `stream()` untuk membuat stream dari List `numbers`. Kemudian, kita menggunakan method `max()` untuk mencari nilai terbesar pada stream. Pada method `max()`, kita menggunakan sebuah Lambda Expression yang akan menentukan nilai yang lebih besar antara dua elemen stream.
Langkah selanjutnya adalah menggunakan fungsi `get()` pada class `Optional` untuk mendapatkan nilai yang terbesar.
Contoh penerapan Lambda Expression pada Collection yang lain dalam Java 8 adalah sebagai berikut:
“`
List
// Menggunakan map() untuk mengubah setiap elemen List menjadi lowercase
List
.map(String::toLowerCase)
.collect(Collectors.toList());
“`
Pada contoh di atas, kita menggunakan method `map()` untuk mengubah setiap elemen List `fruits` menjadi lowercase. Method `map()` menerima sebuah Lambda Expression yang akan dievaluasi pada setiap elemen stream. Pada contoh di atas, kita menggunakan method reference, yaitu `String::toLowerCase` yang akan mengubah setiap elemen stream menjadi lowercase.
Setelah itu, kita menggunakan method `collect()` untuk mengumpulkan semua elemen yang sudah diubah menjadi List baru.
Faq
Q: Apakah Lambda Expression hanya bisa digunakan untuk Collection pada Java 8?
A: Tidak. Lambda Expression pada Java 8 dapat digunakan pada hampir seluruh aspek pemrograman pada Java, termasuk untuk memanipulasi String, membuat event handler, dan lain-lain.
Q: Apa keuntungan menggunakan Lambda Expression pada Java 8?
A: Salah satu keuntungan menggunakan Lambda Expression pada Java 8 adalah kita dapat menulis kode yang lebih ringkas dan mudah dibaca. Selain itu, Lambda Expression juga memungkinkan kita untuk menghindari penulisan class inner yang redundan.
Video Tutorial
Untuk lebih memahami penggunaan Lambda Expression pada Java 8, berikut adalah video tutorial singkat yang dapat Anda ikuti:
Akhir Kata
Java 8 Lambda Expression adalah fitur yang sangat berguna untuk membuat kode yang berbasis function pada Java. Dengan Lambda Expression, kita dapat menulis kode yang lebih ringkas dan mudah dibaca. Selain itu, Lambda Expression juga memungkinkan kita untuk menghindari penulisan class inner yang redundan.
Dalam pembahasan ini, kami mengulas tentang pengertian Lambda Expression, bagaimana Lambda Expression berfungsi pada Java 8, penggunaan Lambda Expression pada Collection, serta FAQ yang sering ditanyakan tentang Lambda Expression pada Java 8. Semoga artikel ini bermanfaat bagi pembaca.