Praktikum KPLBO Collection II Oleh : Ade Sukendar [[email protected]] Laboratorium Jurusan Teknik Informatika Universitas Pasundan 2014 Latihan 1 : Latihan praktikum ini bertujuan untuk memberikan contoh penggunaan collection dengan menggunakan kelas ArrayList. Objek yang dikelola oleh arraylist adalah MataKuliah (yang digunakan di pertemuan 9). Tulislah kode program dibawah ini dan perhatikan komentar yang ada di kode program tersebut. Buatlah kelas ContohArrayList seperti di bawah ini : ContohArrayList.java package p10.a; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import p9.b.MataKuliah; public class ContohArrayList { public static void main(String[] args) { // create objek ArrayList // cara 1 ArrayList<MataKuliah> listMatakuliah = new ArrayList<MataKuliah>(); // cara 2 //List<MataKuliah> listMatakuliah = new ArrayList<MataKuliah>(); // create objek matakuliah yaang akan dikelola oleh objek ArrayList MataKuliah mk1 = new MataKuliah("IF123", "Alpro1", 4, 'A'); MataKuliah mk2 = new MataKuliah("IF124", "Alpro2", 3, 'B'); MataKuliah mk3 = new MataKuliah("IF125", "KPLBO", 3, 'B'); MataKuliah mk4 = new MataKuliah("IF126", "RKPPL", 2, 'A'); // tambahkan objek matakuliah ke arraylist listMatakuliah.add(mk1); listMatakuliah.add(mk2); listMatakuliah.add(mk3); listMatakuliah.add(mk4); // tampilkan objek matakuliah dari arraylist (cara 1) for (MataKuliah mk : listMatakuliah) { System.out.println(mk.getKode()+ ","+ mk.getIndeksNilai()); } //atau (cara 2) //Iterator<MataKuliah> iteratorMK = listMatakuliah.iterator(); //while(iteratorMK.hasNext()) { // MataKuliah mk = iteratorMK.next(); // System.out.println(mk.getKode()+ ","+ mk.getIndeksNilai()); //} } } Running, kemudian amati yang terjadi !!! Ubahlah kode program diatas sehingga sesuai spesifikasi dibawah ini : a. Gunakanlah cara ke-2 untuk membuat objek ArrayList, running dan amati ! b. Tampilkan semua atribut objek Matakuliah dengan mengoveride method toString objek Matakuliah ! c. Gunakanlah cara ke-2 untuk mengkases objek dalam arraylist dan menampilkannya ke layar, running dan amati ! 2 Latihan 2 : Latihan ke dua ini yaitu melanjutkan dari latihan yang pertama dengan menambahkan kode program untuk membungkus proses terkait dengan arraylist (pendekatan yang ke-3 dalam slide materi). Buatlah kelas RataMatakuliah seperti di bawah ini : RataMatakuliah.java package p10.b; import java.util.ArrayList; import java.util.List; import p9.b.MataKuliah; public class RataMataKuliah { private List<MataKuliah> listMK; public RataMataKuliah() { listMK = new ArrayList<>(); } public void addMatakuliah(MataKuliah mk) { listMK.add(mk); } /** * Menghitung rata-rata nilai indeks matakuliah yang * di simpan didalam arraylist * * @return nilai rata-rata matakuliah */ public double hitungRata2Nilai() { return 0; // lengkapi...... } /** * Menghitung nilai indeks total matakuliah yang * di simpan didalam arraylist * * @return nilai indeks total matakuliah */ private int hitungPembilang() { return 0; // lengkapi...... } /** * Menghitung jumlah objek matakuliah yang berada * di dalam arraylist * * @return jumlah objek matakuliah */ private int hitungPenyebut() { return 0; // lengkapi...... } /** * Menampilkan semua atribut matakuliah yang * berada di dalam arraylist ke layar * */ private void tampilMataKuliah() { // lengkapi...... } /** * Menghitung jumlah objek matakuliah yang berada * di dalam arraylist * * @return jumlah objek matakuliah */ 3 public int size() { return 0; // lengkapi...... } } Lengakapi implementasi dari program, kemudian running dan amati yang terjadi !!! Buatlah kelas RataMatakuliahMain seperti di bawah ini : RataMatakuliahMain.java package p10.b; import p9.b.MataKuliah; public class RataMataKuliahMain { public static void main(String[] args) { RataMataKuliah rmk = new RataMataKuliah(); MataKuliah MataKuliah MataKuliah MataKuliah MataKuliah mk1 mk2 mk3 mk4 mk5 = = = = = new new new new new MataKuliah("IF123", MataKuliah("IF124", MataKuliah("IF125", MataKuliah("IF126", MataKuliah("IF127", "Alpro1", 4, 'A'); "Alpro2", 3, 'B'); "KPLBO", 3, 'B'); "RKPPL", 2, 'A'); "Matematika", 2, 'B'); rmk.addMatakuliah(mk1); rmk.addMatakuliah(mk2); rmk.addMatakuliah(mk3); rmk.addMatakuliah(mk4); rmk.tampilMataKuliah(); System.out.println(rmk.size()); // ditambahkan satu objek matakuliah mk5 // tampilkan ukuran objek di dalam arraylist System.out.println("Nilai Rata-rata : "+ rmk.hitungRata2Nilai()); } } Running dan amati yang terjadi !!! Tambahkan kode program yang diberi tanda komentar ! Run dan amati ! Latihan 3 : Latihan ke tiga yaitu latihan penggunaan class collection dengan menggunakan tipe Map. Map yang digunakan dalam contoh ini yaitu HashMap dan TreeMap. Contoh ini ingin menunjukkan perbedaanya antara type HashMap dan TreeMap. Buatlah kelas HashTree seperti di bawah ini : HashTree.java package p10.c; import java.util.HashMap; import java.util.TreeMap; public class HashTree { public static void main(String[] args) { HashMap<String, String> hashMap = new HashMap<String, String>(); TreeMap<String, String> treeMap = new TreeMap<String, String>(); 4 hashMap.put("FISH", "FISH"); hashMap.put("DOG", "DOG"); hashMap.put("CAT", "CAT"); hashMap.put("RAT", "RAT"); hashMap.put("ZEBRA", "ZEBRA"); //tambahkan String dengan urutan yang sama ke treemap treeMap.put("FISH", "FISH"); treeMap.put("DOG", "DOG"); treeMap.put("CAT", "CAT"); treeMap.put("RAT", "RAT"); treeMap.put("ZEBRA", "ZEBRA"); System.out.println("Menelusuri HashMap"); //Menggunakan foreach, ambil nilainya saja for (String string : hashMap.values()) { System.out.println(string); } System.out.println(); System.out.println("Menelusuri TreeMap"); //Menggunakan foreach, ambil nilainya saja for (String string : treeMap.values()) { System.out.println(string); } } } Running, kemudian amati yang terjadi !!! Buatlah contoh seperti diatas namun hanya untuk penggunaan dengan HashMap. Objek yang digunakan adalah seperti latihan sebelumnya yaitu objek MataKuliah. Nilai key object HashMap adalah kode matakuliah dan nilai value-nya adalah objek matakuliah. Prosesnya: masukkan objek-objek matakuliah ke dalam Hashmap kemudian tampilkan ke layar 5