Your SlideShare is downloading. ×
0
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Queue
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Queue

314

Published on

Queue

Queue

Published in: Engineering
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
314
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
39
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Queue Sherly Christina, S.Kom., M.Kom
  • 2. Definisi • Secara harfiah berarti antrian. • sering kita temui dalam kehidupan sehari-hari, • misalnya pada saat mengantri di loket untuk membeli tiket.
  • 3. Representasi Antrian
  • 4. Istilah-Istilah • ENQUEUE : apabila seseorang masuk kedalam antrian atau terjadi penambahan data pada antrian. • Dalam suatu antrian yang datang terlebih dahulu akan dilayani lebih dahulu (First In First Out) • DEQUEUE:bila seseorang keluar dari antrian atau terjadi penghapusan data dari antrian
  • 5. Operasi Pada Antrian (Memasukan elemen/Enqueue) • Memasukan elemen ke dalam antrian ▫ Kondisi Awal: ada sebuah antrian ▫ Buat Elemen baru yang akan dimasukkan
  • 6. Operasi Pada Antrian (Memasukan elemen/Enqueue) • Elemen baru dimasukkan ke dalam queue
  • 7. Operasi Pada Antrian (Memasukan elemen/Enqueue) • Penunjuk Last diubah menunjuk ke elemen baru sebagai elemen paling terakhir
  • 8. Operasi Pada Antrian (Mengeluarkan elemen/Dequeue) ▫ Kondisi Awal: ada sebuah antrian
  • 9. Operasi Pada Antrian (Mengeluarkan elemen/Dequeue) • Penunjuk First diubah menunjuk ke elemen dibelakang elemen paling depang
  • 10. Operasi Pada Antrian (Mengeluarkan elemen/Dequeue) • Elemen paling depan dikeluarkan dari antrian
  • 11. Metode membuat antrian 1. Array ▫ Linier Array ▫ Circular Array 2. linked list
  • 12. Metode membuat antrian 1. Array Statis ▫ Linier Array ▫ Circular Array 2. Linked List Dinamis
  • 13. Implementasi QUEUE dengan Linear ARRAY • Linier Array : suatu array yang dibuat seakan- akan merupakan suatu garis lurus dengan satu pintu masuk dan satu pintu keluar. • Antrian dapat mengalami kondisi penuh • Tempat pada array dapat tidak diisi elemen • Penanganan enqueue dan dequeue dengan menggeser elemen
  • 14. Definisi QUEUE dengan Linear ARRAY (Pascal) Const MaxQueue = 6; Type TypeQueue = byte; Var Queue : Array [1..MaxQueue] of TypeQueue; Head, Tail : byte;
  • 15. 1. Create Queue Linear Array • Procedure Create: menciptakan QUEUE yang baru dan kosong • Cara: memberikan nilai awal (Head First) dan nilai akhir (Tail Last) dengan nol (0). • Nol Queue (antrian) masih kosong. Procedure Create; Begin Head := 0; Tail := 0; End;
  • 16. 2.Empty Queue Linear Array • Function Empty : mengecek apakah Queue masih kosong atau sudah berisi data. • Cara: mengecek apakah tail bernilai nol atau tidak, jika ya maka kosong. Function Empy : Boolean; Begin If (Tail = 0) then Empty := True Else Empty := False; End;
  • 17. 3.Full Queue Linear Array • Function Full : mengecek apakah Queue sudah penuh atau masih bisa menampung data • Cara: cek apakah tail sudah sama dengan jumlah maksimal queue, jika ya maka penuh. Function Full : Boolean; Begin If (Tail = MaxQueue) then Full := True Else Full := False End;
  • 18. 4.EnQueue Queue Linear Array • Procedure EnQueue: memasukan 1 elemen ke dalam QUEUE. Procedure EnQueue(Elemen : Byte); Begin If (Empty) then Begin Head := 1; Tail := 1; Queue[Head] := Elemen; End Else If (Not Empty) then Begin Inc (Tail); Queue(Tail) := Elemen; End; End;
  • 19. 5. Dequeu Queue Linear Array • Procedure DeQueue berguna untuk mengambil 1 elemen dari QUEUE, operasi ini sering disebut juga SERVE. • Cara: memindahkan semua elemen satu langkah ke posisi di depannya, sehingga otomatis elemen yang paling depan akan tertimpa dengan elemen yang terletak di belakangnya Procedure DeQueue; Var i : Byte; begin if (Not Empty) then Begin For (i := Head) To (Tail-1) Do Queue[i] := Queue[i + 1]; Dec(Tail); End; End;
  • 20. 5. Clear Queue Linear Array • Procedure Clear: menghapus semua elemen dalam QUEUE • Cara : mengeluarkan semua elemen tersebut satu per satu sampai kosong dengan memanfaatkan procedure DeQueue Procedure Clear; Begin While (Not Empty) Then DeQueue; End;
  • 21. Queue pada Circular Array• Circular array: suatu array yang dibuat seakan-akan merupakan sebuah lingkaran • Dengan titik awal (Head) dan titik akhir (Tail) saling bersebelahan jika array tersebut masih kosong. • Operasi pada circular array tidak berbeda jauh dengan operasi pada linear array.
  • 22. QUEUE dengan DOUBLE LINKED LIST • Metode linked list yang digunakan adalah double linked list. • Pada representasi dinamis, penambahan elemen tetap dilakukan pada akhir queue. • Pengambilan/penghapusan elemen tetap dilakukan pada awal queue • Berikut penggalan type, konstanta dan variable yang akan digunakan dalam penjelasan operasi-operasi queue dengan linked list. Type Point = ^Simpul; Simpul = Record Isi : TipeData; Next : Point; End; Queue = Record Head : Point; Tail : Point; End; Var Q : Queue; N : 0..MaxQueue; { Jumlah Antrian}
  • 23. 1. Create QUEUE DOUBLE LINKED LIST • untuk menciptakan QUEUE yang baru dan kosong. • Cara: mengarahkan pointer head dan tail kepada NIL. Procedure Create; Begin Q.Head := NIL; Q.Tail := Q.Head; End;
  • 24. 2.Empty QUEUE DOUBLE LINKED LIST • untuk mengecek apakah QUEUE masih kosong atau sudah berisi data. • Hal ini dilakukan dengan mengecek Head masih menunjuk pada nil atau tidak, jika ya maka kosong. Function Empty:Boolean; Begin If (Q.Head = NIL) then Empty := True Else Empty := False; End;
  • 25. 3.Full QUEUE DOUBLE LINKED LIST • untuk mengecek apakah QUEUE sudah penuh atau masih bisa menampung data. • Cara: dengan mengecek apakah N (Jumlah Queue) sudah sama dengan Max_Queue atau belum, jika ya maka penuh. Function Full : Boolean; Begin If (N = Max_Queue) then Full := True Else Full := False; End;
  • 26. 4.EnQueue QUEUE DOUBLE LINKED LIST • Untuk memasukan 1 elemen ke dalam QUEUE. • Cara : (head dan tail mula-mula menunjuk ke NIL). Procedure EnQueue (Elemen : TipeData); Var Now : Point; Begin If (Not Full) then Begin New(Now); Now.^Isi := elemen; Now.^Next := NIL; If (Empty) then Begin Q.Head := Now; Q.Tail := Now; N := 1;
  • 27. 4.EnQueue QUEUE DOUBLE LINKED LIST End else Begin Q.Tail.^Next := Now; Q.Tail := Now; Inc(N); End; End; End;
  • 28. 5.DeQueue QUEUE DOUBLE LINKED LIST • untuk mengambil 1 elemen dari QUEUE. • Cara: menghapus satu simpul yang terletak paling depan (depan). Procedure DeQueue; Var Now : Point; Begin If (Not Empty) then Begin Now := Q.Head; Q.Head := Q.Head^.Next; Dispose(Now); Dec(N); End; End;

×