Bagaimana menggunakan Record dalam Pascal

[Year]

Bab 12
Record - Rekaman
taryanarx@yyahoo.com – http://kuliahonline.unikom.ac.id

Target Pencapaian
Siswa mengerti cara kkerja record dan mengaplikasi dalam program pasc
scal

Dalam Pascal terdapat tipe data
ta yang berisi kumpulan data, tipe data ini diken
enal dengan nama
Tipe Record (rekaman), perbeda
daan antara record dengan larik adalah bahwa dalam
da
larik semua
elemenya harus bertipe sama,, ttetapi dalam record setiap elemen bisa memp
mpunyai tipe yang
berbeda antara satu sama lainnya.
ya.

Penggunaan record banyak diter
iterapkan dalam aplikasi yang sering digunakan
an dalam berbagai
aplikasi yang ada, misalnya : unt
untuk menyimpan data-data mahasiswa, data nila
ilai, data keuangan
dan lain-lain.
Bentuk umum penulisan recordd aadalah sebagai berikut:
Type
Pengenal = Record
Namafield-1 : Type
Namafield-2 : Type
……
Namafield-N : Type
End

Atau dapat juga dideklarasikan se
sebagai berikut:
Var
Pengenal = Record

Namafield-1 : Type
Namafield-2 : Type
……
Namafield-N : Type
End

1

[Year]

Program berikut adalah contoh pr
program untuk Memasukan dan menampilkan Data
Da Nilai
Mahasiswa beserta grade yang di
diperolehnya.
Uses Crt;
Const
JumlahSiswa = 1;
Type Nilai = Record
Nim : String;

Nama: String;
Tugas : Real;
UTS
: Real;
UAS
: Real;
Na
: Real;
Grade : Char;
End;
Var
Mhs : Array[1..JumlahSiswa] of
f Nilai;
I
: Integer;
Begin
Clrscr;
For I := 1 To JumlahSiswa Do
Begin
Writeln('Mahasiswa ke : ',i:

:2);
Write('Nim
: ');Readln(Mhs
s[i].Nim);
Write('Nama : ');Readln(Mhs
s[i].Nama);
Write('Tugas : ');Readln(Mhs
s[i].Tugas);
Write('UTS
: ');Readln(Mhs
s[i].Uts);
Write('UAS
: ');Readln(Mhs
s[i].Uas);
End;
For I := 1 To JumlahSiswa Do
Begin
Mhs[i].Na := (Mhs[i].Tugas + Mhs[i].Uts + Mhs[i].Uas) / 3;
If (Mhs[i].Na >= 80) Then M
Mhs[i].Grade := 'A' Else

If (Mhs[i].Na < 80) and (Mh
hs[i].Na>=70) Then Mhs[i].Grade := 'B' Else
If (Mhs[i].Na < 70) and (Mh
hs[i].Na>=60) Then Mhs[i].Grade := 'C' Else
If (Mhs[i].Na < 60) and (Mh
hs[i].Na>=50) Then Mhs[i].Grade := 'D' Else
Mhs[i].Grade :='E';
End;
Writeln('----------------------------------------------------------');
Writeln(' NO
NIM
NA
AMA TUGAS
UTS
UAS
NA
GRADE ');
Writeln('----------------------------------------------------------');
For I := 1 To JumlahSiswa Do
Begin

Writeln(i:3,Mhs[i].Nim:10,M
Mhs[i].Nama:10,Mhs[i].Tugas:7:2,Mhs[i].Uts:7:2,
Mhs[i].Uas:7:2,Mhs[i].Na:7:
:2,Mhs[i].Grade:5);
End;
Readln;
End.

2

[Year]

8.2. Statement With
Dalam Turbo Pascal telah disedia
diakan sebuah statement yang berfungsi untuk lebi
ebih
mempersingkat penulisan dalam
m ppembacaan field, statement yang digunakan ada
dalah statement
WITH, berikut adalah contoh pen

penggunaannya:
Uses Crt;
Const
JumlahSiswa = 3;
Type Nilai = Record
Nim : String;
Nama: String;
Tugas : Real;
UTS
: Real;
UAS
: Real;
Na
: Real;
Grade : Char;
End;
Var
Mhs : Array[1..JumlahSiswa] of
f Nilai;
I

: Integer;
Begin
Clrscr;
For I := 1 To JumlahSiswa Do
Begin
With Mhs[i] Do
Begin
Writeln('Mahasiswa ke : ',i
i:2);
Write('Nim
: ');Readln(Ni
im);
Write('Nama : ');Readln(Na
ama);
Write('Tugas : ');Readln(Tu
ugas);
Write('UTS
: ');Readln(Ut
ts);
Write('UAS

: ');Readln(Ua
as);
End;
End;

3

[Year]

For I := 1 To JumlahSiswa Do
Begin
With Mhs[i] Do
Begin
Na := (Tugas + Uts + Uas) / 3;
If (Na >= 80) Then Grade :=
= 'A' Else
If (Na < 80) and (Na>=70) T
Then Grade := 'B' Else
If (Na < 70) and (Na>=60) T
Then Grade := 'C' Else

If (Na < 60) and (Na>=50) T
Then Grade := 'D' Else
Grade :='E';
End;
End;
Writeln('----------------------------------------------------------');
Writeln(' NO
NIM
NA
AMA TUGAS
UTS
UAS
NA
GRADE ');
Writeln('----------------------------------------------------------');
For I := 1 To JumlahSiswa Do
Begin
With Mhs[i] Do
Begin
Writeln(i:3,Nim:10,Nama:10,

,Tugas:7:2,Uts:7:2,
Uas:7:2,Na:7:2,Grade:5);
End;
End;
Readln;
End.

Jika program ini dijalankan, maka
aka akan mendapatkan hasil output yang sama sep
eperti dengan
tanpa menggunakan statement W
With

4