Tuesday, November 1, 2016

Memasukkan Data Mahasiswa Dalam Bentuk Record dalam Pascal

Tugas :

Buatlah progam untuk memasukkan sejumlah data nilai mahasiswa dalam bentuk record. Data yang dimasukkan adalah Nim, Nama, Nilai UTS, Nilai UAS, Nilai Tugas. Setelah semua data dimasukkan, semua data ditampilkan dalam bentuk tabel yang diurutkan secara descending berdasarkan nilai rata-rata tiap mahasiswa, kemudian konversi nilai rata-rata ke dalam nilai angka dengan aturan.
Rata-rata >= 80 nilai huruf A keterangan Lulus
Rata-rata >= 70 nilai huruf B keterangan Lulus
Rata-rata >= 60 nilai huruf C keterangan Lulus
Rata-rata >= 50 nilai huruf D keterangan Tidak Lulus
Rata-rata < 50 nilai huruf E keterangan Tidak Lulus
Contoh output program :
Jumlah Data : 2
Data ke-1
N I M : 11010001
N a m a : Jono
Nilai UTS : 50
Nilai UAS : 50
Nilai TUGAS : 50
Data ke-2
N I M : 11010002
N a m a : Hari
Nilai UTS : 90
Nilai UAS : 90
Nilai TUGAS : 90




keterangan program:

1.  Pendeklarasian dari type data record. Dengan kita mendeklarasikan seluruh data yang ingin dimaksukkan kedalam table.

program nilai_mahasiswa;
Uses Crt;
Type Nilai = Record
     Nim        : longint;
     Nama       : String;
     Tugas      : Real;
     UTS        : Real;
     UAS        : Real;
     Na         : Real;
     huruf      : Char;
     keterangan : string;
  End;

2.  pendeklarasian variable yang akan di pakai di semua program.
Var
    Mhs : Array[1..50] of Nilai;
    I   : Integer;
    n : integer;

3.  kemudian dengan menggunakan procedure kita buat cara untuk menampilkan data.

procedure input_data;
begin
Clrscr;
write('masukkan jumlah mahasiswa = ');
readln(n);
For I := 1 To n Do
    Begin
      With Mhs[i] Do
      Begin
       Writeln('Mahasiswa ke : ',i:2);
       Write('Nim   : ');Readln(Nim);
       Write('Nama  : ');Readln(Nama);
       Write('Tugas : ');Readln(Tugas);
       Write('UTS   : ');Readln(Uts);
       Write('UAS   : ');Readln(Uas);
      End;
    End;
end;

4.  kemudian dengan procedure lagi kita buat untuk menghitung data. Dari menghitung rata-rata sampai pernyataan lulus atau tidak lulus.

procedure hitung_data;
begin
For i := 1 To n Do
    Begin
    With Mhs[i] Do
        Begin
           Na := (Tugas + Uts + Uas) / 3;
           If (Na >= 80) Then huruf := 'A' Else
           If (Na < 80) and (Na>=70) Then huruf := 'B' Else
           If (Na < 70) and (Na>=60) Then huruf := 'C' Else
           If (Na < 60) and (Na>=50) Then huruf := 'D' Else
           huruf :='E';
        End;
    End;
end;

procedure tampil_keterangan;
begin
     for i := 1 to n do
        begin
        with mhs[i] do
             begin
                  if huruf = 'A' then keterangan := 'lulus' else
                  if huruf = 'B' then keterangan := 'lulus' else
                  if huruf = 'C' then keterangan := 'lulus' else
                  if huruf = 'D' then keterangan := 'tidak lulus' else
                  keterangan := 'tidak lulus';
             end;
        end;
end;

5.  kemudian selanjutnya membuat prosedur untuk menampilkan seluruh data yang tadi telah di imputkan.

procedure tampil_data;
begin
clrscr;
gotoxy(25,1); writeln('H A S I L  P R O S E S');
Writeln('+---+---------+-------------+------+-----+-----+----------+------+----------+');
Writeln('|NO |NIM      |NAMA         |TUGAS |UTS  |UAS  |RATA-RATA |HURUF |KETERANGAN|');
Writeln('+---+---------+-------------+------+-----+-----+----------+------+----------+');
For i := 1 To n Do
Begin
      With Mhs[i] Do
        Begin
             gotoxy(2, 4+i); Writeln(i);
             gotoxy(6, 4+i); write(Nim);
             gotoxy(16, 4+i); write(Nama);
             gotoxy(30, 4+i); write(Tugas:2:2);
             gotoxy(37, 4+i); write(Uts:2:2);
             gotoxy(43, 4+i); write(Uas:2:2);
             gotoxy(49, 4+i); write(Na:2:2);
             gotoxy(60, 4+i); write(huruf);
             gotoxy(67, 4+i); write(keterangan);
        End;
    End;
end;

6.  Membuat program utama yang digunakan untuk memproses seluruh kegiatan program.

begin
input_data;
hitung_data;
tampil_keterangan;
tampil_data;
readln;
end.

Membuat KHS (Kartu Hasil Studi) dengan turbo Pascal

struktur program:
program nilai_mahasiswa_si;
Uses Crt;
Type score = Record
     no           : integer;
     kode         : string;
     matkul       : string;
     sks        : integer;
     uas        : integer;
     uts          : integer;
     tugas        : integer;
     kuis         : integer;
     akhir      : real;
     huruf      : string;
     bobot      : integer;
  End;

Var
    mhs : Array[1..50] of score;
    I                       : Integer;
    n, bob                         : integer;
    jmlsks, jmlbobot, ambil        : integer;
    nim, nama, jur          : string;
    ip                             : real;
--------------------------------------------------------------------------------------
procedure input;
begin
clrscr;
write('berapa mata kuliyah yang diambil = ');
readln(n);
clrscr;
gotoxy(12,1); writeln('            KHS (KARTU HASIL STUDY)');
gotoxy(12,2); writeln('SEKOLAH TINGGI MENEJEMEN INFORMASI DAN KOMUNIKASI');
gotoxy(12,3); writeln('              EL-RAHMA YOGYAKARTA');
gotoxy(1, 5);Write('NIM       = ');readln(nim);
gotoxy(1, 6);Write('NAMA      = ');readln(nama);
gotoxy(1, 7);Write('JURUSAN   = ');readln(jur);
gotoxy(1, 8);Writeln('+---+-----+-------------------+---+---+---+-----+----+-----+-----+-----+');
gotoxy(1, 9);Writeln('|NO |KODE |NAMA MATA KULIYAH |SKS|UAS|UTS|TUGAS|KUIS|AKHIR|HURUF|BOBOT|');
gotoxy(1, 10);Writeln('+===+=====+===================+===+===+===+=====+====+=====+=====+=====+');
end;
--------------------------------------------------------------------------------------
procedure hitung;
begin
For i := 1 To n Do
   Begin
      With mhs[i] Do
        Begin
              gotoxy(1, 10+i); Write('|',i);
              gotoxy(5, 10+i); write('|'); readln(kode);
              gotoxy(11, 10+i); write('|'); readln(matkul);
              gotoxy(31, 10+i); write('|'); readln(sks);
              gotoxy(35, 10+i); write('|'); readln(uas);
              gotoxy(39, 10+i); write('|'); readln(uts);
              gotoxy(43, 10+i); write('|'); readln(tugas);
              gotoxy(49, 10+i); write('|'); read(kuis);
             
      

        Begin
           akhir := (uas + Uts + tugas + kuis) / 4;
           If (akhir <= 100) and (akhir >= 85) Then huruf := 'A' Else
           If (akhir < 85) and (akhir >= 65) Then huruf := 'B' Else
           If (akhir < 65) and (akhir >= 45) Then huruf := 'C' Else
           If (akhir < 45) and (akhir >= 25) Then huruf := 'D' Else
           huruf :='E';
        End;
          gotoxy(54, 10+i); write('|', akhir:0:2);
          gotoxy(60, 10+i); write('|', huruf);

        begin
           if huruf = 'A' then bob := 4 else
           if huruf = 'B' then bob := 3 else
           if huruf = 'C' then bob := 2 else
           if huruf = 'D' then bob := 1 else
           bob := 0;
        end;
       bobot := sks * bob;
       gotoxy(66, 10+i); write('|', bobot);
       gotoxy(72, 10+i); write('|');
       jmlsks := jmlsks + sks;
       jmlbobot := jmlbobot + bobot;
       begin
          ip := jmlbobot / jmlsks;
          if (ip > 3.0) and (ip <= 4.0) then ambil := 24 else
          if (ip <= 3.0) and (ip > 2.5) then ambil := 21 else
          if (ip <= 2.5) and (ip > 1.5) then ambil := 18 else
          ambil := 15;
       end;
       End;
    readln;
  end;
readln;
Write('+---+-----+-------------------+---+---+---+-----+----+-----+-----+-----+');
gotoxy(55, 14+i); write('total sks      = ',jmlsks);
gotoxy(55, 15+i); write('total bobot    = ',jmlbobot);
gotoxy(55, 16+i); write('IP             = ',ip:0:1);
gotoxy(55, 17+i); write('sks yg diambil = ', ambil);
readln;
end;
--------------------------------------------------------------------------------------
begin
input;
hitung;
gotoxy(40, 20+i); write('gunawanrudy90@yahoo.com');
readln;
end.