Staffsite STMIK PPKIA Pradnya Paramita

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.
Operasi
Mula-mula kosong
A, B, C disisipkan (IN)

A dihapus (OUT)
D, E, F disisipkan (IN)
G disisipkan (IN)
B, C dihapus (OUT)
D, E, F dihapus (OUT)
G dihapus (OUT)

Front

Rear

0
1
2
2
2
4
1
0


0
3
3
6
1
1
1
0

1

QUEUE
2 3 4 5

A B
B
B
G B
G
G


6

C
C
C D E F
C D E F
D E F

Dalam melakukan operasi IN dan OUT harus diperhatikan QUEUE dalam keadaan
penuh/kosong.
Keterangan
QUEUE kosong
Ada 1 elemen dalam QUEUE
QUEUE penuh
QUEUE penuh

Front

Rear


0
1
1
4

0
1
6
3

1

QUEUE
2 3 4 5

6

A
A B C D E F

D E F A B C

QUEUE (Antrian) ............................................................................................................................................ 1/3

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

QUEUE (Antrian) ............................................................................................................................................ 2/3

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:
Front


Rear
Kadir

Tarsan

Eko

Basuki

Gogon

Model fisiknya sebagai berikut:
Front
3

Rear

1

Alm

1
2
3
4
5
6
7

Info
Gogon
Eko
Kadir

Next
0
5
6

Basuki
Tarsan


1
2

Algoritma Penambahan Elemen (IN)
QUEUE_INLL(Front, Rear, X)
Malloc(Temp);
Temp->Info = X;
Temp->Next = NULL;
If (Front == Null)
Front = Temp;
Rear = Temp;
Else
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;
QUEUE (Antrian) ............................................................................................................................................ 3/3