Selasa, 06 Juli 2010

stack 4 pascal

bagi temen2 yang punya tugas stak,bisa pakai punya saya


uses wincrt;

Type
PointerKeData = ^Data;
Data = record
Nama: String[10];
Next: PointerKeData;
End;

Var
teks : String[10];
i,n,pil: integer;
Kepala,L: PointerKeData;

function empty : boolean;
begin
empty := false;
if L = nil then empty:= true;
end;




Procedure Push(Var L : Pointerkedata; teks : string);
Var
Baru : Pointerkedata;
Begin
i:=i+1;
New(Baru);
Baru^.Nama := teks;
if empty then
Baru^.Next := Nil;
if L = Nil then L := Baru
else
Begin
Baru^.Next :=L;
L :=Baru;

End;
End;

Procedure Pop(Var L : Pointerkedata);
Var
Baru : Pointer;
Begin
if not empty then
Baru := L;
if L = Nil then Writeln('List Kosong...')
else
Begin
L := L^.Next;
dispose(Baru);
i:=i-1;
End;

End;


Procedure Cetak(L : Pointerkedata);
Var
Bantu : Pointerkedata;
Begin
n:=i+1;
Bantu := L;
While Bantu <> Nil Do
Begin
dec(n);write('|');
write(n:2);write(' |');
Writeln(Bantu^.Nama:10,' |');
Bantu:=Bantu^.Next;
End;
End;



Var
Bil,Bil1 : string;
JB : Char;
Begin

repeat
clrscr;
gotoxy(20,5); writeln('|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
gotoxy(20,6); writeln('| Menu STACK |');
gotoxy(20,7); writeln('|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
gotoxy(20,8); writeln('| 1. PUSH |');
gotoxy(20,9); writeln('| 2. POP |');
gotoxy(20,10); writeln('| 3. Tampilkan Data |');
gotoxy(20,11); writeln('| 4. Empty |');
gotoxy(20,12); writeln('| 0. Exit |');
gotoxy(20,13); writeln('|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
gotoxy(20,14); writeln('| Pilihan : |');
gotoxy(20,15); writeln('|__________________________|');
gotoxy(47,19); writeln('created');
gotoxy(54,20);writeln('by');
gotoxy(55,21);writeln('ciptopurnomo/09043003');
gotoxy(32,14);readln(pil);

case pil of

0 : begin
clrscr;
exit;
end;

1: begin
clrscr;
writeln;
Jb := 'Y';
writeln('');
writeln('');
While UpCase(Jb)='Y' Do

Begin
clrscr;
gotoxy(20,2);writeln(' DATA STACK ADALAH ');
writeln('');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
writeln('|No | Data STACK |');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
Cetak(Kepala);
writeln('|___|__________________|');

gotoxy(40,10);Writeln('Jumlah elemen : ',i);
writeln;
writeln('');

gotoxy(40,5);Writeln('MENU PUSH');
gotoxy(40,6);Write('Input Data : '); Readln(Bil);
PUSH(kepala,Bil);
CLRSCR;
gotoxy(20,2);writeln(' DATA STACK SETELAH DI PUSH ADALAH ');
writeln('');
writeln('');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
writeln('|No | Data STACK |');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
Cetak(Kepala);
writeln('|___|__________________|');
writeln('');
gotoxy(40,10);Writeln('Jumlah elemen : ',i);
writeln('');
writeln('');
writeln('');
gotoxy(40,5);Write('Input Data Lagi[Y/T] ');Readln(Jb);
end;
end;

3 : begin
{Mencetak semua isi Linked List dan jumlah elemen Linked List}
clrscr;
gotoxy(20,2);writeln('DATA STACK MENGGUNAKAN LINKED LIST ADALAH');
writeln('');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
writeln('|No | Data STACK |');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
Cetak(Kepala);
writeln('|___|__________________|');
writeln('');
gotoxy(40,9);Writeln('Jumlah elemen : ',i);
gotoxy(40,11);writeln('Tekan Untuk Kembali');
gotoxy(46,11);writeln('ENTER');
gotoxy(67,11);readln;
end;

4: begin
clrscr;
writeln;
if L = Nil then
Writeln('Data Kosong...')
else
writeln('Terdapat: ',i);
end;

2: begin


Begin
clrscr;
gotoxy(25,2);writeln('DATA STACK ADALAH');
writeln('');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
writeln('|No | Data STACK |');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
Cetak(Kepala);
writeln('|___|__________________|');
writeln('');
gotoxy(40,9);Writeln('Jumlah elemen : ',i);

POP(kepala);

Writeln;
gotoxy(40,5);writeln('MENU POP ');
gotoxy(46,6);writeln('ENTER:');
gotoxy(52,6);Readln;
clrscr;
gotoxy(20,2);writeln('DATA STACK SETELAH DI POP (MENGHAPUS DATA PALING ATAS)');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
writeln('|No | Data STACK |');
writeln('|¯¯¯|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|');
Cetak(Kepala);
writeln('|___|__________________|');
writeln('');
gotoxy(40,9);Writeln('Jumlah elemen : ',i);
gotoxy(40,6);writeln('Tekan Untuk Kembal');
gotoxy(46,6);writeln('ENTER');
gotoxy(66,6);readln;
end;


end

else
writeln('Ma''af Anda salah Pilih..!');
readln;
clrscr;
end;
until (pil=0);

End.

Tidak ada komentar:

Posting Komentar