DAN
STRUKTUR DATA
• Tipe Data
• Jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada
komputer
• Obyek Data
• Kumpulan elemen yang mungkin untuk suatu tipe data tertentu
• Integer mengacu pada obyek data -32768 s/d 32767
• Byte : 0 s/d 255
• String : kumpulan karakter maks 255 huruf
• Struktur Data
• Cara penyimpanan dan pengorganisasian data-data pada memori komputer
maupun fail secara efektif sehingga dapat digunakan secara efisien, termasuk
operasi-operasi di dalamnya
Aktivitas Struktur Data
• Di dalam struktur data kita berhubungan dengan 2 aktivitas:
• Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data
yang ada
• Menunjukkan mekanisme kerja operasi-operasinya
• Mis: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah
+, -, *, /, mod, ceil, floor, <, >, !=, dsb
• Tidak semua struktur data baik dan sesuai. Contoh untuk problem
pemrosesan image, record informasi mahasiswa
Jenis Struktur Data
• Linear
• Kumpulan komponen-komponen yang tersusun membentuk satu garis linear,
menempel dan melintasi satu demi satu
• Array, Linked list, Stack, Queue
• Non-Linear
• Menggambarkan hubungan yang bersifat hirarkis (hubungan one to many
atau many to many) antara elemen-elemen, tidak dapat melintasi dalam
sekali jalan
• Tree, Graph
ADT dan UDT atau Tipe Data Bentukan
• Bahasa pemrograman dapat memiliki tipe data:
• Built-in : sudah tersedia oleh bahasa pemrograman tersebut
• Tidak berorientasi pada persoalan yang dihadapi
• UDT : User Defined Type, dibuat oleh pemrogram
• Mendekati penyelesaian persoalan yang dihadapi
• Contoh: record pada Pascal, struct pada C
• ADT : Abstract Data Type
• Memperluas konsep UDT dengan menambahkan pengkapsulan atau enkapsulasi, berisi
sifat-sifat dan operasi-operasi yang dapat dilakukan terhadap kelas tersebut
• Contoh: class pada Java
Abstract Data Type (ADT)
• Spesifikasi dari sekumpulan data termasuk operasi yang dapat
dilakukan pada data tersebut (Wikipedia)
Contoh
ContohInterface
Interface struktur
strukturdata
data::
void
void add(Benda
add(Benda x);
x);
void
void remove(Benda x);
remove(Benda x);
Benda
Benda access(Benda x);
access(Benda x);
void
void makeEmpty();
makeEmpty();
Data boolean
boolean isEmpty();
isEmpty();
ADT: List
Indeks 1 2 3 4
• List adalah kumpulan benda yang mana setiap benda memiliki posisi
• Setiap benda dalam List dapat diakses melalui indeksnya
• Contoh paling mudah: array
Contoh
ContohInterface
Interface list
list::
void
void insert(int
insert(int indeks,
indeks, Benda
Benda x);
x);
void
void append(Benda
append(Benda x);
x);
void
void remove(int
remove(int indeks);
indeks);
void
void remove(Benda
remove(Benda x);
x);
Benda get(int indeks);
Benda get(int indeks);
ADT: Stack
push pop,top • Stack adalah kumpulan benda yang mana
hanya benda yang most recently inserted dapat
diakses
Most
• Bayangkan tumpukan Koran
recent • Benda yang paling terakhir ditambahkan ditaruh
di atas tumpukan (top)
Contoh
ContohInterface
Interface stack
stack::
Least
recent void
void push(Benda
push(Benda x);
x);
Benda
Benda pop();
pop();
Benda
Benda top();
top();
ADT: Queue
enqueue dequeue
getFront
• Queue adalah kumpulan benda yang 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)
Contoh
ContohInterface
Interface queue
queue::
void
void enqueue(Benda
enqueue(Benda x);
x);
Benda
Benda dequeue();
dequeue();
Benda
Benda getFront();
getFront();
ADT: Set
tambah
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)?
Contoh
ContohInterface
Interfacesebuah
sebuahMap
Map::
void
void put(Kunci
put(Kunci id,
id, Nilai
Nilai x);
x);
void
void remove(Kunci
remove(Kunci id);
id);
Nilai
Nilai get(Kunci
get(Kunci id);
id);
ADT: 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 1
halaman
Contoh
ContohInterface
Interfacesebuah
sebuahPriority
PriorityQueue
Queue::
void
void insert(Benda
insert(Benda x);
x); (Menambahkan)
(Menambahkan)
void
void deleteMin();
deleteMin(); (menghapus)
(menghapus)
Benda
Benda findMin();
findMin(); (meng-akses)
(meng-akses)
PERTANYAAN???