0
Pengertian Queue (Antrian) beserta Script JavaScript
Posted by jujur
on
4:17 AM
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";
else
return 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>
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";
else
return 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>