• Tidak ada hasil yang ditemukan

STACK - UNIKOM Kuliah Online

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "STACK - UNIKOM Kuliah Online"

Copied!
16
0
0

Teks penuh

(1)

LOGO

STRUKTUR DATA

IMPLEMENTASI STACK

(2)

Notasi Numerik

LOGO

1. Infix 2. Prefix 3. Postfix

operator diantara dua operand

operator sebelum kedua operand

operator setelah kedua operand

(3)

Polish Notation

LOGO

 Disebut juga Notasi Prefix (Jan Lukasiewicz)

 Contoh:

Infix Prefix A+B

A+B–C

(A+B)*(C-D)

+AB

-+ABC

*+AB-CD

(4)

Notasi Postfix (Suffix)

LOGO

 Disebut juga Notasi Polish Terbalik (Reverse Polish

Notation/RPN)

 Contoh:

Infix Postfix A+B

A+B–C

(A+B)*(C-D)

AB+

AB+C-

AB+CD-*

(5)

Infix Menjadi Postfix

LOGO

Dimisalkan Q adalah ekspresi matematika yang ditulis dalam notasi infix dan P adalah penampung ekspresi matematika dalam notasi postfix, maka algoritmanya adalah :

a.Push tanda “(“ ke dalam stack dan tambahkan tanda “)” di sentinel di Q.

b.Pindai Q dari kiri ke kanan, kemudian ulangi langkah c s/d f untuk setiap elemen Q sampai stack kosong.

c.Jika yang dipindai adalah operand, maka tambahkan ke P d.Jika yang dipindai adalah “(“ maka push ke stack

e.Jika yang dipindai adalah “)” maka pop isi stack sampai

ditemukan tanda “(“, kemudian tambahkan ke P sedangkan tanda “(“ tidak disertakan ke P.

f.Jika yang dipindai adalah operator, maka :

Selama elemen paling atas dari stack adalah operator yang mempunyai tingkatan sama atau lebih tinggi dari operator yang dipindai, maka pop operator tersebut dan

tambahkan ke P.

Push operator tersebut ke stack.

(6)

Contoh 1

LOGO

E = A + B Q :

P :

No Simbol Stack Ekspresi P

A + B )

( 1. A

2. + 3. B 4. )

( ( (

A +

+

A A A

B

B +

AB+

(7)

Contoh 2

LOGO

E = A + (B – C) / D Q :

P :

No Simbol Stack Ekspresi P A + (B – C) / D )

1. A 2. + 3. ( 4. B

(

5. - 6. C 7. ) 8. / 9. D 10. )

A (

(+ A

(+( A

AB (+(

(+(- AB

(+(- ABC

(+ ABC-

(+/ ABC-

ABC-D (+/

ABC-D/+

ABC-D/+

(8)

Contoh 3

LOGO

A + ( B * C - ( D / E ^ F ) * G ) * H

Q : A + ( B * C - ( D / E ^ F ) * G ) * H

Di Q ada 20 simbol/elemen

Q : A + ( B * C - ( D / E ^ F ) * G ) * H )

1 2 3 4 5 6 7 8 9 1 0 1

1 1 2 1

3 1 4 1

5 1 6 1

7 1 8 1

9 2 0

)

(9)

Contoh 3 (lanjutan)

LOGO

No. Simbol Stack Ekspresi P (

1 A ( A

2 + (+ A

3 ( (+( A

4 B (+( AB

5 * (+(* AB

6 C (+(* ABC

7 - (+(- ABC*

8 ( (+(-( ABC*

9 D (+(-( ABC*D

10 / (+(-(/ ABC*D

(10)

Contoh 3 (lanjutan)

LOGO

No. Simbol Stack Ekspresi P

11 E (+(-(/ ABC*DE

12 ^ (+(-(/^ ABC*DE

13 F (+(-(/^ ABC*DEF

14 ) (+(- ABC*DEF^/

15 * (+(-* ABC*DEF^/

16 G (+(-* ABC*DEF^/G

17 ) (+ ABC*DEF^/G*-

18 * (+* ABC*DEF^/G*-

19 H (+* ABC*DEF^/G*-H

20 ) ABC*DEF^/G*-H*+

(11)

Cara Manual Infix Postfix

LOGO

Contoh:

a. Q = A + B – C

b. Q = A + (B – C) / D

Menggunakan tanda “[ ]” dengan format : [operand1 operand2 operator], dgn

memperhatikan tingkatan operator

= [AB+] – C P = AB+C-

= A + [BC-] / D

= A + [BC-D/]

P = ABC-D/+

(12)

Latihan Infix Postfix

LOGO

a. E = A + BD – F K G

H

b. E = A + BD

H

– F G - K

Lakukan dengan menggunakan Algoritma

dan cara Manual

(13)

Menghitung Pada Notasi Postfix

LOGO

a. Tambahkan tanda “)” pada sentinel di P

b. Pindai P dari kiri ke kanan, ulangi langkah c

dan d untuk setiap elemen P sampai ditemukan sentinel.

c. Jika yang dipindai adalah operand, maka push ke stack.

d. Jika yang dipindai adalah operator (sebut opr1), maka

Pop dari stack, simpan dalam variabel Var1.

Pop lagi dari stack, simpan dalam variabel Var2.

Hitung dengan format var2 opr1 var1, simpan hasilnya di variabel Hitung.

Push isi variabel Hitung ke dalam stack.

e. Jika yang dipindai tanda “)”, maka Pop isi stack

dan simpan di variabel Value.

(14)

Contoh

LOGO P :

P : 2,6,3,-,1,/,+

No Simbol Stack Keterangan

1. 2 2. 6 3. 3 4. -

5. 1 6. / 7. +

2 2,6 2,6,3

Var1=3,Var2=6,Hitung= Var2 Opr1 Var1 = 6 - 3 = 3

2,3

2,3,1 2,3 5

ABC-D/+ Mis. A=2,B=6,C=3,D=1 ,)

Var1=1,Var2=3,Hitung= Var2 Opr1 Var1 = 3 / 1 = 3

Var1=3,Var2=2,Hitung= Var2 Opr1 Var1 = 2 + 3

Value = 5

(15)

Cara Manual Menghitung

LOGO

Contoh:

P : 2,6,3,-,1,/,+

Menggunakan tanda “[ ]” dgn cara cari operator

pertama dari kiri, lalu hitung dengan dua operand di sebelah kirinya, dengan format :

[operand1 operator operand2]

: 2,[6-3],1,/,+

: 2,3,1,/,+

: 2,[3/1],+

: 2,3,+

: [2+3]

: 5

(16)

LOGO

Click to edit company slogan .

STRUKTUR DATA (STACK)

Terima Kasih!

Referensi

Dokumen terkait

HASIL Batu apung Gorontalo dan kabupaten Buol yang sudah halus kemudian dimodifikasi dengan perendaman larutan asam 1 x 24 jam, tujuan modifikasi tersebut selain untuk menghilangkan

Determinants of Financial Distress in Property and Real Estate Companies Inggriyani Wilda Utami*, Titis Puspitanigrum Dewi Kartika STIE Perbanas Surabaya, Wonorejo Utara Street 16,