Operator merupakan simbol yang digunakan untuk memberitahu compiler untuk melakukan manipulasi data. Terdapat beberapa jenis operator dalam bahasa pemrograman pascal, yakni
- Operator Aritmatika
- Operator Boolean
- Operator Relasional
- Operator Aritmatika
Operator aritmatika digunakan untuk melakukan operasi matematika seperti penjumlahan, pengurangan dan perklaian.
Contoh Implementasi Operator Aritmatika dalam PascalOperator Operasi Operand Hasil Operand Contoh + Penjumlahan Integer, Real Integer, Real 13 + 7 = 20 - Pengurangan Integer, Real Integer, Real 13 - 7 = 6 * Perkalian Integer, Real Integer, Real 13 * 7 = 91 / Pembagian Integer, Real Integer, Real 10 / 4 = 2,5 Div Pembagian Integer, Real Integer 15 div 4 = 3 Mod Sisa Pembagian Integer, Real Integer 20 mod 6 = 2 Source Codeprogram simpleCalc; var a:integer=46; b:integer=12; begin writeln('Nilai A = 46'); writeln('Nilai B = 12'); writeln(); writeln('Penjumlahan A dan B = ', a + b); writeln('Pengurangan A dan B = ', a - b); writeln('Perkalian A dan B = ', a * b); writeln('Pembagian A dan B = ', a / b); writeln('Pembagian (div) A dan B = ', a div b); writeln('Modulus A dan B = ', a mod b); readln(); end.
Output Program : Implementasi Operator Aritmatika dalam Pascal. - Operator Boolean
Operator boolean membandingkan nilai untuk menghasilkan expresi TRUE atau FALSE. Input maupun output dari operasi ini adalah bertipe boolean.
Operator Operasi Contoh not Negasi (~) not TRUE = FALSE and Konjungsi (^) TRUE and TRUE = TRUE or Disjungsi (v) TRUE or TRUE = TRUE xor Ekslusif OR TRUE xor TRUE = FALSE Source Codeprogram boolOperator; var c:boolean=true; d:boolean=false; begin writeln('nilai c = ',c); writeln('nilai d = ',d); writeln(); writeln('not C = ', not c); writeln('C and D = ', c and d); writeln('C or D = ', c or d); writeln('C xor D = ', c xor d); readln(); end.
Output Program : Implementasi Operator Boolean dalam Pascal. - Operator Relasional
Operator relasional membandingkan dua nilai untuk menghasilkan nilai kebenaran (TRUE or FALSE)
Operator Operasi Contoh = Sama dengan (45 = 9) = FALSE <> Tidak sama dengan (4 <> 21) = TRUE < Kurang dari (7 < 9) = TRUE <= Kurand dari sama dengan (45 <= 45) = TRUE >/td> Lebih dari (8 > 17) = FALSE >= Lebih dari sama dengan (9 >= 3) = FALSE Source Codeprogram relationOperator; var x:integer=25; y:integer=93; begin writeln('nilai X = ',x); writeln('nilai Y = ',y); writeln(); writeln('X = Y = ', x = y); writeln('X <> Y = ', x <> y); writeln('X > Y = ', x > y); writeln('X >= Y = ', x >= y); writeln('X < Y = ', x < y); writeln('X <= Y = ', x <= y); readln(); end.
Output Program : Implementasi Operator Relasi dalam Pascal.
Output
Dalam contoh-contoh program sebelumnya, telah banyak kita lihat statement writeln. Statement tersebut adalah statement output (menampilkan teks pada console) dalam bahasa pemrograman pascal. Dalam bahasa pemrograman pascal terdapat setidaknya dua statement untuk mencetak teks pada layar. Statement tersebut adalah write dan writeln. Perbedaan keduanya adalah writeln akan menambah baris baru setelah teks ditampilkan, sedangkan write tidak. Untuk lebih jelasnya mari kita lihat contoh berikut.
program writeAndWriteln;
begin
write('Indonesia ');
write('Bagus! ');
readln();
end.
Selanjutnya bandingkan dengan code menggunakan statement writeln
program writeAndWriteln;
begin
writeln('Indonesia ');
writeln('Bagus! ');
readln();
end.
Formatting Output
Output dapat diformat dengan mudah, kita cukup menaruh titik dua diikuti dengan jumlah karakter. Jika kita ingin memformat tipe bilangan real, kita cukup menambah simbol titik dua lagi diikuti dengan jumlah angka dibelakang koma.
value : (panjang karakter) : (panjang karakter dibelakang koma)
Input
Untuk membuat program lebih interaktif, dapat dicoba untuk melibatkan user dengan memasukan suatu input tertentu. Untuk melakukannya, bahasa pemrograman pascal mengakomodir dengan adanya statement read dan readln. Perbedaan keduanya sama dengan statement write dan writeln, yakni pada statement readln akan ditambah baris baru.
Sebenarnya terdapat satu lagi jenis input pada pascal, yakni readkey. Readkey menerima jenis masukan berupa karakter, dan input dapat langsung dibaca program tanpa harus menekan tombol enter. Namun untuk menggunakan readkey, sebelumnya harus diimport unit crt atau wincrt pada deklarasi uses.
Contoh Program Data Mahasiswa
program writeAndWriteln;
uses wincrt;
var
nama:string;
nim:string;
prodi:string;
fakultas:string;
semester:integer;
begin
write('Masukan Nama : ');
readln(nama);
write('Masukan NIM : ');
readln(nim);
write('Masukan Prodi : ');
readln(prodi);
write('Masukan Fakultas : ');
readln(fakultas);
write('Masukan Semester : ');
readln(semester);
writeln('==========/ HASIL /==========');
writeln('Nama : ', nama);
writeln('NIM : ', nim);
writeln('Prodi : ', prodi);
writeln('Fakultas : ', fakultas);
writeln('Semester : ', semester);
readkey();
end.
Pengertian Konstanta
Konstanta adalah entitas yang memiliki nilai yang tidak dapat dirubah selama program berjalan. Konstanta harus dideklarasikan pada bagian deklarasi const. Nilai pada konstanta juga harus ditetapkan pada bagian tersebut, dan nilai-nilai tersebut harus bertipe
- Char
- Integer
- Pointer
- Real
- Set
- String
Format/Syntax konstanta pada bahasa pemrograman pascal adalah sebagai berikut.
const
identifier1 = value;
identifier2 = value;
identifier3 = value;
Contoh Deklarasi Konstanta
Sebagai contoh, berikut berbagai deklarasi konstanta dalam berbagai tipe data.
const
pi = 3.1415926535897932;
usia = 20;
nama = 'John Doe';
grade = 'A';
Contoh Penggunaan Konstanta dalam Program
program hitungLuasLingkaran;
const
pi = 3.1415926535897932;
var
r:real=23;
l:real;
begin
l := pi * r * r;
writeln('Luas Lingkaran = ', l:0:2);
readln();
end.
Pengertian Variabel
Variabel hampir sama dengan konstanta, hanya saja nilai pada variabel dapat berubah selama program berjalan. Variabel harus dideklarasikan pada awal program (bagian deklarasi var), masing-masing variabel harus memiliki tipe data. Format/Syntax deklarasi suatu variabel adalah sebagai berikut
var
(* Deklarasi variabel dengan penetapan nilai di awal *)
identifier1 : tipe_data = nilai;
(* Deklarasi variabel dengan penetapan nilai di akhir/main program *)
identifier2 : tipe_data;
Contoh Deklarasi Variabel
var
(* Deklarasi variabel dengan penetapan nilai di awal *)
hargaAwal : integer = 12000;
namaPenulis : string = 'Alex Rins';
nilai : char = 'A';
(* Deklarasi variabel dengan penetapan nilai di akhir/main program *)
namaAyah : string;
luasSegitiga : real;
nilaiRataan : integer;
Contoh Penggunaan Variabel dalam Program
program biodata;
var
nama:string;
usia:integer;
(* Variabel yang nilainya langsung dideklarasikan *)
alamat:string='Jl. Veteran no. 48 Meikarta';
begin
(* Cara penetapan nilai variabel dalam progam *)
nama := 'Setyono Nova Ananto';
usia := 57;
writeln('NAMA : ',nama);
writeln('USIA : ',usia);
writeln('ALAMAT : ',alamat);
readln();
end.
Simbol Assigment
Kita telah melihat contoh-contoh penggunaan variabel dalam pascal, kita juga tahu bahwa nilai dari variabel dapat berubah-ubah selama program berjalan. Sebaiknya kita juga tahu tentang simbol assignment, simbol assignment adalah simbol yang digunakan untuk menetapkan nilai baru terhadap sebuah variabel. Simbol assignment dalam bahasa pemrograman pascal diwujudkan dengan := . Nilai yang ada pada variabel akan mengikuti nilai yang terakhir ditetapkan/diberikan pada variabel tersebut.
program assignSimbol;
var
nilai:integer;
begin
nilai := 12;
writeln(nilai);
nilai := 46;
writeln(nilai);
nilai := 25;
writeln(nilai);
nilai := 93;
writeln(nilai);
nilai := 99;
writeln(nilai);
readln();
end.
Didalam dunia teknologi informasi, terdapat banyak sekali macam-macam data yang harus diolah, ada yang berupa huruf, kata, angka, pernyataan benar/salah dan lain sebagainya. Untuk itu, data-data tersebut perlu diklasifikasikan menjadi jenis-jenis tertentu. Klasifikasi tersebut dinamakan tipe data.
Pengertian Tipe Data
Tipe data merupakan penggolongan data yang dimaksudkan untuk memberitahu compiler/interpreter bagaimana data tersebut diolah. Tipe data pada umumnya digunakan untuk mendefinisikan jenis nilai yang ada pada variabel atau konstanta.
Tipe Data dalam Bahasa Pemrograman Pascal
Berikut ini berbagai jenis tipe data yang dapat digunakan dalam bahasa pemrograman pascal.
-
Tipe Data Sederhana
- Boolean
Boolean adalah tipe data yang bernilai TRUE atau FALSE. Ukuran dari tipe data boolean adalah 1 byte.
ContohTRUE FALSE - Char
Char atau AnsiChar ialah tipe data yang hanya dapat menampung satu karakter. Char dapat menampung nilai numerical (angka), namun tipe data ini tidak dapat dilakukan perhitungan. Panjang dari tipe data ini ialah 1 byte (8 bit).
Contoh2 A # - Integer
Integer dapat menampung nilai berupa bilangan bulat (bukan pecahan). Integer sendiri terbagi menjadi beberapa kategori, diantaranya
Contoh# Tipe Data Ukuran Rentang Nilai 1 Byte 1 byte 0 s/d 255 2 Shortint 1 byte -28 s/d 127 3 Smallint -32768 s/d 32767 4 Integer 2 byte -327 s/d 32767 5 Word 2 byte 0 s/d 65535 6 Longint 4 byte -2147483648 s/d 2147483647 6 Int64 8 byte -9223372036854775808 s/d 9223372036854775807 46 123 -1022 5 - Real
Real merupakan tipe data yang menerima masukan nilai berupa angka pecahan. Real juga terbagi menjadi beberapa tipe lagi, yakni
Contoh# Tipe Data Ukuran Rentang Nilai 1 Real 6 byte ±1.7976931348623157×10308 2 Currency -922337203685477.5808 to 922337203685477.5807 3 Extended 10 bytes 3.4 x 104932 s/d 1.1 x 104932 2,655 78,0 12,5
- Boolean
- Tipe Data Composite
- Array
Array atau larik adalah jenis tipe data yang mampu menyimpan banyak data dengan tipe yang sama, misalnya array dari integer, array dari char dan lain sebagainya. Data-data didalam array ditandai dengan nomor index. Bentuk dari array ada yang satu dimensi (baris/vektor) dan adapula yang dua dimensi (matriks).
- Record
Record merupakan tipe data terstruktur yang ada pada pascal. Record pada umumnya digunakan untuk mengelompokkan data-data. Tipe data record hampir sama dengan array, dia mampu menampung banyak tipe data, namun pada record ia dapat menampung data yang berbeda tipe. Misalnya suatu record dapat menampung integer, string, real, boolean, char.
- Array
- Tipe Data Lain
- String
String merupakan jenis tipe data yang dapat menampung kata/kalimat. String sebenarnya adalah bentuk array dari char. String sendiri masih dibedakan menjadi beberapa tipe lagi, yakni
- ShortString, merupakan tipe string yang memiliki panjang maksimum 255 karakter.
- AnsiString, tidak memiliki batasan panjang maksimum. Secara internal AnsiString dikenal sebagai pointer, isi sebenarnya disimpan di dalam heap.
- WideString, memiliki panjang maksimum sama seperti AnsiString. WideString digunakan untuk menampilkan unicode character didalam aplikasi COM.
- UnicodeString, merupakan array dari WideChar. UnicodeString bersifat reference counted dan null-terminated array.
- Set
Set merupakan tipe data abstrak yang dapat menyimpan nilai-nilai tertentu. Set mirip dengan himpunan dalam matematika.
- Pointer
Pointer merupakan variabel yang berisi alamat memory variabel global maupun lokal, atau alamat memori yang telah dibuat dan disimpan di dalam heap.
Sebelum lebih jauh melangkah, alangkah baiknya kita mengetahui apa itu identifier dan reserved word. Hal ini berguna ketika kelak tidak terjadi error ketika memilih penamaan misalnya variabel yang salah.
Identifier
Identifier adalah nama yang ditentukan pengguna untuk mengenali elemen dalam suatu program, misalnya variabel, constant, prosedur/fungsi dan lain sebagainya. Contohnya misalkan saya memiliki variabel luas = 400, maka yang dimaksud dengan identifier adalah luas, identifier luas digunakan untuk 'memberi nama' elemen program (variabel) yang bernilai 400.
Walaupun penamaan identifier ditentukan oleh diri kita sendiri, namun penamaan tersebut harus sesuai dengan aturan yang berlaku. Terdapat tiga aturan dalam penamaan identifier, yakni
- Identifier harus diawali dengan huruf latin atau karakter underscore ( _ ).
- Karakter yang diperbolehkan setelahnya hanyalah huruf latin, angka dan underscore.
- Identifier tidak boleh mengandung karakter spesial seperti.
~ ! @ # $ % ^ & * ( ) + ` - = { } [ ] : " ; ' < > ? , . / | \
Contoh Penggunaan Identifier
Contoh SALAHPenggunaan Identifier11januari
bulat/datar
#indonesia
diskon%
Contoh BENARPenggunaan Identifier
luas
panjang2
_indonesia
TotalDiskon
buku_5
Panjang identifier pada beberapa compiler pascal bermacam-macam. Namun kebanyakan panjang identifier dibatasi 32 karakter. Sedangkan compiler Free Pascal sendiri memperbolehkan panjang identifier sebanyak 127 karakter. Meskipun demikian, identifier sebaiknya ditulis secara singkat namun merepresentasikan nama dari elemen program tersebut. Hal ini untuk menjaga kompatibilitas dengan compiler lain serta untuk memudahkan pengguna membacanya.
Reserved Words
Sesuai namanya Reserved Word berarti 'Kata yang sudah dipesan'. Maksudnya kata-kata ini sudah digunakan untuk internal program, sehingga kata-kata ini tidak bisa kita gunakan. Reserved words berbeda-beda tiap compiler, berikut reserved words dari tiga compiler pascal paling populer, yakni Turbo Pascal, Delphi dan Free Pascal.
Turbo Pascal| absolute | and | array | asm | begin | break | case | const |
|---|---|---|---|---|---|---|---|
| constructor | continue | destructor | div | do | downto | else | end |
| file | for | function | goto | if | implementation | in | inherited |
| inline | interface | label | mod | nil | not | object | of |
| on | operator | or | packed | procedure | program | record | reintroduce |
| repeat | self | set | shl | shr | string | then | to |
| type | unit | until | uses | var | while | with | xor |
Delphi
Pada Delphi reserved words sama dengan reserved words pada Turbo Pascal, dengan tambahan reserved words dibawah.
| as | class | except | exports | finalization | finally | initialization |
|---|---|---|---|---|---|---|
| is | library | on | property | raise | threadvar | try |
Free Pascal
Reserved words pada compiler Free Pascal meliputi reserved words yang ada pada Turbo Pascal dan Delphi plus reserved words berikut.
| dispose | exit | false | new | true |
|---|
Hello World! pada awalnya digunakan pada bahasa C untuk menunjukan apakah bahasa pemrograman tersebut bekerja atau tidak. Lambat laun, hello world juga digunakan pada bahasa pemrograman lain seperti java, php dan pascal.
Membuat Aplikasi Hello World! pada Pascal
Menampilkan teks hello world pada layar dalam bahasa pemrograman pascal dilakukan dengan statement write atau writeln. Untuk lebih lengkapnya, silakan amati code berikut.
program helloWorld;
begin
writeln('Hello World!');
readln();
end.
- program HelloWorld;
Baris ini mendefinisikan nama program bernama Helloworld.
- begin
- Kode ini menandai awal dari main program.
- writeln('Hello, World!');
- Baris ini merupakan perintah untuk menampilkan kata 'Hello World!' kedalam console.
- readln;
- Statement ini berfungsi untuk memberi jeda sampai user menekan tombol. Hal ini untuk mencegah program langsung menutup (dalam hal ini supaya teks 'Hello World!' dapat terbaca.)
- end.
- Kode ini mendandai akhir dari main program.
Melakukan Compile
Sebelum kita menjalankan code pascal, code tersebut harus terlebh dahulu di compile supaya dapat dieksekusi oleh komputer. Pada Charm Pascal IDE, compile program bisa dilakukan dengan cara klik menu Build Compile
Jika compile sukses, akan muncul pop up window yang menyatakan bahwa compile sukses dengan 0 error. Namun jika gagal, program akan menampilkan pop up window dengan keterangan baris dan kolom letak kesalahan kode, serta jenis kesalahannya.
Menjalankan Program
Setelah proses compile berhasil, langkah selanjutnya adalah menjalankan program untuk melihat apakah hasilnya sudah sesuai dengan apa yang kita inginkan atau tidak. Untuk menjalankan program bisa dilakukan dengan cara klik menu Build Run atau dengan menekan tombol run seperti yang ditunjukan pada gambar berikut.
Setelah program dijalankan, akan muncul jendela console dengan tulisan "Hello World!". Hal tersebut menandakan bahwa program yang kita jalankan sudah berjalan sesuai dengan apa yang kita harapkan.
Sebelum membuat program pascal, terlebih dahulu kita harus mengenal struktur bahasa pemorgraman pascal. Struktur ini akan tetap jadi acuan selama kita menggunakan bahasa pemrograman pascal kedepannya.
Struktur Dasar
Secara garis besar, bahasa pemrograman pascal memiliki struktur sebagai berikut.- Judul Program
- Blok Program
- Deklarasi
- Label
- Konstanta
- Tipe
- Variabel
- Prosedur/Fungsi
- Main Program
- Deklarasi
Mari kita ulas satu per satu struktur diatas.
- Judul Program
Bagian ini menginisialisasikan judul dari program yang akan dibuat. Judul program diawali dengan kata
Contohprogramdiikuti dengan nama program dan diakhiri dengan simbol semicolon (;). Bagian ini sebenarnya adalah opsional, boleh ditambahkan boleh tidak.program hitungLuas;- Deklarasi Label
Label merupakan nama yang diberikan pada blok kode tertentu, yang dapat dilompati dari lokasi lain dengan statement goto.
label lokasi1; asdf;- Deklarasi Konstanta
Konstanta merupakan elemen yang dideklarasikan pada awal program dan memiliki nilai yang tidak dapat diubah.
const nama = 'Budi'; panjang = 20; pi = 3.1415926535897932;- Deklarasi Tipe
Deklarasi tipe merupakan deklarasi tipe data yang ditentukan oleh pengguna.
type arrayKu = array [0 .. 9] of Integer;- Deklarasi Variabel
Variabel merupakan elemen program yang dikaitkan dengan identifier dan memiliki nilai yang bisa diubah.
var nama : string; luas : integer;- Deklarasi Prosedur/Fungsi
Prosedur/Fungsi merupakan sekumpulan statement yang terpisah dari program utama. Prosedur/Fungsi dapat dipanggil berulang-ulang dari program utama.
procedure hitung(var p,l:char); var luas:integer; begin luas := p * l; end;- Main Program
Main program adalah bagian yang berisi statement dan ekspresi yang disusun berdasarkan algoritma tertentu.
program HelloWorld;
begin
writeln('Hello, World!');
readln;
end.
Mari kita lihat penjelasan bagian-bagian kode diatas.
- program HelloWorld;
Baris ini mendefinisikan nama program bernama Helloworld.
- begin
- Kode ini menandai awal dari main program.
- writeln('Hello, World!');
- Baris ini merupakan perintah untuk menampilkan kata 'Hello World!' kedalam console.
- readln;
- Statement ini berfungsi untuk memberi jeda sampai user menekan tombol. Hal ini untuk mencegah program langsung menutup (dalam hal ini supaya teks 'Hello World!' dapat terbaca.)
- end.
- Kode ini mendandai akhir dari main program.
White Space & Komentar
White space merupakan istilah yang merujuk pada penggunaan karakter 'tak terlihat' seperti spasi, tab dan enter. Tujuan penggunaan space adalah untuk membuat kode lebih rapi dan mudah dibaca atau dikenal juga dengan istilah indentasi. Sedangkan komentar adalah teks yang berfungsi sebagai penjelas suatu blok kode. Komentar dalam pascal dinyatakan dengan simbol (* sebagai pembuka dan *) sebagai penutup. White space dan komentar dalam pascal tidak akan dieksekusi (diabaikan)
Case Sensitivity
Case sensitivity dalam dunia pemrograman merupakan sifat penulisan syntax apakah membedakan antara huruf kapital atau tidak. Bahasa pemrograman pascal sendiri bersifat Case Insensitive, artinya dia tidak berpengaruh terhadap penulisan huruf kapital atau huruf kecil. Misalnya kata INDONESIA, Indonesia, indonesia atau InDoNeSiA dianggap sama. Walaupun demikian, supaya kode mudah dibaca, penulisan kode program sebaiknya memperhatikan kaidah-kaidah penggunaan huruf kapital dan huruf kecil.
Referensi
- Modul Bahasa Pemrograman Pascal UB
- Modul Bahasa Pemrograman Pascal UNISBA
- http://wiki.freepascal.org/Program_Structure
Dalam menyusun tutorial ini, saya menggunakan program Free Pascal sebagai compilernya dan Charm Pascal sebagai IDE pengganti IDE Free Pascal. Saya memilih kedua software tersebut karena gratis dan mudah digunakan. Pada posting ini kita akan melakukan instalasi kedua program tersebut dan mempelajari bagaimana menggunakan software tersebut. Menginstall kedua program tersebut tidaklah sulit, khususnya bagi anda yang sudah pernah menginstall software sebelumnya. Langkah-langkah instalasi saya dokumentasikan dalam slide dibawah ini.
Free Pascal Compiler
Dalam post ini dan seterusnya kita hanya akan menggunakan compiler Free Pascal. Namun untuk sekedar tahu saja kira-kira seperti ini tampilan visual dari Free Pascal IDE. Walaupun tampilan masih berbasis CMD, tetapi FP IDE sebenarnya juga bisa merespon klik mouse. Free Pascal IDE memiliki shortcut keyboard yang agak berbeda dari program aplikasi lain. Misalnya F2 untuk menyimpan file, Alt + Backspace untuk undo, Ctrl + Ins untuk copy text ke clipboard, Shift + Ins untuk paste, dan lain sebagainya, daftar lebih lengkapnya bisa dilihat melalui link ini. Bagi pemula, hal ini menjadi kesulitan tersendiri ketika harus membiasakan diri dengan shortcut keyboard tersebut.
Charm Pascal IDE
Dibandingkan dengan IDE Free Pascal, Charm Pascal IDE memiliki user interface dan user experience yang lebih friendly. Selain itu dengan berbagai macam fitur seperti sytax highlighting, auto indent, code snippets, code folding, dark theme dan lain sebagainya, membuat Charm Pascal cocok digunakan baik yang masih dalam tahap belajar maupun yang sudah tingkat lanjut.