Anda di halaman 1dari 22

Abstract Data Type

(C++ and Java)


Container
• Sebuah struktur data dapat dipandang
sebagai tempat penyimpanan benda
(container).
• Beberapa hal yang dapat dilakukan:
– Membuat container baru(konstruktor)
– Menaruh benda
– Mengambil benda
– Mencari benda tertentu
Container – Mengosongkannya (atau periksa
apakah kosong)
– Mendapatkan jumlah benda dalam
container (size)
• Di C++ container diimplementasikan oleh
Standart Template Library
• Di Java, container diimplementasikan oleh
class Collection dan Map
Data
ADT in C++
Abstract Data Type (ADT) in C++
• Diimplementasikan oleh Standart Template
Library(STL)
• ADT Container di C++ terdiri dari 3 macam
– Sequence containers => Container yang tersusun
berderet-deret.
– Associative containers => merupakan container yang
key-nya diasosiasikan dengan suatu value.
– Container adapters => merupakan containers dengan
interface spesifik, memanfaatkan containers lain untuk
implementasinya.
Sequence containers
• vector
rapid insertions and deletions at back direct access
to any element
• deque
rapid insertions and deletions at front or back
direct access to any element
• list
doubly linked list, rapid insertion and deletion
anywhere
Associative containers
• set
rapid lookup, no duplicates allowed
• multiset
rapid lookup, duplicates allowed
• map
one-to-one mapping, no duplicates allowed, rapid key-
based lookup
• multimap
one-to-many mapping, duplicates allowed, rapid key-
based lookup
Container adapters
• stack
last-in, first-out (LIFO)
• queue
first-in, first-out (FIFO)
• priority_queue
highest-priority element is always the first
element out
Queue

enqueue dequeue
getFront

Most recent Least recent

Sebuah Queue adalah kumpulan benda di mana hanya benda yang least •
.recently inserted dapat diakses
.Bayangkan antrian printer job pada jaringan •
.Benda yang paling awal ditambahkan berada di depan antrian (front) •
.Operasi pada Queue membutuhkan waktu konstan (O(1)) •
Set

tambah
Map
:Nama Abdul Betty Chairul Dian

:Nilai

• Map adalah struktur data yang berisi sekumpulan pasangan nama (keys) dan
nilai (values) dari nama tersebut.
• Nama (Keys) harus unik, tapi nilai (values) tidak.
• Bayangkan basis-data yang berisi informasi peserta kuliah. Apa yang menjadi
“nama” (keys)?
Priority Queue

insert deleteMin
findMin

Highest
priority
• Priority Queue adalah struktur data queue yang tiap elemen data dapat miliki
nilai prioritas. Data dengan nilai prioritas tertinggilah yang dapat diakses
terlebih dulu.
• Bayangkan sebuah antrian pada printer jaringan. Misalkan ada sebuah
permintaan cetak untuk 100 halaman hanya beberapa detik lebih awal dari
permintaan cetak selembar halaman.
Iterator
Sebuah object yang mengizinkan programmer melintasi
semua element data dari sebuah collection, tanpa
memperhatikan bagaimana sebuah collection
diimplementasikan
 Objek iterator mengendalikan iterasi pembacaan data pada
struktur data.
 Secara umum Iterator bekerja sebagai berikut:
 Mulai dengan mengatur iterator pada elemen pertama pada
struktur data.
 Satu-persatu berlanjut pada elemen selanjutnya
 Berakhir ketika tidak ada lagi elemen pada struktur data yang
belum dibaca.
Iterator
Iterator User
(program yang
mengakses data)

Collection
STL
• STL => Standard Template Library
– Adalah merupakan kumpulan library yang
melengkapi library standard C++.
– Berisi kumpulan class-class yang umum digunakan,
seperti container, algorithm, dan iterator.
– Menyediakan algoritma dan struktur data dasar
untuk permasalahan komputasi.
STL
STL (meliputi)
• Container
– Sequence Container : vector, deque, list
– Associative containers : set, multiset, multimap, map
– Container adapters :stack, queue, priority queue
• Algorithm :
equal, mismatch, lexicographical_compare, remove,
remove_if, replace, replace_if, random_shuffle, count,
count_if, min_element, max_element, accumulate,
for_each , dll
• Iterator
ADT in Java
Abstract Data Type in Java
• Diimplementasikan oleh library Collection Classes
• Ketika ada data dan wadah, data tersebut ditata dalam
wadah dengan beberapa cara berikut :
– Disusun berdasarkan urutan atau berderet-deret.
Contoh : Array , Linked List, Vector
– Disimpan tanpa memperhatikan urutan
)analogi seperti menyimpan dalam karung(
Contoh : Set
– Data disimpan berpasangan key-value nya. Seperti data
phonebook, key berupa nama orang, value berupa nomer
telepon
Contoh : Map
Abstract Data Type (ADT) in Java
• List
– Vector
– ArrayList
– LinkedList
• Set
– HashSet
– TreeSet
• Map
– TreeMap
– HashTable
– HashMap
Collection Classes
Java 2
Library untuk implementasi ADT di Java

AbstractCollection Hashtable
:superclass(
)Dictionary

HashSet

ArrayList TreeMap

TreeSet

Java 2 Collections ©1999 Trygve


19
Reenskaug
Concrete Collections

concrete implements description


collection

ArrayList List resizable-array


LinkedList List linked list
Vector List resizable-array
HashSet Set hash table
TreeSet SortedSet balanced binary tree
HashMap Map hash table
TreeMap SortedMap balanced binary tree
Hashtable Map hash table
Vector
Hash table
• A hash table is an array of linked lists. Each list
is called a bucket