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.