Title: TUMPukAN (STACK)
1TUMPukAN (STACK)
2Pengertian tumpukan
- Tumpukan adalah suatu kumpulan data yang
seolah-olah ada data yang diletakkan di atas data
lain. - Misalnya kita mempunyai dua buah kotak yang kita
tumpuk, sehingga kotak kita letakkan di atass
kotak yang lain. Jika kemudian tumpukan dua kotak
itu kita tambah dengan kotak ketiga, keempat dan
seterusnya maka akan kita peroleh sebuah tumpukan
kotak, yang terdiri dari N kotak.
3Ilustrasi Tumpukan
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
4Penyajian tumpukan pada pascal
- 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.
5Deklarasi tumpukan
- Const MaxElemen 255
- Type Tumpukan record
- isi array1 .. MaxElemen of Integer
- atas 0 .. MaxElemen
- end
- Var T Tumpukan
Jika T.Atas 5, berarti dalam tumpukan ada 5
elemen, yaitu T.isi1,T.isi2,.., T.isi5.
Jika data yang diambil, maka nilai Medan T.Atas
dikurangi 1 menjadi 4, yang berarti T.isi4
adalah elemen teratas. Jika data ditambah maka
nilai T.atas ditambah dengan 1 menjadi 6,
sehingga T.isi6 adalah elemen teratas.
Dengan deklarasi di atas kita menganggap bahwa
elemen tumpukan T, yang tersimpan dalam larik
T.Isi adalah bertipe integer dan banyaknya elemen
tumpukan maksimum adalah sebesar MaxElemen, yang
dalam hal ini 255 elemen. Pada medan Atas,
nilainya menunjukkan banyaknya elemen yang ada
dalam suatu tumpukan, yang sekaligus menunjukkan
posisi elemen teratas dalam tumpukan yang
dimaksud.
6Operasi Pada Tumpukan
- 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.
7Operasi PUSH
- Procedure PUSH(var T Tumpukan X integer)
- Begin
- T.Atas T.Atas 1
- T.IsiT.Atas X
- End
Procedure ini akan menyisipkan tempat untuk x
yang akan dipush ke dalam tumpukan, yaitu dengan
menambah nilai medan T.Atas dengan 1 dan kemudian
menyisipkan x ke dalam larik T.isi.
Dari procedure ini, masalah akan timbul saat
T.Atas sama dengan Max Elemen dan jika kita
mempush lagi maka akan terjadi overflow pada
array T.Isi, disebabkan karena deklarasi
banyaknya elemen array tersebut tidak mencukupi.
Sehingga procedure diatas berpu dirubah menjadi
Procedure PUSH (var T Tumpukan X
Integer) Begin If T.Atas MaxElemen then
writeLn (Tumpukan Sudah Penuh) else
begin T.Atas T.Atas 1
T.IsiT.Atas x end End
8OPERASI POP
- Procedure POP (var T Tumpukan)
- Begin
- if T.Atas 0 then
- writeLn (Tumpukan Sudah Kosong)
- else
- T.Atas T.Atas -1
- End
9Contoh Pemakaian TUmpukan
- 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
10- Uses wincrt
- Const Elemen 255
- Type S255 StringElemen
- 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