Anda di halaman 1dari 25

LAPORAN PRAKTIKUM RESMI

ALGORITMA & STRUKTUR DATA 1


STACK




Disusun oleh :
Cintia Yosfin Samalle
201301041

Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom




JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014

2

BAB I
TEORI DASAR

Stack merupakan bentuk khusus dari linear list yang pemasukkan dan penghapusan
elemenya hanya dapat dilakukan pada satu posisi yaitu posisi akhir dari list (top). Prinsipnya
adalah Last In First Out (LIFO). Benda yang terakhir masuk dalam stack akan menjadi benda
yang pertama dikeluarkan dari stack.
Operasi stack :
o Isempty : Untuk memeriksa apakah stack kosong
o Isfull : Untuk memeriksa apakah stack sudah penuh
o Push : Untuk menambahkan item pada posisi paling atas
o Pop : Untuk menghapus item paling atas
o Clear : Untuk mengosongkan stack

Contoh Deklarasi Stack Pada Array :
o Deklarasi MAX_STACK 6
#def i ne MAX_STACK 6
o Deklarasi STACK dgn struct dan array data
t ypedef st r uct STACK{
i nt t op
i nt dat a[ 6] ;
};
o Deklarasi variable stack dari struct
STACK t umpuk;
Inisialisasi Pada Stack :
o Pada mulanya isi top dgn -1, karena array dlm C/C++dimulai dari 0, berarti stack
adalah kosong.
o Top adalah variable penanda dlm STACK yang menunjukkan elemen teratas Stack.
o Top of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga
menyebabkan stack PENUH.
voi d i ni si al i sasi ( )
{
t umpuk. t op = - 1
}



3

Fungsi IsEmpty
o Digunakan untuk memeriksa apakah stack masih dalam kondisi kosong
o Dengan cara memeriksa top of stack.
J ika top masih =-1 maka berarti stack kosong.
i nt I sEmpt y( )
{
i f ( t umpuk. t op==- 1)
r et ur n 1;
el se
r et ur n 0;
}

Fungsi IsFull
o Digunakan untuk memeriksa apakah kondisi stack sudah penuh.
o Dengan cara memeriksa TOP of STACK.
J ika TOP of STACK =MAX_STACK-1 maka FULL (penuh).
J ika TOP of STACK <MAX_STACK-1 maka belum penuh.
i nt I sFul l ( )
{
i f ( t umpuk. t op==MAX_STACK- 1)
r et ur n 1;
el se
r et ur n 0;
}

Fungsi push
Digunakan untuk memasukkan elemen ke dalam stack dan selalu menjadi elemen
teratas stack
voi d push( char d[ 6] )
{
t umpuk. t op++
st r cpy( t umpuk. dat a[ t umpuk. t op] , d) ;
}
Dengan cara
1. Menambah 1 (increment) nilai top of stack setiap ada penambahan elemen stack
selama stack masih belum penuh.
2. Isikan nilai baru ke stack berdasarkan indeks top of stack setelah ditambah satu
(di increment).

Fungsi pop
Fungsi ini mengambil elemen teratas dari stack dengan syarat stack tidak boleh kosong.

4

Cara memasukkan data dengan fungsi Pop, yaitu :
o Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack.
o Tampilkan nilai yang akan diambil.
o Lakukan decrement nilai top of stack, sehingga jumlah elemen stack berkurang 1.
voi d Pop( )
{
cout <<Dat a yang t er ambi l =<<t umpuk. dat a[ t umpuk. t op] ;
t umpuk. t op- - ;
}

Fungsi clear
Fungsi ini akan mengosongkan stack dengan cara mengeset Top dengan -1. Jika Top
bernilai kurang dari nol, maka stack dianggap kosong.
voi d cl ear ( )
{
t umpuk. dat a=t umpuk. t op=- 1
cout <<Dat a cl ear ;
}















5

BAB II
PENJELASAN PROGRAM

Pada penjelasan program bab ini akan dijelaskan mengenai bagaimana melakukan
pemrograman C++ dengan menggunakan pointer secara sederhana sesuai dengan modul
praktikum.
Program Stack
/ *
* St ack1. cpp
*
* Cr eat ed on: May 20, 2014
* Aut hor : STI KOM32
*/

#include <i ost r eam>
#include <cst r i ng>
#define MAX_STACK 10
using namespace st d;

struct STACK
{
int t op;
char dat a[ 10] [ 10] ;
}; STACK t umpuk;

void insialisasi( )
{
t umpuk. t op=- 1;
}

int IsFull( )
{
if( t umpuk. t op == MAX_STACK- 1)
return 1;
else
return 0;
}

int IsEmpty( )
{
if( t umpuk. t op == - 1)
return 1;
else
return 0;
}

void Push( char d[ 10] )
{

6

t umpuk. t op++;
strcpy( t umpuk. dat a[ t umpuk. t op] , d) ;
}

void Pop( )
{
cout <<"Dat a yang t er ambi l = "<<t umpuk. dat a[ t umpuk. t op] ;
t umpuk. t op- - ;
}

void TampilStack( )
{
for( int i =t umpuk. t op; i >=0; i - - )
{
cout <<"Tampi l dat a : "<<t umpuk. dat a[ i ] <<endl;
}
}

void Clear( )
{
t umpuk. t op=- 1;
}

int main( )
{
int pi l ;
char dt [ 10] ;
do
{
cout <<"1. Push \ n";
cout <<"2. Pop\ n";
cout <<"3. Tampi l kan dat a \ n";
cout <<"4. Cl ear \ n";
cout <<"5. Kel uar \ n";
cout <<"Pi l i han : ";
ci n>>pi l ;

switch ( pi l )
{
case 1:
if( I sFul l ( ) ! = 1)
{
cout <<"Dat a = ";
ci n>>dt ;
Push( dt ) ;
}
else
cout <<"\ n St ack Penuh! \ n";
break;
case 2:
if( I sEmpt y( ) ! =1)
Pop( ) ;
else
cout <<"St ack kosong! \ n";
break;

7

case 3:
if( I sEmpt y( ) ! =1)
Tampi l St ack( ) ;
else
cout <<"\ n St ack kosong! \ n";
break;
case 4:
Cl ear ( ) ;
cout <<"\ nSt ack kosong! \ n";
break;
}

}while( pi l ! =5) ;

return 0;
}

Output Program Stack






8

Pembahasan Program Stack
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh
compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.
5. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
6. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7. int main(),menyatakan tipe nilai balik fungsi main.
8. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.
9. <cst r i ng> digunakan untuk memanggil fungsi string strcpy.
10. #define MAX_STACK 10 untuk mendefinisikan nilai 10 pada konstanta MAX_STACK.
Definisi ini mendeklarasikan bahwa elemen dalam stack hingga sebanyak 10.
11. struct STACK
{
int t op;
char dat a[ 10] [ 10] ;
}; STACK t umpuk;
Merupakan deklarasi STACK dengan struct dan array data.
12. void insialisasi( )
{
t umpuk. t op=- 1;
}
Merupakan prosedur inisialisasi bahwa TOP of STACK memiliki nilai -1.
13. int IsFull( )
{
if( t umpuk. t op == MAX_STACK- 1)
return 1;
else

9

return 0;
}
Merupakan fungsi untuk memeriksa apakah stack sudah penuh atau belum. J ika nilai
TOP of STACK sama dengan MAX_STACK-1, maka return 1 yang berarti penanda
bahwa kondisi tidak sesuai (adanya kesalahan) dan akan berulang.
14. int IsEmpty( )
{
if( t umpuk. t op == - 1)
return 1;
else
return 0;
}
Merupakan fungsi untuk memeriksa apakah stack kosong atau tidak. J ika TOP of
STACK bernilai -1, maka return 1 yang berarti penanda bahwa kondisi tidak sesuai
(adanya kesalahan) dan akan berulang.
15. void Push( char d[ 10] )
{
t umpuk. t op++;
strcpy( t umpuk. dat a[ t umpuk. t op] , d) ;
}
Merupakan prosedur untuk menambahkan item ke dalam stack. t umpuk. t op++; berarti
indeks TOP of STACK akan naik dan strcpy( t umpuk. dat a[ t umpuk. t op] , d) ; berarti
akan mengkopikan nilai dari variable d ke dalam array data.
16. void Pop( )
{
cout <<"Dat a yang t er ambi l = "<<t umpuk. dat a[ t umpuk. t op] ;
t umpuk. t op- - ;
}
Merupakan prosedur untuk menghapus elemen teratas dari stack dan indeks TOP of
STACK akan turun.
17. void TampilStack( )
{
for( int i =t umpuk. t op; i >=0; i - - )
{
cout <<"Tampi l dat a : "<<t umpuk. dat a[ i ] <<endl;
}
}
Merupakan prosedur untuk menampilkan isi dari stack dengan menggunakan perulangan.
Elemen ditampilkan dari TOP of STACK (elemen yang terakhir di-push) hingga elemen
yang di-push pertama kali.

10

18. void Clear( )
{
t umpuk. t op=- 1;
}
Merupakan prosedur untuk mengosongkan stack dengan cara langung mengeset TOP of
STACK bernilai -1.
19. int main ( ) ialah fungsi di mana program akan memberikan nilai balik berupa integer.
20. i nt pi l ; char dt [ 10] ; merupakan deklarasi variabel pi l bertipe integer (bilangan
bulat) dan array dt bertipe.
21. do
{

}
while( pi l ! =5) ;
Merupakan bentuk perulangan yang melaksanakan perulangan terlebih dahulu dan
pengujian dilakukan belakangan. Statement akan terus dijalankan selama variabel pi l
tidak bernilai 5.
22. cout <<"1. Push \ n";
cout <<"2. Pop\ n";
cout <<"3. Tampi l kan dat a \ n";
cout <<"4. Cl ear \ n";
cout <<"5. Kel uar \ n";
cout <<"Pi l i han : ";
Merupakan statement untuk menampilkan keluaran. \n merupakan karakter khusus
(escape sequence characters) yang berarti newline atau berpindah baris.
23. ci n>>pi l ; merupakan fungsi untuk menginputkan nilai ke dalam variabel pi l .
24. switch ( pi l )
{
}
Merupakan bentuk pemilihan untuk melaksanakan aksi berdasarkan nilai pada variabel
pi l .
25. case 1:
if( I sFul l ( ) ! = 1)
{
cout <<"Dat a = ";
ci n>>dt ;
Push( dt ) ;
}
else
cout <<"\ n St ack Penuh! \ n";
break;

11

Merupakan aksi push yang yang dilakukan jika variabel pi l bernilai 1. Aksi push
dilakukan (dengan memanggil prosedur Push) jika fungsi IsFull tidak menunjukan
kesalahan (stack tidak penuh). J ika stack penuh, maka hanya akan muncul peringatan.
break; merupakan pernyataan untuk keluar dari statement sehingga tidak lagi melakukan
aksi pengecekan dan keluar dari case.
26. case 2:
if( I sEmpt y( ) ! =1)
Pop( ) ;
else
cout <<"St ack kosong! \ n";
break;
Merupakan aksi pop yang yang dilakukan jika variabel pi l bernilai 2. Aksi pop
dilakukan (dengan memanggil prosedur Pop) jika fungsi IsEmpty tidak menunjukan
kesalahan (stack tidak kosong). J ika stack kosong, maka hanya akan muncul peringatan.
break; merupakan pernyataan untuk keluar dari statement sehingga tidak lagi melakukan
aksi pengecekan dan keluar dari case.

27. case 3:
if( I sEmpt y( ) ! =1)
Tampi l St ack( ) ;
else
cout <<"\ n St ack kosong! \ n";
break;
Merupakan aksi menampilkan stack jika variabel pi l bernilai 3. Aksi ini dilakukan
(dengan memanggil prosedur TampilStack) jika fungsi IsEmpty tidak menunjukan
kesalahan (stack tidak kosong). J ika stack kosong, maka hanya akan muncul peringatan.
break; merupakan pernyataan untuk keluar dari statement sehingga tidak lagi melakukan
aksi pengecekan dan keluar dari case.
28. case 4:
Cl ear ( ) ;
cout <<"\ nSt ack kosong! \ n";
break;
Merupakan aksi clear jika variabel pi l bernilai 4. Aksi ini dilakukan dengan memanggil
prosedur Clear.
29. break; merupakan pernyataan untuk keluar dari statement sehingga tidak lagi
melakukan aksi pengecekan dan keluar dari case.
30. return 0 dimaksudkan untuk menyatakan nilai balik main.
31. Tanda <<adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di
kanannya akan dirim ke layar.

12

32. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program.
33. \n digunakan untuk memindahkan kursor ke baris berikutnya.


Program Tugas Praktikum
Pada praktikum kali ini kita akan membu program stack menggunakan fungsi Push dan
fungsi Pop dengan MAX_STACK 10.

Program Push
/ *
* St ack1. cpp
*
* Cr eat ed on: May 20, 2014
* Aut hor : STI KOM32
*/

#include <i ost r eam>
#include <cst r i ng>
#define MAX_STACK 10
Using namespace st d;

structSTACK
{
int t op;
char dat a[ 10] [ 10] ;
}; STACK t umpuk;

void insialisasi( )
{
t umpuk. t op=- 1;
}

int IsFull( )
{
if( t umpuk. t op == MAX_STACK- 1)
return 1;
else
return 0;
}

int IsEmpty( )
{
if( t umpuk. t op == - 1)
return 1;
else

13

return 0;
}

void Push( char d[ 10] )
{
t umpuk. t op++;
strcpy( t umpuk. dat a[ t umpuk. t op] , d) ;
}

void TampilStack( )
{
for( int i =t umpuk. t op; i >=0; i - - )
{
cout <<"Tampi l dat a : "<<t umpuk. dat a[ i ] <<endl;
}
}

int main( )
{
int pi l ;
char dt [ 10] ;
do
{
cout <<"1. Push \ n";
cout <<"2. Tampi l kan dat a \ n";
cout <<"3. Kel uar \ n";
cout <<"Pi l i han : ";
ci n>>pi l ;

switch ( pi l )
{
case 1:
if( I sFul l ( ) ! = 1)
{
cout <<"Dat a = ";
ci n>>dt ;
Push( dt ) ;
}
else
cout <<"\ n St ack Penuh! \ n";
break;
case 2:
if( I sEmpt y( ) ! =1)
Tampi l St ack( ) ;
else
cout <<"\ n St ack kosong! \ n";
break;
}

}while( pi l ! =3) ;

return 0;
}


14

Output Program Push


Pembahasan Program Push
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.
5. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
6. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
7. int main(),menyatakan tipe nilai balik fungsi main.
8. <cst r i ng> digunakan untuk memanggil fungsi string strcpy.

15

9. #define MAX_STACK 10 untuk mendefinisikan nilai 10 pada konstanta MAX_STACK.
Definisi ini mendeklarasikan bahwa elemen dalam stack hingga sebanyak 10.
10. struct STACK
{
int t op;
char dat a[ 10] [ 10] ;
}; STACK t umpuk;
Merupakan deklarasi STACK dengan struct dan array data.
11. void insialisasi( )
{
t umpuk. t op=- 1;
}
Merupakan prosedur inisialisasi bahwa TOP of STACK memiliki nilai -1.
12. int IsFull( )
{
if( t umpuk. t op == MAX_STACK- 1)
return 1;
else
return 0;
}
Merupakan fungsi untuk memeriksa apakah stack sudah penuh atau belum. J ika nilai TOP of
STACK sama dengan MAX_STACK-1, maka return 1 yang berarti penanda bahwa kondisi
tidak sesuai (adanya kesalahan) dan akan berulang.
13. int IsEmpty( )
{
if( t umpuk. t op == - 1)
return 1;
else
return 0;
}
Merupakan fungsi untuk memeriksa apakah stack kosong atau tidak. J ika TOP of STACK
bernilai -1, maka return 1 yang berarti penanda bahwa kondisi tidak sesuai (adanya
kesalahan) dan akan berulang.
14. void Push( char d[ 10] )
{
t umpuk. t op++;
strcpy( t umpuk. dat a[ t umpuk. t op] , d) ;
}

16

Merupakan prosedur untuk menambahkan item ke dalam stack. t umpuk. t op++; berarti
indeks TOP of STACK akan naik dan strcpy( t umpuk. dat a[ t umpuk. t op] , d) ; berarti
akan mengkopikan nilai dari variable d ke dalam array data.
15. void TampilStack( )
{
for( int i =t umpuk. t op; i >=0; i - - )
{
cout <<"Tampi l dat a : "<<t umpuk. dat a[ i ] <<endl;
}
}
Merupakan prosedur untuk menampilkan isi dari stack dengan menggunakan perulangan.
Elemen ditampilkan dari TOP of STACK (elemen yang terakhir di-push) hingga elemen
yang di-push pertama kali.
16. int main ( ) ialah fungsi di mana program akan memberikan nilai balik berupa integer.

17. i nt pi l ; char dt [ 10] ; merupakan deklarasi variabel pi l bertipe integer (bilangan bulat)
dan array data bertipe.
18. do
{

}
while( pi l ! =5) ;
Merupakan bentuk perulangan yang melaksanakan perulangan terlebih dahulu dan pengujian
dilakukan belakangan. Statement akan terus dijalankan selama variabel pi l tidak bernilai 5.
19. cout <<"1. Push \ n";
cout <<"2. Tampi l kan dat a \ n";
cout <<"3. Kel uar \ n";
cout <<"Pi l i han : ";
Merupakan statement untuk menampilkan keluaran. \n merupakan karakter khusus (escape
sequence characters) yang berarti newline atau berpindah baris.
20. ci n>>pi l ; merupakan fungsi untuk menginputkan nilai ke dalam variabel pi l .
21. switch ( pi l )
{
}
Merupakan bentuk pemilihan untuk melaksanakan aksi berdasarkan nilai pada variabel pi l .
22. case 1:
if( I sFul l ( ) ! = 1)
{
cout <<"Dat a = ";

17

ci n>>dt ;
Push( dt ) ;
}
else
cout <<"\ n St ack Penuh! \ n";
break;
Merupakan aksi push yang yang dilakukan jika variabel pi l bernilai 1. Aksi push dilakukan
(dengan memanggil prosedur Push) jika fungsi IsFull tidak menunjukan kesalahan (stack
tidak penuh). J ika stack penuh, maka hanya akan muncul peringatan. break; merupakan
pernyataan untuk keluar dari statement sehingga tidak lagi melakukan aksi pengecekan dan
keluar dari case.
23. case 2:
if( I sEmpt y( ) ! =1)
Tampi l St ack( ) ;
else
cout <<"\ n St ack kosong! \ n";
break;
Merupakan aksi menampilkan stack jika variabel pi l bernilai 3. Aksi ini dilakukan (dengan
memanggil prosedur TampilStack) jika fungsi IsEmpty tidak menunjukan kesalahan (stack
tidak kosong). J ika stack kosong, maka hanya akan muncul peringatan. break; merupakan
pernyataan untuk keluar dari statement sehingga tidak lagi melakukan aksi pengecekan dan
keluar dari case.
24. break; merupakan pernyataan untuk keluar dari statement sehingga tidak lagi melakukan
aksi pengecekan dan keluar dari case.
25. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.
26. return 0 dimaksudkan untuk menyatakan nilai balik main.
27. Tanda <<adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di
kanannya akan dirim ke layar.
28. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program.
29. \n digunakan untuk memindahkan kursor ke baris berikutnya.

Program Pop
/ *
* St ack1. cpp
*
* Cr eat ed on: May 20, 2014
* Aut hor : STI KOM32
*/

18


#include <i ost r eam>
#include <cst r i ng>
#define MAX_STACK 10
using namespace st d;

struct STACK
{
int t op;
char dat a[ 10] [ 10] ;
}; STACK t umpuk;

void insialisasi( )
{
t umpuk. t op=- 1;
}

int IsFull( )
{
if( t umpuk. t op == MAX_STACK- 1)
return 1;
else
return 0;
}

int IsEmpty( )
{
if( t umpuk. t op == - 1)
return 1;
else
return 0;
}

void Push( char d[ 10] )
{
t umpuk. t op++;
strcpy( t umpuk. dat a[ t umpuk. t op] , d) ;
}

void Pop( )
{
cout <<"Dat a yangt er ambi l = "<<t umpuk. dat a[ t umpuk. t op] ;
t umpuk. t op- - ;
}

void TampilStack( )
{
for( int i =t umpuk. t op; i >=0; i - - )
{
cout <<"Tampi l dat a : "<<t umpuk. dat a[ i ] <<endl;
}
}

int main( )
{

19

int pi l ;
char dt [ 10] ;
do
{
cout <<"1. Pop\ n";
cout <<"2. Tampi l kan dat a \ n";
cout <<"3. Kel uar \ n";
cout <<"Pi l i han : ";
ci n>>pi l ;

switch ( pi l )
{
case 1:
if( I sEmpt y( ) ! =1)
Pop( ) ;
else
cout <<"St ack kosong! \ n";
break;
case 2:
if( I sEmpt y( ) ! =1)
Tampi l St ack( ) ;
else
cout <<"\ n St ack kosong! \ n";
break;
}

}while( pi l ! =4) ;

return 0;
}


Output Program Pop



20

Pembahasan Program Pop
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>untuk memanggil fungsi cout dan cin dalam C++.
4. <cst r i ng> , digunakan untuk pemanggilan string.
5. using namespace std; adalah standar deviasi dalam sebuah program dalam bahasa
pemrograman C++.
6. Tanda kurung kurawal {} dimaksudkan untuk mengawali dan mengakhiri bagian main.
7. Tanda ; digunakan untuk mengakhiri sebuah pernyataan.
8. int main(),menyatakan tipe nilai balik fungsi main.
9. <cst r i ng> digunakan untuk memanggil fungsi string strcpy.
10. #define MAX_STACK 10 untuk mendefinisikan nilai 10 pada konstanta MAX_STACK.
Definisi ini mendeklarasikan bahwa elemen dalam stack hingga sebanyak 10.
11. struct STACK
{
int t op;
char dat a[ 10] [ 10] ;
}; STACK t umpuk;
Merupakan deklarasi STACK dengan struct dan array data.
12. void insialisasi( )
{
t umpuk. t op=- 1;
}
Merupakan prosedur inisialisasi bahwa TOP of STACK memiliki nilai -1.
13. int IsFull( )
{
if( t umpuk. t op == MAX_STACK- 1)
return 1;
else
return 0;

21

}
Merupakan fungsi untuk memeriksa apakah stack sudah penuh atau belum. J ika nilai TOP of
STACK sama dengan MAX_STACK-1, maka return 1 yang berarti penanda bahwa kondisi
tidak sesuai (adanya kesalahan) dan akan berulang.
14. int IsEmpty( )
{
if( t umpuk. t op == - 1)
return 1;
else
return 0;
}
Merupakan fungsi untuk memeriksa apakah stack kosong atau tidak. J ika TOP of STACK
bernilai -1, maka return 1 yang berarti penanda bahwa kondisi tidak sesuai (adanya
kesalahan) dan akan berulang.
15. void Pop( )
{
cout <<"Dat a yang t er ambi l = "<<t umpuk. dat a[ t umpuk. t op] ;
t umpuk. t op- - ;
}
Merupakan prosedur untuk menghapus elemen teratas dari stack dan indeks TOP of STACK
akan turun.
16. void TampilStack( )
{
for( int i =t umpuk. t op; i >=0; i - - )
{
cout <<"Tampi l dat a : "<<t umpuk. dat a[ i ] <<endl;
}
}
Merupakan prosedur untuk menampilkan isi dari stack dengan menggunakan perulangan.
Elemen ditampilkan dari TOP of STACK (elemen yang terakhir di-push) hingga elemen
yang di-push pertama kali.
17. int main ( ) ialah fungsi di mana program akan memberikan nilai balik berupa integer.

18. i nt pi l ; char dt [ 10] ; merupakan deklarasi variabel pi l bertipe integer (bilangan bulat)
dan array dt bertipe.
19. do
{

}

22

while( pi l ! =5) ;
Merupakan bentuk perulangan yang melaksanakan perulangan terlebih dahulu dan pengujian
dilakukan belakangan. Statement akan terus dijalankan selama variabel pi l tidak bernilai 5.
20. cout <<"1. Pop\ n";
cout <<"2. Tampi l kan dat a \ n";
cout <<"3. Kel uar \ n";
cout <<"Pi l i han : ";
Merupakan statement untuk menampilkan keluaran. \n merupakan karakter khusus (escape
sequence characters) yang berarti newline atau berpindah baris.
21. ci n>>pi l ; merupakan fungsi untuk menginputkan nilai ke dalam variabel pi l .
22. switch ( pi l )
{
}
Merupakan bentuk pemilihan untuk melaksanakan aksi berdasarkan nilai pada variabel pi l .
23. case 1:
if( I sEmpt y( ) ! =1)
Pop( ) ;
else
cout <<"St ack kosong! \ n";
break;
Merupakan aksi pop yang yang dilakukan jika variabel pi l bernilai 2. Aksi pop dilakukan
(dengan memanggil prosedur Pop) jika fungsi IsEmpty tidak menunjukan kesalahan (stack
tidak kosong). J ika stack kosong, maka hanya akan muncul peringatan. break; merupakan
pernyataan untuk keluar dari statement sehingga tidak lagi melakukan aksi pengecekan dan
keluar dari case.

24. case 2:
if( I sEmpt y( ) ! =1)
Tampi l St ack( ) ;
else
cout <<"\ n St ack kosong! \ n";
break;
Merupakan aksi menampilkan stack jika variabel pi l bernilai 3. Aksi ini dilakukan (dengan
memanggil prosedur TampilStack) jika fungsi IsEmpty tidak menunjukan kesalahan (stack
tidak kosong). J ika stack kosong, maka hanya akan muncul peringatan. break; merupakan
pernyataan untuk keluar dari statement sehingga tidak lagi melakukan aksi pengecekan dan
keluar dari case.
25. break; merupakan pernyataan untuk keluar dari statement sehingga tidak lagi melakukan
aksi pengecekan dan keluar dari case.
26. cout dipakai untuk menampilkan teks/data ke layar monitor sehingga menjadi output.

23

27. return 0 dimaksudkan untuk menyatakan nilai balik main.
28. Tanda <<adalah tanda spesifik dalam cout. Tanda tersebut menyatakan bahwa nilai di
kanannya akan dikirim ke layar.
29. cout dan cin disini maksudnya adalah sebagai fungsi input dan output sebuah program.
30. \n digunakan untuk memindahkan kursor ke baris berikutnya.





















24

BAB III
KESIMPULAN

Stack merupakan bentuk khusus dari linear list yang pemasukkan dan penghapusan
elemenya hanya dapat dilakukan pada satu posisi yaitu posisi akhir dari list (top). Prinsipnya
adalah Last In First Out (Benda yang terakhir masuk akan menjadi benda yang pertama
dikeluarkan).
Operasi stack terbagi menjadi beberapa bagian, diantaranya IsEmpty, IsFull, Push, Pop,
dan Clear.
Contoh Deklarasi Stack Pada Array :
o Deklarasi MAX_STACK 6
#def i ne MAX_STACK 6
o Deklarasi STACK dgn struct dan array data
t ypedef st r uct STACK{
i nt t op
i nt dat a[ 6] ;
};
o Deklarasi variable stack dari struct
STACK t umpuk;










25


DAFTAR PUSTAKA
1. Ardhana, YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclups Indigo C ++.
Yogyakarta: CAPS (Center of Academic Publishing Service).
2. Murya Kusuma Ardhana, Yosef dan Gregorius Airlangga. 2011. Algoritma
Pemrograman C++ Dalam Ilustrasi. Jasakom : Yogyakarta.
3. Kadir, Abdul. 2012. Buku Pintar C++ Untuk Pemula. Yogyakarta: MediaKom.

Anda mungkin juga menyukai