Java 8 Tutorial - Belajar Java 8 Lambda Expression

Tags

Java 8 Tutorial - Lambda expression diperkenal di java 8 dan disebut-sebut sebagai fitur terbesar di java 8. Lambda expression memfasilitasi pemrograman fungsional, dan menyederhanakan pengembangan secara keseluruhan.

Java 8 Tutorial - Belajar Java 8 Lambda Expression


Berikut ini merupakan karakteristik dari lambda expression :
  • Optional type declaration - Tidak perlu mendeklarasikan tipe parameter. Kompilator bisa inferensi sama dari nilai parameter.
  • Optional parenthesis around parameter - Tidak perlu mendeklarasikan satu parameter dalam tanda kurung. Untuk beberapa parameter, diperlukan tanda kurung.
  • Optional curly braces - Tidak perlu menggunakan kurung kurawal dalam tubuh ekspresi jika tubuh berisi satu pernyataan.
  • Optional return keyword - Kompilator secara otomatis mengembalikan nilai jika body memiliki satu ekspresi untuk mengembalikan nilainya. Kurung kurawal diharuskan untuk menunjukkan bahwa ekspresi mengembalikan nilai.

Baca Juga : Java 8 Tutorial - Fitur Baru yang Ditambahkan ke Java 8

Contoh Penggunaan Lambda Expression


Contoh 1 Buatlah program java dengan nama java class ContohLambdaJava8

public class ContohLambdaJava8 {

    public static void main(String args[]){
      ContohLambdaJava8 obj = new ContohLambdaJava8();
  
      //dengan type declaration
      OperasiPerhitungan penjumlahan = (int a, int b) -> a + b;
  
      //tanpa type declaration
      OperasiPerhitungan pengurangan = (a, b) -> a - b;
  
      //dengan return statement dan dengan kurung kurawal
      OperasiPerhitungan perkalian = (int a, int b) -> { return a * b; };
  
      //tanpa return statement and tanpa kurung kurawal
      OperasiPerhitungan pembagian = (int a, int b) -> a / b;
  
      System.out.println("10 + 5 = " + obj.operate(10, 5, penjumlahan));
      System.out.println("10 - 5 = " + obj.operate(10, 5, pengurangan));
      System.out.println("10 x 5 = " + obj.operate(10, 5, perkalian));
      System.out.println("10 / 5 = " + obj.operate(10, 5, pembagian));
  
      //dengan parenthesis
      GreetingService greetService1 = message ->
      System.out.println("Hello " + message);
  
      //tanpa parenthesis
      GreetingService greetService2 = (message) ->
      System.out.println("Hello " + message);
  
      greetService1.sayMessage("Kitty");
      greetService2.sayMessage("Pikachu");
   }
 
   private interface OperasiPerhitungan {
      int operation(int a, int b);
   }
 
   private interface GreetingService {
      void sayMessage(String message);
   }
 
   private int operate(int a, int b, OperasiPerhitungan op){
      return op.operation(a, b);
   }

}

Contoh 2 Buatlah program java dengan nama java class TesterLambdaJava8

public class TesterLambdaJava8 {
   
   public static void main(String args[]){
      String msg = "Hello! ";
      GreetingService greetService1 = pesan -> 
      System.out.println(msg + pesan);
      greetService1.sayMessage("Kitty");
   }
 
   private interface GreetingService {
      public void sayMessage(String pesan);
   }

}

Berikut adalah poin penting yang harus diperhatikan dalam contoh lambda expression di atas.
  • Lambda expression digunakan terutama untuk mendefinisikan implementasi dari interface fungsional, yaitu interface dengan satu method saja. Pada contoh di atas, kita telah menggunakan berbagai jenis lambda exspression untuk menentukan method operation interface MathOperation. Kemudian kita telah mendefinisikan implementasi sayMessage dari interface GreetingService.
  • Lambda expression menghilangkan kebutuhan anonymous class dan memberikan kemudahan pemrograman fungsional namun memiliki powerfull yang dapat diandalkan ke java 8.

Cakupan Lambda Expression 

Dengan menggunakan lambda expression, kalian bisa merujuk ke variabel akhir atau variabel akhir yang efektif (yang ditugaskan hanya sekali). lambda expression melemparkan kesalahan kompilasi, jika sebuah variabel diberi nilai untuk kedua kalinya.

Sekian pembahasan tentang java 8 tutorial mengenai fitur lambda expression di java 8. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
B5TI-KQF0-JGWJ-9QBQ


EmoticonEmoticon