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



Description: Gambar terkait








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 :
  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
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

Komentar

Posting Komentar

Postingan Populer