stack
Download
Skip this Video
Download Presentation
STACK

Loading in 2 Seconds...

play fullscreen
1 / 37

STACK - PowerPoint PPT Presentation


  • 182 Views
  • Uploaded on

STACK. Materi 4 Latifah Rifani. PENDAHULUAN. Penyimpanan dan pengambilan data yang sangat efektif apabila data yang terakhir masuk adalah data yang akan diambil pertama kali. Tumpukan memungkinkan akses ke satu item data saja , yaitu item terakhir yang disisipkan .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' STACK' - tave


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
stack

STACK

Materi 4

LatifahRifani

pendahuluan
PENDAHULUAN
  • Penyimpanandanpengambilan data yang sangatefektifapabila data yang terakhirmasukadalah data yang akandiambilpertama kali.
  • Tumpukanmemungkinkanakseskesatu item data saja, yaitu item terakhir yang disisipkan.
  • Bilakitamenghilangkan item inimakakitabisamengakseskesebelah item terakhir yang disisipkan, danseterusnya.
sejarah
SEJARAH
  • Tumpukanpertama kali diusulkanpadatahun 1955, dankemudiandipatenkanpadatahun 1957, oleh Friedrich L. Bauer Jerman.
  • Konsepyang samadikembangkansecaraindependen, padasekitarwaktu yang sama, oleh Leonard Charles Australia Hamblin.
pengertian
PENGERTIAN
  • Merupakantumpukan data yang seolah-olahdiletakkan di atas data yang lain.
  • Kita dapatmenambahkan (menyisipkan) data danmengambil (menghapus) data melaluiujung yang sama, yang disebutsebagaiujungatas stack (top of stack).
slide5

Stack bersifat LIFO (Last In First Out).

  • Benda yang terakhir masuk ke dalam stack akan menjadi yang pertamakeluar dari stack.
ilustrasi 1
ILUSTRASI 1

A

B

C

C

Top of stack

B

B

A

A

A

ilustrasi 2
ILUSTRASI 2

D

D

masuk

C

C

keluar

B

B

A

A

misalnya
MISALNYA:

Terdapat stack S=(a1, a2, a3, …, an)

  • Elemenmana yang merupakanelementerbawah.
  • Elemenmana yang merupakanelemen paling atas.
  • Elemenmana yang akandikeluarkan.
  • Elemenmana yang paling akhirdikeluarkan.
karakteristik stack
KARAKTERISTIK STACK
  • Elemen stack yaitu item-item data di elemen stack.
  • Top (elemenpuncakdari stack)
  • Jumlahelemenpada stack.
  • Status / kondisi stack.
kondisi stack
KONDISI STACK

Kondisi stack yang perludiperhatikanadalah:

  • Penuh: bilaelemen stack mencapaikapasitasmaksimum. Padakondisiinitidakmungkindilakukanpenambahanke stack. Penambahanelemenmenyebabkankondisikesalahanoverflow.
slide11

Kosong: bilatidakadaelemen di stack. Padakondisiini, tidakmungkindilakukanpengambilanelemendari stack. Pengambilanelemenmenyebabkankondisikesalahanunderflow.

stack representasi statis
STACK REPRESENTASI STATIS
  • Biasanyadiimplementasikandenganmenggunakan array.
  • Karenaitu, stack denganrepresentasistatisdapatmengalamikondisielemenpenuh.
stack representasi dinamis
STACK REPRESENTASI DINAMIS
  • Biasanyadiimplementasikandenganmenggunakan pointer yang menunjukpadaelemen-elemen yang dialokasikanpadamemori.
  • Elemenditambahkanakanmenggunakanpenambahanelemenpadaawal stack (addfirst).
  • Saatpengambilanataupenghapusanelemenmenggunakanpenghapusan di awal stack (delfirst).
operasi push
OPERASI PUSH
  • Adalahoperasimenambahkanelemenbarupadasebuah stack.
  • Aturanpenambahan stack:
    • Sebagaikondisiawaladasebuah stack yang telahmemilikibeberapaelemendenganelemen paling atassebagai top.
    • Dibuatsebuahelemenbaru yang akandimasukkankedalam stack.
slide16

Elemenbarudimasukkankedalam stack.

  • Penunjuk top pada stack diubahmenunjukkeelemen yang barusajaditambahkan.

Elemenbaru

top

top

operasi pop
OPERASI POP
  • Adalahoperasimengambilsebuahelemendarisebuah stack. Aturanmengambilsebuahelemendarisebuah stack adalahsebagaiberikut:
    • Sebagaikondisiawaladasebuah stack yang telahmemilikibeberapaelemendenganelemen paling atassebagai top.
    • Penunjuk top diubahmenjadimenunjukelemen di bawahelemenatas.
    • Elemenatasdiambildari stack.
ilustrasi
ILUSTRASI

Elemenkeluar

top

top

contoh
CONTOH
  • Ada sekumpulanperintah stack yaitu push(3), push(5), pop, push(2), pop, pop.
  • Makaapabiladijalankanmakahasilnyaadalah:

T

T

5

2

3

3

3

3

3

T

T

T

Top = 0

kosong

Push 3

Push 5

Pop

Push 2

Pop

Pop

Stack kosong

create
CREATE
  • Operator iniberfungsiuntukmembuatsebuah stack kosong.
isempty
ISEMPTY
  • Operator iniberfungsiuntukmenentukanapakahsuatu stack adalah stack kosong. Operasinyaakanbernilaiboolean, dengandefinisisebagaiberikut :

ISEMPTY(S) = true, jika S adalah stack kosong

= false, jika S bukan stack kosong

atau

ISEMPTY(S) = true, jika(S) = NULL

= false, jika(S)= 1

Catatan : ISEMPTY(CREATE(S)) = true.

isfull
ISFULL
  • Operator iniberfungsiuntukmenentukanapakahsuatu stack adalah stack penuh. Operasinyaakanbernilaiboolean, dengandefinisisebagaiberikut :

ISFULL(S) = true, jika S adalah stack penuh

= false, jika S bukan stack penuh

Catatan : ISEMPTY(CREATE(S)) = true.

penggunaan stack
PENGGUNAAN STACK
  • Dalamduniakomputer, penggunaanstack (tumpukan) merupakansuatuhal yang umumdigunakansepertiuntukpenentuanalamat memory, penempatanruang data danaplikasi lain.
  • Aplikasistackjugadigunakanuntukberbagaimacamkeperluansepertipengujiankalimatpalindrome, pengujitandakurung (matching parentheses), danjugaberfungsisebagaikonversidarinotasiinfix menjadinotasipostfix.
slide24

Sebuahkompilatormempunyaitugas, salahsatu di antaranyaadalahmenyelidikiapakahPemrogramtelahdengancermatmengikutiaturantatabahasa, atausintaksdaribahasapemrograman yang bersangkutan.

  • Misalnyauntukparantheseskiri (tandakurungbuka) yang diberikan, harusdipastikanadanyaparantheseskanan (tandakurungtutup) yang bersangkutan.
matching parentheses
MATCHING PARENTHESES
  • Proses inidilakukan compiler untukmemeriksakelengkapantandakurung yang terdapatpadasuatuekspresiaritmetik. Sedangkan stack di sinidigunakansebagaitempatprosesnya.
  • Algoritmayang digunakanadalah :
    • Elemen-elemensuatuekspresiaritmetik (string) di-Scan darikirikekanan.
    • Jikaditemukansimbol "(" atau "Left parenthesis", makasimboltersebut di-push kedalam stack.
slide26

Jikaditemukansimbol ")" atau "Right parenthesis", makaisi stack diperiksa.

      • Jikastack kosongterjadikesalahan.
        • berarti: adasimbol ")", tetapitidakadasimbol "(" yang seharusnyamendahului.
      • Jikastack tidakkosongartinyaadapasangannyadanlangsung di-POP keluarstack.
interpreter postfix
INTERPRETER POSTFIX
  • Contoh lain penggunaan stack adalahpemeriksaandaneksekusiekpresi postfix.
  • Ekspresipostfix merupakanekpresidenganaturan L R B dengan L adalah operand kiri, R operand kanandan B adalahoperatornya.
  • Ekspresiyang kitabiasagunakansehari-hariadalahekspresi infix denganaturan L B R. Contoh, jikaekspresiinfixnya "6*7-2" makaekspresipostfixnyaadalah "6 7 * 2 -".
notasi infix dan postfix
NOTASI INFIX DAN POSTFIX
  • Suatuperhitunganaritmatikabiasanyaberhubungandengan operand dan operator. Operand merupakansuatukarakteratauelemen yang nilainyadioperasikandenganbantuansuatu operator untukmenghasilkansuatusolusi.
slide29

Misalkanjikadiberikansuatuekspresiaritmatika 2 * 3, makaelemen ‘dua’ danelemen ‘tiga’ merupakan operand dariekspresitersebutdanelemen ‘*’ merupakan operator perkalianatasdua operand yang menghasilkansuatusolusi.

slide30

Dalampenggunaannya, dalamkehidupansehari-harinotasiinfixmerupakannotasiaritmatika yang paling banyakdigunakanuntukmengekspresikansuatuperhitunganartimatikdibandingdenganduanotasi yang lain.

  • Akan tetapinotasiPostfixmerupakannotasi yang digunakanolehmesinkompilasipadakomputerdenganmaksuduntukmempermudah proses pengkodean, sehinggamesinkompilasimembutuhkanstackuntuk proses translasiekspresitersebut.
notasi postfix
NOTASI POSTFIX
  • Bentukaplikasi stack yang lain adalahmengubahsuatuekspresiaritmatik (string) kedalamnotasi postfix. Notasi postfix inidigunakanoleh compiler untukmenyatakansuatuekspresiaritmatikdalambahasatingkattinggi (high level language). Stack digunakanoleh compiler untukmentransformasikanekspresiaritmatikmenjadisuatuekspresidalambentuk/notasi postfix.
slide32

Contoh :

  • Misaldiberikanekspresiaritmatik : A + B ;
  • Makabentuknyadalamnotasi postfix menjadi : AB+
slide33

Urutan (prioritas) dari operator adalah :

  • Perpangkatan(^)
  • Perkalian(*) atauPembagian (/)
  • Penjumlahan(+) atauPengurangan (-)
aturan dalam proses transformasi ke postfix
ATURAN DALAM PROSES TRANSFORMASI KE POSTFIX
  • Ekspresiaritmatik yang diberikan di- "Scan" darikirikekanan.
  • Bilasimbol yang di-scan adalah "(", makasimboltersebut di push kedalam stack.
  • Bilasimbol yang di-scan adalah ")", makaseluruhisi stack di pop keluarmulaidarisimbol "(" yang pertamaditemukandalam stack.
  • Bilasimboladalah operator, makadilakukanperbandinganduludengansimbol (operator) yang beradapadaposisi top dalamstack:
    • Jikaderajatnyasetaraataulebihrendahdarisimbol yang beradapadaposisi top, maka top stack di-pop keluarsebagai output dansimbol yang baru di-push kedalam stack.
slide35

Jikaderajatnyalebihtinggidarisimbol yang beradapadaposisi top, makasimbol (operator) yang di-scan tersebut di-push kedalam stack.

  • Bilasimbol yang di-scan adalah operand, makasimboltersebutlangsungsebagai output.
  • Bilasimboladalah ";" makaseluruhisi stack di-pop sebagai output.
contoh1
CONTOH
  • 3 + 2 * 5
  • (A + B) * (C – D) / E;
slide37
SOAL:

Ubahbentukaritmetikaberikutkedalambentuk postfix

  • ( (A + B) * C / D + E ^ F ) / G ;
  • ((A * B) + C / D – E * F) * G;

A B + D * C / E F ^ + G /

A B * C D / + E F * - G *

ad