Program Pascal : Stack / Tumpukan

Rabu, 29 Desember 2010

Berikut ini adalah contoh penggunaan Stack / Tumpukan untuk membalikkan string yang diinputkan dari piranti masukan/keyboard.


{Judul Program}
program balik_kalimat;
uses wincrt;

{Deklarasi}
const elemen=255;
type S255=string[elemen];
     Tumpukan=record
                isi:S255;
                atas:integer;
              end;

var
   T:Tumpukan;
   i:integer;
   Kalimat:S255;

{Prosedur dan Fungsi}
procedure Awalan(var S:Tumpukan);
begin
     S.atas:=0;
end;

procedure PUSH(var S:Tumpukan; d:char);
begin
     if S.atas=elemen then
        write('PENUH')
     else
         begin
            S.atas:=S.atas+1;
            S.isi[S.atas]:=d;  
         end;
end;

function POP(var S:Tumpukan):char;
begin
     POP:=S.isi[S.atas];
     S.atas:=S.atas-1;
end;

{Program Utama}
begin
     clrscr;
     ...
     ...
     ...

Silahkan download program lengkap stack1.zip atau stack1.txt

Tampilan output :

Program Pascal : Queue / Antrian

Selasa, 28 Desember 2010


Queue / Antrian dalam bahasa pemrograman Pascal.

{Judul Program}
program Antrian;
uses wincrt;

{Deklarasi}
const max=5;     {konstanta}
type queue=record
                 elemen:array[1..max]of string;
                 head,tail,count:integer;
           end;      
var
   Q:queue;
   i:integer;
   data:string;
   temp:string;
   jawab:char;

{Prosedur dan Fungsi}
procedure Inisialisasi(var A:queue);
begin
     A.head:=0;
     A.tail:=0;
end;

function Empty:boolean;
begin
     if Q.tail=0 then
         Empty:=true
     else
         Empty:=false;
end;

function Full:boolean;
begin
     if Q.tail=max then
         Full:=true
     else
         Full:=false;
end;

procedure Enqueue(var A:queue; x:string);{prosedur untuk penambahan data}
begin
     if Empty then
         begin
           A.head:=1;
           A.tail:=1;
           A.elemen[A.tail]:=x;
         end
     else if not Full then
         begin
           A.tail:=A.tail+1;
           A.elemen[A.tail]:=x;
         end
     else
         writeln('ANTRIAN SUDAH PENUH');
end;

function Dequeue(var A:queue):string; {prosedur untuk mengambil/menghapus data}
var
   j:integer;
begin
   if not Empty then
   begin
      Dequeue:=A.elemen[A.head];
      for j:=A.head to (A.tail-1) do
      begin
         A.elemen[j]:=A.elemen[j+1];
      end;
      A.tail:=A.tail-1;
   end;
end;

procedure Tampil(A:queue);
var
   k:integer;
begin
     if A.tail<>0 then
       for k:=1 to A.tail do
           writeln('Pasien ke-',k,' : ',A.elemen[k])
     else
         writeln('ANTRIAN KOSONG');
end; 

{Program Utama}
begin
   clrscr;
   writeln('PROGRAM ANTRIAN PASIEN');
   writeln('----------------------');
   writeln;
   ...
   ...
   ...

Download file lengkap antrian.zip atau antrian.txt


Tampilan output:




 
 
 

Chat

Pengikut

Statistik