algotitma dan struktur algoritma - collection
TRANSCRIPT
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 1
LAPORAN RESMI
PRAKTIKUM 3 : COLLECTION
A. TUJUAN PEMBELAJARAN
1. Memahami cara penyimpanan objek menggunakan Collection. 2. Mengetahui pengelompokan dari Collection. 3. Mengetahui perbedaan dari interface Set, List, dan Map.
4. Mengetahui penggunaan class-class dari interface Set, List, dan Map. 5. Mengetahu cara penggunaan iterasi dan Enumeration.
B. LAPORAN RESMI
1. Latihan 1 : Penerapan konsep himpunan pada interface Set
Terdapat sebuah himpunan
A = {1,2,3,4,5}
B = {5,6,7,8,9,10} Menggunakan class yang mengimplementasikan Interface Set, dapatkah output seperti:
– A – B – A ∩ B
– A U B – A C B
Source Code:
import java.util.*;
public class latihan1 {
public static void main(String[] args) {
Set y = new HashSet();
y.add("1");
y.add("2");
y.add("3");
y.add("4");
y.add("5");
Set s = new HashSet();
s.add("5");
s.add("6");
s.add("7");
s.add("8");
s.add("9");
s.add("10");
Set selisih = new TreeSet(y);
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 2
selisih.removeAll(s);
System.out.println("A selisih B: "+selisih);
Set irisan = new TreeSet(y);
irisan.retainAll(s);
System.out.println("A irisan B: "+irisan);
Set gabungan = new TreeSet(y);
gabungan.addAll(s);
System.out.println("A gabungan B: "+gabungan);
Set sub = new TreeSet(y);
sub.containsAll(s);
System.out.println("A subset B: "+sub);
}
}
Output:
2. Latihan 2 : Memahami penggunaan interface List. Buatlah obyek List, dengan data bertipe String lakukan langkah berikut :
• Tampilkan data yang terdapat pada list. • Baliklah data yang terdapat pada list dan tampilkan.
• Acaklah data tersebut dan tampilkan. • Urutkan data tersebut dan tampilkan.
Source Code:
import java.util.*; import static java.util.Collections.reverse;
import static java.util.Collections.shuffle; import static java.util.Collections.sort;
public class latihan2 { public static void main(String[] args) {
List list = new ArrayList(); list.add("H&M");
list.add("Forever21"); list.add("TOPSHOP"); list.add("PRIMARK");
list.add("MAC");
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 3
list.add("HushPuppies"); System.out.println("List: "+list);
reverse(list); System.out.println("Backward: "+list);
shuffle(list); System.out.println("Shuffle: "+list); sort(list);
System.out.println("Sort: "+list);
} }
Output:
3. Latihan 3 : Memahami penggunaan interface List (2)
Buatlah class Mahasiswa dengan informasi nrp dan nama(bertipe String). Buatlah obyek List, dengan data bertipe String lakukan langkah berikut :
Tampilkan data yang terdapat pada list.
Baliklah data yang terdapat pada list dan tampilkan.
Acaklah data tersebut dan tampilkan.
Urutkan data tersebut, jangan lupa untuk mengimplementasikan interface
Comparable/Comparator pada class Mahasiswa dan tampilkan.
Source Code:
import java.util.*;
import java.util.*;
public class latihan3 {
public static void main(String[] args) {
String[] nama = {"Siska","Alfredo","Zoe","Tanya"};
int[] nrp = {2110121034,2110121026,2110121024,2110121030};
ArrayList datanama = new ArrayList();
ArrayList datanrp = new ArrayList();
for(int i=0;i<nama.length;i++){
datanama.add(nama[i]);
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 4
datanrp.add(nrp[i]);
}
System.out.println("-List Data-\nNama: "+datanama+"\nNRP: "+datanrp+"\n");
Collections.reverse(datanama);
Collections.reverse(datanrp);
System.out.println("\n-Dibalik-\nNama: "+datanama+"\nNRP: "+datanrp+"\n");
Collections.shuffle(datanama);
Collections.shuffle(datanrp);
System.out.println("\n-Acak-\nNama: "+datanama+"\nNRP: "+datanrp+"\n");
Collections.sort(datanama);
Collections.sort(datanrp);
System.out.println("\n-Urut-\nNama: "+datanama+"\nNRP: "+datanrp+"\n");
}
}
Output:
4. Latihan 4 : Penggunaan class LinkedList pada interface List.
Buatlah dua obyek List (ArrayList) yaitu obyek warna dan warnaDihapus. Obyek ini
berisi warna-warna, buatlah sebagian ada yang sama. Lakukan penghapusan data yang terdapat pada obyek warna yang sama dengan data warna yang terdapat pada obyek warnaDihapus, selanjutnya tampilkan. Warna :
[MAGENTA, RED, WHITE, BLUE, CYAN]
Warna yang dihapus :
[RED, WHITE, BLUE]
Output :
Warna :
[MAGENTA, CYAN]
Source Code:
import java.util.*;
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 5
public class latihan4 {
public static void main(String[] args) {
Object[] color = {"MAGENTA","RED","WHITE","BLUE","CYAN"};
Object[] deletedColor = {"RED","WHITE","BLUE"};
List warna = new ArrayList();
List warnadihapus = new ArrayList();
warna.addAll(Arrays.asList(color));
warnadihapus.addAll(Arrays.asList(deletedColor));
System.out.println("Warna:\n"+warna);
System.out.println("\nWarna yang dihapus:\n"+warnadihapus);
warna.removeAll(warnadihapus);
System.out.println("\nWarna tersisa:\n"+warna);
}
}
Output:
5. Latihan 5 : Pengurutan data mahasiswa berdasarkan nilai.
Buatlah class Mahasiswa dengan informasi :
Nrp (String)
Nama(String)
Nilai(Float) Terdapat 10 data mahasiswa yang tersimpan dalam queue, set nilai secara random
antara 60-100, lakukan pengurutan data mahasiswa berdasarkan nilai tersebut ! Source Code:
import java.util.*;
public class Latihan5 {
public static void main(String[] args) {
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 6
String[] nama = {"Siska","Amelia","Melinda","Febrianti"};
String[] nrp = {"123","124","125","126"};
PriorityQueue<Mahasiswa> mahasiswa = new PriorityQueue<Mahasiswa>(3,
new Comparator<Mahasiswa>(){
@Override
public int compare(Mahasiswa s, Mahasiswa s1) {
int val = 0;
if(s.getNilai() > s1.getNilai()) {
val = 1;
}else if((s.getNilai() == s1.getNilai())) {
val = 0;
}else{
val = -1;
}
return val;
}
});
Random tes = new Random();
for(int i=0;i<nrp.length;i++){
mahasiswa.add(new Mahasiswa(nama[i], nrp[i],tes.nextInt(40)+60));
}
System.out.println(mahasiswa);
}
}
Output:
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 7
6. Latihan 6 : Mengetahui penggunaan class TreeMap
Input : televisi kursi televisi kursi meja televisi monitor. Output : kursi = 2 meja = 1 monitor = 1 televisi = 3
Source Code:
import java.util.*;
public class Latihan6 {
public static void main(String[] args) {
String kata;
Scanner input = new Scanner(System.in);
System.out.print("Input: ");
kata = input.nextLine();
System.out.println("Output: ");
TreeMap<String, Integer> word = new TreeMap();
for(String y : kata.split(" ")){
if(word.containsKey(y)){
word.put(y, word.get(y).intValue()+1);
}
else{
word.put(y,1);
}
}
System.out.println(word);
}
}
Output:
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 8
7. Mengetahui penggunaan class TreeMap
Melanjutkan latihan 1, tampilkan :
Tampilkan nilai terendah dan tertinggi Output :
Nilai terendah : Meja = 1
Nilai tertinggi : Televisi = 3
Source Code:
import java.util.*;
public class Latihan7 {
public static void main(String[] args) {
String kata;
Scanner input = new Scanner(System.in);
System.out.print("Input: ");
kata = input.nextLine();
System.out.println("Output: ");
TreeMap<String, Integer> word = new TreeMap();
for(String y : kata.split(" ")){
if(word.containsKey(y)){
word.put(y, word.get(y).intValue()+1);
}
else
word.put(y,1);
}
class Latihan7Comparator implements Comparator<Map.Entry<String,Integer>>{
@Override
public int compare(Map.Entry<String, Integer> t, Map.Entry<String, Integer> t1) {
return t.getValue().compareTo(t1.getValue());
}
}
System.out.println("Nilai tertinggi\t: "+Collections.max(word.entrySet(), new
Latihan7Comparator()));
System.out.println("Nilai terendah\t: "+Collections.min(word.entrySet(), new Latihan7Comparator()));
System.out.println("Kata berawalan m: "+word.tailMap("m"));
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 9
}
}
Output:
8. Latihan 8 : Ibukota propinsi di Indonesia
Terdapat objek TreeMap 1 yang berisi pulau(sebagai key) beserta propinsi-
propinsinya(value). Terdapat objek TreeMap 2 yang berisi propinsi(sebagai key) beserta ibukotanya(value). Tampilkan :
Ibukota propinsi yang terdapat di pulau Sumatera
Ibukota propinsi yang terdapat di pulau Jawa
Ibukota propinsi yang berawalan S (Sumatera Utara, Sumatera Barat, Sumatera Selatan, Sulawesi Barat, Sulawesi Tengah, Sulawesi Utara, Sulawesi Tenggara,
Sulawesi Selatan).
Source Code:
import java.util.*; public class Latihan8 {
public static void main(String[] args) { TreeMap<String, TreeMap<String, String>> island = new TreeMap();
TreeMap<String, String> provinsi = new TreeMap(); island.put("Sumatera", new TreeMap<String, String>());
TreeMap<String, String> suma = island.get("Sumatera"); suma.put("NAD","Banda Aceh");
suma.put("Sumatera Utara", "Medan"); suma.put("Sumatera Barat", "Padang"); suma.put("Kepulauan Riau", "Tanjung Pinang");
suma.put("Riau", "Pekan Baru"); suma.put("Jambi", "Jambi");
suma.put("Sumatera Selatan", "Palembang"); suma.put("Bangka Belitung", "Pangkal Pinang"); suma.put("Bengkulu", "Bengkulu");
suma.put("Lampung", "Bandar Lampung"); System.out.println("Ibukota propinsi yang terdapat di Pulau Sumatera : \n");
System.out.println(toStringWrapper(island.get("Sumatera"))); island.put("Jawa", new TreeMap<String, String>());
TreeMap<String, String> java = island.get("Jawa"); java.put("DKI Jakarta","Jakarta");
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 10
java.put("Jawa Barat","Bandung"); java.put("Jawa Timur","Surabaya");
java.put("Jawa Tengah","Semarang"); java.put("DI Yogyakrta","Yogyakarta");
java.put("Banten","Serang"); System.out.println("\nIbukota propinsi yang terdapat pada Pulau Jawa : \n"); System.out.println(toStringWrapper(island.get("Jawa")));
island.put("Sulawesi", new TreeMap<String, String>());
TreeMap<String, String> sula = island.get("Sulawesi"); sula.put("Sulawesi Utara","Manado"); sula.put("Sulawesi Tengah","Palu");
sula.put("Sulawesi Barat","Kota Mamuju"); sula.put("Sulawesi Selatan","Makassar");
sula.put("Sulawesi Tenggara","Kendari"); sula.put("Gorontalo","Gorontalo");
System.out.println("\nIbukota propinsi yang berawalan 'S' : "); for(TreeMap<String, String> map : island.values()){
SortedMap<String, String> list = map.tailMap("S"); System.out.println(list.size() <= 0 ? ("") : toStringWrapper(list)); }
} private static String toStringWrapper(Object obj) {
return (obj.toString().replace("{", "\t").replace("}", "").replace(", ", "\n\t").replace("=", " = ")); }
}
SISKA AMELIA | 2103131034 | 2 D3 IT B | PENS | 11
Output: