Stack adalah suatu urutan yang elemennya dapat diambil dan ditambah hanya pada posisi
akhir(top)saja.contoh dalam kehidupan sehari-hari adalah tumpukan piring disebuah restoran
yang tumpukannya ditambah pada bagian paling atas dan jika mengambilnya pun dari bagian
paling atas pula.
Bersifat LIFO (Last In First Out). Benda yang terakhir masuk ke dalam stack akan menjadi
benda pertama yang dikeluarkan dari stack.
Macam-Macam Stack
Stack ada 2 operasi paling besar yang dapat dilakukan,yaitu:
1. Operasi push yaitu operasi menambahkan elemen pada urutan terakhir(paling atas).
2. Operasi Pop yaitu mengambil sebuah elemen data pada urutan terakhir dan menghapus elemen
tersebut dari stack
Sebagai contoh,misalkan ada data sebagai berikut:
1 3 5 6,maka data tersebut dapat tersimpan dalam bentuk sebagai berikut:
2. Proses Inisialisasi
Inisialisasi stack adalah proses pembuatan suatu stack kosong.
3. Operasi IsEmpty
Operasi yang digunakan untuk memeriksa apakah stack dalam keadaan kosong. Operasi ini
dilakukan dengan memeriksa field top.jika top bernilai 0 atau top bernilai -1,maka berarti stack
dalam keadaan empty.
4. Operasi IsFull
Untuk memeriksa keadaan stack apakah sudah penuh/belum.
Langkah-langkah untuk operasi ini:
a. Operasi IsFull pada stack yang menggunakan array.
b. Operasi ini akan memberikan nilai true(1) jika field top sama dengan field maks_elemen -1.
5. Operasi Push
Operasi push adalah operasi dasar dari stack yang berguna untuk menambah suatu elemen data
baru pada stack dan di simpan pada posisi top yang akan mengakibatkan posisi top akan berubah.
Langkah-langkah operasi ini:
Periksa apakah stack penuh(isfull).jika bernilai false/0 (tidak penuh)maka proses push
dilaksanakan dan jika pemeriksaan ini bernilai true/1,maka proses push digagalkan.
Proses push-nya sendiri adalah dengan menambahkan field top dengan 1,kemudian elemen pada
posisi top di isi dengan elemen data baru.
6. Operasi Pop
Operasi Pop adalah salah satu operasi paling besar dari stack yang berguna untuk mengambil
elemen terakhir(top) dan kemudian menghapus elemen tersebut sehingga posisi top akan
berpindah.
Operasi ini biasanya dibuat dalam bentuk function yang me-return-kan nilai sesuai data yang ada
di top. Operasi Pop pada Stack yang menggunakan array adalah terlebih dahulu memeriksa
apakah stack sedang keadaan kosong,jika tidak kosong maka data diambil pada posisi yang
ditunjuk oleh posisi top,kemudian disimpan dalam variabel baru dengan nama data.
7. Operasi Print
Untuk menampilkan semua elemen-elemen stack. Dengan cara looping semua nilai array secara
terbalik, karena kita harus mengaksesdari indeks array tertinggi terlebih dahulu baru ke indeks
yang kecil.
KATA PENGANTAR
Puji syukur kami ucapkan atas Rahmat, Hidayah, dan Inayah dari Allah
SWT,
sehingga
kami
bisa
melakukan
aktivitas
pada
mestinya
dan
yang
diberikan
oleh
Dosen
selaku
pembimbing
dalam
mata
Penulis
DAFTAR ISI
BAB I
1
PENDAHULUAN 1
A.
LATAR BELAKANG.................................................................1
B.
RUMUSAN MASALAH.............................................................1
BAB II
2
PEMBAHASAN 2
A.
PENGERTIAN STACK (TUMPUKAN).........................................2
B.
DEKLARASI TUMPUKAN.........................................................3
C.
OPERASI DASAR PADA STACK...............................................4
D.
NOTASI ARITMATIK................................................................7
BAB III
9
PENUTUP 9
A.
KESIMPULAN.........................................................................9
B.
SARAN..................................................................................9
DAFTAR PUSTAKA
BAB I
PENDAHULUAN
A. LATAR BELAKANG
Struktur data adalah karakteristik yang terkait
dengan sifat dan cara penyimpanan sekaligus
penggunaan atau pengaksesan data. Karakteristik
tersebut mengikat dan sekaligus secara timbal
balik dipengaruhi oleh algoritma yang mengakses
data tersebut, sehingga disebutkan Algoritma dan
Struktur Data merupakan satu kesatuan. Salah
B. RUMUSAN MASALAH
Dari latar belakang masalah di atas, maka muncul tugas penulis untuk
1.
2.
3.
4.
BAB II
PEMBAHASAN
A. PENGERTIAN STACK (TUMPUKAN)
Secara sederhana, tumpukan bisa diartikan
sebagai suatu kumpulan data yang seolah-olah ada
data yang diletakkan diatas data yang lain. Satu
hal yang perlu kita ingat adalah bahwa kita bisa
menambah (menyisipkan) data, dan mengambil
(menghapus) data lewat ujung yang sama, yang
Untuk stack yang menggunakan array satu dimensi, kita mengenal Single
Stack dan Double Stack.
1.
2.
B. DEKLARASI TUMPUKAN
Pendeklarasian tumpukan menggunakan Larik
dan sebuah variabel dengan tipe data Record :
Const Makstump = 80 {Kapasitas maksimal tumpukan}
Type Tumpukan = Record
Isi : Array [1.. Makstump] of integer;
Atas: 0.. Makstump;
end;
Var T : Tumpukan;
Elemen Tumpukan T tersimpan dalam Larik T.isi adalah bertipe integer,
banyak elemen tumpukan maksimum adalah sebesar Makstup 80 elemen
Jika T.Atas = 5 berarti tumpukan ada 5 elemen yaitu T.isi[1] .. T.isi[5], jika
T.Atas dikurangi 1 sehingga menjadi 4, berarti T.isi[4] adalah elemen teratas,
sebaliknya jika tumpukan ditambah 1 buah elemen maka T.Atas ditambah 1
sehingga menjadi 6, maka T.isi[6] adalah elemen teratas.
OPERASI
ISI TUMPUKAN
NILAI TOP
.
1
2
3
4
5
6
7
8
9
10
CREATE STACK(S)
PUSH(A,S)
PUSH(B,S)
PUSH(C,S)
POP(S)
PUSH(D,S)
PUSH(E,S)
POP(S)
POP(S)
POP(S)
:<Kosong>
:A
:AB
:ABC
:AB
:ABD
:ABDE
:ABD
:AB
:A
0
1
2
3
2
3
4
3
2
1
1. Createstack(S)
Yaitu membuat tumpukan baru S, dengan sejumlah elemen kosong.
2. Makenull(S)
Yaitu mengosongkan tumpukan S, jika ada elemen maka semua elemen akan
dihapus.
3.
Empty
Yaitu tumpukan kosong ?, untuk menguji apakah tumpukan kosong atau
4.
tidak.
Push(x,S)
Yaitu memasukan elemen baru x ketumpukan S. Proses PUSH, tumpukan
harus diperiksa apakah jumlah elemen sudah mencapai maksimum atau
tidak, jika sudah maka overflow. Operasi PUSH merupakan operasi untuk
menyisip atau menambah elemen yg terletak pada posisi paling atas dari
sebuah tumpukan.
Contoh Prosedur untuk Operasi PUSH :
Procedure Push (Var T : Tumpukan; X : Integer;
Begin
T.Atas:T.Atas + 1;
T.Isi[T.Atas]:=x;
end;
Prosedur tersebut akan menyiapkan tempat untuk X yang akan di Push
kedalam tumpukan, yaitu dengan menambah elemen T.Atas dengan 1 dan
kemudian menyisipkan X ke dalam Larik T.Isi.
Prosedur diatas sudah benar, tapi jika pada saat T.Atas sama dengan
Makstump dan kita akan mem Push lagi maka akan terjadi Overflow,
maka perlu ditambahkan sebuah Testing untuk menguji apakah sudah
mencapai tumpukam maksimum atau tidak.
Prosedur diatas harus dirobah menjadi :
Procedure Push (Var T : Tumpukan; X : Integer;
Begin
If T.Atas = Makstump then
Writeln(Tumpukan Sudah Penuh)
Else
Begin
T.Atas:T.Atas + 1;
T.Isi[T.Atas]:=x;
end;
End;
5.
Pop(S)
Yaitu mengeluarkan elemen posisi teratas pada tumpukan S. Proses POP,
tumpukan harus diperiksa apakah tumpukan sudah kosong/tidak ada lagi
elemen yang hendak dikeluarkan, jika tidak maka underflow. Operasi POP
merupakan operasi untuk menghapus elemen yang terletak pada posisi
paling atas dari sebuah tumpukan
Contoh Prosedur untuk Operasi POP :
Procedure Pop (Var T : Tumpukan; X : Integer;
Begin
If T.Atas = 0 then
Writeln(Tumpukan Sudah Kosong)
Else
T.Atas:T.Atas - 1;
end;
A+B
Pengerjaan 1 : A + B Prefixnya : + AB
2. (A + B) (C * D)
a. Pengerjaan dalam kurung 1 : ( A + B) Prefixnya : + AB
b. Pengerjaan dalam kurung 2 : (C * D) Prefixnya : * CD
c. Terakhir adalah Operator : +AB *CD Prefixnya : +AB*CD
Contoh : Infix ke Postfix
1. A+B
a. Pengerjaan 1 : A + B Prefixnya : AB+
2. (A + B) (C * D)
a. Pengerjaan dalam kurung 1 : ( A + B) Postfixnya : AB+
b. Pengerjaan dalam kurung 2 : (C * D) Postfixnya : CD*
c. Terakhir adalah Operator : AB+ CD* Postfixnya : AB+ CD*
INFIX
PREFIX
POSTFIX
A+B
+AB
AB+
A+B-C
-+ABC
AB+C-
(A + B) * (C D) *+AB -CD
AB+ CD-*
A B / (C * D ^
E)
-A/B*C^DE
ABCDE^*/-
BAB III
PENUTUP
A. KESIMPULAN
Dari penjelasan diatas dapat disimpulkan stack
(tumpukan) adalah sekumpulan data yang
organisasi atau strukturnya bersifat tumpukan dan
karakteristik yang terbaik dengan sifat dan cara
penyimpanan sekaligus penggunaan atau
pengaksesan data. Karakteristik tersebut mengikat
dan sekaligus secara timbal balikdipengaruhi oleh
algoritma yang mengakses data tersebut. Dalam
kamus data, ada beberapa cara pendeklarasian
struktur data, salah satunya dengan menggunakan
tata susunan linier (larik) dan sebuah variabel,
yang dikemas dalam tipe data record.
B. SARAN
Dari uraian di atas penulis berharap, pembaca
dapat memahami tentang pengertian Stack
(Tumpukan), Kamus dan Tumpukan, Operasi pada
Stack, dan Notasi Aritmatik.
DAFTAR PUSTAKA
Robert L. Kruse, 1991, Data Structure and Program Design, New Delhi:
Prentice Hall, Second Edition.
Santoso, Insap Ir.M.Sc., Struktur Data Menggunakan Turbo Pascal 6.0,
Yogyakarta: Andi Offset.
Sijukani, Moh. Struktur Data (Algoritma dan Struktur Data 2) dengan C, C++,
Edisi empat, Jakarta: Mitra Wacana Media, 2010
Zakaria Markus Teddy and Prijono Agus, Konsep dan Implementasi Struktur
Data, Bandung : Informatika, 2006