3.Mengetahui cara mengurutkan data dengan class yang didefinisikan sendiri, dengan cara
mengimplementasikan interface Comparable dan Comparator
3.PERCOBAAN
1. Listing Program :
import java.util.Arrays;
public class P1 {
public static void main(String[] args) {
String animals[] = new String[6];
animals[0]="snake";
animals[1]="kangaroo";
animals[2]="wombat";
animals[3]="bird";
System.out.println("\nSEBELUM DISORTING");
for(int i=0;i<4;i++) {
System.out.println("animal " + i + " : " + animals[i]);
}
Arrays.sort(animals,0,4);
System.out.println("\nSETELAH DISORTING");
for(int i=0;i<4;i++) {
System.out.println("animal " + i + " : " + animals[i]);
}
}
}
Outputnya :
Analisa :
Pengurutan data diatas menggunakan Arrays.sort karena bentuk datanya array.
2. Listing Program :
import java.util.ArrayList;
import java.util.Collections;
System.out.println("\nSEBELUM DISORTING");
int size = insects.size();
for(int i=0;i<size;i++) {
System.out.println("insect " + i + " : " + (String)insects.get(i));
}
Collections.sort(insects);
System.out.println("\nSETELAH DISORTING");
for(int i=0;i<size;i++) {
System.out.println("insect " + i + " : " + (String)insects.get(i));
}
}
}
Outputnya :
Analisa :
Pengurutan data diatas menggunakan Collections.sort secara alfabet karena bentuk nya List.
3. Listing Program :
@Override
public String toString() {
return "Mahasiswa{" + "nrp=" + nrp + " nama=" + nama + '}';
}
}
import java.util.Arrays;
Analisa :
Percobaan diatas gagal karena tidak menerapkan Comparable atau comparator untuk mensort data.
4. Listing Program :
@Override
public String toString() {
return "Mahasswa{" + "nrp=" + nrp + " nama=" + nama + '}';
}
5. Listing Program :
import java.util.Comparator;
@Override
public String toString() {
return "Mahasswa{" + "nrp=" + nrp + " nama=" + nama + '}';
}
Analisa :
Class Mahasiswa diatas menerapkan Comparable dan membuat method compareTo(Object o) untuk
mengurutkan data mahasiswa berdasarkan huruf alfabet.
6. Listing Program :
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class SortArrayListInDescendingOrderExample {
public static void main(String[] args) {
Analisa :
Program diatas membuat objek Comparator yang bernama comparator dengan inisialisasi
Collections.reverseOrder() untuk mengurutkan data secara descending.
7. Listing Program :
import java.util.*;
class Employee {
private int age;
private String name;
Analisa :
Pengurutan data diatas menggunakan 2 Comparator yaitu NameComparator dan AgeComparator.
Terdapat dua argumen yang mengisi Arrays.sort() yaitu objek dari class Employee dan Comparator.
8. Listing Program :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
//Convert to list
List list = new ArrayList(Arrays.asList(names));
// Insert
int newIndex = -index -1;
list.add(newIndex, "Jimbo Jones");
System.out.println("With Jimbo Jones added: [length: " + list.size() +
"]");
System.out.println(list);
System.out.println(Collections.min(list));
System.out.println(Collections.max(list));
Analisa :
Untuk membalikkan urutan list dapat menggunakan Comparator comp yang terdapat obyek lalu
diinisialisasikan dengan Collections.reverseOrder(). Kemudian dicetak data urutan pertama dan terakhir
melalui Collections.min/max(list, comp)
4.LATIHAN
1. Jawaban :
Class Mahasiswa
2. Listing Program :
@Override
public String toString() {
return "Mahasiswa{" + "nrp=" + nrp + " nama=" + nama + " ipk=" + ipk +
'}';
}
}
import java.util.Comparator;
Analisa :
Saat peng-sortingan nrp digunakan fungsi Arrays.sort(dataMhs) dimana class Mahasiswa
mengimplements Comparable. Selain itu terdapat implements Comparator yang digunakan oleh IPK, dan
nama. Yang membedakan Comparator dan comparable adalah saat peng-sortingan Comparator
menggunakan dua argumen berbeda dengan comparable yang menggunakan hanya satu argumen saja.
3. Listing Program :
import java.util.*;
Analisa :
Program diatas menggunakan treeset dimana data disimpan dalam urutan ascending. Input data
didapatkan dari saat running program dengan menyertakan string setelah mengetikkan java (File) string1
string2 .... Comparator didefinisikan dalam class FindDups sendiri dan dipanggil melalui argumen di awal
sintaks main saat deklarasi SortedSet.
5.KESIMPULAN
Comparable dan Comparator digunakan untuk membandingkan object-object dari class yang sama.