Total Tayangan Halaman

Sabtu, 05 Maret 2011

contoh program pascal

PROGRAM DATA BARANG

Bahasa program : Turbo Pascal
program menu;
uses crt;
type rec = record
     kdsewa : string[4];
     nokam : string[20];
     jekam : string[15];
     tglmasuk : longint;
     tglkeluar : integer;
     end;

var filehot : file of rec;
    rechot : rec;
    lagi,jawab,pilih : char;
    filetakada,selesai : boolean;
    jumlahrecord : integer;
    ketemu : boolean;

procedure entri_;
begin
     assign(filehot,'.dat');
     {$I-}
     reset(filehot);
     if ioresult<>0 then rewrite(filehot);
     {$I+}
     seek(filehot,filesize(filehot));
     lagi:='Y';
     while upcase(lagi)='Y'do
     with rechot do
     begin
          clrscr;
          writeln('masukan data ');
          writeln('___________________');
          writeln;
          write('kode  : ');readln(rechot.kdsewa);
          write('nama  : ');readln(rechot.nokam);
          write('jekam  : ');readln(rechot.jekam);
          write('tglmasuk  : ');readln(rechot.tglmasuk);
          write('tglkeluar : ');readln(rechot.tglkeluar);
          write(filehot,rechot);
          write('ada lagi?(y/t) ');readln(lagi);
          close(filehot);
          end;close(filehot);
end;

procedure tampil_;
var kdsewacari : string[4];
i : integer;
begin
     assign(filehot,'.dat');
     (*$I-*)
     reset(filehot);
     (*$I+*)
     jumlahrecord := filesize(filehot);
     lagi:='Y';
     while upcase(lagi)='Y' do
     begin
          clrscr;
          ketemu :=false;
          writeln('mnampilkan  tertentu');
          writeln('__________________________');
          writeln;
          write('kode  : ');readln(kdsewacari);
          for i:=1 to jumlahrecord do
          begin
               seek(filehot,i-1);
               read(filehot,rechot);
               if rechot.kdsewa = kdsewacari then
               begin
                    ketemu := true;
                    writeln('nama  : ',rechot.nokam);
                    writeln('jekam  : ',rechot.jekam);
                    writeln('tglmasuk  : ',rechot.tglmasuk);
                    writeln('tglkeluar : ',rechot.tglkeluar);
                    writeln;
                    end;
                    end;
               if not ketemu then
                  writeln('!!!!!!!!!!!!!!!!!!!tidak ada kode  tersebut!!!!!!!!!!!!!!!!');
                  write('ada lagi yang dicari(y/t)? : ');readln(lagi);
                  end;
                  close(filehot);
                  end;

procedure koreksi_;
var kdsewacari : string[4];
i : integer;

begin
     assign(filehot,'.dat');
     (*$I-*)
     reset(filehot);
     (*$I+*)
     jumlahrecord := filesize(filehot);
     lagi :='Y';
     while upcase(lagi)='Y' do
     begin
          clrscr;
          ketemu := false;
          writeln('mengoreksi data ');
          writeln('----------------------');
          writeln;
          write('kode  : ');readln(kdsewacari);
          writeln;
          for i:=1 to jumlahrecord do
          begin
               seek(filehot,i-1);
               read(filehot,rechot);
               if rechot.kdsewa = kdsewacari then
               begin
                    with rechot do
                    begin
                         ketemu:=true;
                         writeln('nama  : ',nokam);
                         write('koreksinya : ');readln(nokam);
                         writeln('jekam  : ',jekam);
                         write('koreksinya : ');readln(jekam);
                         writeln('tglmasuk  : ',tglmasuk);
                         write('koreksinya : ');readln(tglmasuk);
                         writeln('tglkeluar : ',tglkeluar);
                         write('koreksinya : ');readln(tglkeluar);
                         writeln;
                         end;
                         end;
                         seek(filehot,i-1);
                       write(filehot,rechot);
                         end;
                         if not ketemu then
                            writeln('!!!!!!!!!!tidak ada kode  tersebut!!!!!!!!!!!!!!!!!');
                            write ('ada lagi(y/n)???????? : ');readln(lagi);
                            end;
                            close(filehot);
end;

procedure tampil_semua;
var nilaibrg : longint;
    totnilbrg : longint;
    totharsat : longint;
    tottglkeluar : integer;
    i : integer;

begin
     assign(filehot,'.dat');
     {$I-}
     reset(filehot);
     {$I+}
     if ioresult=0 then filetakada:=false;
     clrscr;
     writeln('daftar persediaan barabg di gudang ');
     writeln('pt.intermilan padang');
     writeln;
     writeln('--------------------------------------');
     writeln('no    kode     nama      jekam       tglmasuk    tglkeluar   nilai   ');
     writeln('urt   brg      brg       brg          brg                      ');
     writeln('---------------------------------------------------------------');
     jumlahrecord:=filesize(filehot);
     totnilbrg:=0;totharsat:=0;tottglkeluar:=0;
     for i:=1 to jumlahrecord do
     with rechot do
     begin
          read(filehot,rechot);
          nilaibrg :=tglmasuk*tglkeluar;
     writeln(i:3,kdsewa:5,nokam:20,jekam:10,tglmasuk:9,tglkeluar:10,nilaibrg:12);
     tottglkeluar:=tottglkeluar+tglkeluar;
     totnilbrg:=totnilbrg+nilaibrg;
     totharsat:=totharsat+tglmasuk;
     end;
     writeln('--------------------------------------------------------------');
     writeln('                           total : ',totharsat:12,tottglkeluar:10,totnilbrg:12);
     writeln('--------------------------------------------------------------');
     writeln('tekan sem konci');
     repeat until keypressed;
     close(filehot);
     end;

begin{main program}
repeat
       clrscr;
       writeln('<<<<<<<<<<<<<<MENU UTAMA >>>>>>>>>>>>>>>>');
       writeln;
       writeln('1. menambah data  ');
       writeln('2. menampilkan  tertentu');
       writeln('3. mengkoreksi data');
       writeln('4. menampilkan semua  tertentu');
       writeln('5. selesai');
       writeln;
               write('pilihan anda [1..5] : ');readln(pilih);
               case pilih of
               '1' : entri_;
               '2' : tampil_;
               '3' : koreksi_;
               '4' : tampil_semua;
               end;
               until pilih = '5';
               end.