1. Contoh Program Stack Pembalikan data :
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
char a[6]={'s','t','i','k','o','m'};
int i;
//Inputan Data
cout<<"Data Masukkan : "<<a<<endl;
cout<<endl;
//Menampilkan data
cout<<"Pembalikan Data :";
for(i=6;i>=0;i--)
{
cout<<a[i]<<"";
}
cout<<endl;
getch();
}
2. Contoh Program Stack, membalik kalimat dengan inputan :
#include <stdio.h>
#include <conio.h>
#include <string.h>
//deklarasi var public
const MaxElemen = 255; //batas maksimum elemen
struct Tumpukan
{
char Isi[MaxElemen];
int Atas;
} T;
void PUSH(char x);
char POP();
//program utama
void main ()
{
int I; // pencacah
char Kalimat[MaxElemen]; //kalimat yang akan dibalik
clrscr();
T.Atas =0; // niali awal tumpukan
printf ("Aplikasi Tumpukan untuk Membalik kalimat\n");
printf ("----------------------------------------\n\n");
// Inputkan kalimat yang akan dibalik
printf("Masukkan sembarang kalimat : ");gets(Kalimat);
clrscr();
printf("Kalimat Asli : %s\n",Kalimat);
//Mem-PUSH huruf dari kalimat ke dalam tumpukan
for(I=0;I<strlen(Kalimat);I++)
{
PUSH(Kalimat[I]);
}
printf("Kalimat Setelah di Balik : ");
//Mem-POP sekaligus mencetak isi tumpukan sehingga diperoleh kalimat yang terbalik
for (I=0;I<strlen(Kalimat);I++)
{
printf("%c",POP());
}
getch();
} //Akhir Program Utama
//sub program PUSH berfungsi memasukkan elemen ke dalam STACK
void PUSH (char x)
{
if(T.Atas == MaxElemen)
{
printf("Tumpukan Sudah Penuh");
getch();
}
else
{
T.Atas = T.Atas + 1;
T.Isi[T.Atas] = x;
}
}
//sub program POP berfungsi mengambil elemen dari STACK
char POP()
{
char hasil;
if(T.Atas == 0)
{
printf("Tumpukan sudah kosong");
hasil = ' ';
}
else
{
hasil = T.Isi[T.Atas];
T.Atas = T.Atas - 1;
}
return hasil;
}
3. Contoh Program Stack dengan menggunakan Structure :
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
struct stack
{
int data[5];
int atas;
}tumpukan;
void masukan();
void keluarkan();
void tampilkan();
void main()
{
int pilihan;
tumpukan.atas = -1;
do
{
clrscr();
cout<<"Program Stack\n\n";
cout<<"1. Masukan Data\n";
cout<<"2. Keluarkan Data\n";
cout<<"3. Tampilkan Data\n";
cout<<"Masukan pilihan :";
cin>>pilihan;
switch(pilihan)
{
case 1:
{
masukan();
break;
}
case 2:
{
keluarkan();
break;
}
case 3:
{
tampilkan();
break;
}
default:
{
cout<<"Bukan pilihan tersedia";
}
}
}
while (pilihan >=1 && pilihan <=3);
getch();
}
void masukan()
{
int baru;
if (tumpukan.atas ==4)
{
cout<<"tumpukan penuh";
getch();
}
else
{
cout<<"Masukan nilai :";
cin>>baru;
tumpukan.atas++;
tumpukan.data[tumpukan.atas] = baru;
}
}
void keluarkan()
{
if (tumpukan.atas == -1)
{
cout<<"Tumpukan Kosong";
getch();
}
else
{
cout<<"Nilai yang dikeluarkan:"<< tumpukan.atas--;//mengurangkan indeks dan menghilangkan data
getch();
}
}
void tampilkan()
{
if (tumpukan.atas == -1)
{
cout<<"Tumpukan kosong";
getch();
}
else
{
cout<<"Data: \n";
for (int i=0;i<=tumpukan.atas; i++)
{
cout<<" "; }
getch();
}
}
4. Contoh Program Stack dengan Single Linked List :
#include<iostream.h>
#include<conio.h>
class Linked_list_Stack
{
private :
struct node
{
int data;
node*next;
}
;
node *top;
node *entry;
node *print;
node *bottom;
node *last_entry;
node *second_last_entry;
public:
Linked_list_Stack();
void pop();
void push();
void print_list();
void show_working();
};
Linked_list_Stack :: Linked_list_Stack()
{
top=NULL;
bottom=NULL;
}
//-------------------------- push() -----------------------//
void Linked_list_Stack::push()
{
int num;
cout<<"\n\n\n\n\n\t Masukan angkapada Stack : ";
cin>>num;
entry=new node;
if(bottom==NULL)
{
entry->data=num;
entry->next=NULL;
bottom=entry;
top=entry;
}
else
{
entry->data=num;
entry->next=NULL;
top->next=entry;
top=entry;
}
cout<<"\n\n\t *** "<<num<<" sudah masuk dalam stack. "<<endl;
cout<<"\n\n\n\t\t Pres any key to return to Menu. ";
getch();
}
//----------------------------------- pop()-------------------------------- //
void Linked_list_Stack::pop()
{
if(bottom==NULL)
cout<<"\n\n\n\t *** Error : Stack is empty. \n"<<endl;
else
{
for(last_entry=bottom; last_entry->next!=NULL;
last_entry=last_entry->next)
second_last_entry=last_entry;
if(top==bottom)
bottom=NULL;
int poped_element=top->data;
delete top;
top=second_last_entry;
top->next=NULL;
cout<<"\n\n\n\t *** "<<poped_element<<"sudah diambil dari Stack."<<endl;
}
cout<<"\n\\n\t\t Pres any key to return to Menu. ";
getch();
}
//-------------------------- print_list() ---------------------------------//
void Linked_list_Stack::print_list()
{
print=bottom;
if(print!=NULL)
cout<<"\n\n\n\n\n\t Angka-angka ada di Stack adalah : \n"<<endl;
else
cout<<"\n\n\n\n\n\t ** Tidak ada yang ditampilkan. "<<endl;
while(print!=NULL)
{
cout<<"\t"<<print->data<<endl;
print=print->next;
}
cout<<"\n\n\n\t\t Pres any key to return to Menu.";
getch();
}
//---------------------------- show_working()----------------//
void Linked_list_Stack:: show_working()
{
char Key=NULL;
do
{
clrscr();
gotoxy(5,5);
cout<<"********** Implementation of Linked List as a Stack **********"<<endl;
gotoxy(10,8);
cout<<"Pilih salah satu menu : "<<endl;
gotoxy(15,10);
cout<<"- Press\ 'P\' to Masukan data dalam Stack"<<endl;
gotoxy(15,12);
cout<<"- Press \'O\' to Hapus data dari Stack"<<endl;
gotoxy(15,14);
cout<<"- Press \'S\' to tampilkan data dari Stack"<<endl;
gotoxy(15,16);
cout<<"- Press \'E\' to Exit"<<endl;
input :
gotoxy(10,20);
cout<<" ";
gotoxy(10,20);
cout<<"Masukan Pilihan : ";
Key=getche();
if(int(Key)==27 || Key=='e' || Key=='E')
break;
else if(Key=='p'|| Key=='P')
push();
else if(Key=='o'|| Key=='O')
pop();
else if (Key=='s' || Key=='S')
print_list();
else
goto input;
}
while(1);
}
//-------------------------------- main() --------------------------- //
int main()
{
Linked_list_Stack obj;
obj.show_working();
return 0;
}
Matur nuwun sanget nggih, kulo copas tapi kulo edit ko :D
BalasHapusartikelnya bermanfaat kak, ini sya jga punya artikel tentang Stack (tumpukan) dalam Bahasa C, smoga dpt saling melengkapi
HapusStack (tumpukan) dalam Bahasa C
Kumpulan Materi Bahasa C, Lengkap dengan contoh program
iya sama-sama :)
BalasHapussangat membantu sekali
BalasHapusterimakasih banyak, akan saya pelajari ^_^
sama-sama, semoga bermanfaat :)
HapusAku jg ijin copy, tapi aku edit lg.......
BalasHapusterima kasih
iya silahkan :)
HapusQ juga idzin copas nch coz buat acuan tugas kuliah
BalasHapusiya :))
Hapusaku ijin copas yaa mbak, tapi aku edit lagi kok :)
BalasHapusterima kasihh, sangat membantu :)
iya terima kasih kembali telah berkunjung :)
Hapusminta ya ... thanks temand
BalasHapusiya sama-sama :)
Hapuspermisi. numpang copas y besok ad kuiz. sblmny trimakasih. :) balas
BalasHapusiya sama-sama, semoga sukses kuisnya :)
Hapusijin copas ya.. thx banget membantu banget nih buat referensi..
BalasHapusizin copas ya mba ,, ada tugas ..
BalasHapusterimakasih ..
iyaa.. sama-sama :)
Hapuska , ko error di "const maxElemen=255;"....
BalasHapuskenapa ya....
tolong bantuan'y....
yg membalikan kata ka ?
BalasHapusijin copas ya mbak
BalasHapusassalamualaikkum.. ijin Copas yaa :) alhamdullilah sangat membantu
BalasHapusMinta ijin copas ya kak :D
BalasHapussaya minta izin untuk mengcopasnya, :-) tapi saya aran semen lagi..
BalasHapusizin copas ya kak :)
BalasHapusizin kopas ya kak? entar aku edit. .
BalasHapusbeda nya getch(); sama return 0; apa sih?
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapus