Java 8 Tutorial - Belajar Java 8 Default Methods

Tags
Java 8 Tutorial Default Methods - Java 8 memperkenalkan konsep baru implementasi default method pada interface. Kemampuan ini ditambahkan untuk kompatibilitas sehingga interface yang lama dapat digunakan untuk memanfaatkan kemampuan lambda expression di Java 8. Misalnya, interface 'List' atau 'Collection' tidak memiliki deklarasi method 'forEach'. Dengan demikian, menambahkan method seperti itu hanya akan mematahkan implementasi Collection. Java 8 memperkenalkan default method sehingga interface List atau Collection dapat memiliki implementasi default untuk method forEach, dan java class yang mengimplementasikan interface ini tidak perlu menerapkan hal yang sama.

Java 8 Tutorial - Belajar Java 8 Default Methods

Baca Juga : Java 8 Tutorial - Belajar Java 8 Method Referance

Sintak

public interface Hikaru {
   default void print(){
      System.out.println("Saya Hikaru");
   }
}

Multiple Default

Dengan fungsi default dalam interface, ada kemungkinan class menerapkan dua interface dengan default method yang sama. Source code berikut menjelaskan bagaimana ambiguitas (sebuah class yang menerapkan 2 buah interface) ini dapat diatasi.

public interface Hikaru {
   default void print(){
      System.out.println("Saya Hikaru");
   }
}

public interface Pelajar {
   default void print(){
      System.out.println("Saya Seorang Pelajar");
   }
}

Solusi pertama adalah membuat method sendiri yang menggantikan implementasi default.

public class Job implements Hikaru, Pelajar {
   default void print(){
      System.out.println("Saya Hikaru Seorang Pelajar");
   }
}

Solusi kedua adalah memanggil default method dari interface yang ditentukan menggunakan super.

public class Job implements hikaru, pelajar {
   default void print(){
      Hikaru.super.print();
   }
}

Baca Juga : Java 8 Tutorial - Belajar Java 8 Functional Interface


Default Method Static

Mari kita lihat contoh penggunaan default method untuk lebih jelasnya.

public class Java8Tester {
   public static void main(String args[]){
      Hikaru hikaru = new Job();
      hikaru.print();
   }
}

interface Hikaru {
   default void print(){
      System.out.println("Saya Hikaru");
   }
}

interface Pelajar {
   default void print(){
      System.out.println("Saya Seorang Pelajar");
   }
}

class Job implements Hikaru, Pelajar {
   public void print(){
      Hikaru.super.print();
      Pelajar.super.print();
      System.out.println("Saya Memiliki Sebuah Mobil");
   }
}

Sekian tutorial java programming mengenai default method di java 8. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
IHKY-DDAG-WL10-OWHH

Java 8 Tutorial - Belajar Java 8 Functional Interfaces

Tags
Java 8 tutorial - Functional interface memiliki satu fungsi untuk ditunjukan. Misalnya, interface yang sebanding dengan method 'compareTo' tunggal digunakan untuk tujuan perbandingan. Java 8 telah mendefinisikan banyak functional interface untuk digunakan secara ekstensif dalam lambda expression. Berikut adalah daftar functional interface yang didefinisikan dalam package java.util.Function.

Java 8 Tutorial - Belajar Java 8 Functional Interfaces

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

Contoh Functional Interface

Predicate <T> interface adalah functional interface dengan method test(Object) untuk mengembalikan nilai Boolean. Interface ini menandakan bahwa suatu objek diuji menjadi true atau false.

Untuk lebih jelasnya, tulis program berikut di editor kode dan verifikasi hasilnya.

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

/**
 *
 * @author Akira
 */
public class ContohJava8Functional {
    public static void main(String args[]){
      List<integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
  
      System.out.println("Cetak Semua Angka");
      eval(list, n->true);
  
      System.out.println("Cetak Bilangan Genap");
      eval(list, n-> n%2 == 0 );
  
      System.out.println("Cetak Angka Lebih Dari 3:");
      eval(list, n-> n > 3 );
   }
 
   public static void eval(List<integer> list, Predicate<integer> predicate) {
      for(Integer n: list) {
         if(predicate.test(n)) {
            System.out.print(n+"\t");
         }
      }
      System.out.println("");
   }
}

Baca Juga : Java 8 Tutorial - Belajar Java 8 Method Referances

Hasil dari source code contoh functional interface diatas sebagai berikut :

Cetak Semua Angka
1 2 3 4 5 6 7 8 9 
Cetak Bilangan Genap
2 4 6 8 
Cetak Angka Lebih Dari 3:
4 5 6 7 8 9 

Sekian pembahasan java 8 tutorial mengenai penggunaan functional interfaces. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
HWPG-SHY1-VRXY-RHEP

Java 8 Tutorial - Belajar Java 8 Method References

Tags
Java 8 Tutorial  - Method references merupakan fitur baru yang ditambahkan ke java 8. Method references membantu menunjuk metode dengan nama mereka. Method references dijelaskan dengan menggunakan simbol " ::  " (double colon). Method references dapat digunakan untuk menunjukkan jenis methode berikut :
  • Methods statis
  • Instance methods
  • Constructors menggunakan oprator new (TreeSet::new)
Java 8 Tutorial - Belajar Java 8 Method References


Baca Juga : Java 8 Tutorial - Belajar Java 8 Lambda Expression

Contoh Method References

Untuk gambaran lebih jelas, silahkan lihat contoh method referansi.

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Akira
 */
public class ContohMethodReferensi {
    public static void main(String args[]){
      List nama = new ArrayList();
  
      nama.add("Akira");
      nama.add("Kevin");
      nama.add("Nuy");
      nama.add("Khudrotul");
      nama.add("Natsuki");
  
      nama.forEach(System.out::println);
   }
}

Disini kita telah memiliki method System.out :: println sebagai method reference statis.

Hasil dari program diatas :
Akira
Kevin
Nuy
Khudrotul
Natsuki

Java program diatas menampilkan isi dari ArrayList, lihat perbandingannya jika kalian menggunakan java 7.

Perhatikan contoh java program berikut :

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Akira
 */
public class ContohMethodJava7 {
    public static void main(String args[]){
      List nama = new ArrayList();
  
      nama.add("Akira");
      nama.add("Kevin");
      nama.add("Nuy");
      nama.add("Khudrotul");
      nama.add("Natsuki");
  
      for(int i = 0; i < nama.size(); i++){
          System.out.println(nama.get(i));
      }
   }
}

Dalam java 8 tutorial ini, kita telah menjajaki salah satu fitur Java 8. Method reference bisa membuat kode program java kalian lebih  mudah dibaca.

Ingatlah bahwa setiap kali Anda menggunakan lambda expression, tanyakan pada diri kalian apakah lambda expression memudahkan kalian. Jika demikian, sudah saatnya mengganti dengan method reference.

Sekian pembahasan java 8 tutorial mengenai penggunaan method references.  Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
TAIE-YAQM-AGBI-ZCXU

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

Belajar Java Swing Menampilkan Waktu Secara Real Time

Bagaimana cara membuat dan menampilkan waktu secara real time di java swing? Pertanyaan tersebut sering saya dengar. Caranya tidak sulit seperti yang kalian bayangkan, pada pembelajar  java kali ini saya akan menjelaskan cara membuat waktu atau timer secara real time pada pemrograman java.

Berikut tampilan timer real time pada tutorial java swing kali ini :

Belajar Java Swing Menampilkan Waktu Secara Real Time

Pada tampilan diatas terlihat dibagian kanan bawah terdapat timer (tanggal dan waktu). Timer tersebut diambil dari time komputer kalian.


Pertama, buatlah 2(dua) buah class java dengan nama LabelTime dan ContohTime.

Class LabelTime untuk membuat JLabel yang akan saya gunakan untuk membuat timer secara real time.

Berikut ini souce code untuk LabelTime :

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.Timer;
import javax.swing.JLabel;

/**
 *
 * @author Akira
 */
public class LabelTime extends JLabel implements ActionListener{
    
    private SimpleDateFormat format;
    private Timer timer;
    private Date date;
 
    public LabelTime() {
        timer = new Timer(1000, this);
        format = new SimpleDateFormat("dd MMMM yyyy, HH:m:ss");
        date = new Date();
        timer.start();
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        date.setTime(System.currentTimeMillis());
        this.setText(format.format(date));
    }
    
}

Class ContohTime merupakan JFrame yang digunakan untuk menerapkan timer  JLabel dari class LabelTime.


Berikut ini source code ContohTime :

import java.awt.Font;
import javax.swing.JFrame;
import net.akira.swing.LabelTime;

/**
 *
 * @author Akira
 */
public class ContohTime extends JFrame{

    private LabelTime waktu;
    
    public ContohTime() {
        setSize(350, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        userInterface();
        setVisible(true);
    }
    
    private void userInterface(){
        waktu = new LabelTime();
        waktu.setFont(new Font("Arial", Font.BOLD, 14));
        waktu.setHorizontalAlignment(LabelTime.RIGHT);
        
        getContentPane().add(waktu, "South");
    }
    
    public static void main(String[] args){
        ContohTime obj = new ContohTime();
    }
}


Nb. Pada contoh diatas, saya menempatkan timer berada di bagian bawah (BorderLayout South). Kalian dapat mengubah letak dari timer tersebut.

Sekian tutorial pembelajaran java swing cara membuat dan menampilkan waktu secara real time. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
WNFC-Q2E1-UE1W-FTVN