Stack
This presentation is the property of its rightful owner.
Sponsored Links
1 / 37

STACK PowerPoint PPT Presentation


  • 142 Views
  • Uploaded on
  • Presentation posted in: General

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 .

Download Presentation

STACK

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


Stack

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


Stack

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


Operator operator di dalam stack

OPERATOR-OPERATOR DI DALAM STACK


Operasi push

OPERASI PUSH

  • Adalahoperasimenambahkanelemenbarupadasebuah stack.

  • Aturanpenambahan stack:

    • Sebagaikondisiawaladasebuah stack yang telahmemilikibeberapaelemendenganelemen paling atassebagai top.

    • Dibuatsebuahelemenbaru yang akandimasukkankedalam stack.


Stack

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


Stack

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


Stack

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


Stack

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


Stack

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


Stack

Contoh :

  • Misaldiberikanekspresiaritmatik : A + B ;

  • Makabentuknyadalamnotasi postfix menjadi : AB+


Stack

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.


Stack

  • 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;


    Stack

    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 *


  • Login