algoritma dan struktur data -...

53
Algoritma dan Struktur Data Queue

Upload: lyxuyen

Post on 22-Mar-2019

384 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Algoritma dan Struktur Data

Queue

Page 2: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Queue

Page 3: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Apakah queue itu?

• Queue merupakan linear list di mana data

dimasukkan melalui sebuah ujung yang

disebut end/rear dan dihapus dari ujung

lain yang disebut front

• first in – first out (FIFO)

Page 4: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 5: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Operasi queue

• Enqueue

• Dequeue

• Queue Front

• Queue Rear

• Queue Example

Page 6: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Enqueue • Memasukkan data baru ke rear.

Page 7: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Dequeue • Menghapus data yang ada di front.

Page 8: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Queue front • Mengembalikan elemen yang ada di front tanpa

menghapusnya

Page 9: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Queue rear • Mengembalikan elemen yang ada di rear tanpa

menghapusnya

Page 10: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 11: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

(Continued)

Page 12: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Implementasi queue dengan linked list

• Struktur data queue

• Algorithms

Page 13: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Data structure

Page 14: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

pointer

Page 15: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Queue algorithms

• Create queue

• Enqueue

• Dequeue

• Queuefront

• Queuerear

• Empty queue

• Full queue

• Queue count

• Destroy queue

Page 16: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 17: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

(Continued)

Page 18: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Create queue

Page 19: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

enqueue

Page 20: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 21: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

dequeue

Page 22: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 23: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 24: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 25: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 26: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 27: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 28: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

ADT Queue

• Struktur Queue

• Algoritma ADT Queue

Page 29: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 30: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 31: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

傳進來的是儲存資料變數的位

址,用區域指標變數來接。

Page 32: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

傳進來的是儲存指到資料變數的指標

變數的位址,用區域指標變數(一個指

到指標變數的指標變數)來接。

dequeue (queue, (void*)&dataPtr)

Page 33: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

queueFront (queue, (void*)&dataPtr)

Page 34: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

queueRear (queue, (void*)&dataPtr)

Page 35: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 36: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 37: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 38: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Contoh penggunaan queue

•Mengkategorikan data

Page 39: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Mengkategorikan data

• Kadang kita butuh menyusun ulang data

tanpa mengubah urutan aslinya.

• Example: – 3 22 12 6 10 34 65 29 9 30 81 4 5 19 20 57 44 99

– We want the list rearranged as shown below.

• Less than 10 : 3 6 9 4 5

• Between 10 and 19 : 12 10 19

• Between 20 and 29 : 22 29 20

• 30 and greater : 34 65 30 81 57 44 99

Page 40: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

Desain

• Queue category

• Mengisi kategori queue

Page 41: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 42: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 43: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 44: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

(Continued)

Page 45: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 46: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 47: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 48: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

(Continued)

Page 49: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

(Continued)

Page 50: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 51: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 52: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear
Page 53: Algoritma dan Struktur Data - eriq.lecture.ub.ac.ideriq.lecture.ub.ac.id/files/2012/05/Queue.pdfAlgoritma dan Struktur Data Queue . Queue . Apakah queue itu? •Queue merupakan linear

EXIT IN

Problem

Program simulasi ini didasarkan pada persoalan berikut. Ada suatu tempat parkir yang hanya bisa

memuat mobil dalam satu baris, jumlah mobil yang bisa masuk untuk nomor ini bisa dibatasi. Mobil

masuk lewat pintu Utara (belakang) dan keluar lewat pintu Selatan (depan). Jika mobil yang berada paling

depan (di sisi paling Selatan) akan keluar maka mobil tersebut segera bisa keluar. Tetapi jika mobil yang

akan keluar adalah mobil yang di tengah, maka mobil yang terletak di depannya (di sebelah Selatan)

harus dikeluarkan sementara. Setelah mobil yang dimaksud keluar, maka mobil yang dikeluarkan

sementara tadi dimasukkan kembali ke tempat parkir dengan susunan seperti semula. Sehingga mobil

yang semula berada paling depan tetap berada pada posisinya semula. Mobil-mobil yang terletak di

sebelah Utaranya mobil yang keluar tadi digeser maju ke depan, sehingga bagian kosong selalu berada

pada pintu Utara (belakang). Dengan memperhatikan persoalan di atas, sebenarnya simulasi ini selain

berisi antrian juga berisi tumpukan, yakni pada saat sebuah mobil yang berada di 37 tengah akan

dikeluarkan, maka semua mobil yang ada di sebelah Selatannya ditumpuk (di-push) di tempat

penampungan sementara. Baru setelah mobil yang dimaksud keluar, maka semua mobil yang berada di

tempat penampungan sementara dipop kembali. Dengan cara ini semua mobil akan mempunyai posisi

yang sama seperti sebelum suatu mobil dikeluarkan dari tempat parkir.

program simulasi tempat parkir.