laporan praktikum resmi bab stack

23
LAPORAN PRAKTIKUM RESMI STACK Disusun oleh : Velisia Puspita Devi 201301023 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO 2014

Upload: velisiapd

Post on 28-Dec-2015

137 views

Category:

Documents


4 download

DESCRIPTION

Laporan Praktikum ALPRO STR Data I

TRANSCRIPT

Page 1: Laporan Praktikum Resmi Bab Stack

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

Page 2: Laporan Praktikum Resmi Bab Stack

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

Page 3: Laporan Praktikum Resmi Bab Stack

{

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

Page 4: Laporan Praktikum Resmi Bab Stack

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:

Page 5: Laporan Praktikum Resmi Bab Stack

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

Page 6: Laporan Praktikum Resmi Bab Stack

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

Page 7: Laporan Praktikum Resmi Bab Stack

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

Page 8: Laporan Praktikum Resmi Bab Stack

BAB II

PENJELASAN PROGRAM

1. Latihan Praktikum

Listing Program Stack

Page 9: Laporan Praktikum Resmi Bab Stack
Page 10: Laporan Praktikum Resmi Bab 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.

Page 11: Laporan Praktikum Resmi Bab Stack

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

Page 12: Laporan Praktikum Resmi Bab Stack
Page 13: Laporan Praktikum Resmi Bab Stack

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.

Page 14: Laporan Praktikum Resmi Bab Stack

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

Page 15: Laporan Praktikum Resmi Bab Stack
Page 16: Laporan Praktikum Resmi Bab Stack

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.

Page 17: Laporan Praktikum Resmi Bab Stack

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.

Page 18: Laporan Praktikum Resmi Bab 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;

Page 19: Laporan Praktikum Resmi Bab Stack

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