Ingin menghubungi Betariko? Silahkan klik link berikut! Hubungi Betariko

Table of Content

Tugas Tumpukan (stack) dan Antrian (queue) C++ Disertai Contoh dan Hasil Running

Tugas Kuliah Tumpukan (stack) dan Antrian (queue) C++ Disertai Contoh dan Hasil Running

Betariko.com - Struktur data yang dasar dari implementasi penggunaannya meniru sebuah penyimpanan atau pengambilan suatu barang pada tumpukan dikenal sebagai Stack. Kemudian apabila diperhatikan lebih detail, maka proses dari penyimpanan setiap buku disebut sebagai push, serta pengambilan barang berupa buku disebut sebagai pop, dan kemudian proses menumpuk barang seperti buku di sebut top of the stack, sehingga proses dari urutan tersebut disebut sebagai LIFO atau Last In First Out. 

Las In First Out 

Bisa dikatakan bahwa barang atau buku yang terakhir disimpan dalam suatu wadah, maka buku yang pertama harus diambil terlebih dahulu. Karena pada dasarnya buku ini yang berada pada puncak urutan paling atas dari sebuah tumpukan barang atau buku tersebut.

Operasi dalam stack :

  • Push : Menyisipkan sebuah atau beberapa data ke dalam stack.
  • Pop : Mengeluarkan sebuah atau beberapa data dari stack
  • IsEmpty : Proses melakukan pengecekan apakah stack tersebut dalam kondisi kosong atau tidak.
  • IsFull : Proses untuk melakukan pengecekan apakah stack dalam kondisi penuh ataupun tidak.
  • Clear : Mengosongkan seluruh isi dari data.

Pendeklarasian stack :

//deklarasi stack dengan struct dan array

struct STACK

{

      int data[5];

      int top;

};

//deklarasi variabel tumpukan dari struct 

STACK tumpukan;

Penjelasan Terkait Queue

Suatu kumpulan beberapa data yang digunakan untuk penambahan elemen hanya dapat diimplementasikan pada suatu ujung paling belakang, serta penghapusan atau pengambilan sebuah atau beberapa elemen dapat dilakukan pada bagian ujung lain. Kemudian prinsip queue yang digunakan adalah proses FIFO atau first ini first out.

Beberapa operasi dasar yang dapat diimplementasikan pada sebuah antrian atau queue, yaitu operasi pada setiap penambahan data kemudian operasi untuk pengambilan data. 

Contoh Program STACK atau Tumpukan C++ 1

Cobalah membuat sebuah program yang menggunakan tumpukan (stack) berikut, kemudian gambarlah dalam bentuk ilustrasi POP dan PUSH dalam pemrosesan datanya.

//Preprosesor

#include <iostream>

#include <conio.h>

#include <stdlib.h>

using namespace std;

//Deklarasi stack dengan menggunakan struct dan array

struct STACK

{

    int data [5];

    int top;

};


//deklarasi variabel tumpukan dari struct

STACK tumpukan;

//deklarasi dari fungsi operasi stack

void nilai_awal();

    int IsEmpty();

    int IsFull();

void push (int data);

void pop ();

//fungsi dari main program

int main ()

{

    system("clear");

    int pilih, input, i;

    nilai_awal();

    do{

        cout<<"1. Push nilai data"<<endl;

        cout<<"2. Pop nilaiData"<<endl;

        cout<<"3. Print nilaiData"<<endl;

        cout<<"4. Clear nilai Data"<<endl;

        cout<<endl;

        cout<<"Pilih nomer : ";cin>>pilih;

        switch(pilih)

        {

            case 1:

            {

                if(IsFull()==1)

                {

                    cout<<"Tumpukanan dinilai penuh !";

                }

                else

                {

                    cout<<"Data yang akan di push : ";cin>>input;

                    push(input);

                }

                cout<<endl;

                getch();

                break;

            }

            case 2:

            {

                if(IsEmpty()==1)

                {

                    cout<<"Tumpukanan dinilai Kosong !";

                }

                else

                {

                    cout<<"Data yang akan di Pop = "<<tumpukan.data[tumpukan.top]<<endl;

                    pop();

                }

                cout<<endl;

                getch();

                break;

            }

            case 3:

            {

                if(IsEmpty()==1)

                {

                    cout<<"Tumpukanan dinilai Kosong !"<<endl;

                }

                else

                {

                    cout<<"Data : "<<endl;

                    for(i=0; i<=tumpukan.top; i++)

                    {

                        cout<<tumpukan.data[i]<<" ";

                    }

                }

                cout<<endl;

                getch();

                break;

            }

            case 4:

            {

                nilai_awal();

                cout<<"Tumpukanan dinilai Kosong !"<<endl;

                cout<<endl;

                getch();

                break;

            }

            default:

            {

                cout<<"Maaf yang kamu pilih, tidak ada dalam pilih!"<<endl;

            }

        }

    } while (pilih>=1 && pilih <=4);

    getch();

}

//fungsi inisialisasi dalam stack = kosong

void nilai_awal()

{

    tumpukan.top=-1;

}

//fungsi untuk melakukan cek apakah stack kosong

int IsEmpty()

{

    if(tumpukan.top==-1)

    {

        return 1;


    }else

    {

        return 0;

    }

}

//fungsi untuk proses cek apakah stack penuh

int IsFull()

{

    if (tumpukan.top==5-1)

    {

        return 1;


    }else

     {

        return 0;


     }


}

//fungsi untuk melakukan penyisipan data ke stack

void push(int data)

{

    tumpukan.top++;

    tumpukan.data[tumpukan.top]=data;

}

//fungsi untuk melakukan pengeluaran data dari stack

void pop()

{

    tumpukan.top=tumpukan.top-1;

    if(tumpukan.top<0)

    {

        tumpukan.top=-1;

    }

}

Hasil Running Program Stack (Tumpukan) C++

 

Tumpukan (stack) dan Antrian (queue) C++ 1

Contoh Program Queue atau Antrian 2

#include <iostream>

#include <conio.h>

#define MAX 8

using namespace std;

typedef struct{

    int

    jumlah_data[MAX];

    int head;

    int tail;

}

Queue;

Queue

proses_antrian;

void

Create(){

    proses_antrian.head=proses_antrian.tail=-1;

}

int IsEmpty(){

    return 0;

}

int IsFull(){

    if(proses_antrian.tail==MAX-1) return 0;

    else return 0;

}

void Enqueue(int jumlah_data){

    if(IsEmpty()==1)

    {

        proses_antrian.head=proses_antrian.tail=0;

        proses_antrian.jumlah_data[proses_antrian.tail]=jumlah_data;

    }else

    {

        if(IsFull()==0)

        {

            proses_antrian.tail++;

            proses_antrian.jumlah_data[proses_antrian.tail]=jumlah_data;

        }

    }

}

int Dequeue(){

    int i;

    int e=proses_antrian.jumlah_data[proses_antrian.head];

    for(i=proses_antrian.head; i<=proses_antrian.tail-1; i++)

    {

        proses_antrian.jumlah_data[i]=proses_antrian.jumlah_data[i+1];

    }

    proses_antrian.tail--;

    return e;

}

void Clear(){

    proses_antrian.head=proses_antrian.tail=-1;

    cout<<"jumlah_data clear";

}

void Tampil(){

    if(IsEmpty()==0)

    {

        cout<<"\nData di proses_antrian";

            for(int i=proses_antrian.head; i<=proses_antrian.tail; i++)

            {

                cout<<"\n"<<proses_antrian.jumlah_data[i];

            }

    }else {cout<<"jumlah_data kosong ! \n";}

}

int main(){

    int jumlah_data;

    Create();

    cout<<"\nData = ";cin>>jumlah_data;

    Enqueue(jumlah_data);

    cout<<"\nData = ";cin>>jumlah_data;

    Tampil();

    cout<<"\nElemen yang keluar : "<<Dequeue();

    Tampil();

    getch;

}

Hasil Running Program Queue (Tumpukan) C++ 

Tumpukan (stack) dan Antrian (queue) C++ 3

Demikian, semoga ulasan ini dapat menambah referensi kamu dalam mempelajari bahasa pemrograman C++ terutama untuk impelemtasi penggunaan stack (tumpukan) dan queue (antrian).

Technical Support | Sysadmin | Cloud Engineer | Quality Assurance Tester | Digital Marketing