Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses wincrt;
- type
- TMahasiswa = record
- NIM : string [10];
- nama : string;
- nilai_UTS : real;
- nilai_UAS : real;
- end;
- {mendefinisikan prosedur yang di dalamnya memiliki fungsi yang bersifat lokal}
- procedure DaftarNilaiSiswa (A: array of TMahasiswa);
- {mendefinisikan fungsi untuk menghitung nilai akhir dan melakukan konversi langsung ke dalam nilai indeks}
- function TentukanIndeks(nUts, nUas : real): char;
- var
- NA : real; {untuk menyimpan nilai akhir}
- nIndeks : char; {untuk menyimpan nilai indeks}
- begin
- {menghitung nilai akhir dengan rumus
- NA = 40% x UTS + 60% x UAS}
- NA := (0.4 * nUts) + (0.6 * nUas);
- {menghitung nilai indeks dari nilai akhir yang dihasilkan}
- if (NA >= 81) then begin
- nIndeks := 'A';
- end else begin
- if (NA >= 66) then begin
- nIndeks := 'B';
- end else begin
- if (NA >= 56) then begin
- nIndeks := 'C';
- end else begin
- if (NA >= 45) then begin
- nIndeks := 'D';
- end else begin
- nIndeks := 'E';
- end;
- end;
- end;
- end;
- TentukanIndeks := nIndeks;
- end; {Akhir fungsi}
- {Variable lokal untuk prosedur}
- var
- i : integer; {Variable untuk indeks pengulangan}
- idx : char;
- begin
- writeln('DAFTAR NILAI SISWA');
- writeln;
- writeln('NIM' : 10, ' ', 'NAMA' : 25, ' ', 'NILAI ' : 7);
- for i := low(A) to high(A) do begin
- {Menggunakan funsi TentukanIndeks}
- idx := TentukanIndeks(A[i].nilai_UTS, A[i].nilai_UAS);
- {menampilkan hasil kelayar}
- writeln(A[i].NIM :10, ' ',A[i].nama :25, ' ',idx :7);
- end;
- end;
- {program utama}
- var
- Siswa : array[1..3] of TMahasiswa;
- j : integer;
- begin
- write('MASUKAN DATA SISWA');
- writeln;
- for j :=1 to 3 do begin
- writeln('Siswa ke- ', j);
- with Siswa [j] do begin
- write('NIM : ') ; readln(NIM);
- write('Nama : ') ; readln(nama);
- write('Nilai UTS : ') ; readln(nilai_UTS);
- write('Nilai UAS : ') ; readln(nilai_UAS);
- end;
- writeln;
- end;
- DaftarNilaiSiswa(siswa); {memanggil prosedur}
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment