Anda di halaman 1dari 3

Nama : Aulia Salsabilla

NIM : 222011592
Kelas : 2KS5
Kode : SV28P

RESPONSI TEORI STRUKTUR DATA #7


QUEUE (ANTRIAN)

A. PENGERTIAN
Konsep queue berbanding terbalik dengan stack. Queue menyimpan data dengan
konsep FIFO (Fisrt In First Out), data yang masuk paling awal akan keluar paling awal atau
LILO (Last In Last Out). Selain itu, queue mempunyai dua jalan
STACK QUEUE
LIFO (Last in Last FIFO
Hanya ada satu end yaitu head (front) Ada dua end yaitu head (front) dan tail (rear)
Penambahan dan penghapusan elemen Penambahan elemen dilakukan melalui tail
dilakukan melalui head (rear), penghapusan dilakukan melalui head
(front)

B. OPERASI PADA QUEUE


1. Enqueue : Operasi penambahan satu elemen baru ke dalam queue (antrian)
2. Dequeue : Operasi penghapusan satu elemen di dalam queue (antrian)

C. IMPLEMENTASI QUEUE
1. Queue Menggunakan Array
a. Deklarasikan stack QUEUE sebagai Array dengan ukuran N (kapitas queue)
DEKLARASI

#define N 50
int QUEUE [N], rear, front;
Catatan : jika front = -1, rear = -1 artinya QUEUE kosong (karena index array mulai dari
0)
b. Buat fungsi untuk display (menampilkan), enqueue (menambahakan), dan dequeue
(menghapus) elemen.
DISPLAY

void Display()
{
if(rear = -1) {
printf("ANTRIAN KOSONG"); }
else {
printf("DAFTAR ANTRIAN : \n");
for (int i = front; i<=rear; i++) {
printf("%d\n", QUEUE [i]); }
}
}

ENQUEUE

/*Menambahkan Elemen*/
void Enqueue(int item)
{
if(rear == N-1) {
printf ("ANTRIAN PENUH");
return; }
if (front = -1)
/*Jika antrian kosong dan ditambahkan elemen baru*/
/*maka elemen tersebut berada pada front=rear=0*/
front = 0;
rear++;
QUEUE[rear] = item;
}

DEQUEUE

/*Menghapus Elemen*/
void Dequeue (int item)
{
if (rear = -1) {
printf ("ANTRIAN KOSONG");
return; }
if (front==rear)
front = rear = -1;
else {
for (int i = 0; i<rear; i++) {
QUEUE[i] = QUEUE [i+1];}
rear--;
front = 0; }
}

FUNGSI MAIN

int main () {
/*Kosongkan Queue*/
rear = front = -1;
/*Menambahkan elemen 10,20,30,40,50*/
Enqueue(10);
Enqueue(20);
Enqueue(30);
Enqueue(40);
Enqueue(50);
/*Menghapus elemen 10,20*/
Dequeue(10);
Dequeue(20);
/*Menampilkan elemen yang tersisa*/
Display();
/*Menampilkan indeks front dan rear*/
printf("\n\n%d %d", front, rear); }

2. Queue Menggunakan Linked List


1. Deklarasikan elemen dari antrian dengan mendefinisikan node structure linked list
DEKLARASI

struct node {
int data;
struct node *next; };
typedef struct node* item;

2. Buat structure queue untuk menyimpan jumlah node dalam linked list, node front, dan
rear
STRUCT PENYIMPAN JUMLAH NODE

struct queue {
int count;
item front;
item rear; };
typedef struct queue* antrian;

Anda mungkin juga menyukai