Queue Queue jika diartikan secara harafiah berarti antrian, Queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehidupan sehari – hari., misalnya pada saat Anda mengantri di loket untuk membeli tiket sehari – hari , misalnya pada saat Anda mengant ri di loket untuk membeli tiket. (gambar) Istilah yang cukup sering dipakai apabila seseorang masuk dalam sebuah anrian adalah ENQUEUE. Dalam suatu antrian, yang datang terlebih dahulu akan dilayani lebih dahulu. (gambar) Istilah yang sering dipakau bila seseorang keluar dari antrian adalah DEQUEUE Untuk membuat aplikasi antrian di atas dapat menggunakan 2 metoda : - Array *Linear array *Circular array - Linked list *Linear linked list *Circular linked list Implementasi QUEUE dengan ARRAY - Linear Array Linear array adalah suatu arraiy yang dibuat seakan akan merupakan suatu garis lurus dengan satu pintu masuk dan satu pintu keluar. (gambar) Berikut diberikan penggalan konstanta,type, dan variabel yang akan dipakai untuk menjelaskan operasi-operasi dalam queue linear array. Dalam praktek nya, Anda dapat menggantinya sesuai dengan kebutuhan Anda. Const MaxQueue = 6; Type TypeQueue = byte; var Queue : Array [1..MaxQueue] of TypeQueue; Head,Tail : Byte; Operasi- operasi pada Queue dengan Linear Array 1. Create Procedure create berguna untuk menciptakan QUEUE Yang baru dan kosong yaitu dengan cara memberikan nilai awal (head) dan nilai akhir (tail) dengan nol(0). Nol menunjukkan bahwa queue (antrian) msih kosong. Berikut penggalan procedure create. Procedure Create; begin Head :=0; Tail :=0; end; 2. Empty Function empty berguna untuk mengecek apakah QUEUE masih kosong atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah tail bernilai nol atau tidak, jika ya maka kosong. Berikut penggalan function empty. Function Empty; Boolean; begin if Tail = 0 then Empty:= False; End; 3. Full Function full berguna untuk mengecek apakah QUEUE sudah penuh atau masih bisa menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal queue, jika ya maks penuh. Berikut penggalan function full. Function Full : Boolean ; begin if Tail = MaxQueue then Full := True else Full := False; end; 4. EnQueue Procedure EnQueue berguna untuk memasukkan 1 elemen ke dalam QUEUE. Berikut penggalan procedure EnQueue. Procedure EnQueue (Elemen : Byte); begin if Empty then begin Head := 1; Tail :=1; Queue [Head] :=Elemen; end; end; 5. DeQueue Procedure DeQueue berguna untuk mengambil 1 elemen dari QUEUE, operasi ini sering disebut juga SERVE. Hal ini dilakukan dengan cara memindahkan semua elemen satu langkah ke posisi di depannya, sehingga otomatis elemen yang paling depan akan tertimpa dengan elemen yang terletak di belakangnya. Berikut penggalan procedure DeQueue. 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. 6. Clear Procedure clear berguna untuk mengahapus semua elemen dalam QUEUE dengan jalan mengeluarkan semua eleen tersebut satu per satu sampai kosong dengan memanfaatkan prosedure DeQueue. Berikut penggalan procedure clear. Procedure Clear; begin while Not Empty then DeQueue; End; Berikut ini adalah simulasi untuk antrian (queue) 1. masukkan nama pengantri pada kolom "Masukkan Antrian" 2. setelah menginputkan nama maka akan muncul pada kolo, "isi Antrian" 3. jika kita ingin melihat alur keluar antrian maka tekan "Keluar Antrian" Berikut ini adalah script Queue dengan javascript : <script languange="Javascript"> var queue = []; function Masuk_Antrian(data){queue.push(data);} function Keluar_Antrian(){var yang_keluar_antrian = queue.shift();if (queue.length == 0)return "Stack sudah kosong";elsereturn yang_keluar_antrian;}function Dalam_Antrian(list){list.options.length = 0;for (var i = 0; i < queue.length; i ++){var data = new Option(queue[i]);list.options[list.options.length] = data;}} </script> maka hasilnya adalah seperti diwah ini, anda bisa mencobanya : Isi Antrian ..
Tidak ada komentar: