Anda di halaman 1dari 9

MODUL PERKULIAHAN

Pemrogramam
Berorientasi Object

Method, GUI,
Convert/Casting Tipe data
dan Arraylist

Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh


Ilmu Komputer Teknik F061700009 Mohamad Yusuf, S.Kom., M.C.S
05
Informatika

Abstract Kompetensi
Modul ini membahas tentang Mahasiswa memahami dan dapat
method, membuat user interface, menjelaskan tentang method, dapat
dan arraylist menggunakan GUI java, memahami
convert/casting tipe data dan
memahami array dan arraylist pada
java
Pendahuluan

Java sort arraylist of objects – Comparable and Comparator example

Banyak kali kita perlu mengurutkan daftar objek array berdasarkan bidang atau abjad,
terutama jika Anda bekerja pada domain di mana orang adalah entitas utama Anda (mis.
SDM), Anda akan lebih sering menemukan persyaratan ini. Ada banyak cara untuk
mengurutkan daftar tersebut, yang berkisar dari pengurutan pada UI klien menggunakan
javascript untuk mengurutkan daftar objek di sisi server menggunakan algoritma yang
kompleks, dan kadang-kadang juga dalam database.

2. Java sort arraylist objek - Contoh Comparable


Antarmuka yang sebanding menyediakan satu metode untuk compareTo (T o) untuk
diterapkan di kelas mana pun sehingga dua contoh kelas itu dapat compared.

Method syntax is:


public int compareTo(T o);
Di sini, dari dua instance untuk membandingkan, satu instance itu sendiri di mana metode akan
dipanggil, dan lainnya dilewatkan sebagai parameter o.

Mari kita lihat bagaimana tampilan class Employee kita setelah mengimplementasikan
Comparable interface.
Employee.java
package corejava.compare;

2019 Pemrograman Berorientasi Objek


2 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
 
public class Employee implements Comparable<Employee> {
 
    private int id = -1;
    private String firstName = null;
    private String lastName = null;
    private int age = -1;
 
    public Employee(int id, String fName, String lName, int age) {
        this.id = id;
        this.firstName = fName;
        this.lastName = lName;
        this.age = age;
    }
 
    @Override
    public int compareTo(Employee o) {
        return this.id - o.id;
    }
 
    // Setters and Getters
 
    @Override
    public String toString() {
        return "Employee : " + id + " - " + firstName + " - " + lastName + " - " + age + "
    }
}

Cara default untuk mengurutkan daftar Employee, dalam kasus kami, adalah dengan id mereka.
Apa pun, urutan penyortiran default Anda adalah, gunakan metode compare ().

Dalam metode compare () yang diterapkan, kami hanya mengembalikan perbedaan id Employee
dari dua contoh. Dua id Employee yang sama akan mengembalikan nol, menunjukkan objek yang
sama.

Collections.sort()

Mari kita coba metode compare()  yang diterapkan di kelas Employee di atas.

package corejava.compare.umb;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
public class TestSorting {
    public static void main(String[] args) {
        Employee e1 = new Employee(1, "aTestName", "dLastName", 34);
        Employee e2 = new Employee(2, "nTestName", "pLastName", 30);

2019 Pemrograman Berorientasi Objek


3 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
        Employee e3 = new Employee(3, "kTestName", "sLastName", 31);
        Employee e4 = new Employee(4, "dTestName", "zLastName", 25);
 
        List<Employee> employees = new ArrayList<Employee>();
        employees.add(e2);
        employees.add(e3);
        employees.add(e1);
        employees.add(e4);
 
        // UnSorted List
        System.out.println(employees);
 
        Collections.sort(employees);
 
        // Default Sorting by employee id
        System.out.println(employees);
    }
}

Dalam program di atas, pernyataan cetak pertama mencetak daftar Employee yang tidak disortir
dan dalam pernyataan cetak kedua, Employee diurutkan berdasarkan id Employee mereka.
Console
//Unsorted
 
[Employee : 2 - nTestName - pLastName - 30
, Employee : 3 - kTestName - sLastName - 31
, Employee : 1 - aTestName - dLastName - 34
, Employee : 4 - dTestName - zLastName - 25]
 
//Sorted
 
[Employee : 1 - aTestName - dLastName - 34
, Employee : 2 - nTestName - pLastName - 30
, Employee : 3 - kTestName - sLastName - 31
, Employee : 4 - dTestName - zLastName - 25]

Objek-objek Java sort arraylist – Comparator

Jadi, sekarang kita bisa mengurutkan daftar Employee berdasarkan id mereka. Sekarang mari
kita pertimbangkan kasus di mana kita ingin mengurutkan daftar Employee berdasarkan
beberapa input pengguna yang pada dasarnya adalah bidang pengurutan yaitu kadang-kadang
dia ingin mengurutkan berdasarkan nama depan, kadang-kadang juga mengurutkan
berdasarkan usia.

Ini dapat dicapai dengan plugin jquery dengan mudah, tetapi bagaimana jika browser telah
menonaktifkan javascript. Anda harus mengurutkan daftar di sisi server saja untuk tidak
merusak fungsi aplikasi.

2019 Pemrograman Berorientasi Objek


4 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Di sinilah antarmuka Comparator untuk menyelamatkan Anda. Comparator dapat digunakan untuk
mengurutkan koleksi instance pada beberapa basis tertentu. Untuk mengurutkan bidang yang
berbeda, kami membutuhkan beberapa implementasi Komparator.

Comparator interface example

Kami telah menentukan beberapa implementasi untuk kasus pemilahan yang berbeda. Mari kita
tuliskan.

FirstNameSorter.java
package corejava.compare;

import java.util.Comparator;

public class FirstNameSorter implements Comparator<Employee>{

@Override
public int compare(Employee o1, Employee o2) {
return o1.getFirstName().compareTo(o2.getFirstName());
}}
LastNameSorter.java
package corejava.compare;
 
import java.util.Comparator;
 
public class LastNameSorter implements Comparator<Employee> {
 
    @Override
    public int compare(Employee o1, Employee o2) {
        return o1.getLastName().compareTo(o2.getLastName());
    }
 
}

2019 Pemrograman Berorientasi Objek


5 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
name sorter
Age sorter
AgeSorter.java
package corejava.compare;

 
import java.util.Comparator;
 
public class AgeSorter implements Comparator<Employee> {
    @Override
    public int compare(Employee o1, Employee o2) {
        return o1.getAge() - o2.getAge();
    }
}

Bagaimana membandingkan dengan Comparator

Jadi secara teoritis, kita harus dapat menyortir bidang apa saja sesuai keinginan kita dengan
kode minimum. Mari kita lihat apakah kita benar-benar:

package corejava.compare.umb;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
public class TestSorting
{
    public static void main(String[] args)

2019 Pemrograman Berorientasi Objek


6 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
    {
        Employee e1 = new Employee(1, "aTestName", "dLastName", 34);
        Employee e2 = new Employee(2, "nTestName", "pLastName", 30);
        Employee e3 = new Employee(3, "kTestName", "sLastName", 31);
        Employee e4 = new Employee(4, "dTestName", "zLastName", 25);
 
        List<Employee> employees = new ArrayList<Employee>();
        employees.add(e2);
        employees.add(e3);
        employees.add(e1);
        employees.add(e4);
 
        // UnSorted List
        System.out.println(employees); 
        Collections.sort(employees); 
        // Default Sorting by employee id
        System.out.println(employees); 
        Collections.sort(employees, new FirstNameSorter());
 
        // Sorted by firstName
        System.out.println(employees);
 
        Collections.sort(employees, new LastNameSorter());
 
        // Sorted by lastName
        System.out.println(employees);
 
        Collections.sort(employees, new AgeSorter());
 
        // Sorted by age
        System.out.println(employees);
    }
}
 

Output:
//Unsorted

2019 Pemrograman Berorientasi Objek


7 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
 
[Employee : 2 - nTestName - pLastName - 30
, Employee : 3 - kTestName - sLastName - 31
, Employee : 1 - aTestName - dLastName - 34
, Employee : 4 - dTestName - zLastName - 25]

 
//Default sorting based on employee id
 
[Employee : 1 - aTestName - dLastName - 34
, Employee : 2 - nTestName - pLastName - 30
, Employee : 3 - kTestName - sLastName - 31
, Employee : 4 - dTestName - zLastName - 25]

 
//Sorted by first name
 
[Employee : 1 - aTestName - dLastName - 34
, Employee : 4 - dTestName - zLastName - 25
, Employee : 3 - kTestName - sLastName - 31
, Employee : 2 - nTestName - pLastName - 30]

 
//Sorted by last name
 
[Employee : 1 - aTestName - dLastName - 34
, Employee : 2 - nTestName - pLastName - 30
, Employee : 3 - kTestName - sLastName - 31
, Employee : 4 - dTestName - zLastName - 25]

 
//Sorted by age
 
[Employee : 4 - dTestName - zLastName - 25
, Employee : 2 - nTestName - pLastName - 30
, Employee : 3 - kTestName - sLastName - 31
, Employee : 1 - aTestName - dLastName - 34]

2019 Pemrograman Berorientasi Objek


8 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Daftar Pustaka

https://alvinalexander.com/java/edu/qanda/pjqa00010.shtml
https://netbeans.org/kb/docs/java/gui-functionality.html
https://www.petanikode.com/java-prosedur-dan-fungsi/

2019 Pemrograman Berorientasi Objek


9 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id

Anda mungkin juga menyukai