Sabtu, 06 Juni 2015

MENGENAL LEBIH DALAM TENTANG STACK DALAM C++



STACK

Definisi STACK (Tumpukan)

Tumpukan (Stack) adalah salah satu list linear dalam struktur data yang digunakan untuk menyimpan dan mengambil data dengan konsep LIFO (Last In First Out). Dan berdasar konsep LIFO maka data yang terakhir kali disimpan dalam stack akan menjadi data yang pertama kali diambil.



Operasi – Operasi dalam Stack:
  • Push : digunakan untuk menambah item pada stack pada tumpukan paling atas.
  • Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas.
  • Clear : digunakan untuk mengosongkan stack.
  • IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong. 
  •  IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh.


Stack digunakan apabila data akan diakses dengan urutan LIFO. Struktur data Stack dapat diimplementasi dengan menggunakan larik (array), dengan struktur data bentukan (record), misalnya seperti berikut :

Type Stack : record

            top : integer;

            Isi : array[1 .. maks] of item;
  
Dimana :
Top adalah penunjuk posisi teratas dari tumpukan. Bila stack kosong maka top=0; bila penuh maka top=maks. Setiap melakukan pengisian maka top bertambah 1, sedangkan setiap pengambilan akan membuat top berkurang 1.
Isi adalah array yang memuat data dalam stack.
Item adalah tipe data yang disimpan dalam stack, bisa int, char, dan sebagainya.

Berikut contoh codding STACK dalam C++ :



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

//deklarasi 'STACK' dengan struct dan array
struct STACK
{
int data[5];
int atas;
};

//deklarasi variabel 'tumpuk' dari Struct
STACK tumpuk;

void main()
{
clrscr();
int pilihan,baru,i;

//inisialisasi awal
tumpuk.atas=-1;
do
{
clrscr();
cout<<"1.Push Data"<<endl;
cout<<"2.Pop Data"<<endl;
cout<<"3.Print Data"<<endl;
cout<<endl;
cout<<"Pilihan: ";
cin>>pilihan;

switch(pilihan)
{
    case 1 :
{
     if(tumpuk.atas==5-1)
{
cout<<"Tumpukan Penuh";
getch();
}
else
{
cout<<"Data yang akan di Push : ";cin>>baru;
tumpuk.atas++;
tumpuk.data[tumpuk.atas]=baru;
}
break;
}
case 2 :
{
     if(tumpuk.atas==-1)
{
cout<<"Tumpukan kosong";
getch();
}
else
{
cout<<"Data yang akan di Pop = "<<tumpuk.data[tumpuk.atas]<<endl;
tumpuk.atas--;
getch();
}
break;
}
case 3 :
{
     if(tumpuk.atas==-1)
{
cout<<"Tumpukan kosong"<<endl;
getch();
}
else
{
cout<<"Data = "<<endl;
for(i=0;i<=tumpuk.atas;i++)
{
    cout<<tumpuk.data[i]<<" ";
}
getch();
}
break;
}
default:
{
     cout<<"Tidak ada dalam pilihan"<<endl;
}
}
}
while(pilihan>=1 && pilihan<=3);
getch();
}

1 komentar:

  1. Perkenalkan, saya dari tim kumpulbagi. Saya ingin tau, apakah kiranya anda berencana untuk mengoleksi files menggunakan hosting yang baru?
    Jika ya, silahkan kunjungi website ini www.kbagi.com untuk info selengkapnya.

    Di sana anda bisa dengan bebas share dan mendowload foto-foto keluarga dan trip, music, video, filem dll dalam jumlah dan waktu yang tidak terbatas, setelah registrasi terlebih dahulu. Gratis :)

    BalasHapus