0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan50 halaman

Panduan Lengkap Array dan Record Turbo Pascal

Dokumen tersebut memberikan ringkasan singkat tentang: 1) Pengertian array sebagai variabel yang dapat menyimpan lebih dari satu nilai sejenis dan memiliki indeks untuk mengakses nilainya. 2) Contoh program array satu dan dua dimensi untuk mencatat data pembelian barang dan penilaian ujian mahasiswa.

Diunggah oleh

Lill Kim
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan50 halaman

Panduan Lengkap Array dan Record Turbo Pascal

Dokumen tersebut memberikan ringkasan singkat tentang: 1) Pengertian array sebagai variabel yang dapat menyimpan lebih dari satu nilai sejenis dan memiliki indeks untuk mengakses nilainya. 2) Contoh program array satu dan dua dimensi untuk mencatat data pembelian barang dan penilaian ujian mahasiswa.

Diunggah oleh

Lill Kim
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

Kata Pengantar

Assalamualaikum wr. wb.

Segala puji hanya bagi Allah, Dzat yang telah menciptakan ilmu pengetahuan sebagai
petunjuk bagi hambanya yang senantiasa berpikir. Sholawat dan salam semoga senantiasa
tercurah kepangkuan Rosulullah Muhammad saw yang telah memberi cahaya kepada
umat manusia melalui pengetahuan haqiqi yang bersumber pada-Nya.

Alhamdulillah, berkat pertolongan dan petunjuk Allah swt penyusun dapat menyelesaikan
tugas praktikum mata kuliah algoritma dan struktur data (turbo pascal: Array dan Record)
guna memenuhi tugas praktikum turbo pascal.

Penyusun menyadari bahwa dalam penulisan makalah yang sederhana ini ada beberapa
kekurangan, untuk itu kritik dan saran yang sifatnya membangun sangat penyusun
harapkan guna kesempurnaan makalah ini.

Wassalamualaikum wr. wb.

Yogyakarta, Januari 2010

Penyusun

Page 1 of 50
Daftar Isi
Kata Pengantar 1

Daftar Isi 2

BAB 1 : ARRAY 3

1. Pengertian 3

2. Contoh Program Array 7

BAB 2 : RECORD 40

1. Pengertian 40

2. Contoh Program Record 47

Daftar Pustaka 50

Page 2 of 50
BAB 1

ARRAY

1. Pengertian

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.1

Array adalah variabel yang dapat menyimpan lebih dari satu nilai sejenis. Terdapat dua bagian
penting yaitu elemen array yang merupakan nilai dan endeks array yang merupakan nilai urut
untuk mengakses nilai pada array.
Berikut ini contoh array A dengan 10 buah elemen tiap elemen memiliki nilai antara 10 hingga
100.

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]
1 2 3 4 5 6 7 8 9 10
10 20 30 40 50 60 70 80 90 100

Deklarasi Array.
Array dideklarasikan pada bagian deklarasi. Deklarasi umum dari array adalah
NamaArray : array[IndeksAwal..IndeksAkhir] of tipe_data;

Contoh: Jika akan mendeklarasikan viriabel A sebagai Array dengan 10 elemen bertipe
integer :
Var
A: array [1..10] of Integer;
Contoh lain:

1
[Link]

Page 3 of 50
A1: array[0..9] of Integer;
A1: array[10..20] of Integer;
A1: array[‘a’..’j’] of Integer;
Mengakses elemen Array
Untuk memberikan nilai pada variabel array dapat dengan menggunakan parameter berikut :
NamaArray [indeks]:=nilai;

Contoh
Var
A: array[1..10] of integer;
Begin
A[1]:=1; {Mengisikan elemen 1 dengan nilai 1}
A[9]:=200; {Mengisi elemen 9 dengan nilai 200};
End.
Array sebagai konstanta

Nilai pada array dapat bernilai konstan. Dapat kita lakukan dengan mendeklarasikannya pada
bagian constanta.
Bentuk umum pendeklrasiannya adalah:
Const
NamaArray : array[IndeksAwal..IndeksAkhir] of Tipe_Data = (nilai1, nilai2,………);
Banyaknya nilai konstanta harus sama dengan jumlah elemennya.
Contoh penggunaanya
Program ArrayKonstanm;
Uses Wincrt;
Const
Hari : array[1..2] oof string =
(’senin’,’selasa’,'rabu’,'kamis’,'jumat’,’sabtu’,'minggu’);
Var
noHari:integer;
begin
clrscr;
write(’Masukan nomor harinya : ‘);readln(noHAri);
write(’Hari ke’,noHari,’adalah’,Har[noHari]);
end.
Page 4 of 50
Jika dieksekusi maka hasilnya adalah:
Masukan nomor harinya : 2
Hari ke 3 adalah rabu
Array saebagai parameter

Array pada waktu tertentu dapat digunakan sebagai parameter dari suatu proesdur atyau
fungsi. Contoh
Type
Bilangan = array [1..100[ of integer;
Procedure InputArray(A:bilangan; N:integer);
var
i:integer;
begin
for i:=1 to N do
write('Masukan elemen array ke ',i); readln(A[i]);
end.
Contoh diatas adalah prenggunaan array sebagai parameter untuk memberikan nilai pada
suatu array tertentu.
Array berisi record
Caranya adalah mendefinisikan record terlebih dahulu yang kemudian akan digunakan sebagai
tipe data pada saat pendeklarasiaan array. Contoh:
Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
End;
TkumpulanSiswa = array [1..100] of Tsiswa;

Var
A: TkumpulanSiswa;

Variabel A diatas akan menampung 100 buah record yang bertipe Tsiswa. Sementara untuk
record berisi array dengan contoh perhitungan nilai siswa berikut : Nilai = (20% * kuis) + (30%
* UTS) + (50% * UAS). Maka kita dapat mendefinisikan mahasiswa sebagai tipe record yang
memiliki 3 nilai dengan menggunakan array. Yaitu:
Page 5 of 50
Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
Nilai = array [1..3] of real;
Kode diatas menunjukan bahwa setiap mahasiswa memiliki 3 nilai.
Metode pencarian pada Array
Ada beberapa macam teknik dalam mendapatkan nilai dari suatu elemen pada array salh
satunya dengan metode pencarian [Link]:
Program CaraiBeruntun;

Uses Wincrt;
Const
N : array[1..5] of integer= (10,20,30,40,50);
Var
a,b,index : integer;
begin
clrscr;
write(‘Masukan nilai yang akan dicari : ’);readln(a);
index:=0;
for b:=1 to 5 do begin
if N[b] = a then begin
index:=b;
break;
end;
end;
writeln(a,’ adalah nilai yang ditemukan pada index ke ’,index);
end.
Array 2 dimensi
Array 2 dimensi adalah array yang memiliki 2 buah elemen bertipe array yang berbentuk
kolom dan baris. Pendeklarasiannya adlah sebagai berikut:
NamaArray : array[1..BanyakBaris, 1..BanyakKolom] of tipe_data;
Contoh
Array2D : array[1..3, 1..4] of integer;

Page 6 of 50
Sedangkan untuk mengaskes maupun memberikan nilai dengan parameter:
Array2D [2,3]:=200; {Mengisikan nilai 200 pada baris 2 kolom 3} 2

Array (Larik) adalah tipe tersruktur yang terdiri dari sejumlah komponen yang
mempunyai tipe yang sama. Array ada 2 jenis:
1) Array berdimensi satu.
2) Array berdimensi 2 /dimensi banyak.3

2. Contoh Program

1.2.1 Contoh program array 1 | larik satu dimensi

Code:

program lariksatudimensi;

uses wincrt;

var

nota:array[1..5] of string;

nama:array[1..5] of string;

harga:array[1..5] of longint;

i:integer;

total:longint;

begin

clrscr;

for i:=1 to 5 do

begin
2
[Link]

3
[Link]
Page 7 of 50
clrscr;

writeln ('CV. DWI ');

writeln ('_____________');

writeln ;

writeln ('Pembelian ke: ', i);

writeln ('No. Nota : '); readln (nota[i]);

writeln ('Nama : '); readln (nama[i]);

writeln ('Harga : '); readln (harga[i]);

end;

total:=0;

for i:= 1 to 5 do

total:=total+harga[i];

clrscr;

writeln ('Laporan data pembelian barang');

writeln ('___________________________________');

writeln ('| No. | No. Nota | Nama Barang | Harga


|');

writeln ('___________________________________');

for I:= 1 to 5 do

begin

writeln ('|', i:4,' | ', nota[i]:14,' | ', nama[i]:14,' | ',


harga[i]:12,' | ');

end;

writeln ('__________________________________________');

Page 8 of 50
writeln;

writeln('Total pembelian:', total);

end.

Preview :

Hasil :

Page 9 of 50
1.2.2 Contoh program array 2 | ujian mahasiswa

Kode :

Uses wincrt ;

Var

Nama : array [1..30 ] of string ;

Tugas, uts, uas, absen : array [1..30] of integer ;

Rata : array [1..30] of real ;

x , jd : byte;

BEGIN

CLRSCR ;
Page 10 of 50
Write (

Masukan Jumlah data :

) ; readln ( jd ) ;

For x : = 1 to jd do

begin

Writeln (

*****************************

) ;

Writeln (

PENILAIAN UJIAN MAHASISWA BSI

) ;

Writeln (

*****************************

) ;

Write (

Input Nama :

) ; readln (nama[x] ) ;

Write (

Input Nilai Tugas :

Page 11 of 50

) ; readln (tugas[x] ) ;

Write (

Input Nilai Absen :

) ; readln (absen[x] ) ;

Write (

Input Nilai UTS :

) ; readln (uts[x] ) ;

Write (

Input Nilai UAS :

) ; readln (uas[x]) ;

Rata[x]:=(0.1*tugas[x])+(0.2*absen[x])+(0.3*uts[x])+(0.4*uas[x]);

End ;

CLRSCR ;

For i : = 1 to j do

Begin

Writeln (

*****************************

) ;
Page 12 of 50
Writeln (

PENILAIAN UJIAN MAHASISWA BSI

) ;

Writeln (

*****************************

) ;

Writeln (

Nama :

, nama[i] ) ;

Writeln (

Nilai Tugas :

, tugas[i] ) ;

Writeln (

Nilai Absen :

, absen[i] ) ;

Writeln (

Nilai UTS :

, uts[i] ) ;

Page 13 of 50
Writeln (

Nilai UAS :

, uas[i]) ;

Writeln (

****************************

) ;

Writeln (

Rata-rata :

, rata : 1: 0 ) ;

Readln ;

End;

END.

1.2.3 Contoh program array 3 | ayam goreng

Kode :

program ayam_goreng;

uses crt;

var

i,b:byte;

Page 14 of 50
jenis,kdjenis:array [1..50]of string;

banyak,jmlharga,harga:array [1..50]of real;

totb,ppn,totjml,total:real;

begin

clrscr;

writeln(‘Ayam Goreng Fried Chicken’);

writeln(‘========================’);

writeln(‘Kode Jenis potong Harga’);

writeln(‘=============================’);

writeln(‘D Dada 3000 ‘);

writeln(‘P Paha 2500 ‘);

writeln(‘S Sayap 1500 ‘);

writeln(‘=============================’);

write(‘Masukan Jumlah Jenis : ‘);readln(b);

for i:=1 to b do

begin

writeln;

writeln(‘Jenis Ayam ke- ‘,i);

writeln;

write(‘Jenis Ayam Bagian [D/P/S] : ‘);readln(kdjenis[i]);

write(‘Jumlah Beli / Potong : ‘);readln(banyak[i]);

Page 15 of 50
end;

writeln; clrscr;

writeln(‘ PROGRAM AYAM GORENG FRIED CHICKEN’);

writeln(‘======================================================
================’);

writeln(‘NO JENIS POTONG HARGA SATUAN BANYAK BELI


JUMLAH HARGA ‘);

writeln;

totb:=0;

for i:=1 to b do

begin

if kdjenis[i]=’D’ then

begin

jenis[i]:=’Dada’;

harga[i]:=3000;

end

else if kdjenis[i]=’P’ then

begin

jenis[i]:=’Paha’;

harga[i]:=2500;

end

else if kdjenis[i]=’S’ then


Page 16 of 50
begin

jenis[i]:=’Sayap’;

harga[i]:=1500;

end

else

begin

jenis[i]:=’Kepala’;

harga[i]:=1000;

end;

jmlharga[i]:=harga[i]*banyak[i];

totb:=totb+jmlharga[i];

ppn:=totb*0.1;

totjml:=totjml+banyak[i];

total:=totb+ppn

end;

for i:=1 to b do

begin

writeln(i:1,jenis[i]:9,harga[i]:14:0,banyak[i]:18:0,jmlharga[i]
:19:0);

end;

Page 17 of 50
writeln(‘======================================================
===========’);

writeln(‘ Jumlah Potong :


‘,totjml:2:0);

writeln(‘ Jumlah bayar :


‘,totb:2:0);

writeln(‘ PPN 10 % :
‘,ppn:2:0);

writeln(‘ Total bayar :


‘,total:2:0);

readln;

end.

1.2.4 Contoh program array 4 | nilai siswa 1

Kode :

uses wincrt;

var Nilai : array[1..50] of real;

jumlah, rata : real;

i,a, JumDat : byte;

nama : string;

begin

clrscr;

{jumlah:=0;}

Page 18 of 50
writeln(‘ Nilai Rata – Rata Praktikum Kelas
TK2A’);

Writeln(‘—————————————’);

write(‘Nama Mahasiswa =’ );readln(nama);

Write(‘Berapa Jumlah data = ‘);readln(JumDat);

for i := 1 to Jumdat do

begin

Write(‘Nilai Praktiklum ke
‘,i,’=');Readln(Nilai[i]);

end;

jumlah:=0;

for i:= 1 to JumDat do

begin

Jumlah := jumlah + Nilai[i];

rata := Jumlah/JumDat;

end;

writeln;

clrscr;

writeln(‘Nama Mahasiswa =’,nama);

for i := 1 to jumdat do

begin

Page 19 of 50
writeln(‘Nilai Praktekm ke-’,i,’
=’,nilai[i]:3:0);

end;

writeln(‘Total Nilai = ‘, jumlah:8:0);

writeln(‘Nilai Rata – rata = ‘, Rata:8:1);

readln;

end.

1.2.5 Contoh program array 5 | nilai siswa 2

Kode :

uses wincrt;

var Nilai : array[1..50] of real;

jumlah, rata : real;

i,a, JumDat : byte;

nama : string;

begin

clrscr;

{jumlah:=0;}

writeln(‘ Nilai Rata – Rata Praktikum Kelas


TK2A’);

Writeln(‘—————————————’);

write(‘Nama Mahasiswa =’ );readln(nama);

Page 20 of 50
Write(‘Berapa Jumlah data = ‘);readln(JumDat);

for i := 1 to Jumdat do

begin

Write(‘Nilai Praktiklum ke
‘,i,’=');Readln(Nilai[i]);

end;

jumlah:=0;

for i:= 1 to JumDat do

begin

Jumlah := jumlah + Nilai[i];

rata := Jumlah/JumDat;

end;

writeln;

clrscr;

writeln(‘ Nilai Rata – Rata Praktikum Kelas


TK2A’);

Writeln(‘—————————————’);

writeln(‘Nama Mahasiswa =’,nama);

writeln(‘ÉÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍ» ‘);

writeln(‘º Praktikum º Nilai º ‘);

writeln(‘ÌÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍ͹ ‘);

Page 21 of 50
for i := 1 to jumdat do

begin

writeln(‘º’,’ ke-’,i,’ º’,


nilai[i]:3:0,’ º’);

end;

writeln(‘ÈÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍͼ’);

writeln(‘Total Nilai = ‘, jumlah:8:0);

writeln(‘Nilai Rata – rata = ‘, Rata:8:1);

readln;

end.

1.2.6 Contoh program array 6 | agen bus

Kode :

Program Harga_Tiket;

uses crt;

var np:array[1..50] of string;

jb:array[1..50] of real;

jbyr:array[1..50] of real;

jml,a:byte;

tot:real;

ask:char;

label

Page 22 of 50
baru;

begin

baru:

clrscr;

textcolor(7);

writeln(‘AGEN BUS MALAM “LENGAH TENTREM”‘);

writeln;

write(‘Masukkan Jumlah Penumpang :


‘);readln(jml);

writeln;

for a:=1 to jml do

begin

writeln(‘Data Ke -’,a);

write(‘Nama Penumpang : ‘);readln(np[a]);

write(‘Jumlah Beli : ‘);readln(jb[a]);

end;

clrscr;

writeln(‘DATA PENJUALAN TIKET’);

writeln(‘AGEN BUS MALAM “LENGAH TENTREM”‘);

writeln(‘—————————————————-’);

Page 23 of 50
writeln(‘No. Nama Penumpang Jumlah Beli
Jumlah Pembayaran’);

writeln(‘—————————————————-’);

for a:=1 to jml do

jbyr[a]:=jb[a]*25000;

for a:=1 to jml do

writeln(a:1,np[a]:10,jb[a]:10:0,jbyr[a]:27:3);

begin

writeln(‘—————————————————-’);

tot:=0;

tot:=tot+jbyr[a];

writeln(‘Total
Pembayaran Rp.’,tot:10:3);

writeln(‘—————————————————-’);

writeln;

write(‘Anda Ingin Memasukkan Data


Selanjutnya [Y/T] ? ‘);readln(ask);

if (ask=’Y')or(ask=’y') then goto baru;

end;

end.
Page 24 of 50
1.2.7 Contoh program array 7 | data karyawan

Kode :

uses crt;

var

nama:array[1..10]of string[20];

alamat:array[1..20]of string[30] ;

jml_gaji:array[1..20]of real;

i,j:byte;

begin

clrscr;

write(‘masukan jumlah Data :’);readln(j);

for i:=1 to j do

begin

writeln(‘data ke- ‘,i);

write(‘nama Karyawan :’);readln(nama[i]);

write(‘masukan Alamat :’);readln(alamat[i]);

write(‘jumlah Gaji
:’);readln(jml_gaji[i]);

end;

clrscr;

Page 25 of 50
writeln(‘ DATA GAJI KARYAWAN’);

writeln(‘======================================’);

writeln(‘No. Nama Karyawan Total Gaji ‘);

writeln(‘=======================================’);

for i:=1 to j do

begin

writeln(i:1,nama[i]:15,jml_gaji[i]:15:0);

end;

writeln(‘=======================================’);

readln

end.

1.2.8 Contoh program array 8 | penjualan susu

Kode :

Uses crt;

Var i,j:integer;

merk:array[1..5] of string[10];

ukuran:array[1..5] of char;

jumbel,harsat:array[1..5] of integer;

Page 26 of 50
harkot,pot,harsih:array[1..5] of real;

Begin

clrscr;

Write(‘Banyaknya Pembelian : ‘);readln(i);

Writeln;

For j:=1 to i do

Begin

Writeln(‘Data Ke-’,j);

Write(‘Merk Susu : ‘);Readln(merk[j]);

Write(‘Ukuran [K/S/B] :
‘);Readln(ukuran[j]);

Write(‘Jumlah Beli :
‘);Readln(jumbel[j]);

If merk[j]=’Dancow’ then

Case ukuran[j] of

‘K’:harsat[j]:=6500;

‘S’:harsat[j]:=9500;

‘B’:harsat[j]:=13500;

End

Else If merk[j]=’Bendera’ then

Case ukuran[j] of

‘K’:harsat[j]:=8500;
Page 27 of 50
‘S’:harsat[j]:=13500;

‘B’:harsat[j]:=18500;

End

Else

Case ukuran[j] of

‘K’:harsat[j]:=9500;

‘S’:harsat[j]:=16500;

‘B’:harsat[j]:=23500;

End;

If jumbel[j]>=15 then

Begin

harkot[j]:=jumbel[j]*harsat[j];

pot[j]:=0.1*harkot[j];

harsih[j]:=jumbel[j]*harsat[j]-pot[j];

End

Else if jumbel[j]>=30 then

Begin

harkot[j]:=jumbel[j]*harsat[j];

pot[j]:=0.2*harkot[j];

harsih[j]:=jumbel[j]*harsat[j]-pot[j];
Page 28 of 50
End

Else

Begin

harkot[j]:=jumbel[j]*harsat[j];

pot[j]:=0*harkot[j];

harsih[j]:=jumbel[j]*harsat[j]-pot[j];

End;

End;

clrscr;

Gotoxy(1,1);Writeln(‘==========================================
=================================’);

Gotoxy(2,2);Writeln(‘No’);

Gotoxy(7,2);Writeln(‘Merk’);

Gotoxy(16,2);Writeln(‘Ukuran’);

Gotoxy(24,2);Writeln(‘Jumlah’);

Gotoxy(32,2);Writeln(‘Harga’);

Gotoxy(55,2);Writeln(‘Potongan’);

Gotoxy(70,2);Writeln(‘Total’);

Gotoxy(1,3);Writeln(‘Urut’);

Gotoxy(7,3);Writeln(‘Susu’);

Page 29 of 50
Gotoxy(16,3);Writeln(‘Kaleng’);

Gotoxy(25,3);Writeln(‘Beli’);

Gotoxy(32,3);Writeln(‘Satuan’);

Gotoxy(70,3);Writeln(‘Bayar’);

Gotoxy(1,4);Writeln(‘==========================================
=================================’);

For j:=1 to i do

Begin

Gotoxy(1,j+4);Writeln(j);

Gotoxy(7,j+4);Writeln(merk[j]);

Gotoxy(18,j+4);Writeln(ukuran[j]);

Gotoxy(26,j+4);Writeln(jumbel[j]);

Gotoxy(32,j+4);Writeln(‘Rp’,harsat[j]);

Gotoxy(55,j+4);Writeln(‘Rp ‘,pot[j]:0:2);

Gotoxy(67,j+4);Writeln(‘Rp ‘,harsih[j]:5:2);

End;

Writeln(‘======================================================
=====================’);

Readln;

End.

Page 30 of 50
1.2.9 Contoh program array 9 | toko serba ada

Kode :

uses crt;

var

np:string[20];

jd,i:byte;

nb:array[1..50]of string;

jb,ttl,hrg:array[1..50]of real;

tot:real;

lagi:char;

label awal,akhir;

begin

awal:

clrscr;

writeln(‘TOKO “SERBA ADA”‘);

writeln(‘————————-’);

write(‘masukan nama pembeli :’);readln(np);

write(‘masukan jumlah data :’);readln(jd);

for i:=1 to jd do

begin

Page 31 of 50
writeln(‘data ke- ‘,i);

write(‘nama barang :’);readln(nb[i]);

write(‘jumlah beli :’);readln(jb[i]);

write(‘harga :’);readln(hrg[i]);

end;

clrscr;

writeln(‘ TOKO “SERBA


ADA”‘);

writeln(‘ TABEL PENJUALAN


BARANG’);

writeln(‘———————————————————–’);

writeln(‘No. Nama pembeli Nama barang


Jumlah harga total ‘);

writeln(‘———————————————————–’);

tot:=0;

for i:=1 to jd do

begin

ttl[i]:=hrg[i]*jb[i];

tot:=tot+ttl[i];

end;

for i:=1 to jd do

Page 32 of 50
begin

writeln(i:1,np:10,nb[i]:13,jb[i]:12:0,hrg[i]:8:0,ttl[i]:10:0);

end;

writeln(‘————————————————————-’);

writeln(‘total bayar
= ‘,tot:3:0);

writeln(‘————————————————————-’);

write(‘Mau input data


lagi[Y/T]=’);readln(lagi);

if (lagi=’Y') or (lagi=’y') then

goto awal

else

goto akhir;

akhir:

readln;

end.

1.2.10 contoh program array 10 | bengkel

Kode :

program bengkel;

uses crt;

Page 33 of 50
var

i,b:byte;

nm,nmoli,jnsmbl:array [1..50]of string;

hrg,bonus,hrgsev,hrgoli,tot:array [1..50]of
real;

totb:real;

begin

clrscr;

writeln(‘BENGKEL MAJU MUNDUR’);

writeln(‘========================’);

write(‘Masukan data: ‘);readln(b);

for i:=1 to b do

begin

writeln(‘data ke- ‘,i);

writeln;

write(‘nama pengunjung :’);readln(nm[i]);

write(‘jenis kendaraan [1. mobil| 2.


motor]:’);readln(jnsmbl[i]);

write(‘jenis oli [ 1. castrol| 2. pelumas


pertamina]:’);readln(nmoli[i]);

end;

writeln;

Page 34 of 50
writeln(‘ PROGRAM SERVIC BENGKEL
MAJU MUNDUR’);

writeln(‘======================================================
================’);

writeln(‘NO NAMA PENGUNJUNG JENIS


KENDARAAN JENIS OLI TOTAL ‘);

writeln;

totb:=0;

for i:=1 to b do

begin

if jnsmbl[i]=’1′ then

hrgsev[i]:=30000

else

hrgsev[i]:=20000;

if nmoli[i]=’2′ then

hrgoli[i]:= 20000

else

hrgoli[i]:=30000;

tot[i]:=hrgsev[i]+hrgoli[i];

totb:=totb+tot[i];

end;

Page 35 of 50
for i:=1 to b do

begin

writeln(i:1,nm[i]:9,hrgsev[i]:14:0,hrgoli[i]:18:0,tot[i]:19:0);

end;

writeln(‘======================================================
===========’);

writeln(‘total bayar
:’,totb:2:0);

readln;

end.

1.2.11 contoh program array 11 | kereta

Kode :

uses crt;

var

jp,i:byte;

np,nk:array[1..50]of string;

fsl:array[1..50]of char;

jml,hrg,ttl:array[1..50]of real;

tot:real;

Page 36 of 50
lagi:char;

label awal,akhir;

begin

awal:

clrscr;

writeln(‘STASIUN “HARUS BERHENTI” ‘);

writeln(‘================================’);

write(‘masukan jumlah pemesan :’);readln(jp);

for i:=1 to jp do

begin

writeln(‘Data ke- ‘,i);

write(‘Nama pemesan :’);readln(np[i]);

write(‘Nama kereta :’);readln(nk[i]);

writeln(‘fasilitas [ [Link] [Link] ');

write(' [Link] [Link] ]


=’);readln(fsl[i]);

write(‘jumlah pesan :’);readln(jml[i]);

end;

writeln(‘ STASIUN “HARUS


BERHENTI” ‘);

writeln(‘ PROGRAM PENJUALAN TIKET


KERETA API’);

Page 37 of 50
writeln(‘————————————————————————-’);

writeln(‘NO. Nama Pemesan Nama Kereta


Fasilitas Jumlah Pesan harga total’);

tot:=0;

for i:=1 to jp do

begin

if fsl[i]=’1′ then

hrg[i]:=200000

else

if fsl[i]=’2′ then

hrg[i]:=180000

else

if fsl[i]=’3′ then

hrg[i]:=140000

else

hrg[i]:=80000;

ttl[i]:=hrg[i]*jml[i];

tot:=tot+ttl[i];

end;

for i:=1 to jp do

begin
Page 38 of 50
writeln(i:1,np[i]:10,nk[i]:12,fsl[i]:15,jml[i]:14:0,hrg[i]:12:0
,ttl[i]:10:0);

end;

writeln(‘————————————————————————–’);

writeln(‘total pembayaran
=’,tot:9:0);

writeln(‘————————————————————————–’);

write(‘Mau input data lagi[Y/T]=’);readln(lagi);

if (lagi=’Y') or (lagi=’y') then

goto awal

else

goto akhir;

akhir:

readln;

end.4

4
[Link]
Page 39 of 50
BAB 2

RECORD

1. Pengertian

Record merupakan kumpulan elemen data yang dikumpulkan menjadi satu kesatuan dengan
tipe data sama ataupun berbeda. Meskipun field tersebut berada dalam satu kesatuan,
namun masih dapat di akses secara individual.
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).
Cara pendeklarasian dari record adalah sebagai berikut:
• Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
• Mendefinisikan variabel untuk dilakukan operasi.
SYNTAX
type
nama_record = record
identifier_1 : tipe_data_1;
identifier_n : tipe_data_n;
end;
var variabel : nama_record;
Contoh.
type
Data_mahasiswa = record
Nama : string;
Usia : integer;
Kota : String;
Kodepos : integer;
end;
Var
x: Data_mahasiswa;
1. Pengaksesan Elemen Record
[Link] Nama variable disertai nama field.
[Link]
Page 40 of 50
[Link]
[Link]
Contoh.
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var
waktu : tanggal;
begin
[Link] :=25;
[Link]:=09;
[Link]:= 1983;
writeln('hari ini adalah ',[Link],':',[Link],':',
[Link])
end.
2. Pengunaan With … do
Pernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record.
Pemrograman dapat mengakses field cukup dengan menyebutkan nama field-nya saja.
Misalkan pernyataan :
[Link]
[Link]
[Link]
[Link]
menjadi
with x do
Begin
Nama
Usia
Kota
Kodepos
end
Contoh.
program RECORD_INTRO;

Page 41 of 50
type tanggal = record
bulan, hari, tahun : integer;
end;
var
waktu : tanggal;
begin {program utama}
with waktu do {mulai with}
begin
hari :=25;
bulan:=09;
tahun:=1983;
writeln('hari ini adalah ',hari,':',bulan,':', tahun)
end {akhir with}
end.
3. Array dari Record
Suatu array dapat juga berisi record contoh suatu deklarasi record tanggal.
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
kemudian kita membentuk suatu array dari record ini, namakan birthdays.
var birthdays : array[1..10] of tanggal;
pernyataan ini akan membentuk suatu array dengan 10 elemen. Dimana tiap elemen adalah
sebuah record tanggal, yaitu, terdiri atas bulan, hari, tahun dengan tipe data Integer.
Digambarkan seperti berikut:
Contoh Pemberian nilai awal dari masing-masing elemen birthdays:
Birthdays[1].hari :=25;
Birthdays[1].bulan:=09;
Birthdays[1].tahun:=1983;
4. Record di dalam Record
Record bisa berisi record lain sebagai field. Seperti contoh record tanggal dan jam
dikombinasikan menjadi sebuah record saat ini,
type tanggal = record
bulan, hari, tahun : integer;

Page 42 of 50
end;
type waktu =record
jam, menit, detik : integer;
end;
type waktu_ini =record
tanggal_ini : tanggal;
waktu_ini : waktu
end;
Kemudian kita perlu membuat variabel kerja
var saat_ini : waktu_ini;
pemberian nilai akan terjadi seperti di bawah ini:
saat_ini.[Link]:= 11;
saat_ini.[Link]:= 2;
saat_ini.[Link]:= 1985;
saat_ini.[Link]:= 3;
saat_ini.[Link]:= 3;
saat_ini.[Link]:= 33;
Simple Record dan Array pada Pascal
Pada ujian struktur data kemaren ada sebuah soal yang memerintahkan kita untuk membuat
sebuah program untuk sebuah perpustakaan. Program ini akan merekam informasi mengenai
200 data buku-buku yang ada meliputi judul buku, kode, pengarang, edisi, tahun terbit, dan
penerbitnya. Output yang diharapkan adalah berupa tabel yang menampilkan informasi data
buku yang telah direkam secara terurut ascending dengan metode sorting berdasarkan judul
buku. Demikianlah kira-kira gambaran tentang program tersebut..
uses wincrt; type
recBuku=record
judul:string[20];
kode:string[10];
pengarang:string[20];
ed:string[4];
tahun:integer;
penerbit:string[20];
end;
var

Page 43 of 50
a:array[1..200] of recBuku;
tempjudul,temppeng,temppnb:string[20];
tempkod:string[10];
temped:string[4];
tempth,i,j:integer;
begin
writeln(’+++++++++++++++++ Input Data Buku ++++++++++++++++’);
writeln(’—————————————————————–’);
for i:=1 to 200 do
begin
write(’Judul Buku : ‘);readln(a[i].judul);
write(’Kode Buku : ‘);readln(a[i].kode);
write(’Pengarang : ‘);readln(a[i].pengarang);
write(’Edisi : ‘);readln(a[i].ed);
write(’Tahun terbit : ‘);readln(a[i].tahun);
write(’Penerbit : ‘);readln(a[i].penerbit);
writeln;
end;
for i:=1 to 200 do
begin
for j:=1 to 200 do
begin
if a[j].judul > a[i].judul then
begin
tempjudul:=a[j].judul;
a[j].judul:=a[i].judul;
a[i].judul:=tempjudul;
tempkod:=a[j].kode;
a[j].kode:=a[i].kode;
a[i].kode:=tempkod;
temppeng:=a[j].pengarang;
a[j].pengarang:=a[i].pengarang;
a[i].pengarang:=temppeng;
temped:=a[j].ed;
a[j].ed:=a[i].ed;
Page 44 of 50
a[i].ed:=temped;
tempth:=a[j].tahun;
a[j].tahun:=a[i].tahun;
a[i].tahun:=tempth;
temppnb:=a[j].penerbit;
a[j].penerbit:=a[i].penerbit;
a[i].penerbit:=temppnb;
end;
end;
end;
clrscr;
writeln;
writeln(’+++++++++++++++++ Output Data Buku ++++++++++++++++++
+’);
writeln;
writeln(’———————————————————————–’);
writeln(’| No | Judul | Kode | Pengarang | Edisi | Tahun |
Penerbit |’);
writeln(’———————————————————————–’);
writeln;
for i:=1 to 200 do
begin
writeln(i,’ ‘,a[i].judul:3,’ ‘,a[i].kode:3,’
‘,a[i].pengarang:3,’ ‘,a[i].ed:3,’ ‘,a[i].tahun:3,’
‘,a[i].penerbit:3);
end;
readln;
end.
Pada program diatas deklarasi untuk proses sorting data ditunjukkan pada :
for i:=1 to 200 do
begin
for j:=1 to 200 do
begin
if a[j].judul > a[i].judul then
begin
Page 45 of 50
tempjudul:=a[j].judul;
a[j].judul:=a[i].judul;
a[i].judul:=tempjudul;

a[j].penerbit:=a[i].penerbit;
a[i].penerbit:=temppnb;
end;
end;
end;
yang akan memproses data secara ascending berdasarkan judul buku yang telah diinputkan
pengguna. Demikian semoga bisa membantu kita semua.
[Link] Tipe Rekaman
Sama halnya dengan larik, rekaman (record) adalah kumpulan data. Perbedaan antara larik
dengan rekaman adalah dalam larik semua elemennya harus bertipe sama tetapi dalam
rekaman setiap elemen bisa mempunyai tipe data yang berbeda satu sama lainnya.
Bentuk umum deklarasi rekaman adalah
type pengenal = record
medan1 :tipe1;
medan2 :tipe2;
.
.
.
medann :tipen;
end;
Keterangan:
pengenal : pengenal yang menunjukkan tipe data yang akan dideklarasikan.
medan1,…, medann : nama medan yang akan digunakan.
tipe1,…, tipen : sembarang tipe data yang telah dideklarasikan sebelumnya.
Contoh deklarasi rekaman,
type Tgl_Kalender = record
Tanggal :1..31;
Bulan : 1..12;

Page 46 of 50
Tahun : 1900..2000;
end;5

2. Contoh program

2.2.1 Contoh program record | menampilkan data karyawan

Kode:

program list; {untuk menampilkan list data karyawan}


 
uses wincrt;
type karyawan=record
nama: string;
kelamin: string;
alamat : string;
end;
var kry: karyawan;
begin
clrscr;
write('Masukkan Nama: '); readln([Link]);
write('Masukkan Jenis Kelamin: '); readln([Link]);
write('Masukkan Alamat: '); readln([Link]);
{untuk memasukkan data karyawan}
writeln([Link]);
writeln([Link]);
writeln([Link]);
{untuk menampilkan data karyawan}
end.6

2.2.2 Contoh program record 2 | data mahasiswa

Kode :

5
[Link]
6
[Link]
Page 47 of 50
type recMhs = record
nama : string[80];
NPM : string[8];
nilai : integer;
end;

var recordMahasiswa: recMhs;

begin
Write(’Masukkan nama mahasiswa ‘);
ReadLn([Link]);
Write(’Masukkan NPM ‘); ReadLn([Link]);
Write(’Nilainya berapa ‘); ReadLn([Link]);
WriteLn(’Nama mahasiswa yang Anda masukkan adalah
‘,[Link]);
WriteLn(’NPM mahasiswa ini adalah ‘,[Link]);
WriteLn(’Nilainya adalah ‘,[Link]);
end.

2.2.3 contoh program record 3

Kode :

type barang=RECORD
namabrg:string[20];
jmlbrg:byte;
hargabrg:real;
total:real;
end;
var jual:array [1..10] of barang
i,j:integer;
tot1:real;
Begin
I:=1;
write(‘Nama barang :’);readln(jual[i].nmbrg);
Repeat
write(‘Jumlah barang :’);readln(jual[i].jmlbrg);
Page 48 of 50
write(‘Harga barang :’);readln(jual[i].hrgbrg);
jual[i].total:=jual[i].jmlbrg* jual[i]. jual[i].[Link];
inc (I);
write(‘Nama barang :’);readln(jual[i].nmbrg);
until (jual[i].nmbrg=‘0’) or (I=11);
dec(i);
clrscr;
writeln
(‘--------------------------------------------------------
----’);
writeln (‘No nama barang jumlah harga total’);
writeln
(‘--------------------------------------------------------
----’);
for j:=1 to I do
begin
gotoxy(1,j+3);write (j);
gotoxy(5,j+3);write(jual[i].nmbrg);
gotoxy(26,j+3);write(jual[i].jmlbrg:10);
gotoxy(37,j+3);write(jual[i].hrgbrg:10:2);
gotoxy(48,j+3);write(jual[i].total:10:2);
tot1:=tot1 + jual[j].total ;
end;
writeln
(‘--------------------------------------------------------
----’);
writeln(‘ Total :’,tot1:10:2’);
writeln
(‘--------------------------------------------------------
----’);
end.7

7
ivan_maurits.[Link]
Page 49 of 50
DAFTAR PUSTAKA

[Link], search engine. Diakses tanggal 5 januari 2010, jam 21.00 WIB

[Link] diakses tanggal 5


januari 2010, jam 21.10 WIB

[Link] diakses tanggal 5 januari 2010, jam 21.15 WIB

[Link] diakses tanggal 5 januari 2010, jam 21.19 WIB

[Link] diakses tanggal 5


januari 2010, jam 21.26 WIB

[Link]
diakses pada tanggal 5 januari 2010, jam 21.32 WIB

[Link] diakses pada tanggal 5 januari 2010, jam


21.40 WIB

ivan_maurits.[Link], diakses pada tanggal 5 januari 2010, jam 21.47 WIB

Page 50 of 50

Anda mungkin juga menyukai