Bab I
PENDAHULUAN
Pada akhirnya, tahun 1971, salah seorang pengembang ALGOL telah berhasil
mengembangkan
bahasa pemrograman baru yang diberinama PASCAL, yang mengadopsi nama
ilmuwan
Perancis pada abad ke 17 Blaise Pascal.
Di awal tahun 1980 an, PASCAL telah menjadi bahasa pemrograman standard di
berbagai
universitas. Terdapat dua peristiwa yang menyebabkan PASCAL menjadi sangat
populer pada
saat itu yaitu digunakannya PASCAL sebagai bahasa untuk membuat
aplikasi/software guna
keperluan ujian di beberapa sekolah, serta dirilisnya Turbo Pascal Compiler oleh
perusahaan
Borland International untuk komputer IBM. Sampai saat ini, Turbo Pascal sudah
mencapai rilis
7.0 bahkan sudah ada yang berjalan di platform Windows (Turbo Pascal for
Windows). Terdapat
pula varian dari Turbo Pascal yang lebih bersifat open source yaitu Free Pascal.
Namun, pada saat ini. PASCAL sudah mulai banyak ditinggalkan. Kebanyakan para
programmer
saat ini lebih memilih bahasa C/C++ dan Java karena lebih mendukung untuk
pemrograman
berorientasi obyek.
Meskipun demikian, bukan berarti PASCAL juga harus ditinggalkan pada saat ini.
PASCAL masih
layak dipelajari, khususnya bagi mereka yang baru belajar bahasa pemrograman
karena
perintah-perintahnya menggunakan bahasa tingkat tinggi (mirip bahasa manusia -
Inggris)
sehingga mudah dipahami. Selain itu, dengan belajar PASCAL akan diperoleh modal
untuk dapat
menguasai pemrograman visual DELPHI. Karena pada prinsipnya, DELPHI
merupakan PASCAL
yang dikombinasikan dengan efek visual.
Bab II
Compiler
Ketika berbicara tentang bahasa pemrograman komputer, ada 3 jenis bahasa yang
digunakan,
yaitu
· Bahasa mesin, yang hanya terdiri dari kode-kode biner (0 dan 1). Sering pula
bahasa ini
disebut bahasa tingkat rendah (low level language)
· Bahasa rakitan (assembly), yang berupa perintah-perintah yang mirip bahasa
manusia
(sudah tidak dalam bentuk kode biner). Biasanya satu buah perintah hanya
digunakan
untuk melakukan satu proses saja. Sebagai contoh adalah perintah MOV dan ADD
dalam bahasa Intel x86.
· Bahasa tingkat tinggi (high level language). Pada bahasa ini, perintah sudah
menggunakan bahasa manusia (bahasa Inggris), sebagai contoh adalah perintah
WRITE, READ. Tidak seperti bahasa assembly, dalam bahasa ini biasanya suatu
perintah sudah melibatkan banyak proses. Misalkan perintah untuk melakukan
proses
perkalian (yang di dalamnya melibatkan banyak proses penjumlahan), hanya cukup
menggunakan operator *. Beberapa bahasa pemrograman yang termasuk dalam
jenis
bahasa ini adalah PASCAL, C/C++, FORTRAN, BASIC, JAVA.
Supaya perintah dalam bahasa pemrograman yang digunakan (bahasa assembly
dan bahasa
tingkat tinggi) dapat dipahami oleh komputer dan dapat dijalankan oleh
mikroprosessor, maka
perintah tersebut harus diterjemahkan terlebih dahulu ke dalam bahasa mesin.
Proses
penterjemahan inilah yang disebut proses kompilasi (compiling).
Untuk dapat diinstal di DOS/Windows, pilihlah master dalam bentuk BINARIES DOS
atau Win32.
Bab III
Struktur Pascal
Berikut ini adalah cara menulis program dan menjalankan program PASCAL untuk
pertama
kalinya. Sebagai contoh, diberikan program sebagai berikut
CODE
program bugz;
begin (* Main *)
writeln ('yachubugz')
end. (* Main *)
Apabila program di atas dijalankan pada IDE Free Pascal, maka output hanya akan
ditampilkan
secepat kilat kemudian hilang lagi. Akan tetapi apabila file executable dari program
di atas
dijalankan dalam command prompt akan terlihat teks
QUOTE
Yachubugz
Supaya tampilan program di atas tidak ditampilkan secepat kilat dalam IDE, maka
dapat
ditambahkan perintah readln sebelum end.
CODE
program bugz;
begin (* Main *)
writeln ('yachubugz');
readln
end. (* Main *)
Struktur Program Pascal
Susunan/ urutan struktur di atas harus dipenuhi. Meskipun demikian, kita dapat
menghilangkan
beberapa bagian struktur apabila tidak diperlukan. Berikut ini adalah contoh
program sederhana
yang tidak melakukan proses apapun (terdapat bagian dari struktur yang
dihilangkan)
CODE
program DoNothing;
begin
end.
Dalam Pascal, penulisan perintah yang di dalamnya terdapat spasi, tab akan
diabaikan. Sebagai
contoh, diberikan dua program berikut ini
CODE
program bugz;
begin
writeln ('yachubugz');
readln
end.
Dan
CODE
program bugz;
begin
writeln ('yachubugz');
readln
end.
Dua program akan menghasilkan output yang sama. Dalam hal ini, spasi akan
diabaikan. Begitu
pula dengan program berikut
CODE
program bugz;
begin
writeln ('yachubugz'); readln
end.
Program tersebut juga sama dengan dua program sebelumnya. Dengan demikian, penulisan
program dapat disajikan secara vertikal maupun horizontal.
Supaya program yang dibuat oleh seorang programmer dapat dibaca dan dipahami oleh orang
lain, sebaiknya dibuat komentar dalam source code. Komentar yang diberikan tersebut tidak akan
dijalankan atau diproses oleh compiler.
Bab IV
Pengenal (Identifier)
1. Nama identifier harus dimulai (karakter pertama) dengan karakter huruf alfabet
a-z atau
A-Z
~!@#$%^&*()+`-={}[]:";'<>?,./|
4. Tidak boleh menuliskan identifier dengan nama yang sesuai kata tercadang
(reserved
word) dalam PASCAL, seperti
and, array, begin, case, const, div, do, downto, else, end, file,
for, forward, function, goto, if, in, label, mod, nil, not, of,
or, packed, procedure, program, record, repeat, set, then, to,
type, until, var, while, with.
Kalaupun ingin tetap menggunakan kata tercadang di atas, kata tersebut harus
dirangkai dengan karakter lain. Misal program_if, begin1, dll.
PASCAL tidak bersifat case sensitive yang berarti bahwa besar kecilnya huruf dalam
perintah
tidak dibedakan. Sebagai contoh, apabila diberikan 3 identifier MyProgram,
MYPROGRAM, dan
mYpRoGrAm, maka ketiga identifier tersebut adalah sama.
Bab V
Konstanta (Constant)
Suatu konstanta direferensikan oleh sebuah identifier dan dapat diassign oleh suatu
nilai pada
awal program. Nilai yang disimpan pada suatu konstanta tidak dapat diubah.
Konstanta
dideklarasikan pada bagian const.
const
Identifier1 = value;
Identifier2 = value;
Identifier3 = value;
const
Name = 'yachubugz'; (* string *)
FirstLetter = 'a'; (* karakter *)
Year = 1984; (* integer *)
pi = 3.1415926535897932; (* real *)
UsingNCSAMosaic = TRUE; (* boolean *)
Catatan:
Dalam Pascal, nilai dalam bentuk string maupun karakter harus diapit dengan tanda
petik satu
(single quote).
const
a : real = 12;
maksud dari perintah di atas adalah nilai 12 bukanlah bilangan bulat (integer)
namun merupakan
bilangan real (12.0). Nilai 12.0 ini disimpan dalam konstanta a.
Bab VI
Variabel hampir mirip dengan konstanta. Nilai yang disimpan dalam variabel ini
dapat diubah
sewaktu-waktu. Setiap variabel yang akan digunakan dalam program harus
dideklarasikan
terlebih dahulu dalam bagian var.
var
IdentifierList1 : DataType1;
IdentifierList2 : DataType2;
IdentifierList3 : DataType3;
· Integer, merupakan tipe data bilangan bulat yang memiliki jangkauan antara
-32768 s/d
32767. Selain itu terdapat pula tipe data longint yang juga masih terkait dengan
bilangan
bulat. Jangkauan dari longint jauh lebih besar daripada integer.
· Real, merupakan tipe data bilangan riil yang memiliki jangkauan 3.4 x 10-38 s/d
3.4 x 1038,
demikian pula untuk bilangan negatifnya. Untuk menuliskan suatu nilai bilangan riil
dapat
menggunakan format scientific maupun desimal. Berikut ini adalah dua nilai yang
ekuivalen
452.13 dan 4.5213e2
Selain real, terdapat pula tipe data extended yang juga bernilai bilangan riil.
Jangkauan dari tipe data extended ini jauh lebih besar daripada real.
· Boolean, merupakan tipe data yang hanya bernilai TRUE atau FALSE saja.
var
age, year, grade : integer;
circumference : real;
LetterGrade : char;
DidYouFail : Boolean;
Pada contoh di atas, variabel age, year, dan grade sama-sama bertipe data integer.
Bab VII
variable_name := expression;
sebagai contoh:
some_real := 385.385837;
cara lain bentuk assignment
some_real := 37573.5 * 37593 + 385.8 / 367.1;
Macam-macam operator aritmatik pada Pascal
Setiap variabel hanya bisa diassign dengan nilai yang sesuai dengan tipe data dari
variabel
tersebut. Contoh:
var
a : integer;
b : real;
b := 3.567;
a := b;
Apabila program di atas dikompilasi, maka akan terdapat error (type mismatch). Hal
ini
disebabkan karena tipe data dari a adalah integer, sedangkan a diassign dengan
nilai berupa
real. Sedangkan apabila diberikan perintah sbb:
a := 3;
b := a;
tidak akan ada kesalahan. Hal ini disebabkan nilai 3 yang disimpan dalam b adalah
dalam bentuk
riil (3.0).
Dalam Pascal tanda minus (-) dapat digunakan untuk menyatakan tanda negatif
dari suatu
bilangan. Berikut ini adalah beberapa contoh penggunannya:
Statement di atas akan membuat bingung Pascal untuk menentukan operasi yang
akan
dilakukan terlebih dahulu.
hasil := 3 + 4 * 5;
nilai yang akan disimpan dalam variabel hasil adalah 23 (bukannya 35). Sedangkan
apabila
diberikan perintah berikut
hasil := (3 + 4) * 5;
Catatan:
Operator aritmatik dalam Pascal tidak dapat diterapkan pada variabel bertipe data
boolean dan
char.
Bab VIII
Standard Functions
Dalam Pascal telah tersedia beberapa fungsi standard yang dapat digunakan untuk
perhitungan
matematika, misalnya adalah perintah sin(). Apabila kita ingin menghitung nilai
sinus dari 3.14
radian dalam Pascal dan hasilnya akan disimpan dalam variabel hasil, maka
perintahnya adalah
hasil := sin(3.14);
Sebuah fungsi dipanggil dengan cara menuliskan nama fungsi dan diikuti dengan
argumen yang
diapit dengan kurung. Berikut ini adalah beberapa fungsi standard dalam Pascal
yang dapat
digunakan
Selain itu juga terdapat beberapa fungsi yang lain yang hanya digunakan untuk tipe
data terurut/
ordinal (integer dan char)
Bab IX
INPUT
Input merupakan sesuatu data yang dimasukkan ke dalam program untuk diproses.
Dalam hal
ini, hanya akan dibahas input yang diperoleh dari entri data melalui keyboard.
readln(variabel);
Melalui perintah di atas, data yang dientrikan melalui keyboard akan diassign ke
dalam suatu
variabel. Setelah data dientrikan, user harus menekan tombol ENTER (RETURN)
Contoh:
Program ContohInput;
Var
Bil : integer;
Begin
Write(‘Masukkan sebarang bilangan bulat : ‘);
Readln(bil);
Write(‘Bilangan yang Anda masukkan adalah : ‘,bil);
End.
Catatan:
- Untuk input berupa bilangan real yang memuat desimal, digunakan tanda titik
yang
menyatakan koma, misal 345.12. Selain itu dapat pula dituliskan dalam bentuk
format
scientific, misal 1E-5 (sama dengan 0.00001) atau 3.5E+4 (sama dengan 35000)
- Sedangkan input yang berupa karakter tidak perlu diapit dengan tanda petik,
demikian
pula untuk tipe data boolean.
OUTPUT
Write(argumen);
Writeln(argumen);
Apabila digunakan write, maka argumen yang ditulis akan ditampilkan ke layar.
Setelah itu kursor
akan berada di sebelah kanan dari argumen yang telah ditulis tadi. Sehingga
apabila setelah
write tersebut terdapat write atau writeln lagi, maka argumen yang baru akan
ditulis di sebelah
kanan dari argumen yang lama.
Sedangkan apabila digunakan writeln, maka argumen yang ditulis akan ditampilkan
ke layar.
Setelah itu kursor akan berada di bawah argumen yang telah ditulis tadi. Sehingga
apabila
setelah write tersebut terdapat write atau writeln lagi, maka argumen yang baru
akan ditulis di
bawah dari argumen yang lama.
Catatan:
Contoh:
FORMATTING OUTPUT
Tampilan output dapat diatur jaraknya. Untuk tipe data karakter/string serta integer
dapat
menambahkan sintaks berikut ini dalam write/writeln.
value/variabel : lebarfield
dengan value/variabel merupakan nilai atau isi dari variabel yang akan ditampilkan
ke layar.
Contoh:
a := 10;
write(‘Ini adalah isi dari a :‘,a:5);
Hasil outputnya adalah
Ini adalah isi dari a : 10
Nilai 5 berarti terdapat 5 space untuk meletakkan 10 (cara pengisian adalah rata
kanan),
sehingga terdapat sisa 3 buah space di depan 10. Hal yang sama juga berlaku
untuk nilai yang
berupa karakter maupun string.
Bagaimana dengan nilai yang berupa real? Bagaimana cara mengatur jumlah digit
di belakang
koma? Berikut ini adalah sintaks untuk ditambahkan dalam write/writeln.
Contoh:
a := 10.2345562;
write(‘Ini adalah isi dari a :‘,a:7:2);
Outputnya adalah
Ini adalah isi dari a : 10.23
Perhatikan tampilan di atas. Masih terdapat jarak 2 spasi di depan 10.23. Hal ini
disebabkan
untuk menuliskan 10.23 diperlukan 5 space, sehingga dari 7 space yang ada, hanya
digunakan 5
space saja.
Bab X
Booelan Expressions
Ekspresi boolean digunakan untuk membandingkan dua buah nilai. Sesuai dengan
namanya
(boolean), maka hasil perbandingan ini selalu menghasilkan nilai TRUE atau FALSE.
Notasi | Makna
Contoh:
b := 4 < 6;
write(b);
Notasi | Makna
not | negasi (~)
and | Konjungsi/dan (Ù)
or | Disjungsi/atau (Ú)
xor | exclusive-or
Contoh:
perintah di atas akan menampilkan FALSE, karena 4 < 4 adalah FALSE, sedangkan
5 < 4 juga
FALSE. Dengan demikian FALSE or FALSE hasilnya FALSE.
Percabangan
Bentuk Umum :
1. Perintah IF-Then
IF [i]ekspresi-logika[/i] Then
pernyataan;
IF [i]ekspresi-logika[/i] Then
Begin
pernyataan;
IF [i]ekspresilogika[/i] Then
pernyataan
Else
pernyataan
End
Else
Begin
Pernyataan;
IF [i]ekspresi-logika[/i] Then
pernyataan
Else
pernyataan;
End;
3. Perintah Case-Of
Case variabel Of
konstanta_1:pernyataan;
konstanta_2:pernyataan;
..
Else
pernyataan;
End;
Case ... Of
... :Begin
pernyataan;
pernyataan;
End;
... :Begin
pernyataan;
pernyataan;
End;
End;
Perintah Masukan:
Readln(variabel)
Perintah Tampilan:
Write('karakter')
Write(variable)
Writeln('karakter')
Writeln(variable)
Catatan:
- Perintah sebelum Else tidak boleh menggunakan tanda titik koma (;).
-----
Nilai Panjang ? 30
Nilai Lebar ? 15
Script:
Program PersegiPanjang:
Uses wincrt;
Var
Panjang, Lebar, Kll, Luas : real;
Begin
Write('Nilai Panjang'); Readln(panjang);
Write('Nilai Lebar ?'); Readln(lebar);
Tampilan:
Script:
CODE
ProgramPostMember;
Uses wincrt;
Var
Nama, ket : string [15]
Post : real;
Begin
Write('Nama Member?'); Readln(nama);
Write('Post?'); Readln(post);
Bentuk Umum:
1. Perintah For-To-Do
CODE
For var_pengontrol := nil_awal To nil_akhir Do
pernyataan;
2. Perintah For-DownTo-Do
CODE
For var_pengontrol := nil_awal DownTo nil_akhir Do
pernyataan;
CODE
While ekspresi_logika Do
pernyataan;
While ekspresi_logika Do
begin
pernyataan_1;
pernyataan_2;
end;
CODE
Repeat
pernyataan;
Until ekspresi_logika
5. Fungsi Standar
6. Prosedur Standar
-----
Masukan Jumlah? 5
*
**
***
****
*****
Script:
CODE
ProgramYachubugz;
Uses wincrt;
var
b,f, angka : integer;
Begin
Write('Masukan Jumlah?');
Readln(angka);
Writeln;
For k := 1 to angka do
Begin
For b:= 1 to f do
Write('*');
Writeln;
End;
End.
-------------------
No P 2*P 3*P
-------------------
1 35 ... ...
2 65 ... ...
3 95 ... ...
.. ... ... ...
10 ... ... ...
-------------------
Script:
CODE
ProgramPascal;
Uses Wincrt;
var
k, P, P1, P2 : integer;
begin
writeln('-------------------');
writeln('No P 2*P 3*P ');
writeln('-------------------');
P := 35;
For k := 1 to 10 do
begin
P1 := 2 * P;
p2 := 3 * P;
end.
CODE
Program Gabung;
uses crt;
var pilih: integer;
Procedure luas;
{copy dan paste program 1}
end;
Procedure JenisBilangan;
{copy dan paste program 2}
end;
Procedure Pengurutan;
{copy dan paste program 4}
End;
begin {program utama}
repeat
clrscr;
writeln(' PILIHAN');
writeln('--------------------------');
writeln(' 1. Menghitung Luas');
writeln(' 2. Jenis Bilangan');
writeln(' 3. Pengurutan');
writeln(' 4. Exit');
writeln('--------------------------');
writeln;
writeln;
write(' Pilih Angka untuk Memilih Pilihan : ');
readln(pilih);
case pilih of
1 : luas;
2 : JenisBilangan;
3 : Pengurutan;
4 : exit;
end;
until pilih = 4;
end.
CODE
Program Array_dan_Record;
type dmhs=record
nrp:string[10];
nama:string[25];
alamat:string[50];
end;
var data:array[1..3] of dmhs;
i:integer;
begin
for i:=1 to 3 do
begin
write('nrp : ');readln(data[i].nrp);
write('nama : ');readln(data[i].nama);
write('alamat : ');readln(data[i].alamat);
end;
writeln;
writeln('Data ditampilkan');
for i:=1 to 3 do
begin
writeln('nrp : ', data[i].nrp);
writeln('nama : ', data[i].nama);
writeln('alamat : ', data[i].alamat);
end;
readln;
end.
Di dalam program tersebut dideklarasikan bahwa dmhs (data mahasiswa) itu adalah record yang
mempunyai field nrp, nama dan alamat (lihat baris 2 sampai 6). Selanjutnya variabel data
dideklarasikan bertipe dmhs yang berbentuk array (baris ke 7). Kemudian seperti biasa untuk
memasukkan data ke field digunakan "readln(data[i].nrp)", dst (baris 10 sampai 15). Untuk
menampilkannya bisa dilihat dibaris ke 18 sampai 23.
Lanjutan page 2