Antrian 
Algoritma dan 
Struktur Data 
Georgius Rinaldo 
dodo@kuliahkita.com
Pendahuluan 
Antrian adalah sebuah struktur penyimpanan data yang 
menyimpan data sesuai urutan dan proses pengambilan 
seperti antrian. 
Antrian memiliki prinsip First in First Out (FIFO). Karena 
seperti layaknya antrian, data yang dimasukkan pertama 
akan diambil terlebih dahulu.
Metode pada Antrian 
Terdapat beberapa method dasar pada queue: 
1. Enqueue : menambahkan data ke queue di paling 
belakang 
2. Dequeue : mengambil dari antrian paling depan, 
elemen akan hilang 
3. Peek : memeriksa data antrian pertama 
4. IsEmpty : memeriksa apakah antrian kosong
Struktur Antrian 
Antrian juga mirip dengan tumpukan yang serupa dengan 
list, hanya saja pop pada queue akan mengembalikan 
elemen yang masuk setelah elemen terdepan yang di-pop 
Peek Enqueue 
Dequeue
Antrian Senarai 
Karena memang memiliki dasar yang sama dengan list, 
Antrian dapat digambarkan sebagai list linier dengan: 
1. Kepala : elemen pertama 
2. Ekor : elemen terakhir 
3. Aturan penyisipan pada elemen terakhir, dan 
penghapusan / pengambilan pada elemen pertama 
Head Tail
Contoh Antrian Terbatas(Larik) 
Head, Front IdxMax 
x x x x x x 
Posisi Head = Tail (queue kosong)
Contoh ADT Array Queue Integer 
type Queue: < integer capacity /* kapasitas queue*/ 
integer tail /* indeks queue */ 
integer infoTail /* nilai teratas pada queue */ 
integer Q[capacity] /* Q menampung elemen queue */ > 
/* mengembalikan nilai terdepan dari queue */ 
function peek(Input Q: Queue) → integer 
/* mengembalikan nilai pada queue*/ 
function infoTail(Input Q: Queue) → integer 
/* memeriksa apakah queue kosong */ 
function isEmpty(Input Q: Queue) → boolean 
/* menginisialisasi queue */ 
Procedure buatQueue(Output Q: Queue) 
/* menambah nilai pada queue */ 
Procedure enqueue(Input/Output Q: Queue, X: in integer) 
/* mengambil nilai dari queue */ 
Procedure dequeue(Input/Output S: Stack, Output X: integer)
Penjelasan TDA Antrian 
Seperti tumpukan, antrian juga memiliki kapasitas yang 
menyaktan jumlah elemen yang bisa diisi pada 
penampung berbentuk larik, karena larik ini juga akan 
didefinisikan dengan besar = kapasitas. 
Tail merupakan indeks kosong terakhir antrian sehingga 
kita tidak perlu lagi mencari indeks terakhir pada larik 
penampung yang telah terisi jika ingin melakukan operasi. 
Sedangkan infoTail yang diset juga untuk dapat langsung 
mengembalikan nilai terdepan.
Contoh Kode C++ Array Queue Integer 
#include <iostream> 
using namespace std; 
typedef struct queue { 
int capacity; /* kapasitas antrian */ 
int tail; /* informasi indeks dari elemen kosong terakhir pada antrian */ 
int infoTail; /* informasi dari elemen informasi dari elemen terakhir pada antrian */ 
int Q[10]; /* tempat penyimpanan antrian dalam larik */ 
} Queue; 
void buatQueue(Queue &Q) { 
Q.capacity = 10; // inisialisasi kapasitas queue 
Q.tail = 0; 
for (int i=0; i<10 ; i++) { 
Q.Q[i] = -9999; 
} // misalkan nilai -9999 adalah penanda kosong 
}
Contoh Kode C++ Array Queue Integer 
bool isEmpty(Queue Q) { 
return Q.tail == 0; 
} 
int Dequeue(Queue &Q) { 
int num = Q.Q[0]; 
Q.tail -= 1; 
int iterator = 0; 
bool done = false; 
while (!done) { // rapatkan antrian setelah pengambilan 
Q.Q[iterator] = Q.Q[iterator+1]; 
iterator++; 
if(Q.Q[iterator] == -9999) { 
done = true; 
} 
} 
return num; 
}
Contoh Kode C++ Array Queue Integer 
void Enqueue(Queue &Q, int x) { 
if (Q.tail != 10) { // jika queue belum penuh 
Q.Q[Q.tail] = x; // isi nilai head yang kosong dengan x 
Q.head += 1; // naikan nilai head 
} 
} 
int main() { 
Queue myQueue; 
buatQueue(myQueue); 
Enqueue(myQueue, 10); 
Enqueue(myQueue, 20); 
for (int i=0; i<10; i++) 
cout << myQueue.Q[i] <<" | "; 
int hasil = Dequeue(myQueue); 
cout << endl << "hasil: " << hasil << endl; 
for (int i=0; i<10; i++) 
cout << myQueue.Q[i] <<" | "; 
return 0; 
}
Pemanfaatan Queue 
Aplikasi queue / antrian dapat digunakan contohnya pada 
1. Program pemesanan (resrevasi hotel, tempat makan, 
travel, dll) 
2. Program penjadwalan (waktu eksekusi sub-program) 
3. Program penyaringan / filter, misalkan pada jaringan 
komputer untuk pembagian bandwidth 
4. dll

Algoritma dan Struktur Data - Antrian

  • 1.
    Antrian Algoritma dan Struktur Data Georgius Rinaldo dodo@kuliahkita.com
  • 2.
    Pendahuluan Antrian adalahsebuah struktur penyimpanan data yang menyimpan data sesuai urutan dan proses pengambilan seperti antrian. Antrian memiliki prinsip First in First Out (FIFO). Karena seperti layaknya antrian, data yang dimasukkan pertama akan diambil terlebih dahulu.
  • 3.
    Metode pada Antrian Terdapat beberapa method dasar pada queue: 1. Enqueue : menambahkan data ke queue di paling belakang 2. Dequeue : mengambil dari antrian paling depan, elemen akan hilang 3. Peek : memeriksa data antrian pertama 4. IsEmpty : memeriksa apakah antrian kosong
  • 4.
    Struktur Antrian Antrianjuga mirip dengan tumpukan yang serupa dengan list, hanya saja pop pada queue akan mengembalikan elemen yang masuk setelah elemen terdepan yang di-pop Peek Enqueue Dequeue
  • 5.
    Antrian Senarai Karenamemang memiliki dasar yang sama dengan list, Antrian dapat digambarkan sebagai list linier dengan: 1. Kepala : elemen pertama 2. Ekor : elemen terakhir 3. Aturan penyisipan pada elemen terakhir, dan penghapusan / pengambilan pada elemen pertama Head Tail
  • 6.
    Contoh Antrian Terbatas(Larik) Head, Front IdxMax x x x x x x Posisi Head = Tail (queue kosong)
  • 7.
    Contoh ADT ArrayQueue Integer type Queue: < integer capacity /* kapasitas queue*/ integer tail /* indeks queue */ integer infoTail /* nilai teratas pada queue */ integer Q[capacity] /* Q menampung elemen queue */ > /* mengembalikan nilai terdepan dari queue */ function peek(Input Q: Queue) → integer /* mengembalikan nilai pada queue*/ function infoTail(Input Q: Queue) → integer /* memeriksa apakah queue kosong */ function isEmpty(Input Q: Queue) → boolean /* menginisialisasi queue */ Procedure buatQueue(Output Q: Queue) /* menambah nilai pada queue */ Procedure enqueue(Input/Output Q: Queue, X: in integer) /* mengambil nilai dari queue */ Procedure dequeue(Input/Output S: Stack, Output X: integer)
  • 8.
    Penjelasan TDA Antrian Seperti tumpukan, antrian juga memiliki kapasitas yang menyaktan jumlah elemen yang bisa diisi pada penampung berbentuk larik, karena larik ini juga akan didefinisikan dengan besar = kapasitas. Tail merupakan indeks kosong terakhir antrian sehingga kita tidak perlu lagi mencari indeks terakhir pada larik penampung yang telah terisi jika ingin melakukan operasi. Sedangkan infoTail yang diset juga untuk dapat langsung mengembalikan nilai terdepan.
  • 9.
    Contoh Kode C++Array Queue Integer #include <iostream> using namespace std; typedef struct queue { int capacity; /* kapasitas antrian */ int tail; /* informasi indeks dari elemen kosong terakhir pada antrian */ int infoTail; /* informasi dari elemen informasi dari elemen terakhir pada antrian */ int Q[10]; /* tempat penyimpanan antrian dalam larik */ } Queue; void buatQueue(Queue &Q) { Q.capacity = 10; // inisialisasi kapasitas queue Q.tail = 0; for (int i=0; i<10 ; i++) { Q.Q[i] = -9999; } // misalkan nilai -9999 adalah penanda kosong }
  • 10.
    Contoh Kode C++Array Queue Integer bool isEmpty(Queue Q) { return Q.tail == 0; } int Dequeue(Queue &Q) { int num = Q.Q[0]; Q.tail -= 1; int iterator = 0; bool done = false; while (!done) { // rapatkan antrian setelah pengambilan Q.Q[iterator] = Q.Q[iterator+1]; iterator++; if(Q.Q[iterator] == -9999) { done = true; } } return num; }
  • 11.
    Contoh Kode C++Array Queue Integer void Enqueue(Queue &Q, int x) { if (Q.tail != 10) { // jika queue belum penuh Q.Q[Q.tail] = x; // isi nilai head yang kosong dengan x Q.head += 1; // naikan nilai head } } int main() { Queue myQueue; buatQueue(myQueue); Enqueue(myQueue, 10); Enqueue(myQueue, 20); for (int i=0; i<10; i++) cout << myQueue.Q[i] <<" | "; int hasil = Dequeue(myQueue); cout << endl << "hasil: " << hasil << endl; for (int i=0; i<10; i++) cout << myQueue.Q[i] <<" | "; return 0; }
  • 12.
    Pemanfaatan Queue Aplikasiqueue / antrian dapat digunakan contohnya pada 1. Program pemesanan (resrevasi hotel, tempat makan, travel, dll) 2. Program penjadwalan (waktu eksekusi sub-program) 3. Program penyaringan / filter, misalkan pada jaringan komputer untuk pembagian bandwidth 4. dll