Queue (antrian)

May 9, 2007 at 5:19 am | Posted in Informatic | 14 Comments

Merupakan kumpulan data yang penambahan elemennya hanya bisa dilakukan pada sisi belakang dan penghapusannya hanya bisa dilakukan pada sisi depan. Konsep utamanya berkebalikan dari stack (tumpukan), yaitu First In First Out. Contoh : orang antri beli tiket ke kebun binatang, Mahasiswa antri bayar KRS. Implementasi antrian menggunakan dua pointer, yaitu pointer yang menunjukkan elemen terdepan dan elemen terakhir

Operasi antrian

1. Menambah elemen baru pada bagian belakang antrian

2. Menghapus elemen baru pada bagian depan antrian

3. Melakukan pengecekan apakah antrian kosong. tidak mungkin menghapus antrian yang sudah kosong.

CONTOH PROGRAM USING C++ :

unit antrih.h

# include <iostream.h>

# include <stdlib.h>

# include <conio.h>

# define alamat Elemen*

// inisialisasi type data dan variable serta fungsi yang dibutuhkan

typedef char tInfo;

typedef struct Elemen

{

tInfo Info;

alamat Berikut;

}tElemen;

typedef struct tagAntrian

{

alamat kepala;

alamat ekor;

} Antrian;

void inisialisasi(Antrian* Q);

void enQueue(Antrian* Q, tInfo info);

void deQueue(Antrian* Q, tInfo* Info);

int queueKosong (Antrian Q);

//insisialisasi antrian

void inisialisasi(Antrian* Q)

{

Q->kepala = NULL; //kepala antrian bernilai null;

Q->ekor = NULL; //ekor antrian bernilai null;

}

// Operasi enqueue

void enQueue(Antrian* Q, tInfo info)

{

alamat P; // tipe data P adalah alamat

P = new Elemen; //(alamat) malloc(sizeof(alamat));

if (queueKosong(*Q))

{

P->Info = info; //elemen Info berisi info

P->Berikut = NULL; //elemen Berikut bernilai null

Q->ekor = P; // ekor antrian berisi P

Q->kepala = Q->ekor; // kepala antrian berisi ekor antrian

}

else

{

P->Info = info;

P->Berikut = NULL;

Q->ekor->Berikut = P; //ekor antrian berikut bernilai P

Q->ekor = P; //ekor antrian berisi P

}

}

// Operasi dequeue

void deQueue(Antrian* Q, tInfo* Info)

{

alamat P;

P = Q->kepala;

*Info = P->Info;

if ((Q->kepala) == (Q->ekor))

{

Q->kepala = NULL;

Q->ekor = NULL;

}

else

{

Q->kepala = Q->kepala->Berikut;

// kepala antrian berisi kepala antrian berikutnya

}

free(P);

cout<<endl;

}

//

int queueKosong(Antrian Q){

return ((Q.kepala==NULL) && (Q.ekor==NULL));

}

unit antrih.cpp

# include <iostream.h>

# include <stdlib.h>

# include <conio.h>

# define alamat Elemen*

# include <antrih.h>

//untuk menampilkan antrian

void tampilQueue(Antrian Q)

{

alamat P = Q.kepala;

cout << “Isi queue : “;

while ((P!=NULL)) {

cout << P->Info << ” – “;

P = P->Berikut;

}

cout << “\n”;

}

// untuk mencetak menu

void cetakMenu(){

cout << “***CONTOH ANTRIAN***”;

cout << “\n 1. Tambah elemen\n”;

cout << “ 2. Hapus elemen\n”;

cout << “ 3. Cetak antrian\n”;

cout << “ 4. Selesai\n\n”;

}

// Program utama

int main()

{

Antrian Q;

int selesai;

int pilMenu;

tInfo elm;

inisialisasi(&Q);

selesai = 0;

do

{

clrscr;

cetakMenu();

cout << “Menu yg dipilih : “;

cin >> pilMenu;

switch(pilMenu) {

case 1 : cout << “\nMasukkan elemen yg ditambahkan : “;

cin >> elm;

enQueue(&Q,elm);

break;

case 2 : if (queueKosong(Q))

{

cout << “\nAntrian kosong, tidak bisa dihapus\n”;

}

else

{

deQueue(&Q, &elm);

cout << “\nElemen yang dihapus : ” << elm << “\n”;

}

break;

case 3 : tampilQueue(Q);

break;

default : selesai = 1;

}

}

while ( !selesai );

return 1;

}

14 Comments »

RSS feed for comments on this post. TrackBack URI

  1. assalamu’alaikum,,
    (panggilannya ukhti iing? )
    suka struktur data ya?
    calon programmer wanita ini sepertinya..
    Subhanalloh,, jarang lho.
    oce deh,, tetep semangat ya ukhti.

    Salam kenal ya
    -ukhti phu-
    *identitas samaran termasuk bo’ong gag ya :)*

  2. assalamualaikum,,,
    salut banget buat ukhti yang mau belajar pemrograman,
    ngomong2, aku juga lagi belajar struktur data, tapi kata teman-temanku sulit banget..
    sekalian mau nanya. rumus queue yang sudah ada di web ini kalo dicoba pake visual C++, jalan gak? soalnya kami lagi belajar kelompok tapi kok ada gak jalan nih,,, tolong dijelasin ya?

  3. alaykumsalam..
    wah kl nyoba di visual c++ belum pernah mbak..ini cuma contoh program saja using C++. tapi kan algoritma queue nya sama..jadi ya tinggal di seseuaikan ma bahasa apa yang akan anda pakai.. rumusnya sama ko mbak.. selamat mencoba..🙂

  4. Wah, jadi inget waktu pertama kali coding🙂

  5. boss tolong donk aku minta contoh program antrian
    pembayaran/penetoran rekening..
    kalo ada ya boss,soalnya aku pengen program itu.

  6. saya gak ada..lha itu tinggal di edit sahaja jadi pembayaran rekening.. ditambahi dikit gitu bwt user interfacenya biar kelihatan klo pembayaran rekening..

  7. thx ya infonya…

  8. assalamualaikum ukhti,,,
    jazakallah ya ukh voo info na,,,
    ehm… cln programmer niy,,,
    salam ukhuwah
    wslm..

  9. assalammualaikum ukhti…
    jago struktur data iah????

    biza minta tolong gag???
    tolong dong saya dibuatkan program queue tentang Antrian Pendaftaran SPMB!!!!
    coz kami lagi ada tugas proyek neyh…
    kami bingung banged
    harap bantuannya secepatnya iah b4 12 Dec 08!!!!

    reply in my mail…..
    as soon as possible

  10. maz, blh mnta contoh program antrian pembelian di cafe.

  11. assalamualaikum ukhti
    ukhti,bleh minta bantuannya g?
    boleh mnta syntax program queue tpi yang pendek aja.coz q ge belajar pke c++,bingung kalo programnya panjang2.heheehhe…..
    biar mudah paham,gt.
    makasih sebelumnya.
    wass

  12. Soal
    1. Buatlah suatu program Animasi Antrian Melingkar dengan 4 buah pilihan : INSERT, DELETE, CETAK ANTRIAN, QUIT.
    Jika dipilih INSERT : program akan meminta user untuk menginput sebuah karakter yang akan dimasukan kedalam antrian
    Jika dipilih DELETE : maka karakter pertama masuk akan dikeluarkan dari antrian
    Jika dipilih CETAK ANTRIAN : komputer menampilkan karakter yang ada pada antrian
    Jika dipilih QUIT : program keluar
    tolong di jawab ya.makasih

  13. mba program ya bgus bnget.klo boleh minta program antrian toko buku donh pke bhas c++

  14. om..😀,,. bantu bikinin Gmn bisa antrian BBM se indonesia dg qsruktur data nya ,,, ekekekekek


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: