STACK ( TUMPUKAN ) Fajrizal.

Slides:



Advertisements
Presentasi serupa
STRUKTUR DATA Struktur Data - Gerlan A. Manu, ST.,MKom 1.
Advertisements

BAB V TUMPUKAN (STACK) Tertia Avini, S. Kom tertiaavini. wordpress
bentuknya, yang dapat berubah pada saat runtime.
STRUKTUR DATA array stack dan queue
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
Rahmat Deddy Rianto Dako, ST, M.Eng
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.
Struktur Data (Data Structure) – IS 2313
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
Struktur Data Stack.
Stack (Tumpukan).
STACK.
Algorithm and Data Structures.
Linear Data Structures (Stack)
stack ==tumpukan== Tenia wahyuningrum st3 telkom purwokerto
STRUKTUR DATA (4) array stack dan queue
ANTRIAN ( QUEUE ) Fajrizal.
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.
NAMA : siti hajar NIM : UNIT : b NO.hp : 0852 –
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
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
STRUKTUR DATA STACK.
STRUKTUR DATA STACK.
Stack Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman Bersifat LIFO (Last In First Out) Benda yang terakhir masuk ke dalam.
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak.
STACK Denny Agustiawan,M.pd
STRUKTUR DATA : STACK Sri marini.st.
STRUKTUR DATA IMPLEMENTASI STACK.
Stack (Tumpukan) Sumber Kepustakaan : putuputraastawa.files.wordpress.com/.../pert_5_sta...
TEAM 1 Cut Hayatul Wardani ( ) Saputri Phonna ( ) Azhary (140502)
SEMANTIKS Pertemuan Ke-3.
Rahmat Deddy Rianto Dako, ST, M.Eng
STRUKTUR DATA STACK.
Tumpukan Dengan Array Ika Menarianti.
STRUKTUR DATA STACK.
STACK Rohimah, S.Kom..
STRUKTUR DATA IMPLEMENTASI STACK.
STRUKTUR DATA STACK.
STRUKTUR DATA TUMPukAN (STACK).
STRUKTUR DATA IMPLEMENTASI STACK.
Stack.
STACK & QUEUE Struktur Data.
STACK HARJANTO SUTEDJO.
STACK Kuliah Struktur Data Pascal
STRUKTUR DATA IMPLEMENTASI STACK.
STACK (TUMPUKAN) Stack atau tumpukan didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan dan pengambilan elemen melalui.
STRUKTUR DATA PERTEMUAN 4
STRUKTUR DATA STACK.
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.
Transcript presentasi:

STACK ( TUMPUKAN ) Fajrizal

Stack ( Tumpukan ) dapat diartikan sbg : Suatu kumpulan data yang seolah-olah ada data yg diletakkan diatas data yg lain, yg bisa menyisipkan ( menambah ) data serta mengambil ( menghapus data ). Cara penggambaran stack : Operasi yg dpt dilakukan dalam stack : 1. Menyisipkan / menambahkan data pd ujung atas stack  push 2. Menghapus / mengeluarkan data dr ujung atas stack  pop Prinsip kerja stack adalah LIFO ( Last In First Out ) D Top C B A Bottom

Example : B A A A D C C B B A A Pop ( S ) Kondisi awal Stack 4 1 2 5 Push ( S, A ) A D Push ( S, D ) C Push ( S, C ) C Push ( S, C ) 3 6 B B Push ( S, B ) Push ( S, B ) A A

Latihan : Gambarkan keadaan stack utk operasi berikut ( diasumsikan keadaan awal stack kosong ), stack dapat menampung max 4 elemen berupa data NIM. a. Tambahkan 2 no NIM ke dalam stack yaitu ( 0631521001 & 0631521002 ) b. keluarkan 1 elemen dari stack c. Tambahkan 3 elemen berikutnya ke dalam stack dg data (0631521003 & 0631521004 & 0631521005 )

Penyajian awal Stack : Dalam Pascal dikenal type data terstruktur yg disebut ARRAY (LARIK). Dapat digunakan u menyajikan sebuah tumpukan. Tapi penyajian dg mengg. ARRAY adalah kurang tepat karena banyaknya elemen dalam array adalah statis. Sedangkan dalam tumpukan, banyaknya elemen dapat bervariasi ( dinamis ). Meskipun demikian, ARRAY dapat digunakan u menyajikan sebuah tumpukan dg anggapan bahwa banyaknya elemen max dari tumpukan tsb tidak akan melebihi batas max banyaknya elemen dalam array. Pada saat ukuran tumpukan = ukuran array, jika ditambahkan data baru akan menyebabkan “OVERFLOW”. Dengan demikian perlu adanya data tambahan u mencatat posisi ujung atas tumpukan.

Dengan kebutuhan ini, penyajian tumpukan dapat dilakukan dengan menggunakan type data terstruktur yang lain yaitu RECORD ( Rekaman ) yg terdiri dari 2 field : - Field 1  Digunakan u menyimpan elemen tumpukan yg bertype array - Field 2  Digunakan u mencatat posisi atas ujung tumpukan. Deklarasi STACK secara umum : const MaxElemen =255; type Tumpukan = record Isi : array[1..MaxElemen] of string; atas : 0..MaxElemen end; var T : Tumpukan;

Operasi PUSH : procedure PUSH ( var T : Tumpukan; X : string ); begin T.Atas :=T.Atas + 1; T.Isi[T.Atas] := X end; if T.Atas = MaxElemen then writeln ( ‘ TUMPUKAN SUDAH PENUH ‘ ) else end 1 2

procedure POP ( var T : Tumpukan); begin T.Atas :=T.Atas - 1 end; Operasi POP : procedure POP ( var T : Tumpukan); begin T.Atas :=T.Atas - 1 end; if T.Atas = 0 then writeln ( ‘ TUMPUKAN SUDAH KOSONG ‘ ) else end 1 2

PENULISAN UNGKAPAN NUMERIS DALAM STACK Salah satu aplikasi STACK adalah untuk menulis ungkapan dengan menggunakan notasi tertentu. Cara penulisan ungkapan dapat dilakukan dengan menggunakan : 1. Notasi INFIX Operator diletakkan diantara 2 operand ex : A+B  dimana A,B sbg operand dan + sbg operator 2. Notasi PREFIX ( POLISH ) Operator diletakkan sebelum 2 operand disajikan ex : +AB 3. Notasi POSTFIX ( SUFFIX ) operator diletakkan setelah 2 operand disajikan ex : AB+

Contoh : ( dalam notasi infix ) DG METODE SUBSTITUSI Dalam penulisan ungkapan, khususnya ungkapan numeris seringkali digunakan tanda kurung u mengelompokkan bagian mana yg harus dikerjakan lebih dahulu. Dalam ungkapan2 yg rumit, pemakaian tanda kurung ini tidak bisa dihindari. “ Semakin rumit ungkapan maka semakin banyak dibutuhkan tanda kurung “. Hal ini membawa suatu konsekwensi bahwa penulisan tanda kurung itupun harus benar2 terhindar dari kesalahan. Contoh : ( dalam notasi infix ) DG METODE SUBSTITUSI 1. A + B x C Notasi Prefix Notasi Postfix xBC  1 BCx  1 +A1  2 A1+  2 Latihan : 2. (A + B) x (C –(D ^ E)) 3. (A x B) – ( C + D ) / ( E x ( F – G ) ) 1 2

Algorithma Konversi dari Infix ke Postfix Langkah 0 ( Awal ) - Baca ungkapan dalam notasi infix, misalnya = S - Tentukan panjang ungkapan tersebut, misalnya N karakter - Siapkan sebuah tumpukan kosong & siapkan derajad masing2 operator, misalnya : ^ pangkat = bernilai 3 x , / = bernilai 2 + , - = bernilai 1 ) , ( = bernilai 0 Langkah 1 Dimulai dari I=1 sampai N, kerjakan langkah2 berikut a. R = S [ I ] b. Test nilai R, jika R adalah : operand : langsung ditulis kurung buka : push ke dalam tumpukan kurung tutup : pop dan tulis semua isi tumpukan sampai ujung tumpukan = ‘(‘. Pop juga tanda ‘(‘ ini, tapi tidak usah ditulis.

operator : jika tumpukan kosong, atau derajad R operator : jika tumpukan kosong, atau derajad R lebih tinggi dibanding derajad ujung tumpukan, push operator ke dalam tumpukan. Jika tidak, pop ujung tumpukan da tulis, kemudian ulangi pembandingan R ujung tumpukan. Kemudian R di push. Langkah 2 Jika akhir notasi infix telah tercapai, dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya.

1. ( A + B ) x ( C – D )  N = 11 karakter Proses ke Karakter dibaca ( R ) Isi Stack Karakter tercatat Notasi Postfix terbentuk 1 2 3 4 5 6 7 8 9 10 11 ( A + B ) * C - D +( Kosong (* -(* AB AB+ AB+C AB+CD AB+CD- AB+CD-*

( K ^ ( L + M )) + ( N – O )  N = 15 karakter Proses ke Karakter dibaca Isi Stack Karakter tercatat Notasi Postfix terbentuk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ( K ^ L + M ) N - O ^( ( ^ ( + ( ^ ( ( ( Kosong ( + kosong KL KLM KLM + KLM +^ KLM +^ N KLM +^ NO KLM +^ NO- KLM +^ NO- +

2. (A + B) * (C – D) ^ E  N = 13 karakter Proses ke Karakter dibaca ( R ) Isi Stack Karakter tercatat Notasi Postfix terbentuk 1 2 3 4 5 6 7 8 9 10 11 12 13 ( A + B ) * C - D ^ E +( Kosong (* -(* AB AB+ AB+C AB+CD AB+CD- AB+CD-* AB+CD-*E AB+CD-*E^

Cara Substitusi : Infix Postfix ( A x B ) x ( C – D ) 1. A*B 1. AB* 2. C-D 2. CD- 3. 1*2 3. 12* 4. AB*CD-* LATIHAN : A + B * C – D ^ E (A * B) – ( C + D ) / ( E * ( F – G )) 1 2 3

Algorithma Konversi dari Infix ke Prefix Langkah 0 ( Awal ) - Baca ungkapan dalam notasi infix, misalnya = S - Tentukan panjang ungkapan tersebut, misalnya N karakter - Siapkan sebuah tumpukan kosong & siapkan derajad masing2 operator, misalnya : $ pangkat = bernilai 3 x , / = bernilai 2 + , - = bernilai 1 ) , ( = bernilai 0 Langkah 1 Dimulai dari I=N sampai 1, kerjakan langkah2 berikut a. R = S [ I ] b. Test nilai R, jika R adalah : operand : langsung ditulis & simpan ke var T kurung tutup : push ke dalam tumpukan kurung buka : pop dan tulis semua isi tumpukan sampai ujung tumpukan = ‘)‘. Pop juga tanda ‘)‘ ini, tapi tidak usah ditulis.

operator : jika tumpukan kosong, atau derajad R operator : jika tumpukan kosong, atau derajad R lebih tinggi atau sama dibanding derajad ujung tumpukan, push operator ke dalam tumpukan. Jika tidak, pop ujung tumpukan dan tulis disimpan ke var T, kemudian ulangi pembandingan R ujung tumpukan. Kemudian R di push. Langkah 2 Jika akhir notasi infix telah tercapai, dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya, kemudian simpan ke var T. Langkah 3 Baca data dalam variabel T, dimulai dari N sampai 1 dan tulis ke dalam notasi prefix.

( A + B ) x ( C – D )  N = 11 karakter Proses ke Karakter dibaca ( R ) Isi Stack Karakter tercatat Isi Variabel T ( Notasi Postfix ) Notasi Prefix terbentuk 1 2 3 4 5 6 7 8 9 10 11 12 13 ) D - C ( * B + A -) Kosong )* +)* DC DC- DC-B DC-BA DC-BA+ DC-BA+* *+AB-CD

SELESAIKAN : (A + B) * (C – D) ^ E A * B – ( C + D ) / ( E * ( F – G ) )

Proses ke Karakter dibaca ( R ) Isi Stack Karakter tercatat Notasi Postfix terbentuk 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ( P - Q ) + R X S ^ T / (( U V W ( ( KOSONG ( X ^ ( X * ( ( / / ( ( / PQ PQ- PQ-R PQ-R+ PQ-R+S PQ-R+ST PQ-R+ST^ PQ-R+ST^* PQ-R+ST^*U PQ-R+ST^*UV PQ-R+ST^*UV/ PQ-R+ST^*UV// PQ-R+ST^*UV//W PQ-R+ST^*UV//W+