Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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). Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Ilustrasi Tumpukan Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
OPERASI PADA TUMPUKAN Ada 2 operasi dasar tumpukan Menyisipkan data (push) Menghapus data (pop) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Operasi Push Perintah push digunakan untuk memasukkan data ke dalam tumpukan. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Operasi Pop Operasi pop adalah operasi untuk menghapus elemen Terletak pada posisi paling atas dari sebuah tumpukan Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Notasi Prefix Cara penulisan ungkapan numeris. “ Notasi Polish “ atau “ Notasi Prefix” artinya : Operator ditulis sebelum kedua operand yang akan disajikan. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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 ). 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 . 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. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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...
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 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Notasi Postfix Kebalikan notasi prefix Lebih dikenal dengan Notasi Polish Terbalik ( Reverse Polish Notation atau RPN). Dalam hal ini operator ditulis sesudah operand. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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 ). Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Langkah 1: Dimulai dari I : 1 sampai N, kerjakan langkah –langkah berikut : R = S ( I ) 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. Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Notasi Infix Postfix Contoh : Proses konversi dari infix ke postfix : = ( 6 - 2 ) * ( 5 + 4 ) = [ 6 2 - ] * [ 5 4 + ] = [ 6 2 - ] [ 5 4 + ] * = 6 2 - 5 4 + * Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
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*+ + +* +( +(+ Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
Contoh : Penggunaan notasi postfix dalam stack, misal : 2 14 + 5 * = 80 Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...