Stack adalah suatu tumpukan dari benda. Konsep utamanya adalah LIFO (Last In First Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan dari stack.
Di C++, ada dua cara penerapan prinsip stack, yakni dengan array dan linked list. Setidaknyastack haruslah memiliki operasi-operasi sebagai berikut.
- Push Untuk menambahkan item pada tumpukan paling atas
- Pop Untuk mengambil item teratas
- Clear Untuk mengosongkan stack
- IsEmpty Untuk memeriksa apakahstack kosong
- IsFull Untuk memeriksa apakahstack sudah penuh
- Retreive Untuk mendapatkan nilai dari item teratas
Program yang menggunakan Menu Push, Pop, Reterive, Search, Clear, dan Keluar C++
Interface






Source Code
#include <iostream.h>
#include <conio.h>
#define max 5
struct Tumpukan
{
int in;
int data[max];
int cari;
}NO;
int i;
void intro()
{
clrscr();
gotoxy(33,13);
cout<<“TERIMAKASIH”;
}
void awal()
{
NO.in=-1;
}
int kosong()
{
if(NO.in==-1)
return 1;
else
return 0;
}
int penuh()
{
if(NO.in==max-1)
return 1;
else
return 0;
}
void input()
{
if(kosong()==1)
{
NO.in++;
for(NO.in=0;NO.in<max;NO.in++){
cout<<“\n\nMasukkan data ke-“<<NO.in+1<<” = “;cin>>NO.data[NO.in];
cout<<“Nilai “<<NO.data[NO.in]<<” Telah di PUSH”;}
}
else if(penuh()==0)
{
NO.in++;
for(NO.in=0;NO.in<max;NO.in++){
cout<<“\n\nMasukkan data ke-“<<NO.in+1<<” = “;cin>>NO.data[NO.in];
cout<<“Nilai “<<NO.data[NO.in]<<” Telah di PUSH”;}
}
else
cout<<“Tumpukan Penuh”;
}
void hapus()
{
if(kosong()==0)
{
{ cout<<“Data Teratas Sudah Terambil”;
NO.in–;}
void tampil();
}
else
cout<<“Data Kosong”;
}
void tampil()
{
int y=10, no=1;
cout<<endl;
gotoxy (29,7); cout << “Hasil RETRIVE Elemen”;
gotoxy (24,8); cout << “———————————-“;
gotoxy (24,9); cout << “| Indeks No. | Elemen |”;
gotoxy (24,10); cout << “———————————-“;
// 234567890123456789012345678901234567890123456789
// 2 3 4 5 6
if(kosong()==0)
{ gotoxy (58,11); cout << ” <– TOP of STACK”;
for(int i=NO.in-1;i>=0;i–)
{
gotoxy (24,y++);{
gotoxy (24,y);cout << “| | |”;
gotoxy (30,y);cout <<no++;
gotoxy (47,y);cout<<NO.data[i];}
}gotoxy (24,wherey()+1); cout << “———————————-“;
}
else
{gotoxy (33,11);cout<<“Tumpukan kosong”;}
}
void bersih()
{
NO.in=-1;
cout<<“Tumpukan kosong!”;
}
void cari()
{
int ketemu=0, i=0;
gotoxy (24,8); cout << “Mencari Elemen Stack”;
gotoxy (24,9); cout << “Inputkan Elemen yang di Cari = “; cin >> NO.cari;
while (i<max && ketemu==0)
{
if(NO.data[i] == NO.cari)
ketemu=1;
else
i++;
}
if (ketemu)
{
gotoxy (29,10); cout << “Hasil Pencarian Elemen”;
gotoxy (24,11); cout << “———————————-“;
gotoxy (24,12); cout << “| Indeks No. | Elemen |”;
gotoxy (24,13); cout << “———————————-“;
// 234567890123456789012345678901234567890123456789
// 1 2 3 4
gotoxy (24,14); cout << “| | |”;
gotoxy (30,14) ; cout <<i+1;
gotoxy (40,14); cout<<NO.data[i];
gotoxy (24,15); cout << “———————————-“;
getch();
}
else
{ gotoxy(20,11); cout << “Elemen tsb tidak ditemukan”; }
getch();
}
void main()
{
intro();
int pil;
awal();
do
{
clrscr();
cout<<“\t\t\t*****************************\n”;
cout<<“\t\t\tNama : MOHAMMAD SYAIFULLAH\n”;
cout<<“\t\t\tNIM : 121411091\n”;
cout<<“\t\t\tJurusan : Teknik lnformatika \n”;
cout<<“\t\t\t*****************************\n”;
cout<<endl;
cout<<“1. Push\n”;
cout<<“2. Pop\n”;
cout<<“3. Retrive\n”;
cout<<“4. Clear\n”;
cout<<“5. Cari\n”;
cout<<“6. Keluar\n”;
cout<<endl;
cout<<“Masukkan pilihan : “;cin>>pil;
switch(pil)
{
case 1:
input();
break;
case 2:hapus();
break;
case 3:tampil();
break;
case 4:bersih();
break;
case 5:cari();
break;
case 6:intro();
goto akhir;
default:
cout << “\nPilihan Tidak Ada Pada Menu”;
break;
}
getch();
}
while(pil!=4);
akhir:
}Mungkin itu saja yang bisa admin bagikan kepada Anda. admin berharap artikel ini sangat bermanfaat bagi Anda. Admin akan sangat bertrimakasih bila anda mau meluangkan waktu untuk memberikan KOMENTAR dan SHARE artikel ini, karena kontribusi anda sangat berharga bagi Admin.