Stack & Queue | Pengertian dan Contoh Implemenrasi C++ - KAPAS

Stack & Queue | Pengertian dan Contoh Implemenrasi C++


Nama  : Anggi Dwi Kurniawan
NPM   : 1915061021
MK      : Struktur Data

1.     Kapan stack dan queue digunakan?
2.     Apa keunggulan dan kelemahan stack dan queue?
3.     Buatlah implementasi program stack dan queue dengan studi kasus masing-masing!

Jawaban :
1.     A. Stack biasa digunakan dalam mengontrol operasi dalam sebuah sistem operasi. Selain itu stack juga merupakan algoritma yang baik yang dapat digunakan untuk membuat phaser (membaca urutan operasi dari sebuah persamaan matematika).

B. Queue digunakan untuk mengatasi antrian job yang harus ditangani oleh sistem operasi. Selain itu queue juga digunakan dalam antrian dalam dunia nyata, contohnya untuk manajemen bandwitch dan metode pembagian bandwitch.

2.     A. Stack
Kelebihan stack yaitu penambahan dan penghapusan data dapat dilakukan dengan cepat, yaitu selama memori masih tersedia penambahan data bisa terus dilakukan. Dengan demikian tidak ada kekuatiran terjadinya stack overflow.
Kekurangan stack yaitu setiap sel tidak hanya menyimpan value saja, melainkan juga pointer ke sel berikutnya. Hal ini menyebabkan implementasi stack memakai linked list akan memerlukan memori yang lebih banyak daripada di implementasikan dengan array.

B. Queue
Kelebihan queue yaitu data yang pertama masuk maka akan pertama dilayani.
Kekurangan queue data yang terakhir masuk jika saat waktu pelayanan habis tidak dapat dilayani.

3.     A. Stack
#include
#include
#include
#include
using namespace std;
struct tumpukan
{
      int top;
      char tmp[10][10];
}
tumpukan;
void push (char data[10]);
void pop();
void awal();
int isEmpty();
int isFull();
int main()
{
      int pilih;
      char data[10];
      string i;
      awal();
      do
{
      system("cls");
      cout<<"==================================="<
      cout<<"= CONTOH PROGRAM TUMPUKAN (STACK) ="<
      cout<<"==================================="<
      cout<<"=====Program Tumpukan Buku======="<
      cout<<" 1. PUSH                          ="<
      cout<<" 2. POP                           ="<
      cout<<" 3. EXIT                          ="<
      cout<<"==================================="<
      if (!isEmpty())
      {
            for(int i=tumpukan.top; i>=0; i--)
            {
                  cout<<"["<
            }
      }    
      else
      {
            cout<<"[tumpukan Buku dalam kondisi kosong]";
      }
      cout<<"\n Masukan Pilihan :";cin>>pilih;
      switch (pilih)
      {
            case 1:
                  cout<<"Masukan Buku kedalam tumpukan :";cin>>data;
                  push(data);
                  break;
            case 2:
                  pop();
                  break;
            case 3:
                  cout<<"Tekan enter untuk keluar :";
                  break;
                  default:
                  cout<<"ERROR!";
                  break;
      }
}
while (pilih!=3);
}
void push (char data[10])
{
      if (!isFull())
{
      tumpukan.top=tumpukan.top+1; 
      strcpy(tumpukan.tmp[tumpukan.top],data);
}
else
cout<<"Buku dalam tumpukan penuh";
}
void pop()
{
      if (!isEmpty())
{
      tumpukan.top--;
      cout<<"Buku pada tumpukan ke- "<< tumpukan.top+2<<"sudah diambil";
}
else
cout<<"Buku dalam tumpukan kosong";
}
void awal()
{
      tumpukan.top= -1;
}
int isEmpty()
{
      if (tumpukan.top==-1)
      return 1;
      else
      return 0;
}
int isFull()
{
      if (tumpukan.top==10-1)
      return 1;
      else
      return 0;
}

B. Queue

#include
#include
#include
#include
#define max 50
#define true 1
#define false 0

using std::cout;
using std::endl;
using namespace std;
int pil;
char jwb;
void pilih();

struct queue {
      int belakang;
      int elemen[];
      };float que; struct queue buatqueue;

int queuepenuh () {
      if(buatqueue.belakang==max)
                  return true;
      else
                  return false;}

int queuekosong ()
      {
      if (buatqueue.belakang == -1)
      return true;
      else
      return false;
}
     
void enqueue (float que)
      {
      if (queuepenuh() == true)
      cout<< "Queue Penuh\n";
      else
                  {
                  buatqueue.belakang++;
                  buatqueue.elemen[buatqueue.belakang]=que;
                              }
      }

void dequeue ()
{
     
      if(queuekosong()==true)
      {
      cout<<"Queue Kososngn\n";}
      else
                  {
                  cout<<"Dequeue "<
                  buatqueue.belakang--;
                              }
      }

void bantu(){
      coutque;
      enqueue(que);
      }
     
void cetakqueue() {
      cout<<"Queue = ";
      for (int i=0; i<=buatqueue.belakang; i++)
      {
                  cout<
      }

int main () {
      buatqueue.belakang = -1;
    do
    {
      cout<
      cout<<"\t\t==Menu Queue=="<
      cout<<"1. Enqueue"<
      cout<<"2. Dequeue"<
      cout<<"3. Cetak Queue"<
      cout<<"4. Keluar"<
      coutpil;
      switch (pil){
                    case 1:{
                    do{
                    coutque;
          enqueue(que);
          coutjwb;
                    }while(jwb=='y');
                    system ("cls");
                    }
                    break;
                    case 2:
                    dequeue();
                    cout<<", Dequeue Berhasil!\n";
                    getch();
                    system ("cls");
                    break;
                    case 3:
                    cetakqueue();
                    getch();
                    system ("cls");
                    break;
                    case 4:
                    exit (0);
                    break;
                    }
    } while(pil!=7);
    while(jwb=='y'|| jwb=='Y');
      }


Belum ada Komentar untuk "Stack & Queue | Pengertian dan Contoh Implemenrasi C++"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel