Materi kuliah STRUKTUR DATA
QUEUE
(ANTRIAN)
QUEUE merupakan suatu metode penyimpanan data ke memori komputer yang
mempunyai karakteristik sebagai berikut :
1. Penyisipan elemen (inserting) hanya boleh dilakukan di posisi setelah elemen
terakahir (TAIL/REAR/EKOR) dan penghapusan (deleting) elemen hanya boleh
dilakukan pada elemen pertama (HEAD/FRONT/KEPALA), sehingga elemen
yang pertama masuk akan menjadi elemen pertama yang dikeluarkan dari antrian
(First In First Out).
2. Hanya terdapat 2 (dua) operasi pada QUEUE, yaitu penyisipan/inserting (IN) dan
penghapusan/deleting (OUT) elemen.
REPRESENTASI QUEUE PADA ARRAY 1 DIMENSI
Jika QUEUE direpresentasikan dalam array sebaiknya digunakan circular
QUEUE, yaitu jika REAR sudah berada pada max elemen dan ada elemen baru
masuk, maka elemen baru tersebut diletakkan di posisi pertama.
Contoh: QUEUE dengan maksimal 6 elemen dalam antrian.
QUEUE
Operasi Front Rear 1 2 3 4 5 6
Mula-mula kosong 0 0
A, B, C disisipkan (IN) 1 3 A B C
A dihapus (OUT) 2 3 B C
D, E, F disisipkan (IN) 2 6 B C D E F
G disisipkan (IN) 2 1 G B C D E F
B, C dihapus (OUT) 4 1 G D E F
D, E, F dihapus (OUT) 1 1 G
G dihapus (OUT) 0 0
Dalam melakukan operasi IN dan OUT harus diperhatikan QUEUE dalam keadaan
penuh/kosong.
QUEUE
Keterangan Front Rear 1 2 3 4 5 6
QUEUE kosong 0 0
Ada 1 elemen dalam QUEUE 1 1 A
QUEUE penuh 1 6 A B C D E F
QUEUE penuh 4 3 D E F A B C
Materi kuliah STRUKTUR DATA
Algoritma Penyisipan Elemen
QUEUE_IN(Queue, Max, Front, Rear, Item)
If (Front==1 && Rear==Max) || (Front==Rear + 1)
Write(‘QUEUE Penuh’)
Else if Front == 0 //Jika QUEUE kosong posisikan elemen baru di 1
Front = 1; Rear = 1;
Else If Rear = Max //Jika elemen belakang di posisi max posisikan di 1
Rear = 1;
Else
Rear = Rear + 1; //Normalnya posisi elemen baru di rear + 1
Endif
Endif
Endif
QUEUE[Rear]=Item //sisipkan elemen baru
RETURN
Algoritma Penghapusan Elemen
QUEUE_OUT(Queue, Max, Front, Rear, Item)
If (Front==0) //Jika kosong
Write(‘QUEUE Kosong’)
Else
Item = QUEUE[Front];
if (Front == Rear) //Jika hanya ada 1 elemen
Front = 0; Rear = 0;
Else If (Front == Max) //Jika elemen depan di posisi max posisikan di 1
Front = 1;
Else
Front = Front + 1; //Normalnya posisi Front + 1
Endif
Endif
Endif
RETURN
Materi kuliah STRUKTUR DATA
REPRESENTASI QUEUE PADA LIST BERKAIT
Bila data yang disisipkan (IN) berturut-turut adalah Kadir, Tarsan, Eko,
Basuki, dan Gogon, maka model logikanya sebagai berikut:
Model fisiknya sebagai berikut:
Front
Rear
Front
Kadir Tarsan Eko Basuki Gogon
Alm Info Next
Algoritma Penambahan Elemen (IN)
QUEUE_INLL(Front, Rear, X) Malloc(Temp);
Rear->Next = Temp; Rear = Temp;
Endif Return;
Algoritma Penghapusan Elemen (OUT)
QUEUE_OUTLL(Front, Rear, X) If (Front = NULL)
Write(‘Queue Kosong’)
Else
P = Front;
X = Front->Info;
If (Front == Rear) //hanya ada 1 elemen
Front = NULL; Rear = NULL;
Else
Front = Front->Next;
EndIf
Free(P)
EndIf Return;