Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta... 1.

Presentasi serupa


Presentasi berjudul: "Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta... 1."— Transcript presentasi:

1 Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta... 1

2 Definisi Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta... 2 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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta... 3

4 OPERASI PADA TUMPUKAN Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta... 4 Ada 2 operasi dasar tumpukan 1. Menyisipkan data (push) 2. Menghapus data (pop)

5 Operasi Push Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta... 5 Perintah push digunakan untuk memasukkan data ke dalam tumpukan.

6 Operasi Pop Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta... 6 Operasi pop adalah operasi untuk menghapus elemen Terletak pada posisi paling atas dari sebuah tumpukan

7 OPERASI PADA STACK – Cont. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta Cara penulisan ungkapan numeris. “ Notasi Polish “ atau “ Notasi Prefix” artinya : Operator ditulis sebelum kedua operand yang akan disajikan.

14 Algoritma Infix Ke Prefix : Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta  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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert _5_sta... 17

18 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta Contoh notasi prefix dari notasi infix : InfixPrefix A + B+ A B A + B – C- + A B C ( A + B ) * ( C – D )* + A B – C D

19 Notasi Postfix Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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 : Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta Langkah 1:  Dimulai dari I : 1 sampai N, kerjakan langkah –langkah berikut :  R = S ( I )

22 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta 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 : = ( ) * ( ) = [ ] * [ ] = [ ] [ ] * = * Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert _5_sta... 23

24 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta  Contoh : Ubah ekspresi A+B*C+(D+E)*F ke dalam notasi postfix dengan menggunakan algoritma Dijkstra MasukanKeluaranSTACK A+B*C+(D+E)*F +B*C+(D+E)*F +B*C+(D+E)*F B*C+(D+E)*F B*C+(D+E)*F *C+(D+E)*F *C+(D+E)*F C+(D+E)*F C+(D+E)*F +(D+E)*F +(D+E)*F (D+E)*F (D+E)*F D+E)*F D+E)*F +E)*F +E)*F E)*F E)*F )*F )*F *F *F F kosong kosongkosongAAABABCABC*+ABC*+ABC*+DABC*+DABC*+DEABC*+DE+ABC*+DE+ABC*+DE+FABC*+DE+F*+kosongkosong+++*+*++(+(+(++(+++*kosong

25 Contoh : Penggunaan notasi postfix dalam stack, misal : * = 80 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert _5_sta... 25


Download ppt "Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta... 1."

Presentasi serupa


Iklan oleh Google