#include<iostream.h>
//: diperlukan pada program yang melibatkanobjek
cout dan cin.
#include
<conio.h> //-
: diperlukan bila melibatkan clrscr( ), yaitu perintah untuk
membersihkan layar dan fungsi getch( ) untuk menerima sembarang input keyboard
dari user.
struct
stack // tipe data bentukan yang berisi kumpulan variabel-variabel yang
bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain.
{
int
data[5]; // integer nilai yang berupa bilangan
bulat yang di batasi dengan menampung data lima(5).
int
atas; // integer nilai yang berupa bilangan
bulat yang di batasi dengan menampung data yg paling atas.
}tumpukan;
void
masukan();
void
keluarkan();
void
tampilkan();
void main() // Fungsi yang void sering disebut juga prosedur. Disebut void karena
fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari
hasil proses fungsi tersebut.
{
int
pilihan;
tumpukan.atas
= -1;
do
// perulangan.
{
clrscr();
// berfungsi membersihkan layar.
cout<<"Program
Stack\n\n";
cout<<"1.
Masukan Data\n";
cout<<"2.
Hapus Data yang pertama\n";
cout<<"3.
Tampilkan Data\n";
cout<<"Masukan
pilihan :"; // Fungsi cout
<< dapat digunakan untuk
menampilkan semua jenis data (numeric dan karakter) yang dapat berupa
nilai, karakter ataupun konstanta
cin>>pilihan; //
cin merupakan syntak untuk input
data.
data.
// Fungsi cin >> var
fungsi cin >> berguna untuk
menginput data berupa numerik, string, dan karakter. Var dapat lebih dari satu
variabel (cin >> var >> var) dan dapat berupa karakter.
switch(pilihan)//
Statement SWITCH juga berfungsi sama dengan IF. Perintah SWITCH sama
dengan perintah CASE OF dalam PASCAL.
{
case
1:
{
masukan();
break;
// Adalah perintah untuk langsung keluar dari
looping (perulangan).
}
case
2:
{
keluarkan();
break;
// Adalah perintah untuk langsung keluar dari
looping (perulangan).
}
case
3:
{
tampilkan();
break;
// Adalah perintah untuk langsung keluar dari
looping (perulangan).
}
default:
// berguna sebagai alternataif lain. Jadi, jika nilai pada ekspresi
tidak ada yang sesuai dengan nilai konstanta yang ada di setiap kondisi, maka
alternatif yang berada di default lah yang akan di eksekusi.
{
cout<<"Bukan
pilihan tersedia";
}
}
}
while
(pilihan >=1 && pilihan <=3); //
getch();
}
void
masukan()
{
int
baru;
if
(tumpukan.atas ==4)
{
cout<<"tumpukan
penuh";
getch();//tombol
yang kita tekan pada keyboard tidak akan ditampilkan pada console (kecuali kita
panggil variabelnya dengan fungsi printf atau fungsi output lainnya),
}
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 dihapus "<<tumpukan.data[tumpukan.atas+1] <<", pada
stack nomer urutan ke "<< (tumpukan.atas--)+1;//mengurangkan indeks
dan menghilangkan data
getch();
}
}
void
tampilkan()
{
int
p=0;
if
(tumpukan.atas == -1)
{
cout<<"Tumpukan
kosong";
getch();
}
else
{
cout<<"Data:
\n";
for
(int i=tumpukan.atas; i>=0; i--)
{
cout<<"dikeluarkan
nomor " << ++p << ", pada stack data ke "<<
i+1 <<", yaitu : "
<<tumpukan.data[i]<<"\n"; }
getch(); // Fungsi ini digunakan untuk memasukkan data berupa string agar tampil
dilayar.
}
}
Tidak ada komentar:
Posting Komentar