TI POLITALA 2A ALPRO STACK

Stack


Stack (tumpukan) dapat diartikan sebagai list yang operasi penghapusan dan penyisipannya dapat dilakukan di satu ujung, atau dapat diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakkan diatas data lainnya.

Operasi Utama Stack
Operasi push  yaitu operasi menambahkan elemen pada urutan terakhir(paling atas).
Operasi pop yaitu operasi mengambil sebuah elemen data pada urutasn terakhir dan menghapus elem
en tersebut dari stack.

Operasi Tambahan 

Clear  : untuk mengosongkan stack.
IsEmpty : untuk memeriksa apakah stack kosong.
IsFull : untuk memeriksa apakah satck  sudah penuh.
Retrieve  : untuk mendapatkan nilai dari item teratas.
Peek : untuk melihat element teratas dari stack


Stack Dengan Array Dari Struct

Definisikan Stack dengan menggunakan suatu struct
Definisikan konstanta MAX_STACK untuk menyimpan maksimum isi stack
Elemen struct Stack adalah array data dan top untuk menadakan posisi data teratas
Buatlah variabel tumpuk sebagai implementasi dari struct Stack
Deklarasikan operasi-operasi/function di atas dan buat implemetasinya


Source Code & Program - Contoh Kasus

#include <iostream>
#include <conio.h>
#include <stdlib.h>
#define max 4

using namespace std;

struct Tumpukan
{
int atas;
int data[max];
}T;

void awal()
{
T.atas=-1;
}

int kosong()
{
if(T.atas==-1)
return 1;
else
return 0;
}

int penuh()
{
if(T.atas==max-1)
return 1;
else
return 0;
}


void input(int data)
{
if(kosong()==1)
{
T.atas++;//T.atas=T.atas+1;
T.data[T.atas]=data;
cout<<"Data "<<T.data[T.atas]<<" masuk ke stack";
}

else if(penuh()==0)
{
T.atas++;
T.data[T.atas]=data;
cout<<"Data "<<T.data[T.atas]<<" masuk ke stack";
}

else
cout<<"Tumpukan penuh";
}

void hapus()
{
if(kosong()==0)
{
cout<<"Data teratas sudah terambil";
T.atas--;//T.atas=T.atas-1;
}
else

cout<<"Data kosong";
}

void tampil()
{
if(kosong()==0)
{
for(int i=T.atas;i>=0;i--)
{
cout<<"\nTumpukan ke "<<i<<"="<<T.data[i];
}
}
else

cout<<"Tumpukan kosong";
}

void bersih(){
T.atas=-1;

cout<<"Tumpukan kosong!";
}

//--------------------------------------->
int main()
{
int pil,data;
awal();
do
{
system("cls");
cout<<"1. Input (PUSH)\n2. Hapus (POP)\n3. Tampil\n4. Bersihkan\n5. Keluar\nMasukkan pilihan :";
cin>>pil;
switch(pil)
{
case 1:cout<<"Masukkan data = ";cin>>data;
input(data);
break;
case 2:hapus();
break;
case 3:tampil();
break;
case 4:bersih();
break;
//case 5:top();
// break;
// case 6:isempty();
// break;
// case 7:Noel()
//break
case 8:
cout<<"Terimakasih, tekan enter untuk keluar";
}
getch();
}
while(pil!=5);
}


Hasil Running


Penjelasan

STACK adalah salah satu list linear dalam struktur data yang digunakan untuk menyimpan dan mengambil data dengan konsep LIFO (Last In First Out). Dimana dalam stack ini kumpulan data yang masuk diletakkan di atas data yang lain. Dan berdasar konsep LIFO maka data yang terakhir kali disimpan dalam stack akan menjadi data yang pertama kali diambil. Dalam prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan kata lain ke bagian atas dari sebuah tumpukan digunakan perintah push. Dan untuk memindahkan data dari tempat tersebut digunakan perintah pop. Sedangkan dalam penyajiannya, stack bisa memakai array atau linked list.

References

Komentar

Postingan populer dari blog ini

TI POLITALA ALPRO1 1A

TI POLITALA 2A ALPRO SORTING

AI (Artificial Intelligence)