Program Mencari Nilai Rata-rata Mahasiswa

Pada soal nomor 4 Ujian Konversi Mata kuliah Algoritma dan Pemograman pada Program Studi Ekstensi S1 Ilmu Komputer USU ada pertanyaan sebagai berikut:

Soal No. 4

Buatlah algoritma dan program komputer untuk menampilkan nilai rata-rata tes maksimal 50 orang mahasiswa S1 Ilmu Komputer FMIPA USU, dengan ketentuan sebagai berikut:
– Nilai UTS = 30%
– Nilai Tugas = 20%
– Nilai UAS = 50%
Nama dan nilai ditentukan sembarang

Bagaimanakah membuat program tersebut dalam bahasa Pascal. Sebelum membuat program tersebut, kita akan mencari bagaimana cara menjumlahkan nilai rata-rata dari UTS 30% + Tugas 20% + UAS 50%.

Caranya cukup mudah, yaitu dengan mengkalikan setiap elemen dengan persennya. Lihat tabel di bawah ini:

+-------------+---------+-----------+---------+-------+
|             | UTS 30% | Tugas 20% | UAS 50% | TOTAL |
+-------------+---------+-----------+---------+-------+
| Nilai Awal  |   100   |    100    |   100   |   -   |
| Nilai Akhir |    30   |     20    |    50   |  100  |
+-------------+---------+-----------+---------+-------+

Rumus dari JUMLAH adalah (UTS x 30%) + (Tugas x 20%) + (UAS x 50%).

Untuk membuat dalam bentuk pemograman kita menggunakan masukan array agar bisa menyimpan banyak data untuk kita urutkan nantinya. Adapun bahasa programnya dalam Pascal adalah sebagai berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
program Mahasiswa;
 
uses Crt;
 
const
  Garis : String = '-------------------------------------------------------------------------------';
 
var
   UAS, Tugas, UTS: Array [1..10] of Integer;
   Nama: Array [1..10] of String;
   n, i, bar: Integer;
   jumlah: Real;
   nilai: Char;
 
begin
   ClrScr;
   Write('Data Mahasiswa yang ingin diinput? : ');
   Readln(n);
 
   if n > 50 then n := 50;
 
   for i:=1 to n do
   begin
      ClrScr;
	  GotoXY(30,4+1); Write('Data Ke-:',i:2,' dari ',n,' mahasiswa');
	  GotoXY(10,5+i); Write('Nama: '); Readln(Nama[i]);
	  GotoXY(10,6+i); Write('Nilai UTS: '); Readln(UTS[i]);
	  GotoXY(10,7+i); Write('Nilai Tugas: '); Readln(Tugas[i]);
	  GotoXY(10,8+i); Write('Nilai UAS: '); Readln(UAS[i]);
   end;
 
   ClrScr;
   GotoXY(5,4); Write(Garis);
   GotoXY(5,5); Write('No');
   GotoXY(9,5); Write('Nama');
   GotoXY(38,5); Write('UTS');
   GotoXY(45,5); Write('Tugas');
   GotoXY(52,5); Write('UAS');
   GotoXY(59,5); Write('Nilai');
   GotoXY(66,5); Write('Abjad');
   GotoXY(5,6); Write(Garis);
 
   bar:= 7;
 
   for i:=1 to n do
   begin
      jumlah := UTS[i]*0.3 + Tugas[i]*0.2 + UAS[i]*0.5;
	  if jumlah >= 90 then nilai := 'A'
	  else if jumlah > 75 then nilai := 'B'
	  else if jumlah > 65 then nilai := 'C'
	  else if jumlah > 45 then nilai := 'D'
	  else nilai := 'E';
 
	  GotoXY(5,bar); Writeln(i:2);
	  GotoXY(9,bar); Writeln (Nama[i]);
	  GotoXY(38,bar); Writeln (UTS[i]);
	  GotoXY(45,bar); Writeln (Tugas[i]);
	  GotoXY(50,bar); Writeln (UAS[i]:4);
	  GotoXY(59,bar); Writeln (jumlah:5:1);
	  GotoXY(69,bar); Writeln (nilai);
	  bar:=bar+1;
   end;
 
   GotoXY(5,bar+1); Writeln(garis);
   Readln;
 
end.

Semoga membantu !!!