Langsung ke konten utama

Tutorial Java OOP: Mengenal Lambda Expression untuk Membuat Fungsi Anonymous di Java

Tutorial Java OOP: Mengenal Lambda Expression untuk Membuat Fungsi Anonymous di Java


 
Mendengar kata “Anonymous”
…mungkin yang akan terpikirkan dibenakmu adalah orang-orang ini:
Anonymous Indonesia
Haha 😄, bukan ini yang akan kita bahas.
Istilah anonymous memang untuk menggambarkan sesuatu yang tak memiliki nama. Nah di Java, juga ada fungsi anonymous dan class anonymous.
Apa itu fungsi anonymous?
Bagaimana cara membuatnya?
Mengapa harus menggunakan fungsi anonymous?
Mari kita bahas lebih dalam…

Apa itu Fungsi Anonymous?

Fungsi anonymous adalah fungsi yang tidak memiliki nama. Fungsi anonymous di Java dikenal juga dengna lambda expression.
Fungsi anonymous biasanya dibuat hanya untuk sekali pakai.
Artinya, saat kita membuat fungsi anonymous, kita akan mengeksekusinya saat itu juga. Tidak bisa dipanggil lagi seperti fungsi biasa.
Fungsi ini mulai ditambahkan pada JDK 8.
Jika kamu menggunakan JDK di bawah 8, maka kamu harus upgrade dulu agar bisa menggunakan fungsi anonymous.
Oke, kalau begitu.. bagaimana cara membaut fungsi anonymous?

Cara Membuat Fungsi Anonymous di Java

Berikut ini adalah bentuk umum lambda expression atau fungsi anonymous di Java:
<em>Lambda expression</em> di Java
Gampang kan?
Ini simbol-simbol yang perlu kamu ingat:
() -> {}
Keterangan:
  • () tempat kita menaruh parameter.
  • -> (operator lambda) simbol yang menandakan fungsi ini adalah lambda/anonymous.
  • {} body fungsinya.
Contoh:
(int x, int y) -> { return x + y }
Sebenarnya simbol yang perlu diingat adalah simbol lambda (->), karena simbol ini yang membedakan fungsi anonymous dengan fungsi biasa.
Untuk tanda kurung yang ini () dengan yang ini {}, di fungsi biasa juga ada.
Mari kita lihat contohnya:
// ini fungsi biasa
int jumlahkan(int a, int b){
    return a + b;
}

// ini fungsi anonymous
(int a, int b) -> { return a + b }
Bahkan tanpa kurung kurawal juga bisa:
(int a, int b) -> return a + b;
Karena cuma ada satu baris ekspresi, maka tanda kurung {} boleh tidak ada.
Oh iya, fungsi anonymous dapat kita buat di berbagai tempat seperti:
  • Pada Deklarasi variabel;
    Contoh:
  • Pada pengisian variabel dan array;
    Contoh:
  • Pada saat mengembalikan nilai dengan return;
    Contoh:
  • Pada body lambda itu sendiri;
    Contoh:
  • Pada ekspresi kondisional (?:)
    Contoh:

Mengapa Harus Pakai Fungsi Anonymous?

Lambda expression atau fungsi anonymous sebenarnya hadir untuk menyempurnakan class anonymous1
Class anonymous biasanya digunakan untuk mengimplementasikan interface dan class abstrak.
Tapi masalahnya:
Saat interface hanya memiliki satu method saja untuk diimplementasikan. Kita harus membuat class (anonymous) baru.
Padahal kan kita cuma butuh method-nya saja.
Di sini lah saat yang tepat untuk menggunakan fungsi anonymous atau lambda expression.
Bahkan Netbeans juga akan menyarankan menggunakan lambda expression apabila menemukan kasus ini.
Rekomendasi dari Netbeans

Contoh Program Fungsi Anonymous

Buatlah proyek baru di Netbeans dengan nama ContohLambda.
Membuat proyek baru di Netbeans
Setelah itu, buat sebuah interface baru pada pacakage <default package> dengan nama Clickable dan isi kodenya seperti ini:
interface Clickable {
    void onClick();
}
Setelah itu, buatlah class Button dengan isi seperti ini:
public class Button {
    private Clickable action;
    
    void setClickAction(Clickable action){
        this.action = action;
    }
    
    void doClick(){
        action.onClick();
    }
}
Terakhir, buatlah class Main dengan isi seperti ini:
public class Main {

    public static void main(String[] args) {
        
        Button btn = new Button();
        
        // membuat class anonymous untuk implementasi interface
        btn.setClickAction(new Clickable() {
            @Override
            public void onClick() {
                System.out.println("Tombol sudah diklik!");
                System.out.println("Yay!");
            }
        });
        
        // mencoba klik tombol
        btn.doClick();
        
    }
}
Perhatikan baris kode yang saya tandai di atas..
Di sana kita menggunakan class anonymous untuk mengimplementasikan interface Clickable.
Nah, kalau mau lebih sederhana.. kita bisa pakai lambda expression.
Sekarang coba ubah kodenya menjadi seperti ini:
public class Main {

    public static void main(String[] args) {
        
        Button btn = new Button();
        
        // membuat class anonymous untuk implementasi interface
        btn.setClickAction(() -> {
            System.out.println("Tombol sudah diklik!");
            System.out.println("Yay!");
        });
        
        // mencoba klik tombol
        btn.doClick();
        
    }
}
Lebih sederhana yang mana?
Tentu saja yang menggunakan lambda expression.
Berikut ini hasil output dari program tersebut:
Hasil contoh program anonymous class

Akses Variabel untuk Fungsi Anonymous

Pada dasarnya, fungsi anonymous adalah bentuk sederhana dari class anonymous.
Jadi dia akan memiliki akses variabel yang sama seperti class anonymous.
Kalau tidak percaya, coba buktikan dengan membuat variabel di luar fungsi anonymous.
Lalu akses variabel tersebut dari dalam fungsi anonymous.
public class Main {

    public static void main(String[] args) {
        
        Button btn = new Button();
        String name = "Petani Kode";
        
        // membuat class anonymous untuk implementasi interface
        btn.setClickAction(() -> {
            System.out.println("Tombol sudah diklik!");
            System.out.println("Yay!");
            System.out.println("Hello " + name);
        });
        
        // mencoba klik tombol
        btn.doClick();
        
    }
}
Fungsi anonymous akan bisa mengakses variabel yang berada di dalam class (variabel global), dan lokal yang ada di method tempat anonymous class digunakan.

Akhir Kata…

Intinya:
Fungsi anonymous hanya bisa digunakan saat ingin mengimplementasikan interface yang memiliki satu method.
Jika interface itu memiliki lebih dari satu method, maka sebaiknya pakai class anonymous.
Sekian..

Komentar

Postingan populer dari blog ini

PROSEDUR PEMBUATAN INDIKATOR

PROSEDUR PEMBUATAN INDIKATOR 1. EBT (ERIOCROM BLACK T) Timbang 100 mg serbuk zat warna EBT ,10 gram Kristal NaCl atau Kristal Na2SO4 an hidrat. Kedua zat tersebut dicampur dengan cara menggerus didalam mortar sampai halus dan merata. Penggunaannya 100 mg (seujung spatel ) untuk satu kali titrasi. 2. Merah metil Larutkan 25 mg metil P dengan 0,95 ml larutan Natrium hidroksida 0,05 N dan 5 ml etanol 95 % setelah larut sempurna, tambahkan etanol 50 % secukupnya hingga 250,0 ml 3. Jingga metil Larutkan jingga metil P 0,04 % b/v dalam etanol 20 % 4. BTB Larutkan 100 mg biru brom timol P dengan 3,2 ml Natrium Hidroksida 0,05 N dan 5 ml etanol 90 % ,setelah larut sempurna tambahkan etanol 20 % secukupnya hingga 250,0 ml. 5. MUREXIDE Haluskan 100 mg serbuk murexide dengan 10 gram KNO3 atau 10 gram NaCl . Pada pemakaiannya 100 gram serbuk murexide tiap volume 150 sampai 200 ml. 6. Larutan indicator Fenolftalein 0,035 %. Timbang ± 0,035 gram Fenolftalein ,lar

LARUTAN PADA KIMIA ANALITIK KUANTITATIF

LARUTAN PADA KIMIA ANALITIK KUANTITATIF 1.        LARUTAN NaOH 0,1  N                 4 gram NaOH dalam 1 Liter 2.        LARUTAN HCl 0,1 N HCl pekat = 37% HCl pekat = 12 M = 12 N                 8,33 mL HCl pekat = 1 Liter 0,1 N 3.        LARUTAN H 2 SO 4 0,1 N H 2 SO 4 pekat = 96 % H 2 SO 4 pekat = 17,63 M = 18 M = 36 N        2,78 mL H 2 SO 4 pekat = 1 liter 0,1 N 4.        LARUTAN CH 3 COOH 0,1 N CH 3 COOH pekat = 99,5 % CH 3 COOH pekat = 17 M = 17 N        5,88 mL CH 3 COOHpekat = 1 liter 0,1 N 5.        LARUTAN Na 2 S 2 O 3 0,1 N             26 gram Na 2 S 2 O 3 dengan 0,2   g Na 2 CO 3 dilarutkan dalam air bebas CO 2 segar sampai volume 1000 ml 6.        LARUTAN KIO 3 0,1 N             3 , 5 g KIO 3 encerkan dengan air hingga 1000 m L 7.        LARUTAN KMnO 4 0,1 N      3,3 gram Kalium Permanganat P adat dilarutkan dalan air hingga 1000 ml 8.        LARUTAN IODIUM (I 2 ) 0,1 N 12,69 gram I 2 P adat ke dalam la

Membuat Air Mawar

  Membuat Air Mawar   1.      Metoda Merebus Bahan: - 2 hingga 3 cangkir kelopak mawar segar yang sudah bersih - Panci ukuran besar - Botol semprot - 2 liter  air  Langkah-langkah: 1. Masukkan kelopak mawar bersih ke dalam panci dan tuangkan air suling ke dalamnya. 2. Letakkan panci di atas kompor dengan api kecil. 3. Masak selama 30 menit hingga mendidih dan kelopak bunga berubah warna. 4. Setelah itu diamkan hingga dingin dan masukan ke dalam botol semprot. Kalau ingin mendapatkan sensasi segar, Anda bisa taruh botol air mawar ke dalam kulkas sebelum digunakan. 2. Metode penghancuran Bahan: - 7-8 kelopak mawar segar atau kering dan sudah dibersihkan - Air suling - Mangkuk - Saringan - Lesung dan alu - Botol kaca Langkah-langkah: 1. Haluskan kelopak bunga menggunakan lesung dan alu. Kemudian masukan kedalam mangkuk yang berisi air sulingan secukupnya dan biarkan selama 2-3 jam. 2. Tuang campuran air dan kelopak itu ke dalam panci dan ma