laporan resmi algoritma dan struktur data :
TRANSCRIPT
LATIHAN 4
COMPARABLE DAN COMPARATOR
1. Latihan 1 : Sebutkan class-class yang mengimplementasikan interface Comparable.
Jawab: Class - class yang dibuat sendiri maupun class - class yang tersedia di java
collection dapat mengimplementasikan interface Comparable yang terdapat dalam
package java.lang.Comparable..
2. Latihan 2 : Kembangkan untuk Class Mahasiswa dengan memberikan variabel baru
berupa nilai IPK (double), selanjutkan lakukan pengurutan data Mahasiswa
berdasarkan nrp, nama dan nilai IPK (menggunakan Comparable dan Comparator)
Source Code:
Mahasiswa.java
public class Mahasiswa implements Comparable {
private String nrp ;
private String nama ;
private String IPK;
public Mahasiswa(String nrp, String nama, String IPK) {
this.nrp = nrp;
this.nama = nama;
this.IPK = IPK;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getNrp() {
return nrp;
}
public void setNrp(String nrp) {
this.nrp = nrp;
}
public String getIPK() {
return IPK;
}
public void setIPK(String IPK) {
this.IPK = IPK;
}
@Override
public String toString() {
return "NRP\t:"+nrp+"\t\tNama\t: "+nama+"\t\tIPK\t: "+IPK+"\n";
}
@Override
public int compareTo(Object o) {
throw new UnsupportedOperationException("Not supported yet."); //To change
body of generated methods, choose Tools | Templates.
}
}
IPKComparator.java
import java.util.Comparator;
public class IPKComparator implements Comparator {
@Override
public int compare(Object o1, Object o2) {
Mahasiswa m1 = (Mahasiswa) o1;
Mahasiswa m2 = (Mahasiswa) o2;
return m1.getIPK().compareTo(m2.getIPK());
}
}
Latihan2.java
import java.util.Arrays;
public class Latihan2 {
public static void main(String[] args) {
Mahasiswa dataMhs[] = {new Mahasiswa("05", "Cahya","3.56"),new
Mahasiswa("04", "Rudi","3.8"),
new Mahasiswa("01", "Endah","3.76"),new Mahasiswa("03", "Rita","3.87"),new
Mahasiswa("02", "Tika","3.88")};
System.out.println("SEBELUM SORTING");
System.out.println(Arrays.toString(dataMhs));
Arrays.sort(dataMhs, new IPKComparator());
System.out.println("\nSESUDAH SORTING");
System.out.println(Arrays.toString(dataMhs));
}
}
Output:
3. Latihan 3 : Pada Supermarket Buah, terdapat beberapa macam buah dan informasi
stock dari buah tersebut. Terdapat menu penjualan (supermarket ke konsumen) dan
pembelian (supermarket ke pemasok) (menggunakan Comparable dan Comparator) Source Code:
Buah.java
public class Buah implements Comparable {
private String namabuah ;
private int stock ;
public Buah(String namabuah,int stock) {
this.namabuah = namabuah;
this.stock=stock;
}
public String getNamaBuah() {
return namabuah;
}
public int getStock() {
return stock;
}
@Override
public String toString() {
return "Buah\t: "+namabuah+"\t\tStock\t: "+stock+"\n";
}
@Override
public int compareTo(Object o) {
throw new UnsupportedOperationException("Not supported yet."); //To change body
of generated methods, choose Tools | Templates.
}
}
StockComparator.java:
import java.util.Comparator;
public class StockComparator implements Comparator {
@Override
public int compare(Object o1, Object o2) {
Buah m1 = (Buah) o1;
Buah m2 = (Buah) o2;
return m1.getStock().compareTo(m2.getStock());
}
}
Latihan3.java:
import java.util.*;
public class Latihan3{
public static void main(String[] args) {
Buah databuah[] = {new Buah("Melon","160"), new Buah("Aprikot","100"), new
Buah("Alpukat","198"),new Buah("Durian","128")};
System.out.println("SEBELUM DI SORT");
System.out.println(Arrays.toString(databuah));
Arrays.sort(databuah, new StockComparator());
System.out.println("\nSESUDAH SORTING");
System.out.println(Arrays.toString(databuah));
}
}
Output:
4.
Source Code:
import java.util.*;
public class Latihan4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Masukkan kata: ");
String kata = input.nextLine();
Set<word> s = new TreeSet<>();
for(String y : kata.split(" ")){
if (!s.add(new word(y)))
System.out.println("Duplicate detected: " +y);
}
System.out.println(s.size() + " distinct words: " +s);
}
}
class word implements Comparable{
private String kata;
public word(String kata){
this.kata=kata;
}
public String getKata(){
return this.kata;
}
@Override
public String toString(){
return kata;
}
@Override
public int compareTo(Object o) {
return this.kata.toLowerCase().compareTo(((word) o).getKata().toLowerCase());
}
}
Output: