ANGGOTA KELOMPOK :
HARTONO 1831095
ROBIN 1831125
WINSON 1831193
OKTAVINA 1831007
STACK DENGAN SINGLE LINKED LIST
Single Linked List merupakan suatu linked list yang hanya memiliki satu variabel pointer saja. Dimana pointer tersebut
menunjuk ke node selanjutnya. Biasanya field pada tail menunjuk ke NULL.
Stack dengan menggunakan Array
Pengertian Stack
Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman
Bersifat LIFO (Last In First Out)
Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack
Contohnya, karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi elemen teratas dalam
tumpukan. sebaliknya, karena kita menumpuk Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen
terbawah dari tumpukan. dan jika kita mengambil elemen dari tumpukan, maka secara otomatis akan terambil
elemen teratas, yaitu compo juga
CODING
KELEBIHAN DAN KEKURANGAN STACK
Kelebihan :
Penambahan & Penghapusan data dapat dilakukan dengan cepat. Selama memori masih tersedia, maka penambahan
data bisa terus dilakukan. Dengan demikian tidak ada kekuatiran terjadinya “stack overflow” (memori stack habis
terpakai sehingga proses berhenti bekerja).
Kekurangan :
Setiap sel tidak hanya menyimpan 1 value saja, melainkan juga ke sel berikutnya. Hal ini menyebabkan implementasi
stack memakai linked list yang akan memerlukan memori lebih banyak dari pada array. Sehingga membuat halaman
diakses lebih lama/lambat.
Stack array dengan linked list array
Stack array adalah struktur data statis, Ruang yang diperlukan untuk mereka harus ditentukan sebelumnya yaitu
berapa banyak elemen total yang akan ada bersama pada suatu titik waktu harus diketahui sebelumnya. Oleh karena
itu, pembuatan stack sebagai array melibatkan penentuan jumlah elemen sebelumnya. Sedangkan linked list array ruang
tidak perlu ditentukan sebelumnya yaitu tempat yang disediakanakan sesuai dengan banyaknya elemen yang mengisi
stack.
MACAM – MACAM STACK
1. Operasi Push ( Memasukkan elemen baru ke dalam stack pada tumpukan paling atas ).
Contoh coding push c++ : void push (int val) {if (top>=n-1)
cout << “Stack Overflow” <<end1;
else {
top++;
stack[top]=val;
}
}
MACAM – MACAM STACK
a. Prefix : Notasi yang terbentuk atas operator dengan operand, dimana Operator didepan Operand.
Contoh ; A+B*C (infix) operand [A,B,C] & operator [+,*]
A +*BC
+A*BC
Proses dimulai dengan melihat dari hirarkhi operator.Contoh diatas operator yang tertinggi adalah * kemudian +.
Tanda * diapit oleh 2 operand yaitu B*C, prefixnya dengan menggabungkan operand dan memindahkan operator ke
depan dari operand,sehingga fungsi B*C, notasi prefixnya menjadi *BC.
Selanjutnya mencari prefix untuk operator yang berikutnya yaitu +, cara yang dilakukan sama seperti diatas,
operator + diapit oleh operand, yaitu A dan *BC, gabungkan operand,sehingga menjadi A*BC,lalu pindahkan operator
kedepan operand,sehingga hasil akhir menjadi :
+A*BC.
NOTASI PREFIX, INFIX, DAN POSTFIX
Notasi ini terbentuk dari Operand dan Operator.
Operand : Data atau nilai yang membantu dalam Proses
Operator : Fungsi yang digunakan dalam Proses
Hirarki/Level yang ada dalam Notasi
1. ( ) (Kurung).
2. ^ (Pangkat).
3. * / (Perkalian / Pembagian).
4. + - (Penjumlahan / Pengurangan).
b. Infix : Notasi yang terbentuk atas operator dengan operand, dimana Operator berada diantara Operand
Contoh : A + B *C, (A + B) *C , A – (B + C) *D ^ E
c. Postfix : Notasi yang terbentuk atas operator dengan operand, dimana Operator berada dibelakang
Operand
Contoh : A+B*C (infix)
maka notasi postfix adalah ABC*+