Modul ini membahas operator dalam bahasa pemrograman Pascal. Terdapat beberapa jenis operator seperti operator assignment, binary, unary, bit, relasi, logika, dan alamat. Operator digunakan untuk manipulasi dan perbandingan data dalam program."
1. TOKI Smansasoo Goes to OSN 2009
MODUL 01 DASAR PEMROGRAMAN PASCAL
1.1 Pengenalan : menulis, menyimpan, run, compile.
Run adalah menjalankan program yang diketik pada
jendela editor. Compile adalah mengubah bahasa
pemrograman tingkat tinggi yang telah diketik ke bahasa
mesin dan menyimpannya ke disk dalam bentuk executetable
program.
1. Tulis potongan program dibawah
{ File : first .pas}
Program kesan;
Begin
Writeln(‘Tim olimpiade komputer’);
End.
2. Simpan ke dalam file sooko1.pas
3. Compile program ini.
4. Jalankan menu run
5. Jalankan menu debug user screen untuk melihat
hasilnya
1.2 Kerangka Program Pascal
Program Pascal merupakan kumpulan fungsi, prosedur,
dan variable. Sebuah fungsi merupakan sekumpulan baris
program yang mengerjakan tugas tertentu dan
mengembalikan hasilnya. Sebuah fungsi terdiri dari sebuah
nama fungsi, daftar variable, satu blok kode yang membentuk
fungsi tersebut. Sebuah blok dimulai dari kata “begin”, diikuti
dengan beberapa statement dan diakhiri dengan kata “end”.
PROGRAM namaProgram (File List);
CONST
{ deklarasi Constanta }
TYPE
{ deklarasi Type }
VAR
{ deklarasi Variable}
BEGIN
{ Statement yang akan dijalankan }
END.
Tim Olimpiade Komputer SMAN 1 Sooko | 1
2. TOKI Smansasoo Goes to OSN 2009
Program contoh ;
Uses crt;
Function tambah (x,y: integer): integer;
Begin
Tambah:=x+y;
End;
Var
hasil : integer ;
begin
clrscr;
hasil := tambah(5,5);
writeln(‘5+5 = ’,hasil);
readln;
end.
1.3 Tanda – tanda baca dalam pascal
Berikut beberapa tanda baca yang ada dalam bahasa pascal
berikut fungsinya :
Tanda Baca Kegunaan
. Akhir dari program utama
: Deklarasi tipe konstanta, variable dan fungsi
; Akhir dari suatu perintah
= Inisialisasi Konstanta
.. Menyatakan range dalam array
, Pemisah antara nama – nama variabel
^ Tanda control atau tanda penunjuk (pointer)
contoh:
Program contoh2 ;
Uses crt;
Const
Pi=3.14;
Function luas_lingkaran (r : integer): real;
Begin
Luas_lingkaran:=pi*r*r;
End;
Var
hasil : real ;
data_nilai1,data_nilai2 : array [1..44] of integer;
p: ^real;
begin
clrscr;
hasil := luas_lingkaran(5);
p^:=hasil;
writeln(^G,’luas lingkaran dengan r = 5 adalah ‘,hasil);
readln;
end.
2 |T i m Olimpiade Komputer SMAN 1 Sooko
3. TOKI Smansasoo Goes to OSN 2009
1.4 Pengenal (identifier)
Syarat-syarat penamaan sebuah identifier adalah :
a. Dapat sepanjang apapun
b. Harus diawali dengan huruf atau underscore(_)
c. Karakter ke dua dan selanjutnya dapat berupa huruf, angka
, atau underscore
d. Tidak boleh ada 2 identifier dalam satu program
e. Tidak boleh berupa reserved word. Reserved word adalah
kata yang telah dikenal oleh pascal yang telah mempunyai
kegunaan tertentu.
Contoh penulisan identifier yang benar:
- Coba1
- Jari_jari
- Programcoba_coba
Contoh penulisan identifier yang salah
- Coba 1 (mengandung spasi)
- Jari-jari (mengandung karakter -)
- 2b (diawali dengan angka)
- To (reserved word)
Contoh penggunaan identifier:
Program coba1;
Var
a,b:byte;
type
c=word
begin
……
End.
Pada program diatas, terdapat 4 buah identifier, yaitu coba1
sebagai nama program, a,b digunakan sebagai identifier dari
deklarasi var, dan c sebagai identifier nama type.
Tim Olimpiade Komputer SMAN 1 Sooko | 3
4. TOKI Smansasoo Goes to OSN 2009
1.5 Reserved word
1.6 Tipe Data
Tipe data menyatakan pola penyajian data dalam computer:
karakter, bilangan, string, record. Dalam Pascal tipe data
digolongkan menjadi 4 yaitu tipe data standart, tipe data di
definisikan oleh pemakai, tipe data terstruktur dan tipe data
penunjuk. Tabel dibawah menampilkan beberapa tipe data
standart dan domainnya yang dikenal dalam pascal.
Nama Tipe byte Jangkauan Bilangan
Byte 1 0..255
Char 1 -128… 127
Integer 2 -32768..32767
Word 2 0..65535
LongInt 4 -2147483648….2147483647
Real 4 Le-38 … le+ 38
String N+1
Boolean 1 0…1
4 |T i m Olimpiade Komputer SMAN 1 Sooko
5. TOKI Smansasoo Goes to OSN 2009
1.7 Variable
Variabel adalah penampung data yang isinya dapat
diubah-ubah di dalam program. Data yang dapat
disimpan adalah data sesuai dengan tipenya.
Nama variabel terdiri dari huruf, angka dan garis bawah,
dan hanya dapat didahului oleh huruf atau garis bawah
dengan ketentuan :
a. Nama variabel tidak dapat disela dengan spasi
b. Tidak dapat menggunakan reserved words
c. Huruf besar dan huruf kecil sama saja
d. Panjang variabel yang dianggap/ dikenal hanya 63
karakter pertama
Deklarasi Variable
Sebelum bisa digunakan maka variable harus dideklarasikan
terlebih dahulu. Pendeklarasian berarti memesan ruang di
memori dan menyatakan tipe data yang bisa disimpannya.
Bentuk umum
Var
Daftar_variabel : tipe_data;
Contoh
Var
Incl, bill : integer,
Tim Olimpiade Komputer SMAN 1 Sooko | 5
6. TOKI Smansasoo Goes to OSN 2009
Flagl : char,
Nama : array[1..10] of char,
Pemberian (assignment) nilai ke variable
Pemberian nilai hanya bisa dilakukan setelah sebuah variabel
dideklarasikan.
Bentuk umum
Variable := nilai;
Contoh
Incl := 0;
Bill := 10;
1.8 Konstanta
Konstanta berbeda dengan variable, dimana isi dari konstanta
tidak bisa diubah dengan cara pemberian (assignment) nilai.
Bentuk umum
Const
Variable=nilai
Contoh
Const
Pi = 3,14;
Chl = ’A’;
1.9 Menampilkan Data dengan write dan writeln
Fungsi write digunakan untuk mencetak data ke layar
tanpa berganti baris setelahnya
Fungsi writeln digunakan untuk mencetak data ke layar
dengan berganti baris setelahnya
String yang dicetak bisa ditambahi karakter khusus
(escape sequence) yang didahului dengan tanda “#”
misalnya Baris baru (#10), Bel (#7).
Mencetak dengan menggunakan format
Untuk mencetak pada posisi x, y layar, digunakan
perintah GOTO baru setelah itu digunakan perintah write.
Untuk dapat menggunakan perintah ini program harus
melibatkan unit standar Crt
Untuk mengeset warna teks dan background teks
digunakan perintah text color dan text
background
6 |T i m Olimpiade Komputer SMAN 1 Sooko
7. TOKI Smansasoo Goes to OSN 2009
1.10 Menerima masukan dengan read dan readln
Prosedur read dapat digunakan untuk menerima masukan
dari keyboard. Tiap-tiap data yang dimasukkan harus sesuai
dengan tipe variabelnya. Prosedur readln untuk memasukkan
data perbaris, artinya setelah di tekan maka akan ganti baris,
sedangkan prosedur read tidak
Bentuk Umum
Read (nama_variabel);
Contoh
Read (bil1);
Readln (bil1);
Contoh :
/* File : write.pas */
Program masukan ;
Uses crt;
Var
Bil1 : integer;
Real1 : real ;
ch1 : char ;
begin
write(‘Masukkan bilangan bulat : ’);
read(bil1);
writeln(‘Bilangan yang dimasukkan adalah’, bil1);
writeln(‘Masukkan bilangan real : ’);
read(real1);
writeln(‘Bilangan yang dimasukkan adalah’,real1:8:3);
writeln(‘Masukkan satu karakter : ’);
read(ch1);
writeln(‘Karakter yang dmasukkan adalah ’,ch1:3);
end.
Tim Olimpiade Komputer SMAN 1 Sooko | 7
8. TOKI Smansasoo Goes to OSN 2009
1.11 Tentang daftar shortcut pada Free Pascal
8 |T i m Olimpiade Komputer SMAN 1 Sooko
9. TOKI Smansasoo Goes to OSN 2009
MODUL 02 OPERATOR
Operator merupakan suatu simbol yang digunakan untuk
operator dan manipulasi data dalam. Dalam bahasa Pascal Operator
dikelompokkan dalam 9 kategori.
2.1 Operator Assignment
Merupakan operator yang berfungsi untuk memberikan suatu
nilai ke sebuah variabel.
Bentuk umum
Variabel := 50,75;
2.2 Operator Binary
Merupakan Operator yang berfungsi untuk mengoperasikan
dua operand. Operand dapat berupa konstanta ataupun
variabel. Digunakan untuk operasi aritmatika.
Tabel 2.1 Operator Binary
Operator Operasi Tipe operand Tipe hasil
+ Penambahan Integer, real Integer, Real
- Pengurangan Integer, Real Integer, Real
* Perkalian Integer, Real Real, Real
/ Pembagian Integer, Real Real, Real
DIV Pembagian, Integer Integer
bulat
MOD Sisa Integer Integer
contoh 1:
{File : opr_binary.pas}
Program binary;
begin
writeln(‘ 5 + 3 = ’,5+3);
writeln(‘ 3 – 5 = ’,3-5);
writeln(‘ 5 * 3 = ’,5*3);
writeln(‘ 5 / 3 = ’,5/3);
writeln(‘ 5 div 3 = ’,5 div 3);
writeln(‘ 5 mod 3 = ’,5 mod 3);
end.
Tim Olimpiade Komputer SMAN 1 Sooko | 9
10. TOKI Smansasoo Goes to OSN 2009
Contoh2 Soal OSP 2008
2.3 Operator Unary
Disebut operator unary karena operator ini hanya menggunakan
sebuah operand saja. Operator ini dapat berupa unary plus dan
unary minus. Unary plus untuk menunjukkan tanda positif pada
suatu bilangan dan unary minus untuk menunjukkan tada
negatif.
Misal :
-25 not 1
+25 not 12
Not(true)
2.4 Operator Bit.
Merupakan opetrator yang berfungsi untuk operasi bit per bit
pada nilai integer.
Tabel 2.2 Operasi Bit
Operator Operasi Tipe Operand Hasil operasi
NOT Negasi Integer Integer
AND And Integer Integer
OR Or Integer Integer
XOR Xor Integer Integer
Shl Shift left Integer Integer
Shr Shift right Integer Integer
Contoh 2:
10 | T i m Olimpiade Komputer SMAN 1 Sooko
11. TOKI Smansasoo Goes to OSN 2009
{File : opr_bit.pas}
Program opr_bit;
Begin
writeln(‘not 0 =’,not 0);
writeln(‘not 1 =’,not 1);
writeln(‘1 or 2 =’,1 or 2);
writeln(‘1 and 2 =’,1 and 2);
writeln(‘1 shr 2 =’,1 sh1 2);
end.
Contoh 3;
{File : decbiner.pas}
Program dec_biner;
Var dec : integer;
Begin
writeln(‘Masukkan angka Integer : ’);
readln(dec);
writeln(‘’);
writeln(‘Nilai binernya : ’);
writeln(dec shr 7 and 1);
writeln(dec shr 6 and 1);
writeln(dec shr 5 and 1);
writeln(dec shr 4 and 1);
writeln(dec shr 3 and 1);
writeln(dec shr 2 and 1);
writeln(dec shr 1 and 1);
writeln(dec shr 0 and 1);
readln;
End.
2.5 Operator Relasi
Merupakan operator yang berfungsi untuk membandingkan
hubungan antara dua buah operand dan akan didapatkan hasil
tipe boolean, yaitu true atau false.
Tabel 2.3 Operator Relasi
Operator Operasi Operator Operasi
< Lebih kecil >= Lebih besar atau
sama dengan.
<= Lebih kecil atau = Sama dengan
sama dengan
> Lebih besar <> Tidak sama
dengan
IN Seleksi dari
angka himpunan
Tim Olimpiade Komputer SMAN 1 Sooko | 11
12. TOKI Smansasoo Goes to OSN 2009
2.6 Operator Logika
Terdapat 4 buah operator logika, yaitu Not, And, Or, Xor. Bentuk
operator ini sama dengan operator bit. Namun pengunaannya
lain. Operator ini bekerja dengan nilai-nilai logika yaitu true dan
false.
Tabel 2.4 Kebenaran operasi AND dan OR
Operator AND
Kondisi 1 Kondisi 2 Hasil
Salah Salah Salah
Salah Benar Salah
Benar Salah Salah
Benar Benar Benar
Operator OR
Kondisi 1 Kondisi 2 Hasil
Salah Salah Salah
Salah Benar Benar
Benar Benar Benar
Benar Benar Benar
Operator XOR
Kondisi 1 Kondisi 2 Hasil
Salah Salah Salah
Salah Benar Benar
Benar Benar Benar
Benar Benar Salah
2.7 Operator Alamat
Turbo Pascal memberikan dua buah operator khusus yang
berhubungan dengan alamat di memori.
Tabel 2.5 Operator alamat.
Operator Keterangan
@ Alamat dari operator akan menghasilkan alamat
dari suatu variabel
^ Akan memberikan nilai dari alamat yang
ditunjukkan suatu variabel pointer.
Penjelasan lebih lanjut akan dibahas pada bab 8.
12 | T i m Olimpiade Komputer SMAN 1 Sooko
13. TOKI Smansasoo Goes to OSN 2009
2.8 Operator Set
Merupakan operator yang digunakan untuk operasi himpunan.
Tabel 2.6 Operator set
Operator Operasi
+ Union
- Perbedaan Himpunan
* Perkalian Himpunan
2.9 Operator String
Merupakan operator yang digunakan untuk operasi string.
String1+String2;
{ File : opt_str.pas}
Program opt_str;
Uses crt;
Var
Nama1, Nama2, Nama3 : String[15];
Begin
Clrscr;
Nama1 :=’Budi ‘;
Nama2 :=’Santosa ‘;
Nama3 := Nama1+Nama2;
Writeln (Nama3);
Readkey;
End.
Tim Olimpiade Komputer SMAN 1 Sooko | 13
15. TOKI Smansasoo Goes to OSN 2009
MODUL 03 STRUKTUR KONTROL PEMILIHAN
3.1 Pernyataan if dengan satu aksi
Gambar 3.1 Flowchart pernyataan if dengan satu aksi
Pada model pernyataan pada gambar 3.1, sebuah aksi
akan dikerjakan jika syarat bernilai benar.
Bentuk umum :
If (syarat) then
aksi1;
Aksi bisa terdiri dari satu baris pernyataan atau berupa
sekumpulan (blog) baris pertanyaan.
LATIHAN 1
{File : ifl.pas}
Program ifl;
Uses crt;
Var
a : Integer;
Begin
Writeln(‘Contoh if satu kasus’);
Write(‘Ketikkan suatu nilai integer :’);
Readln (a) ;
If (a>0) then
Begin
Writeln (‘Nilai ‘,a,’ adalah nilai positif’);
End;
Readkey;
End.
Kode 3.1 program ifl.
Tim Olimpiade Komputer SMAN 1 Sooko | 15
16. TOKI Smansasoo Goes to OSN 2009
3.2 Pernyataan if dengan dua aksi
Uraian
Pada model pernyataan gambar 3.2, aksi1 akan dikerjakan jika
syarat bernilai benar, sedangkan jika salah maka aksi2 yang
dikerjakan.
Bentuk umum :
If (syarat) then
Aksi1
Else
Aksi2;
Gambar 3.2 Flowchart pertanyan if dengan dua aksi.
LATIHAN2
{ File : if2.pas}
Program if2;
Uses crt;
Var
a : Integer;
Begin
Writeln (‘Contoh if dua kasus ‘);
Write (‘Ketikkan suatu nilai positif’);
Readln (a);
If (a>0) then
Begin
Writeln (‘Nilai ‘,a,’ adalah nilai positif’);
End
Else
Begin
Writeln (‘Nilai ‘,a,’ adalah nilai negatif’);
End;
Readkey;
End.
16 | T i m Olimpiade Komputer SMAN 1 Sooko
17. TOKI Smansasoo Goes to OSN 2009
3.3 Pernyataan if dengan lebih dari dua aksi
Uraian
Karena pilihan aksi yang dikerjakan lebih dari dua, maka dapat
dibuat model bertingkat/ bersarang/ nested.
Gambar 3.3 Flowchart pertanyan if dengan lebih dari dua aksi.
LATIHAN 3
{File : if3.pas}
Program if3;
Uses crt;
Var
a : Integer;
Begin
Writeln ‘Contoh if dua kasus ‘);
Write (‘Ketikkan suatu nilai integer :’);
Readln(a);
If (a>0) then
Begin
Writeln (‘Nilai ‘,a,’ adalah nilai positif’);
End
Else
If(a=0) then
Begin
Writeln(‘nilai ‘,a,’ adalah nol’);
End
Else
Begin
Writeln(‘Nilai ‘,a,’ adalah nilai negatif’);
End;
Readkey;
End.
Kode 3.3 Program if3
Tim Olimpiade Komputer SMAN 1 Sooko | 17
18. TOKI Smansasoo Goes to OSN 2009
3.4 Pernyataan case
Tangga if-else-if dapat digunakan menguji beberapa
syarat tetapi sulit digunakan pernyataan case of, sebuah
variabel dapat secara berturut-turut diuji oleh daftar
konstanta (bilangan bulat atau karakter). Jika sesuai
dengan sebuah konstanta, maka dikerjakan sesuai
dengan pernyataan yang mengikuti konstanta tersebut.
Pernyataan setelah else akan dikerjakan bila tidak ada
konstanta yang tidak sesuai. Else bersifat optional, bila
tidak ada else maka tidak ada yang dikerjakan. Ada
beberapa hal yang perlu diperhatikan :
a. Case of hanya dapat memeriksa sebuah konstanta
atau range dari konstanta yang bukan bertipe real.
Sedang if dapat memeriksa syarat-syarat
lain(<,<,<>,dsb).
b. Tidak ada dua konstanta yang sama dalam sebuah
case
LATIHAN 4
{File : case – of.pas}
Pogram caseof;
Var cc:char;
Begin
Writeln(‘ketikkan sebuah huruf, akhiri dengan Enter : ‘)
Read(cc);
Case cc of
‘0’..’9’ : writeln (‘yang anda ketik adalah angka ‘);
‘a’,’e’,’I’,’u’,’o’ : writeln(‘yang anda ketik adalah
huruf vokal’);
‘b’..’d’,’f’..’h’,’j’..’n’,’p’..’t’,’v’..’z’ :writeln
(‘ yang anda ketik adalah huruf konsonan’);
Else writeln (‘yang anda ketik adalah karakter’);
End;
Readln;
End.
18 | T i m Olimpiade Komputer SMAN 1 Sooko
19. TOKI Smansasoo Goes to OSN 2009
MODUL 04 STRUKTUR KONTROL PENGULANGAN
Struktur kontrol pengulangan dalam bahasa pemrograman
dikenal dengan loop. Pengulangan dilakukan terus menerus sampai
dipenuhi suatu keadaan tertentu. Dalam pascal dikenal tiga jenis
pengulangan dan peryataan yang digunakan adalah :
• for
• while-do
• repeat-until
4.1 Pengulangan dengan for
Perulangan for dapat berbentuk perulangan positif,
negatif, dan bersarang. Pada perulangan for diperlukan
sebuah variable kontrol, nilai awal untuk inisialisasi, sehingga
perulangan bisa dilakukan dan nilai akhir untuk kondisi
mengakhiri perulangan.
Bentuk Menaik :
for variable-kontrol:=nilai-awal to nilai-akhir do
pernyataan;
Bentuk Menurun :
for variable-kontrol:=nilai-awal downto nilai-
akhir do pernyataan ;
Bentuk loop dalam loop :
for variable-kontrol1:=nilai-awal1 to nilai-
akhir1 do
for variable-kontrol2:=nilai-awal2 to
nilai- akhir2 do
pernyataan ;
LATIHAN 1
{File : writefor.pas}
Program Writefor;
Var
i, N: Integer;
Begin
Writeln(‘Baca N, print 1 s/d N’);
Write(‘N=’);
Read(N);
for i:=1 to N do
Writeln(i);
Writeln(‘Akhir Program’);
Readln;
End.
Kode 4.1 Program Writefor
Tim Olimpiade Komputer SMAN 1 Sooko | 19
20. TOKI Smansasoo Goes to OSN 2009
LATIHAN 2
{File : fornaik.pas}
Program ForNaik;
Var
i, awal,akhir: Integer;
Begin
awal:=1;
akhir:=5;
for i:=awal to akhir do
Writeln(i);
read(i);
End.
Kode 4.2 Program ForNaik
LATIHAN 3
Program ForTurun;
Var
i, bawah,atas: Integer;
Begin
bawah:=1;
atas:=5;
for i:=atas to bawah do
Writeln(i);
read(i);
End.
Kode 4.3 Program ForTurun
LATIHAN 4
Program ForChr;
Uses crt;
Var ch:char;
Begin
for ch:=’a’ to ‘z’ do
Writeln(ch);
ReadKey;
End.
Kode 4.4 Program ForChr
LATIHAN 5
Program Forenum;
Uses crt;
Type
Namahari=(senin,selasa,rabu,kamis,jumat,sabtu);
Var Hari : NamaHari;
Begin
for Hari:=senin to sabtu do
Begin
Writeln(‘PASCAL’);
End;
Readln;
End.
Kode 4.5 Program forenum
20 | T i m Olimpiade Komputer SMAN 1 Sooko
21. TOKI Smansasoo Goes to OSN 2009
LATIHAN 6
{File : over.pas}
Var
x : byte;
j : Integer;
Begin
J:=265;
for x:=0 to j do {nilai batas yang diberikan
melibihi jaringan bilangan}
Writeln(x);
Readln;
End.
Kode 4.6 Program ForByte
LATIHAN 7
{File : srgloop.pas}
Program srgloop;
Uses crt;
Var
i, j : integer;
Begin
clrscr;
Writeln(‘Contoh loop dalam loop’);
For i:=1 to 3 do
begin
for j:=1 to 3 do
Write{‘*’};
Writeln(‘ ’);
End;
End.
Kode 4.7 Program srgloop
4.2 Pengulangan dengan while-do
Pada pengulangan jenis ini, pengecekan syarat dilakukan
diawal. Pengulangan dengan while-do ini digunakan untuk
melakukan proses perulangan suatu pernyataan terus-
menerus selama kondisi ungkapan logika pada syarat masih
bernilai logika benar.
Bentuk Umum :
while syarat do
perintah;
Tim Olimpiade Komputer SMAN 1 Sooko | 21
22. TOKI Smansasoo Goes to OSN 2009
LATIHAN 8
{File : while.pas}
Program while;
Uses crt;
Var
i: Integer;
Begin
clrscr;
i:=1;
while i<=5 do
begin
Writeln(i);
i:=i+1;
end;
ReadKey;
End;
Kode 4.8 Program while
LATIHAN 9
{File : priwhile.pas}
Program priwhile;
Var
N, i : Integer;
Begin
Writeln(‘Nilai N =’);
Read(N);
i:=1;
while i<=N do
begin
writeln(i);
i:=i+1;
end;
ReadKey;
End;
Kode 4.9 Program Priwhile
4.3 Pengulangan dengan repeat-until
Berbeda dengan dua jenis perulangan sebelumnya, syarat
perulangan pada Repeat...Until dicek pada akhir perulangan.
Repeat...Until digunakan untuk mengulang statemen-statemen
sampai (until) kondisi yang diseleksi di Until terpenuhi.
Bentuk Umum :
repeat
perintah;
...
until syarat;
22 | T i m Olimpiade Komputer SMAN 1 Sooko
23. TOKI Smansasoo Goes to OSN 2009
LATIHAN 10
{File : repeatUn.pas}
Program RepeatUntil
Var
i : integer;
Begin
clrscr;
i:=0;
Repeat
writeln(i);
i:=i+1;
until i=5;
End.
Kode 4.10 Program repeat until
LATIHAN 11
{File : whiledo.pas}
Program whiledo;
Uses crt;
Var
nama : String[20];
Begin
clrscr;
Write(‘Ketik nama siswa( X=selesai ):’);
Readln(nama);
While (nama[1]<>’X’) do
Begin
write(‘Ketik nama siswa ( X=selesai ): ’);
readln (nama);
End;
End.
Kode 4.11 Program whiledo
LATIHAN 12
{File : RepForv.pas}
Program RepForv;
Uses crt;
Var
x : byte;
Begin
Repeat
x:=x+1;
Write(x,’ ‘);
If keypressed then
break; {keluar paksa dari loop tanpa peduli syarat}
Until x>=256;
End.
Kode 4.12 Program repForv
Tim Olimpiade Komputer SMAN 1 Sooko | 23
24. TOKI Smansasoo Goes to OSN 2009
LATIHAN 13 Soal OSP 2008
LATIHAN 13 Soal OSP 2008 (kombinasi while do – for)
24 | T i m Olimpiade Komputer SMAN 1 Sooko
25. TOKI Smansasoo Goes to OSN 2009
MODUL 05 ARRAY
5.1 Array Satu Dimensi
Array adalah deretan variabel yang berjenis sama dan
mempunyai nama yang sama. Pada bahasa Pascal, array
mempunyai lokasi yang bersebelahan, alamat terkecil
menunjukkan elemen pertama dan alamat terbesar
menunjuk pada elemen terakhir
Bentuk umum :
Nama_array:array [ukuran] of tipe
Tipe = menyatakan tipe data dasar
Ukuran = menyatakan banyaknya elemen pada array
Contoh :
Nilai : array[1..10] of Integer;
LATIHAN 1
{File : tabel.pas}
Program tabel;
Uses crt;
Var
I,N : Integer;
Tab : array[1..10] of Integer;
Begin
Clrscr;
N:=5;
Writeln (‘Isi dan print tabel’);
For i:=0 to N do
Begin
Tab[i] := i;
End;
For i:=0 to N do
Begin
Writeln(‘Tabel[‘,1,’]=’,tab[i];
End;
Readkey;
End.
Tim Olimpiade Komputer SMAN 1 Sooko | 25
26. TOKI Smansasoo Goes to OSN 2009
LATIHAN 2
{File : tab_rata.pas}
Program rata;
Uses crt;
Conts
MAKS_TES : 5;
Var
i : Integer;
nilai_total, rata-rata : Real;
nilai_test : array[1..MAKS_TES] of Real;
Begin
{Pemasukan nilai};
Writeln (‘Pemasukan 5 buah nilai pada tabel’);
For i:=1 to MAKS_TES do
Begin
Write(‘Nilai tes ke ‘,I,’ : ‘);
Readln(nilai_test[i]);
End;
nilai_total:=0;
for i:=1 to MAKS_TES do
Begin
Nilai_total:=nilai_total+nilai_test[i];
End;
{menghitung nilai rata-rata}
Rata-rata := total nilai/MAKS_TES;
Writeln (‘Nilai rata-rata : ‘,rata_rata:3:2);
Readkey;
End.
5.2 Array Multi Dimensi
Dalam bahasa pascal kita dapat membuat array
hingga beberapa dimensi, misalnya array dua dimensi yang
pada dasarnya adalah sebuah daftar yang terdiri array-array
satu dimensi.
Bentuk umum
nama array : array[ukuran1] of array [ukuran2] of tipe;
nama_array : array[ukuran1, ukuranN] of tipe;
tipe = menyatakan tipe data dasar
ukuran1 = menyatakn banyaknya element pada array pada dimensi ke-1
ukuranN = menyatakn banyaknya element pada array pada dimensi ke-N
26 | T i m Olimpiade Komputer SMAN 1 Sooko
27. TOKI Smansasoo Goes to OSN 2009
LATIHAN3
{File : matrik.pas}
Program matrik;
Uses crt;
Var
I,j : Integer;
B : array[1..3,1..5] of Integer;
Begin
clrscr;
writeln(‘memasukkan data matrik 3x3 ‘);
for I := 1 to 3 do
for j:=1 to 3 do
begin
gotoxy(10+4*I,3+j*2);readln(b[I,j]);
end;
gotoxy (2,14);textColor(3);write(‘Data matrik yang
diinputkan adalah : ‘);
textcolor(6);
for i:=1 to 3 do
for j:=1 to 3 do
Begin
Gotoxy(10+4*I,15+2*j);write(b[I,j]);
End;
Readkey;
End.
5.3 Inisialisasi Array
Inisialisasi array dapat dilakukan pada saat
pendeklarasiannya. Pada array multidimensi, inisialisasi
dimulai dari dimensi yang paling besar. Untuk setiap dimensi
dimulai dari indeks yang paling paling kecil . Pada pascal cara
proses inisialisasi diletakkan pada bagian deklarasi konstanta.
Const
I :array[1..10] of Integer = (12,45,67,34,2,5,60,8,19,21);
Matrix :array[1..3,1..4] of Integer =
(42,47,63,45,6,43,62,8,19,21);
Tim Olimpiade Komputer SMAN 1 Sooko | 27
29. TOKI Smansasoo Goes to OSN 2009
MODUL 06 PROCEDURE DAN FUNCTION
6.1 Procedure
Procedure merupakan blok baris perintah sebagai sebagai satu
kesatuan yang mengerjakan tugas khusus
Keuntungan menggunakan procedure :
1. Program menjadi terstruktur
2. Dapat mengurangi pengulangan kode
Procedure dipanggil dan digunakan di dalam blok baris
perintah yang lainnya dengan menyebutkan judul
procedurnya. Procedure dapat menerima nilai dari luar
ataupun mengirimkan nilai keluar yang dilewatkan melalui
parameter. Terkait dengan procedure, dikenal dua macam
variabel yaitu :
1. Variabel loKal : variabel yang dideklarasikan di dalam
procedure, variabel ini tidak dikenal di luar procedure
2. Variabel global : Variabel yang dideklarasikan di luar
semua procedure, sehingga akan dikenal di seluruh bagian
program.
Bentuk umum
Procedure nama_procedure(deklarasi parameter);
Begin
……………………
End;
Dalam pascal ada dua jenis pengiriman parameter:
1. Pengiriman parameter secara nilai (by value)
Bila parameter dikirim secara nilai, parameter formal,
maka perubahan-perubahan yang terjadi pada nilai
parameter formal di procedure tidak akan mempengaruhi
nilai parameter nyata
2. Pengiriman parameter secara acuan (by reference)
Bila parameter dikirim secara nilai, parameter formal,
maka perubahan-perubahan yang terjadi pada nilai
Tim Olimpiade Komputer SMAN 1 Sooko | 29
30. TOKI Smansasoo Goes to OSN 2009
parameter formal di procedure akan mempengaruhi nilai
parameter nyata
LATIHAN 1
{File : procedur.pas}
Program procedur;
Uses crt;
Var
a : Integer;
{parameter by value}
Procedure ubah1(x:integer);
Begin
writeln(‘parameter by value‘);
writeln(‘Nilai akan diubah menjadi 5‘);
x:=5;
end;
{parameter by reference}
Procedure ubah2(var x:integer);
Begin
Writeln(‘parameter by reference’);
Writeln(‘Nilai akan diubah menjadi 5’);
x:=5;
end;
begin
clrscr;
a:=10;
writeln(‘Nilai sebelum diubah adalah ‘, a);
ubah1 (a);
writeln(‘nilai setelah diubah adalah ‘,a);
ubah2(a);
writeln(‘nilai setelah diubah adalah ‘,a);
readln;
end.
6.2 Function
Function mirip dengan procedure, bedanya function
harus mengembalikan suatu nilai. Nilai yang dikembalikan
terdapat pada nama function.
Bentuk umum
Nama function(deklarasi parameter):tipe data;
Begin
……………nama function:=nilai;
End;
30 | T i m Olimpiade Komputer SMAN 1 Sooko
31. TOKI Smansasoo Goes to OSN 2009
LATIHAN 2
{File : fungsi1.pas}
Program fungsi1;
Uses crt;
Var
a, b, c : Integer;
{funsi memakai parameter by value}
Function tambah(a,b:integer): Integer;
Begin
Tambah:=a+b;
end;
Begin
Clrscr;
Write(‘A = ‘);
Readln (a);
Write (‘B = ‘);
Readln (b);
c:=jumlah(a,b);
writeln (‘Jumlah tersebut adalah : ‘,c);
readln;
end.
LATIHAN 3 SOAL OSP 2008
Tim Olimpiade Komputer SMAN 1 Sooko | 31
33. TOKI Smansasoo Goes to OSN 2009
MODUL 07 STRING
7.1 Pendeklarasian String
String merupaka salah satu type data bentukan untuk
menyatakan data teks kalimat atau serangkaian karakter. Pada
bahasa Pascal panjang maksimum string yang diijinkan adalah
255 karakter.
Bentuk Umum.
Nama_variable : string[panjang string];
Nama_variabel : string;
Bila tidak di sebutkan panjang string maka secara default
panjangnya adalah 255.
Contoh
Nama : String[15];
Mendeklarasikan variabel string nama dengan panjang karakter 15.
7.2 Memasukkan Data String dengan read/readln
Pemasukkan data string ke dalam suatu variabel bisa
dilakukkan dengan memakai read ataupun readln. Fungsi
read/readln akan membaca seluruh karakter yang akan diketik
sampai tombol enter ditekan. Dalam hal ini tidak ada
pengecekan terhadap batas array. Panjang string dikurangi
ukuran array ditambah karakter NULL.
Bentuk umum.
read(nama_array);
readln(nama_array);
7.3 Inisialisasi String
Inisialisasi string bisa dilakuan dengan assignment karakter
per karakter ataupun tidak.
Bentuk Umum
nama_variabel[]=data_string;
Contoh
Const :
Nama1:String = {‘T’,’U’,’R’,’B’,’ ’,’C’,’0’};
Nama2:String = ‘Tim Olimpiade Komputer’;
Tim Olimpiade Komputer SMAN 1 Sooko | 33
34. TOKI Smansasoo Goes to OSN 2009
7.4 Menampilkan Isi Variabel String Ke Layar
Untuk menampilkan isi variabel string, pernyataan yang
dapat digunakan perintah write atau writeln.
Bentuk Umum
Writeln(var_string);
Write(var_string);
{File : str.pas}
Program str;
Uses crt;
Var kompiler : string;
Procedure bentuk1;
Begin
kompiler=’Bentuk 1’;
write(kompiler);
end;
end;
pocedure bentuk2;
begin
kompiler=’Bentuk 2’;
writeln(kompiler);
end;
begin
bentuk1();
bentuk2();
readln;
end.
7.5 Mengakses Elemen String
Variabel string merupakan bentuk khusus dari array
bertipe char, oleh karena itu elemen dari variabel string dapat
diakses seperti pengaksesan elemen array.
{File : hitkar.pas}
Program hitkar;
Const maks=256;
Var teks : string(maks);
Jumkar i: Integer;
Begin
Writeln(‘Masukkan suatu kalimat : ’);
Readln(teks);
Jumkar := 0;
For i:=0 to maks do
If teks[i]=’a’ then
Jumkar:=jumkar+1;
Writeln(‘jumlaah karakter a = ’,jumkar);
end;
34 | T i m Olimpiade Komputer SMAN 1 Sooko
35. TOKI Smansasoo Goes to OSN 2009
7.6 Beberapa Fungsi Mengenai String
Pascal menyediakan fungsi untuk memanipulasi string,
diantaranya:
Tabel 7.1 Fungsi manipulasi string
Fungsi/ Bentuk pemakaian Kegunaan
procedure
Insert Insert( sumber : String , Menyisipi string mulai pada posisi
tujuan : String , Indeks : indek dengan string sumber.
Integer)
Str Str(x:width:decimal, s:string) Mengubah Nilai numerik (x)
menjadi string (s)
Val Val(NilaiString,NilaiNumerik, Mengkonversi NilaiString menjadi
PosisiSalah) nilai Numerik posisiSalah bernilai
nol bila tidak terjadi kesalahan
dalam proses konversi.
Copy Str1:=Copy(str2,index,count) Menyalin karakter sejumlah count
mulai posisi index.
Concat Str:=concat(s1,s1,...,sn) Merangkai beberapa string, sama
dengan operator string ‘+’
Pos Index:=pos(substr,string) Mencari posisi dari suatu substring
dalam string
Length Panj:=length(str) Menghitung panjang atau jumlah
karakter dalam string.
contoh :
var Var
s : string; A,B: String;
begin C: String[10];
s := 'TOKI'; Begin
insert('KI', s, 2); A:='TOKI MEMANG';
writeln(s); B:='HEBAT';
end. C:=A+B;
if (Pos(B)>0) Then
Begin
var s : string; Writeln('A');
begin end else
s:='TOKI GO GET GOLD!'; Writeln('B');
delete(s, 1, length(s)-12); end.
writeln(s):
end.
Tim Olimpiade Komputer SMAN 1 Sooko | 35
36. TOKI Smansasoo Goes to OSN 2009
7.7 String Sebagai Parameter Fungsi
String sebagai parameter fungsi pada dasarnya sama
dengan array sebagai parameter fungsi, karena string dapat
dianggap array dari karakter.
{File : kiri.pas}
Program kiri;
Var kalimat : string;
I, panj : Integer;
Procedure strkiri(strin:string;n : Integer:var
strhasil:string);
Var i:Integer;
Begin
Strhasil1:=copy(strin,1,n)
End;
Begin
Panj:=length();
For i=0 to panj do
Begin
Strkiri(kalimat, panj-1, hasil);
End;
End.
36 | T i m Olimpiade Komputer SMAN 1 Sooko
37. TOKI Smansasoo Goes to OSN 2009
MODUL 08 RECORD
Merupakan tipe data terstruktur, dimana beberapa variabel
dengan tipe data berbeda dapat dikumpulkan bersama dan
mengacu pada suatu nama yang sama
Record dipakai untuk menyatakan informasi yang
berhubungan
Variabel-variabel yang membentuk sebuah record dinamakan
field, record di dalam Pascal sama dengan struktur pada C
Bentuk umum
Type
Nama_record = Record
Tipe_data variabel : tipe – data;
. . .
Tipe_data variabel N : tipe – data;
End;
Contoh
Type
dt_siswa = Record { deklarasi tipe data record }
nrp : string [7];
nama : string [20];
alamat : string [40]
nilai : real;
end;
Var
Siswa1,siswa2 : dt_siswa; { deklarasi variabel record siswa }
Variabel siswa1, siswa2, adalah variabel record yang bertipe
dt_siswa.
8.1 Operasi Terhadap Field Record
Field Record dapat dapat ditunjuk dengan memakai
operator titik. Misalnya, variabel siswa1 bertipe record
seperti contoh di atas, maka mengisi nilai dengan 72.5
dilakukan dengan :
Siswa1.nilai := 72.5;
Mencetak isi dari elemen nama
Writeln (‘Nama siswa adalah ‘, siswa1.nama);
Memberi nilai data alamat
Read (siswa1.alamat);
Tim Olimpiade Komputer SMAN 1 Sooko | 37
38. TOKI Smansasoo Goes to OSN 2009
LATIHAN 1
{ file : record.pas}
Program record;
Uses crt;
Type
dt_siswa = record
nrp : string [7];
nama : string [20];
alamat : string [40];
nilai : real;
end;
Var
Siswa1 : dt_siswa;
Function index ( nilai : real ) : Char;
Begin
If (nilai>=90) then
Index := ‘A’
Else if nilai>=75 then
Index := ‘B’
Else if nilai >=60 then
Index := ‘C’
Else if nilai >= 50 then
Index := ‘D’
Else
Index := ‘E’;
End;
Begin
Clrscr;
Write (‘masukkan NRP : ‘);
Readln(siswa1.nrp);
Write(‘Masukkan Nama : ‘);
Readln(siswa1.nama);
Write(‘Masukkan Alamat : ‘);
Readln(siswa1.alamat);
Write(‘Masukkan Nilai : ‘);
Readln(siswa1.nilai);
Clrscr;
Writeln(‘Data yang anda masukkan :’);
Writeln(‘NRP : ‘,siswa1.nrp);
Writeln(‘Nama : ‘,siswa1.nama);
Writeln(‘Alamat : ‘,siswa1.alamat);
Writeln(‘Nilai : ‘,siswa1.nilai:3:2);
Writeln(‘Index nilai yang diperoleh ‘,
index(siswa1.nilai));
Readkey;
End.
8.2 Inisialisasi Record
Cara menginisialisasi record sama dengan variabel-
variabel lain. Inisialisasi dapat dilakukan tersendiri atau
bersama-sama dengan pendefinisian format record.
38 | T i m Olimpiade Komputer SMAN 1 Sooko
39. TOKI Smansasoo Goes to OSN 2009
MODUL 09 OPERASI FILE
Untuk dapat diolah lebih lanjut, maka data perlu disimpan dalam
sebuah file. Sebuah file terdiri dari kumpulan record yang
mempunyai tipe yang sama.
Operasi terhadap file umumnya terdiri dari:
1. Operasi untuk membuka dan mencipta file.
2. Melakukan proses terhadap file.
3. Menutup file.
9.1 Membuka dan Menciptakan File
Sebelum sebuah file dapat diakses, maka file harus dibuka terlebih
dahulu. Berikut adalah langkah-langkah yang harus dilakukan ketika
membuka file:
1. Mendeklarasikan variabel bertipe file yang menunjuk ke
file.
Var
File_variabel : file of tipe_file;
2. Menghubungkan variabel ke file.
Assign(file_variabel, nama_file);
3. Membuka/menciptakan file.
Ada beberapa perintah dalam pascal untuk membuka file,
yaitu:
a. Membuka file untuk pembacaan.
Reset (file_variabel);
b. Membuka file untuk penambahan.
Append(file_variabel);
c. Menciptakan file
Rewrite(file_variabel);
Catatan : jika file yang diciptakan sudah ada, maka
akan menghapus file tersebut dan
mencipatakan yang baru dan masih
kosong.
Tim Olimpiade Komputer SMAN 1 Sooko | 39
40. TOKI Smansasoo Goes to OSN 2009
9.2 Melakukan proses terhadap file
Setelah file dapat dibuka atau diciptakan, dapat dilakukan
pemrosesan data dari file, yaitu :
1. Membaca isi file.
Read(file_variabel, variabel_data);
Readln(file_variabel, variabel_data);
2. Menulis ke file.
Write(file_variabel, variabel_data);
Writeln(file_variabel, variabel_data);
9.3 Menutup file
Setelah file selesai diproses, maka file perlu ditutup.
Close(variabel_file);
Variabel_file adalah variabel yang menunjuk ke file.
9.4 File Biner dan File Teks
1. File dapat dibedakan menjadi dua jenis yaitu biner dan teks. File
biner menyimpan data dalam bentuk biner. Sedangkan file teks
menyimpan data dalam bentuk karakter. Data integer 255 dalam
file biner akan selalu memerlukan dua byte memory. Disimpan
dalam bentuk 11111111. Sedangkan dalam file teks data 255
akan disimpan sebagai karakter 2,5,5.
2. Mode pengaktifan seperti dijelaskan pada modul 13.1 perlu
ditambahi t untuk file teks, dan b untuk file biner. Misalnya
mode w menjadi wt untuk membuat file teks, atau wb untuk
membuat file biner.
9.5 Memakai feof()
Fungsi ini dipakai untuk memdeteksi akhir file saat membaca data.
Function eof(Fvariabel_file):bool;
Hasilnya akan true jika akhir file sudah tercapai.
40 | T i m Olimpiade Komputer SMAN 1 Sooko
41. TOKI Smansasoo Goes to OSN 2009
{File : baca.pas}
Program baca;
Uses crt;
Var
F : text;
s : string;
begin
clrscr;
write(‘masukkan nama file yang akan dibaca : ’);
readln(s);
assign(F,s);
reset(F);
while not EOF(F) do
begin
readln(F,s);
writeln(s);
end;
close(F);
end
Kode 9.1 Program Ptr.
{File : tulis.pas}
Program tulis;
Uses crt;
Var
F : text;
s : string;
Begin
clrscr;
write(‘Inputkan nama file yang akan di buat’);
readln(s); assign(F,s);
rewrite(F);
writeln(‘Tulis kalimat diikuti dengan enter.’);
writeln(‘Untuk keluar : Inputkan baris kosong.’);
repeat
readln(s);
if s=’’then break;
writeln(F,s);
until true;
close(F);
end.
Kode 9.2 Pogram Tulis
Tim Olimpiade Komputer SMAN 1 Sooko | 41