Stack (Tumpukan).

Slides:



Advertisements
Presentasi serupa
Queue (Antrian).
Advertisements

STRUKTUR DATA array stack dan queue
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Rahmat Deddy Rianto Dako, ST, M.Eng
BAB 6 APLIKASI STACK Tujuan Instruksional Umum:
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
STRUKTUR DATA PERTEMUAN 5
STACK (TUMPUKAN).
Struktur Organisasi Data 2
Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
STACK (Tumpukan).
STACK.
STACK.
Struktur Data (Data Structure) – IS 2313
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
PERTEMUAN KE-5 Kamis, 7 Oktober Pemetaan Trianguler Array ABCDE FGHI JKL MN O A B C D E F G H I J K L M N O T(1,1)  S(1)T(2,1)  S(N+1) T(1,2)
PERTEMUAN KE-6 Senin, 11 Oktober Mengubah Infix  Postfix Ekspresi dibaca per karakter dari kiri ke kanan. Algoritma: 1)Jika dibaca tanda “(“ maka.
Struktur Data Stack.
STACK.
Reverse Polish Notation (RPN)
Algorithm and Data Structures.
Linear Data Structures (Stack)
PRAKTIKUM STRUKTUR DATA STACK SULIDAR FITRI, M.Sc MARCH, 2014.
STRUKTUR DATA (4) array stack dan queue
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
BAB 3 STACK (TUMPUKAN).
STACK.
Stack Pertemuan 11.
Stack.
Stack Stack adalah salah satu bentuk list dimana penghapusan dan pemasukan elemen hanya dapat dilakukan pada satu posisi yaitu di posisi akhir list. Posisi.
Chapt 04 : Stack Oleh : Yuli Praptomo PHS, S.Kom
Stack.
STACK ( TUMPUKAN ) Fajrizal.
Sapta Candra Miarsa,S.T.,M.T.
STRUKTUR DATA IMPLEMENTASI STACK.
STRUKTUR DATA IMPLEMENTASI STACK.
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Tumpukan dalam struktur data
STACK Anifuddin Azis.
Defri Kurniawan ADT STACK Defri Kurniawan
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
STACK Denny Agustiawan,M.pd
STACK 6.3 & 7.3 NESTED LOOP.
STRUKTUR DATA : STACK Sri marini.st.
STRUKTUR DATA IMPLEMENTASI STACK.
Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
SEMANTIKS Pertemuan Ke-3.
Rahmat Deddy Rianto Dako, ST, M.Eng
SEMANTIKS 2.
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
STACK Rohimah, S.Kom..
STACK Yohana Nugraheni.
STRUKTUR DATA IMPLEMENTASI STACK.
STRUKTUR DATA IMPLEMENTASI STACK.
Stack.
STACK HARJANTO SUTEDJO.
STACK Kuliah Struktur Data Pascal
QUEUE (Antrian) #Kulia 6 Algoritma dan Struktur Data.
STRUKTUR DATA IMPLEMENTASI STACK.
STRUKTUR DATA PERTEMUAN 4
STRUKTUR DATA IMPLEMENTASI STACK.
STACK Rohimah, S.Kom..
STACK.
STRUKTUR DATA (3) STACK.
Contoh Implementasi Stack 1
BAB 3 STACK (TUMPUKAN).
STACK (Tumpukan) Tumpukan Koin.
Defri Kurniawan ADT STACK Defri Kurniawan
Transcript presentasi:

Stack (Tumpukan)

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).

Ilustrasi Tumpukan

OPERASI PADA TUMPUKAN Ada 2 operasi dasar tumpukan Menyisipkan data (push) 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 pada 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 ) = [ + A B ] * [ - C D ] = * [ + A B ] [ - C D ] = * + A B - C D

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

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 ) = [ 6 2 - ] * [ 5 4 + ] = [ 6 2 - ] [ 5 4 + ] * = 6 2 - 5 4 + *

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*+ + +* +( +(+

Contoh : Penggunaan notasi postfix dalam stack, misal : 2 14 + 5 * = 80

The End