Anda di halaman 1dari 11

LAPORAN SEMENTARA

STACK


Disusunoleh:
Triyono
201301067


Dosen:
Yosef MuryaKusumaArdhana.,S.T

JURUSAN
SISTEM INFORMASI
SEKOLAH TINGGI KOMPUTER (STIKOM)
YOS SUDARSO PURWOKERTO
2013



BAB I
LANDASAN TEORI

STACK
Stack atau tumpukan merupakan bentuk khusus dari Linier List yang pemasukan dan
penghapusan elemennya dapat dilakukan pada satu posisi, yaitu posisi akhir dari list (Top).
Prinsip stack adalah LAST-IN-FIRST-OUT(LIFO). Yaitu benda terakhir yang masuk dalam
stack akan menjadi benda pertama yang dikeluarkan dari stack.

Macam-macam operasi stack, yaitu :
A. Isempty
>>> Untuk memeriksa apakah stack kosong.
B. Isfull
>>> Untuk memeriksa apakah stack sudah penuh.
C. Push
>>> Untuk menambah item posisi paling atas (TOP).
D. Pop
>>> Untuk menghapus item posisi paling atas (TOP).
E. Clear
>>> Untuk mengosongkan stack.



Deklarasi MAX_STACK :

#define MAX_STACK 6
Deklarasi stack dengan struck dan array :
Typedef struck STACK {
Int top;
Char data[6];
};
Deklarasi variable stack dari struct :
STACK tumpuk;
Inisialisasi pada stack :
Void inisialisasi()
{
Tumpuk.top = -1;
}
Isempety pada stack :
int IsEmpty()
{
if(tumpuk.top==-1)
return 1;
else
return 0;
}
Isfull pada stack :
int IsFull()
{
if(tumpuk.top==MAX_STACK-1)
return 1;
else
return 0;
}
Push pada stack :
void Push(char d[10])
{
tumpuk.top++;
strcpy(tumpuk.data[tumpuk.top],d);
}
Pop pada stack :
void Pop()
{
cout<<"Data yang terambil: "<<tumpuk.data[tumpuk.top];
tumpuk.top--;
}



Bab II

Listing program STACK


/*
* stack.cpp
*
* Created on: Jun 4, 2014
* Author: Andi Raptor
*/

#include <iostream>
#include <cstring>
#define MAX_STACK 10
using namespace std;
struct STACK {
int top;
char data [10] [10];
}; STACK tumpuk;
void inisialisasi()
{
tumpuk.top=-1;
}
int IsFull()
{
if(tumpuk.top==MAX_STACK-1)
return 1;
else
return 0;
}
int IsEmpty()
{
if(tumpuk.top==-1)
return 1;
else
return 0;
}
void Push(char d[10])
{
tumpuk.top++;
strcpy(tumpuk.data[tumpuk.top],d);
}
void Pop()
{
cout<<"Data yang terambil: "<<tumpuk.data[tumpuk.top];
tumpuk.top--;
}
void TampilStack()
{
for(int i=tumpuk.top; i>=0; i--)
{
cout<<"Tampil data: "<<tumpuk.data[i]<<endl;
}
}
void Clear()
{
tumpuk.top=-1;
}
int main()
{
int pil;
inisialisasi();
char dt[10];
do
{
cout<<"1. Push "<<endl;
cout<<"2. Pop "<<endl;
cout<<"3. Tampilkan Data "<<endl;
cout<<"4. Clear "<<endl;
cout<<"5. Keluar "<<endl;
cout<<"Pilihan: ";
cin>>pil;
switch(pil)
{
case 1: if(IsFull() !=1)
{
cout<<"Data= ";
cin>>dt;
Push(dt);
}
else
cout<<"\n Stack Penuh! \n";
break;
case 2: if(IsEmpty() !=1)
Pop();
else
cout<<"\n Stack Kosong! \n";
break;

case 3: if(IsEmpty() !=1)
TampilStack();

else
cout<<"\n Stack Kosong! \n";
break;
case 4: Clear();
cout<<"\n Stack Sudah Kosong! \n";
break;
}
}
while (pil !=5);
return 0;
}





Output











Penjelasan program diatas :


#include <iostream>
#include <cstring>
#define MAX_STACK 10 /*Pendeklarasian tipe MAX_STACK*/
using namespace std;
struct STACK { /*Pendeklarasian tipe baru STACK*/
int top; /*Pendeklarasian top tipe data integer */
char data [10] [10]; /*Pendeklarasian data tipe data character */}; STACK tumpuk;
/*Pendeklarasian STACK bertipe data tumpuk */
void inisialisasi()/*Inisialisasi STACK */
{
tumpuk.top=-1; /*Berarti top dimulai dari -1 */
}
int IsFull() /*Untuk memeriksa apakah stack sudah penuh */
{
if(tumpuk.top==MAX_STACK-1) /*jika paling atas sama dengan MAX_STACK dikurangi
1 */
return 1; /*Maka 1 */
else
return 0; /*selainnya 0 */
}
int IsEmpty() /*Untuk memeriksa apakah stack sudah kosong*/
{
if(tumpuk.top==-1) /*jika paling atas sama dengan -1 atau kosong */
return 1; /*Maka 1 */
else
return 0; /*selainnya 0 */
}
void Push(char d[10]) /*Untuk menambahkan item paling atas (TOP) */
{
tumpuk.top++;
strcpy(tumpuk.data[tumpuk.top],d); /*Untuk menambah data*/
}
void Pop()/*Untuk menghapus item paling atas (TOP) */
{
cout<<"Data yang terambil: "<<tumpuk.data[tumpuk.top];
/*Untuk menghapus data*/
tumpuk.top--;
}
void TampilStack()/*Untuk menampilkan stack */
{
for(int i=tumpuk.top; i>=0; i--)
{
cout<<"Tampil data: "<<tumpuk.data[i]<<endl;
/*Untuk menampilkan data*/
}
}
void Clear()/*Untuk menghapus stack keseluruhan */
{
tumpuk.top=-1; /*Top sama dengan kosong atau -1 */
}
int main()
{
int pil; /*Pendeklarasian pil tipe data integer */
inisialisasi();
char dt[10]; /*Pendeklarasian dt tipe data character */
do
{
cout<<"1. Push "<<endl; /*Untuk menampilkan Push*/
cout<<"2. Pop "<<endl; /*Untuk menampilkan Pop*/
cout<<"3. Tampilkan Data "<<endl; /*Untuk menampilkan Tampil
data*/
cout<<"4. Clear "<<endl; /*Untuk menampilkan clear*/
cout<<"5. Keluar "<<endl; /*Untuk menampilkan keluar*/
cout<<"Pilihan: ";
cin>>pil; /*Untuk menampilkan Pilihan dan menginput pilihan*/
switch(pil)
{
/*Untuk memilih Push atau 1 */
case 1: if(IsFull() !=1)
{
cout<<"Data= ";
/* Untuk menginputkan data */
cin>>dt;
Push(dt); /*Untuk memanggil Push */
}
else
cout<<"\n Stack Penuh! \n";
/*Untuk menampilkan jika stack sudah penuh */
break;
/*Untuk memilih pop atau 2*/
case 2: if(IsEmpty() !=1)
Pop();/*Untuk memanggil Pop*/
else
cout<<"\n Stack Kosong! \n";
/*Untuk menampilkan jika stack sudah kososng */
break;
/*Untuk memilih menampilkan data atau 3 */
case 3: if(IsEmpty() !=1)
TampilStack();
/*Untuk memanggil TampilStack */
else
cout<<"\n Stack Kosong! \n";
/*Untuk menampilkan jika stack sudah kososng */
break;
/*Untuk memilih clear atau 4 */
case 4: Clear();
cout<<"\n Stack Sudah Kosong! \n";
/*Untuk menampilkan stack sudah kososng */
break;
}
while (pil !=5);
return 0;
}












Bab III
Kesimpulan
Dari dasar teori diatas danhasil praktikum diatas bias disimpulkan bahwa Stack atau
tumpukan merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan
elemennya dapat dilakukan pada satu posisi, yaitu posisi akhir dari list (Top). Prinsip stack
adalah LAST-IN-FIRST-OUT(LIFO). Yaitu benda terakhir yang masuk dalam stack akan
menjadi benda pertama yang dikeluarkan dari stack.

Anda mungkin juga menyukai