stack dan Queue Apllied Programming
selamat siang guys, kali ini saya akan berbagi tentang stack dan queue aplied programming, langsung aja, perhatikan kodingan di bawah ini:
#include <iostream> // untuk routing input-output basic; cout,cin,endl
#include <conio.h> //untuk cmemanggil console DOS input-output; getch,clrscr,system cls
#include <string>
using namespace std;
int maxim=50; //untuk jumlah maksimum stack & queue
string data[50]; //declare string sebanyak 50 sesuai sama maximal
int penunjuk=-1; // batas bawah tumpukan
//membuat fungsi IsEmpty untuk mengecek stack/queue kosong atau tidak
bool IsEmpty()
{
if(penunjuk == -1)
return true;
else
return false;
}
//membuat fungsi IsFull untuk mengecek stack/queue isi atau tidak
bool IsFull()
{
if(penunjuk == maxim-1)
return true;
else
return false;
}
//membuat fungsi Push untuk memasukkan nilai kedalam stack yang sebelumnya dicek terlebih dahulu apakah penuh atau belum
void push()
{
if(IsFull())
{
cout<<"Tumpukan Sudah Penuh!";
getch();
}
else
{
penunjuk++;
cout<<"Data Yang Akan Dimasukkan = ";
cin>>data[penunjuk];
cin.ignore(); //function agar string bisa terus berulang tanpa di clear terlebih dahulu
}
}
//membuat fungsi Pop untuk mengambil nilai dari stack yang sebelumya dicek terlebih dahulu apakah kosong atau belum
void pop()
{
if (IsEmpty())
{
cout<<"tidak ada data!";
getch();
}
else
{
cout<<"Data yang diambil adalah : "<<data[penunjuk];
penunjuk--;
getch();
}
}
void dequeue()
{
if (IsEmpty())
{
cout<<"tidak ada data!";
getch();
}
else
{
cout<<"Data yang diambil adalah : "<<data[0];
penunjuk--;
/*for(int x=0;x<=penunjuk;x++)//looping untuk menghapus top dalam stack, agar tidak double
{
data[x]=data[x+1];
}*/
getch();
}
}
//membuat fungsi Clear untuk menghapus data dalam stack
void clear()
{
penunjuk = -1;
cout<<" Sudah Dikosongkan!";
getch();
}
//membuat fungsi untuk menampilkan isi dari stack
void view()
{
if (!IsEmpty())
{
for(int a=penunjuk;a>=0;a--) //looping untuk melihat data stack/queue sesuai limit yang diinput
{
cout<<"Data Pada Tumpukan ke-"<<a<<": "<<data[a]<<endl;
}
}
else
{
cout<<"- N U L L -";
}
}
//fungsi utama
main()
{
int jawab;
system ("cls");
cout<<"\t-------------------------------------------------\n";
cout<<"\t*\t APPLIED PROGRAMMING *\n";
cout<<"\t*\t Program Stack dan Queue *\n";
cout<<"\t-------------------------------------------------\n";
cout<<"\t| |\n";
cout<<"\t| Built By: |\n";
cout<<"\t| Baco |\n";
cout<<"\t| Baso |\n";
cout<<"\t| Irwan |\n";
cout<<"\t| |\n";
cout<<"\t-------------------------------------------------\n";
cout<<"\t| |\n";
cout<<"\t|\t Informatics Engineering - Batch IV |\n";
cout<<"\t|\t ====================== |\n";
cout<<"\t| |\n";
cout<<"\t=================================================\n";
cout<<"\t\t Press Any Key To Continue... \n";
cout<<"\t=================================================\n";
getch();
do
{
system ("cls");
cout<<endl;
cout<<"Status Data Saat Ini:"<<endl<<endl;
view();
cout<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<"==================== P R O G R A M =====================\n\n";
cout<<" S T A C K & Q U E U E \n\n";
cout<<"*********************************************************\n";
cout<<"| |\n";
cout<<"| 1. Push/Enqueue |"<<endl;
cout<<"| 2. Pop |"<<endl;
cout<<"| 3. Dequeue |"<<endl;
cout<<"| 4. Clear |"<<endl;
cout<<"| 5. Exit |"<<endl;
cout<<"| |\n";
cout<<"*********************************************************\n";
cout<<"Masukkan pilihan Anda [ 1/2/3/4/5 ]= ";
cin>>jawab;
switch(jawab)
{
case 1:
int limit;
cout<<"Masukkan Jumlah Limit Data = ";
cin>>limit;
for(int a=1; a<=limit; a++) //looping untuk memunculkan data sesuali limit yang diinput
{
push();
}
break;
case 2:
pop();
break;
case 3:
dequeue();
break;
case 4:
clear();
break;
}
}
while (jawab !=5);
}
#include <conio.h> //untuk cmemanggil console DOS input-output; getch,clrscr,system cls
#include <string>
using namespace std;
int maxim=50; //untuk jumlah maksimum stack & queue
string data[50]; //declare string sebanyak 50 sesuai sama maximal
int penunjuk=-1; // batas bawah tumpukan
//membuat fungsi IsEmpty untuk mengecek stack/queue kosong atau tidak
bool IsEmpty()
{
if(penunjuk == -1)
return true;
else
return false;
}
//membuat fungsi IsFull untuk mengecek stack/queue isi atau tidak
bool IsFull()
{
if(penunjuk == maxim-1)
return true;
else
return false;
}
//membuat fungsi Push untuk memasukkan nilai kedalam stack yang sebelumnya dicek terlebih dahulu apakah penuh atau belum
void push()
{
if(IsFull())
{
cout<<"Tumpukan Sudah Penuh!";
getch();
}
else
{
penunjuk++;
cout<<"Data Yang Akan Dimasukkan = ";
cin>>data[penunjuk];
cin.ignore(); //function agar string bisa terus berulang tanpa di clear terlebih dahulu
}
}
//membuat fungsi Pop untuk mengambil nilai dari stack yang sebelumya dicek terlebih dahulu apakah kosong atau belum
void pop()
{
if (IsEmpty())
{
cout<<"tidak ada data!";
getch();
}
else
{
cout<<"Data yang diambil adalah : "<<data[penunjuk];
penunjuk--;
getch();
}
}
void dequeue()
{
if (IsEmpty())
{
cout<<"tidak ada data!";
getch();
}
else
{
cout<<"Data yang diambil adalah : "<<data[0];
penunjuk--;
/*for(int x=0;x<=penunjuk;x++)//looping untuk menghapus top dalam stack, agar tidak double
{
data[x]=data[x+1];
}*/
getch();
}
}
//membuat fungsi Clear untuk menghapus data dalam stack
void clear()
{
penunjuk = -1;
cout<<" Sudah Dikosongkan!";
getch();
}
//membuat fungsi untuk menampilkan isi dari stack
void view()
{
if (!IsEmpty())
{
for(int a=penunjuk;a>=0;a--) //looping untuk melihat data stack/queue sesuai limit yang diinput
{
cout<<"Data Pada Tumpukan ke-"<<a<<": "<<data[a]<<endl;
}
}
else
{
cout<<"- N U L L -";
}
}
//fungsi utama
main()
{
int jawab;
system ("cls");
cout<<"\t-------------------------------------------------\n";
cout<<"\t*\t APPLIED PROGRAMMING *\n";
cout<<"\t*\t Program Stack dan Queue *\n";
cout<<"\t-------------------------------------------------\n";
cout<<"\t| |\n";
cout<<"\t| Built By: |\n";
cout<<"\t| Baco |\n";
cout<<"\t| Baso |\n";
cout<<"\t| Irwan |\n";
cout<<"\t| |\n";
cout<<"\t-------------------------------------------------\n";
cout<<"\t| |\n";
cout<<"\t|\t Informatics Engineering - Batch IV |\n";
cout<<"\t|\t ====================== |\n";
cout<<"\t| |\n";
cout<<"\t=================================================\n";
cout<<"\t\t Press Any Key To Continue... \n";
cout<<"\t=================================================\n";
getch();
do
{
system ("cls");
cout<<endl;
cout<<"Status Data Saat Ini:"<<endl<<endl;
view();
cout<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<"==================== P R O G R A M =====================\n\n";
cout<<" S T A C K & Q U E U E \n\n";
cout<<"*********************************************************\n";
cout<<"| |\n";
cout<<"| 1. Push/Enqueue |"<<endl;
cout<<"| 2. Pop |"<<endl;
cout<<"| 3. Dequeue |"<<endl;
cout<<"| 4. Clear |"<<endl;
cout<<"| 5. Exit |"<<endl;
cout<<"| |\n";
cout<<"*********************************************************\n";
cout<<"Masukkan pilihan Anda [ 1/2/3/4/5 ]= ";
cin>>jawab;
switch(jawab)
{
case 1:
int limit;
cout<<"Masukkan Jumlah Limit Data = ";
cin>>limit;
for(int a=1; a<=limit; a++) //looping untuk memunculkan data sesuali limit yang diinput
{
push();
}
break;
case 2:
pop();
break;
case 3:
dequeue();
break;
case 4:
clear();
break;
}
}
while (jawab !=5);
}
tampilannya seperti pada gambar di bawah ini.
jika ada yang kurang jelas atau bingun silahkan tinggalkan comment, sekian wassalam😃