uses crt;
const
maks_mhs=5;
type
Data_Mhs = record
NIM, Nama : string;
Nilai : integer;
Indeks : char;
end;
Array_Mhs = array[1..maks_mhs] of Data_Mhs;
var
Mhs : Array_Mhs;
i, j, jumA, jumB, jumC, jumD, jumE : integer;
tinggi, rendah: integer;
total_nilai, rata_nilai: real;
begin
gotoxy(29,1);write('DAFTAR NILAI MAHASISWA');
gotoxy(29,2);write('----------------------');
gotoxy(16,4);
write('===============================================');
gotoxy(16,5);
write('| NO | NIM | NAMA | NILAI | INDEKS |');
gotoxy(16,6);
write('-----------------------------------------------');
{Inisialisasi}
i:=1;
jumA:=0; jumB:=0; jumC:=0; jumD:=0; jumE:=0;
total_nilai:=0;
gotoxy(16,7);
write('| | | | | |');
{Menampilkan nomor urut pertama}
gotoxy(18,7);write(i);
{Memasukkan NIM pertama}
gotoxy(23,7);readln(Mhs[i].NIM);
{Mengecek apakah NIM yang dimasukkan 'stop' atau bukan}
while(Mhs[i].NIM <> 'stop') and (i <= maks_mhs) do
begin
{Memasukkan Nama}
gotoxy(34,i+6);readln(Mhs[i].Nama);
{Memasukkan Nilai}
gotoxy(48,i+6);readln(Mhs[i].Nilai);
{Menentukan Indeks Nilai}
case (Mhs[i].Nilai) of
80..100: begin
Mhs[i].Indeks := 'A';
jumA := jumA + 1;
end;
70..79 : begin
Mhs[i].Indeks := 'B';
jumB := jumB + 1;
end;
60..69 : begin
Mhs[i].Indeks := 'C';
jumC := jumC + 1;
end;
50..59 : begin
Mhs[i].Indeks := 'D';
jumD := jumD + 1;
end;
0..49 : begin
Mhs[i].Indeks := 'E';
jumE := jumE + 1;
end;
end; {endcase}
{Menampilkan Indekas Nilai}
gotoxy(58,i+6);write(Mhs[i].Indeks);
{Menghitung Total Nilai}
total_nilai := total_nilai + Mhs[i].Nilai;
{Menambah indeks berikutnya}
i:= i+1;
gotoxy(16,i+6);
write('| | | | | |');
{Menampilkan nomor urut pertama}
gotoxy(18,i+6);write(i);
{Memasukkan NIM berikutnya}
gotoxy(23,i+6);readln(Mhs[i].NIM);
end; {endwhile}
gotoxy(16,i+6);
write('-----------------------------------------------');
{Menghitung rata-rata nilai}
i:= i-1; {banyaknya data}
rata_nilai:= total_nilai/i;
{Menampikan Rata-rata Nilai}
gotoxy(16,i+9);
write('Rata-rata Nilai : ',rata_nilai:0:1);
{Menentukan nilai tertinggi dan terendah}
tinggi:=Mhs[1].Nilai;
rendah:=Mhs[1].Nilai;
for j:= 2 to i do
begin
if (Mhs[j].Nilai >= tinggi)
then
tinggi:=Mhs[j].Nilai;
if (Mhs[j].Nilai <= rendah)
then
rendah:=Mhs[j].Nilai;
end;
{Menampilkan Nilai Tertinggi dan Nilai Terendah}
gotoxy(16,i+10);
write('Nilai Tertinggi : ',tinggi);
gotoxy(16,i+11);
write('Nilai Terendah : ',rendah);
{Menampilkan jumlah per indeks}
gotoxy(16,i+12);
write('Jumlah Indeks A : ',jumA,' Mahasiswa');
gotoxy(16,i+13);
write('Jumlah Indeks B : ',jumB,' Mahasiswa');
gotoxy(16,i+14);
write('Jumlah Indeks C : ',jumC,' Mahasiswa');
gotoxy(16,i+15);
write('Jumlah Indeks D : ',jumD,' Mahasiswa');
gotoxy(16,i+16);
write('Jumlah Indeks E : ',jumE,' Mahasiswa');
readln;
end.
const
maks_mhs=5;
type
Data_Mhs = record
NIM, Nama : string;
Nilai : integer;
Indeks : char;
end;
Array_Mhs = array[1..maks_mhs] of Data_Mhs;
var
Mhs : Array_Mhs;
i, j, jumA, jumB, jumC, jumD, jumE : integer;
tinggi, rendah: integer;
total_nilai, rata_nilai: real;
begin
gotoxy(29,1);write('DAFTAR NILAI MAHASISWA');
gotoxy(29,2);write('----------------------');
gotoxy(16,4);
write('===============================================');
gotoxy(16,5);
write('| NO | NIM | NAMA | NILAI | INDEKS |');
gotoxy(16,6);
write('-----------------------------------------------');
{Inisialisasi}
i:=1;
jumA:=0; jumB:=0; jumC:=0; jumD:=0; jumE:=0;
total_nilai:=0;
gotoxy(16,7);
write('| | | | | |');
{Menampilkan nomor urut pertama}
gotoxy(18,7);write(i);
{Memasukkan NIM pertama}
gotoxy(23,7);readln(Mhs[i].NIM);
{Mengecek apakah NIM yang dimasukkan 'stop' atau bukan}
while(Mhs[i].NIM <> 'stop') and (i <= maks_mhs) do
begin
{Memasukkan Nama}
gotoxy(34,i+6);readln(Mhs[i].Nama);
{Memasukkan Nilai}
gotoxy(48,i+6);readln(Mhs[i].Nilai);
{Menentukan Indeks Nilai}
case (Mhs[i].Nilai) of
80..100: begin
Mhs[i].Indeks := 'A';
jumA := jumA + 1;
end;
70..79 : begin
Mhs[i].Indeks := 'B';
jumB := jumB + 1;
end;
60..69 : begin
Mhs[i].Indeks := 'C';
jumC := jumC + 1;
end;
50..59 : begin
Mhs[i].Indeks := 'D';
jumD := jumD + 1;
end;
0..49 : begin
Mhs[i].Indeks := 'E';
jumE := jumE + 1;
end;
end; {endcase}
{Menampilkan Indekas Nilai}
gotoxy(58,i+6);write(Mhs[i].Indeks);
{Menghitung Total Nilai}
total_nilai := total_nilai + Mhs[i].Nilai;
{Menambah indeks berikutnya}
i:= i+1;
gotoxy(16,i+6);
write('| | | | | |');
{Menampilkan nomor urut pertama}
gotoxy(18,i+6);write(i);
{Memasukkan NIM berikutnya}
gotoxy(23,i+6);readln(Mhs[i].NIM);
end; {endwhile}
gotoxy(16,i+6);
write('-----------------------------------------------');
{Menghitung rata-rata nilai}
i:= i-1; {banyaknya data}
rata_nilai:= total_nilai/i;
{Menampikan Rata-rata Nilai}
gotoxy(16,i+9);
write('Rata-rata Nilai : ',rata_nilai:0:1);
{Menentukan nilai tertinggi dan terendah}
tinggi:=Mhs[1].Nilai;
rendah:=Mhs[1].Nilai;
for j:= 2 to i do
begin
if (Mhs[j].Nilai >= tinggi)
then
tinggi:=Mhs[j].Nilai;
if (Mhs[j].Nilai <= rendah)
then
rendah:=Mhs[j].Nilai;
end;
{Menampilkan Nilai Tertinggi dan Nilai Terendah}
gotoxy(16,i+10);
write('Nilai Tertinggi : ',tinggi);
gotoxy(16,i+11);
write('Nilai Terendah : ',rendah);
{Menampilkan jumlah per indeks}
gotoxy(16,i+12);
write('Jumlah Indeks A : ',jumA,' Mahasiswa');
gotoxy(16,i+13);
write('Jumlah Indeks B : ',jumB,' Mahasiswa');
gotoxy(16,i+14);
write('Jumlah Indeks C : ',jumC,' Mahasiswa');
gotoxy(16,i+15);
write('Jumlah Indeks D : ',jumD,' Mahasiswa');
gotoxy(16,i+16);
write('Jumlah Indeks E : ',jumE,' Mahasiswa');
readln;
end.
Cara ke2 menentukan program indeks pascal