Powered By Blogger

Selasa, 02 November 2010

BELAJAR BAHASA PASCAL

Program laporan_persediaan_barang;
uses crt;
type barang=record
     kode   : array[1..20] of string[3];
     nama   : array[1..20] of string[15];
     satuan : array[1..20] of string[5];
     harga  : array[1..20] of longint;
     jml    : array[1..20] of integer;
     nilai  : array[1..20] of longint;
     end;
var
   brg : barang;
   n,i,totjml,totnil : longint;

begin
     clrscr;
     totjml:=0; totnil:=0;
     write('masukan jumlah barang : '); readln(n);
     writeln;
     for i := 1 to n do
     begin
     clrscr;
     writeln('masukan barang ke : ',i);
     writeln;
     write('kode barang : ');   readln(brg.kode[i]);
     write('nama barang : ');   readln(brg.nama[i]);
     write('satuan      : ');   readln(brg.satuan[i]);
     write('harga       : ');   readln(brg.harga[i]);
     write('jumlah      : ');   readln(brg.jml[i]);
     brg.nilai[i] := brg.harga[i] * brg.jml[i];
     totjml := totjml + brg.jml[i];
     totnil := totnil + brg.nilai[i];
     writeln('nilai barang : ',brg.nilai[i]);
     writeln;
     clrscr;
     end;
     writeln;
     writeln('                     Laporan Persediaan Barang              ');
     writeln('                         PT. Maju Mundur                    ');
     writeln('                   ______________________________             ');
     writeln;
     writeln(' ');
     writeln('| no':3,'| kode':8,'| nama ':10,'| satuan':15,'| harga':10,'| jml':10,'| nilai |':10);
     writeln(' ');
     for i := 1 to n do
     with brg do
     begin
     writeln('|',i:5,'|',kode[i]:8,'|',nama[i]:13,'|',satuan[i]:10,'|',harga[i]:11,'|',jml[i]:5,'|', nilai[i]:7,'|');
     end;
     writeln(' ');
     writeln('total','|':2, totjml:51, '|',totnil:7,'|');
     writeln(' ');
     repeat until keypressed;
end.




program khs;
const
   maxmhs    = 86; (* maksimal jumlah mahasiswa *)
   maxmk    = 8; (* maksimal jumlah mata kuliah *)
var
   i, j      : integer;
   x      : string[10];
   nmhs      : integer; (* jumlah mahasiswa *)
   nmk      : integer; (* jumlah mata kuliah *)
   ketemu     : boolean;
   lanjut     : char;
   (* data khusus tiap mahasiswa *)
   nama     : array[1..maxmhs] of string[22];
   bp          : array[1..maxmhs] of string[10];
   tbobot   : array[1..maxmhs] of real;
   ip       : array[1..maxmhs] of real;
   (* data umum tiap mahasiswa *)
   smt      : integer;
   thn      : string[4];
   fak      : string;
   ps        : string;
   totalsks : integer;
   (* data umum mata kuliah *)
   (* dengan asumsi tiap mahasiswa mengambil mata kuliah yg sama *)
   kodemk   : array[1..maxmk] of string[6];
   namamk   : array[1..maxmk] of string[22];
   sksmk    : array[1..maxmk] of integer;
   (* data nilai tiap mata kuliah, spesifik utk mahasiswa tertentu *)
   (* tiap mahasiswa punya nilai yg berbeda-beda *)
   niluts   : array[1..maxmhs,1..maxmk] of integer;
   niluas   : array[1..maxmhs,1..maxmk] of integer;
   nilakhir : array[1..maxmhs,1..maxmk] of real;
   nilhrf   : array[1..maxmhs,1..maxmk] of char;
   bobot    : array[1..maxmhs,1..maxmk] of real;
begin
   write('Tahun akademik     : ');
   readln(thn);
   write('Semester           : ');
   readln(smt);
   write('Fakultas           : ');
   readln(fak);
   write('Program Studi      : ');
   readln(ps);
   writeln;

   write('Jumlah mahasiswa   : ');
   readln(nmhs);
   write('Jumlah mata kuliah : ');
   readln(nmk);
   writeln;

   writeln('Masukkan data tiap mata kuliah');
   totalsks := 0;
   for i := 1 to nmk do
   begin
      write(i:3, ') Kode mata kuliah : ');
      readln(kodemk[i]);
      write('     Nama mata kuliah : ');
      readln(namamk[i]);
      write('     Sks              : ');
      readln(sksmk[i]);

      totalsks := totalsks + sksmk[i];
   end;
   writeln;

   writeln('Masukkan data tiap mahasiswa');
   for i := 1 to nmhs do
   begin
      write(i:3, ') Nama mahasiswa : ');
      readln(nama[i]);
      write('     No. BP         : ');
      readln(bp[i]);
      tbobot[i] := 0.0;
      for j := 1 to nmk do
      begin
       writeln('     - ', namamk[j]);
       write('       Nilai UTS : ');
       readln(niluts[i,j]);
       write('       Nilai UAS : ');
       readln(niluas[i,j]);

       nilakhir[i,j] := 0.5 * niluts[i,j] + 0.5 * niluas[i,j];

       if nilakhir[i,j] >= 79 then
       begin
          nilhrf[i,j] := 'A';
          bobot[i,j] := 4.0;
       end
       else if nilakhir[i,j] >= 67 then
       begin
          nilhrf[i,j] := 'B';
          bobot[i,j] := 3.0;
       end
       else if nilakhir[i,j] >= 56 then
       begin
          nilhrf[i,j] := 'C';
          bobot[i,j] := 2.0;
       end
       else if nilakhir[i,j] >= 45 then
       begin
          nilhrf[i,j] := 'D';
          bobot[i,j] := 1.0;
       end
       else
       begin
          nilhrf[i,j] := 'E';
          bobot[i,j] := 0.0;
       end;

       tbobot[i] := tbobot[i] + sksmk[j] * bobot[i,j];
      end;
      ip[i] := tbobot[i] / totalsks;
   end;
   writeln;

   repeat
    write('No. BP mahasiswa yang ingin ditampilkan KHS-nya : ');
    readln(x);
    ketemu := False;
    writeln;
    for i := 1 to nmhs do
    begin
       if (bp[i] = x) then
       begin
        ketemu := True;

        for j := 1 to 80 do write('=');
        writeln;
        writeln('Kartu Hasil Studi Mahasiswa');
        writeln;
        writeln('Nama          : ', nama[i]);
        writeln('No. BP        : ', bp[i]);
        writeln('Fakultas      : ', fak);
        writeln('Program Studi : ', ps);
        writeln('Thn Akademik  : ', thn);
        writeln('Semester      : ', smt);
        writeln;

        for j := 1 to 78 do write('_');
        writeln;
        write('|','No':3,'|','Mata Kuliah':25,'|','Kode':8,'|','SKS':5,'|','Nilai':7,'|','Huruf':7);
        writeln('|','Bobot':7,'|','':7,'|');
        for j := 1 to 78 do write('_');
        writeln;   
        for j := 1 to nmk do
        begin
           write('|',j:3,'|',namamk[j]:25,'|',kodemk[j]:8,'|',sksmk[j]:5,'|',nilakhir[i,j]:7:2);
           writeln('|',nilhrf[i,j]:7,'|',bobot[i,j]:7:2,'|',(sksmk[j]*bobot[i,j]):7:2,'|');
        end;
        for j := 1 to 78 do write('_');
        writeln;   
        writeln;

        writeln('Total bobot    : ', tbobot[i]:7:2);
        writeln('Total SKS      : ', totalsks:4);
        writeln('Index Prestasi : ', ip[i]:7:2);
        for j := 1 to 80 do write('_');
        writeln;
       end;
    end;
    if ketemu = False then writeln('Tidak ada mahasiswa dengan no. bp ', x);
    write('Lanjut? (y/t) : ');
    readln(lanjut);
   until (lanjut = 't') or (lanjut = 'T');
   readln;
end.

Tidak ada komentar:

Posting Komentar

LIKE THIS