Anda di halaman 1dari 16

STACK (Tumpukan)

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:

Contoh lain adalah ada sekumpulan perintah stack yaitu push(5),push(7),pop,push(3),pop.jika


dijalankan,maka akan terjadi adalah:

Proses Operasi Stack


Selain operasi dasar stack,ada lagi operasi lain dapat terjadi dalam stack yaitu:
1. Proes Deklarasi yaitu proses pendeklarasian stack.
2. Proses Isempty yaitu proses pemeriksaan apakah stack dalam keadaan kosong.
3. Proses Isfull yaitu proses pemeriksaan apakah stack telah penuh.
4. Proses inisialisasi yaitu proses pembuangan stack kosong,biasanya dengan pemberian
nilai untuk top.
5. Proses clear yaitu proses pengosongan stack.
6. Proses Print yaitu proses menampilkan semua elemen-elemen stack
Operasi-operasi Stack
1. Pendeklarasian stack
Proses pembuatan struktur stack dalam memori.
Top: yang berisi posisi data terakhir
Elemen: yang berisi data yang ada dalam stack bagian ini lah yang berbentuk array.
Maks_elemen yaitu variabel yang menunjuk maksimal banyaknya elemen dalam stack.

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.

ALGORITMA DAN STRUKTUR DATA


STACK (TUMPUKAN)
OLEH
RAHMAD DENI (14 205 089)
DOSEN PEMBIMBING
ZIKRAWAHYU, M. KOM
PROGRAM STUDI MANAJEMEN INFORMATIKA
JURUSAN SYARIAH
SEKOLAH TINGGI AGAMA ISLAM ISLAM NEGERI (STAIN)
BATUSANGKAR
2014

KATA PENGANTAR
Puji syukur kami ucapkan atas Rahmat, Hidayah, dan Inayah dari Allah
SWT,

sehingga

kami

bisa

melakukan

aktivitas

pada

mestinya

dan

kemudahan dalam menjalani kehidupan ini. Shalawat beserta salam semoga


terlimpah atas penghulu manusia baik yang dahulu maupun sekarang, yaitu
Baginda Muhammad SAW. Sang revolusioner Umat Islam yang begitu gigih
memperjuangkan islam sehingga menjadi agama berkedudukan tinggi di
bumi Allah ini.
Alhamdulillah, kami telah berhasil membuat makalah untuk memenuhi
tugas

yang

diberikan

oleh

Dosen

selaku

pembimbing

dalam

mata

perkuliahan agar mahasiswa mampu terampil dan kreatif serta mempunyai


ide dan gagasan yang cemerlang sehingga proses pembelajaran lebih efektif
dan efisien.
Harapan kami semoga makalah ini memenuhi kriteria yang ideal dan
kongkrit serta dapat bermanfaat dalam pelajaran Algoritma dan Struktur
Data. Terima kasih kami ucapkan kepada Zikrawahyu, M. Kom selaku dosen
pembimbing dalam pembelajaran Algoritma dan Struktur Data dan terima
kasih juga kepada semua pihak yang telah membantu kami dalam
menyelesaikan makalah ini.
Akhir kata, hasil makalah ini masih sangat jauh dari kesempurnaan.
Tidak ada yang sempurna karena kesempurnaan hanyalah milik Allah SWT.
Demi perbaikan dan pengembangan makalah ini ke depan, kami sangat
mengharapkan kritikan dan saran demi kesempurnaan makalah ini.
Batusangkar, 24 November 2014

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

satu teknik dasar tentang struktur data adalah


stack yang lebih lanjut akan dibahas dalam
makalah ini.

B. RUMUSAN MASALAH
Dari latar belakang masalah di atas, maka muncul tugas penulis untuk
1.
2.
3.
4.

menjelaskan lebih jauh tentang pengantar teknologi informasi.


Apa pengertian Stack (Tumpukan) ?
Pendeklarasian Deklarasi Tumpukan ?
Apasaja Operasi Dasar pada Stack ?
Jelaskan tentang Notasi Aritmatik ?

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

disebut sebagai ujung atas tumpukan (top of


stack).
Contoh 1:
Kita mempunyai dua buah kotak yang kita tumpuk, sehingga kotak kita
letakkan diatas kotak yang lain. Jika kemudian tumpukan dua buah itu kita
tambah dengan kotak ketiga, keempat dan seterusnya, maka akan kita
peroleh sebuah tumpukan kotak, yang terdiri dari N kotak.
Dari gambar di bawah ini kita bisa mengatakan bahwa kotak B ada diatas
kotak A dan ada di bawah kotak C. tumpukan hanya bisa menambah atau
mengambil sebuah kotak lewat suatu ujung, yaitu ujung bagian atas. Dapat
dilihat pula bahwa tumpukan merupakan kumpulan data yang sifatnya
dinamis, artinya kita bisa menambah dan mengambil data darinya.
F
E
D
C
B
A
Tumpukan yang terdiri dari 6 kotak
Dari gambar diatas, ujung manakah yang kita anggap sebagai ujung
atastumpukan tersebut ? Untuk menjawabnya kita harus menentukan ujung
mana yang kita gunakan untuk mengambil atau menyisipkan data yang
baru, dari gambar tumpukan diatas. Kita mengangap atau memilih bahwa
kotak F adalah bagian atas dari tumpukan tersebut. Jika ada kotak lain yang
akan disisipkan, maka ia akan diletakkan diatas kotak F, dan jika ada kotak
yang akan diambil, maka kotak F lah yang akan diambil pertama kali..
Dengan memperhatikan ilustrasi-ilustrasi yang disebutkan maka kita bisa
melihat bahwa tumpukan merupakan suatu senarai (list) yang mempunyai
watak masuk terakhir keluar pertama atau (last first out - LIFO).
Dalam pemograman, koleksi data yang berstruktur stack, dapat
ditempatkan dalam array satu dimensi atau dalam linear singly linked list.

Untuk stack yang menggunakan array satu dimensi, kita mengenal Single
Stack dan Double Stack.
1.

2.

Single Stack (Stack Tunggal)


Adalah stack yang terdiri dari satu collection. Bila stack tersebut
menggunakan array satu dimensi.
Double Stack (Stack Ganda)
Satu array digunakan untuk dua stack dimana dasar stack 1 berada pada sisi
indeks yang terkecil dan dasar Stack 2 berada pada sisi indeks yang
terbesar.

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.

C. OPERASI DASAR PADA STACK

Pendeklarasian tumpukan menggunakan Larik dan sebuah variabel dengan


tipe data Record :
1. Createstack(S)
2. Makenull(S)
3. Empty
4. Push(x,S)
5. Pop(S)
Ilustrasi Operasi POP dan PUSH terhadap STACK
No

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;

D. NOTASI ARITMATIK (Infex, Prefix, dan


Postfix)
Salah satu manfaat tumpukan adalah untuk
menulis Notasi Aritmatik, yaitu : Notasi Infix, Prefix
dan Notasi Postfix.
1. Notasi Infix
Yaitu notasi yang mudah dimengerti oleh
manusia.
Contoh : A + B (Operand Operator
Operand)
Hirarki Operator :
1. Tanda kurung : ( )
2. Eksponensial atau tanda pangkat : ^
3. Perkalian, Pembagian : * , /
4. Penjumlahan, Pengurangan : + , Contoh : (A B) * (C + D)
Prioritas pengerjaannya adalah :
a. Dalam kurung yang paling kiri : (A B)
b. Dalam kurung yang kedua : (C + D)
c. Perkalian hasil pengurangan dengan hasil
pembagian
2. Notasi Prefix

Yaitu notasi yang simbol operator diletakkan


sebelum dua operand.
Contoh : Infix A + B
Prefix + AB (Operator Operand Operand)
3. Notasi Postfix
Yaitu Notasi yang simbol operator diletakkan
sesudah dua operand.
Contoh : Infix A + B
POSTfix AB (Operand Operand
Operator)
Contoh : Infix ke Prefix
1.

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.

Penulis menyadari bahwa dalam pembuatan


makalah ini masih banyak kesalahan dan
kekurangan, baik dari segi penulisan maupun dari
segi pemaparan. Maka dari itu pemakalah
menerima dan mengharapkan kritik dan saran dari
pembaca yang sifatnya membangun, agar makalah
ini dapat menjadi lebih sempurna dan menjadi
rujukan bagi pembaca nantinya.

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

Anda mungkin juga menyukai