Untitled

mail@pastecode.io avatar
unknown
pascal
2 years ago
2.2 kB
1
Indexable
Never
program pemdas_p3_n1;

{$APPTYPE CONSOLE}

uses
  SysUtils, crt;
var
  //pendeklarasian variabel dengan tipe datanya masing-masing
  i, j, n : Integer;
  nilai_akhir : Real;
  nama : array[1..100] of string;
  //kenapa real? karena array ini akan dioperasikan dengan array lain
  nilai_tugas, nilai_uts, nilai_uas : array[1..100] of Real;
  nrp : array[1..100] of integer;
begin
  ClrScr;
  //penginputan n/ jumlah mahasiswa
  write('Masukkan Jumlah Mahasiswa yang ingin dimasukkan datanya : ');read(n);
  //pemberi jarak 1 baris
  Writeln;
  //perulangan dengan deklarasi i = 1 sampai n
  for i := 1 to n do
  begin
    Writeln('Mahasiswa Ke-',i);
    //perulangan yang ditujukan untuk mengisi array nrp,nama,nilai_tugas,nilai_uts
    //nilai_uas.. contoh nrp[i] jika dalam perulangan pertama maka i = 1, maka
    // pengisian array index nrp pertama, dan seterusnya
    Write('Masukkan NRP         : ');Readln(nrp[i]);
    Write('Masukkan Nama        : ');Readln(nama[i]);
    Write('Masukkan Nilai Tugas : ');Readln(nilai_tugas[i]);
    Write('Masukkan Nilai UTS   : ');Readln(nilai_uts[i]);
    Write('Masukkan Nilai UAS   : ');Readln(nilai_uas[i]);
    Writeln;
  end;
    //pemisah nilai kelas dengan data mahasiswa
    Writeln('-- Nilai Kelas --');
  //perulangan dengan deklarasi j= 1 sampai n
  for j := 1 to n do
  begin
    //perulangan yang ditujukan untuk menghitung nilai akhir
    Writeln(j,'. ', nama[j], ' (',nrp[j],')');
    //penampilan nilai dari var n_tugas, n_uts, n_uas
    Writeln('Nilai Tugas : ', nilai_tugas[j]:0:2);
    Writeln('Nilai UTS : ', nilai_uts[j]:0:2);
    Writeln('Nilai UAS : ', nilai_uas[j]:0:2);
    //penghitungan nilai akhir(20% tugas + 40% uts + 40% uas)
    nilai_akhir := (nilai_tugas[j] * 0.2) + (nilai_uts[j] *0.4) + (nilai_uas[j] *0.4);
    //penampilan output nilai akhir
    Writeln('Nilai Akhir : ', nilai_akhir:0:2);
    //percabangan jika nilai akhir <= 60 maka dinyatakan tidak lulus, dan jika
    // nilai akhirnya >60 maka dinyatakan lulus
    if nilai_akhir <= 60 then Writeln('Anda dinyatakan tidak lulus')
    else if nilai_akhir > 60 then writeln('Anda dinyatakan lulus');
    Writeln;
  end;
  ReadKey;
end.