SlideShare a Scribd company logo
1 of 6
Download to read offline
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 "NRPt:"+nrp+"ttNamat: "+nama+"ttIPKt: "+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 "Buaht: "+namabuah+"ttStockt: "+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:

More Related Content

What's hot

Scala - en bedre og mere effektiv Java?
Scala - en bedre og mere effektiv Java?Scala - en bedre og mere effektiv Java?
Scala - en bedre og mere effektiv Java?Jesper Kamstrup Linnet
 
Python data structures
Python data structuresPython data structures
Python data structureskalyanibedekar
 
Scala Collections : Java 8 on Steroids
Scala Collections : Java 8 on SteroidsScala Collections : Java 8 on Steroids
Scala Collections : Java 8 on SteroidsFrançois Garillot
 
Java ArrayList Video Tutorial
Java ArrayList Video TutorialJava ArrayList Video Tutorial
Java ArrayList Video TutorialMarcus Biel
 
Collections In Java
Collections In JavaCollections In Java
Collections In JavaBinoj T E
 
SQL Server Select Topics
SQL Server Select TopicsSQL Server Select Topics
SQL Server Select TopicsJay Coskey
 
collection framework in java
collection framework in javacollection framework in java
collection framework in javaMANOJ KUMAR
 
APPLICATION TO DOCUMENT ALL THE DETAILS OF JAVA CLASSES OF A PROJECT AT ONCE...
APPLICATION TO DOCUMENT ALL THE  DETAILS OF JAVA CLASSES OF A PROJECT AT ONCE...APPLICATION TO DOCUMENT ALL THE  DETAILS OF JAVA CLASSES OF A PROJECT AT ONCE...
APPLICATION TO DOCUMENT ALL THE DETAILS OF JAVA CLASSES OF A PROJECT AT ONCE...DEEPANSHU GUPTA
 
Clojure: The Art of Abstraction
Clojure: The Art of AbstractionClojure: The Art of Abstraction
Clojure: The Art of AbstractionAlex Miller
 
Java Stack Data Structure.pptx
Java Stack Data Structure.pptxJava Stack Data Structure.pptx
Java Stack Data Structure.pptxvishal choudhary
 
Collections in Java
Collections in JavaCollections in Java
Collections in JavaKhasim Cise
 

What's hot (20)

Scala - en bedre og mere effektiv Java?
Scala - en bedre og mere effektiv Java?Scala - en bedre og mere effektiv Java?
Scala - en bedre og mere effektiv Java?
 
Python data structures
Python data structuresPython data structures
Python data structures
 
Scala Collections : Java 8 on Steroids
Scala Collections : Java 8 on SteroidsScala Collections : Java 8 on Steroids
Scala Collections : Java 8 on Steroids
 
Java ArrayList Video Tutorial
Java ArrayList Video TutorialJava ArrayList Video Tutorial
Java ArrayList Video Tutorial
 
Collections In Java
Collections In JavaCollections In Java
Collections In Java
 
Collections framework
Collections frameworkCollections framework
Collections framework
 
Scala - en bedre Java?
Scala - en bedre Java?Scala - en bedre Java?
Scala - en bedre Java?
 
Collections in Java Notes
Collections in Java NotesCollections in Java Notes
Collections in Java Notes
 
JDBC Core Concept
JDBC Core ConceptJDBC Core Concept
JDBC Core Concept
 
Java Collections
Java  Collections Java  Collections
Java Collections
 
Practical cats
Practical catsPractical cats
Practical cats
 
SQL Server Select Topics
SQL Server Select TopicsSQL Server Select Topics
SQL Server Select Topics
 
Java collections
Java collectionsJava collections
Java collections
 
Array list
Array listArray list
Array list
 
collection framework in java
collection framework in javacollection framework in java
collection framework in java
 
APPLICATION TO DOCUMENT ALL THE DETAILS OF JAVA CLASSES OF A PROJECT AT ONCE...
APPLICATION TO DOCUMENT ALL THE  DETAILS OF JAVA CLASSES OF A PROJECT AT ONCE...APPLICATION TO DOCUMENT ALL THE  DETAILS OF JAVA CLASSES OF A PROJECT AT ONCE...
APPLICATION TO DOCUMENT ALL THE DETAILS OF JAVA CLASSES OF A PROJECT AT ONCE...
 
Collection Core Concept
Collection Core ConceptCollection Core Concept
Collection Core Concept
 
Clojure: The Art of Abstraction
Clojure: The Art of AbstractionClojure: The Art of Abstraction
Clojure: The Art of Abstraction
 
Java Stack Data Structure.pptx
Java Stack Data Structure.pptxJava Stack Data Structure.pptx
Java Stack Data Structure.pptx
 
Collections in Java
Collections in JavaCollections in Java
Collections in Java
 

Viewers also liked

OOP - Nested If & Else If
OOP - Nested If & Else IfOOP - Nested If & Else If
OOP - Nested If & Else IfSiska Amelia
 
PBO - Inheritance 1
PBO - Inheritance 1PBO - Inheritance 1
PBO - Inheritance 1Siska Amelia
 
T5 - Query Lanjutan [3]
T5 - Query Lanjutan [3]T5 - Query Lanjutan [3]
T5 - Query Lanjutan [3]Siska Amelia
 
PBO - Lapres Enkapsulasi
PBO - Lapres EnkapsulasiPBO - Lapres Enkapsulasi
PBO - Lapres EnkapsulasiSiska Amelia
 
Laporan resmi praktikum 3 DNS Server
Laporan resmi praktikum 3 DNS ServerLaporan resmi praktikum 3 DNS Server
Laporan resmi praktikum 3 DNS ServerSiska Amelia
 
Laporan Resmi Praktikum Administrasi Jaringan
Laporan Resmi Praktikum Administrasi JaringanLaporan Resmi Praktikum Administrasi Jaringan
Laporan Resmi Praktikum Administrasi JaringanSiska Amelia
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekKuncara Laksana
 

Viewers also liked (8)

OOP - Nested If & Else If
OOP - Nested If & Else IfOOP - Nested If & Else If
OOP - Nested If & Else If
 
Lapres prak12
Lapres prak12Lapres prak12
Lapres prak12
 
PBO - Inheritance 1
PBO - Inheritance 1PBO - Inheritance 1
PBO - Inheritance 1
 
T5 - Query Lanjutan [3]
T5 - Query Lanjutan [3]T5 - Query Lanjutan [3]
T5 - Query Lanjutan [3]
 
PBO - Lapres Enkapsulasi
PBO - Lapres EnkapsulasiPBO - Lapres Enkapsulasi
PBO - Lapres Enkapsulasi
 
Laporan resmi praktikum 3 DNS Server
Laporan resmi praktikum 3 DNS ServerLaporan resmi praktikum 3 DNS Server
Laporan resmi praktikum 3 DNS Server
 
Laporan Resmi Praktikum Administrasi Jaringan
Laporan Resmi Praktikum Administrasi JaringanLaporan Resmi Praktikum Administrasi Jaringan
Laporan Resmi Praktikum Administrasi Jaringan
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
 

Similar to Laporan Resmi Algoritma dan Struktur Data :

We will be making 4 classes Main - for testing the code Hi.pdf
 We will be making 4 classes Main - for testing the code Hi.pdf We will be making 4 classes Main - for testing the code Hi.pdf
We will be making 4 classes Main - for testing the code Hi.pdfanithareadymade
 
Object Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsObject Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsMuhammadTalha436
 
CMSC 350 HOMEWORK 1
CMSC 350 HOMEWORK 1CMSC 350 HOMEWORK 1
CMSC 350 HOMEWORK 1HamesKellor
 
Java class 3
Java class 3Java class 3
Java class 3Edureka!
 
Advance java kvr -satya
Advance java  kvr -satyaAdvance java  kvr -satya
Advance java kvr -satyaSatya Johnny
 
Use of Apache Commons and Utilities
Use of Apache Commons and UtilitiesUse of Apache Commons and Utilities
Use of Apache Commons and UtilitiesPramod Kumar
 
Advanced java jee material by KV Rao sir
Advanced java jee material by KV Rao sirAdvanced java jee material by KV Rao sir
Advanced java jee material by KV Rao sirAVINASH KUMAR
 
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Class loader basic
Class loader basicClass loader basic
Class loader basic명철 강
 

Similar to Laporan Resmi Algoritma dan Struktur Data : (20)

We will be making 4 classes Main - for testing the code Hi.pdf
 We will be making 4 classes Main - for testing the code Hi.pdf We will be making 4 classes Main - for testing the code Hi.pdf
We will be making 4 classes Main - for testing the code Hi.pdf
 
Java Collections Tutorials
Java Collections TutorialsJava Collections Tutorials
Java Collections Tutorials
 
Computer programming 2 -lesson 4
Computer programming 2  -lesson 4Computer programming 2  -lesson 4
Computer programming 2 -lesson 4
 
Inheritance
InheritanceInheritance
Inheritance
 
Object Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ ExamsObject Oriented Solved Practice Programs C++ Exams
Object Oriented Solved Practice Programs C++ Exams
 
CMSC 350 HOMEWORK 1
CMSC 350 HOMEWORK 1CMSC 350 HOMEWORK 1
CMSC 350 HOMEWORK 1
 
Java class 3
Java class 3Java class 3
Java class 3
 
Adv kvr -satya
Adv  kvr -satyaAdv  kvr -satya
Adv kvr -satya
 
Advance java kvr -satya
Advance java  kvr -satyaAdvance java  kvr -satya
Advance java kvr -satya
 
Use of Apache Commons and Utilities
Use of Apache Commons and UtilitiesUse of Apache Commons and Utilities
Use of Apache Commons and Utilities
 
Object oriented concepts
Object oriented conceptsObject oriented concepts
Object oriented concepts
 
Advanced java jee material by KV Rao sir
Advanced java jee material by KV Rao sirAdvanced java jee material by KV Rao sir
Advanced java jee material by KV Rao sir
 
JAVA CONCEPTS
JAVA CONCEPTS JAVA CONCEPTS
JAVA CONCEPTS
 
Manual tecnic sergi_subirats
Manual tecnic sergi_subiratsManual tecnic sergi_subirats
Manual tecnic sergi_subirats
 
OOP Lab Report.docx
OOP Lab Report.docxOOP Lab Report.docx
OOP Lab Report.docx
 
Core & Advance Java Training For Beginner-PSK Technologies Pvt. Ltd. Nagpur
Core & Advance Java Training For Beginner-PSK Technologies Pvt. Ltd. NagpurCore & Advance Java Training For Beginner-PSK Technologies Pvt. Ltd. Nagpur
Core & Advance Java Training For Beginner-PSK Technologies Pvt. Ltd. Nagpur
 
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
Lecture Notes
Lecture NotesLecture Notes
Lecture Notes
 
Class loader basic
Class loader basicClass loader basic
Class loader basic
 
Java custom annotations example
Java custom annotations exampleJava custom annotations example
Java custom annotations example
 

More from Siska Amelia

T4 - Query Lanjutan [2]
T4 - Query Lanjutan [2]T4 - Query Lanjutan [2]
T4 - Query Lanjutan [2]Siska Amelia
 
T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]Siska Amelia
 
T2 - Desain Basis Data
T2 - Desain Basis DataT2 - Desain Basis Data
T2 - Desain Basis DataSiska Amelia
 
Waterfall Process Model
Waterfall Process ModelWaterfall Process Model
Waterfall Process ModelSiska Amelia
 
PBO - Inheritance 2
PBO - Inheritance 2PBO - Inheritance 2
PBO - Inheritance 2Siska Amelia
 
PBO - Lapres Mengelola Kelas
PBO - Lapres Mengelola KelasPBO - Lapres Mengelola Kelas
PBO - Lapres Mengelola KelasSiska Amelia
 
OOP - Decision: If & If..Else
OOP - Decision: If & If..ElseOOP - Decision: If & If..Else
OOP - Decision: If & If..ElseSiska Amelia
 
Contoh Desain Web yang Baik dan Buruk
Contoh Desain Web yang Baik dan BurukContoh Desain Web yang Baik dan Buruk
Contoh Desain Web yang Baik dan BurukSiska Amelia
 
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionSiska Amelia
 

More from Siska Amelia (12)

T4 - Query Lanjutan [2]
T4 - Query Lanjutan [2]T4 - Query Lanjutan [2]
T4 - Query Lanjutan [2]
 
T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]T3 – Query Lanjutan [1]
T3 – Query Lanjutan [1]
 
T2 - Desain Basis Data
T2 - Desain Basis DataT2 - Desain Basis Data
T2 - Desain Basis Data
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Waterfall Process Model
Waterfall Process ModelWaterfall Process Model
Waterfall Process Model
 
PBO - Inheritance 2
PBO - Inheritance 2PBO - Inheritance 2
PBO - Inheritance 2
 
PBO - Lapres Mengelola Kelas
PBO - Lapres Mengelola KelasPBO - Lapres Mengelola Kelas
PBO - Lapres Mengelola Kelas
 
Sistem Operasi
Sistem OperasiSistem Operasi
Sistem Operasi
 
Sistem Operasi -
Sistem Operasi - Sistem Operasi -
Sistem Operasi -
 
OOP - Decision: If & If..Else
OOP - Decision: If & If..ElseOOP - Decision: If & If..Else
OOP - Decision: If & If..Else
 
Contoh Desain Web yang Baik dan Buruk
Contoh Desain Web yang Baik dan BurukContoh Desain Web yang Baik dan Buruk
Contoh Desain Web yang Baik dan Buruk
 
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - Collection
 

Laporan Resmi Algoritma dan Struktur Data :

  • 1. 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 "NRPt:"+nrp+"ttNamat: "+nama+"ttIPKt: "+IPK+"n"; } @Override public int compareTo(Object o) {
  • 2. 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)); } }
  • 3. 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 "Buaht: "+namabuah+"ttStockt: "+stock+"n"; }
  • 4. @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)); } }
  • 5. 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;
  • 6. } 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: