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