LAPORAN PRAKTIKUM RESMI
STACK
Disusun oleh :
Velisia Puspita Devi
201301023
Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom
JURUSAN SISTEM INFORMASISEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO 2014
BAB I
TEORI DASAR
1. Pengantar
Stack atau tumpukan merupakan bentuk khusus dari Linier List yang
pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu
posisi akhir dari dari list (Top). Prinsip stack adalah LAST-IN-FIRST-OUT (LIFO).
Benda yang terakhir masuk dalam stack akan menjadi benda pertama yang
dikeluarkan dari stack.
Stack memiliki beberapa macam operasi yaitu:
A. ISEMPTY : untuk memeriksa apakah stack kosong.
B. ISFULL : untuk memeriksa apakah stack sudah penuh.
C. PUSH : untuk menambahkan item pada posisi paling atas (TOP).
D. POP : untuk menghapus item paling atas (TOP).
E. CLEAR : untuk mengosongkan stack.
Deklarasi MAX_STACK:
#define MAX_STACK 6
Deklarasi STACK dengan struct dan array data:
typedef struct STACK
COMPO
COMPO
TV TVTV
COMPO
VCD
VCDVCD
TV
{
int top;
int data [6];
};
Deklarasi variabel stuck 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 menunjukan elemen teratas
stack.
TOP of STACK akan selalu bergerak hingga mencapai MAX of STACK,
sehingga menyebabkan stack PENUH.
void inisialisasi ()
{
Tumpuk.top=-1
}
Jika digambarkan ke dalam bentuk kolom data, maka akan terlihat sebagai
berikut:
4
3
2
1
0
MAX_STACK
TOP=-1
A. ISEMPTY
Fungsi yang menentukan apakah stack kosong atau tidak. Tanda bahwa stack
kosong adalah Top bernilai kurang dari 0 atau -1. Fungsi IsEmpty dalam C++ :
int IsEmpty ()
{
if (tumpuk.top==-1)
return 1;
else
return 0;
}
B. ISFULL
Fungsi ini memeriksa apakah stack yang sudah ada sudah penuh atau belum.
Stack penuh jika puncak stack terdapat tepat di bawah jumlah maksimum yang dapat
ditampung stack atau dengan kata lain TOP=MAX_STACK-1.
Fungsi IsFull dalam C++:
int IsFull ()
{
if (tumpuk.top==MAX_STACK-1)
return 1;
else
return 0;
}
Cara memeriksa TOP of STACK dengan fungsi IsFull yaitu:
Jika TOP of STACK = MAX_STACK-1, maka FULL (penuh).
Jika TOP of STACK<MAX_STACK-1, maka belum penuh.
C. PUSH
Fungsi ini menambahkan item atau elemen ke dalam stack dan tidak bisa
dilakukan lagi jika stack sudah penuh.
Fungsi Push dalam C++:
void push (char d[6])
{
tumpuk.top++
strcpy(tumpuk.data[tumpuk.top], d)
}
Cara memasukan data dengan fungsi Push yaitu:
4
3
2
1
0
MAX_STACK
TOP=4
4
3
2
1
0
MAX_STACK
TOP=-1
A
4
3
2
1
0
MAX_STACK
TOP = TOP+1=-1+1= 0
PUSH ELEMEN A
Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen
stack selama stack masih belum penuh.
Isikan nilai baru ke stack berdasarkan indeks TOP of STACK setelah ditambah
satu (descrement).
D. POP
Fungsi ini mengambil elemen teratas dari stack dengan syarat stack tidak
boleh kosong.
Cara memasukan data dengan fungsi Pop yaitu:
Ambil dahulu nilai elemen teratas stack dengan mengakses TOP of STACK.
Tampilkan nilai yang akan diambil.
Lakukan descrement nilai TOP of STACK, sehingga jumlah elemen stack
berkurang 1.
Fungsi Pop dalam C++:
void Pop ()
{
cout<<”Data yang terambil= ”<<tumpuk.data[tumpuk.top];
tumpuk.top--;
}
B
A
4
3
2
1
0
MAX_STACK
TOP = TOP+1= 2-1= 1
Data yang di POP=C
4
3
2
1
0
MAX_STACK
TOP=2
E. CLEAR
Fungsi ini akan mengosongkan stack dengan cara mengeset Top dengan -1.
Jika Top bernilai kurang dari 0, maka stack dianggap kosong.
Fungsi Clear dalam C++:
void Clear ()
{
tumpuk.data=tumpuk.top=-1
cout<<”Data clear”;
}
4
3
2
1
0
MAX_STACK
TOP=-1
BAB II
PENJELASAN PROGRAM
1. Latihan Praktikum
Listing Program Stack
Hasil Output Program Stack
Penjelasan Program Stack
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk
membuat sebuah komentar pada pemrograman C++ yang jika di dalamnya
terdapat sebuah perintah atau teks, maka ketika program di running 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> merupakan sebuah library untuk memanggil dan menampilkan cout.
4. Main ( ) merupakan fungsi utama.
5. { merupakan blok pernyataan dan sebagai awalan dari suatu pernyataan.
6. Cout berfungsi untuk menampilkan hasil output atau keluaran ke layar.
7. Cin berfungsi untuk menginputkan atau memasukan data.
8. Endl berfungsi untuk membuat baris baru atau new line sama seperti \n.
9. Return 0 berfungsi untuk membalikan nilai.
10. } merupakan blok pernyataan dan sebagai akhiran dari suatu pernyataan.
11. Void (IsEmpty) berfungsi untuk memeriksa apakah stack kosong.
12. Void (IsFull) berfungsi untuk memeriksa apakah stack sudah penuh.
13. Void (Push) berfungsi untuk menambahkan item pada posisi paling atas (TOP).
14. Void (Pop) berfungsi untuk menghapus item paling atas (TOP).
15. Void (Clear) berfungsi untuk mengosongkan stack.
2. Tugas Praktikum
Listing Program Stack-Push
Hasil Output Program Stack-Push
Penjelasan Program Stack-Push
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk
membuat sebuah komentar pada pemrograman C++ yang jika di dalamnya
terdapat sebuah perintah atau teks, maka ketika program di running 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> merupakan sebuah library untuk memanggil dan menampilkan cout.
4. Main ( ) merupakan fungsi utama.
5. { merupakan blok pernyataan dan sebagai awalan dari suatu pernyataan.
6. Cout berfungsi untuk menampilkan hasil output atau keluaran ke layar.
7. Cin berfungsi untuk menginputkan atau memasukan data.
8. Endl berfungsi untuk membuat baris baru atau new line sama seperti \n.
9. Return 0 berfungsi untuk membalikan nilai.
10. } merupakan blok pernyataan dan sebagai akhiran dari suatu pernyataan.
11. Void (IsEmpty) berfungsi untuk memeriksa apakah stack kosong.
12. Void (IsFull) berfungsi untuk memeriksa apakah stack sudah penuh.
13. Void (Push) berfungsi untuk menambahkan item pada posisi paling atas (TOP).
14. Void (Pop) berfungsi untuk menghapus item paling atas (TOP).
15. Void (Clear) berfungsi untuk mengosongkan stack.
Listing Program Stack-Pop
Hasil Output Program Stack-Pop
Penjelasan Program Stack-Pop
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk
membuat sebuah komentar pada pemrograman C++ yang jika di dalamnya
terdapat sebuah perintah atau teks, maka ketika program di running 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> merupakan sebuah library untuk memanggil dan menampilkan cout.
4. Main ( ) merupakan fungsi utama.
5. { merupakan blok pernyataan dan sebagai awalan dari suatu pernyataan.
6. Cout berfungsi untuk menampilkan hasil output atau keluaran ke layar.
7. Cin berfungsi untuk menginputkan atau memasukan data.
8. Endl berfungsi untuk membuat baris baru atau new line sama seperti \n.
9. Return 0 berfungsi untuk membalikan nilai.
10. } merupakan blok pernyataan dan sebagai akhiran dari suatu pernyataan.
11. Void (IsEmpty) berfungsi untuk memeriksa apakah stack kosong.
12. Void (IsFull) berfungsi untuk memeriksa apakah stack sudah penuh.
13. Void (Push) berfungsi untuk menambahkan item pada posisi paling atas (TOP).
14. Void (Pop) berfungsi untuk menghapus item paling atas (TOP).
15. Void (Clear) berfungsi untuk mengosongkan stack.
BAB III
KESIMPULAN
1. Stack atau tumpukan merupakan bentuk khusus dari Linier List yang pemasukan dan
penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir
dari dari list (Top).
2. Prinsip stack adalah LAST-IN-FIRST-OUT (LIFO).
3. Benda yang terakhir masuk dalam stack akan menjadi benda pertama yang
dikeluarkan dari stack.
4. Stack memiliki beberapa macam operasi yaitu:
A. ISEMPTY : untuk memeriksa apakah stack kosong.
B. ISFULL : untuk memeriksa apakah stack sudah penuh.
C. PUSH : untuk menambahkan item pada posisi paling atas (TOP).
D. POP : untuk menghapus item paling atas (TOP).
E. CLEAR : untuk mengosongkan stack.
5. Deklarasi MAX_STACK:
#define MAX_STACK 6
6. Deklarasi STACK dengan struct dan array data:
typedef struct STACK
{
int top;
int data [6];
};
7. Deklarasi variabel stuck dari struct:
STACK tumpuk;
BAB IV
DAFTAR PUSTAKA
Ardhana, YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclips Indigo C ++. Yogyakarta:
CAPS (Center of Academic Publishing Service).
Kadir, Abdul. 2012. Buku Pintar C++ untuk Pemula. Jakarta: MediaKom