Pertemuan 5 Struktur Data

Slides:



Advertisements
Presentasi serupa
Antrian (Queue) Desain dan Analisis Algoritma
Advertisements

Queue (Antrian).
Dr. Anto Satriyo Nugroho, M.Eng
List, Stack & Queue (1) Dr. Anto Satriyo Nugroho, M.Eng
QUEUE.
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
Struktur Data & Algoritma Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) ‏ 1 Fasilkom UI SUR – HMM – AAFasilkom UI - IKI20100/ IKI80110P.
Queue.
Pertemuan (6) QUEUE (ANTREAN) IMAM SIBRO MALISI NIM :
Ruli Manurung & Ade Azurat (acknowledgments: Denny, Suryana Setiawan) ‏ 1 Fasilkom UI Ruli Manurung & Ade AzuratFasilkom UI - IKI20100 IKI 20100: Struktur.
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK.
Struktur Data (Data Structure) – IS 2313
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
STACK.
Queue.
Queue.
Queue.
Linear Data Structures (Queue)
Abstract Data Types dan Java Collections API
Linear Data Structures (Stack)
Abstract Data Type.
Abstract Data Type (C++ and Java)
IKI 20100: Struktur Data & Algoritma Ruli Manurung & Ade Azurat (acknowledgments: Denny, Suryana Setiawan) ‏ 1 Fasilkom UI Ruli Manurung & Ade AzuratFasilkom.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Pertemuan 5 STACK & QUEUE
ANTRIAN Farid Wajdi Yusuf Pendidikan Teknik Informatika dan Komputer
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
STRUKTUR DATA Queue atau Antrian.
Pertemuan : Algoritma & Struktur Data
Struktur Data Departemen Ilmu Komputer FMIPA-IPB
Stack.
Program Studi Teknik Informatika
Defri Kurniawan ADT STACK Defri Kurniawan
STRUKTUR DATA QUIZ.
Program Studi Teknik Informatika
Defri Kurniawan QUEUE Defri Kurniawan
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
Struktur Organisasi Data 2
Queue.
STRUKTUR DATA QUEUE (Antrian)
STACK (Tumpukan).
Program Studi Teknik Informatika
Program Studi Teknik Informatika
STRUKTUR DATA Chapt 5 : QUEUE Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Struktur Data Khoiriya Latifa, M.Kom.
Program Studi Teknik Informatika
Pertemuan 5 Review Berbagai Struktur Data
QUEUE Pertemuan ke-6 T 0026.
Program Studi Teknik Informatika
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
Algoritme dan Stuktur Data
Queue(Antrian).
STACK & QUEUE Struktur Data.
QUEUE (Antrian) #Kulia 6 Algoritma dan Struktur Data.
Pertemuan 6 Queue dengan Array
Algoritma dan Struktur Data
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
STRUKTUR DATA Stack atau Tumpukan.
Algoritma dan Struktur Data
TIF 4201 Algoritma Dan Struktur Data Abstract Data Type
STRUKTUR DATA Teknik Informatika S1
Queue Algoritma dan Struktur Data.
QUEUE (Antrian).
Struktur Data Linear Created by Fifth Group, S3B TI Anggota
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
Stack dan Queue dengan Respresentasi Linked List
Transcript presentasi:

Pertemuan 5 Struktur Data Stack dan Queue

Pengertian ADT Spesifikasi dari sekumpulan data termasuk operasi yang dapat dilakukan pada data tersebut. (Wikipedia) Sekumpulan data dan operasi terhadap data tersebut yang definisi-nya tidak bergantung pada implementasi tertentu. (/www.nist.gov/dads/) Sekumpulan nilai dan operasi-operasi yang diizinkan padanya (http://www.scribd.com/doc/6188327/Materi-2-Tipe-Data-Abstrak)

Struktur Data = Container Sebuah struktur data dapat dipandang sebagai tempat penyimpanan benda (container). Beberapa hal yang dapat dilakukan: Menaruh benda Mengambil benda Mencari benda tertentu Mengosongkannya (atau periksa apakah kosong)‏ Contoh Interface struktur data : void add(Benda x); void remove(Benda x); void access(Benda x); void makeEmpty(); boolean isEmpty(); Sumber; Dimodifikasi dari Ruli Manurung dan Ade Azurat, Fasilkom UI 2008

ADT: List 1 2 3 4 Indeks Sebuah List adalah kumpulan benda di mana setiap benda memiliki posisi. Setiap benda dalam List dapat diakses melalui indeks-nya. Contoh paling gampang: array! Contoh operasi pada list : void insert(int indeks, Benda x); void append(Benda x); void remove(int indeks); void remove(Benda x); Benda get(int indeks); Sumber; Dimodifikasi dari Ruli Manurung dan Ade Azurat, Fasilkom UI 2008

ADT: Stack Least recent Most recent push pop,top Sebuah Stack adalah kumpulan benda di mana benda yang baru berada di atas benda yang lama  LIFO Bayangkan setumpuk koran. Benda yang paling terakhir masuk ditaruh di atas tumpukan (top)  pengambilan dilakukan pada posisi top Operasi pada Stack membutuhkan waktu konstan (O(1)). Contoh operasi pada stack : void push(Benda x); Benda pop(); Benda top(); Sumber; Dimodifikasi dari Ruli Manurung dan Ade Azurat, Fasilkom UI 2008

ADT: Queue enqueue Most recent Least recent dequeue getFront Sebuah Queue adalah kumpulan benda di mana benda yang pertama masuk akan pertama keluar  FIFO Bayangkan antrian printer job pada jaringan. Benda yang paling awal masuk berada di depan antrian (front). Penambahan dilakukan di belakang, penghapusan dilakukan di depan Operasi pada Queue membutuhkan waktu konstan (O(1)). Contoh operasi pada queue : void enqueue(Benda x); Benda dequeue(); Benda getFront(); Sumber; Dimodifikasi dari Ruli Manurung dan Ade Azurat, Fasilkom UI 2008

Penghapusan (dequeue) Ilustrasi Stack dan Queue Stack (LIFO) Atas (top of stack) Penambahan Penghapusan Stack (LIFO) Queue (FIFO) Queue (FIFO) Penambahan (enqueue) Penghapusan (dequeue)

Operasi-Operasi Pada Stack Initialisasi Stack. Pop benda dari posisi top stack. Push benda ke dalam posisi top. Apakah Stack kosong? Jangan underflow Apakah Stack penuh? Jangan overflow Mengosongkan Stack Menentukan Ukuran Stack

Operasi-Operasi Pada Queue Inisialisasi queue. Antrikan benda ke bagian belakang queue. Layani benda dari bagian depan queue. Apakah queue kosong? Apakah queue penuh? Berapa ukuran queue?

Implementasi Stack dengan Array Operasi Push Operasi Pop void push(stack t, int x); { t.top = t.top+1; t.isi[t.top] = x; } void pop(stack t); { t.top = t.top-1; }

Proses push pada Stack Top Sesudah Top Sebelum

Proses Pop pada Stack Benda keluar dari stack Top Sebelum Sesudah Top

Pintu masuk Casting Film : Ice Scream 5. Meri 4. Mira 3. Deni 2. Gani Antri sesuai nomor kedatangan 5. Meri 4. Mira 3. Deni 2. Gani 1. Sandi Pintu keluar

Implementasi Queue dengan Array secara Linear 1 2 3 4 5 6 7 dog fish duck cat finch Depan Belakang

Antrikan snake 1 2 3 4 5 6 7 dog fish duck cat finch snake Depan 1 2 3 4 5 6 7 dog fish duck cat finch snake Depan Belakang Antrikan

Antrikan eel 1 2 3 4 5 6 7 dog fish duck cat finch snake eel Depan 1 2 3 4 5 6 7 dog fish duck cat finch snake eel Depan Belakang Antrikan

Layani 1 2 3 4 5 6 7 fish duck cat finch snake eel Depan Belakang dog 1 2 3 4 5 6 7 fish duck cat finch snake eel Depan Belakang dog Ini keluar dari queue Layani

Layani 1 2 3 4 5 6 7 duck cat finch snake eel Depan Belakang fish 1 2 3 4 5 6 7 duck cat finch snake eel Depan Belakang Layani fish Ini keluar dari queue

Antrikan tiger 1 2 3 4 5 6 7 duck cat finch snake eel tiger Depan 1 2 3 4 5 6 7 duck cat finch snake eel tiger Depan Belakang Antrikan

Antrikan Ada ruang TAK ADA RUANG ape 1 2 3 4 5 6 7 duck cat finch 1 2 3 4 5 6 7 duck cat finch snake eel tiger TAK ADA RUANG Ada ruang Depan Belakang Antrikan

Implementasi secara sirkuler 7 6 1 5 2 4 3

Implementasi secara sirkuler Antrikan ape 1 2 3 4 5 6 7 ape duck cat finch snake eel tiger Belakang Depan

Kondisi Kritis : Kosong Depan/front Belakang/Tail/Rear Hapus !!! Max Underflow So…. Penambahan elemen akan menambah nilai Belakang/Tail/Rear Penghapusan elemen akan menambah nilai Depan/Front ……Front dan tail selalu bergerak maju………………….. Representasi Antrian dalam dua cara : Linier dan circular

Representasi Linier Max II I Max Max III 1. Kondisi Awal 3 2 4 5 6 Max Depan/front = 1 Belakang/Tail/Rear = 1 II I Max 6 1. Kondisi Awal 5 2. Penambahan Awal Belakang := Belakang + 1; Antrian [Belakang] := x; 4 3 2 1 3 2 4 5 6 Max III Depan/front = 1 Belakang/Tail/Rear = 4 1 Depan/front = 1 Belakang/Tail/Rear = 0 # Kondisi Kosong, jika Belakang < Depan

Representasi Linier Max Max 3. Penghapusan 4. Penambahan sampai penuh 6 3. Penghapusan 5 X := Antrian [Depan]; 4 Depan := Depan + 1; 3 4. Penambahan sampai penuh 1 3 2 4 5 6 Max Depan/front = 3 Belakang/Tail/Rear = 6 Jumlah Elemen Antrian : Belakang - Depan + 1 2 1 Depan/front = 3 Belakang/Tail/Rear = 4

Kekurangan Representasi Linier Kondisi Antrian : Max 6 Depan/front = 3 5 Belakang/Tail/Rear = 6 4 Jumlah elemen antrian = 6 - 3 + 1 = 4 3 Tempat Kosong = 6 - 4 = 2 2 1 3 2 4 5 6 Max 1 Penambahan ???? Belakang := Belakang + 1; Antrian [Belakang] := x; Akan terjadi Overflow, walaupun ada 2 tempat yang masih kosong !!

Solusi I : Melakukan Pergeseran Pergeseran elemen Max 6 Prosedur penghapusan ditambah dengan pergeseran 5 “Jika ada elemen yang di hapus, maka elemen diatasnya bergeser hingga nilai Depan selalu sama dengan 1”. 4 3 2 X := Antrian[1]; For I := 1 to Belakang - 1 do Antrian[I] := Antrian[I + 1]; Belakang := Belakang - 1 1 3 2 4 5 6 Max 1 Trouble !! Bagaimana kalo jumlah elemennya 10000 ????? Solusi II : Menggunakan variabel dinamis (pointer) dengan linked list

Penyajian PUSH Stack dengan Linked List Isi : 23 Now Top Isi : 23 Now Top Isi : 11 Top (a) (b) (c) Isi : 23 Now Top Isi : 11 Isi : 52 (d)

Penyajian POP Stack dengan Linked List Isi : 23 Hapus Isi : 11 Isi : 52 Top 52 elemen (a) Isi : 23 Hapus Isi : 11 11 elemen Top (b) Hapus Isi : 23 23 elemen Top (c)

Operasi Penambahan isi Queue dengan Linked List 1 2 3 4 5 head akhir tail

Operasi Penghapusan isi Queue dengan Linked List 1 2 3 5 head tail hapus 4 bantu 1 2 3 5 head tail hapus 4 bantu 1 2 3 5 head tail hapus 4 bantu

Latihan Buatlah sebuah algoritma untuk menetukan apakah sebuah kata adalah palindrome atau tidak Perhatikan gambar di bawah ini: