Kajian Islami

“Queue Pada Struktur Data”

hi coders,,,
balik lagi dengan blog gagal ngoding,hari ini gue pengen bahas tentang queue atau yang lebih kita kenal dengan nama antrian.

queue atau antrian adalah sekumpulan data dimana penambahan elemennya hanya bisa kita lakukan pada bagian sisi belakang,dan penghapusan elemennya  pada bagian sisi depannya.queue ini memiliki sifat first in first out(FIFO) artinya elemen yang pertama kali masuk maka akan pertama kali pula keluar.
Dalam queue terdapat yang namanya:
-Dequeue yaitu mengeluarkan suatu elemen pada suatu antrian.fungsi Dequeue adalah untuk menghapus  elemen pertama (head)pada antrian. dengan cara menggeser elemen antrian kedepan dan mengurangi tail dengan 1,dan penggeseran dilakukan dengan menggunakan looping.
-fungsi Enqueue adalah untuk menambahkanelemen kedalam antrian penambahan ini selalu ditambahkan pada elemen paling belakang,serta menggerakkan variabel tailnya.
-fungsi create queue adalah untuk menciptakan dan menginisialisasi queue.
-fungsi queue penuh atau dengan nama isFull untuk mengecek apakah antrian sudah penuh atau belum.
dengan cara mengecek nilai tail,jika Tail >=MAX-1 berarti sudah penuh
-fungsi queue kosong atau dengan nama isEmpty yang berfungsi untuk menentukan apakah antrian sudah penuh atau belum,dengan cara memeriksa nilai tailnya,jika nilai tailnya = -1 maka empty.
kita tidak memeriksa head karena head adalah tanda untuk kepala antrian yang tidak akan berubah-ubah. pergerakan penambahan elemen antrian ke belakang menggunakan nilai tail
-fungsi clear ada;ah untuk menghapus elemen-elemen antrian dengan cara membuat head dan tail = -1
-fungsi menampilkan data queue,Tampil berfungsi untuk menampilkan nilai-nilai elemen antrian,dan menggunakan looping head hingga  tail.

mari kita lihat contoh pemrograman QUEUE dibawah ini,

#include <iostream.h>
#include <conio.h>

int MAX = 10;

struct queue{
int head;
int data[10];

};
queue antri;

void create(){
antri.head = -1;
}

int isEmpty (){
if(antri.head == -1) return 1;
else return 0;
}

int isFull(){
if(antri.head == MAX-1) return 1;
else return 0;

}

void masuk (int data){
if(isFull()==1) cout<<“Antrian penuh!n”;
else
{
antri.head++;
antri.data[antri.head] = data;
cout<<“Data “<<data<<“masuk!”;
}
}

void keluar(){
if (isEmpty()==1) cout<<“Antrian kosong!n”;
else
{
cout<<“Data “<<antri.data[0]<<” keluar”;
for(int i=0;i<=antri.head;i++)
antri.data[i] = antri.data[i+1];
antri.head–;
}
}

void tampil(){
for (int i=0;i<=antri.head;i++)
cout<<antri.data[i]<<“,”;
cout<<“n”;
}

void clear(){
antri.head=-1;
cout<<“Antrian telah dikosongkan!n”;
}

main(){
antri.head=-1;
keluar();
masuk(18);
masuk (30);
masuk (45);
masuk (20);
masuk (12);
masuk (27);
tampil();
keluar();
keluar();
keluar();
masuk (5);
masuk(98);
tampil();
getch ();
}

itulah hasil dari pemrogramannya,semoga dapat bermanfaat ya sobat coders,terima kasih sudah berkunjung ke blog gagal ngoding…

Asep Marzuki

Seorang yang terus belajar karena rasa keingintahuan yang tingi, memegang teguh prinsip kehidupan padi, semakin berisi semakin rendah hati

Related Articles

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Close
Close