0% menganggap dokumen ini bermanfaat (0 suara)
297 tayangan

Abstract Data Type

Diunggah oleh

lordzyan
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
297 tayangan

Abstract Data Type

Diunggah oleh

lordzyan
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 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

Anda mungkin juga menyukai