program record_data_mahasiswa;
uses wincrt;
const nMaks = 100;
Mn = 10;
type
matakuliah = record
kodemk : string[8];
namamk : string[20];
sks : integer;
nilai : string[2];
sksxnilai : real;
end;
mahasiswa = record
NIM : string[15];
nama : string[20];
skstotal : integer;
nilaitotal: real;
ip : real;
mk : array[1..Mn] of matakuliah;
end;
var
TabMhs : array[1..nMaks] of mahasiswa;
I, J, M, N : integer;
nilaiN : real;
nilaiH : string[2];
tambah : char;
procedure konversinilai;
begin
nilaiH := TabMhs[I].mk[J].nilai;
if (NilaiH = 'A') or (nilaiH = 'a') then nilaiN := 4
else if (nilaiH = 'B+') or (nilaiH = 'b+') then nilaiN := 3.5
else if (nilaiH = 'B') or (nilaiH = 'b') then nilaiN := 3
else if (nilaiH = 'C+') or (nilaiH = 'c+') then nilaiN := 2.5
else if (nilaiH = 'C') or (nilaiH = 'c') then nilaiN := 2
else if (nilaiH = 'D+') or (nilaiH = 'd+') then nilaiN := 1.5
else if (nilaiH = 'D') or (nilaiH = 'd') then nilaiN := 1
else nilaiN := 0;
end;
procedure bacadata;
begin
for I := 1 to N do
begin
write('NRP Mahasiswa ke - ',I,' = ');readln(TabMhs[I].NIM);
write('Nama Mahasiswa ke - ',I,' = ');readln(TabMhs[I].nama);
write('Jumlah Mata Kuliah = ');readln(M);
writeln('--------------------------------------------------');
for J := 1 to M do
begin
write('Kode Matakuliah ke - ',J,' = ');readln(TabMhs[I].mk[J].kodemk);
write('Nama Matakuliah = ');readln(TabMhs[I].mk[J].namamk);
write('SKS Matakuliah = ');readln(TabMhs[I].mk[J].sks);
write('nilai Matakuliah = ');readln(TabMhs[I].mk[J].nilai);
writeln('--------------------------------------------------');
end;
end;
end;
procedure tampildata;
begin
for I:= 1 to N do
begin
writeln (' Kartu Hasil Studi ');
writeln (' Jurusan Teknik Informatika ');
writeln (' Fakultas Teknik - Universitas Trunojoyo ');
writeln (' Semester Ganjil 2010/2011 ');
writeln('===============================================================');
writeln('Nama Mahasiswa : ',TabMhs[I].nama);
writeln('NRP Mahasiswa : ',TabMhs[I].NIM);
writeln('---------------------------------------------------------------');
writeln(' No Kode MK Nama Mata Kuliah SKS Nilai SKS x Nilai');
writeln('---------------------------------------------------------------');
for J := 1 to M do
begin
konversinilai;
TabMhs[I].mk[J].sksxnilai := nilaiN * TabMhs[I].mk[J].sks;
writeln(J:2,TabMhs[I].mk[J].kodemk:13,TabMhs[I].mk[J].namamk:20,TabMhs[I].mk[J].sks:5,TabMhs[I].mk[J].nilai:7,
TabMhs[I].mk[J].sksxnilai:13:1);
TabMhs[I].skstotal := TabMhs[I].skstotal + TabMhs[I].mk[J].sks;
TabMhs[I].nilaitotal := TabMhs[I].nilaitotal + TabMhs[I].mk[J].sksxnilai;
end;
writeln('---------------------------------------------------------------');
writeln(' TOTAL ',TabMhs[I].skstotal:7,TabMhs[I].nilaitotal:20:1);
writeln('---------------------------------------------------------------');
end;
end;
begin
write('Masukkan Jumlah Mahasiswa = ');readln(N);
repeat
bacadata;
tampildata;
write ('Apakah Anda Ingin Memasukkan Data Mahasiswa Lagi? [Y/N] : ');readln(tambah);
tambah := upcase(tambah);
until (tambah <> 'Y');
end.
uses wincrt;
const nMaks = 100;
Mn = 10;
type
matakuliah = record
kodemk : string[8];
namamk : string[20];
sks : integer;
nilai : string[2];
sksxnilai : real;
end;
mahasiswa = record
NIM : string[15];
nama : string[20];
skstotal : integer;
nilaitotal: real;
ip : real;
mk : array[1..Mn] of matakuliah;
end;
var
TabMhs : array[1..nMaks] of mahasiswa;
I, J, M, N : integer;
nilaiN : real;
nilaiH : string[2];
tambah : char;
procedure konversinilai;
begin
nilaiH := TabMhs[I].mk[J].nilai;
if (NilaiH = 'A') or (nilaiH = 'a') then nilaiN := 4
else if (nilaiH = 'B+') or (nilaiH = 'b+') then nilaiN := 3.5
else if (nilaiH = 'B') or (nilaiH = 'b') then nilaiN := 3
else if (nilaiH = 'C+') or (nilaiH = 'c+') then nilaiN := 2.5
else if (nilaiH = 'C') or (nilaiH = 'c') then nilaiN := 2
else if (nilaiH = 'D+') or (nilaiH = 'd+') then nilaiN := 1.5
else if (nilaiH = 'D') or (nilaiH = 'd') then nilaiN := 1
else nilaiN := 0;
end;
procedure bacadata;
begin
for I := 1 to N do
begin
write('NRP Mahasiswa ke - ',I,' = ');readln(TabMhs[I].NIM);
write('Nama Mahasiswa ke - ',I,' = ');readln(TabMhs[I].nama);
write('Jumlah Mata Kuliah = ');readln(M);
writeln('--------------------------------------------------');
for J := 1 to M do
begin
write('Kode Matakuliah ke - ',J,' = ');readln(TabMhs[I].mk[J].kodemk);
write('Nama Matakuliah = ');readln(TabMhs[I].mk[J].namamk);
write('SKS Matakuliah = ');readln(TabMhs[I].mk[J].sks);
write('nilai Matakuliah = ');readln(TabMhs[I].mk[J].nilai);
writeln('--------------------------------------------------');
end;
end;
end;
procedure tampildata;
begin
for I:= 1 to N do
begin
writeln (' Kartu Hasil Studi ');
writeln (' Jurusan Teknik Informatika ');
writeln (' Fakultas Teknik - Universitas Trunojoyo ');
writeln (' Semester Ganjil 2010/2011 ');
writeln('===============================================================');
writeln('Nama Mahasiswa : ',TabMhs[I].nama);
writeln('NRP Mahasiswa : ',TabMhs[I].NIM);
writeln('---------------------------------------------------------------');
writeln(' No Kode MK Nama Mata Kuliah SKS Nilai SKS x Nilai');
writeln('---------------------------------------------------------------');
for J := 1 to M do
begin
konversinilai;
TabMhs[I].mk[J].sksxnilai := nilaiN * TabMhs[I].mk[J].sks;
writeln(J:2,TabMhs[I].mk[J].kodemk:13,TabMhs[I].mk[J].namamk:20,TabMhs[I].mk[J].sks:5,TabMhs[I].mk[J].nilai:7,
TabMhs[I].mk[J].sksxnilai:13:1);
TabMhs[I].skstotal := TabMhs[I].skstotal + TabMhs[I].mk[J].sks;
TabMhs[I].nilaitotal := TabMhs[I].nilaitotal + TabMhs[I].mk[J].sksxnilai;
end;
writeln('---------------------------------------------------------------');
writeln(' TOTAL ',TabMhs[I].skstotal:7,TabMhs[I].nilaitotal:20:1);
writeln('---------------------------------------------------------------');
end;
end;
begin
write('Masukkan Jumlah Mahasiswa = ');readln(N);
repeat
bacadata;
tampildata;
write ('Apakah Anda Ingin Memasukkan Data Mahasiswa Lagi? [Y/N] : ');readln(tambah);
tambah := upcase(tambah);
until (tambah <> 'Y');
end.
Tidak ada komentar:
Posting Komentar