wyndy

program perhitungan nilai mahasiswa dan grade nilai

Oct 22nd, 2014
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. uses wincrt;
  2.  
  3. type
  4. TMahasiswa = record
  5. NIM : string [10];
  6. nama : string;
  7. nilai_UTS : real;
  8. nilai_UAS : real;
  9. end;
  10.  
  11. {mendefinisikan prosedur yang di dalamnya memiliki fungsi yang bersifat lokal}
  12. procedure DaftarNilaiSiswa (A: array of TMahasiswa);
  13.  
  14. {mendefinisikan fungsi untuk menghitung nilai akhir dan melakukan konversi langsung ke dalam nilai indeks}
  15. function TentukanIndeks(nUts, nUas : real): char;
  16. var
  17. NA : real; {untuk menyimpan nilai akhir}
  18. nIndeks : char; {untuk menyimpan nilai indeks}
  19. begin
  20. {menghitung nilai akhir dengan rumus
  21. NA = 40% x UTS + 60% x UAS}
  22. NA := (0.4 * nUts) + (0.6 * nUas);
  23.  
  24. {menghitung nilai indeks dari nilai akhir yang dihasilkan}
  25. if (NA >= 81) then begin
  26. nIndeks := 'A';
  27. end else begin
  28. if (NA >= 66) then begin
  29. nIndeks := 'B';
  30. end else begin
  31. if (NA >= 56) then begin
  32. nIndeks := 'C';
  33. end else begin
  34. if (NA >= 45) then begin
  35. nIndeks := 'D';
  36. end else begin
  37. nIndeks := 'E';
  38. end;
  39. end;
  40. end;
  41. end;
  42. TentukanIndeks := nIndeks;
  43. end; {Akhir fungsi}
  44. {Variable lokal untuk prosedur}
  45. var
  46. i : integer; {Variable untuk indeks pengulangan}
  47. idx : char;
  48. begin
  49. writeln('DAFTAR NILAI SISWA');
  50. writeln;
  51. writeln('NIM' : 10, ' ', 'NAMA' : 25, ' ', 'NILAI ' : 7);
  52. for i := low(A) to high(A) do begin
  53. {Menggunakan funsi TentukanIndeks}
  54. idx := TentukanIndeks(A[i].nilai_UTS, A[i].nilai_UAS);
  55. {menampilkan hasil kelayar}
  56. writeln(A[i].NIM :10, ' ',A[i].nama :25, ' ',idx :7);
  57. end;
  58. end;
  59.  
  60. {program utama}
  61. var
  62. Siswa : array[1..3] of TMahasiswa;
  63. j : integer;
  64. begin
  65. write('MASUKAN DATA SISWA');
  66. writeln;
  67. for j :=1 to 3 do begin
  68. writeln('Siswa ke- ', j);
  69. with Siswa [j] do begin
  70. write('NIM : ') ; readln(NIM);
  71. write('Nama : ') ; readln(nama);
  72. write('Nilai UTS : ') ; readln(nilai_UTS);
  73. write('Nilai UAS : ') ; readln(nilai_UAS);
  74. end;
  75. writeln;
  76. end;
  77. DaftarNilaiSiswa(siswa); {memanggil prosedur}
  78. readln;
  79. end.
Advertisement
Add Comment
Please, Sign In to add comment