Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Stack (Tumpukan)
2
Definisi Kumpulan data yang seolaholah diletakkan di atas data yang lain. Operasi penambahan (penyisipan) dan pengambilan (penghapusan) prinsip pengolahannya adalah last-in first-out (LIFO).
3
Ilustrasi Tumpukan
4
OPERASI PADA TUMPUKAN Ada 2 operasi dasar tumpukan
Menyisipkan data (push) Menghapus data (pop)
5
Operasi Push Perintah push digunakan untuk memasukkan data ke dalam tumpukan.
6
Operasi Pop Operasi pop adalah operasi untuk menghapus elemen
Terletak pada posisi paling atas dari sebuah tumpukan
7
OPERASI PADA STACK – Cont.
1. buat stack (stack) - create membuat sebuah stack baru yang masih kosong spesifikasi: tujuan : mendefinisikan stack yang kosong input : stack syarat awal : tidak ada output stack : - (kosong) syarat akhir : stack dalam keadaan kosong
8
OPERASI PADA STACK – Cont.
2. stack kosong (stack) - empty fungsi untuk menentukan apakah stack dalam keadaan kosong atau tidak spesifikasi: tujuan : mengecek apakah stack dalam keadaan kosong input : stack syarat awal : tidak ada output : boolean syarat akhir : stack kosong bernilai true jika stack dalam keadaan kosong
9
OPERASI PADA STACK – Cont.
3. stack penuh (stack) - full fungsi untuk memeriksa apakah stack yang ada sudah penuh spesifikasi: tujuan : mengecek apakah stack dalam keadaan penuh input : stack syarat awal : tidak ada output : boolean syarat akhir : stack penuh bernilai true jika stack dalam keadaan penuh
10
OPERASI PADA STACK – Cont.
4. push (stack, info baru) menambahkan sebuah elemen kedalam stack. spesifikasi: tujuan : menambahkan elemen, info baru pada stack pada posisi paling atas input : stack dan Info baru syarat awal : stack tidak penuh output : stack syarat akhir : stack bertambah satu elemen
11
OPERASI PADA STACK – Cont.
5. pop (stack, info pop) mengambil elemen teratas dari stack spesifikasi: tujuan : mengeluarkan elemen dari stack yang berada pada posisi paling atas input : stack syarat awal : stack tidak kosong output : stack dalam info pop syarat akhir : stack berkurang satu elemen
12
CONTOH PEMANFAATAN STACK
Notasi Infix Prefix Notasi Infix Postfix Pemanfaatan stack antara lain untuk menulis ungkapan dengan menggunakan notasi tertentu. Contoh : ( A + B ) * ( C – D ) Tanda kurung selalu digunakan dalam penulisan ungkapan numeris untuk mengelompokkan bagian mana yang akan dikerjakan terlebih dahulu. Dari contoh ( A + B ) akan dikerjakan terlebih dahulu, kemudian baru ( C – D ) dan terakhir hasilnya akan dikalikan. A + B * C – D B * C akan dikerjakan terlebih dahulu, hasil yang didapat akan berbeda dengan hasil notasi dengan tanda kurung.
13
Notasi Prefix Cara penulisan ungkapan numeris.
“ Notasi Polish “ atau “ Notasi Prefix” artinya : Operator ditulis sebelum kedua operand yang akan disajikan.
14
Algoritma Infix Ke Prefix :
Langkah 0: Baca ungkapan dalam notasi infix, misalnya S; Tentukan panjang ungkapan tersebut, misalnya N; Siapkan sebuah tumpukan kosong dan siapkan derajat masing – masing operator. Misalnya : * dan / berderajat 2, + dan – berderajat 1 dan ( berderajat 0 ).
15
Langkah 1: Dimulai dari I : N sampai 1, kerjakan langkah – langkah berikut : R = S ( I ) Test nilai R . Jika R adalah : Operand : Langsung ditulis Kurung buka : Pop dan tulis semua isi tumpukan sampai ujung tumpukan = ‘)‘, pop juga tanda ini tetapi tidak perlu ditulis .
16
Kurung tutup : Push kedalam tumpukan
Operator : Jika tumpukan kosong, atau derajat R lebih tinggi dibanding derajat ujung tumpukan, push operator kedalam tumpukan. Jika tidak pop ujung tumpukan dan tulis, kemudian ulangi perbandingan R dengan ujung tumpukan, lalu R di push. Langkah 2: Jika akhir notasi infix telah tercapai dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya.
17
Notasi Infix Prefix Contoh : Proses konversi dari infix ke prefix :
= ( A + B ) * ( C – D ) = [ + A B ] * [ - C D ] = * [ + A B ] [ - C D ] = * + A B - C D
18
Contoh notasi prefix dari notasi infix :
Infix Prefix A + B + A B A + B – C A B C ( A + B ) * ( C – D ) * + A B – C D
19
Notasi Postfix Kebalikan notasi prefix
Lebih dikenal dengan Notasi Polish Terbalik ( Reverse Polish Notation atau RPN). Dalam hal ini operator ditulis sesudah operand.
20
Algoritma Infix Ke Postfix :
Langkah 0: Baca ungkapan dalam notasi infix, misalnya S; Tentukan panjang ungkapan tersebut, misalnya N; Siapkan sebuah tumpukan kosong dan siapkan derajat masing – masing operator. Misalnya : * dan / berderajat 2, + dan – berderajat 1 dan ( berderajat 0 ).
21
Langkah 1: Dimulai dari I : 1 sampai N, kerjakan langkah –langkah berikut : R = S ( I )
22
Test nilai R . Jika R adalah :
Operand : Langsung ditulis Kurung buka : Push kedalam tumpukan Kurung tutup : Pop dan tulis semua isi tumpukan sampai ‘(‘, pop juga tanda ini tetapi tidak perlu ditulis Operator : Jika tumpukan kosong, atau derajat R lebih tinggi dibanding derajat ujung tumpukan, push operator kedalam tumpukan. Jika tidak pop ujung tumpukan dan tulis, kemudian ulangi perbandingan R dengan ujung tumpukan, lalu R di push. Langkah 2: Jika akhir notasi infix telah tercapai dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya.
23
Notasi Infix Postfix Contoh : Proses konversi dari infix ke postfix :
= ( ) * ( ) = [ ] * [ ] = [ ] [ ] * = *
24
Contoh : Ubah ekspresi A+B. C+(D+E)
Contoh : Ubah ekspresi A+B*C+(D+E)*F ke dalam notasi postfix dengan menggunakan algoritma Dijkstra Masukan Keluaran STACK A+B*C+(D+E)*F +B*C+(D+E)*F B*C+(D+E)*F *C+(D+E)*F C+(D+E)*F +(D+E)*F (D+E)*F D+E)*F +E)*F E)*F )*F *F F kosong A AB ABC ABC*+ ABC*+D ABC*+DE ABC*+DE+ ABC*+DE+F ABC*+DE+F*+ + +* +( +(+
25
Contoh : Penggunaan notasi postfix dalam stack, misal :
* = 80
26
The End
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.