Java Collection Frameworks
Viska Mutiawani dan Kurnia Saputra, Informatika Unsyiah
Collections framework merupakan bentuk algoritma yang digunakan untuk merepresentasikan dan
memanipulasi collections. Semua collections frameworks mengandung hal-hal berikut:
Interfaces: memungkinkan collections dimanipulasi secara independen.
Implementations: merupakan implementasi dari collection interfaces. Dan merupakan struktur
data yang reusable.
Algorithms: merupakan method-method yang dapat digunakan untuk melakukan proses
komputasi tertentu, seperti searching (pencarian) dan sorting (pengurutan), terhadap objek yang
meng-implement collection interfaces. Method-method pada Java Collections Framework
adalah polymorphic: maksudnya nama method yang sama dapat digunakan pada collection
interface yang sesuai. Algoritma pada Java Collections Framework memiliki fungsi yang reusable.
Praktikum ini akan memberikan contoh-contoh penggunaan Java Collection Framework untuk
membangun aplikasi Java.
Durasi waktu: 120 menit
Resources
Collections tutorial from [Link]
Introduction to Collections Framework
Change Log
Latihan
Latihan 1: Build dan run aplikasi yang menggunakan tipe collection "Set"
Latihan 2: Build dan run aplikasi yang menggunakan tipe collection "List"
Latihan 3: Build dan run aplikasi yang menggunakan tipe collection "Map"
Latihan 4: Iterator
Latihan 5: Algoritma Sorting, Searching, Shuffling, Data Manipulation
Tugas
Latihan 1: Build dan run aplikasi yang menggunakan
tipe collection "Set"
Interface Set merupakan sub-interface dari interface Collection. Interface Set tidak membolehkan
duplikasi data di dalam collection. Method yang ada dalam interface Set sama dengan interface
Collection. Method paling penting pada interface Set adalah equals() yang digunakan untuk mengecek
kesamaan objek.
Dua class penting yang ada dalam Java Collections Framework yang meng-implement interface Set
adalah: HashSet dan TreeSet.
HashSet merupakan class yang sering digunakan untuk menyimpan collection yang bebas duplikasi.
Untuk efisiensi, objek yang ditambahkan dalam HashSet, perlu untuk menggunakan method hashCode().
TreeSet merupakan class yang sering digunakan untuk mengekstrak elemen dari collection dalam urutan
tertentu. Agar TreeSet berjalan dengan baik, elemen yang ditambahkannya ke dalamnya harus dapat
diurut. Terkadang lebih mudah untuk menambahkan data ke dalam HashSet baru kemudian dikonversi
ke TreeSet agar mudah diurut.
Untuk mengoptimalkan ruang penyimpanan HashSet, maka kita dapat melakukan tuning initial capacity
dan load factor. Class TreeSet tidak memiliki opsi tuning karena tree selalu dalam kondisi seimbang, dan
memastikan performa log(n) untuk proses insert, hapus dan query.
Materi bahasan:
1. Build dan run aplikasi yang menggunakan HashSet
2. Temukan duplikasi dengan HashSet
3. Temukan duplikasi dengan HasetSet 2
4. Build dan run aplikasi yang menggunakan TreeSet
5. Build dan run aplikasi yang menggunakan LinkedHashSet
6. Set dan polymorphism
(1.1) Build dan run aplikasi yang menggunakan HashSet
HashSet meng-implement interface Set dan memiliki konsep yang sama dengan Hash table (HashMap).
Class ini membolehkan elemen null. Class ini dapat memberikan performa waktu konstan untuk proses
dasar (add, remove, contains and size).
0. Buka IDE NetBeans.
1. Buat projek baru pada NetBeans
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Set-
HashSet-add sebagai nama projek.
Untuk teksfield Create Main Class ketik [Link] (seperti yang muncul pada
IDE).
Klik Finish.
Gambar: Buat projek baru
2. Ubah source code [Link] pada IDE seperti pada Code di bawah. Pelajari code tersebut dan
perhatikan bagian yang dihitamkan.
package sethashsetadd;
import [Link];
public class Main {
public static void main(String[] args) {
// Create HashSet object
HashSet hs = new HashSet(5, 0.5f);
[Link]([Link]("one"));
[Link]([Link]("two"));
[Link]([Link]("three"));
[Link]([Link]("four"));
[Link]([Link]("five"));
// Print out the HashSet object
[Link](hs);
// Add a duplicate item to the HashSet
Boolean b = [Link]("one");
[Link]("Duplicate item allowed = " + b);
[Link](hs);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek Set-HashSet-add dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
true
true
true
true
true
[one, two, five, three, four]
Duplicate item allowed = false
[one, two, five, three, four]
Gambar: Hasil running program Set-HashSet-add
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi
di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-Indo/samples/Set-HashSet-add. Anda dapat
langsung menjalankan file sample tersebut.
4. Sebagai bahan latihan, lakukan hal di bawah:
Buat projek NetBeans dengan nama MyHashSet
Buat objek HashSet dengan kapasital awal 5
Tambahkan objek-objek di bawah ke dalam objek HashSet
o 2 String objek
o 2 MyOwnClass objek (Anda buat [Link] terlebih dahulu)
o 3 Integer objek
Tampilkan isi dari objek HashSet
(1.2) Temukan duplikasi dengan HashSet
1. Buat projek baru pada NetBeans
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Set-
HashSet-FindDup sebagai nama projek.
Untuk teksfield Create Main Class ketik [Link] (seperti yang muncul
pada IDE).
Klik Finish.
2. Ubah source code [Link] pada IDE seperti pada Code di bawah. Pelajari code tersebut dan
perhatikan bagian yang dihitamkan.
package sethashsetfinddup;
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Set up test data
String name[] = {
new String("Sang"),
new String("Shin"),
new String("Boston"),
new String("Shin")
};
// Create HashSet object instance and
// assign it to a variable of Set type.
Set s = new HashSet();
for (int i=0; i<[Link]; i++)
if ()
[Link]("Duplicate detected: "+name[i]);
[Link]([Link]()+" distinct words detected: "+s);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek Set-HashSet-FindDup dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Duplicate detected: Shin
3 distinct words detected: [Shin, Sang, Boston]
Gambar: Hasil running program Set-HashSet-FindDup
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Set-HashSet-FindDup. Anda dapat langsung menjalankan file sample tersebut.
4. Sebagai bahan latihan, lakukan hal di bawah:
Ubah file [Link] dengan hal-hal berikut:
o Buat array String dengan nama myownnames[] dan isinya ada yang sama.
o Buat objek HashSet yang berisi array tersebut dan tampilkan.
(1.3) Temukan duplikasi dengan HashSet 2
Pada latihan berikut, anda akan mencoba menggunakan method removeAll().
1. Buat projek baru pada NetBeans
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Set-
HashSet-FindDup2 sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] pada IDE seperti pada Code di bawah. Pelajari code tersebut dan
perhatikan bagian yang dihitamkan.
package sethashsetfinddup2;
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Set up test data
String name[] = {
new String("Sang"),
new String("Shin"),
new String("Boston"),
new String("Shin")
};
Set uniques = new HashSet();
Set dups = new HashSet();
for (int i=0; i<[Link]; i++)
if ()
[Link](name[i]);
// Remove items that duplicates
[Link](dups);
[Link]("Unique words: " + uniques);
[Link]("Duplicate words: " + dups);
}
}
Gambar: [Link] yang diubah
3. Build dan run projek
Klik kanan projek Set-HashSet-FindDup2 dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Unique words: [Sang, Boston]
Duplicate words: [Shin]
Gambar: Hasil running program Set-HashSet-FindDup2
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Set-HashSet-FindDup2. Anda dapat langsung menjalankan file sample tersebut.
4. Sebagai bahan latihan, lakukan hal di bawah:
Ubah file [Link] dengan hal-hal berikut:
o Buat array String dengan nama myownnames[] dan isinya ada yang sama.
o Buat 2 buah objek HashSet dan gunakan method removeAll() untuk menghapus
item yang duplikat dari set asal.
o Tampilkan kedua objek HashSet tersebut.
(1.4) Build dan run aplikasi yang menggunakan TreeSet
Class TreeSet meng-implement interface Set dan memiliki konsep yang sama dengan TreeMap. Class ini
akan memastikan elemen tersusun secara terurut. Class ini dapat memberikan performa waktu log(n)
untuk operasi dasar (add, remove and contains).
1. Buat projek baru pada NetBeans
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Set-
TreeSet sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package settreeset;
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
Set ts = new TreeSet();
[Link]("one");
[Link]("two");
[Link]("three");
[Link]("four");
[Link]("three");
[Link]("Members from TreeSet = " + ts);
Set ts2 = new TreeSet();
[Link](1);
[Link](2);
[Link](3);
[Link](4);
[Link](2);
[Link]("Members from TreeSet = " + ts2);
}
}
Code: [Link] yang telah diubah
3. Build dan run projek
Klik kanan projek Set-TreeSet dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
[Members from TreeSet = [four, one, three, two]
Members from TreeSet = [1, 2, 3, 4]
Gambar: Hasil running program Set-TreeSet
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Set-TreeSet. Anda dapat langsung menjalankan file sample tersebut.
(1.5) Build dan run aplikasi yang menggunakan LinkedHashSet
1. Buat projek baru pada NetBeans
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Set-
LinkedHashSet sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] pada IDE seperti pada Code di bawah. Pelajari code tersebut dan
perhatikan bagian yang dihitamkan.
package setlinkedhashset;
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
Set ts = new LinkedHashSet();
[Link]("one");
[Link]("two");
[Link]("three");
[Link]("four");
[Link]("two");
[Link]("Members from LinkedHashSet = " + ts);
Set ts2 = new LinkedHashSet();
[Link](2);
[Link](1);
[Link](3);
[Link](3);
[Link]("Members from LinkedHashSet = " + ts2);
}
}
Code: [Link] yang telah diubah
3. Build dan run projek
Klik kanan projek Set-LinkedHashSet dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Members from LinkedHashSet = [one, two, three, four]
Members from LinkedHashSet = [2, 1, 3]
Gambar: Hasil dari running program Set-LinkedHashSet
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Set-LinkedHashSet. Anda dapat langsung menjalankan file sample tersebut.
(1.6) Set dan polymorphism
1. Buat projek baru pada NetBeans
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Set-
Polymorphism sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] pada IDE seperti pada Code di bawah. Pelajari code tersebut dan
perhatikan bagian yang dihitamkan.
package setpolymorphism;
import [Link];
import [Link];
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Set up test data
String numbers[] = {
new String("2"),
new String("3"),
new String("4"),
new String("1"),
new String("2")
};
Set s = new HashSet();
[Link](s, numbers);
s = new TreeSet();
[Link](s, numbers);
s = new LinkedHashSet();
[Link](s, numbers);
}
}
Code: [Link] yang telah diubah
3. Ubah [Link].
package setpolymorphism;
import [Link];
public class MyOwnUtilityClass {
public static void checkDuplicate(Set s, String[] numbers){
for (int i=0; i<[Link]; i++)
if ()
[Link]("Set type = " + [Link]().getName() + " " + s);
}
}
Code: [Link]
4. Build dan run projek
Klik kanan projek Set-Polymorphism dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Set type = [Link] [3, 2, 4, 1]
Set type = [Link] [1, 2, 3, 4]
Set type = [Link] [2, 3, 4, 1]
Gambar: Hasil running program Set-Polymorphism
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Set-Polymorphism. Anda dapat langsung menjalankan file sample tersebut.
Pada latihan yang anda lakukan di atas, anda telah mempelajari beberapa class yang berkaitan dengan
interface Set yaitu HashSet, TreeSet, dan LinkedHashSet.
Latihan 2: Build dan run aplikasi yang menggunakan
tipe collection "List"
Interface List merupakan sub-interface dari interface Collection. Interface List digunakan untuk
mengkoleksi data dalam bentuk terurut dan memboleh duplikasi. Interface List menambahkan
operasi yang berkaitan dengan posisi.
Dua class penting yang ada dalam Java Collections Framework yang meng-implement interface List
adalah: ArrayList dan LinkedList.
Class mana yang anda pilih tergantung keperluan anda. Jika anda perlu List yang dapat menambahkan
dan menghapus data dimana saja (random access) maka anda dapat menggunakan ArrayList. Namun
jika anda perlu List yang dapat menambah dan menghapus data di sekitar tengah-tengah dan
mengaksesnya secara sekuensial, maka LinkedList adalah pilihan anda.
ArrayList menyimpan data seperti array (diakses dengan index) namun ukurannya dapat
bertambah secara fleksibel. Elemen yang dapat dimasukkan dalam ArrayList bisa bermacam-
macam, termasuk null. ArrayList bisa disamakan dengan class Vector namun bedanya ArrayList ini
unsynchronized. Operasi size, isEmpty, get, set, iterator, dan listIterator berjalan dalam waktu
konstan dan lebih cepat dari LinkedList.
LinkedList merupakan implementasi dari algoritma LinkedList yang anda pelajari di Struktur
data.
1. Build dan run aplikasi yang menggunakan ArrayList
2. Build dan run aplikasi lain yang menggunakan ArrayList
3. Build dan run aplikasi yang menggunakan LinkedList
(2.1) Build dan run aplikasi yang menggunakan ArrayList
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik List-
ArrayList sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package listarraylist;
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Create ArrayList object with capacity of 2 elements
ArrayList al = new ArrayList(2);
[Link](al+", size = "+[Link]());
// Add items to the ArrayList
[Link]("R");
[Link]("U");
[Link]("O");
[Link](new String("x"));
[Link](2, new Integer(10));
[Link](al+", size = " + [Link]());
// Remove item
[Link]("U");
[Link](al+", size = " + [Link]());
// Check if the list contains the specified element
Boolean b = [Link]("x");
[Link]("The list contains x = " + b);
b = [Link]("p");
[Link]("The list contains p = " + b);
b = [Link](new Integer(10));
[Link]("The list contains Integer of 10 = " + b);
// Create ListIterator and iterate entries in it
ListIterator li = [Link]();
while ([Link]())
[Link]("From ListIterator = " + [Link]());
// Create Object array from ArrayList
Object a[] = [Link]();
for (int i=0; i<[Link]; i++)
[Link]("From an Array = " + a[i]);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek List-ArrayList dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
[], size = 0
[R, U, 10, O, x], size = 5
[R, 10, O, x], size = 4
The list contains x = true
The list contains p = false
The list contains Integer of 10 = true
From ListIterator = R
From ListIterator = 10
From ListIterator = O
From ListIterator = x
From an Array = R
From an Array = 10
From an Array = O
From an Array = x
Gambar: Hasil running program List-ArrayList
4. Sebagai bahan latihan, lakukan hal di bawah:
Buat projek NetBeans dengan nama MyOwnArrayList
Buat objek ArrayList dengan kapasitas awal 5
Tambahkan hal-hal di bawah ke dalam objek ArrayList.
o 2 String objek
o 1 MyOwnClass objek (Anda buat [Link] terlebih dahulu)
o 3 Integer objek
Buat objek Iterator dari objek ArrayList dan iterate isi dari ArrayList tersebut
Kemudian tampilkan isi dari objek ArrayList tersebut
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/List-ArrayList. Anda dapat langsung menjalankan file sample tersebut.
(2.2) Build dan run aplikasi lain yang menggunakan ArrayList
1. Buat projek baru pada NetBeans
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik List-
ArrayList-Deal sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package listarraylistdeal;
import [Link].*;
class Deal {
public static void main(String args[]) {
int numHands = [Link](args[0]);
int cardsPerHand = [Link](args[1]);
// Make a normal 52-card deck
String[] suit = new String[] {"spades", "hearts", "diamonds", "clubs"};
String[] rank = new String[]
{"ace","2","3","4","5","6","7","8","9","10","jack","queen","king"};
List deck = new ArrayList();
for (int i=0; i<[Link]; i++)
for (int j=0; j<[Link]; j++)
[Link](rank[j] + " of " + suit[i]);
[Link](deck);
for (int i=0; i<numHands; i++)
[Link](dealHand(deck, cardsPerHand));
}
public static List dealHand(List deck, int n) {
int deckSize = [Link]();
List handView = [Link](deckSize-n, deckSize);
List hand = new ArrayList(handView);
[Link]();
return hand;
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek List-ArrayList-Deal dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
[6 of spades, 4 of hearts, 8 of spades, 8 of hearts]
[ace of spades, 6 of hearts, ace of diamonds, king of clubs]
[jack of hearts, 8 of clubs, 6 of diamonds, jack of diamonds]
Gambar: Hasil running program List-ArrayList-Deal
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/List-ArrayList-Deal. Anda dapat langsung menjalankan file sample tersebut.
(2.3) Build dan run aplikasi yang menggunakan LinkedList
Class LinkedList merupakan implemtasi lain dari interface List. Class ini membolehkan pelbagai macam
data ditambah dalam List, termasuk null. Class LinkedList membolehkan proses get, remove dan insert
dari awal dan akhir LinkedList, sehingga LinkedList dapat digunakan sebagai stack, queue, atau double-
ended queue (deque).
1. Buat projek baru pada NetBeans
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik List-
LinkedList sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package listlinkedlist;
import [Link];
public class Main {
public static void main(String[] args) {
// Create LinkedList object and add 4 Integer objects to it.
LinkedList list = new LinkedList();
[Link](new Integer(1));
[Link](new Integer(2));
[Link](new Integer(3));
[Link](new Integer(1));
[Link](list+", size = "+[Link]());
// Add Integer objects to the beginning and end of the LinkedList object.
[Link](new Integer(0));
[Link](new Integer(4));
[Link](list);
[Link]([Link]() + ", " + [Link]());
[Link]([Link](2)+", "+[Link](3));
// Remove the first and the last objects from the LinkedList object.
[Link]();
[Link]();
[Link](list);
// Remove the first instance of Integer(1) object
[Link](new Integer(1));
[Link](list);
// Add a String and Long objects to the LinkedList
String s = new String("Boston");
[Link](s);
[Link](2, new Long(45L));
[Link](list);
// Get the index of the "Boston" String object
[Link]("Index of Boston String = " + [Link](s));
// Remove the 3rd object in the Linked List
[Link](2);
[Link](list);
// Set the value of the second item to "one"
[Link](1, "one");
[Link](list);
// Clone the LinkedList object
LinkedList clonedLinkedList = (LinkedList) [Link]();
[Link](0, new String("Cloned LinkedList"));
[Link](0, new String("Original LinkedList"));
[Link](list);
[Link](clonedLinkedList);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek List-LinkedList dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
[1, 2, 3, 1], size = 4
[0, 1, 2, 3, 1, 4]
0, 4
2, 3
[1, 2, 3, 1]
[2, 3, 1]
[2, 3, 45, 1, Boston]
Index of Boston String = 4
[2, 3, 1, Boston]
[2, one, 1, Boston]
[Original LinkedList, 2, one, 1, Boston]
[Cloned LinkedList, 2, one, 1, Boston]
Gambar: Hasil running program List-LinkedList
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/List-LinkedList. Anda dapat langsung menjalankan file sample tersebut.
4. Sebagai bahan latihan, lakukan hal di bawah:
Buat projek NetBeans dengan nama MyOwnLinkedList
Buat objek LinkedList
Tambahkan hal-hal di bawah ke dalam objek LinkedList
o 2 String objek
o 1 MyOwnClass objek (Anda buat [Link] terlebih dahulu)
o 3 Integer objek
Coba hal berikut:
o Tambahkan objek kedua dari MyOwnClass pada posisi ke-3
Pada latihan yang anda lakukan di atas, anda telah mempelajari beberapa class yang meng-
implement interface List yaitu class ArrayList dan LinkedList.
Latihan 3: Build dan run aplikasi yang menggunakan
tipe collection "Map"
Interface Map bukan sub-interface dari Collection. Namun Map merupakan interface tersendiri untuk
menjaga padanan key-value. Interface Map mendeskripsikan pemetaan dari key ke value, dan key
tidak boleh duplikat.
Method-method pada interface secara umum terbagi 3: merubah, meng-query, dan menyediakan
tampilan alternatif.
Operasi merubah data membolehkan anda untuk menambah dan menghapus pasangan key-value dari
map. Objek Map tidak boleh ditambah sebagai key atau value.
* Object put(Object key, Object value)
* Object remove(Object key)
* void putAll(Map mapping)
* void clear()
Operasi query membolehkan anda untuk mengecek isi dari map:
* Object get(Object key)
* boolean containsKey(Object key)
* boolean containsValue(Object value)
* int size()
* boolean isEmpty()
Kumpulan method berikutnya membolehkan anda untuk bekerja dengan kumpulan key dan value sebagai
collection.
* public Set keySet()
* public Collection values()
* public Set entrySet()
Karena key harus unik maka penggunaan keySet() akan mengembalikan Set. Sedangkan value boleh
bernilai sama maka penggunaan values() akan mengembalikan Collection. Penggunaan entrySet() akan
mengembalikan koleksi objek yang meng-implement interface [Link].
Dua class penting yang ada dalam Java Collections Framework yang meng-implement interface Map
adalah: HashMap dan TreeMap .
Class mana yang anda pilih tergantung keperluan anda. Jika anda perlu kemudahan dan kecepatan
dalam melakukan insert, hapus dan mencari data dalam Collection maka gunakan HashMap. Namun jika
anda perlu menjejaki key secara terurut, maka gunakan TreeMap. Akan lebih cepat jika anda
menambah data dalam HashMap dulu, dan jika perlu dijejaki secara terurut, barulah anda konversi ke
TreeMap.
1. Build dan run aplikasi yang menggunakan HashMap
2. Build dan run aplikasi yang menggunakan TreeMap
3. Build dan run aplikasi yang menggunakan LinkedHashMap
4. Map dan polymorphism
(3.1) Build dan run aplikasi yang menggunakan HashMap
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Map-
HashMap sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package maphashmap;
import [Link];
import [Link];
public class Main {
private static final Integer ONE = new Integer(1);
public static void main(String[] args) {
// Set up testing data
String name[] = {
new String("Sang"),
new String("Shin"),
new String("Boston"),
new String("Passion"),
new String("Shin")
};
// Create a HashMap object
Map m = new HashMap();
// Initialize frequency table with testing data
for (int i=0; i<[Link]; i++) {
Integer freq = (Integer) [Link](name[i]);
// Adding an entry to the HashMap
[Link](name[i], (freq==null ? ONE :
new Integer([Link]() + 1)));
}
// Display the size of the Map object
[Link]([Link]() + " distinct words detected:");
// Display Map object
[Link]("Display of the HashMap object = " + m);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek Map-HashMap dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
4 distinct words detected:
Display of the HashMap object = {Shin=2, Sang=1, Passion=1, Boston=1}
Gambar: Hasil running program
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Map-HashMap. Anda dapat langsung menjalankan file sample tersebut.
4. For your own exercise, please do the following
Buat projek NetBeans dengan nama MyHashMap
Buat objek HashMap
Tambahkan hal-hal di bawah ke dalam objek HashMap
o 2 String objek dengan pasangan key-value "1st"/"Hello", "2nd"/"Goodbye"
o 2 MyOwnClass objek dengan key "3rd", "4th" dan value merupakan objek dari MyOwnClass
o 1 Integer objek dengan pasangan "5th"/56
(3.2) Build dan run aplikasi yang menggunakan TreeMap
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Map-
TreeMap sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package maptreemap;
import [Link];
import [Link];
public class Main {
private static final Integer ONE = new Integer(1);
public static void main(String[] args) {
// Set up test data
String name[] = {
new String("Sang"),
new String("Shin"),
new String("Boston"),
new String("Passion"),
new String("Shin")
};
// Create TreeMap object
Map m = new TreeMap();
// Initialize frequency table with testing data
for (int i=0; i<[Link]; i++) {
Integer freq = (Integer) [Link](name[i]);
// Adding an entry to the TreeMap
[Link](name[i], (freq==null ? ONE :
new Integer([Link]() + 1)));
}
// Display the size of the Map object
[Link]([Link]() + " distinct words detected:");
// Display Map object
[Link]("Display of the TreeMap object = " + m);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek Map-TreeMap dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
4 distinct words detected:
Display of the TreeMap object = {Boston=1, Passion=1, Sang=1, Shin=2}
Gambar: Hasil running program
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Map-TreehMap. Anda dapat langsung menjalankan file sample tersebut.
(3.3) Build dan run aplikasi yang menggunakan LinkedHashMap
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Map-
LinkedHashMap sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package maplinkedhashmap;
import [Link];
import [Link];
public class Main {
private static final Integer ONE = new Integer(1);
public static void main(String[] args) {
// Set up testing data
String name[] = {
new String("Sang"),
new String("Shin"),
new String("Boston"),
new String("Passion"),
new String("Shin")
};
// Create a LinkedHashMap object
Map m = new LinkedHashMap();
// Initialize frequency table with testing data
for (int i=0; i<[Link]; i++) {
Integer freq = (Integer) [Link](name[i]);
// Adding an entry to the LinkedHashMap
[Link](name[i], (freq==null ? ONE :
new Integer([Link]() + 1)));
}
// Display the size of the Map object
[Link]([Link]() + " distinct words detected:");
// Display Map object
[Link]("Display of the LinkedHashMap object = " + m);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek Map-LinkedHashMap dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
4 distinct words detected:
Display of the LinkedHashMap object = {Sang=1, Shin=2, Boston=1, Passion=1}
Gambar: Hasil running program
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Map-LinkedHashMap. Anda dapat langsung menjalankan file sample tersebut.
(3.4) Map dan polymorphism
1. Buat projek baru pada NetBeans
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Map-
Polymorphism sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] pada IDE seperti pada Code di bawah.
package mappolymorphism;
import [Link];
import [Link];
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Set up testing data
String names[] = {
new String("Sang"),
new String("Shin"),
new String("Boston"),
new String("Passion"),
new String("Shin")
};
Map m = new HashMap();
[Link](m, names);
m = new TreeMap();
[Link](m, names);
m = new LinkedHashMap();
[Link](m, names);
}
}
Code: [Link] yang diubah
3. Buat file [Link].
import [Link];
public class MyOwnUtilityClass {
private static final Integer ONE = new Integer(1);
public static void checkDuplicate(Map m, String[] names){
for (int i=0; i<[Link]; i++) {
Integer freq = (Integer) [Link](names[i]);
// Adding an entry to the HashMap
[Link](names[i], (freq==null ? ONE :
new Integer([Link]() + 1)));
}
[Link]("Map type = " + [Link]().getName() + " " + m);
}
}
Code: [Link]
4. Build dan run projek
Klik kanan projek Map-Polymorphism dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Map type = [Link] {Shin=2, Sang=1, Passion=1, Boston=1}
Map type = [Link] {Boston=1, Passion=1, Sang=1, Shin=2}
Map type = [Link] {Sang=1, Shin=2, Boston=1, Passion=1}
Gambar: Hasil running program Map-Polymorphism
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Map-Polymorphism. Anda dapat langsung menjalankan file sample tersebut.
Pada latihan yang anda lakukan di atas, anda telah mempelajari beberapa class yang meng-implement
interface Map yaitu HashMap dan TreeMap.
Latihan 4: Iterator
Latihan dibawah akan menunjukkan cara untuk membuat objek Iterator yang dapat digunakan untuk
meng-iterate objek Collection.
1. Build dan run aplikasi yang menggunakan Iterator
(4.1) Build dan run aplikasi yang menggunakan Iterator
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project
Name ketik Collection-Iterator sebagai nama projek.
Untuk teksfield Create Main Class ketik [Link].
Klik Finish.
Gambar: Buat projek baru
2. Ubah source code [Link] seperti code di bawah.
package collectioniterator;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class OysterMonths {
Collection safeMonths;
public Collection filter(Collection c) {
Collection filteredCollection = new ArrayList();
// Creator Iterator object from a Collection object
// and do the iteration.
for (Iterator i = [Link](); [Link](); ) {
String s = (String) [Link]();
if (condition(s)) {
[Link](s);
}
}
return filteredCollection;
}
public boolean condition(String s) {
if ([Link]("r")) {
return true;
}
return false;
}
public static void main(String[] args) {
OysterMonths om = new OysterMonths();
DateFormatSymbols dfs = new DateFormatSymbols();
String[] monthArray = [Link]();
Collection months = [Link](monthArray);
[Link] = [Link](months);
[Link]("The following months are safe for oysters:");
[Link]([Link]);
}
}
Code: [Link]
3. Build dan run projek
Klik kanan projek Collection-Iterator dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
The following months are safe for oysters:
[January, February, March, April, September, October, November, December]
Gambar: Hasil running program
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Collection-Iterator. Anda dapat langsung menjalankan file sample tersebut.
return to top of the
exercise
Exercise 5: Algoritma Sorting, Searching, Shuffling, Data Manipulation
Pada latihan berikut ini, anda akan mempelajari cara untuk melakukan proses sort, search, shuffle, dan
manipulate items dalam Collection.
1. Sort list menggunakan order bawaan
2. Sort list menggunakan Comparator
3. Shuffle list
4. Data manipulation
5. Binary search
(5.1) Sort list menggunakan order bawaah
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Sorting-
NaturalOrder sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] pada IDE seperti pada Code di bawah. Pelajari code tersebut dan
perhatikan bagian yang dihitamkan.
package sortingnaturalorder;
import [Link];
import [Link];
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Set up test data
String n[] = {
new String("John"),
new String("Karl"),
new String("Groucho"),
new String("Oscar")
};
// Create a List from an array
List l = [Link](n);
// Perform the sorting operation
[Link](l);
[Link]("Sorting list of strings = " + l);
// Set up test data
Integer int1[] = {
new Integer(56),
new Integer(78),
new Integer(34),
new Integer(10)
};
// Create a List from an array
List l2 = [Link](int1);
// Perform the sorting operation
[Link](l2);
[Link]("Sorting list of numbers = " + l2);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek Sorting-NaturalOrder dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Sorting list of strings = [Groucho, John, Karl, Oscar]
Sorting list of numbers = [10, 34, 56, 78]
Gambar: Hasil running program
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Sorting-NaturalOrder. Anda dapat langsung menjalankan file sample tersebut.
(5.2) Sort list menggunakan Comparator
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project Name ketik Sorting-
Comparator sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package sortingcomparator;
import [Link];
import [Link];
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Create an ArrayList object and add items to it.
ArrayList a1 = new ArrayList();
[Link]("Boston");
[Link]("New York");
[Link]("Seoul");
[Link]("Tokyo");
[Link]("London");
[Link]("Bangkok");
[Link]("Before sorting = " + a1);
// Get String Comparator object and sort the list
Comparator comp = [Link]();
[Link](a1, comp);
// Display the sorted list
[Link]("Sorted list using String Comparator = " + a1);
// Create an ArrayList object and add items to it.
ArrayList a2 = new ArrayList();
[Link](new Integer(33));
[Link](new Integer(17));
[Link](new Integer(45));
[Link](new Integer(100));
[Link](new Integer(3));
[Link]("Before sorting = " + a2);
// Get Integer Comparator object and sort the list
Comparator comp2 = [Link]();
[Link](a2, comp2);
// Display the sorted list
[Link]("Sorted list using Integer Comparator = " + a2);
}
}
Code: [Link] yang diubah
3. Buat file [Link].
package sortingcomparator;
import [Link];
import [Link];
public class Comparators {
// String Comparator object
public static Comparator stringComparator() {
return new Comparator() {
public int compare(Object o1, Object o2) {
String s1 = (String)o1;
String s2 = (String)o2;
int len1 = [Link]();
int len2 = [Link]();
int n = [Link](len1, len2);
char v1[] = [Link]();
char v2[] = [Link]();
int pos = 0;
while (n-- != 0) {
char c1 = v1[pos];
char c2 = v2[pos];
if (c1 != c2) {
return c1 - c2;
}
pos++;
}
return len1 - len2;
}
};
}
// Integer Comparator object
public static Comparator integerComparator() {
return new Comparator() {
public int compare(Object o1, Object o2) {
int val1 = ((Integer)o1).intValue();
int val2 = ((Integer)o2).intValue();
return (val1<val2 ? -1 : (val1==val2 ? 0 : 1));
}
};
}
// Date Comparator object
public static Comparator dateComparator() {
return new Comparator() {
public int compare(Object o1, Object o2) {
long val1 = ((Date)o1).getTime();
long val2 = ((Date)o2).getTime();
return (val1<val2 ? -1 : (val1==val2 ? 0 : 1));
}
};
}
}
Code: [Link]
4. Build dan run projek
Klik kanan projek Sorting-Comparator dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Before sorting = [Boston, New York, Seoul, Tokyo, London, Bangkok]
Sorted list using String Comparator = [Bangkok, Boston, London, New York, Seoul, Tokyo]
Before sorting = [33, 17, 45, 100, 3]
Sorted list using Integer Comparator = [3, 17, 33, 45, 100]
Gambar: Hasil running program
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Sorting-Comparator. Anda dapat langsung menjalankan file sample tersebut.
(5.3) Shuffle list
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project
Name ketik Shuffling sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package shuffling;
import [Link];
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Set up testing data
String name[] = {
new String("Sang"),
new String("Shin"),
new String("Boston"),
new String("Passion"),
new String("Shin"),
};
// Create a List object from an array
List l = [Link](name);
[Link]("Before shuffling = " + l);
// Shuffle the list
[Link](l);
[Link]("Shuffled list = " + l);
// Sort the list
[Link](l);
[Link]("Sorted list = " + l);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek Shuffling dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Before shuffling = [Sang, Shin, Boston, Passion, Shin]
Shuffled list = [Sang, Passion, Shin, Boston, Shin]
Sorted list = [Boston, Passion, Sang, Shin, Shin]
Gambar: Hasil running program
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/Shuffling. Anda dapat langsung menjalankan file sample tersebut.
(5.4) Data manipulation
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project
Name ketik DataManipulation sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package datamanipulating;
import [Link];
import [Link];
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Set up test data
String n[] = {
new String("Boston"),
new String("New York"),
new String("Seoul"),
new String("Shanghai")
};
// Create a List from an array
List l = [Link](n);
// Perform the sorting operation
[Link](l);
[Link]("Sorted list = " + l);
// Reverse the list
[Link](l);
[Link]("Reversed list = " + l);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek DataManipulation dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Sorted list = [Boston, New York, Seoul, Shanghai]
Reversed list = [Shanghai, Seoul, New York, Boston]
Gambar: Hasill running program
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/DataManipulation. Anda dapat langsung menjalankan file sample tersebut.
(5.5) Binary searching
1. Buat projek baru pada NetBeans.
Pilih File->New Project (Ctrl+Shift+N).
Window New Project akan muncul.
Pada bagian Choose Project window, pilih Java pada bagian Categories dan Java
Application pada bagian Projects.
Klik Next.
Pada bagian Name and Location window, untuk teksfield Project
Name ketik BinarySearching sebagai nama projek.
Untuk teksfield Create Main Class gunakan seperti yang muncul pada IDE.
Klik Finish.
2. Ubah source code [Link] seperti code di bawah.
package binarysearching;
import [Link];
import [Link];
import [Link];
public class Main {
public static void main(String[] args) {
// Set up testing data
String name[] = {
new String("Sang"),
new String("Shin"),
new String("Boston"),
new String("Passion"),
new String("Shin"),
};
// Create a List object
List l = [Link](name);
// Perform binary search
int position = [Link](l, "Boston");
[Link]("Position of the searched item = " + position);
}
}
Code: [Link] yang diubah
3. Build dan run projek
Klik kanan projek BinarySearching dan pilih Run.
Amati hasilnya pada window Output. (Gambar di bawah)
Position of the searched item = 2
Gambar: Hasil running program
Solution: Lakukan latihan ini dengan menggunakan langkah-langkah di atas. Namun anda juga bisa
melihat program yang sudah jadi di <LAB_UNZIPPED_DIRECTORY>/T6-Collections-
Indo/samples/BinarySearching. Anda dapat langsung menjalankan file sample tersebut.
Tugas
1. Buat projek Netbeans MyCollectionProject dengan melakukan hal-hal yang berikut.
Buat objek HashSet
Tambahkan hal-hal di bawah ke dalam objek HashSet
o 2 String objek
o 2 MyOwnClass objek (Anda buat [Link] terlebih dahulu
Class MyOwnClass memiliki atribut nama (bertipe String) dan umur (bertipe int)
o 3 Integer ojbek
Buat objek Iterator untuk meng-iterate objek HashSet di atas demi menampilkan isinya
Ulangi hal yang sama untuk class LinkedHashSet, ArrayList
2. Kirim file-file berikut melalui e-learning.
Print screen hasil running projek MyCollectionProject dan beri nama [Link] atau T6-
[Link] dan masukkan juga ke dalam zip file di bawah.
Compress file projek MyCollectionProject sebagai zip. Anda juga dapat menggunakan fasilitas
"jar" pada JDK.
o cd MyCollectionProject
o jar cvf [Link] MyCollectionProject