STACK ( TUMPUKAN ) - PowerPoint PPT Presentation

About This Presentation
Title:

STACK ( TUMPUKAN )

Description:

STACK ( TUMPUKAN ) Fajrizal Stack ( Tumpukan ) dapat diartikan sbg : Suatu kumpulan data yang seolah-olah ada data yg diletakkan diatas data yg lain, yg ... – PowerPoint PPT presentation

Number of Views:200
Avg rating:3.0/5.0
Slides: 22
Provided by: Tosh128
Category:
Tags: stack | tumpukan | stack

less

Transcript and Presenter's Notes

Title: STACK ( TUMPUKAN )


1
STACK ( TUMPUKAN )
  • Fajrizal

2
  • 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 )

Top
D
C
B
A
Bottom
3
  • Example

Pop ( S )
Kondisi awal Stack
4
1
B
A
2
5
Pop ( S )
Push ( S, A )
A
A
Push ( S, D )
D
C
Push ( S, C )
C
Push ( S, C )
3
6
B
B
Push ( S, B )
Push ( S, B )
A
A
4
  • 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 )

5
  • 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.

6
  • 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 array1..MaxElemen of string
  • atas 0..MaxElemen
  • end
  • var T Tumpukan

7
  • Operasi PUSH
  • procedure PUSH ( var T Tumpukan X string )
  • begin
  • T.Atas T.Atas 1
  • T.IsiT.Atas X
  • end
  • procedure PUSH ( var T Tumpukan X string )
  • begin
  • if T.Atas MaxElemen then
  • writeln ( TUMPUKAN SUDAH PENUH )
  • else
  • begin
  • T.Atas T.Atas 1
  • T.IsiT.Atas X
  • end
  • end

1
2
8
  • Operasi POP
  • procedure POP ( var T Tumpukan)
  • begin
  • T.Atas T.Atas - 1
  • end
  • procedure POP ( var T Tumpukan)
  • begin
  • if T.Atas 0 then
  • writeln ( TUMPUKAN SUDAH KOSONG )
  • else
  • begin
  • T.Atas T.Atas - 1
  • end
  • end

1
2
9
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 AB ? 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

10
  • 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
11
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 I1 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.

12
  • 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.

13
  • 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 ( -( Kosong A B C D - A AB AB ABC ABCD ABCD- ABCD-
14
  • ( 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 K L M N O - K KL KLM KLM KLM KLM N KLM NO KLM NO- KLM NO-
15
  • 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 ( -( Kosong Kosong A B C D - E A AB AB ABC ABCD ABCD- ABCD- ABCD-E ABCD-E
16
  • Cara Substitusi Infix Postfix
  • ( A x B ) x ( C D ) 1. AB 1. AB
  • 2. C-D 2. CD-
  • 3. 12 3. 12
  • 4. ABCD-
  • LATIHAN
  • A B C D E
  • (A B) ( C D ) / ( E ( F G ))

2
1
3
17
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 IN 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.

18
  • 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.

19
  • ( 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 ) ) Kosong D C - B A D DC DC- DC-B DC-BA DC-BA DC-BA AB-CD
20
  • SELESAIKAN
  • (A B) (C D) E
  • A B ( C D ) / ( E ( F G ) )

21
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 KOSONG X ( X ( X KOSONG / ( ( / / ( ( / ( ( / KOSONG KOSONG P PQ - R S T U V / / W P PQ PQ- PQ-R PQ-R PQ-RS PQ-RST PQ-RST PQ-RST PQ-RSTU PQ-RSTUV PQ-RSTUV/ PQ-RSTUV// PQ-RSTUV//W PQ-RSTUV//W
Write a Comment
User Comments (0)
About PowerShow.com