Anda di halaman 1dari 30

M.K.

PENGANTAR PEMROGRAMAN

RECORD

Altien Jonathan Rindengan, S.Si, M.Kom


Pendahuluan

 Tipe data bentukan atau tipe yang didefinisikan


sendiri oleh pemrogram (user-defined type data)
 Tipe bentukan :
 Tipe dasar yang diberi nama dengan nama tipe baru
 Tipe terstruktur
Pendahuluan ….

 Tipe dasar yang diberi nama dengan nama tipe


baru :
 Dimaksudkan agar lebih mudah diinterpretasikan/
dipahami oleh pembaca teks program
 Contoh :
A : integer;
menjadi

Type bilangan_bulat : integer;


A : bilangan_bulat;
Pendahuluan ….

 Record :
 Tipe data majemuk (biasanya terdiri dari beberapa
tipe dasar data)
 Tipe data terstruktur

 Record disusun oleh lebih dari satu field, dimana


tiap field menyimpan data dari tipe dasar tertentu
atau tipe bentukan lain yang telah didefinisikan
sebelumnya.
 Nama record ditentukan sendiri oleh pemrogram
Notasi
 Notasi :
Type nama_record : record
< nama_var_1 : tipe_var
nama_var_2 : tipe_var
.
.
.
nama_var_n : tipe_var >
Contoh
 Contoh 1
 Titik dalam koordinat kartesius dinyatakan dalam (x,y)
dengan x adalah nilai absis (sumbu-x) dan y adalah
nilai ordinat (sumbu-y).
type titik = record
< x,y : real >
 Jika
dideklarasikan p adalah variabel bertipe titik,
maka cara mengacu tiap field pada p adalah :
p.x
p.y
Contoh ….

 Contoh 2
 Tanggal dalam kalender, dinyatakan dalam bentuk
tanggal (dd), bulan (mm), tahun (yy).

type tanggal = record


< dd: integer {1..31}
mm: integer {1..12}
yy: integer {>0}
>
Contoh ….

 Contoh 3
 Struktur tipe data bentukan yang lebih kompleks
 Misalkan akan menyimpan data nilai-nilai mata kuliah
mahasiswa
 Akan dibuat record mata kuliah dan nilai mahasiswa
 Record nilai mahasiswa juga mengacu ke record matakuliah
 Struktur record :
 NIM
 Nama Mahasiswa
 Mata kuliah :
 Kode Mata kuliah
 Nama Mata kuliah
 Nilai Mata kuliah
Contoh ….

type : mata_kuliah = record


< kode_mk : string,
nama_mk : string,
nilai : char {A/B/C/D/E}
>
type : nil_mhs = record
< NIM : string,
nama_mhs : string,
mk : mata_kuliah
>

Jika variabel p bertipe nil_mhs, maka cara mengacu fieldnya :


p.NIM
p.mk.nama_mk
Contoh ….
program record_01;
uses crt;
type tanggal = record
dd : integer;
mm : integer;
yy : integer;
Akhiri dengan end pada
end; record
var p : tanggal;
begin
clrscr;
write('Masukkan tanggal: ');readln(p.dd);
write('Masukkan bulan : ');readln(p.mm);
write('Masukkan tahun : ');readln(p.yy);
writeln;
writeln('Tanggal yang di-input : ');
writeln(p.dd,' - ',p.mm,' - ',p.yy);
readln;
end.
Contoh ….
Contoh ….

program record_02;
uses crt;
type mata_kuliah = record
kode_mk : string[6];
nama_mk : string;
nilai : char;
end;
type nilai_mhs = record
NIM : string[9];
nama_mhs : string;
mk : mata_kuliah;
end;
var nilmhs : nilai_mhs;
Contoh ….

begin
clrscr;
write('Nomor induk mahasiswa : ');readln(nilmhs.NIM);
write('Nama mahasiswa : ');readln(nilmhs.nama_mhs);
write('Kode mata kuliah : ');readln(nilmhs.mk.kode_mk);
write('Nama mata kuliah : ');readln(nilmhs.mk.nama_mk);
write('Nilai : ');readln(nilmhs.mk.nilai);
writeln;
writeln('Data mahasiswa yang di-input : ');
writeln;
write(nilmhs.NIM,' ',nilmhs.nama_mhs,' ',nilmhs.mk.kode_mk,
' ', nilmhs.mk.nama_mk,' ',nilmhs.mk.nilai);
readln;
end.
Contoh ….
Record dalam Array
 Misalnya akan mengelola data sekumpulan
mahasiswa
 Data mahasiswa :
 NIM (nomor induk mahasiswa)
 Nama mahasiswa
 IPK (indeks prestasi komulatif)

 Array mahasiswa dengan setiap elemen bertipe


record
 Tiap record terdiri atas field NIM, nama_mhs, dan
IPK
Record dalam Array ….

type mahasiswa : record


< NIM : integer,
nama_mhs : string,
IPK : real
>
type datmhs : array[1..n]of mahasiswa
var mhs: datmhs

 n adalah jumlah mahasiswa


 Cara mengacu elemen mhs adalah :
 mhs[i] (elemen ke-i dari array mhs)
 mhs[i].NIM (mengacu field NIM dari elemen ke-i dari array)
 mhs[i].IPK (mengacu field IPK dari elemen ke-i dari array)
Record dalam Array ….

program record_03;
uses crt;
type mahasiswa = record
NIM : string[9];
nama_mhs : string;
IPK : real;
end;

type datmhs = array [1..100] of mahasiswa;


var
mhs : datmhs;
i,n : integer;
Record dalam Array ….

begin
clrscr;
write('Jumlah mahasiswa : ');readln(n);
writeln;
for i:=1 to n do
begin
write(i);
write(' NIM : ');readln(mhs[i].NIM);
write(' Nama mahasiswa : ');readln(mhs[i].nama_mhs);
write(' IPK : ');readln(mhs[i].IPK);
end;
writeln;
writeln('No. NIM Nama IPK ');
for i:= 1 to n do
writeln (i,' ',mhs[i].NIM,' ',mhs[i].nama_mhs,' ',
mhs[i].IPK:0:2);
readln;
end.
Record dalam Array ….
Record dalam Array ….

 Struktur tipe data yang lebih kompleks


 record array dalam record array yang lain
 Misalkan data n mahasiswa yang masing-masing
mengontrak 3 matakuliah.
 Struktur datanya :
 NIM
 nama_mhs
 mata_kuliah :
 kode_mk
 nama_mk
 nilai_mk
Record dalam Array ….

type mata_kuliah : record


< kode_mk : string[6],
nama_mk : string,
nilai : char
>
type mahasiswa : record
< NIM : string[9],
nama_mhs : string,
mk : array[1..3]of mata_kuliah
>
type datmhs : array[1..100]of mahasiswa
var mhs: datmhs
Record dalam Array ….

 n adalah jumlah mahasiswa


 Cara mengacu elemen mhs adalah :
 mhs[i]

(elemen ke-i dari array mhs)


 mhs[i].NIM

(mengacu field NIM dari elemen ke-i dari array mhs)


 mhs[i].mk[j].nilai

(mengacu field nilai ke-j dari elemen ke-i array mhs)


Record dalam Array ….

program record_04;
uses crt;
type mata_kuliah = record
kode_mk : string[6];
nama_mk : string;
nilai : char;
end;
type mahasiswa = record
NIM : string[11];
nama_mhs : string;
mk : array[1..3] of mata_kuliah;
end;
type datmhs = array[1..100] of mahasiswa;
var mhs : datmhs;
i,j,a,n : integer;
Record dalam Array ….

begin
clrscr;
write('Jumlah mahasiswa : ');readln(n);
writeln;
for i:=1 to n do
begin
write(i);
write(' NIM : ');readln(mhs[i].NIM);
write(' Nama mahasiswa : ');readln(mhs[i].nama_mhs);
for j:=1 to 3 do
begin
write(' ',j);
write(' Kode_mk : ');readln(mhs[i].mk[j].kode_mk);
write(' Nama_mk : ');readln(mhs[i].mk[j].nama_mk);
write(' Nilai : ');readln(mhs[i].mk[j].nilai);
end;
end;
Record dalam Array ….

writeln;
write('Data mahasiswa ke - ');readln(a);
writeln('Nama : ', mhs[a].nama_mhs);
writeln('NIM : ', mhs[a].NIM);
writeln;
for j:=1 to 3 do
writeln(mhs[a].mk[j].kode_mk,' ',
mhs[a].mk[j].nama_mk,' ',mhs[a].mk[j].nilai);
readln;
end.
Record dalam Array ….
Tugas
 Input :
 Nama :
 PS :
 Fakultas:
 Nilai Mahasiswa :
 Kode MK
 Nama MK
 Nilai MK
 Nilai Tugas
 Nilai UTS
 Nilai UAS
 Nilai Angka
 Nilai Mutu
 Nilai mhs :
Nilai Angka : 0.3*N_Tugas+0.35*N_UTS + 0.35*N_UAS
Nilai Mutu :
A : NM ≥ 80
B+ : 73 ≤ NM < 80
B : 65 ≤ NM < 73
C+ : 60 ≤ NM < 65
C : 55 ≤ NM < 60
D : 45 ≤ NM < 55
E : NM < 45

 Data yang akan dicari mengacu ke NIM


 Output pencarian :
Nama mahasiswa :
NIM :
PS :
Fakultas :

Kode_Mk Nama_MK N_T N_UTS N_UAS N_Angka N_Mutu


 Data nilai matakuliah ke-i dari mhs ke j

 Nilai mahasiswa ke-2 matakuliah ke-3 :


 mhs[2].mk[3].nilai

Anda mungkin juga menyukai