Pages

Friday, May 25, 2012

Program Daftar Nilai Mahasiswa (Bahasa Pascal)

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.

2 comments

October 27, 2012 at 6:55 PM

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