- Record
Sebuah
record merupakan koleksi satuan data yang heterogen, yakni terdiri dari
berbagai type. Satuan data tersebut sering disebut sebagai field dari
record. Field dipanggil dengan menggunakan namanya masing-masing. Suatu field dapat terdiri atas beberapa subfield. Sebuah record rekaman disusun oleh
beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field.
beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field.
Deklarasi record
Type
Variable = record
…field = type data
…field = type data
…field = type data
End.
STATEMENT “WITH”
Selain cara yang telah disebutkan diatas, untuk memproses suatu record dapat
digunakan
statement WITH. Dengan statement ini penulisannya akan lebih sederhana.
Bentuk Umum penulisan statement WITH ini adalah :
WITH nama_record DO statement
Perhatikan deklarasi dibawah ini :
TYPE x = RECORD
No : integer;
Kode : char;
Juml : integer;
Harga : real;
END;
VAR p,q : x;
Untuk membaca variabel p dan q di atas dengan memanfaatkan statement WITH bentuknya menjadi :
WITH p,q DO read (no, kode, juml, harga);
Bandingkan jika digunakan cara sebelumnya :
Read(p.no, p.kode, p.juml,p.harga,q.no,q.kode,q.juml,q.harga);
Pernyataan seperti :
Data.npm :=‘22297566’
Data.Nama:=‘Abdul Kadir’
Data.Fakultas:=‘Teknik’
Dapat diganti dengan :
WITH Data Do
Begin
npm :=‘22297566’
Nama:=‘Abdul Kadir’
Fakultas:=‘Teknik’
end;
Contoh program record sederhana:
Type
Hasil = record
Jari-jari = real;
Keliling = real;
Luas = real;
End.
Var
Lingkarang = hasil;
Begin
Write (jari-jari lingkaran?); real readln (lingkaran.jari-jari);
Lingkaran.keliling :=2 * Pi * lingkaran.jari-jari;
Lingkaran.luas := Pi * sqr (lingkaran jari-jari);
Writeln;
Writeln (‘keliling lingkaran =’, lingkaran.keliling:7:2);
Writeln (‘luas lingkaran =’, lingkaran luas :7:2);
End.
program record;
uses crt;
type
TSiswa = record
nim : string[8];
nama : string[25];
agama : string[10];
ktp : string[25];
end;
var
s : TSiswa;
umur,ts,tl : integer;
begin
clrscr;
write (’Masukkan tahun sekarang: ‘); readln (ts);
writeln (’Isikan data anda dalam Form ini’);
write (’NIM : ‘); readln (s.nim);
write (’NAMA : ‘); readln (s.nama);
write (’TAHUN LAHIR : ‘); readln (tl);
umur := (ts-tl);
write (’AGAMA : ‘);readln (s.agama);
write (’NO.KTP : ‘); readln (s.ktp);
writeln;
writeln (’Berikut ini informasi yang anda berikan: ‘);
writeln (’NIM : ‘, s.nim);
writeln (’NAMA : ‘, s.nama);
writeln (’Umur : ‘,umur);
writeln (’AGAMA : ‘, s.agama);
writeln (’NO.KTP : ‘, s.ktp);
READLN;
end.
- Array (Larik)
Array
adalah tipe data terstruktur yang terdiri dari sejumlah
komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut
disebut sebagai komponen type, larik mempunyai jumlah komponen yang
jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu
index, dimana tiap komponen di array dapat diakses dengan menunjukkan
nilai indexnya atau subskript. Array dapat bertipe data sederhana
seperti byte, word, integer, real, bolean, char, string dan tipe data
scalar atau subrange. Tipe larik mengartikan isi dari larik atau
komponen- komponenya mempunyai nilai dengan tipe data tersebut.
Array
didefinisikan sebagai suatu kumpulan dimana elemen-elemennya berjenis
data sama. (homogeny) Suatu array dapat dibedakan atas 2 (dua) bagian,
yaitu :
a. Array Berdimensi Satu
Array
berdimensi satu dapat dikatakan sebagai suatu daftar yang linier atau
sebuah kolom. Bentuk deklarasi dari array jenis ini dalam bahasa Pascal
adalah:
VAR nama_array : ARRAY [index] OF jenis_elemen;
Contoh Program :
Program Contoh_Array_Input;
Uses Crt;
Var
Bilangan : array[1..50] of Integer;
Begin
ClrScr;
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
Readln;
End.
Array
tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian
deklarasi variabel, tetapi dapat juga berupa konstanta (const).
Contoh Program :
Program;
Uses Crt;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var
i : Integer;
Begin
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);
Readln;
End.
b. Array Multi Dimensi
Array dimensi dua ini dapat dianggap sebagai sebuah matriks yang jumlah kolomnya lebih dari satu. Bentuk deklarasi :
VAR nama_array : ARRAY [indeks_baris,indeks_kolom] OF jenis;
Di
dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan
array dimensi banyak (Multidimensional array), disini akan dibahas
array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel
atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua
menunjukkan kolom dari tabel atau matrik.
Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini.
Program_Deklarasi_Array_Dua_Dimensi;
Uses Crt;
Var Tabel : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
Tabel[1,1]:=1;
Tabel[1,2]:=2;
Tabel[2,1]:=3;
Tabel[2,2]:=4;
Tabel[3,1]:=5;
Tabel[3,2]:=6;
For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
End;
End;
Readln;
End.
Contoh program Array dalam record:
Type barang= RECORD
nmbrg:string[20];
jmlbrg:array[1..3]of byte;
hrgbrg:real;
total:real;
end;
var jual:barang;
tbarang, i:integer;
Begin
clrscr;
write(‘Nama Barang :’);readln(jual.nmbrg);
for i:=1to 3 do
begin
write(‘Jumlah barang ’,I,’ : ’);readln(jual.jmlbrg[i]);
tbarang:=tbarang+jual.jmlbrg[i];
end;
write(‘Harga barang :’);readln(jual.hrgbrg);
jual.total:=tbarang*jual.hrgbrg;
writeln(‘Total Harga Barang = ‘, jual.total:10:2);
end.
Coba lihat sendiri perbedaan antara array tipe record dan array dalam record dari dua contoh program di atas !
Program Penjumlahan_matrik;
uses crt;
var
matrik1, matrik2 , hasil : array[1..3,1..2] of integer;
i , j : integer;
begin
clrscr;
{ input matrik ke satu }
writeln(' Elemen matrik satu');
for i := 1 to 3 do
begin
for j := 1 to 2 do
begin
write('Elemen baris -',i,' kolom -',j,'= ');
readln(matrik1[i,j]);
end;
end;
{input matrik ke dua}
writeln('input elemen matrik dua');
for i:= 1 to 3 do
begin
for j:= 1 to 2 do
begin
write('Elemen baris -',i,' kolom -',j,'= ');
readln(matrik2[i,j]);
end;
end;
{proses penjumlahan tiap elemen}
for i := 1 to 3 do
begin
for j:= 1 to 2 do
begin
hasil[i,j]:=matrik1[i,j]+matrik2[i,j];
end;
end;
{proses cetak hasil}
writeln(' ');
for i:= 1 to 3 do
begin
for j:= 1 to 2 do
begin
write(matrik1[i,j]:4);
end;
writeln;
end;
writeln('+');
for i:= 1 to 3 do
begin
for j:= 1 to 2 do
begin
write(matrik2[i,j]:4);
end;
writeln;
end;
writeln('=');
for i:= 1 to 3 do
begin
for j:= 1 to 2 do
begin
write(hasil[i,j]:4);
end;
writeln;
end;
readln;
end.
Latihan
1. Buatlah tiga jenis algoritma untuk menentukan hasil perkalian dari dua buah matriks. Dengan ketentuan sebagai berikut :
– Silahkan tentukan sendiri ukuran dari dua buah matriks tersebut.
– Tentukanlah nilai dari dua buah matriks tersebut dengan menggunakan inisialisasi atau inputan dari keyboard.
– Tipe data ke dua matriks tersebut adalah integer.
– Konversikanlah tiga jenis algoritma di atas ke dalam bahasa pemrograman Pascal.
Konversilah ketiga jenis algoritma tersebut ke dalam bahasa pascal sehingga mendapatkan 1 buah program perkalian matriks.
2. Buatlah
algoritma tanpa menggunakan prosedur (sub program) untuk menghitung
nilai-nilai rata-rata dari data yang tersimpan pada elemen array(larik)
yang bertipe integer.
Konversikan algoritma tersebut ke dalam bahasa pascal.