MAKALAH STACK (TUMPUKAN)
STACK (TUMPUKAN)
OLEH
M.ZAENAL ARIFIN
311710134
TI.17.D6
DOSEN PEMBIMBING
ABDUL HALIM ANSHOR
S,Kom.M,Kom
PROGRAM STUDI TEKNIK
INFORMATIKA

SEKOLAH TINGGI TEKNIK
INFORMATIKA
PELITA BANGSA
(STT-PB)
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, saya telah berhasil
membuat makalah untuk memenuhi tugas yang diberikan oleh Dosen selaku
pembimbing dalam mata perkuliahan struktur data agar mahasiswa mampu terampil
dan kreatif serta mempunyai ide dan gagasan yang cemerlang sehingga proses
pembelajaran lebih efektif dan efisien.
Harapan saya semoga makalah ini
memenuhi kriteria yang ideal dan kongkrit serta dapat bermanfaat dalam
pelajaran Struktur Data.
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,
saya sangat mengharapkan kritikan dan saran demi kesempurnaan makalah ini.
Cikarang
, 28 juni 2018
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................................................................................ 6
BAB III ……………………………………………………………………..8
PENUTUP ……………………………………………………………………..8
A. KESIMPULAN............................................................................................ 8
B. SARAN........................................................................................................ 8
DAFTAR PUSTAKA …………………………………………………………9
BAB I
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.
Dari
latar belakang masalah di atas, maka muncul tugas penulis untuk menjelaskan
lebih jauh tentang pengantar teknologi informasi.
1.
Apa
pengertian Stack (Tumpukan) ?
2.
Pendeklarasian
Deklarasi Tumpukan ?
3.
Apa
saja Operasi Dasar pada Stack ?
4.
Jelaskan
tentang Notasi Aritmatik ?
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.
Single
Stack (Stack Tunggal)
Adalah stack yang terdiri dari satu
collection. Bila stack tersebut menggunakan array satu dimensi.
2.
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 :
- Createstack(S)
- Makenull(S)
- Empty
- Push(x,S)
- Pop(S)
Ilustrasi Operasi POP dan PUSH terhadap
STACK
No.
|
OPERASI
|
ISI
TUMPUKAN
|
NILAI
TOP
|
1
|
CREATE STACK(S)
|
:<Kosong>
|
0
|
2
|
PUSH(‘A’,S)
|
:A
|
1
|
3
|
PUSH(‘B’,S)
|
:AB
|
2
|
4
|
PUSH(‘C’,S)
|
:ABC
|
3
|
5
|
POP(S)
|
:AB
|
2
|
6
|
PUSH(‘D’,S)
|
:ABD
|
3
|
7
|
PUSH(‘E’,S)
|
:ABDE
|
4
|
8
|
POP(S)
|
:ABD
|
3
|
9
|
POP(S)
|
:AB
|
2
|
10
|
POP(S)
|
:A
|
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 tidak.
4.
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
|
-
+ A B C
|
A
B + C -
|
(A
+ B) * (C – D)
|
*+AB
-CD
|
AB+
CD-*
|
A
– B / (C * D ^ E)
|
-
A / B * C ^ D E
|
A
B C D E ^ * / -
|
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.
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
terimakasih
BalasHapus