Article 2: The Stack Data Structure. An array is a data structure which stores data items in a pre-allocated space. It allows you to store data anywhere within its range. On the other hand, the Stack Data Structure does not allow you to store data where you want i.e. Order is important. It is based on a LIFO basis - the last to arrive, the.
- Download Full PDF Package. Kumpulan Program Pascal Decky Hendarsyah dex3000@yahoo.com Lisensi Dokumen.
- Contoh Program Stack dengan Pascal Posted by Muhammad Tohri Isnadi Contoh Program Stack/Tumpukan yaitu pembalikan kalimat.
TUGAS
1.Buatlah algoritma inisialisasi, push, pop, isfull, isempty.
2.Buat kode inisialisasi, push, pop, isfull, isempty.
3.Tampilkan screen shoot nya.
4.Keterangan : Jumlah data yang akan di simpan, imputkan oleh pengguna
-Data yang akan di simpan di inputkan oleh pengguna.
Operasi Stack :
- Inisialisasi : digunakan untuk mengosongkan stack
- Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
- Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
- IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
- IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh
Berikut penyelesaiannya dengan menggunakan Turbo Pascal :
program operasi_stack;
uses crt;
Contoh Program Stack Pascal 1
const max_el = 10;
type
nilaiMatkul = record
nim : string[8];
nama : string[25];
nilai : integer;
end;
stack = record
top : integer;
data : array[1..max_el] of nilaiMatkul;
end;
procedure inisialisasi(var s : stack);
begin
s.top := 0;
end;
function isempty(var s : stack) : boolean;
var
hasil : boolean;
begin
hasil := false;
if s.top = 0 then
begin
hasil := true;
end;
isempty := hasil;
end;
function isfull (var s : stack) : boolean;
var
hasil : boolean;
begin
hasil := false;
if s.top = max_el then
begin
hasil :=true;
end;
isfull :=hasil;
end;
procedure push(nim : string; nama:string; nilai:integer; var s:stack);
begin
if isfull(s)=true then
begin
writeln(‘stack penuh’);
end
else
begin
if isempty(s)=true then
begin
s.top := 1;
s.data[1].nim := nim;
s.data[1].nama := nama;
s.data[1].nilai := nilai;
end
else
begin
s.top := s.top+1;
s.data[s.top].nim :=nim;
s.data[s.top].nama :=nama;
s.data[s.top].nilai :=nilai;
end;
end;
end;
procedure pop(var s : stack);
begin
if s.top <> 0 then
begin
s.top := s.top-1;
end
else
write(‘Data Habis’);
writeln
end;
procedure printstack(var s:stack);
var
i : integer;
begin
if s.top<> 0 then
begin
for i := s.top downto 1 do
with s.data[i] do
begin
writeln;
writeln(‘elemen ke: ‘,i);
wrietln(‘nim: ‘,nim);
writeln(‘nama: ‘,nama);
writeln(‘nilai: ‘,nilai);
end;
writeln;
end
else
begin
writeln(‘Stack Kosong’);
end;
end;
var
s :stack;
banyak : byte;
i : integer;
begin
clrscr;
inisialisasi(s);
writeln;
writeln(‘Awal‘);
printstack(s);
writeln;
writeln(‘‘);
write(‘Masukkan Jumlah Data : ‘); readln(byk);
writeln;
for i := 1 to banyak do
with s.data[i] do
begin
write(‘nim : ‘); readln(nim);
write(‘nama: ‘); readln(nama);
write(‘nilai: ‘); readln(nilai);
end;
readln;
writeln(‘Setelah Di Push’);
for i :=1 to banyak do
begin
push(s.data[i].nim, s.data[i].nama, s.data[i].nilai,s);
writeln;
end;
printstack(s);
writeln(‘‘);
writeln;
readln;
writeln(‘Setelah Di Pop‘);
pop (s);
writeln;
printstack(s);
writeln(‘‘);
writeln;
readln;
readln;
end.
Setelah itu program bisa di RUN dengan cara mengeklik menu ‘RUN’ atau dengan cara menekan tombol ‘CTRL + F9′. Jika sudah sukses program bisa dijalankan.
Gambar dibawah merupakan hasil setelah di RUN :
Contoh Program Stack Pascal Dan
Dibawah ini ada contoh program sederhana dengan turbo pascal windows.
Program AnimasiStack;
Uses wincrt;
const
max = 10;
var
top,i : byte;
pil,tem,E : char;
stack : array [1..max] of char;
procedure pushanim;
begin
for i :=1 to 18 do
begin
gotoxy(23+i,7); write(tem);
{Delay(30);}
gotoxy(23,7); clreol;
end;
for i:=1 to 14-top do
begin
{delay(30);}
gotoxy(41,6+i); write(' ');
gotoxy(41,7+i); write(tem);
end;
end;
procedure popanim(tem:char);
begin
for i:=1 to 14-top do
begin
{delay(30);}
gotoxy(41,22-i-top); write(' ');
gotoxy(41,21-i-top); write(tem);
end;
for i:=1 to 19 do
begin
gotoxy(40+i,7); write(tem);
{delay(30);}
gotoxy(16,7); clreol;
end;
end;
procedure push(e:char);
begin
inc(top);
stack[top] :=e;
pushanim;
end;
procedure pop(e:char);
begin
if top<> 0 then
begin
E:=stack[top];popanim(e);
dec(top);
end else
begin
gotoxy(1,7); write('stack telah kosong');
readkey;
gotoxy(1,7); clreol;
end;
end;
begin
clrscr;
writeln('ANIMASI STACK');
writeln('1. PUSH');
writeln('2. POP');
writeln('3. QUIT');
writeln('Pilihan anda[1/2/3] = ');
gotoxy(49,6);write(');
gotoxy(49,8);write('/');
gotoxy(37,10);write(' /');
for i:=1 to 11 do
begin
gotoxy(38,10+i);
if i=11 then write('|_____|')else write
('| |');
end;
top := 0;
repeat
gotoxy(23,5);clreol;
pil := readkey;write(pil);
if pil ='1' then
begin
if top<> max then
begin
gotoxy(1,7);write('Masukkan satu Huruf = ');
tem := readkey;write(tem);
push(tem);
gotoxy(1,7);clreol;
end else
begin
gotoxy(1,7);write('Stack sudah penuh');readkey;
gotoxy(1,7);clreol;
end;
end else
if pil='2' then pop(tem);
until pil='3';
end.
Download file
Tags: Program pascal, stack pascal.