Pascal dikembangkan dari bahasa ALGOL, yang merupaka bahasa pemrograman komputasi scientific. ALGOL memiliki beberapa kelemahan seperti pada tipe data pointer, karakter, dan sulitnya mengimplementasikan bahasa tersebut ke dalam compiler menyebabkan ALGOL tidak berkembang dan sedikit demi sedikit ditinggalkan.
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.Kelebihan dari bahasa PASCAL adalah merupakan bahasa pemrograman yang terstruktur, bahasa pemrograman tingkat tinggi (high level language), serta mudah bagi programmer untuk menentukan tipe data yang diinginkan.
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.
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).
Program atau software yang digunakan untuk proses kompilasi dinamakan compiler. Untuk PASCAL terdapat beberapa compiler yang dapat digunakan yaitu Turbo Pascal, Free Pascal.
Terdapat beberapa istilah yang terkait dengan bahasa tingkat tinggi:
• Source code, merupakan kumpulan perintah dalam bentuk program yang dibuat oleh
programmer. Dalam PASCAL, source code ini disimpan dalam bentuk file berekstensi
.pas. Source code inilah yang akan dikompilasi oleh compiler.
• Object code, merupakan file sebagai hasil dari proses kompilasi. File ini biasanya
berekstensi .obj.
• Executable code, merupakan file sebagai hasil akhir dari proses pemrograman. Dalam
DOS/Windows, file ini berekstensi .exe. File ini dapat dijalankan langsung melalui promt
DOS atau double click pada Windows Explorer.
Menjalankan FREE PASCAL
Untuk mendapatkan master program Free Pascal (terbaru rilis 2.0.04), dapat diunduh dari situs
http://www.freepascal.org/download.var
Untuk dapat diinstal di DOS/Windows, pilihlah master dalam bentuk BINARIES DOS atau Win32.
Setelah file program diunduh, proses berikutnya adalah sbb:
1. Jalankan file setup dan ikuti petunjuk instalasi
2. Setelah instalasi selesai, Free Pascal sudah dapat dijalankan dengan membuka START
> FREE PASCAL
3. Tuliskan program (source code) dalam halaman biru (blue page)
4. Simpan program dengan SAVE atau SAVE AS
5. Jalankan program dengan menggunakan menu RUN. Dalam hal ini, proses kompilasi sudah otomatis akan dijalankan. Apabila terdapat perintah dalam program yang salah/ tidak sesuai aturan maka akan muncul pesan peringatan yang biasanya disertakan pula nomor baris letak kesalahan. 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
Bahasa Pascal memiliki struktur sbb:
CODE
PROGRAM NamaProgram (FileList);
CONST
(* pendeklarasian konstanta *)
TYPE
(* pendeklarasian tipe *)
VAR
(* pendeklarasian variabel *)
(* pendefinisian subprogram-procedure atau function *)
BEGIN
(* batang tubuh/ main body *)
END.
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.
Untuk memberikan komentar dalam PASCAL, digunakan perintah { komentar } atau (* komentar *). Sebagai contoh, dapat Anda lihat kembali contoh pertama (program Hello World). Pengenal (Identifier)
Identifier merupakan sebuah nama yang digunakan untuk keperluan penyimpanan suatu nilai, pendaklarasian variabel, konstanta, type dan nama program maupun subprogram. Seorang programmer tidak boleh sembarangan menuliskan nama identifier. Berikut ini adalah beberapa aturan penulisannya:
1. Nama identifier harus dimulai (karakter pertama) dengan karakter huruf alfabet a-z atau
A-Z
2. Setelah karakter pertama, dapat dilanjutkan dengan karakter alfanumerik (angka maupun
huruf), dan underscore (_)
3. Dalam penulisan identifier tidak boleh menggunakan karakter-karakter berikut ini
QUOTE
~ ! @ # $ % ^ & * ( ) + ` - = { } [ ] : " ; ' < > ? , . / |
4. Tidak boleh menuliskan identifier dengan nama yang sesuai kata tercadang (reserved
word) dalam PASCAL, seperti
QUOTE
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. 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;
Sebagai contoh, berikut ini adalah perintah untuk mendeklarasikan beberapa konstanta
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).
Suatu konstanta dapat pula ditulis seperti contoh berikut
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. Variabel dan Tipe Data
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.
QUOTE
var
IdentifierList1 : DataType1;
IdentifierList2 : DataType2;
IdentifierList3 : DataType3;
...
IdentifierList merupakan nama-nama identifier (variabel) yang akan digunakan. Masingmasing nama tersebut dipisahkan dengan tanda koma. Sedangkan datatype merupakan tipe data dari nama-nama variabel tersebut. Berdasarkan nilai yang akan disimpan dalam variabel, terdapat 4 tipe data:
• 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.
• Char, merupakan tipe data untuk nilai yang berupa karakter.
• Boolean, merupakan tipe data yang hanya bernilai TRUE atau FALSE saja.
Berikut ini adalah contoh pendeklarasian beberapa variabel
QUOTE
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. Assignment dan Operasi
Setelah sebuah variabel dideklarasikan, selanjutnya dapat digunakan untuk menyimpan sebuah nilai. Proses penyimpanan nilai dalam sebuah variabel ini dinamakan proses assignment.
Sintaks untuk assignment ini adalah:
QUOTE
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
Operator | Operation | Operands | Result
+ | Penjumlahan | real or integer | real or integer
- | Pengurangan | real or integer | real or integer
* | Perkalian | real or integer | real or integer
/ | Pembagian | riil | real or integer |real
div | Pembagian | integer | integer | integer
mod | Modulus | integer | integer
Setiap variabel hanya bisa diassign dengan nilai yang sesuai dengan tipe data dari variabel
tersebut. Contoh:
var
a : integer;
b : real;
selanjutnya diberikan statement sbb pada bagian body
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:
some_real := 37.5 * (-2);
jangan seperti di bawah ini
some_real := 37.5 * -2;
Statement di atas akan membuat bingung Pascal untuk menentukan operasi yang akan dilakukan terlebih dahulu.
Dalam pemrograman pada umumnya terdapat tingkat presedensi yang menyatakan prioritas operasi mana yang akan didahulukan. Untuk operasi perkalian dan pembagian terlebih dahulu akan diprioritaskan daripada penjumlahan dan pengurangan. Contoh:
hasil := 3 + 4 * 5;
nilai yang akan disimpan dalam variabel hasil adalah 23 (bukannya 35). Sedangkan apabila
diberikan perintah berikut
hasil := (3 + 4) * 5;
barulah hasilnya adalah 35.
Catatan:
Operator aritmatik dalam Pascal tidak dapat diterapkan pada variabel bertipe data boolean dan
char.
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
Function | Description | Argument type | Return type
abs | Nilai absolut | real or integer | Sama seperti argumen
arctan | arctan dalam radian | real or integer | Real
cos | cosinus sudut dalam radian | real or integer | Real
exp | pangkat bilangan natural | real or integer | Real
ln | Logaritma natural | real or integer | Real
round | Pembulatan ke bilangan bulat terdekat | real | Integer
sin | sinus sudut dalam radian | real or integer | Real
sqr | pangkat dua | real or integer | Sama seperti argumen
sqrt | akar pangkat dua | real or integer | Real
trunc | Pembulatan ke bawah | real or integer | Integer
Selain itu juga terdapat beberapa fungsi yang lain yang hanya digunakan untuk tipe data terurut/ ordinal (integer dan char)
Function | Description | Argument type | Return type
chr | Menampilkan karakter ASCII dari suatu bilangan bulat | integer | char
ord | Menampilkan nomor ASCII dari suatu karakter | integer or char | integer
pred | predecessor | integer or char | same as argument type
succ | successor | integer or char |same as argument type
Input dan Output
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. Perintah Pascal untuk menyatakan input adalah:
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.
Misalkan ketika program di atas dijalankan kita masukkan bilangan 6, maka tampilannya: Masukkan sebarang bilangan bulat : 6 [enter] Bilangan yang Anda masukkan adalah : 6
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
Setelah data diinput dan selanjutnya diproses, selanjutnya harus ditampilkan sebagai output supaya user dapat mengetahui solusi dari permasalahan. Untuk menampilkan data ke layar (output), terdapat dua perintah dalam Pascal, yaitu
Write(argumen);
Writeln(argumen);
Perbedaan dari kedua perintah di atas adalah sbb:
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:
Argumen dapat berupa variabel, string, operasi, maupun function.
Contoh:
a := 4; {misalkan a dan b adalah integer}
b := 5;
write(‘Ini contoh write’);
write(‘Ini contoh write’);
writeln(‘Ini contoh writeln’);
writeln(‘Ini contoh writeln’);
writeln(a);
write(a+b);
writeln(sqr(a+b));
writeln(a,’ ditambah ‘,b,’ adalah ‘, a+b);
output dari potongan program di atas adalah
Ini contoh writeIni contoh writeIni contoh writeln
Ini contoh writeln
4
981
4 ditambah 5 adalah 9
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.
Sedangkan lebarfield merupakan bilangan positif yang menunjukkan lebar space untuk nilai yang akan ditampilkan.
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.
Value/variabel : lebarfield : jumlahdigit
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. Share
No comments:
Post a Comment