STACK Kuliah Struktur Data Pascal Definisi l l

  • Slides: 16
Download presentation
STACK Kuliah Struktur Data Pascal

STACK Kuliah Struktur Data Pascal

Definisi l l l Adalah tumpukan data yang seolah-olah ada data di atas data

Definisi l l l Adalah tumpukan data yang seolah-olah ada data di atas data lain. data yang 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

l LIFO l Jika ingin mengambil 90, maka harus melakukan POP untuk 37 dan

l LIFO l Jika ingin mengambil 90, maka harus melakukan POP untuk 37 dan 12 terlebih dahulu kemudian POP untuk 90

Pemanfaatan Stack : Perhitungan ekspresi aritmatika (posfix) l algoritma back traking (runut balik) l

Pemanfaatan Stack : Perhitungan ekspresi aritmatika (posfix) l algoritma back traking (runut balik) l algoritma rekursif l

Algoritma l l Input/tambah data Jika ada input maka no stack/no tumpukan yang semula

Algoritma l l 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 l CREATE l Membuat stack baru yang masih kosong. Procedure create;

Operasi pada STACK l CREATE l Membuat stack baru yang masih kosong. Procedure create; Begin Stack. top: =0; End; l FULL Untuk memeriksa apakah stack sudah penuh atau belum. Fuction full: bolean; Begin Stack. top: =max; End;

l PUSH Menambah sebuah elemen ( data ) kedalam stack (Syarat: tidak bisa dilakukan

l PUSH Menambah sebuah elemen ( data ) kedalam stack (Syarat: tidak bisa dilakukan jika stack sudah penuh) Stack. data: =input; End; Procedure push ( input: string ); Begin If not full then Begin Stack. top: =stack. top;

l POP Mengambil elemen teratas dari stack. Syarat: Stack tidak boleh kosong. Procedure Pop

l 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;

Awal Program l Memastikan posisi tumpukan kosong l Element yang terambil belum ada Inputan

Awal Program l Memastikan posisi tumpukan kosong l Element yang terambil belum ada Inputan l Dipastikan tumpukan belum penuh l Menginput satu persatu Pengambilan l Dipastikan tumpukan tidak kosong l Pengambilan satu persatu atau lebih dari satu (optional)

PENGGUNAAN/APLIKASI STACK l l Logika stack digunakan untuk menyelesaikan berbagai macam masalah. Antara lain

PENGGUNAAN/APLIKASI STACK l l Logika stack digunakan untuk menyelesaikan berbagai macam masalah. Antara lain digunakan pada compiler, operating system dan dalam program 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

MATCHING PARENTHESES Proses ini dilakukan compiler untuk memeriksa kelengkapan tanda kurung yang terdapat pada suatu ekspresi aritmetik l Sedangkan stack di sini digunakan sebagai tempat prosesnya l

NOTASI POSTFIX mengubah suatu ekspresi aritmatik (string) ke dalam notasi postfix l Notasi postfix

NOTASI POSTFIX mengubah suatu ekspresi aritmatik (string) ke dalam notasi postfix l Notasi postfix ini digunakan oleh compiler untuk menyatakan suatu ekspresi aritmatik dalam bahasa tingkat tinggi (high level language) l Stack digunakan oleh compiler untuk mentransformasikan ekspresi aritmatik menjadi suatu ekspresi dalam bentuk/notasi postfix l

l Contoh : diberikan ekspresi aritmatik : A + B Maka bentuknya dalam notasi

l 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 l l Rekursi mempunyai arti suatu proses yang bias memanggil dirinya sendiri.

PROSES REKURSIF l l 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