Free Pascal merupakan salah satu bahasa pemrograman favorit dalam kompetisi yang menggunakan bahasa pemrograman.
Syntax kode-nya mudah dibaca sehingga bahasa ini menjadi pilihan di Indonesia. Katanya,
Free Pascal mudah dipelajari karena itu dalam soal OSN Komputer tingkat Kabupaten dan Provinsi menggunakan Free Pascal sebagai
pseudo-code-nya. Dalam tulisan ini, saya akan bahas bagaimana memulai belajar bahasa
Free Pascal. Sebenarnya, nama bahasa pemrograman ini
Pascal, namun kita menggunakan
Free Pascal sebagai
compiler-nya. Selain
Free Pascal, ada
Turbo Pascal yang populer di sistem opersi
Windows. Kenapa kita belajar
Free Pascal? Karena dalam sistem
judment tokilearning.org menggunakan
Free Pascal. Sehingga lebih baik pelajari
Free Pascal yang digunakan di dalam semua sistem
judment.
Secara umum, untuk mengenal sebuah bahasa pemrograman, kita akan mulai dengan sedikit sejarah bahasa pemrograman tersebut. Kemudian berlanjut ke materi
input/output,
if statement,
looping, lalu sedikit tentang
function (
method).
Sejarah
Pengembang utama
Free Pascal adalah
Florian Klämpfl. Ia menulis
compiler ini dengan bahasa
Object Pascal dan
Assembly. Veris 1.0 dirilis pada bulan Juli 2000. Nama
Free Pascal Compiler disebut dengan
fpc yang kini (31 Desember 2015) telah menginjak versi 2.7.1.
Struktur Umum Kode
Di dalam
Free Pascal, secara umum struktur kode-nya terdiri dari nama program (
program), variabel (
var), pembuka (
begin), dan penutup (
end.). Namun terkadang ada juga yang menambahkan fungsi definisi untuk
compiler (
uses). Jika dibuat, maka struktur seperti ini:
program ...; // ... diisi dengan nama program, tanpa spasi
uses ...; // ... diisi dengan module compiler yang ingin digunakan, ini optional, boleh tidak digunakan
var ...: ...; // ...: ... diisi dengan "nama variabel": "tipe data"
begin // pembuka
... // ... isi kode yang akan dijalankan
end. // penutup
Komentar
Dalam bahasa pemrograman, ada yang namanya komentar. Komentar merupakan bagian yang diabaikan oleh
compiler, sehingga apapun yang kita tulis tidak akan berpengaruh. Di dalam
Free Pascal, kita dapat gunakan:
(* Ini Komentar *)
{ Ini Komentar }
// Ini Komentar
Perbedaan dari ketiga-nya yaitu untuk // hanya mengabaikan 1 baris. Sementara (* *) dan { } akan mengabaikan sebanyak apapun dari pembuka (* atau { hingga penutup } atau *).
Input/Output
Untuk masukan berupa variabel di dalam bahasa
Free Pascal kita dapat gunakan perintah
var. Kemudian diikuti dengan nama variabel serta tipe data-nya. Setelah itu, barulah kita berikan masukan. Sebagai contoh, saya akan buat variabel dengan nama "angka" serta dengan tipe data
Byte. Secara umum, penulisannya seperti ini:
var angka: Byte = 5;
// atau
var angka: Byte;
begin
angka := 5;
end.
Lalu, untuk keluaran, yang biasa digunakan merupakan
write atau
writeln. Write untuk menulis, serta
writeln untuk menulis di satu baris tersendiri. Keduanya hanya mau diberi kutip satu ('). Jika diberikan kutip dua (") maka akan muncul
error dan kode tidak di
compile. Secara umum penulisannya seperti ini:
write('A');
write('B');
// maka keluaran: AB
writeln('A');
writeln('B');
// maka keluaran:
// A
// B
writeln(angka); // Asumsikan angka telah didefinisikan di atas
// maka keluaran:
// 5
Keduanya juga dapat ditulis kosong seperti ini:
write;
writeln;
If Statement
Di dalam bahasa pemrograman, sangat erat dengan yang namanya
logical expression. Nah, hal tersebut bersangkutan dengan
if statement. Bisa dibilang,
if statement merupakan hal wajib ada sama halnya dengan
input/output. Di dalam
Free Pascal, penggunaan
if statement secara umum seperti ini:
if kondisi then perintah;
Untuk 1 perintah, sebaiknya gunakan
if-then dalam satu baris. Atau bisa juga:
if kondisi then
perintah;
Dan untuk lebih dari 1 perintah, bisa gunakan
if-then-begin-end seperti ini:
if kondisi then
begin
perintah;
perintah;
// ...
end;
If digunakan untuk mencari nilai benar. Misal,
if kondisi = ketentuan. Jika kondisi sama dengan ketentuan, maka akan bernilai benar dan kode di bawah
if tersebut akan dieksekusi. Lalu, bagaimana jika bernilai salah? Kode dalam
if tidak akan dieksekusi, namun akan berjalan ke
else apabila didefinisikan.
if kondisi = ketentuan then
perintah // jika bernilai benar
else
perintah; // Jika bernilai salah
Jika perintahnya lebih dari 1, maka penggunaannya seperti ini:
if kondisi = ketentuan then
begin
// perintah...
end
else
begin
// perintah...
end;
"=" di dalam kode tersebut disebut ekspresi. Lalu, apa saja yang dapat kita gunakan di dalam
Free Pascal?
Secara umum, kita dapat gunakan apa yang ada di tabel untuk ekspresi.
| Ekspresi | Penjelasan |
| = | Sama dengan. Apabila kondisi sama dengan ketentuan maka benar |
| > | Lebih dari. Apabila kondisi lebih dari ketentuan maka benar |
| >= | Lebih dari sama dengan. Apabila kondisi lebih dari sama dengan ketentuan maka benar |
| < | Kurang dari. Apabila kondisi kurang dari ketentuan maka benar |
| <= | Kurang dari sama dengan. Apabila kondisi kurang dari sama dengan ketentuan maka benar |
| <> | Tidak. Apabila kondisi tidak sama dengan ketentuan maka benar |
Di dalam
statement, kita dapat menggunakan
boolean untuk
multiple condition. Misal, jika kondisi = ketentuan atau kondisi <> ketentuan.
if (kondisi1 = ketentuan1) or (kondisi2 <> ketentuan2) then
perintah;
Secara umum,
boolean yang digunakan di dalam
if yaitu
or dan
and.
Or (atau) apabila salah satunya bernilai benar, maka ia akan bernilai benar.
And (dan) apabila salah satunya bernilai salah, maka ia akan bernilai salah. Jika Anda ingin lihai dalam penggunaan ini, sebaiknya Anda mulai belajar "Logika Matematika".
Else If dilakukan secara manual di dalam
Free Pascal. Karena tidak ada perintah
else-if.
if kondisi = ketentuan then
if kondisi2 = ketentuan2 then
perintah;
if kondisi = ketentuan then
if kondisi2 = ketentuan2 then
perintah
else
perintah
else
perintah;
Looping
Looping di dalam
Free Pascal secara umum ada 3, yaitu
for, repeat, dan
while.
For
For digunakan untuk kasus-kasus yang biasanya menggunakan
fixed number. Semisal, saya mau
looping sebanyak 10 kali dan saya butuh variabel berapa kali saya sudah melakukan
loop.
var i: Byte;
begin
for i := 1 to 10 do
writeln('Saya sudah looping sebanyak ', i, 'kali!');
end.
Sama halnya dengan
if statement, jika di dalam
for kita akan memberikan perintah lebih dari satu, maka gunakan
block begin-end.
var i: Byte;
begin
for i := 1 to 10 do
begin
// perintah
// perintah
end;
end.
Di kode tersebut terdapat perintah "
to" yang maksudnya hingga. Semisal, saya ingin
looping dari 1 hingga 10. Maka gunakan
to, "1
to 10". Lalu, bagaimana jika saya ingin perhitungan mundur? Anda bisa gunakan
downto. Semisal, saya ingin
looping dari 100 hingga 1. Maka gunakan
downto, "100
downto 1".
Sebenarnya selain
for-to, ada
for-in. Tapi,
for-in digunakan dalam kasus yang memiliki
Enumeration (daftar barisan data). Hal-hal yang sifatnya
advanced akan dibahas di tulisan tersendiri.
Repeat
Seperti namanya, fungsi dari
repeat yaitu ulangi perintah hingga ke batas yang ditentukan (
repeat-until). Untuk penggunaannya:
repeat
perintah;
until ketentuan;
Semisal, saya ingin ulangi perintah hingga 100 kali dengan variabel i = 1 (dari 1 hingga 100).
repeat
writeln('Cetak ini terus!');
i := i+1; // jika variabel i tidak ditambahkan secara manual, maka ini akan berulang terus selamanya
until i >= 100;
Perbedaan antara
for dan
repeat telah terlihat bukan?
For secara otomatis melakukan penambahan +1 pada variabel patokannya. Sementara
repeat, jika tidak ditambahkan secara manual ia akan terus mengulanginya. Karena, variabel
until tidak akan pernah tercapai.
While
Penggunaan
while hampir sama dengan
repeat. Bedanya, pada
repeat pengecekan ketercapaian kondisi dilakukan saat akhir perulangan. Sementara pada
while, akan dicek saat awal memulai perulangan. Dan
while akan melakukan perulangan jika kondisi belum keluar dari ketentuan. Adapun penggunaannya:
i := 1;
// Ulangi hingga variabel i di atas 10
while i < 10 do
perintah;
i := i+1; // penambahan manual
while i < 10 do
begin
perintah;
perintah;
i := i+1; // penambahan manual
end;
Tambahan
Di dalam
looping, Anda dapat bermain dengan perintah
break dan
continue.
Break digunakan untuk menghentikan
looping. Sementara
continue digunakan untuk melewati dan langsung ke
looping yang selanjutnya. Adapun kode yang dilewati hanya kode yang berada di bawahnya.
i := 0;
repeat
i := i+1;
if i = 2 then continue;
writeln(i);
if i = 5 then break;
until i > 10;
Kode di atas akan berjalan
looping dari 1 hingga 10. Namun, pada saat i = 2 kode di bawahnya tidak akan dieksekusi dan langsung berlanjut ke proses berikutnya. Lalu, pada saat i = 5, kode akan dihentikan dan keluar dari
looping. Sehingga keluaran akan menjadi:
1
3
4
5
Function
Function digunakan untuk membuat sebuah
method yang akan digunakan berkali-kali untuk menghemat penulisan. Di dalam
Free Pascal,
function ditulis di atas pembuka (
begin). Adapun penulisan untuk
function seperti ini:
function name(parameter): dataType;
begin
// isi function
end;
Contoh:
var i: Integer;
function tambah(i: Integer): Integer;
begin
i := i+1;
tambah := i; // return value di dalam Free Pascal
end;
Selain
function, ada
procedure. Perbedaannya,
procedure tidak mendukung
return value sehingga hanya digunakan untuk hal-hal yang bersifat langsung berupa keluaran. Tapi, yang paling sering digunakan bukanlah
function, namun
procedure karena jarang ada orang yang bermain
return value di
Free Pascal. Apa yang dibuat, langsung dikeluarkan. Seperti itulah.
Procedure
Penggunaannya tidak jauh berbeda dari
function.
var i: Integer;
procedure tambah(i: Integer);
begin
i := i + 1;
writeln(i);
end;
Dilihat dari perbadingannya sudah terlihat bukan? Seperti yang saya jelaskan sebelumnya di dalam
function.
Penutup
Demikian tulisan saya yang membawa Anda memulai belajar bahasa
Pascal dengan menggunakan
compiler Free Pascal. Adapun yang kita bahas hanyalah sebagian kecil, yaitu secara umum. Kita sekarang telah mengenal komentar,
input/output,
if statement,
function serta
procedure, dan
looping di dalam bahasa
Pascal. Masih sangat banyak yang belum saya jelaskan. Dari masing-masing perintah seperti
if,
while,
repeat, dan lain sebagainya masih banyak yang belum dijelaskan dan dijabarkan.
Saya hanyalah manusia biasa yang mencoba menjadi penulis. Saya juga masih baru belajar. Jadi, apabila ada kesalahan harap dikoreksi dan dimaklumi serta dimaafkan. Saya akan memperbaikinya segera apabila terdapat kesalahan. Terima kasih.