Anda di halaman 1dari 17

LAPORAN HASIL PRAKTIKUM

STRUKTUR DATA

NAMA

: ALI FAHRUDDIN

NIM

: DBC 113 046

KELAS

:B

MODUL

: I ( STACK )

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKA RAYA

2014
BAB I
TUJUAN DAN LANDASAN TEORI
1.1

Tujuan Praktikum

1. Mahasiswa mampu memahami konsep stack


2. Mahasiswa mampu mengimplementasikan stack untuk memecahkan masalah
tertentu

1.2 Landasan Teori


Stack atau tumpukan bisa diartikan sebagai kumpulan data yang seolah-olah
diletakkan diatas data yang lain. Satu hal yang perlu diingat bahwa kita bisa
menambah (menyisipkan) data dan mengambil (menghapus) data melalui ujung
yang sama, yang disebut sebagai ujung atas stack. Secara sederhana, sebuah stack
bisa

F
E
D
C
B
A

diilustrasikan seperti gambar dibawah ini :


atas (top)

Dari gambar diatas, bisa di lihat bahwa kotak B terletak di atas kotak A dan di
bawah kotak C. Kotak D terletak di atas kotak C, kotak E terletak diatas kotak D
dan seterusnya sampai kotak terakhir. Dari gambar diatas mennjukkan bahwa
kotak lewat satu ujung, yaitu bagian atas. Apabila ada kotak lain yang akan
disisipkan, maka kotak tersebutakan diletakkan diatas kotak F, dan jika ada kotak
yang diambil, maka kotak F yang akan diambil untuk pertama kali.

Dengan demikian stack adalah struktur data yang menggunakan konsep Last In
First Out (LIFO) dan bersifat dinamis dimana data bisa ditambah maupun
diambil.
Stack dapat dideklarasikan dengan sebuah record yang mempunyai elemen sebuah
array tabelemen untuk menyimpan elemen stack dan sebuah variabel top untuk
menunjukkan elemen stack teratas. Deklarasi selengkapnya sebagai berikut :
const
NMAX = ....:

{ukuran maksimm stack}

NULL = 0;

{penunjuk stack kosong}

Type
tipedata = ....;

{tipe data yang disimpan dalam stack}

Stack = record
tabelemen : array [1..NMAX] of tipedata
top : NUL ... NMAX;

{top dari stack}

End;
Operasi dalam stack
Berdasarkan sifat khusus, maka ada 2 operasi terhadap stack, yaitu :
1. Pengambilan elemen dilakukan pada top, yang disebut sebagai POP.
2. Penambahan elemen dilakukan pada top, yang disebut sebagai PUSH.

Implementasi stack :
1. Inisialisasi, adalah proses untuk membuat stack dalam keadaan kosong. Proses
ini dilakukan dengan mengisi variabel top dengan nilai yang tidak
menunjukan salah satu elemen array.
Procedure Inisialisasi ( var S : stack );
Begin
S.Top := Null;
End;
2. Empty/kosong, adalah operasi untuk mengetahui status stack, yaitu kosong
atau tidak.
Function Empty ( S : stack ) : Boolean;
{Mengirim nilai true jika S adalah stack kosong}
Begin
Empty := ( S.Top=Null );

End;
3. Full/penuh, adalah operasi untuk mengetahui status stack, yaitu penuh atau
tidak.
Function Full ( S : stack ) : Boolean;
{Mengirim nilai true jika S adalah stack kosong}
Begin
Empty := ( S.Top=NMAX );
End;
4. Pop, dengan mempertimbangkanseleksi awal terhadap kondisi stack yaitu
hanya berlaku untuk stack yang tiak kosong
Procedure POP ( var S : stack; var data : tipedata );
{ IS : S adalah stack yan tidak kosong }
{ FS : elemen top dari stack S dihapus dan disimpan di data }
Begin
If Not Empty (S) Then
Begin
data := S.tabelemen [S.Top];
S.Top := S.top 1;
End;
Else
data :=..;
{ isi suatu nilai yang kemungkinan bukan data }
End;
5. Push, dengan mempertimbangkan seleksi awal terhadap kondisi stack yaitu
untuk menghindari overflow.
Procedure Push (var S : stack; data : tipedata);
{ IS : S adalah stack yang belum penuh, data terdefinisi }
{ FS : data menjadi elemen top dari stack S }
Begin
If not Full (S) then
Begin
If not Full (S) := S.Top + 1;
S.tabelemen [ S.Top ];
End;
End;
Operasi yang dapat dilakukan stack adalah:
Menambah (push)
Mengambil (pop)
Megecek apakah stack penuh (isFull)
Mengecek apakah stack kosong (isEmpty)

Membersihkan stack (clear).


Mencetak isi stack (print)
Fungsi dalam STACK antara lain:
1. Fungsi init: fungsi yang digunakan untuk inisialisasi atau membuat stack baru
yang masih kosong.
2. Fungsi full: digunakan untuk mengetahui stack penuh atau tidak.
3. Fungsi empty: digunakan untuk mengetahui stack kosong atau tidak.
4. Fungsi clear: digunakan untuk mengosongkan stack. Stack dianggap kosong
apabila puncak stack berada pada posisi -1.
5. Fungsi push: digunakan untuk menambahkan data ke dalam stack.
Penambahan data tidak bisa dilakukan apabila stack sudah penuh. Urutan
perintahnya adalah: menambahkan nilai top dan menambahkan data pada
posisi nilai top. Jika dalam Linked List menggunakan method addLast
6. Fungsi pop: digunakan untuk mengeluarkan data teratas stack dengan syarat
bahwa stack tidak kosong. Urutan perintahnya adalah : menghapus data pada
posisi nilai top dan menurunkan nilai top. Jika dalam Linked List
menggunakan method removeLast.

BAB II
LANGKAH KERJA
A. Tugas Praktikum
1. Buatlah program menggunakan prinsip tumpukan (stack) dan beri tiga
pilihan : push, pop dan quit. Jika dipilih pus program akan meminta user
menginputkan sebuah kata, dimana maksimal 6 karakter jika lebih dari 6
akan muncul pesan kesalahan. Jika dipilih pop maka karakter teratas akan
tampil dikeluarkan, bila belum ada kata yang dimasukkan maka waktu
memilih pop akan tampil kesalahan. Jika dipilih quit maka program
selesai.

Output
Pilihan :
1. Push
2. Pop
3. Quit
Pilihan [ 1/2/3 ] = 1
Masukkan kata = Data
Hasil Push : Data

BAB III
PEMBAHASAN
Untuk membuat program tumpukan yang merupakan implementasi dari
STACK yang menggunakan konsep LIFO ( Last In First Out ) yang bersifat
dinamis dimana data yang bisa ditambah maupun diambil maksutnya yaitu kita
bisa memasukkan beberapa data dan kita juga bisa mengambil data tersebut
dengan cara pengambilan data yang dimasukkan terakhir itu dikeluarkan terlebih
dahulu untuk mengambil data dibawahnya seperti tumpukan barang yang untuk
mengambil tumpukan barang tersebut kita harus mengambil barang yang
diletakkan terakhir ( pada barang paling atas ).

Program ini adalah untuk membuat program Stack:


Buatlah program menggunakan prinsip tumpukan (stack) dan beri tiga pilihan :
push, pop dan quit. Jika dipilih pus program akan meminta user menginputkan
sebuah kata, dimana maksimal 6 karakter jika lebih dari 6 akan muncul pesan
kesalahan. Jika dipilih pop maka karakter teratas akan tampil dikeluarkan, bila
belum ada kata yang dimasukkan maka waktu memilih pop akan tampil
kesalahan. Jika dipilih quit maka program selesai.
Output
Pilihan :
1. Push
2. Pop
3. Quit
Pilihan [ 1/2/3 ] = 1
Masukkan kata = Data
Hasil Push : Data
Untuk mengimplementasikan program stack seperti diatas:
Pertama kalinya kita harus membuat nama program utama yang akan kita
buat yaitu kita memberi nama tugas dengan uses crt.

selanjutnya kita harus membuat constanta yaitu nilai tetap untuk membuat
masukkan huruf yang dibolehkan diprogram tersebut jumlah maskimal yang
dibolehkan yaitu 6 elemen data jumlah yang dapat dimasukkan dalam stack.

Dan membuat tipe data baru berupa record untuk mendeklarasi stack yaitu
kita membuat tipedata dengan string, dan stack dengan record yang terdiri
dari tabelemen yang bertipe array serta top dengan null nmax.

Dan untuk deklarasi yang dipakai oleh program utama kita gunakan variabel
S:stack, data:tipedata, pil:char. Variabel pil disini digunakan untuk
pemilihan apakah yang dipilih 1,2 atau 3. Serta kita berikan label untuk
kembali lagi ke statement a dan sebagainya.

Kemudian kita memakai procedure inisialisasi digunakan untuk membuat


stack dalam keadaan kosong. Proses ini dilakukan dengan mengisi variabel
top dengan nilai yang tidak menunjukan salah satu elemen array.

Kita juga membuat function empty untuk mengetahui apakah stack tersebut
kosong atau tidak.

Function full digunakan untuk mengetahui apakah stack sudah penuh atau
tidak.

Selanjutnya yang kita gunakan adalah procedure POP yang fungsinya yang
pertama adalah mempertimbangkan apakah stack kosong atau tidak dan
apabila tidak kosong berguna untuk pengambilan elemen yang dilakukan pada
data yang paling akhir terlebih dahulu untuk diambil atau tumpukan data
paling atas.

Dan kita juga menuliskan statement Push

yang digunakan untuk

menambahkan elemen pada stack serta apabila data lebih dari jumlah
maksimal yaitu 6 buah elemen maka data tidak dimasukkan dalam stack.

Apabila stack sudah dimasukkan 6 elemen dan akan dimasukkan data lagi
maka stack tersebut akan tampil pesan kesalahan maka kita buat procedure
penuh untuk memberi pesan yang akan ditampilkan adalah pesan tumpukan
sudah penuh.

Setelah kita membuat beberapa procedure dan function maka lalu kita
membuat program utama yaitu yang akan kita tampilkan pada output kita.
Statement a: adalah untuk mengulang apabila kita menggunakan pilihan Push.
Serta terdapat pilihan apa yang kita gunakan.

Untuk menggunakan pemilihan kita memakai case pil of untuk memilih apa
yang diinputkan oleh user. Pilihan ke- 1 kita menuliskan statement Push yang
digunakan untuk memasukkan elemen data pada stack dan menampilkan hasil
push yang diberikan. Dan setelah itu kita kembalikan lagi ke statement a
untuk kembali apakah kita akan memasukkan pilihan Push lagi atau tidak.

Pilihan ke- 2 kita tuliskan statement Pop yang digunakan untuk mengambil
data yang sudah diinputkan terakhir kali (stack teratas) pada proses Push dan
ditampilkan pada output.

Pilihan ke-3 kita tuliskan statement exit untuk menutup program.

Apabila saat melakukan input 1/2/3 user salah menginputkannya misalnya 4


maka yang akan ditampilkan adalah yang anda masukkan salah pilih
1/2/3

Untuk mengakhiri progam kita tuliskan statement end dengan diakhiri tanda
titik (.) untuk menutup sebuah program utama.

BAB IV
KESIMPULAN
Stack adalah suatu bentuk khusus dari linear list di mana operasi
penyisipan dan penghapusan atas elemen-elemennya hanya dapat dilakukan pada
satu sisi saja yang disebut sebagai TOP.
Konsep yang digunakan stack adalah Last In First Out (LIFO) dan bersifat
dinamis dimana data bisa ditambah maupun diambil. Apabila terjadi penambahan
maka data akan diletakkan paling atas, sedangkan apabila terjadi pengambilan

maka data yang teratas yang pertama kali diambil. Misalnya dalam kehidupan
sehari-hari adalah seperti tumpukan barang yang diletakkan bertingkat.
Terdapat 2 operasi khusus pada stack yaitu:

Pengambilan elemen dilakukan pada top, yang disebut sebagai POP.

Penambahan elemen dilakukan pada top, yang disebut sebagai


PUSH.

Penyajian tumpukan dalam bahasa Pascal dapat disajikan dalam beberapa


cara, yaitu dengan tipe data array, record, atau pointer. Penyajian tumpukan
dengan tipe data pointer dapat dilakukan dengan senarai berkepala. Operasi
memasukkan simpul baru pada simpul pertama, identik dengan memasukkan data
pada tumpukan, atau dengan kata lain senarai berantai yang dapat dimodifikasi
melalui pointer yang menunjuk pada elemen pertama serupa dengan tumpukan
yang

hanya

dapat

dimodifikasi

melalui

tumpukan

paling

atas.

Karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satusatunya alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir
akan menjadi elemen yang akan dihapus.
Stack dapat dideklarasikan dengan sebuah record yang mempunyai elemen
sebuah array tabelemen untuk menyimpan elemen stack dan sebuah variabel top
untuk menunjukkan elemen stack teratas.

BAB V
DAFTAR PUSTAKA
Teknik informatika, 2014. Modul Struktur data. Universitas Palangkaraya:
Palangkaraya.
http://esarkuliah.blogspot.com/2013/04/implementasi-stack-dalam-programpascal.html
http://symphonyofika.blogspot.com/2011/10/membuat-program-stack-denganpascal.html

http://sahrulwijaya.blogspot.com/2009/11/stack-tumpukan.html

BAB VI
LAMPIRAN
o Coding:

o Output
Kita melakukan proses Push dengan masukkan 2 elemen data input pada Stack
yaitu saya dan budi. Dan melakukan proses Pop dengan mengambil elemen data
dari data yang kita masukkan melalui Push. Maka beberapa output yang
dihasilkan adalah:

Tekan 1 dan memasukkan kata saya ( elemen data pertama ).

Tekan 1 dan memasukkan kata budi ( elemen data kedua ).

Tekan 2 dan enter. ( akan dikeluarkan elemen data yang terakhir


dimasukkan atau elemen data kedua yaitu budi ).

Tekan 2 dan enter. ( akan dikeluarkan elemen data pertama yang


dimasukkan yaitu saya ).

Tekan 2 enter ( otomatis dikeluarkan pesan tumpukan kosong karena


elemen data pada stack sudah habis )

Anda mungkin juga menyukai