JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO 2014
BAB I DASAR TEORI
Stack atau tumpukan merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari List (Top) Prinsip Stack adalah LAST-IN-FIRST-OUT (LIFO). Operasi operasi pada stack ada beberapa macam, berikut adalah operasi operasi yang digunakan dalam stack : ISEMPTY: Untuk memeriksa apakah stack kosong ISFULL : Untuk memeriksa apakah stack sudah penuh PUSH : Untuk menambahkan item pada posisi paling atas (TOP) POP : Untuk menghapus item paling atas (TOP) CLEAR : Untuk mengosongkan stack
Stack pada array Deklarasi MAX_STACK #define MAX_STACK 6 Deklarasi STACK dengan struct dan array data typedef struct STACK{ int top; int data[6]; }; Deklarasi variabel stack dari struct STACK tumpuk;
Inisialisasi pada stack Pada mulanya isi top dengan -1, karena array dalam C/C++ dimulai dari 0, berarti stack adalah KOSONG TOP adalah variabel penanda dalam STACK yang menunjukkan elemen teratas Stack. TOP of STACK akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH
Fungsi IsEmpty Digunakan untuk memeriksa apakah stack masih dalam kondisi kosong. Dengan cara memeriksa TOP of STACK. Jika TOP masih = -1 maka berarti stack masih kosong
Fungsi IsFull Digunakan untuk memeriksa apakah kondisi stack sudah penuh Dengan cara memeriksa TOP of Stack. Jika TOP of STACK = MAX_STACK-1 maka FULL (Penuh). Jika TOP of STACK < MAX_STACK-1 maka belum penuh
Fungsi Push Digunakan untuk memasukkan elemen ke dalam stack dan selalu menjadi elemen teratas stack Dengan cara : 1. Menambah satu (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 (diincrement)
Fungsi Pop Digunakan untuk menghapus elemen yang berada pada posisi paling atas dari stack. Dengan cara : 1. Ambil dahulu nilai elemen teratas stack dengan mengakses TOP of STACK. 2. Tampilkan nilai yang akan diambil. 3. Lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1
Fungsi Clear Digunakan untuk mengosongkan stack / membuat stack hampa sehingga Top pada Stack berada kembali di posisi Top = -1
BAB II PENJELASAN PROGRAM
/* * full.cpp * * Created on: 25 Mei 2014 * Author: acer */
#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<<"\n1. Push \n"; cout<<"2. Pop\n"; cout<<"3. Tampilkan data \n"; cout<<"4. Clear \n"; cout<<"5. Keluar \n";
Penjelasan program : 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> berfungsi untuk memanggil fungsi/perintah cin cout didalam program C++. 4. Using name space std; adalah standar deviasi bahasa pemrograman C++. 5. . struct STACK { int top; char data[10][10]; }; STACK tumpuk; Maksudnya adalah pendeklarasian tipedata abstrack struct bernama tumpuk. 6. Int main() adalah fungsi unruk memulai suatu program. 7. Tanda kurung kurawal {} berfungsi untuk mengawali dan mengakhiri program main 8. Void adalah sub menu yang akan dipanggil dalam menu utama. 9. Do-while adalah suatu fungsi perulangan. 10. Cout<<\n1.push, \n2.pop, dst adalah daftar menu yang ada dalam program. 11. Cout<<pilihan : adalah var yang ditampilkan dalam program untuk pemilihan daftar menu. 12. Cin>>pil; adalah pemanggilan var yang diinputkan oleh user. 13. Switch adalah fungsi pemilihan menu sesuai dengan yang di inputkan user. 14. Case 1, case 2, case 3 dst adalah daftar fungsi pengandaian yang digunakan dalam program. Digunakan saat terjadi pemilihan menu, apabila dalam case 1 terpenuhi maka program berhenti namun apabila tidak maka case akan berlanjut ke case berikutnya. 15. Return 0; digunakan untuk membaca karakter.
Program praktikum pop /* * pop.cpp * * Created on: 25 mei 2014 * Author: unggulbudisuryanto */
#include <iostream> #include <cstring> #define max_stack 10 using namespace std;
Penjelasan program : 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> berfungsi untuk memanggil fungsi/perintah cin cout didalam program C++. 4. Using name space std; adalah standar deviasi bahasa pemrograman C++. 5. struct stack { int top; char data[10] [10];
};stack bobo; Adalah pendeklarasian typedata abstrak bernama bobo yang digunakan dalam program tersebut. 6. Int main() adalah fungsi unruk memulai suatu program. 7. Tanda kurung kurawal {} berfungsi untuk mengawali dan mengakhiri program main 8. Void adalah sub menu yang akan dipanggil dalam menu utama. 9. Do-while adalah suatu fungsi perulangan. 10. Cout<<\n1, \n2, dst adalah daftar menu yang ada dalam program. 11. Cout<<pilihan : adalah var yang ditampilkan dalam program untuk pemilihan daftar menu. 12. Cin>>pil; adalah pemanggilan var yang diinputkan oleh user. 13. Switch adalah fungsi pemilihan menu sesuai dengan yang di inputkan user. 14. Case 1, case 2, case 3 dst adalah daftar fungsi pengandaian yang digunakan dalam program. Digunakan saat terjadi pemilihan menu, apabila dalam case 1 terpenuhi maka program berhenti namun apabila tidak maka case akan berlanjut ke case berikutnya. 15. Return 0; digunakan untuk membaca karakter.
Program praktikum push /* * push.cpp * * Created on: 25 Mei 2014 * Author: acer */
#include <iostream> #include <cstring> #define MAX_STACK 10 using namespace std;
struct STACK { int top; char data[10] [10]; int max_stack; };STACK bobo;
} while(pil !=5); return 0; } Output programnya adalah :
Penjelasan program : 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> berfungsi untuk memanggil fungsi/perintah cin cout didalam program C++. 4. Using name space std; adalah standar deviasi bahasa pemrograman C++. 5. struct STACK { int top; char data[10] [10]; int max_stack; };STACK bobo; Adalah pendeklarasian typedata abstrak bernama bobo yang digunakan dalam program tersebut. 6. Int main() adalah fungsi unruk memulai suatu program. 7. Tanda kurung kurawal {} berfungsi untuk mengawali dan mengakhiri program main 8. Void adalah sub menu yang akan dipanggil dalam menu utama. 9. Do-while adalah suatu fungsi perulangan. 10. Cout<<\n1, \n2, dst adalah daftar menu yang ada dalam program. 11. Cout<<pilihan : adalah var yang ditampilkan dalam program untuk pemilihan daftar menu. 12. Cin>>pil; adalah pemanggilan var yang diinputkan oleh user. 13. Switch adalah fungsi pemilihan menu sesuai dengan yang di inputkan user. 14. Case 1, case 2, case 3 dst adalah daftar fungsi pengandaian yang digunakan dalam program. Digunakan saat terjadi pemilihan menu, apabila dalam case 1 terpenuhi maka program berhenti namun apabila tidak maka case akan berlanjut ke case berikutnya. 15. Return 0; digunakan untuk membaca karakter.
BAB IV KESIMPULAN
Stack atau tumpukan merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari List (Top) Prinsip Stack adalah LAST-IN-FIRST-OUT (LIFO). Operasi operasi pada stack ada beberapa macam, berikut adalah operasi operasi yang digunakan dalam stack : ISEMPTY: Untuk memeriksa apakah stack kosong ISFULL : Untuk memeriksa apakah stack sudah penuh PUSH : Untuk menambahkan item pada posisi paling atas (TOP) POP : Untuk menghapus item paling atas (TOP) CLEAR : Untuk mengosongkan stack
Stack pada array Deklarasi MAX_STACK #define MAX_STACK 6 Deklarasi STACK dengan struct dan array data typedef struct STACK{ int top; int data[6]; }; Deklarasi variabel stack dari struct STACK tumpuk; Fungsi IsEmpty Digunakan untuk memeriksa apakah stack masih dalam kondisi kosong. Fungsi ISFULL Fungsi ini memeriksa apakah stack yang sudah ada sudah penuh atau belum. Fungsi Push Digunakan untuk memasukkan elemen ke dalam stack dan selalu menjadi elemen teratas stack Fungsi Pop Digunakan untuk menghapus elemen yang berada pada posisi paling atas dari stack. Fungsi Clear Digunakan untuk mengosongkan stack / membuat stack hampa sehingga Top pada Stack berada kembali di posisi Top = -1
DAFTAR PUSTAKA 1. Ardhana, YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclups Indigo C ++. Yogyakarta.