program Daftar_Nilai_Mahasiswa;
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.
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.
2 comments
gan, bisa bantu ane buatin contoh program pascal tentang linked list yg berkaitan dengan create, update, insert, delete. tolong kirimin jwaban ente ke email ane yg ini ya gan akbarsaladin77@gmail.com .smoga ente mw bantu ane. trimksh;)
Post a Comment