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:
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 !!!