MODUL I TUMPUKAN STACK
A. MAKSUD DAN TUJUAN 1.
MAKSUD
Memberikan pemahaman tentang tipe data tumpukan beserta oerasinya.
2. TUJUAN
Mahasiswa dapat menggunakan tipe data tumpukan stack serta operasi- operasi yang dapat dilakukan dengan tipe data tersebut.
B. TEORI
Secara sederhana tumpukan bisa diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakkan di atas data lain. Satu hal yang
perlu diingat adalah bahwa kita bisa menambahkan menyisipkan data, mengambil menghapus data lewat ujung yang sama, yang disebut sebagai
ujung atas tumpukan top of stack.
Implementasi tumpukan dengan larik
Penyajian tumbukan bisa menggunakan larik array walaupun penyajian dengan menggunakan larik dianggap kurang tepat karena
banyaknya elemen dalam larik sudah tertentu statis sedangkan pada tumpukan, banyaknya elemen bisa sangat bervariasi dinamis. Meskupun
demikian , larik bisa digunakan dengan anggapan bahwa banyaknya elemen maksimal dari tumpukan tersebut tidak akan melebihi batas maksimal dari
banyaknya elemen dalam larik. Deklarasi tumpukan bisa menggunakan tipe data terstruktur yaitu tipe
rekaman record yang terdiri dari dua medan. Medan pertama berisi larik untuk menyimpan elemen tumpukan yang bertipe, sedang medan kedua
bertipe integer untuk mencatat posisi ujung tumpukan, sebagai berikut:
Const max_elemen = 255; Type tumpukan = record
Isi : array [1..max_elemen] of integer; Atas : 0..max_elemen;
End; Var t:tumpukan;
Operasi yang bisa dilakukan pada tumpukan adalah operasi push, dan operasi pop.
Implementasi prosedur push:
Procedure pushvar T:tumpukan; x:integer; Begin
T.Atas := T.Atas + 1; T.Isi[T.Atas] := x;
End;
Implementasi prosedur pop: Procedure popvar T:tumpukan;
Begin T.Atas := T.Atas – 1;
End;
C. PRAKTIK
1. Cobalah program di bawah ini, amati untuk beberapa masukan yang
berbeda. Program pop_push;
Uses crt; Const elemen = 225; {batas maksmimum karakter}
Type s255 = string [elemen]; Tumpukan = record
Isi : s255; Atas : 0 ..elemen;
End; Var t
: tumpukan; W
: char; Kalimat:s255;
I,j : integer;
Procedure awalanvar : tumpukan; Begin
T.atas := 0 End;
Procedure pushvar T : tumpukan; x : char; Begin
T.atas := t.atas+1; T.isi[t.atas] := x;
End;
Function popvar t:tumpukan: char; Begin
Pop:=t.isi[t.atas]; t.atas := t.atas-1
end;
begin {program utama} clrscr;
{melakukan proses push} writeln‘Masukkan kalimat = ‘;
readkalimat; for i:=1 to lenghtkalimat do
pusht, kalimat[i]; write‘Elemen yang di-push = ‘,kalimat;
readln; {melakukan proses pop}
for i:=1 to lenghtkalimat do pusht,kalimat[i];
writeln; writeln‘Hasil akhir push dibaca dengan
pop = ‘; {menampilkan hasil proses pop}
for j:= 1 to lenghtkalimat do begin
w:=popt; writew;
end; readln;
end.
2. Modifikasi program diatas untuk menambahkan sebuah karakter dalam tumpukan.
Contoh input : STMIK El Rahma Tambahan karakter : q
Hasil akhir : q amhaR lE KIMTS
D. TUGAS