Sabtu, 10 Maret 2018

Menggunakan Lambda Expression Di Android Studio 3.0.1

Artikel kali ini akan membahas mengenai Lambda Expression (LE) di Java 8. LE adalah fitur baru di Java versi 8, memungkinkan kita membuat sebuah fungsi di Java tanpa perlu membuat Class lebih dulu untuk menampung fungsi tersebut. LE dapat digunakan seperti sebuah object, dan bisa dipanggil sesuka hati.

Contoh simpelnya sebagai berikut. Jika ada sebuah interface seperti ini:
public interface OnClickListener {

    public void onClick(View v);

}


Maka biasanya kita mengimplementasikan interface tersebut seperti ini:
Button button = new Button();

button.addOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        // melakukan sesuatu ketika Button ini di-klik
    }
});


Fungsi tersebut di atas pasti sangat familiar dengan programmer yang biasa membuat 
aplikasi android. OnClickListener seperti barusan, menggunakan Java versi 7. Nah, di versi 8,
kita bisa mempersingkat implementasi OnClickListener dengan menggunakan Lambda. 
Implementasinya akan jadi seperti ini:
Button button = new Button();

button.addOnClickListener((View v) -> {
        // melakukan sesuatu ketika Button ini di-klik
});
Hemat beberapa baris. He3.. . Yang dimaksud LE adalah tulisan yang bercetak tebal dan
berwarna biru di atas.

Bayangkan kalau aplikasi kita sudah punya puluhan bahkan ratusan OnClickListener. 
LE akan membuat kodingan kita lebih ringkas & mudah untuk dibaca.

Sekarang, bagaimana mengimplementasikan LE di Android Studio 3.0.1? Seperti biasa, kita
akan membuat project baru. Di artikel ini, nama projectnya adalah: Coba Lambda, company
domain seperti biasa pakai: pintar-android.com. kita pakai android API 15, dan kita membuat
sebuah Empty Activity.

Untuk mempersingkat artikel, penulis tidak akan menerangkan
cara membuat project baru. Sudah pada pintar-pintar semua kan? He3.. kalau ada yang belum
bisa membuat project baru, bisa melihat artikel2 pintar-android.com sebelumnya, misalnya
https://pintarandroid101.blogspot.co.id/2018/02/mari-mulai-belajar-kotlin.html .

Setelah project tersebut dibuat, ikuti langkah2 di gambar berikut ini.
mengaktifkan lambda java 8 di android studio


Setelah itu, modifikasi activity_main.xml menjadi seperti berikut ini:
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.pintar_android.cobalambda.MainActivity">

 <TextView
  android:id="@+id/textView"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="Hello World!"
  app:layout_constraintBottom_toTopOf="@+id/button2"
  app:layout_constraintLeft_toLeftOf="parent"
  app:layout_constraintRight_toRightOf="parent"
  app:layout_constraintTop_toTopOf="parent"/>

 <Button
  android:id="@+id/button2"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="Button"
  app:layout_constraintBottom_toBottomOf="parent"
  app:layout_constraintLeft_toLeftOf="parent"
  app:layout_constraintRight_toRightOf="parent"
  app:layout_constraintTop_toBottomOf="@+id/textView"/>

</android.support.constraint.ConstraintLayout>
Dan di MainActivity.java, perlu ditambahkan beberapa baris seperti berikut ini:

package com.pintar_android.cobalambda;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
    Button button;
    
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
                button.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "Button telah ditekan!"
                , Toast.LENGTH_SHORT).show();            }
        });
    }
}

Mirip seperti di contoh di awal artikel, bukan? Coba amati, fungsi OnClickListener berwarna
abu2. Kalau mouse diarahkan ke fungsi tersebut, akan ada peringatan seperti gambar berikut 
ini.
OnClickListener Java 7 tanpa Lambda Expression Java 8

Artinya, fungsi tersebut bisa digantikan dengan lambda. Caranya, tekan Alt+Enter pada
keyboard, lalu tekan Enter ketika "Replace with lambda" tersorot seperti ini.
Cara mengganti OnClickListener menjadi menggunakan Lambda Expression Java 8

Hasilnya seperti berikut ini.
OnClickListener Menggunakan Lambda Expression Java 8

Menghemat beberapa baris, dan kodingan kita menjadi lebih ringkas! Terimakasih, 
Lambda Expression :D

Demikian artikel pintar-android.com mengenai Lambda expression, semoga bermanfaat. Like page pintar-android.com di FB untuk mendapatkan artikel2 yang pastinya berguna di dunia pemrograman khususnya android. 
Tersedia buku-buku untuk belajar pemrograman Android.
buku kedua, membuat recyclerview yang menampilkan gambar2 dari internet menggunakan json: https://play.google.com/store/books/details?id=b-boDAAAQBAJ . Buku fisik di https://www.tokopedia.com/buku-meidika/koding-android-untuk-pemula-buku-2
buku registrasi user, membuat fitur login & register: https://play.google.com/store/books/details?id=FHMqDwAAQBAJ
kalau sudah beli, bisa dilihat di hape pake app google books, bisa dilihat di browser (misal chrome) di books.google.com -> My Library .
Tersedia juga DVD Android Studio 3.0.1 di tokopedia: 
https://www.tokopedia.com/buku-meidika/dvd-android-studio-3-0-jdk-32-bit-64-bit




Tidak ada komentar:

Posting Komentar

Kerja Di Kantor vs Kerja Dari Rumah (Bagian 1)

Programmer jaman now punya kesempatan kerja lebih besar untuk bekerja dari rumah alias remote. Komik kali ini akan menggambarkan beberapa pe...