program mencari_nilai_mahasiswa;
USES CRT;
type
mahasiswa=record
NPM :String[8];
NAMA :String[20];
MKUL:String[5];
END;
VAR
rpeg :Array[1..20] of mahasiswa;
i,j :byte;
Nmid,Nsemester:longint;
pil,
lg :char;
PROCEDURE InputMAHASISWA;
PROCEDURE FormMAHASISWA;
BEGIN
Clrscr;
Gotoxy(20,2);write('iNPUT DATA NILAI MAHASISWA');
Gotoxy(10,3);write('_________________________________________');
Gotoxy(10,4);write('NPM :');
Gotoxy(10,5);write('NAMA :');
Gotoxy(10,6);write('MATA KULIAH :');
Gotoxy(10,7);write('_________________________________________');
Gotoxy(10,8);write('isikan data lagi[T/Y]:');
END;
BEGIN
REPEAT
FORMMahasiswa;
WITH Rpeg[i] do
Begin
Gotoxy(27,4);readln(NPM);
Gotoxy(27,5);readln(NAMA);
Gotoxy(27,6);readln(MKUL);
Gotoxy(33,8);readln(Lg);
END;
inc(i);
UNTIL Upcase(lg)='T';
END;
PROCEDURE OutputMAHASISWA;
PROCEDURE TabelMAHASISWA;
BEGIN
Clrscr;
Gotoxy(3,3);write('LAPORAN DATA MAHASISWA');
Gotoxy(3,4);write('______________________________________________');
Gotoxy(3,5);write('No NPM NAMA MATA KULIAH Nilai Mid Nilai Semester Nilai Huruf Ket');
Gotoxy(3,6);write('______________________________________________');
END;
PROCEDURE HITNILAI(cMKUL:String;Var nNilai:Longint);
Begin
if TotNilai[j]>=80 then Nh:='A'
else if TotNilai[j]>=79 then Nh:='B'
else if TotNilai[j]>=69 then Nh:='C'
else if TotNilai[j]>=50 then Nh:='D'
else if TotNilai[j]>=40 then Nh:='E'
END;
if Nh='E'then ket:='GAGAL';
else ket:='LULUS';
BEGIN
TabelNilaiMahasiswa;
for j:=1 to I-1 do
BEGIN
WITH RPeg[i]do
begin
HitNilai(MKul,Nilai);
Gotoxy(5,6+j);write(j:2,' ',NPM:8,' ',NAMA);
Gotoxy(44,6+j);write(MKul);
Gotoxy(49,6+j);write(Nilai:8);
TNilai=(40%*Nilai Mid)+(60%*Nilai Sem);
END;
END;
Gotoxy(3,7+j);write('__________________________________________________');
Gotoxy(3,8+j);write(' TOTAL NILAI tnilai:10);
Repeat Until Keypressed;
end;
PROCEDURE MENU;
BEGIN
Clrscr;
Gotoxy(20,2);write('MENU MAHASISWA');
Gotoxy(10,3);write('________________________________________________');
Gotoxy(10,4);write('[1].Input Data Nilai Mahasiswa');
Gotoxy(10,5);write('[2].Output Data Nilai Mahasiswa');
Gotoxy(10,6);write('[3].Keluar Program');
Gotoxy(10,7);write('________________________________________________');
Gotoxy(10,8);write('Pilihan :');
END;
BEGIN{Program utama}
i:=1;Pil:='1';
while Pil<>'3'do
BEGIN
MENU;
Pil:=Readkey;
Case PIL of
'1':InputMAHASISWA;
'2':OutputMAHASISWA;
end;
END;
END.