1 / 10

TUMPukAN (STACK)

STRUKTUR DATA. TUMPukAN (STACK). Tumpukan adalah suatu kumpulan data yang seolah-olah ada data yang diletakkan di atas data lain.

kaz
Download Presentation

TUMPukAN (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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. STRUKTUR DATA TUMPukAN (STACK)

  2. Tumpukanadalahsuatukumpulan data yang seolah-olahada data yang diletakkandiatas data lain. • Misalnyakitamempunyaiduabuahkotak yang kitatumpuk, sehinggakotakkitaletakkandiatasskotak yang lain. Jikakemudiantumpukanduakotakitukitatambahdengankotakketiga, keempatdanseterusnyamakaakankitaperolehsebuahtumpukankotak, yang terdiridari N kotak. Pengertiantumpukan

  3. IlustrasiTumpukan Tumpukan bisa diilustrasikan seperti gambar disamping. dari gambar kita bisa mengatakan bahwa kotak B ada diatas kotak A dan ada di bawah kotak C. menambahkan menghapus Dari gambar ini kita hanya bisa menambah atau mengambil sebuah kotak lewat satu ujung, yaitu ujung bagian atas. atas F E Dapat dilihat pula bahwa tumpukan merupakan kumpulan data yang sifatnya dinamis, artinya kita bisa menambah dan mengambil data darinya. D C B Dengan memperhatikan ilustrasi ini maka kita bisa melihat bahwa tumpukan merupakan suatu senarai (list) yang mem- punyai watak “masuk terakhir keluar pertama” atau disebut LIFO (Last In First Out). A

  4. Tumpukan = Kumpulan Data Array bisa digunakan untuk menyajikan tumpukan. Namun pada kumpulan data biasanya terdiri dari elemen-elemen yang bervariasi(dinamis), sedangkan untuk array elemennya statis. Untuk elemen yang dinamis bisa digunakan record. Penyajiantumpukanpadapascal

  5. Const MaxElemen = 255; Type Tumpukan = record isi : array[1 .. MaxElemen] of Integer; atas : 0 .. MaxElemen end; Var T : Tumpukan; Deklarasitumpukan JikaT.Atas = 5, berartidalamtumpukanada 5 elemen, yaitu T.isi[1],T.isi[2],….., T.isi[5]. Jika data yang diambil, makanilai Medan T.Atasdikurangi 1 menjadi 4, yang berarti T.isi[4] adalahelementeratas. Jika data ditambahmakanilaiT.atasditambahdengan 1 menjadi 6, sehingga T.isi[6] adalahelementeratas. Dengandeklarasidiataskitamenganggapbahwaelementumpukan T, yang tersimpandalamlarikT.Isiadalahbertipe integer danbanyaknyaelementumpukanmaksimumadalahsebesarMaxElemen, yang dalamhalini 255 elemen. PadamedanAtas, nilainyamenunjukkanbanyaknyaelemen yang adadalamsuatutumpukan, yang sekaligusmenunjukkanposisielementeratasdalamtumpukan yang dimaksud.

  6. Ada dua operasi dasar yang bisa kita laksanakan pada sebuah tumpukan, yaitu • Operasi menyisipkan data, atau mem-push data. • Operasi menghapus data atau mem-plop data. • Karena dalam tumpukan kita bisa mempush data, maka tumpukan juga sering disebut pusdown list. OperasiPadaTumpukan

  7. Procedure PUSH(var T : Tumpukan; X : integer); Begin T.Atas := T.Atas + 1; T.Isi[T.Atas] := X; End; Operasi PUSH Procedure iniakanmenyisipkantempatuntuk x yang akandipushkedalamtumpukan, yaitudenganmenambahnilaimedanT.Atasdengan 1 dankemudianmenyisipkan x kedalamlarik T.isi. Dari procedure ini, masalahakantimbulsaatT.Atassamadengan Max Elemendanjikakitamempushlagimakaakanterjadioverflowpada array T.Isi, disebabkankarenadeklarasibanyaknyaelemen array tersebuttidakmencukupi. Sehingga procedure diatasberpudirubahmenjadi : Procedure PUSH (var T : Tumpukan; X : Integer); Begin If T.Atas = MaxElemen then writeLn (‘TumpukanSudahPenuh’) else begin T.Atas := T.Atas + 1; T.Isi[T.Atas] := x end End;

  8. Procedure POP (var T : Tumpukan); Begin if T.Atas = 0 then writeLn (‘Tumpukan Sudah Kosong’); else T.Atas := T.Atas -1 End; OPERASI POP

  9. Contoh Program Untuk Membalikkan Kalimat. Dalam hal ini yang dibalik adalah seluruh kalimat bukan per kata. Input : BELAJAR PASCAL ADALAH MUDAH DAN MENYENANGKAN Output : NAKGNANEYNEM NAD HADUM HALADA LACSAP RAJALBE ContohPemakaianTUmpukan

  10. Uses wincrt; Const Elemen = 255; Type S255 = String[Elemen]; Tumpukan = record isi : s255; atas : 0..elemen end; Var T : Tumpukan; I : Integer; Kalimat : S255; Procedure Awalan(Var T : Tumpukan); Begin T.Atas := 0 End; Procedure PUSH (Var T : Tumpukan; X : char); Begin T.Atas := T.Atas + 1; T.Isi[T.Atas] := X End; Function POP (Var T : Tumpukan) : char; Begin POP := T.Isi[T.Atas]; T.Atas := T.Atas - 1; End; {Program Utama} Begin clrscr; Awalan(T); write ('Masukan sembarang kalimat : '); ReadLn (Kalimat); WriteLn; { mempush kalimat ke dalam tumpukan} For I := 1 to length(Kalimat) do PUSH(T, Kalimat[I]); {mempop isi tumpukan sehingga diperoleh kalimat yang dibaca terbalik} For I := 1 to length(Kalimat) do write(POP(T)); WriteLn; End.

More Related