Pemrograman Berbasis Objek. Collections. Politeknik Elektronika Negeri Surabaya

dokumen-dokumen yang mirip
Pemrograman Berbasis Objek. Collections. Politeknik Elektronika Negeri Surabaya

Collections. Collections Framework

INSTITUT TEKNOLOGI SUMATERA COLLECTION: SET DAN MAP

03/04/2018. Collection set List Map. Pemrograman Berorientasi Object

Java Collections Framework

Pemrograman Berorientasi. Array dan Collections

Boxing & AutoBoxing Java Collection Framework. Collection List Map Set. Generics vs Inheritance

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

KOLEKSI OBJECT. Farah Zakiyah Rahmanti, M.T Universitas Dian Nuswantoro

Gambar 1. Single Linked List

PRAKTIKUM 20 JAVA COLLECTION FRAMEWORK : MAP

Score: 94.0 Persentage: % ~ u ~ Generated by Foxit PDF Creator Foxit Software For evaluation only.

PEMROGRAMAN BERORIENTASI OBJEK COLLECTION DAN MULTITHREADING. ADAM MUKHARIL BACHTIAR TEKNIK INFORMATIKA UNIKOM

Gambar 1. Single Linked List

Pemrograman Berorientasi Objek Collection dan Multithreading. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

MODUL III ARRAYLIST TUGAS PENDAHULUAN

BAB 2 COLLECTION & THREAD

Pada pembuatan game di java, sering kali para programer. mendefinisikan banyak object seperti suara, gambar, dan grafik geometri yang

Jobsheet 16 String dan Collection (List, Set, Map)

Grouping Object. Viska Mutiawani, M.Sc

Algoritma & Struktur Data. Array. Oleh : Nur Hayatin, M.Kom

Gambar 1. Single Linked List

Pemrograman Lanjut. Interface

Java Generic & Collection

Algoritma Pemrograman [BS204]

ABSTRAK. Kata Kunci : Map, TreeMap, AVL tree. vii Universitas Kristen Maranatha

A. TUJUAN PEMBELAJARAN 1. Memahami konsep Class LinkedList di Collection 2. Memahami penggunaan method-method pada Class LinkedList.

IT 405: KPLBO MATERI 9 RELASI ANTAR OBJEK III. Ayi Purbasari, ST., MT. If-Unpas, 2014

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

STRUKTUR DATA (3) sorting array. M.Cs

KUM 3 IMPLEMENTASI LIST

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

GENERICS. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya. Topik

Outline STRUKTUR DATA. VII. Sorting

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA BUBBLE SORT, SELECTION SORT, INSERTION SORT

Pemrograman Berbasis Obyek. Yuliana Setiowati. Elektronika Negeri Surabaya PJJ PENS-ITS

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Data Structures. Class 3 Pengenalan Struktur Data dan ADT. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

IKI 20100: Struktur Data & Algoritma

Bab 3. Modul ini mengenalkan suatu teknik pemrograman yang lebih tinggi. Dalam bagian ini Anda akan mempelajari rekursif dan tipe data abstrak.

Simple Sorting Techniques

Pemrograman Web. Object Oriented Programming in PHP 5

Algoritma dan Struktur Data. Queue

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

Java Operators. Nurochman

MODUL PRAKTIKUM BASIS DATA PENGENALAN STRUKTUR DATA DAN KOMPLEKSITAS WAKTU

SORTING (BAGIAN II) Proses kelima

Struktur Data dan Algoritma

Array. Topik. Mendeklarasikan Array Creating Array Initializing Array Array Multidimensional Array Bounds Array Resizing Copying Arrays

IF PEMROGRAMAN LANJUT GENERIC. Oleh : Andri Heryandi, M.T.

Politeknik Elektronika Negeri Surabaya

Pemrograman Berbasis Objek Operator dan Assignment

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

Sorting Algorithms. Buble Sort

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA GENERIC DAN IMPLEMENTASI COMPARETO()

Praktikum Stack. A. Stack Collection di java.util.collection. Percobaan 1. Percobaan 2. import java.util.iterator; import java.util.

ABSTRACT CLASS. Imam Fahrur Rozi

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

Operator dan Assignment. Pertemuan 3 Pemrograman Berbasis Obyek

Operator dan Assignment

List: Pokok Bahasan dan TIK

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

Adam Hendra Brata Teknik Informatika FILKOM UB Semester Genap 2015/2016

BAB I PENDAHULUAN. 1.1 Latar Belakang

Belajar ArrayList di Java

STRUKTUR DATA SORTING ARRAY

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

Modul ini mengenalkan Anda konsep dasar mengenai Java generic types.

Algoritma dan Struktur Data. Pertemuan 7 Linked List

OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment

B.1 Mengurutkan Objek String Terdapat array dengan tipe String, untuk mengurutkan data String pada array gunakan Arrays.sort().

Pemrograman Berbasis Objek GENERIC. Yuliana Setiowati. Politeknik Elektronika Negeri Surabaya

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

DIG1G3 Implementasi Struktur Data

Pemrograman Berorientasi. Inheritance

Everybody in this country should learn how to program a computer because it teaches you how to think. Steve Jobs

Data Structures. Class 5 Pointer. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.

Algoritma dan Struktur Data STACK

Pemrograman Lanjut Class and Object PTIIK

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

Problem 1. Implementasi Interface. Diberikan definisi interface BentukDuaDimensi berikut:

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

CSG2H3 Object Oriented Programming INTERFACE -RSM-

Gambar 1. Single Linked List

TIF APPLIED MATH 1 (MATEMATIKA TERAPAN 1) Week 3 SET THEORY (Continued)

IKI 20100: Struktur Data & Algoritma

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

Pertemuan 8. Dasar query basis data dengan SQLite ARFIAN HIDAYAT, S.KOM

1. Latar Belakang Didalam pembuatan game java sering kali kita mendefinisikan banyak object seperti gambar, dan grafik geometri yang begitu banyak,

Konsep Dasar Pemrograman Berorientasi Objek

E-Commerce. Lesson 2. Nizar Rabbi Radliya PHP : Variable, Constant, Data Type, Operator. 2 SKS Semester 7 UNIKOM

Politeknik Elektronika Negeri Surabaya

BAB VIII Pencarian(Searching)

Transkripsi:

Collections

Collections Framework Dikenalkan pada Java 2 SDK. Collection sudah ada sejak JDK 1.0 Hashtable Vector

Collections Collection adalah suatu obyek yang bisa digunakan untuk menyimpan sekumpulan obyek Obyek yang ada dalam Collection disebut elemen Collection menyimpan elemen yang bertipe Object, sehingga berbagai tipe obyek bisa disimpan dalam Collection

The Java Collections API Java Collections API terdiri dari interface: Collection : sekumpulan obyek yang tidak mempunyai posisi yang tetap (no particular order) dan menerima duplikat. List: sekumpulan obyek yang berdasarkan urutan (ordered) dan menerima duplikat. Set: sekumpulan obyek yang tidak berdasarkan urutan (unordered) dan menolak duplikat. Map: mendukung pencarian berdasarkan key, key ini harus unik. Has no particular order.

Interface Collection danhirarkiclass «interface» Collection «interface» Map «interface» Set «interface» List «interface» Queue «interface» SortedMap HashSet «interface» SortedSet Vector ArrayList LinkedList TreeMap HashMap Linked HashSet TreeSet Implementations 5

SortedSet TreeSet Set AbstractSet HashSet LinkedHashSet Collection AbstractCollection Vector Stack List AbstractList ArrayList AbstractSequentialList LinkedList Interfaces Abstract Classes Concrete Classes SortedMap TreeMap Map AbstractMap HashMap LinkedHashMap Interfaces Abstract Classes Concrete Classes Copyright: Liang

Collection Interfaces and Classes 7

Interface Collection

Expansion of contracts <<interface>> List<E> <<interface>> Collection<E> +add(e):boolean +remove(object):boolean +contains(object):boolean +size():int +iterator():iterator<e> etc +add(e):boolean +remove(object):boolean +get(int):e +indexof(object):int +contains(object):boolean +size():int +iterator():iterator<e> etc <<interface>> Set<E> +add(e):boolean +remove(object):boolean +contains(object):boolean +size():int +iterator():iterator<e> etc <<interface>> SortedSet<E> +add(e):boolean +remove(object):boolean +contains(object):boolean +size():int +iterator():iterator<e> +first():e +last():e etc 9

Set : HashSet Elemen pada Set selalu unik Set menolak duplikat Elemen yang tersimpan tidak berdasarkan urutan(unorder) dan tidak di sorting (unsorted) Berhubungan dengan definisi matematika mengenai himpunan. Interface Set merupakan subinterface dari interface Collection Class yang mengimplementasikan interface Set adalah HashSet

Pemrograman Berbasis Objek

Set: HashSet Pemrograman Berbasis Objek Hasil:

Set: HashSet

Set: HashSet

Set<E> Pemrograman Berbasis Objek Mathematical Set abstraction contains no duplicate elements i.e. no two elements e1 and e2 such that e1.equals(e2) add(x) true add(b) false c a d b x remove(c) true remove(x) false c a b d <<interface>> Set<E> +add(e):boolean +remove(object):boolean +contains(object):boolean +isempty():boolean +size():int +iterator():iterator<e> etc contains(e) true contains(x) false c a d b e? isempty() false size() 5 <<interface>> SortedSet<E> +first():e +last():e etc 15

Pemrograman Berbasis Objek OperasiBesar(Bulk operations) padaset: HashSet Merupakan operasi pada Himpunan s1.containsall(s2) mengembalikan nilai true jika s2 adalah subset s1. (Set s2 adalah subset s1 apabila s1 berisi semua anggota s2) s1 = s1 U s2 s1.addall(s2) hasil dari s1 adalah gabungan (union) dari s1 dan s2 s1 = s1 s2 s1.retainall(s2) hasil dari s1 adalah irisan(intersection) dari s1 dan s2. s1 = s1 s2 s1.removeall(s2) hasil dari s1 adalah selisih dari s1 dengan s2 Selisih (s1 - s2) adalah set yang berisi semua elemen yang ada pada s1 tetapi tidak ada pada s2.

Pemrograman Berbasis Objek

SortedSet:TreeSet Aturan sama dengan interface Set menolak duplikat. Ingat SortedSet adalah subinterface Set. Beda: elemen tersimpan dalam urutan ascending sorted. Contoh SortedSet: TreeSet.

SortedSet: TreeSet Chess Output: [BlackJack, Checkers, Chess, Whist]

Class HashSetand TreeSet HashSet and TreeSet mengimplementasikan interface Set. HashSet Diimplementasikan menggunakan hash table Element tidak terurut Method add, remove, and contains, kompleksitas waktu O(c). TreeSet Diimplementasikan menggunakan struktur pohon. Dijamin elemen dalam keadaan terurut. Method add, remove, and contains kompleksitas waktu logarithmic O(log (n)), dimana n adalah jumlah elemen pada set. 20

List Elemen tersimpan berdasarkan urutan masukan (ordered). Menerima duplikat. Contoh List: LinkedList : elemen dalam LinkedList masuk dari awal dan dihapus dari akhir. Vector : a growable array of object. ArrayList: mirip vector, bersifat unsyncronized (jika multiple threads mengakses object ArrayList, object ini harus syncronized secara eksternal)

List Pengembangan dari Interface Collection. Pengaksesan elemen melalui indeks seperti array add (int, Object), get(int), remove(int), set(int, Object) Pencarian element indexof(object), lastindexof(object) Menggunakan Iterator tertentu disebut ListIterator Dapat mengambil sublist sublist(int fromindex, int toindex) 22

List add(object) : menambahkan elemen diakhir list remove(object) : menghapus di awal list list1.equals(list2) : dikatakan sama dengan memperhatikan urutan elemen 23

List

Class ArrayListdanLinkedList Class ArrayList dan LinkedList mengimplementasikan interface List. ArrayList adalah sebuah implementasi array dimana elemenelemennya dapat diakses secara langsung menggunakan get and set methods. Biasanya ArrayList untuk urutan sederhana (simple sequence). LinkedList menggunakan double linked list Memberikan performance yang lebih baik untuk method add dan remove dibandingkan ArrayList. Memberikan performance yang lebih jelek untuk method get and set dibandingkan ArrayList. 25

List : ArrayList Pemrograman Berbasis Objek

List: Vector Output: [Duke, Zak, Gordon, Lara, Zak] Gordon

Pemrograman Berbasis Objek

List Collection menyediakan method untuk merandom isi dari Collection

List Output program sama dengan sebelumnya tapi lebih singkat

List Output 2

List

List Tambahkan program sebelumnya

Pemrograman Berbasis Objek

Output

List Sebagian besar algoritma(method) pada class Collections diaplikasikan ke List. Sehingga dengan algoritma ini memudahkan untuk memanipulasi data pada List. sort(list) mengurutkan List dengan algoritma merge sort shuffle(list) Permutasi secara random pada List reverse(list) membalik urutan elemen pada List fill(list, Object) Mengganti setiap elemen pada List dengan value yang ditentukan copy(list dest, List src) Mengkopikan source List ke destination List. binarysearch(list, Object) Mencari sebuah element pada List dengan algoritma binary Search

java.util.iterator<e> Think about typical usage scenarios for Collections Retrieve the list of all patients Search for the lowest priced item More often than not you would have to traverse every element in the collection be it a List, Set, or your own datastructure Iterators provide a generic way to traverse through a collection regardless of its implementation a b c d e f g h i Iterator iterator() next():d hasnext()? iterator() a c g f d h b e i Set List a b c d e f g h i 37

ListIterator ListIterator adalah subinterface dari Iterator. Dengan menggunakan ListIterator pada List, maka elemen dapat diambil secara backward. Gunakan method next atau previous sebagai navigasi.

Hirarki Interface Iterator

ListIterator

Map Menyimpan elemen dengan key unik. Satu key untuk satu elemen. Key disimpan dalam bentuk object. Map tidak bisa menyimpan duplicate key. Map bisa menyimpan duplicate element. Has no particular order. Contoh: Hashtable HashMap not syncronized for threads permits null values to be stored

Map Map dapat dipandang sebagai Collection dengan 3 cara: keyset menghasilkan Set key yang ada pada Map Values Collection values yang ada pada Map. Collection disini bukan Set karena multiple key dapat mempunyai nilai yang sama. entryset Hasil disimpan pada Set, pasangan key-value yang ada pada Map

Map Map adalah object yang memetakan key dengan value. Disebut juga dengan associative array atau dictionary. Method untuk menambah dan menghapus put(object key, Object value) remove (Object key) Method untuk mengambil object. get (Object key) Method untuk mengambil key, value dan pasangan (key, value) keyset() // returns a Set values() // returns a Collection, entryset() // returns a set 43

Map

Pemrograman Berbasis Objek

Map: Hashtable class CollectionTest{ public static void main(string [] arg){ Hashtable ht = new Hashtable(); ht.put( key1, new Integer(12)); } }

Map: HashMap Output: {Game4=Chess, Game3=Whist, Game1=Hearts, null=chess}

Map<K,V> Pemrograman Berbasis Objek Stores mappings from (unique) keys (type K) to values (type V) See, you can have more than one type parameters! Think of them as arrays but with objects (keys) as indexes Or as directories : e.g. "Bob" 021999887 get(k) a get(x) null size() 4 k m p n keys a b c b values put(x,e) null k m p n x a b c b e put(k,f) a k m p n f b c b a <<interface>> Map<K,V> +put(k,v):v +get(object):v +remove(object):v +size():int +keyset():set<k> +values():collection<v> etc remove(n) b remove(x) null k m p n a b c b keyset() Set m k n p values() Collection c a b b <<interface>> SortedMap<K,V> +firstkey():k +lastkey():k etc 48

Pemrograman Berbasis Objek

MultiMap

SortedMap: TreeMap Aturan mirip Map Beda: obyek tersimpan secara sorted berdasarkan key. No duplicate key. Elements may be duplicate. Key tidak boleh null value.

SortedMap: TreeMap Output: {1=Euchre, 2=Tic Tac Toe, 3=Checkers, 4=Chess}

java.util.collections Offers many very useful utilities and algorithms for manipulating and creating collections Sorting lists Index searching Finding min/max Reversing elements of a list Swapping elements of a list Replacing elements in a list Other nifty tricks Saves you having to implement them yourself reuse 53

Collections.sort() Java s implementation of merge sort ascending order e b c d b 0 1 2 3 4 f 5 6 a a b b c What types of objects can you sort? Anything that has anordering Two sort() methods: sort a given List according to either 1) natural ordering of elements or an 2) externally defined ordering. d 0 1 2 3 4 e f 5 6 1) 2) public static <T extends Comparable<? super T>> void sort(list<t> list) public static <T> void sort(list<t> list, Comparator<? super T> c) Translation: 1. Only accepts a List parameterised with type implementing Comparable 2. Accepts a List parameterised with any type as long as you also give it a Comparator implementation that defines the ordering for that type 54