Stack Tumpukan Definisi Kumpulan data yang seolah diletakkan
- Slides: 26
Stack (Tumpukan)
Definisi • • • Kumpulan data yang seolah diletakkan di atas data yang lain. Operasi penambahan (penyisipan) dan pengambilan (penghapusan) prinsip pengolahannya adalah last-in firstout (LIFO).
Ilustrasi Tumpukan
OPERASI PADA TUMPUKAN • Ada 2 operasi dasar tumpukan 1. Menyisipkan data (push) 2. Menghapus data (pop)
Operasi Push • Perintah push digunakan untuk memasukkan data ke dalam tumpukan.
Operasi Pop • Operasi pop adalah operasi untuk menghapus elemen • Terletak pada posisi paling atas dari sebuah tumpukan
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
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
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
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
OPERASI PADA STACK – Cont. 5. pop (stack, info pop) • mengambil elemen teratas dari stack • spesifikasi: – tujuan : mengeluarkan elemen dari stack yang berada posisi paling atas – input : stack – syarat awal : stack tidak kosong – output : stack dalam info pop – syarat akhir : stack berkurang satu elemen
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.
Notasi Prefix • Cara penulisan ungkapan numeris. • “ Notasi Polish “ atau “ Notasi Prefix” • artinya : Operator ditulis sebelum kedua operand yang akan disajikan.
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 ).
• 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.
– 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.
Notasi Infix Prefix Contoh : Proses konversi dari infix ke prefix : =(A+B)*(C–D) =[+AB]*[-CD] =*[+AB][-CD] =*+AB-CD
• Contoh notasi prefix dari notasi infix : • Infix Prefix • A+B +AB • A+B–C -+ABC • (A+B)*(C–D) *+AB–CD
Notasi Postfix • Kebalikan notasi prefix • Lebih dikenal dengan Notasi Polish Terbalik ( Reverse Polish Notation atau RPN). • Dalam hal ini operator ditulis sesudah operand.
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 ).
• Langkah 1: – Dimulai dari I : 1 sampai N, kerjakan langkah – langkah berikut : –R=S(I)
• 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.
Notasi Infix Postfix Contoh : Proses konversi dari infix ke postfix : =(6 -2)*(5+4) =[62 -]*[54+] =[62 -][54+]* =62 -54+*
q Contoh : Ubah ekspresi A+B*C+(D+E)*F ke dalam notasi postfix dengan menggunakan algoritma Dijkstra Masukan A+B*C+(D+E)*F C+(D+E)*F +E)*F )*F *F F kosong Keluaran kosong A A AB ABC*+D ABC*+DE+ ABC*+DE+F*+ STACK kosong + + +* +* + +( +( +(+ + +* kosong
Contoh : Penggunaan notasi postfix dalam stack, misal : 2 14 + 5 * = 80
The End
- Perintah isempty create stack hasilnya adalah
- Informasi yang diperoleh dari suatu pengamatan
- Tumpukan batu bata disusun sesuai dengan deret aritmatika
- Pengertian tumpukan
- Kumpulan data yang digunakan bersama yang saling terhubung
- Stack smash attack
- Stack and stack pointer
- Definisi kumpulan
- Sebuah benda yang tingginya 20 cm diletakkan 10 cm
- Tempat pergantian tongkat dalam lari estafet dinamakan
- Bidang datar yang diletakkan miring atau membentuk
- Kaidah utama dalam konsep stack adalah
- Nilai tengah dari kumpulan data yang telah diurutkan adalah
- Manajemen data kesehatan adalah
- Pemberian cap dinas pada surat diletakkan di sebelah ... *
- Dua muatan titik diletakkan pada sumbu x
- Kalimat dengan tanda titik
- Pada percobaan young
- Magnet berasal dari kata magnesia
- Susun hierarki data
- Kumpulan node yang saling terhubung disebut
- Kumpulan peraturan yang terdiri dari norma dan sanksi
- Gambar
- Wahyu allah yang diturunkan
- Format nama
- Contoh himpunan huruf
- Kumpulan benda yang merupakan himpunan