MAKSUD DAN TUJUAN 1. TEORI PRAKTIK

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