Anda di halaman 1dari 4

{-------------------------- ALGORITMA ------------------------------}

Procedure IsiData(Output N : integer, Output NIM,Nama : Larik1,


Output Nilai : Larik2)
{I.S. : user memasukkan banyaknya data (N) dan array mahasiswa(1:N)}
{F.S. : menghasilkan banyaknya data (N) dan array mahasiswa(1:N)}
Kamus:
i : integer

Algoritma:
Input(N)
{validasi banyaknya data N)}
While (N < 1) or (N > MaksMhs) do
Output(‘Banyaknya data antara 1 – ‘,MaksMhs,’, Ulangi!’)
Input(N)
EndWhile

For i  1 to N do
Input(NIM(i),Nama(i),Nilai(i))
{validasi nilai}
While (Nilai(i) < 0) or (Nilai(i) > 100) do
Output(‘Nilai antara 0 – 100, Ulangi!’)
Input(Nilai(i))
EndWhile

EndFor
EndProcedure

Function IndeksNilai(Input NA : integer) char


{I.S. : nilai akhir (NA) sudah terdefinisi}
{F.S. : menghasilkan fungsi indeks nilai}
Kamus:

Algoritma:
Depend On (NA)
80..100 : IndeksNilai  ‘A’
70..79 : IndeksNilai  ‘B’
60..69 : IndeksNilai  ‘C’
50..59 : IndeksNilai  ‘D’
0..49 : IndeksNilai  ‘E’
EndDepend
EndFunction

Procedure TampilData(Input N : integer, Input NIM,Nama : Larik1,


Input Nilai : Larik2)
{I.S. : banyaknya data (N) dan array mahasiswa(1:N)sudah terdefinisi}
{F.S. : menampilkan array mahasiswa(1:N) dalam bentuk tabel}
Kamus:
i : integer
Function IndeksNilai(Input NA : integer) char

Algoritma:
Output(‘ DAFTAR NILAI MAHASISWA’)
Output(‘ ----------------------‘)
Output(‘--------------------------------------------------------‘)
Output(‘! No ! NIM ! Nama Mahasiswa ! Nilai ! Indeks Nilai !’)
Output(‘--------------------------------------------------------‘)

For i  1 to N do
Indeks(i)  IndeksNilai(Nilai(i)) {memanggil fungsi}
Output(i,NIM(i),Nama(i),Nilai(i),Indeks(i))
EndFor
Output(‘--------------------------------------------------------‘)

EndProcedure

{Algoritma Utama}
DataMahasiswa
{I.S. : user memasukkan banyaknya data (N) dan array mahasiswa(1:N)}
{F.S. : menampilkan array mahasiswa(1:N) dalam bentuk tabel}
Kamus:
Const
MaksMhs = 50
Type
Larik1 = array[1..MaksMhs] of string
Larik2 = array[1..MaksMhs] of integer
Larik3 = array[1..MaksMhs] of char

NIM,Nama : Larik1
Nilai : Larik2
Indeks : Larik3
N : integer {banyaknya data yang akan diolah}

Procedure IsiData(Output N : integer, Output NIM,Nama : Larik1,


Output Nilai : Larik2)
Procedure TampilData(Input N : integer, Input NIM,Nama : Larik1,
Input Nilai : Larik2)

Algoritma:
IsiData(N,NIM,Nama,Nilai)
TampilData(N,NIM,Nama,Nilai)
{-------------------------- PROGRAM ------------------------------}

program DataMahasiswa;
{I.S. : user memasukkan banyaknya data (N) dan array mahasiswa(1:N)}
{F.S. : menampilkan array mahasiswa(1:N) dalam bentuk tabel}
uses crt;
//kamus global
const
MaksMhs = 50;
type
Larik1 = array[1..MaksMhs] of string;
Larik2 = array[1..MaksMhs] of integer;
Larik3 = array[1..MaksMhs] of char;
var
NIM, Nama : Larik1;
Nilai : Larik2;
Indeks : Larik3;
N : integer; //banyaknya data mahasiswa yang akan diolah

procedure IsiData(var N : integer; var NIM,Nama : Larik1; var


Nilai:Larik2);
{I.S. : user memasukkan banyaknya data (N) dan array mahasiswa(1:N)}
{F.S. : menghasilkan banyaknya data (N) dan array mahasiswa(1:N)}
var
i : integer;
begin
write('Banyaknya Data Yang Akan Diolah : '); readln(N);
//validasi banyaknya data

clrscr;
for i := 1 to N do
begin
writeln('Data Mahasiswa Ke-',i);
write('NIM : '); readln(NIM[i]);
write('Nama : '); readln(Nama[i]);
write('Nilai : '); readln(Nilai[i]);
writeln;
end; //endfor
end; //endprocedure

function IndeksNilai(NA : integer) : char;


{I.S. : nilai akhir (NA) sudah terdefinisi}
{F.S. : menghasilkan fungsi indeks nilai}
begin
case (NA) of
80..100 : IndeksNilai := 'A';
70..79 : IndeksNilai := 'B';
60..69 : IndeksNilai := 'C';
50..59 : IndeksNilai := 'D';
0..49 : IndeksNilai := 'E';
end; //endcase
end; //endfunction

procedure TampilData(N : integer; NIM,Nama : Larik1; Nilai:Larik2);


{I.S. : banyaknya data (N) dan array mahasiswa(1:N)sudah terdefinisi}
{F.S. : menampilkan array mahasiswa(1:N) dalam bentuk tabel}
var
i : integer;
begin
clrscr;
writeln(' DAFTAR NILAI MAHASISWA');
writeln(' ----------------------');
writeln;
writeln('---------------------------------------------------');
writeln('| No | NIM | Nama Mahasiswa | Nilai | Indeks |');
writeln('---------------------------------------------------');
for i := 1 to N do
begin
Indeks[i] := IndeksNilai(Nilai[i]);
gotoxy(1,i+6);
write('| | | | | |');
gotoxy(3,i+6); write(i);
gotoxy(8,i+6); write(NIM[i]);
gotoxy(19,i+6); write(Nama[i]);
gotoxy(36,i+6); write(Nilai[i]);
gotoxy(46,i+6); write(Indeks[i]);
end; //endfor
writeln;
writeln('---------------------------------------------------');
end; //endprocedure

//badan program utama


begin
IsiData(N,NIM,Nama,Nilai);
TampilData(N,NIM,Nama,Nilai);
readln;
end.

Anda mungkin juga menyukai