laporan resmi algoritma dan struktur data :

6
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) {

Upload: siska-amelia

Post on 27-Jul-2015

297 views

Category:

Documents


28 download

TRANSCRIPT

Page 1: Laporan Resmi Algoritma dan Struktur Data :

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) {

Page 2: Laporan Resmi Algoritma dan Struktur Data :

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));

}

}

Page 3: Laporan Resmi Algoritma dan Struktur Data :

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";

}

Page 4: Laporan Resmi Algoritma dan Struktur Data :

@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));

}

}

Page 5: Laporan Resmi Algoritma dan Struktur Data :

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;

Page 6: Laporan Resmi Algoritma dan Struktur Data :

}

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: