Rabu, 02 Desember 2015

TUGAS QUEUE

1.      perbedaan antara queue  dengan stack
Stack memakai sistem LIFO atau last in first out (yang pertama masuk akan keluar terakhir, begitu pula yang terakhir masuk akan keluar pertama kali) yang apabila kita mengahapus/ keluar data, maka data yang terakhirlah yang akan terhapus/ keluar terlebih dahulu.
§  Sementara queue memakai siste FIFO atau first in first out (yang pertama masuk akan keluar pertama, begitu pula yang masuk terakhir akan keluar terakhir) yang apabila kita menghapus / mengeluarkan data, maka data yang pertamalah yang akan terhapus/ keluar terdahulu dan data yang terakhir akan terhapus/ keluar terakhir
§  Guna counter pada rangkaian stack dan queue adalah untuk menentukan apakah stack atau queue tersebut sudah full atau masih empty.


2.      contoh program dari Queue.
uses crt;
            var
queue:array[1..10] of integer;
i,pos,pil:integer;
            procedure enqueue;
var
bil:integer;
begin
clrscr;
if (pos>=10) then
begin
writeln(‘Antrean penuh’); readln();
end
else
begin
write(‘Masukkan bilangan : ‘);readln(bil);
pos:=pos+1;
queue[pos]:=bil;
end;
end;
            procedure deque;
begin
clrscr;
if (pos=0) then
begin
            writeln(‘Tidak ada Antrean’);readln();
end
else
begin
{restructuring queue}
pos:=pos-1;
for i:=1 to pos do
begin
queue[i]:=queue[i+1];
end;
end;
end;
            procedure empty;
var
i:integer;
begin
clrscr;
if (pos=0) then
begin
writeln(‘Tidak ada Antrean’);readln();
end
            writeln(‘Tidak ada Antrean’);readln();
end
else
begin
{restructuring queue}
pos:=pos-1;
for i:=1 to pos do
begin
queue[i]:=queue[i+1];
end;
end;
end;
            procedure empty;
var
i:integer;
begin
clrscr;
if (pos=0) then
begin
writeln(‘Tidak ada Antrean’);readln();
end
else
begin
l:=1;
for k:=pos downto 1 do
begin
gotoxy(k*3,1);
write(queue[l]);
l:=l+1;
end;
readln();
end;
end;

begin
clrscr;
{inisialisasi queue}
for i:=1 to 10 do
begin
queue[i]:=-1;
end;
{posisi awal queue}
pos:=0;
{pilihan menu queue}
while (pil<>5) do
begin
textbackground(blue);
textcolor(white);
clrscr;
writeln(‘MENU PILIHAN QUEUE ‘);
writeln(‘================== ‘);
writeln(‘1. ENQUEUE         ‘);
writeln(‘2. DEQUE           ‘);
writeln(‘3. Kosongkan QUEUE ‘);
writeln(‘4. Lihat QUEUE     ‘);
writeln(‘5. Selesai         ‘);
write(‘Pilihan Anda :’); readln(pil);
case pil of
1: enqueue();
2: deque();
3: empty();
4: display();
end;
end;
end.
3.      contoh Queue yang Anda terapkan dalam kehidupan sehari – hari.
Contohnya yaitu
 antrian pada kasir pada sebuah bank. Ketika seorang pelanggan datang, akan menuju ke belakang dari antrian. Setiap pelanggan dilayani, antrian yang berada di depan akan maju. Jika kita ada di antrian kedua, maka kita akan menunggu antrian pertama melakukan prosesnya
Nah, ketika selesai proses dari antrian pertama dia akan pergi, dan giliran kita untuk maju untuk melakukan proses. Begitu juga arti dari antrian dalam bahasan kali ini, jika pengantri pertama datang maka dia juga yang akan keluar pertama kali atau bahasa kerennya tu FIFO ( First In First Out ).
            Kondisi antrian yang menjadi perhatian :
Ò  Penuh
                        Bila elemen pada antrian mencapai kapasitas maksimum antrian, maka tidak mungkin dilakukan penambahan ke antrian. Penambahan elemen menyebabkan kondisi kesalahan overflow
Ò   Kosong
                        Bila tidak ada elemen pada antrian, maka tidak mungkin dilakukan pengambilan elemen dari antrian. Pengambilan elemen menyebabkan kondisi kesalahan overflow





4.      konsep dari operasi – operasi Queue.
Fungsi IsEmpty
                         berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. hal ini dilakukan dengan mengecek apakah tail bernilai -1 atau tidak. Nilai -1 menandakan bahwa queue masih kosong.
• IsFull
                        Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bias menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal queue. Jika nilai keduanya sama, berarti queue sudah penuh.
• EnQueue
                        Fungsi EnQueue berguna untuk memasukkan sebuah elemen dalam queue.
• DeQueue
                        Fungsi DeQueue berguna untuk mengambil sebuah elemen dari queue. Operasi ini sering disebut juga serve. Hal ini dilakukan dengan cara memindahkan sejauh satu langkah ke posisi di depannya sehingga otomatis elemen yang paling depan akan tertimpa dengan elemen yang terletak di belakangnya.
• Clear
                        Fungsi Clear berguna untuk menghapus semua lemen dalam queue dengan jalan mengeluarkan semua elemen tersebut satu per satu hingga queue kosong dengan memanfaatkan fungsi DEQueue.

5.      kondisi yang harus diperhatikan dalam operasi – operasi Queue
6.                  Operasi-operasi dasar dari sebuah queue adalah :
1.Enqueue : proses penambahanelemen di posisibelakang
2.Dequeue : proses pengambilanelemen di posisidepan

Selain operasi dasar di atas, ada pula operasi-operasi lain yang dapat dilakukan terhadap sebuah queue yaitu :

1.CREATE (Q) Operator yang menunjukkan suatu antrean hampa Q.
Berarti : Noel (Q) = 0
Front (Q) & Rear (Q) = tidak terdefinisi
    2.ISEMPTY (Q) Operator yang menunjukkan apakah antrean Q    hampa.
Operand        
            : tipe data antrean
Hasil                : tipe data boolean
ISEMPTY (CREATE (Q)) = True

3.INSERT (E, Q) Operator yang menginsert elemen E ke dalam antrean Q.

E ditempatkan di bagian belakang antrean.
Hasil : antrean yang lebih besar.
REAR (INSERT (E, Q)) = E
ISEMPTY (INSERT (E, Q)) = False
            4.REMOVE (Q)Operator yang menghapus elemen bagian depan dari antrean Q.
Hasil
   : antrean yang lebih pendek.
Pada setiap operasi, Noel (Q) berkurang 1 dan elemen ke-2 menjadi elemen terdepan.
Jika Noel (Q) = 0 maka Q = hampa
Remove (Q) = kondisi error (underflow condition)
Remove (Create (Q)) = kondisi error (underflow condition)
 
 


Tidak ada komentar:

Posting Komentar