Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Stack (Tumpukan).

Presentasi serupa


Presentasi berjudul: "Stack (Tumpukan)."— Transcript presentasi:

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


Download ppt "Stack (Tumpukan)."

Presentasi serupa


Iklan oleh Google