Tidak semua yang saya tulis dalam CERPEN adalah saya :)

Welcome to my Blog... Blog ini mengenai tugas kuliah, cerpen, artikel dan beberapa hal tentang saya dan hobi saya :) boleh COPAS, tapi izin dulu yaa, jangan rendahkan dirimu sebagai pelagiat. Terima kasih :)

Selasa, 05 Juni 2012

Struktur Data, Queue (Antrian) dalam bahasa C++

Contoh Program Queue dalam bahasa C++ :


1. Contoh Program Queue : Insert, Delete, View, Clear, Exit.

#include <stdio.h>
#include <conio.h>
#define MAX 6
typedef struct
{
int data [MAX];
int head;
int tail;
}
Queue;
Queue antrian;
void Create()
{
antrian.head=antrian.tail=-1;
}

int IsEmpty()
{
if(antrian.tail==-1)
return 1;
else
return 0;
}
int IsFull()
{
if(antrian.tail==MAX-1)
return 1;
else
return 0;
}
void Enqueue(int data)
{
if(IsEmpty()==1)
{
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
printf("%d masuk !",antrian.data[antrian.tail]);

void Tampil();
{
if(IsEmpty()==0)
{
for(int i=antrian.head;i<=antrian.tail;i++)
{
printf("%d ",antrian.data[i]);
}
}
else
 printf("Data Kosong !\n");
}
}
else
if(IsFull()==0)
 {
antrian.tail++;
antrian.data[antrian.tail]=data;
 printf("%d masuk !", antrian.data[antrian.tail]);
   }
}
int Dequeue()
{
int i;
int e=antrian.data[antrian.head];

for(i=antrian.head;i<=antrian.tail-1;i++)
{
antrian.data[i]=antrian.data[i+1];
}
antrian.tail--;
return e;
}
void Clear()
{
antrian.head=antrian.tail=-1;
printf("Data Clear");
}

void Tampil()
{
if (IsEmpty()==0)
{
for (int i=antrian.head;i<=antrian.tail; i++)
{ printf("%d ",antrian.data[i]);
}
}
else
{
printf("Data Kosong\n");
}
}
void main()
{
int pil;
int data;
Create();

 do
{
 clrscr();
printf ("\n====================================");
printf ("\n Ujian Akhir Semester (UAS)         ");
printf ("\n====================================");
printf ("\n           Program Queue            ");
printf ("\n====================================");
printf ("\n    Nama  : Nina Narulita Pande     ");
printf ("\n    Kelas : TI2E                    ");
printf ("\n    NIM   : 11142344                ");
printf ("\n====================================\n\n");
printf ("\n============MENU PILIHAN============\n");
printf ("1. Enqueue\n");
printf ("2. Dequeue\n");
printf ("3. Tampil\n");
printf ("4. Clear\n");
printf ("5. Keluar\n");
printf ("--------------------------------------\n");
printf ("Masukkan Pilihan Anda -> ");
scanf("%d",&pil);

switch(pil){
case 1:
printf("Data : ");
scanf("%d",&data);
Enqueue(data);
break;

case 2:
printf("Elemen yang keluar : %d", Dequeue());
break;

case 3:
Tampil();
break;

case 4:
Clear();
break;
case 5:
clrscr();
gotoxy(28,10);printf("    Present By : ");
gotoxy(25,11);printf("\"Nina Narulita Pandela\"\n");
gotoxy(26,12);printf("\"     11142344\"\n");
gotoxy(23,13);printf("\"Teknik Informatika 2E 2012\"");
break;
}
getch();
} while(pil!=5);
}


2. Contoh Program Queue :
#include <stdio.h>
#include <conio.h>
void main()
{
  int cek=0, data[20], x, hapus;
  char pil;
  do {
      clrscr();
      printf("1. Tambah Antrian\n");
      printf("2. Hapus Antrian\n");
      printf("3. Lihat Antrian\n");
      printf("4. Keluar\n");
      printf("Silahkan masukkan pilihan anda...  ");
      pil=getche();


  if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
      printf("\n\nAnda salah mengetikkan inputan...\n");
      else
      {
    if(pil=='1')   //PUSH
    {
      if(cek==20)
        printf("\nAntrian Penuh\n\n");
        else
        {
          printf("\nMasukkan nilai-->");scanf("%i",&x);
          data[cek]=x;
          cek++;
        }}
        else
        {
          if(pil=='2')     //POP
          {
        if(cek==0)
          printf("\nAntrian kosong\n\n");
          else
          {
            hapus=data[0];
            for(int v=0;v<cek;v++)
            data[v]=data[v+1];
            data[cek-1]=NULL;
            cek--;
            printf("\nData dgn nilai=%i terhapus.",hapus);
          }
          getch();
          }
        else
        {
          if(pil=='3')   //CEK DATA
          {
            if(cek==0)


            printf("\nAntrian Kosong.\n\n");

            else
            {
              printf("\n");
              for(int z=0;z<cek;z++)
              {
            printf(" | ");
            printf("%i",data[z]);
            printf(" | ");
              }

            }
            getch();
            }
          }
        }
          }

    }while(pil!='4');
}


3. Implementasi Queue dengan Double Linked List :

#include <iostream.h>
#include <conio.h>
class Linked_list_Queue
{
private :
struct node
{
int data;

node *next;
};

node *rear;
node *entry;
node *print;
node *front;

public :
Linked_list_Queue();

void Delete();
void Insert();
void print_list();
void show_working();
};

Linked_list_Queue :: Linked_list_Queue()
{
rear=NULL;
front=NULL;
}

//------------------- Insert () ----------------//
void Linked_list_Queue :: Insert()
{
int num;
cout<<"\n\n\n\n\n\t Masukan angka dalam Queue : ";
cin>>num;

entry=new node;
if(rear==NULL)
{
entry->data=num;
entry->next=NULL;
rear=entry;
front=rear;
}

else
{
entry->data=num;
entry->next=NULL;
rear->next=entry;
rear=entry;
}
cout<<"\n\n\t *** "<<num<<" sudah masuk dalam Queue. "<<endl;
cout<<"\n\n\n\t\t pres any key to return to menu. ";

getch();
}

//------------------------------- Delete() ------------------------//
void Linked_list_Queue:: Delete()
{
if(front==NULL)
cout<<"\n\n\n\t *** Error : Queue is empty. \n"<<endl;
else
{
int deleted_element=front->data;
node *temp;
temp=front;
front=front->next;
delete temp;
cout<<"\n\n\n\t *** "<<deleted_element<<"dihapus dari Queue. "<<endl;
}
cout<<"\n\n\n\t\t pres any key to return to Menu. ";
getch();
}
//------------------------- print_list()---------------------//
void Linked_list_Queue::print_list()
{
print=front;
if(print!=NULL)
cout<<"\n\n\n\n\n\t Angka-angka yang ada dalam Queue adalah : \n"<<endl;
else
cout<<"\n\n\n\n\n\t *** Tidak ada yang ditampilkan. "<<endl;
while (print!=NULL)
{
cout<<"\t"<<print->data<<endl;
print=print->next;
}
cout<<"\n\n\n\t\t Pres any key to return to Menu. ";
getch();
}
//----------------- show_working() ------------------//
void Linked_list_Queue:: show_working()

{
char Key=NULL;
do
{
clrscr();
gotoxy(5,5);
cout<<"********** Implementation of Linked List as a Queue **********"<<endl;
gotoxy(10,8);
cout<<"Pilih salah satu menu : "<<endl;
gotoxy(15,10);
cout<<"- Press\ 'I\' to Masukan data dalam Queue"<<endl;

gotoxy(15,12);
cout<<"- Press \'D\' to Hapus data dari Queue"<<endl;

gotoxy(15,14);
cout<<"- Press \'P\' to tampilkan data dari Queue"<<endl;

gotoxy(15,16);
cout<<"- Press \'E\' to Exit"<<endl;

input :
gotoxy(10,20);
cout<<"              ";

gotoxy(10,20);
cout<<"Masukan Pilihan : ";

Key=getche();
if(int(Key)==27 || Key=='e' || Key=='E')
break;
else if(Key=='i'|| Key=='I')
Insert();
else if(Key=='d'|| Key=='D')
Delete();
else if (Key=='p' || Key=='P')
print_list();
else
goto input;
}
while(1);

}
//-------------------------------- main() --------------------------- //
int main()
{
Linked_list_Queue obj;
obj.show_working();
return 0;
}

17 komentar:

  1. wao aamazing
    makasih ijin copas ya,,

    BalasHapus
  2. amien ,, wah sangat bermanfaat ini thank's you very much

    BalasHapus
  3. boleh copas ga nih, buat bahan belajar materi UAS ??

    BalasHapus
  4. waw qu boleh belajar dri listing ini ga?

    BalasHapus
  5. mksh bwd listingx,, sangat mmbntu :) ijin copas ya...

    BalasHapus
  6. ijin copas yaah ka,
    terus gimana cara copas nya, ngga bisa langsung yaah?
    terimakasih.

    BalasHapus
    Balasan
    1. ketik ulang dong.. jangan langsung copas :)
      biar paham codingnya :)

      Hapus
  7. ijin copas non yah, klau gk ngerti blh tanyakan?

    BalasHapus
  8. ijin copas non yah, klau aq blm ngerti blh gk aq nanya?

    BalasHapus

Berikan Komentar Anda, Terima kasih :)