Selamat Datang di Blognya HERWIN HIDAYAT. Jangan Lupa Baca and Comment yaa... Selamat Datang di Blognya HERWIN HIDAYAT. Jangan Lupa Baca and Comment yaa...

Algoritma Menentukan Indeks Prestasi

Algoritma Menentukan Indeks Prestasi

program UAS;

uses crt;
type
    siswa=record
       nim       : string[50];
       nama      : string[50];
       NilaiMhs  : array [1..4, 1..5] of integer;
end;
type
    kuliah = array[1..20] of siswa;
var
   kul      : kuliah;
   IP       : real;
   menu, n  : integer;
   jawab    : char;
function BN(bobot : integer): char;
begin
     case bobot of
     0 : BN := 'E';
     1 : BN := 'D';
     2 : BN := 'C';
     3 : BN := 'B';
     4 : BN := 'A';
     end;
end;
                                                                 
procedure khs(kul : kuliah);
var
jumsks, jumMk, i, j : integer;
IP : real;

begin
for i := 1 to n do
begin
     writeln('Nim       : ',kul [i].nim);
     writeln('Nama      : ',kul [i].nama);
     writeln('Mk Sks Nilai Bobot');
     jumsks := 0; jumMk := 0;
     for j := 1 to n do
     begin
writeln  (kul[i].NilaiMhs[1,j]:2,' ',kul[i].NilaiMhs[2,j]:2,' ',
          BN(kul[i].NilaiMhs[4,j]) :4,' ',kul[i].NilaiMhs[4,j]:5);
jumsks := jumsks + kul[i].NilaiMhs[2,j];
jumMk := jumMk + kul[i].NilaiMhs[2,j] * kul[i].NilaiMhs[4,j];
     end;
     if jumsks <> 0 then
        IP := jumMk / jumsks;
        writeln;
        writeln('IP = ',IP:0:2);
        readln;
     end;
end;


                                                                 
function bobot(nilai : integer): integer;
begin
     if nilai < 40 then
     bobot := 0
     else
         if (nilai >= 40) and (nilai < 55) then
         bobot := 1
         else
             if (nilai >= 55) and (nilai < 65) then
             bobot := 2
             else
                 if (nilai >= 65) and (nilai < 76) then
                 bobot := 3
                 else
                     bobot := 4;
end;

procedure masukdata(var kul : kuliah);
var
i,j : integer;
begin
clrscr;
write('Banyak mahasiswa  : '); readln(n);
     for i := 1 to n do
     begin
     write('Nim          : '); readln(kul[i].nim);
     write('Nama         : '); readln(kul[i].nama);
     writeln;
                                                                 
     for j := 1 to n do
     begin
          write('Mk_ke   : '); readln(kul[i].NilaiMhs[1,j]);
          write('Sks     : '); readln(kul[i].NilaiMhs[2,j]);
          write('Point   : '); readln(kul[i].NilaiMhs[3,j]);
          writeln('Bobot Nilai  : ',bobot(kul[i].NilaiMhs[3,j]));
    kul[i].NilaiMhs[4,j] := bobot(kul[i].NilaiMhs[3,j]);
          writeln('Nilai  : ', BN(bobot(kul[i].NilaiMhs[3,j])));
          writeln;
     end;
end;
end;

procedure PPH;
var
peng, ph : longint;
pp       : longint;

begin
clrscr;
write('Masukkan penghasilan anda Rp. '); readln(peng);
if peng <=  300000 then
begin
     writeln;
     writeln('Penghasilan Rp. ',peng);
     writeln('Pph         Rp. -');
end
else
                                                                 
if (peng > 300000) and (peng <=10000000) then
begin
     writeln;
     pp := round (15/100 * peng);
     ph := peng-pp;
     writeln('Penghasilan Rp. ',ph);
     writeln('Pph         Rp. ',pp);
end
else
if peng > 10000000 then
begin
     writeln;
     pp := round (20/100 * peng);
     ph := peng-pp;
     writeln('Penghasilan Rp. ',peng);
     writeln('Pph         Rp. ',ph);
end;
readln;
end;

begin
clrscr;
repeat
writeln;
writeln('***==== Welcome To Programe Project Take Home ====***');
writeln;
writeln('Menu Pilihan Anda :');
writeln;
                                                                 
writeln('1. Menghitung IPK');
writeln('2. Menghitung PPH');
writeln('3. Keluar');
writeln;
write('Masukkan Menu pilihan (1/2/3) : '); readln(menu);
if (menu=1) then
begin
     masukdata(kul);
     readln;
     khs(kul);
end
else
if (menu=2) then
begin
     PPH;
end
else
begin
     exit;
end;
writeln;
write('Apakah Anda ingin menampilkan lagi? (Y/T) : '); readln(jawab);
until (jawab = 'T');
readln;
end.
Previous
Next Post »

Back to Top