Buku Penunjang Praktek Pascal

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

Buku Penunjang Praktek Pascal
(High level language)

I. Sekilas Struktur Pascal
Secara ringkas, struktur suatu program Pascal terdiri dari:
1.
2.

Judul program
Blok program
a. Bagian deklarasi
„ deklarasi piranti
„ deklarasi label
„ deklarasi konstanta
„ deklarasi tipe
„ deklarasi variabel
„ deklarasi prosedur

„ deklarasi fungsi
b. Bagian pernyataan
*) Berarti para mahasiswa dapat menyimpulkan langsung bahwa bahasa Pascal ini
punya struktur dan merupakan bahasa terstruktur
*) Dan dalam aplikasinya, tidak harus semua bagian dari struktur tersebut harus ada
tergantung keperluan programnya. Mungkin saja tidak perlu ada judul program,
atau deklarasi label, atau tidak dibutuhkan adanya konstanta.

Penulisan Program Pascal
Program Pascal tidak mengenal aturan penulisan dikolom tertentu seperti pada
Cobol ataupun RPG, jadi boleh ditulis mulai dari kolom keberapapun.
Suatu program Pascal yang paling sederhana hanya terdiri dari sebuah bagian
pernyataan saja yang merupakan bagian terakhir dari suatu blok.

begin {awal bagian pernyataan }
end . {akhir bagian pernyataan yang harus diakhiri titik }

Bentuk umum dari bagian pernyataan ini adalah sebagai berikut:

begin

.
statement ; { harus diakhiri titik koma }
.
.
end .

By Pascal Research Team

1

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

*) Dapat disimpulkan sementara bahwa dalam program Pascal harus dimulai dari
Begin dan diakhiri End
Contoh penulisan program:
program contoh ; { judul program yang bersifat optional menggunakan kata kunci program }
uses crt ;
{ deklarasi piranti menggunakan kata kunci uses }

label 10, selesai ; { deklarasi label menggunakan kata kunci label }
const
{ deklarasi konstanta menggunakan kata kunci const }
x=1;
y=5;
type
{ deklarasi tipe menggunakan kata kunci type }
hasil = integer;
var
j : integer;
{ deklarasi variabel menggunakan kata kunci var }
nama prosedur

procedure hitung (x, y : integer); { deklarasi prosedur menggunakan kata kunci procedure }
kumpulan parameter

begin { awal prosedur }
end; { akhir prosedur yang harus diakhiri titik koma }
nama fungsi
kumpulan parameter


function pangkat ( x, y : real) : real; { deklarasi fungsi menggunakan kata kunci function }
tipe fungsi

begin {awal fungsi }
end; { akhir fungsi yang harus diakhiri titik koma }

Ket:
PROGRAM
Kata program pada bagian deklarasi merupakan kata yang berguna untuk
memberikan judul program yang akan dibuat.
USES
Uses merupakan perintah yang digunakan untuk memakai suatu unit tertentu dari
Turbo Pascal. Unit pada Turbo Pascal adalah kumpulan instruksi yang
merupakan prosedur dan fungsi yang dipakai dalam Turbo Pascal.
Contoh:

By Pascal Research Team

2


Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

Æ unit yang mengatur kerja layar dan keyboard atau I/O, seperti : clrscr
untuk membersihkan layar.
- unit printer Æ unit yang mengatur kerja printer sehingga dapat dilakukan pengiriman
langsung ke printer yang berhubungan dengan perintah lst.
- unit graph Æ unit yang berorientasi ke pemrograman grafik.
- unit overlay Æ unit yang mengatur pembagian sebuah program menjadi dua file atau
lebih
- unit crt

penulisannya:
uses crt, printer;

II. OUTPUT
Ada banyak statement untuk menghasilkan OUTPUT, salah satunya Write dan Writeln
a. Ketik 1 (Kamu buka editor Pascalnya, ketiklah program berikut ! )

Program cetak1 (output);
Begin
Write (‘Be’);
Write (‘la’);
Write (‘jar’);
End
Coba di Run !
Hasil: Apakah dalam baris yang sama ?
Coba lagi program tersebut cuma write diganti dengan writeln
Hasil: ?
Kesimpulan: ?
b. Ketik 2
program cetak2 (output);
begin
write (‘My name is’);
wrriteln(‘Jean Claude Van Dame.’);
write(‘what yours?’);
end
Coba di Run !
Hasil: Apakah ada spasi antara is dan Jean ? mengapa ?


c.

Ketik 3
Program cetak3 (output);
Begin

By Pascal Research Team

3

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

Writeln(2000);
Writeln(2000+503);
Writeln(1075-500);
Writeln(14*62);
Writeln(23 div 7);

Writeln(18 mod 4);
End
Coba di Run !
Hasil: ?
Kesimpulan: ?
*) Cari sendiri di buku cetak lain mengenai fungsi div, mod, round, trunc, dll

Latihan: Penggunaan write dan writeln
Buatlah program yang hasilnya sbb:
1. * * * * *
*
*
*
*
*
*
* * * * *
2. + + + +
x x x
- /

3. *
*
*
*
*
*
*
*

+
x x
- - / / / /

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

* * *

4. Cetak hasil akhir dari rumus berikut
2+3
42
i. 6 x ------ii. ---- x 52 + 6 X 3 + 4
4+5
7

d. Ketik 4
Program cetak3kali (output);
Procedure c3k;

By Pascal Research Team

{bahasan tentang Procedure ini akan dilanjutkan

4

Universitas Putra Indonesia


Yayasan Perguruan Tinggi Komputer

Lebih mendalam, makanya tolong dilihat betul
fungsi dan unjuk kerjanya}
begin
writeln(‘? ? ? ?’);
writeln(‘?
?’);
writeln(‘?
?’);
writeln(‘? ? ? ?’);
end;
begin
c3k;
writeln;
c3k;
writeln;
c3k;

{ memanggil procedure dengan nama c3k}
{ memanggil lagi untuk yang kedua }

end
Hasil: ?
*) Bila sdr ingin menambah cetakannya, di panggil aja nama procedurenya
sering-sering, OK !.

II. 1 Pengulangan Mencetak dengan Satement FOR
a. Ketik 5
Program cetak5(output);
Procedure c5k;
Begin
Writeln(‘* * *
Writeln(‘*
Writeln(‘*
Writeln(‘* * *
End;
Begin
For k:= 1 to 5 do
Begin
C5k;
Writeln;
End; End

*’);
*’);
*’);
*’);
{mencetak 5 kali}

Hasil: ?
Kesimpulan : ?
*) For K := 1 to 5 do
K merupakan nama variabel. Sdr boleh mengganti dengan nama lain,
Mis: hitung, kali,cetak, dll. Hanya saja harus dideklarasikan lebih dulu agar
komputer dapat mengenal variabel tersebut, yaitu pada Var setelah judul
program.

By Pascal Research Team

5

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

program cetak5 (output);
var k:integer;
.
.
.
dst

b. Ketik 6
Ulangi program Ketik 5 diatas, hanya saja dalam FOR-loop sdr hapus
statement Begin dan end nya.
Hasil: ?
Kesimpulan: ?

c. Ketik 7
Program bilangan1 (output);
Var
K:integer;
Begin
For K := 1 to 10 do
Writeln (2*K);
Writeln (‘Analisa dech ya !”);
End
Hasil: ?
Kesimpulan: ?

d. Ketik 8
program graph;
var
gr:integer;
procedure datar;
var
pjg:integer;
begin

By Pascal Research Team

6

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

for pjg:= 1to 8 do
write (‘#’);
writeln;
end
procedure sisi;
var
ss:integer;
begin
write (‘#’);
for ss:= 1 to 6 do
write (‘ ‘);
write(‘#’);
end
begin
datar;
for gr := 1 to 5 do
sisi;
datar;

{panggil procedure datar}
{panggil procedure sisi}
{panggil procedure datar}

end

Latihan: PENGULANGAN dengan FOR dibantu sistem Procedure
Tentukan program Pascalnya bila output yang diinginkan sbb:
5.

#

#

#

#

#
#
# #
# #
# #
# # # # # # # # # # # # # # # #
6. 0
1
2
3
4
5

faktorial adalah
faktorial adalah
faktorial adalah
faktorial adalah
faktorial adalah
faktorial adalah

By Pascal Research Team

1
1
2
6
24
.

7

Universitas Putra Indonesia

6
7
8
9
10

faktorial adalah
faktorial adalah
faktorial adalah
faktorial adalah
faktorial adalah

Yayasan Perguruan Tinggi Komputer

.
.
.
.
.

sebagai bantuan dan harap dilengkapi !
.
.
.
writeln (0, ‘Faktorial adalah’, 1);
b:= 1;
for I:= 1 to 10 do
begin
writeln(I, ‘Faktorial adalah’, I*b);
b:=I*b;
end
.
.
.
7. Dari Latihan 6, modifikasi programnya agar tampilan/outputnya menjadi:
0!
1!
2!
3!
4!
5!
.
.
.
dst

=1
=1X1
=1X2X3
=1X2X3X4
=1X2X3X4X5
=1X2X3X4X5X6
.
.
.

=1
=1
=6
= 24
= 120
= 720
.
.
.

*) dimana tanda ! , X , = , dan juga semua bilangan, ditampilkan !

II.2 Pengulangan mencetak dengan Sistem NESTING LOOP
Pengertian sederhananya dari Nesting Loop adalah Ada Loop dalam Loop
a. Ketik 9
Program NL (output);
Var
Index:integer;
Begin
For index := 1 to 10 do
Begin
For index := 1 to 8 do
Write (‘+’);
Writeln;
End

By Pascal Research Team

8

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

End
Hasil: ?
Kesimpulan: ?
Bagaimana dengan program berikut,
b. Ketik 10

Program NL (output);
Var
Baris,kolom :integer;
Begin
For baris := 1 to 10 do
Begin
For kolom:= 1 to 8 do
Write (‘+’);
Writeln;
End;
End.
*) jika ada loop/perulangan yang tidak saling berhubungan dapat digunakan variabel
yang sama, seperti masalah pada ketik 9

c. Ketik 11
program duasegi(output);
var
baris, kolom:integer;
begin
for baris:= 1 to 10 do
begin
for kolom := 1 to 8 do
write(‘+’);
write (‘ ‘);
for kolom := 1 to 8 do
write (‘+’);
writeln;
end;
end.

By Pascal Research Team

9

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

Latihan: Nesting Loop
8. Tentukan hasil cetakan program berikut
For foo:= 1 to 7 do
Begin
For bar:= 1 to 5 do
Write(‘ada-ada’);
Writeln(‘aja’);
End.
9. Tentukan programnya untuk mencetak
+
+
+
+
+
+
+
+
+
+

#
+
+
+
+
+
+
+
+
+

#
#
+
+
+
+
+
+
+
+

#
#
#
+
+
+
+
+
+
+

#
#
#
#
+
+
+
+
+
+

#
#
#
#
#
+
+
+
+
+

#
#
#
#
#
#
+
+
+
+

#
#
#
#
#
#
#
+
+
+

#
#
#
#
#
#
#
#
+
+

#
#
#
#
#
#
#
#
#
+

*) Sdr boleh menggunakan statement

For kolom := baris + 1 to 10 do

10. Tentukan program untuk mencetak hasil berikut :
+
+
+
+
+

+
+ +
+ + +
+ + + +

+ + + + +
+ + + +
+ + +
+ +
+
*) Nilai index dari Loop-For juga dapat di mulai dari besar kekecil dengan
statement DOWNTO

d.

Ketik 12

By Pascal Research Team

10

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

For index := 5 to 1 do
Write (index);
Hasil: ?
*) Kembali lihat soal 10

II. INPUT
Statement dalam Pascal yang digunakan untuk pembacaan suatu nilai input adalah
dengan READ
Bentuk Umum: Read (variabel apa)
Berarti bahwa, bila dalam program harus ada proses input, maka harus disertakan pada
judul program.
Mis:
Program baca (input,output);
a. Ketik 13
Program hasilakh (input,output);
Const
Jumbil=5;
Var
Jumakh:integer;
Bilinput :integer;
Index :integer;
Begin
Jumakh = 0;
Write (‘inputkan bilangannya : ‘);
For index::= 1 to jumbil do
Begin
Read(bilinput);
Write(bilinput);
Jumakh:=jumakh+bilinput;
End;
Writeln;
Write(‘ Hasil akhir adalah : ‘,jumakh);
End.
Run programnya, lalu ketikan nilai sembarang (yaitu nilai bilinput) dari keyboard
Hasil: ?
Kesimpulan: ?
b. Ketik 14
Lengkapi dulu….!
Read(nilai);
Writeln(‘Nilai tersebut adalah : ‘,nilai);
Nilai:=nilai+5;

By Pascal Research Team

11

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

Writeln(‘Nilai sekarang adalah : ‘,nilai);
For index :=4 to 7 do
Begin
Write(index);
Read(next);
Write(next);
Nilai:=nilai+next mod index;
Writeln(nilai);
End
Run programnya, lalu ketikan nilai sembarang (yaitu nilai ) dari keyboard
Hasil: ?
Kesimpulan: ?

c. Ketik 15
Program penjumlahan(input,output);
Var
Jum:integer;
Bil:integer;
Index:integer;
Juminput:integer;
Begin
Read(juminput);
Writeln(‘Ada : ‘,juminput,’nilai yang di inputkan’);
Jum:=0;
Write(‘ Input : ‘);
For index:= 1 to juminput do
Begin
Read(bil);
Write(bil);
Jum:=jum+bil;
End;
Writeln;
Write(‘jumlahnya adalah :’, jum);
End.

Latihan:
11. Rancang program, dimana jumlah data yang diinputkan bervariasi sehingga sdr
dapat memasukkan nilai data yang bervariasi juga, misalnya program untuk mencari
luas dan keliling beberapa persegi panjang dengan panjang dan lebar berbeda-beda
12. Rancang program untuk mencari umur rata-rata dari beberapa mahasiswa (baik
jumlah maupun umur para mahasiswanya bervariasi).

By Pascal Research Team

12

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

13. Rancang program, mencari rata-rata nilai beberapa matakuliah dari tiap mahasiswa,
dimana jumlah mahasiswanya juga lebih dari satu (kalau tidak salah untuk program
yang ini diperlukan prinsip nesting loop, coba dech !)
14. Rancang program, untuk mencari nilai rata-rata setiap 5 kelompok bilangan berbeda
yang sdr inputkan, dimana tiap kelompoknya terdiri atas 4 bilangan !
15. What is the difference between using a constant definition and reading the value
from input ?

II.1 IF statements
Bentuk Umum :

If kondisinya apa (condition)
Then apa prosesnya (statement)

a. Ketik 16
Program kesukaan(input,output);
Const
Bilkessukaan=18;
Var
Bil:integer;
{nilai-nilai yang diinputkan}
Index:integer;
{banyaknya penginputan}
Juminput:integer;
{berapa kali ingin menginputkan}
Begin
Read(juminput);
Writeln(‘Ada : ‘ ,juminput,’ nilai yang di inputkan’);
For index:= 1 to juminput do
Begin
Read(bil);
Write(bil);
If bil = bilkesukaan
Then write (‘ adalah bilangan kesukaan saya’);
Writeln;
End;end.
Beberapa bentuk kondisi :
Contoh:
Îartinya sama dengan
5 = 6 is false(salah)
Expresi1 = expresi2
Îartinya lebih kecil dari
5 < 6 is true (benar)
Expresi1 < expresi2
Îartinya lebih kecil atau
Expresi1 expresi2
Îartinya lebih besar atau
Expresi1 >= expresi2
Sama dengan
5 >= 6 is false
Îartinya tidak sama dengan 5 6 is true
Expresi1 expresi2

By Pascal Research Team

13

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

b. Ketik 17
masalahnnya:
pertama adalah menentukan berapa bilangan yang akan di test, yang kedua
adalah jumlah proses pembandingan yang akan dilakukan. Kita gunakan istilah
‘comparand’ untuk object/nilai pembandingnya, dimana ingin diketahui jumlah bilangan
yang diinputkan yang lebih besar dari nilai pembanding. Artinya, disini kita menginginkan
sebuah counter dan ingin menambah 1 tiap saat bila nilai yang diinputkan lebih besar
Read jumlah nilai-nilai yang akan di test
Read pembanding
Set counter to nol
Kerjakan sebanyak jumlah nilai-nilai yang akan ditest
Baca nilai input
If nilai input > comparand
Then tambah 1 ke counter
Cetak nilai akhir counter
Kita konversi ke Pascal, OK !
Program compare(input,output);
Var
Juminput : integer;
Comparand : integer;
Bil
: integer;
Greater : integer;
Begin
Read(juminput);
Writeln (‘ Ada sebanyak ‘, juminput, ‘ nilai input’);
Read(comparand);
Wrriteln(‘Kita akan check nilai-nilai yang besar dari ‘, comparand);
Greater=0;
For counter:= 1 to juminput do
Begin
Read(bil);
Write(bil);
If bil > comparand
Then begin
Write(‘ adalah lebih besar ‘);
Greater :=greater + 1;
End;
Writeln;
End;
Writeln (‘ Maka ada ‘, greater, ‘ nilai lebih besar.’);
End.
*) Sorry, nama-nama variablenya tidak A, B, C,….tetapi pakai kata-kata yang panjang,
dan bahkan ada yang bahasa inggris, seperti greater, comparand, dll. Kalau jadi
tambah susah, ganti aja dengan yang mudah diingat

By Pascal Research Team

14

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

II. 2 Else
Bila dari masalah di atas (ketik 17) diinginkan mendapatkan juga nilai-nilai yang
lebih kecil dari comparand dan dicetak keterangan ‘lebih kecil’. Berarti :
IF begini-begini (kondisi)
Then begitu1 (statement1)
Else atau begitu2 (statement2);
*) Perlu diketahui bahwa tidak ada tanda semicolon (;) sebelum else, karena IF-THENELSE adalah merupakan satu statement yang terdiri dari 2 bagian statement
*) Untuk mengingatkan, bahwa pemberian tanda
semicolon(;) diakhir sebuah
statement, yaitu bila ada statement berikutnya.
Kita ubah sedikit program ketik 17 dengan menyisipkan logika else….
c. Ketik 18
Program compare(input,output);
Var
Juminput : integer;
Comparand : integer;
Bil
: integer;
hitung
Greater : integer;
Smaller ; integer;
Begin
Read(juminput);
Writeln (‘ Ada sebanyak ‘, juminput, ‘ nilai input’);
Read(comparand);
Wrriteln(‘Kita akan check nilai-nilai yang besar dari ‘, comparand);
Greater=0;
For counter:= 1 to juminput do
Begin
Read(bil);
Write(bil);
If bil > comparand
Then begin
Write(‘ adalah lebih besar ‘);
Greater :=greater + 1;
End; {jika nilai > comparand};
Else begin
Write (‘ adalah lebih kecil ‘);
Smaller := smaller+1;
End {jika nilai < comparand}
Writeln;
End;
Writeln (‘ Maka ada ‘, greater, ‘ nilai lebih besar.’);
Writeln (‘ Dan ada ‘,smaller, ‘niai yang lebih kecil.’);
End.

By Pascal Research Team

15

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

Hasil: ?
Kesimpulan: ngerti enggak ? IF ngerti, modifikasi lah program itu
Sesuai keinginan dan khayalan sdr.
ELSE
Pelajari lagi dech…….!
Yang lebih seru lagi……
Dalam IF-THEN-ELSE ini juga ada logika nested-loop. Dengan bentuk umum
IF begini (*kondisi1*)
THEN IF begini-begini (*kondisi2*)
THEN begitu (*statement1*)
ELSE begitu-begitu (*statement2*)
Atau boleh juga…., dengan menghilangkan loop dari IF kedua ( di-end-kan saja)
IF begini (*kondisi1*)
THEN BEGIN
IF begini-begini(*kondisi2*)
THEN begitu (*statement1*)
END (* THEN dari kondisi1 *)
ELSE begitu-begitu (*statemen2*)
Atau lagi……, dengan mem-fungsikan ELSE dari IF pertama
IF begini (*kondisi1*)
THEN IF begini-begini (*kondisi2*)
THEN begitu (*statement1*)
ELSE begitu-begitu (*statement2*)
ELSE begitu-begitu-begitu (*statement3*)
d. Ketik 19
program coba_else (input,output);
var
padabrs, padacol :integer;
baris, colom :integer;
begin
read (padabrs, padacol);
writeln (‘Posisi pada(‘, padabrs, ‘, ‘,padacol, ‘) .’);
For baris :=1 to 8 do
Begin
For colom :=1 to 8 do
IF padabrs and padacol THEN write (‘ * ’)
ELSE IF (baris+colom) MOD 2 = 0 THEN write (‘ W’)
ELSE write (‘ B’);
Writeln;
End;
End.

By Pascal Research Team

16

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

e. Ketik 20
sama dengan ketik 19 tetapi modifikasi statement IF nya dengan
IF (padabrs=baris) AND (padacol=colom)
THEN write (‘ #’);
.
.
dst
*) Belum pernah belajar fungsi AND ya….., makanya belajar dari buku lain dulu.

ARRAY
-

-

Setiap variabel yang dinyatakan sebagai ARRAY harus dideklarasikan pada
blok VAR
Hal yang perlu dinyatakan adalah nama variabel, indeks variabel dan tipe
variabel
Deklarasi ini juga akan melakukan pemesanan tempat/ memori dari setiap
variabel ARRAY tersebut.
Contoh deklarasi seperti dibawah ini:

VAR
nama : array [1..10] of string[15];
nobp
: array [1..10] of longint;
A
: array [1..10,1..10] of integer;
X
: array [1..10] of real;
Contoh penggunaan ARRAY
Dibuat program Pascal untuk mengolah data nilai mahasiswa. Setiap mahasiswa
mempunyai data:
Nama
NOBP
Nilai midtest
Nilai ujian akhir

By Pascal Research Team

17

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

Dari data tersebut akan diolah sehingga mendapatkan nilai indeks. Jumlah mahasiswa
adalah n orang, sehingga variabel dinyatakan sebagai ARRAY.
PROGRAM mhs (input, output);
USES crt;
VAR

nama : array [1..10] of string[15];
nobp
: array[1..10] of longint;
quiz,mid,akhir,rata : array [1..10] of real;
indeks
: array[1..10] of string[1];
i,n,k : integer;
BEGIN

clrscr;
write (‘Jumlah Mahasiswa
: ‘);readln(n);
FOR i := 1 to n do
BEGIN
clrscr;
gotoxy (10, 5); write(‘Nama
: ‘);
gotoxy (10, 6); write(‘Nobp
: ‘);
gotoxy (10, 7); write(‘Nilai Quiz : ‘);
gotoxy (10, 8); write(‘Nilai Mid
: ‘);
gotoxy (10, 9); write(‘Nilai Akhir : ‘);
gotoxy (30, 5); readln(nama);
gotoxy (30, 6); readln(nobp);
gotoxy (30, 7); readln(quiz);
gotoxy (30, 8); readln(mid);
gotoxy (30, 9); readln(akhir);
END;
FOR k := 1 to n do
BEGIN
rata[k] := 0.25 * quiz[k] + 0.25 * mid[k] + 0.5 * akhir[k];
CASE rata[k] OF
0..39 : indeks[k] :=’E’;
40..54 : indeks[k] :=’D’;
55..64 : indeks[k] :=’C’;
65..79 : indeks[k] :=’B’;
80..100 : indeks[k] :=’A’;
END;
END;
clrscr;
gotoxy(2,2);write(‘Nama Nobp
Rata-rata
Indeks’);
gotoxy(2,3);write(‘~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~’);
{
2345678901234567890123456789012345678
1
2
3
}
FOR i := 1 to n do
BEGIN

By Pascal Research Team

18

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

clrscr;
gotoxy (2, 3+i); write(nama[i]);
gotoxy (11, 3+i); write(nobp[i]);
gotoxy (22, 3+i); write(rata[i]);
gotoxy (33, 3+i); write(indeks[i]);
END;
gotoxy(2,4+i);write(‘~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~’);
END.

RECORD







Record merupakan type data terstruktur yang harus dideklarasikan sendiri
Record terdiri dari beberapa field dimana setiap field harus dinyatakan namanya dan
type dari field tersebut
Deklarasi dari record dapat dinyatakan pada bagian blok TYPE dan pada blok VAR
Untuk melakukan pengolahan terhadap field dapat dilakukan dengan 2 cara:
- perintah titik
- statement WITH
Dibawah ini adalah contoh deklarasi record:
TYPE mahasiswa
Nama :
BP
:
Umur :
END;

= RECORD
string [15] ;
string [8] ;
integer ;

VAR mhs : mahasiswa;

{ hanya untuk 1 orang mahasiswa }

Membaca field dengan menggunakan perintah titik:
Write ('Nama : '); readln (mhs.nama);
Write ('Nobp : '); readln (mhs.nobp);
Write ('Umur : '); readln (mhs.umur);

By Pascal Research Team

19

Universitas Putra Indonesia

Yayasan Perguruan Tinggi Komputer

Kalau menggunakan statement WITH:
WITH mhs DO
BEGIN
Write ('Nama : '); readln (nama);
Write ('Nobp : '); readln (nobp);
Write ('Umur : '); readln (umur);
END ;


Untuk lebih dari satu mahasiswa (misalkan 5 orang mahasiswa)
TYPE mahasiswa
Nama :
BP
:
Umur :
END;

= RECORD
string [15] ;
string [8] ;
integer ;

VAR mhs : array [1..5] of mahasiswa;
i
: byte;
BEGIN
For i := 1 to 5 do
BEGIN
WITH mhs[ i ] DO
BEGIN
Write ('Nama
: '); readln (nama);
Write ('Nobp
: '); readln (nobp);
Write ('Umur
: '); readln (umur);
END ;
For i := 1 to 5 do
BEGIN
WITH mhs[ i ] DO
BEGIN
Write ('Nama
: '); writeln (nama);
Write ('Nobp
: '); writeln (nobp);
Write ('Umur
: '); writeln (umur);
END;
END ;
END.

By Pascal Research Team

20