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