
andrypein.net : Sepertinya ini bagian terkahir tentang array-array pada pascal dab lanjutan yang kemarin gan jika yang kemarin merupakan Array Berisi Record maka sekarang adalah kebalikannya, yaitu Record Berisi Array.
Contoh programnya yaitu berupa perhitungan nilai mahasiswa yang memiliki tiga buah nilai (nilai kuis,nilai UTS,nilai UAS). Adapun nilai akhir (NA) akan dihitung berdasarkna ketentuan berikut.
NA = (20% x kuis)+(30% x UTS)+(50% x UAS).
Berdasarkan kasus diatas,kita dapat mendefinisikan mahasiswa kedalam sebuah record yang didalamnya mengandung field bertipe array,dengan penulisan kode seperti berikut:
type TSiswa = record NIM:string[8]; Nama:string[30]; Nilai:array[1..3] of real; end;
kode diatas menunjukan bahwa setiap mahasiswa memiliki tiga buah nilai.
berikut contoh programnya:
program RecordArray;
uses wincrt;
const max = 100;
type
TSiswa = record
NIM:string[8];
Nama:string[30];
Nilai:array[1..3] of real;
end;
TKumpulanSiswa = array[1..max] of TSiswa;
var
A : TKumpulanSiswa;
i,n : integer;
NA : real
begin
write('Masukan jumlah siswa yang akan diisikan: ');
readln(n);
writeln;
{Memasukan data}
writeln('Memasukan Data');
writeln('----------------');
for i:=1 to n do begin
writeln('Data siswa ke-',i);
with A[i] do begin
write('NIM :');readln(NIM);
write('Nama :');readln(Nama);
writeln('Nilai');
write('Nilai 1(kuis): ');readln(nilai[1]);
write('Nilai 2(UTS): ');readln(nilai[2]);
write('Nilai 3(UAS): ');readln(nilai[3]);
end;
writeln;
end;
{Menampilkan data}
writeln('DAFTAR NILAI MAHASISWA');
writeln('==========================');
writeln('NIM':8, '':2, 'NAMA':25, '':2, 'NILAI');
writeln('==========================');
for i:=1 to n do begin
with A[i] do begin
NA:=(0.2*Nilai[1])+(0.3*Nilai[2])+(0.5*Nilai[3]);
write(NIM:8, '':2, Nama:25, '':2, NA:0:2);
end;
writeln;
end;
end.




