• Tidak ada hasil yang ditemukan

Laporan Praktikum Resmi Stack

N/A
N/A
Protected

Academic year: 2021

Membagikan "Laporan Praktikum Resmi Stack"

Copied!
19
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM RESMI

LAPORAN PRAKTIKUM RESMI

STACK 

STACK 

Disusun oleh : Disusun oleh : Albert Sugihartono Albert Sugihartono 201301018 201301018 Dosen pengampu : Dosen pengampu :

Yosef Murya Kusuma Ardhana.S.T., M.Kom Yosef Murya Kusuma Ardhana.S.T., M.Kom

JURUSAN SISTEM INFORMASI

JURUSAN SISTEM INFORMASI

SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO

SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO

PURWOKERTO

PURWOKERTO

2014

2014

(2)

BAB I BAB I TEORI DASAR TEORI DASAR 1. 1. PengantarPengantar

Stack merupakan bentuk khusus dari struktur data, dimana node yang ditambahkan ke dalam Stack merupakan bentuk khusus dari struktur data, dimana node yang ditambahkan ke dalam list hanya pada

list hanya pada ““kepalakepala””nya atau dengan kata lain prinsip pengolahannya adalahnya atau dengan kata lain prinsip pengolahannya adalah last-in first-last-in first-out (LIFO).

out (LIFO).  Ada dua operasi utama yaitu push(memasukkan node ke dalam stack) dan  Ada dua operasi utama yaitu push(memasukkan node ke dalam stack) dan  pop(mengambil

 pop(mengambil node node dari dari stack). stack). Operasi Operasi lainnya lainnya adalah adalah ISEMPTY, ISEMPTY, ISFULL, dan ISFULL, dan CLEAR.CLEAR. Untuk menentukan jumlah maksimum elemen stack, dapat dideklarasikan terlebih dahulu Untuk menentukan jumlah maksimum elemen stack, dapat dideklarasikan terlebih dahulu  preprocessor

 preprocessor define. define. Sebagai Sebagai contoh contoh adalah adalah define define MAX_STACK. MAX_STACK. ContohContoh  pendeklarasiannya:

 pendeklarasiannya:

TOP of STACK merupakan elemen teratas dalam stack. Jika TOP of STACK terus bergerak TOP of STACK merupakan elemen teratas dalam stack. Jika TOP of STACK terus bergerak hingga mencapai MAX_STACK, maka stack akan penuh.

hingga mencapai MAX_STACK, maka stack akan penuh.

Elemen pada stack diindikasikan oleh indeks yaitu dari indeks 0 hingga indeks ke-n. Hal ini Elemen pada stack diindikasikan oleh indeks yaitu dari indeks 0 hingga indeks ke-n. Hal ini dikarenakan sistem stack menggunakan fungsi dari array.

dikarenakan sistem stack menggunakan fungsi dari array.

#define MAX_STACK 10 #define MAX_STACK 10

(3)

BAB II BAB II

PENJELASAN PROGRAM PENJELASAN PROGRAM

Pada penjelasan program bab ini dijelaskan mengenai bagaimana melakukan pemrograman Pada penjelasan program bab ini dijelaskan mengenai bagaimana melakukan pemrograman C++ program stack.cpp, push.cpp dan pop.cpp

C++ program stack.cpp, push.cpp dan pop.cpp

Listing program stack.cpp Listing program stack.cpp

/* /* * stack.cpp * stack.cpp * * *

* Created Created on: on: May May 20, 20, 20142014 *

* Author: Author: STIKOM109STIKOM109 */ */ #include <iostream> #include <iostream> #include <cstring> #include <cstring> #define MAX_STACK 10 #define MAX_STACK 10 using namespace std; using namespace std; struct STACK struct STACK { { int top; int top; char data[10][10]; char data[10][10]; };STACK tumpuk; };STACK tumpuk; void inisialisasi() void inisialisasi() { { tumpuk.top=-1; tumpuk.top=-1; } } int IsFull() int IsFull() { { if(tumpuk.top==MAX_STACK-1) if(tumpuk.top==MAX_STACK-1) return 1; return 1; else else return 0; return 0; } } int IsEmpty() int IsEmpty() { { if(tumpuk.top==-1) if(tumpuk.top==-1) return 1; return 1; else else return 0; return 0; } } void Push(char d[10]) void Push(char d[10])

(4)

{ { tumpuk.top++; tumpuk.top++; strcpy(tumpuk.data[tumpuk.top],d); strcpy(tumpuk.data[tumpuk.top],d); } } void Pop() void Pop() { {

cout<<"Data yang terambil : "<<tumpuk.data[tumpuk.top]; cout<<"Data yang terambil : "<<tumpuk.data[tumpuk.top]; tumpuk.top--; tumpuk.top--; } } void TampilStack() void TampilStack() { { for(int i=tumpuk.top;i>=0;i--) for(int i=tumpuk.top;i>=0;i--) { {

cout<<"Tampil data : "<<tumpuk.data[i]<<endl; cout<<"Tampil data : "<<tumpuk.data[i]<<endl; } } } } void Clear() void Clear() { { tumpuk.top=-1; tumpuk.top=-1; } } int main() int main() { { int pil; int pil; inisialisasi(); inisialisasi(); char dt[10]; char dt[10]; do{ do{ cout<<"1. Push"<<endl; cout<<"1. Push"<<endl; cout<<"2. Pop"<<endl; cout<<"2. Pop"<<endl;

cout<<"3. Tampilkan data"<<endl; cout<<"3. Tampilkan data"<<endl; cout<<"4. Clear"<<endl; cout<<"4. Clear"<<endl; cout<<"5. Keluar"<<endl; cout<<"5. Keluar"<<endl; cout<<"Pilihan : "; cout<<"Pilihan : "; cin>>pil; cin>>pil; switch(pil) switch(pil) { { case 1:if(IsFull() != 1) case 1:if(IsFull() != 1) { { cout<<"Data = "; cout<<"Data = "; cin>>dt; cin>>dt; Push(dt); Push(dt); } } else else cout<<"\nStack Penuh\n"; cout<<"\nStack Penuh\n"; break; break; case 2:if(IsEmpty() != 1) case 2:if(IsEmpty() != 1) Pop(); Pop();

(5)

else else cout<<"\nStack kosong"; cout<<"\nStack kosong"; break; break; case 3:if(IsEmpty() != 1) case 3:if(IsEmpty() != 1) TampilStack(); TampilStack(); else else

cout<<"\n Stack Kosong"; cout<<"\n Stack Kosong"; break;

break; case 4:Clear(); case 4:Clear();

cout<<"\n Stack sudah kosong"; cout<<"\n Stack sudah kosong"; break; break; } } } } while(pil!=5); while(pil!=5); return 0; return 0; } }

Output program stack.cpp Output program stack.cpp

Hasil output dari stack.cpp adalah sebagai b

Hasil output dari stack.cpp adalah sebagai berikut :erikut :

Penjelasan program stack.cpp Penjelasan program stack.cpp

Berikut penjelasan dari program stack.cpp : Berikut penjelasan dari program stack.cpp :

1.

1. Program diatas merupakan program stack. Pertama kali, jumlah maksimum stack ditentukanProgram diatas merupakan program stack. Pertama kali, jumlah maksimum stack ditentukan dengan menggunakan preprocessor define dengan nama define yaitu MAX_STACK 10, dengan menggunakan preprocessor define dengan nama define yaitu MAX_STACK 10, sehingga hal ini mengset bahwa jumlah maksimum elemen yang dapat dimasukkan ke dalam sehingga hal ini mengset bahwa jumlah maksimum elemen yang dapat dimasukkan ke dalam

(6)

stack adalah 10. Program menggunakan preprocessor #include <cstring> yang digunakan stack adalah 10. Program menggunakan preprocessor #include <cstring> yang digunakan untuk operasi fungsi manipulasi string pada program yaitu strcpy yang berfungsi untuk untuk operasi fungsi manipulasi string pada program yaitu strcpy yang berfungsi untuk mengcopy string yang satu ke string lainnya.

mengcopy string yang satu ke string lainnya.

2.

2. Pada program dideklarasikan struct STACK yang berisi member top untuk stack mencapaiPada program dideklarasikan struct STACK yang berisi member top untuk stack mencapai top of stack dan data untuk memasukkan data stack.

top of stack dan data untuk memasukkan data stack.

3.

3. Stack memiliki persamaan untuk mengetahui apakah stack sudah penuh atau belum dimanaStack memiliki persamaan untuk mengetahui apakah stack sudah penuh atau belum dimana  persamaan tersebut dideklarasikan pada prosedur

 persamaan tersebut dideklarasikan pada prosedur IsFull. Persamaannya adalah Top of stack IsFull. Persamaannya adalah Top of stack == max_stack

max_stack –  –  1; dimana apabila bernilai TRUE maka stack penuh jika tidak maka sebaliknya 1; dimana apabila bernilai TRUE maka stack penuh jika tidak maka sebaliknya stack belum penuh.

stack belum penuh.

4.

4. Program menggunakan fungsi perulangan do-while sehingga jika user belum memilih pilihanProgram menggunakan fungsi perulangan do-while sehingga jika user belum memilih pilihan keluar, maka user dapat melakukan salah satu operasi stack tersebut. Untuk pemilihan operasi keluar, maka user dapat melakukan salah satu operasi stack tersebut. Untuk pemilihan operasi stack, digunakan fungsi pemilihan switch dengan variabel pil sebagai acuan case (1-5). Case stack, digunakan fungsi pemilihan switch dengan variabel pil sebagai acuan case (1-5). Case  pertama

 pertama merupakan merupakan case case untuk untuk operasi operasi Push Push dengan dengan menggunakan menggunakan prosedur prosedur IsFull IsFull untukuntuk memberi peringatan jika stack yang di push elemennya telah mencapai batas maksimumnya, memberi peringatan jika stack yang di push elemennya telah mencapai batas maksimumnya, dan memanggil prosedur Push. Case kedua digunakan untuk operasi pop. Pada operasi pop, dan memanggil prosedur Push. Case kedua digunakan untuk operasi pop. Pada operasi pop, digunakan decrement pada top (tumpuk.top--) dengan syarat IsEmpty bukan 1. Case ketiga digunakan decrement pada top (tumpuk.top--) dengan syarat IsEmpty bukan 1. Case ketiga digunakan untuk menampilkan data stack yang ada dengan memanggil prosedur digunakan untuk menampilkan data stack yang ada dengan memanggil prosedur TampilStack();. Case keempat digunakan untuk operasi Clear yang memanggil prosedur TampilStack();. Case keempat digunakan untuk operasi Clear yang memanggil prosedur Clear dimana top of stack diassignment sama dengan -1 yang mengindikasikan bahwa stack Clear dimana top of stack diassignment sama dengan -1 yang mengindikasikan bahwa stack sudah kosong.

sudah kosong.

Tugas Praktikum Tugas Praktikum

Pada tugas praktikum ini merupakan program operasi dalam stack yaitu push dan pop dengan Pada tugas praktikum ini merupakan program operasi dalam stack yaitu push dan pop dengan user dapat menentukan jumlah maksimum elemen stack yang dapat dimasukkan.

user dapat menentukan jumlah maksimum elemen stack yang dapat dimasukkan.

Program praktikum push.cpp Program praktikum push.cpp

/* /* * push.cpp * push.cpp * * *

(7)

*

* Author: Author: ALBERTALBERT */ */ #include <iostream> #include <iostream> #include <cstring> #include <cstring> using namespace std; using namespace std; struct STACK struct STACK { { int top; int top; char data[10][10]; char data[10][10]; int MAX_STACK; int MAX_STACK; }; STACK tumpuk; }; STACK tumpuk; void insialisasi() void insialisasi() { { tumpuk.top=-1; tumpuk.top=-1; } } int IsFull() int IsFull() { { if(tumpuk.top == tumpuk.MAX_STACK-1) if(tumpuk.top == tumpuk.MAX_STACK-1) return 1; return 1; else else return 0; return 0; } } int IsEmpty() int IsEmpty() { { if(tumpuk.top == -1) if(tumpuk.top == -1) return 1; return 1; else else

(8)

return 0; return 0; } } int MAX_STACK(int n) int MAX_STACK(int n) { { tumpuk.MAX_STACK=n; tumpuk.MAX_STACK=n; return 0; return 0; } } void Push(char d[10]) void Push(char d[10]) { { tumpuk.top++; tumpuk.top++; strcpy(tumpuk.data[tumpuk.top],d); strcpy(tumpuk.data[tumpuk.top],d); } } void TampilStack() void TampilStack() { { for(int i=tumpuk.top;i>=0;i--) for(int i=tumpuk.top;i>=0;i--) { {

cout<<"Tampil data : "<<tumpuk.data[i]<<endl; cout<<"Tampil data : "<<tumpuk.data[i]<<endl; } } } } int main() int main() { { int pilihan,x; int pilihan,x; char dt[10]; char dt[10];

cout<<"Masukkan batas maksimum stack : "; cout<<"Masukkan batas maksimum stack : "; cin>>x; cin>>x; do do { {

(9)

cout<<"\n1. Push \n"; cout<<"\n1. Push \n";

cout<<"2. Tampilkan data \n"; cout<<"2. Tampilkan data \n"; cout<<"3. Keluar \n"; cout<<"3. Keluar \n"; cout<<"Pilihan : "; cout<<"Pilihan : "; cin>>pilihan; cin>>pilihan; switch (pilihan) switch (pilihan) { { case 1: case 1: if(IsFull() != 1) if(IsFull() != 1) { { cout<<"Data = "; cout<<"Data = "; cin>>dt; cin>>dt; MAX_STACK(x); MAX_STACK(x); Push(dt); Push(dt); } } else else

cout<<"\n Stack Penuh!\n"; cout<<"\n Stack Penuh!\n"; break; break; case 2: case 2: if(IsEmpty()!=1) if(IsEmpty()!=1) TampilStack(); TampilStack(); else else

cout<<"\n Stack kosong! \n"; cout<<"\n Stack kosong! \n"; break; break; } } }while(pilihan !=3); }while(pilihan !=3); return 0; return 0; } }

(10)

Output program push.cpp Output program push.cpp

Penjelasan program push.cpp Penjelasan program push.cpp

Berikut penjelasan dari program push.cpp : Berikut penjelasan dari program push.cpp :

1.

1. Pada program push.cpp, user dapat mengset berapa jumlah maksimum elemen stack yangPada program push.cpp, user dapat mengset berapa jumlah maksimum elemen stack yang mungkin dimasukkan. Maka dari itu, MAX_STACK tidak dideklarasikan dengan mungkin dimasukkan. Maka dari itu, MAX_STACK tidak dideklarasikan dengan  preprocessor

 preprocessor #define #define melainkan melainkan dimasukkan dimasukkan sebagai sebagai member member ke ke dalam dalam struct struct STACKSTACK sehingga MAX_STACK sebagai member struct dapat diakses oleh user dalam main sehingga MAX_STACK sebagai member struct dapat diakses oleh user dalam main  program.

 program. Program Program menggunakan menggunakan preprocessor preprocessor #include #include <cstring> <cstring> yang yang digunakan digunakan untukuntuk operasi fungsi manipulasi string pada program yaitu strcpy yang berfungsi untuk operasi fungsi manipulasi string pada program yaitu strcpy yang berfungsi untuk mengcopy string yang satu ke string lainnya.

mengcopy string yang satu ke string lainnya.

2.

2. Stack memiliki persamaan untuk mengetahui apakah stack sudah penuh atau belumStack memiliki persamaan untuk mengetahui apakah stack sudah penuh atau belum dimana persamaan tersebut dideklarasikan pada prosedur IsFull. Persamaannya adalah dimana persamaan tersebut dideklarasikan pada prosedur IsFull. Persamaannya adalah Top of stack = max_stack

Top of stack = max_stack –  –  1; dimana apabila bernilai TRUE maka stack penuh jika tidak 1; dimana apabila bernilai TRUE maka stack penuh jika tidak maka sebaliknya stack belum penuh.

maka sebaliknya stack belum penuh.

3.

3. Agar MAX_STACK dapat didefinisikan valuenya, maka MAX_STACK dibuat ke dalamAgar MAX_STACK dapat didefinisikan valuenya, maka MAX_STACK dibuat ke dalam sebuah fungsi yaitu int MAX_STACK(int n) dimana n nantinya merupakan variable untuk sebuah fungsi yaitu int MAX_STACK(int n) dimana n nantinya merupakan variable untuk menapung value jumlah maksimum stack.

(11)

4.

4. Program menggunakan fungsi perulangan do-while sehingga jika user belum memilihProgram menggunakan fungsi perulangan do-while sehingga jika user belum memilih  pilihan keluar, maka

 pilihan keluar, maka user dapat melakukan user dapat melakukan salah satu opesalah satu operasi stack tersebut. User rasi stack tersebut. User pertamapertama kali akan diminta untuk mengset jumlah maksimum stack. Pemasukkan ini dilakukan di kali akan diminta untuk mengset jumlah maksimum stack. Pemasukkan ini dilakukan di luar loop do-while agar proses pengesetan maksimum stack tidak berulang-ulang. Value luar loop do-while agar proses pengesetan maksimum stack tidak berulang-ulang. Value untuk maksimum stack diindikasikan oleh variabel x.Untuk pemilihan operasi stack, untuk maksimum stack diindikasikan oleh variabel x.Untuk pemilihan operasi stack, digunakan fungsi pemilihan switch dengan variabel pilihan sebagai acuan case (1-3). Case digunakan fungsi pemilihan switch dengan variabel pilihan sebagai acuan case (1-3). Case  pertama

 pertama merupakan merupakan operasi operasi Push Push dengan dengan menggunakan menggunakan prosedur prosedur IsFull IsFull untuk untuk memberimemberi  peringatan

 peringatan jika jika stack stack yang yang di di push push elemennya elemennya telah telah mencapai mencapai batas batas maksimumnya, maksimumnya, dandan memanggil prosedur Push. Pada case ini pula, fungsi MAX_STACK dipanggil untuk memanggil prosedur Push. Pada case ini pula, fungsi MAX_STACK dipanggil untuk memberikan batas maksimum stack yang telah dimasukkan oleh user sebelumnya. Case memberikan batas maksimum stack yang telah dimasukkan oleh user sebelumnya. Case kedua digunakan untuk menampilkan data stack yang ada dengan memanggil prosedur kedua digunakan untuk menampilkan data stack yang ada dengan memanggil prosedur TampilStack();. Case ketiga digunakan untuk keluar dimana digunakan untuk TampilStack();. Case ketiga digunakan untuk keluar dimana digunakan untuk menghentikan proses looping do-while.

menghentikan proses looping do-while.

Program praktikum pop.cpp Program praktikum pop.cpp

/* /* * pop.cpp * pop.cpp * * *

* Created Created on: on: May May 25, 25, 20142014 *

* Author: Author: AATAAT */ */ #include <iostream> #include <iostream> #include <cstring> #include <cstring> using namespace std; using namespace std; struct STACK struct STACK { {

(12)

int top; int top; char data[10][10]; char data[10][10]; int MAX_STACK; int MAX_STACK; }; STACK tumpuk; }; STACK tumpuk; void insialisasi() void insialisasi() { { tumpuk.top=-1; tumpuk.top=-1; } } int IsFull() int IsFull() { { if(tumpuk.top == tumpuk.MAX_STACK-1) if(tumpuk.top == tumpuk.MAX_STACK-1) return 1; return 1; else else return 0; return 0; } } int IsEmpty() int IsEmpty() { { if(tumpuk.top == -1) if(tumpuk.top == -1) return 1; return 1; else else return 0; return 0; } } int MAX_STACK(int x) int MAX_STACK(int x) { { tumpuk.MAX_STACK=x; tumpuk.MAX_STACK=x;

(13)

return 0; return 0; } } void Push(char d[10]) void Push(char d[10]) { { tumpuk.top++; tumpuk.top++; strcpy(tumpuk.data[tumpuk.top],d); strcpy(tumpuk.data[tumpuk.top],d); } } void Pop() void Pop() { {

cout<<"Data yang terambil = "<<tumpuk.data[tumpuk.top]; cout<<"Data yang terambil = "<<tumpuk.data[tumpuk.top]; tumpuk.top--; tumpuk.top--; } } void TampilStack() void TampilStack() { { for(int i=tumpuk.top;i>=0;i--) for(int i=tumpuk.top;i>=0;i--) { {

cout<<"Tampil data : "<<tumpuk.data[i]<<endl; cout<<"Tampil data : "<<tumpuk.data[i]<<endl; } } } } int main() int main() { { int pil,n; int pil,n; char dt[10]; char dt[10];

cout<<"Masukkan jumlah maksimum stack : "; cout<<"Masukkan jumlah maksimum stack : "; cin>>n;

(14)

do do { { cout<<"\n1. Push \n"; cout<<"\n1. Push \n"; cout<<"2. Pop\n"; cout<<"2. Pop\n";

cout<<"3. Tampilkan data \n"; cout<<"3. Tampilkan data \n"; cout<<"4. Keluar \n"; cout<<"4. Keluar \n"; cout<<"Pilihan : "; cout<<"Pilihan : "; cin>>pil; cin>>pil; switch (pil) switch (pil) { { case 1: case 1: if(IsFull() != 1) if(IsFull() != 1) { { cout<<"Data = "; cout<<"Data = "; cin>>dt; cin>>dt; MAX_STACK(n); MAX_STACK(n); Push(dt); Push(dt); } } else else

cout<<"\n Stack Penuh!\n"; cout<<"\n Stack Penuh!\n"; break; break; case 2: case 2: if(IsEmpty() !=1) if(IsEmpty() !=1) Pop(); Pop(); else else

(15)

cout<<"Stack kosong! \n"; cout<<"Stack kosong! \n"; break; break; case 3: case 3: if(IsEmpty()!=1) if(IsEmpty()!=1) TampilStack(); TampilStack(); else else

cout<<"\n Stack kosong! \n"; cout<<"\n Stack kosong! \n"; break; break; } } }while(pil !=4); }while(pil !=4); return 0; return 0; } }

Output program pop.cpp Output program pop.cpp

Operasi input data Operasi input data

Operasi pop Operasi pop

(16)

Penjelasan program pop.cpp Penjelasan program pop.cpp

Berikut penjelasan dari program pop.cpp: Berikut penjelasan dari program pop.cpp:

1.

1. Pada program push.cpp, user dapat mengset berapa jumlah maksimum elemen stack yangPada program push.cpp, user dapat mengset berapa jumlah maksimum elemen stack yang mungkin dimasukkan. Maka dari itu, MAX_STACK tidak dideklarasikan dengan mungkin dimasukkan. Maka dari itu, MAX_STACK tidak dideklarasikan dengan  preprocessor

 preprocessor #define #define melainkan melainkan dimasukkan dimasukkan sebagai sebagai member member ke ke dalam dalam struct struct STACKSTACK sehingga MAX_STACK sebagai member struct dapat diakses oleh user dalam main sehingga MAX_STACK sebagai member struct dapat diakses oleh user dalam main  program.

 program. Program Program menggunakan menggunakan preprocessor preprocessor #include #include <cstring> <cstring> yang yang digunakan digunakan untukuntuk operasi fungsi manipulasi string pada program yaitu strcpy yang berfungsi untuk operasi fungsi manipulasi string pada program yaitu strcpy yang berfungsi untuk mengcopy string yang satu ke string lainnya.

mengcopy string yang satu ke string lainnya.

2.

2. Stack memiliki persamaan untuk mengetahui apakah stack sudah penuh atau belumStack memiliki persamaan untuk mengetahui apakah stack sudah penuh atau belum dimana persamaan tersebut dideklarasikan pada prosedur IsFull. Persamaannya adalah dimana persamaan tersebut dideklarasikan pada prosedur IsFull. Persamaannya adalah Top of stack = max_stack

Top of stack = max_stack –  –  1; dimana apabila bernilai TRUE maka stack penuh jika tidak 1; dimana apabila bernilai TRUE maka stack penuh jika tidak maka sebaliknya stack belum penuh.

maka sebaliknya stack belum penuh.

3.

3. Agar MAX_STACK dapat didefinisikan valuenya, maka MAX_STACK dibuat ke dalamAgar MAX_STACK dapat didefinisikan valuenya, maka MAX_STACK dibuat ke dalam sebuah fungsi yaitu int MAX_STACK(int n) dimana n nantinya merupakan variable untuk sebuah fungsi yaitu int MAX_STACK(int n) dimana n nantinya merupakan variable untuk menapung value jumlah maksimum stack.

menapung value jumlah maksimum stack.

5.

5. Program menggunakan fungsi perulangan do-while sehingga jika user belum memilih pilihanProgram menggunakan fungsi perulangan do-while sehingga jika user belum memilih pilihan keluar, maka user dapat melakukan salah satu operasi stack tersebut. User pertama kali akan keluar, maka user dapat melakukan salah satu operasi stack tersebut. User pertama kali akan diminta untuk mengset jumlah maksimum stack. Pemasukkan ini dilakukan di luar loop diminta untuk mengset jumlah maksimum stack. Pemasukkan ini dilakukan di luar loop do-while agar proses pengesetan maksimum stack tidak berulang-ulang. Value untuk maksimum while agar proses pengesetan maksimum stack tidak berulang-ulang. Value untuk maksimum stack diindikasikan oleh variabel x.Untuk pemilihan operasi stack, digunakan fungsi stack diindikasikan oleh variabel x.Untuk pemilihan operasi stack, digunakan fungsi  pemilihan switch

(17)

operasi Push dengan menggunakan prosedur IsFull untuk memberi peringatan jika stack yang operasi Push dengan menggunakan prosedur IsFull untuk memberi peringatan jika stack yang di push elemennya telah mencapai batas maksimumnya, dan memanggil prosedur Push. Pada di push elemennya telah mencapai batas maksimumnya, dan memanggil prosedur Push. Pada case ini pula, fungsi MAX_STACK dipanggil untuk memberikan batas maksimum stack case ini pula, fungsi MAX_STACK dipanggil untuk memberikan batas maksimum stack yang telah dimasukkan oleh user sebelumnya. Case kedua digunakan untuk operasi pop. Pada yang telah dimasukkan oleh user sebelumnya. Case kedua digunakan untuk operasi pop. Pada operasi pop, digunakan decrement pada top (tumpuk.top--) dengan syarat IsEmpty bukan 1. operasi pop, digunakan decrement pada top (tumpuk.top--) dengan syarat IsEmpty bukan 1. Case ketiga digunakan untuk menampilkan data stack yang ada dengan memanggil prosedur Case ketiga digunakan untuk menampilkan data stack yang ada dengan memanggil prosedur TampilStack();. Case keempat digunakan untuk operasi Clear yang memanggil prosedur TampilStack();. Case keempat digunakan untuk operasi Clear yang memanggil prosedur Clear dimana top of stack diassignment sama dengan -1 yang mengindikasikan bahwa stack Clear dimana top of stack diassignment sama dengan -1 yang mengindikasikan bahwa stack sudah kosong.

sudah kosong. Untuk case ke lima digunakan untuk keluar yang mana menghentikan prosesUntuk case ke lima digunakan untuk keluar yang mana menghentikan proses loop do-while.

(18)

BAB III BAB III KESIMPULAN KESIMPULAN

Kesimpulan akan apa yang dapat dipelajari dalam praktikum ini adalah bahwa bahwa stack Kesimpulan akan apa yang dapat dipelajari dalam praktikum ini adalah bahwa bahwa stack merupakan bentuk khusus dari linear list yang pemasukkan dan penghapusan elemennya hanya merupakan bentuk khusus dari linear list yang pemasukkan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi yaitu last list. Prinsip stack yaitu

dapat dilakukan pada satu posisi yaitu last list. Prinsip stack yaitu last-in first-out last-in first-out  atau disingkat atau disingkat LIFO. Stack memiliki beberapa operasi yaitu IsEmpty yang digunakan untuk memeriksa apakah LIFO. Stack memiliki beberapa operasi yaitu IsEmpty yang digunakan untuk memeriksa apakah stack kosong, IsFull yang digunakan untuk memeriksa apakah stack sudah penuh, Pop digunakan stack kosong, IsFull yang digunakan untuk memeriksa apakah stack sudah penuh, Pop digunakan untuk menghapus elemen paling atas (top), Push untuk menyisipkan elemen stack dan Clear untuk menghapus elemen paling atas (top), Push untuk menyisipkan elemen stack dan Clear untuk mengosongkan stack. Jumlah maksimum stack umumnya dideklarasikan terlebih dahulu untuk mengosongkan stack. Jumlah maksimum stack umumnya dideklarasikan terlebih dahulu dengan menggunakan preprocessor #define untuk memberikan nilai absolut. Namun, ada kalanya dengan menggunakan preprocessor #define untuk memberikan nilai absolut. Namun, ada kalanya sebuah stack dapat ditentukan batas maksimumnya ditentukan oleh user dengan memasukkan sebuah stack dapat ditentukan batas maksimumnya ditentukan oleh user dengan memasukkan MAX_STACK ke dalam struct dan membuat sebuah fungsi untuknya sehingga MAX_STACK MAX_STACK ke dalam struct dan membuat sebuah fungsi untuknya sehingga MAX_STACK dapat diakses di dalam main program. Untuk stack, memiliki persamaan yang digunakan untuk dapat diakses di dalam main program. Untuk stack, memiliki persamaan yang digunakan untuk menentukan apakah sebuah stack sudah penuh atau belum yaitu dengan Top of stack = menentukan apakah sebuah stack sudah penuh atau belum yaitu dengan Top of stack = Max_stack

(19)

Sumber Referensi Sumber Referensi

Kristanto, Andi. 2003. Struktur Data Dengan C++ Kristanto, Andi. 2003. Struktur Data Dengan C++

Yogyakarta : Graha Ilmu Yogyakarta : Graha Ilmu Ardhana. YM Kusuma. 2013. S

Ardhana. YM Kusuma. 2013. Struktur Data Dalam Ilustrasi Eclipse Indigo C++truktur Data Dalam Ilustrasi Eclipse Indigo C++ Yogyakarta : CAPS (Center of Academic P

Referensi

Dokumen terkait

Akan tetapi hakim tetap pada Undang-Undang yang berlaku selama tidak ada perjanjian yang mengikat antara keduanya dalam membagi harta bersama selama dalam

Sepuri NIM 505730048: Hubungan Kompetensi Guru Pendidikan Agama Islam dalam Mengimplementasikan Kurikulum Tingkat Satuan Pendidikan (KTSP) dan Pelaksanaan Evaluasi

Tepung pupa dapat menggantikan 75% dari tepung ikan yang digunakan (8%) dalam ransum petelur tanpa mempengaruhi konsumsi pakan, produksi telur, konversi pakan, dan berat telur..

RSPl-SS dan NCGM secara berkala bertukar data dan infonnasi yang diperlukan atau berguna untuk proyek-proyek berdasarkan kesepakatan kedua belah pihak. RSPl-SS dan NCGM

terikat dalam penelitian ini menjadi variabel terikat adalah hasil belajarc. siswa yang dimaksud dalam penelitian ini adalah nilai post

1. Kesan:- Memberikan Tambahan ilmu yang lebih banyak serta mampu menyupai wawasan untuk mata kuliah teori Mineralogi dan

Ketiga , Collier mengisyaratkan perhatian pada sistem simbol budaya, makna yang diberikan dan gagasan tentang apa yang patut dan tidak patut; serta proses pembelajaran simbol

Berisi tinjauan pustaka dan kajian mengenai hotel, klasifikasi hotel, bentuk hotel, dasar-dasar perencanaan hotel, sarana utilitas bangunan hotel, serta