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