program Mahasiswa; uses crt; const MaksData = 20; MaksNilai = 3; Type TNilai = record matkul : string; uts : integer; uas : integer; end; //aray of TNilai DataNilai = array[1..MaksNilai] of TNilai; TMhs = record nim : string; nama : string; nilai : DataNilai; n_akhir: real; end; //array of TMhs DataMhs = array [1..MaksData] of TMhs; var Data : DataMhs; jumlah_data : integer; menu : integer; procedure tambahNilaiMhs(var nilai:DataNilai); var i : integer; begin for i:=1 to MaksNilai do begin writeln(); writeln('======================================'); write(' Nama Mata Kuliah : ');readln(nilai[i].matkul); write(' Nilai UTS : ');readln(nilai[i].uts); write(' Nilai UAS : ');readln(nilai[i].uas); end; writeln(); writeln('selesai... '); end; procedure inputData(index : integer;var DMhs:DataMhs); var pilih : char; begin write(' NIM :');readln(DMhs[index].nim); write(' Nama :');readln(DMhs[index].nama); repeat writeln(); write('Mau masukan nilai ? [y/t] '); readln(pilih); until((pilih = 'y') or (pilih = 't')); writeln(); if (pilih = 'y') then tambahNilaiMhs(DMhs[index].nilai); writeln('silahkan tekan sembarangan tombol untuk melanjutkan...'); end; procedure isiDataMahasiswa(var DMhs:DataMhs); var i : integer; begin clrscr; for i:=1 to jumlah_data do begin writeln('Jumlah data maksimum adalah ',MaksData,' dan Array Data yang digunakan ',jumlah_data); writeln(); writeln('Masukan Data Mahasiswa ke-',i); writeln(); inputData(i,DMhs); readkey; end; end; procedure ubahDataMahasiswa(var DMhs:DataMhs); var index,i,k : integer; pilih : char; begin clrscr; repeat write('Masukan index data mahasiswa yang ingin di rubah : ');readln(index); until(index<=jumlah_data); writeln('Data Mahasiswa ke-',index); writeln(); writeln(' NIM :',DMhs[index].nim); writeln(' Nama :',DMhs[index].nama); writeln(); if(DMhs[index].nilai[1].uts <> 0) then begin for i :=1 to MaksNilai do begin writeln('Nilai : '); writeln(' Matkul :',DMhs[index].nilai[i].matkul); writeln(' Nilai UTS:',DMhs[index].nilai[i].uts); writeln(' Nilai UTS:',DMhs[index].nilai[i].uas); writeln('====================================='); end; end; writeln(); writeln('================================='); writeln(' Silahkan masukan data yang baru'); writeln('================================='); inputData(index,DMhs); readkey; end; procedure SelectionDataMahasiswa(var DMhs:DataMhs); begin end; begin repeat write('Masukan jumlah data : ');readln(jumlah_data); until (jumlah_data