STACK STACK Kuliah Kuliah Struktur Struktur Data Pascal

Download Report

Transcript STACK STACK Kuliah Kuliah Struktur Struktur Data Pascal

STACK
Kuliah Struktur Data Pascal
Definisi






Adalah tumpukan data yang seolah-olah ada data di atas data lain.
data yang terakhir terakhir kali dimasukkan akan pertama kali
keluar dari stack tersebut.
Stack dapat diimplementasikan sebagai representasi berkait atau
kontigu (dengan tabel fix)
Ciri-Ciri Stack :
1.Elemen TOP (puncak) diketahui
2.penyisipan dan penghapusan elemen selalu dilakukan di TOP
3. LIFO ( Last In First Out)
Contoh : 5. Guntur, 4. aditya, 3.Tyas, 2.Hendra, 1.Dyah
Data nomor 1 datang/masuk duluan, data nomor 5 yang paling
atas yang keluar terlebih dahulu.
Suatu metode untuk Input dan hapus di dalam memori komputer
 LIFO

Jika ingin mengambil 90, maka harus melakukan POP
untuk 37 dan 12 terlebih dahulu kemudian POP untuk
90
Pemanfaatan Stack :
Perhitungan ekspresi aritmatika (posfix)
 algoritma back traking (runut balik)
 algoritma rekursif

Algoritma


Input/tambah data
Jika ada input maka no stack/no tumpukan yang semula 0
akan tambah 1 demi 1 sampai maksimal tumpukan.
Pengambilan data
Jika ada pengambilan data maka data dipindahkan di
variabel lain contohnya tempat Dan posisi tumpukann yang
semula maksimal akan berkurang 1 demi 1 sampai posisi 0
kembali.
Operasi pada STACK

CREATE
 Membuat
stack baru yang masih kosong.
Procedure create;
Begin
Stack.top:=0;
End;

FULL
Untuk memeriksa apakah stack sudah penuh atau
belum.
Fuction full:bolean;
Begin
Stack.top:=max;
End;

PUSH
Menambah sebuah elemen ( data ) kedalam stack
(Syarat: tidak bisa dilakukan jika stack sudah penuh)
Stack.data:=input;
End;
End;
Procedure push ( input:string );
Begin
If not full then
Begin
Stack.top:=stack.top;

POP
Mengambil elemen teratas dari stack.
Syarat: Stack tidak boleh kosong.
Procedure Pop ( elemen:string );
Begin
If not empty then
Begin
Elemen:=stack.data;
Stack.top:=top – 1;
End;
End;
Awal Program
 Memastikan
posisi tumpukan kosong
 Element yang terambil belum ada
Inputan
 Dipastikan
tumpukan belum penuh
 Menginput satu persatu
Pengambilan
 Dipastikan
tumpukan tidak kosong
 Pengambilan satu persatu atau lebih dari satu
(optional)
PENGGUNAAN/APLIKASI STACK


Logika stack digunakan untuk menyelesaikan
berbagai macam masalah. Antara lain digunakan pada
compiler, operating system dan dalam programprogram aplikasi lain
Berikut ini tiga buah contoh aplikasi stack, yaitu
MATCHING PARENTHESES
NOTASI POSTFIX
PROSES REKURSIF
MATCHING PARENTHESES
Proses ini dilakukan compiler untuk
memeriksa kelengkapan tanda kurung
yang terdapat pada suatu ekspresi
aritmetik
 Sedangkan stack di sini digunakan
sebagai tempat prosesnya

NOTASI POSTFIX
mengubah suatu ekspresi aritmatik (string) ke
dalam notasi postfix
 Notasi postfix ini digunakan oleh compiler untuk
menyatakan suatu ekspresi aritmatik dalam bahasa
tingkat tinggi (high level language)
 Stack digunakan oleh compiler untuk
mentransformasikan ekspresi aritmatik menjadi
suatu ekspresi dalam bentuk/notasi postfix


Contoh :
diberikan ekspresi aritmatik : A + B
Maka bentuknya dalam notasi postfix menjadi : AB+
Urutan (prioritas) dari operator adalah
1. Perpangkatan (^)
2. Perkalian (*) atau Pembagian (/)
3. Penjumlahan (+) atau Pengurangan (-)
PROSES REKURSIF


Rekursi mempunyai arti suatu proses yang bias
memanggil dirinya sendiri. Dalam sebuah rekursi
sebenarnya tekandung pengertian sebuah prosedur
atau fungsi
Perbedaannya dengan prosedur adalah bahwa rekursi
bisa memanggil dirinya sendiri, kalau prosedur atau
fungsi harus diipanggil melalui pemanggil prosedur
atau fungsi