Bahasa Pascal-Dasar
Bahasa Pascal-Dasar
Modul 1
BAHASA Pascal
[BAHASA PASCAL ] Tingkat Dasar (Teori)
Bahasa PASCAL pertama kali dikembangkan pada awal tahun 70-an oleh NICLAUS WIRTH di
Technical University, Zurich – Swiss.
Nama PASCAL diambil dari nama seorang ahli matematika bangsa Perancis, yaitu BLAISE PASCAL yang
telah berjasa menemukan alat hitung mekanis pertama didunia pada abad ke-17. Bahasa PASCAL adalah
hasil pengembangan lebih lanjut oleh Prof. Wirth dari bahasa pemrograman pendahulunya yaitu bahasa
ALGOL (ALGOrithmic Language). Pada Awalnya bahasa pemrograman ini diperkenalkan dengan tujuan
untuk menjelaskan masalah pemrograman komputer bagi mahasiswa yang belajar pemrograman
komputer.
Ternyata dalam waktu singkat, nahasa pemrograman ini menjadi salah satu bahasa yang sangat
populer dikalangan universitas, sehingga menjadi julukan sebagai bahasa universitas. Mulai dari awal
perkembangannya hingga saat ini banyak sekali jenis bahasa pemrograman ini, masing-masing
merupakan hasil pengembangannya, antara lain :
UCSD Pascal, Microsoft Pascal, Apple Pascal, Turbo Pascal, dsb.
PENGENAL (IDENTIFIER)
PENGENAL adalah nama yang diberikan untuk suatu elemen program. Elemen tersebut dapat
berupa : suatu variable, suatu fungsi, suatu prosedur atau, suatu program. Pengenal disusun dari
karakter huruf ataupun karakter bilangan dengan ketentuan sbb:
1. Nama pengenal harus diawali dengan karakter huruf.
2. Karakter kedua dan seterusnya bisa berupa angka, huruf besar, huruf kecil, atau kombinasi, tapi
tidak boleh memakia karakter khusus (? # dsb). Beberapa versi PASCAL membolehkan tanda (_)
sebagai karakter penyusun pengenal.
3. Panjang karakter bebas, tapi dalam beberapa versi PASCAL hanya 8 karakter yan diingat memori,
karakter kesembilan dan seterusnya diabaikan.
4. Beberapa nama sudah digunakan secara khusus oleh PASCAl untuk tujuan tertentu, jadi tidak
boleh lagi dipakai sebagai pengenal /identifier! Nama- nama ini disebut sebagai Daftar kata
khusus (reserved word).
VARIABEL
Variabel adalah pengenal yang nilaianya boleh berubah pada waktu pemrosesan program.
Semua variabel yang akan diguanakan dalam program harus dideklarasikan dahulu di dalam program.
Deklarasi variabel dilakukan dengan deklarasi VAR.
DEKLARASI
Deklarasi adalah bagian penting berisi pengenal maupun data . Deklarasi akan mengingatkan
pemrogram tentang variabel, konstanta, fungsi ataupun prosedur yang digunakan dalam program.
1. Deklarasi CONST
Gunanya untuk mendeklarasikan nama pengenal tertentu yang berisi suatu konstanta.
Contoh:
CONST pi=3.14;
2. Deklarasi VAR
Gunanya untuk menyatakan bahwa nama pengenal tertentu adalah suatu variabel: pengenal
yang isinya dapat berubah.
Contoh:
VAR A,B : INTEGER
X : ARRAY[1...10,1...10] OF REAL
3. Deklarasi TYPE
Digunakan untuk menyusun suatu bentuk tipe data baru sebagai hasil penggabungan dari tipe-
tipe yang sudah ada sebelumnya.
Contoh:
TYPE Matrik =ARRAY[1...10,1...10] OF REAL
Hari =(senin,selasa,rabu,kamis,jumat,sabtu,minggu);
VAR A,B : Matrik;
P :Hari;
4. Deklarasi LABEL
Menjelaskan adanya nomor-nomor LABEL yang digunakan di dalam program. Nomor label
gunanaya sebagai titik tujuan dari statemen GOTO.
Contoh:
LABEL 100;
-
BEGIN
-
IF A5 THEN GOTO 100;
-
100; END.
Program PASCAL boleh ditulis mulai kolom berapa saja dan diakhiri pada kolom berapa saja.
Akhir sebuah program Pascal ditandai dengan tanda baca titik (.) setelah END yang paling akhir.
Tanda titik koma (;) merupakan pemisah antar instruksi satu dengan lainnya.
Beberapa statement boleh ditulis menjadi satu baris dipisahkan dengan tanda baca titk koma (;)
Contoh : simpan := akhir; akhir := simpan + awal;
Baris komentar diletakkan diantara tanda (* dan *) atau diantara tanda { dan }
Contoh : Var rerata : real; (*nilai rata-rata*)
Nil1 : real; {nilai ujian}
(*HITUNG BBM*)
PROGRAM bbm(input,output);
VAR bl,hp,hs :REAL;
BEGIN
bl :=2;
hp :=bl*7500;
hs :=bl*4500;
writeln(bl,hp,hs);
END.
Dari contoh diatas dapat dilihat bahwa penulisan dengan cara identasi tampak lebih indah dan
lebih mudah dibaca. Walaupun kedua cara tersebut semua tidak salah.
INTEGER
Yaitu, bilangan yang tidak mempunyai desimal. Dengan demikian, tidak ada karakter lain (misalnya
koma) yang diperbolehkan. Jenis data ini terdiri atas integer positif, integer negatif dan nol.
Contoh:
25
8
95000000
Operator yang digunakan untuk tipe data integer:
Simbol Keterangan
+ Penjumlahan
- Pengurangan
* Perkalian
div Pembagian
mod Modulus (sisa pembagian)
Jangkauan integer :
REAL
Yaitu bilangan yang menggunakan tanda desimal. Bilangan tersebut berisi paling sedikit satu digit
sebelum dan sesudah titik desimal. Tidak boleh ada koma. Nilai dapat positif atau negatif. Bilangan Real
juga dapat dideklarasikan dalam bentuk eksponensial. Dengan pangkat dari bilangan dasar 10 ditandai
dengan notasi E.
Contoh:
123.45
12345. salah, titik desimal tidak boleh dibelakang
12E5
12E+5
-12.34
.1234 salah, titik desimal tidak boleh dimuka
0.035
Operator pada data Real sama seperti yang dipakai pada data Integer kecuali pada operator pembagian
menggunakan tanda /
Operator / dapat digunakan untuk data integer atau data real yang hasilnya berupa data REAL.
Contoh:
52.0/8.0 = 6.5
52/8 = 6.5
52 div 8 = 6 (terjadi pemotongan)
CHAR
Ialah data yang berisi sebuah karakter saja. Gabungan char dapat dibentuk menjadi string. Data char
digunakan untuk mendefinisikan data yang berupa himpunan karakter yang dikenal komputer.
Contoh:
‘C’ ‘M’ ‘,’ ‘9’
Ada 4 fungsi yang didefinisikan untuk memanipulasi tipe data CHAR:
1. Fungsi character, chr(I) dengan I bilangan bulat positif. Fungsi ini kebalikan dari fungsi ord. Nilai
yang diperoleh merupakan karakter ASCII yang dinyatakan dengan urutan ke I.
Contoh:
chr(67) adalah ‘C’
2. Fungsi ordinal, ord(Kar) dengan Kar adalah tipe data char. Nilai ord(Kar) adalah angka urutan
dalam kode ASCII yang digunakan untuk melambangka karakter tersebut.
Contoh:
chr(C) adalah 67
3. Fungsi predesesor, pred(Kar) dengan Kar adalah tipe data char. Nilai pred(Kar) adalah karakter
yang dalam urutannya mendahului Kar.
Contoh:
pred(‘B’) adalah ‘A’
4. Fungsi sucessor, succ(Kar) dengan Kar adalah tipe data char. Nilai succ(Kar) adalah karakter yang
dalam urutannya berada sesudah Kar.
Contoh:
succ(‘b’) adalah ‘c
BOOLEAN
Jenis data ini mempunyai 2 nilai saja yaitu TRUE dan FALSE. Tipe data ini tidak dapat dioperasikan ke
dalam bentuk aritmatika.
Operator untuk jenis data ini adalah :
1. Logical Operator, yaitu : NOT, AND dan OR
2. Relational Operator, yaitu : >, <, >=, <=, <> dan =
TERBILANG (ENUMERATED)
Adalah tipe data yang bisa didefinisikan sendiri oleh pengguna. Pada tipe data ini semua nilai disebut
satu-persatu (terbilang).
Bentuk umum deklarasinya adalah :
Contoh:
TYPE hari = (sen,sel,rab,kam,jum,sab,ming);
7 Modul Bimbingan Olimpiade Komputer SMA WH-2| Dini Widiasih S.T
[BAHASA PASCAL ] Tingkat Dasar (Teori)
Dalam tipe terbilang semua data harus terinci dan diletakkan di antara tanda kurung.
Fungsi standar yang dapat digunakan pada jenis data ini adalah : PRED, SUCC dan ORD
Contoh :
PRED (sel) = sen
SUCC (sen) = sel
ORD (sen) = 0
ORD (sel) = 1
SUB JANGKAUAN
Jenis data ini berupa range dari suatu kumpulan data yang mempunyai urutan..
Bentuk umum deklarasinya adalah :
Contoh :
1. TYPE jam_kuliah = 1 .. 10;
tanggal = 1 .. 31;
abjad = ‘A’ .. ‘Z’;
ARRAY (LARIK)
Array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe data sama, dimana
setiap elemen variabel mempunyai nilai indeks. Setiap elemen array menyimpan satu jenis data (yaitu:
variabel). Suatu array dinyatakan dengan type.
Contoh:
A = array [1…10] of integer;
1 2 3 4 5 6 7 8 9 10
Secara logika pendefinisian array di atas merupakan sekumpulan kotak , dimana tiap kotak mempunyai
nilai indeks integer 1, 2, 3, ...,9, 10 tiap elemen array ditandai dengan:
A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9], A[10]
RECORD (REKAMAN)
Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan
tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang
berbeda-beda tipenya (di banding array).
FILES (BERKAS)
Kumpulan sejumlah komponen yang bertipe data sama yang jumlahnya tidak menentu. Komponen
berkas tersebut adalah record. Banyak record dalam berkas bisa ditambah, dikurangi, diedit sesuai
program.
HIMPUNAN (SET)
Adalah suatu kumpulan item-item data yang memiliki tipe data yang sama. Anggota himpunan dapat
berupa integer, karakter atau data-data subjangkauan.
DATA TIPE PENUNJUK (POINTER)
Adalah suatu tipe data yang khas pada Pascal dan merupakan suatu tipe data terstruktur. Pointer
merupakan suatu variabel yang mencatat alamat variabel lain atau menunjuk pada variabel lain.
Variabel yang ditunjuk/dicatat oleh pointer dapat berupa berbagai tipe data yang lain misalnya, char,
integer, real, record dll.
Karena pointer hanya menunjuk pada alamat variabel lain maka pointer itu sendiri tidak berisi data
tetapi hanya berisi alamat dari variabel lain.
Contoh:
A^:=3; {pointer menunjuk integer}
M^:=1.5; {pointer ke real}
G^:=’M’; {pointer ke char}
OPERATOR
Tanda operasi (operator) di dalam bahasa Pascal dikelompokkan ke dalam 9 kategori, yaitu
1. Assignment operator.
2. Binary operator.
3. Unary operator.
4. Bitwise operator.
5. Relational operator.
6. Logical operator.
7. Address operator.
8. Set operator.
9. String operator.
Assignment operator
Assignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti oleh tanda
sama dengan (:=).
Contoh :
A:=B;
Luas:=panjang*lebar;
Binary operator
Digunakan untuk mengoperasikan dua buah operand. Operand dapat berbentuk konstanta
ataupun variabel. Operator ini digunakan untuk operasi aritmatika yang berhubungan dengan nilai tipe
data integer dan real.
Contoh :
15*5 hasilnya 75
20/3 hasilnya 6.6666666667E+00
20 div 3 hasilnya 6
20 mod 3 hasilnya 2
Unary operator
Operator ini hanya menggunakan sebuah operand saja. Dapat berupa unary minus dan unary
plus. Unary minus digunakan untuk menunjukkan nilai negatif, baik pada operang numerik real maupun
integer. Unaru plus adalah operator untuk memberai tanda plus.
Contoh :
-5 +7
-2.5 +2.5
Bitwise operator
Digunakan untuk operasi bit per bit pada nilai integer. Terdiri dari operator NOT, AND, OR, XOR,
Shl, Shr.
Contoh:
Desimal biner
25 10001
Operator NOT
Operator Not digunakan untuk pembalikan bitwise, yaitu nilai bit 1 menjadi bit 0 dan sebaliknya nilai bit
0 menjadi bit 1.
Contoh:
Not 0 hasilnya -1
Not 5 hasilnya -6
Not 18 hasilnya -19
Not -17 hasilnya 16
Operator AND
10 Modul Bimbingan Olimpiade Komputer SMA WH-2| Dini Widiasih S.T
[BAHASA PASCAL ] Tingkat Dasar (Teori)
Operator AND digunakan untuk membandingkan dua buah elemen, hasilnya akan benar bila keduanya
benar. Bila logika benar diberi simbol 1 dan logika salah diberi simbol 0, maka hubungan operator And
tampak pada tabel berikut.
A B A and B
1 1 1
1 0 0
0 1 0
0 0 0
Contoh:
12 and 23 hasilnya 4
Ket:
Operator AND akan bekerja dengan membandingkan bit demi bit dari elemen-elemen yang
dibandingkan sebagai berikut:
12 binarinya adalah 01100
23 binarinya adalah 10111
12 AND 23 bernilai 00100 adalah 4
Operator OR
Operator OR digunakan untuk membandingkan dua buah elemen, hasilnya akan benar bila salah satu
atau keduanya benar. Bila logika benar diberi simbol 1 dan logika salah diberi simbol 0, maka hubungan
operator OR tampak pada tabel berikut.
A B A or B
1 1 1
1 0 1
0 1 1
0 0 0
Contoh:
12 or 23 hasilnya 31
Ket:
12 binarinya adalah 01100
23 binarinya adalah 10111
12 OR 23 bernilai 11111 adalah 31
Operator Xor
Operator Xor digunakan untuk membandingkan dua buah elemen, hasilnya akan benar bila salah
satunya saja yang benar. Bila logika benar diberi simbol 1 dan logika salah diberi simbol 0, maka
hubungan operator Xor tampak pada tabel berikut :
A B A Xor B
1 1 0
1 0 1
0 1 1
0 0 0
Contoh:
12 Xor 23 hasilnya 27
Ket:
11 Modul Bimbingan Olimpiade Komputer SMA WH-2| Dini Widiasih S.T
[BAHASA PASCAL ] Tingkat Dasar (Teori)
Operator Shl
Operator Shl digunakan untuk menggeser sejumlah bit ke kiri dengan nilai bit 0 atau menambah jumlah
nol (0) ke kanan.
Contoh:
5 shl 2 hasilnya 20
Ket:
Nilai integer digeser sebanyak 2 bit ke kiri dengan nilai bit 0 didapatkan hasil 20 sebagai berikut.
5 nilai binarinya adalah 101
Digeser 2 bit ke kiri (ditambah nilai 0 sebanyal 2 buah) menjadi 10100=20
Operator Shr
Operator Shr digunakan untuk menggeser sejumlah bit ke kanan dengan nilai bit 0 atau membuang
angka paling kanan.
Contoh:
20 shr 2 hasilnya 5
Ket:
20 nilai binarinya adalah 10100. Digeser 2 bit ke kanan (dibuang 2 bit dari kanan) menjadi 101=5
Relational operator
Relational operator digunakan untuk membandingkan hubungan antara dua buah operand dan
akan didapatkan hasil tipe boolean, yaitu True atau False. Terdiri dari operator : =, <, >, <=, >=, <>
Contoh:
writeln(16 > 15); hasilnya True
writeln(0 >= 2); hasilnya False
writeln(a < A); hasilnya False
writeln(‘Hack’>‘Crack’); hasilnya True
Logical operator
Terdapat 4 buah logical operator yaitu : NOT, AND, OR dan XOR. Operator ini bekerja dengan
nilai-nilai logika, yaitu True dan False.
Set operator
Digunakan untuk operasi himpunan.
String operator
Digunakan untuk operasi string. Hanya ada sebuah operator string saja, yaitu operator + yang
digunakan untuk menggabungkan dua buah nilai string.
Contoh :
Nama1 := ‘Arief ‘;
Nama2 := ‘Kurniawan’;
Nama3 := Nama1 + Nama2;
Operasi ini digunakan untuk pengurutan tipe data. Operasi ordinal dan karakter. terdiri dari dua fungsi
dan dua prosedur.
Operasi Fungsi
Abs Menjadikan suatu nilai menjadi mutlak (absolut)
Sin Mencari harga sin suatu derajat sudut
Cos Mencari harga cos suatu derajat sudut
ArcTan Mencari harga suatu sudut dengan tan
Sqr Perpangkatan dua (kuadrat)
Sqrt Akar pangkat dua
Exp Mencari nilai dari suau eksponensial
Ln Mencari bilangan alam dari suatu nilai
Frac Mengambil nilai dibelakang koma
Int Mengambil nilai didepan koma
Round Membulatkan nilai sesuai dengan nilai dibelakang koma. Jika >0.5
maka ke atas, jika <0.5 maka ke bawah
Trunc Membulatkan nilai ke bawah
Chr Merubah numerik ordinal ke dalam suatu karakter (char) ASCII
Ord Merubah suatu karakter (ASCII) ke dalam suatu numeric
Fungsi chr dan ord sebenarnya bukan operasi aritmatika tetapi fungsi konversi dalam ASCII yaitu antara
simbol-nya dengan urutannya. ASCII mempunyai 255 karakter yang dapat dipergunakan dengan notasi #
(pagar) atau dengan fungsi chr dan ord.
EKSPRESI
Sebuah ekspresi merupakan kumpulan dari operand-operand (seperti : bilangan, konstanta, variabel dll)
yang bersama-sama dengan operator membentuk suatu bentuk aljabar dan menyatakan suatu nilai.
Contoh :
1. (b * b – 4 * a * c) / (2*a) / (2 * a) ekspresi numerik, jika a,b dan c adalah bilangan (variabel
bernilai numerik).
2. Upah < 1000.0 ekspresi boolean (“upah” adalah suatu variabel bernilai real).
MEMASUKKAN DATA
Prosedur untuk input standar ada tiga yaitu read, readln dan readkey. Prosedur input ini adalah
prosedur untuk membaca suatu masukan berupa variabel. Read, readln dan readkey pada operasi biasa
sama menghasilkan baris baru setelah masukannya. Akan tetapi pada operasi file akan berbeda fungsi.
Syntax-nya sebagai berikut :
read(var1,var2,..,varn);
readln(var1,var2, ..,varn);
readkey(var1,var2, ..,varn); Hanya untuk tipe char
Tipe
Keterangan
Variabel
Char Memasukkan sebuah karakter, bila lebih akan terpotong, yang dianggap hanya
yang pertama
String Memasukkan string maksimum sepanjang yang didefinisikan
Integer Memasukkan data numerik bulat mulai -32768 sampai dengan 32767
Word Memasukkan data numerik bulat mulai 0 sampai dengan 65535
Byte Memasukkan data numerik bulat mulai 0 sampai dengan 255
ShortInt Memasukkan data numerik bulat mulai -128 sampai dengan 127
LongInt Memasukkan data numerik bulat mulai -2147483648 sampai dengan 147483647
Real Memasukkan data numerik real maksimum 30 digit dapat tanpa titik desimal.
Boolean Data tipe ini tidak diijinkan
ReadLn digunakan untuk memasukkan data perbaris, artinya setelah tombol Enter ditekan,
maka akan ganti baris, sedangkan Read tidak ganti baris, masih dalam baris yang sama.
MENAMPILKAN HASIL
Prosedur untuk output pada layar monitor ada dua yaitu write dan writeln. Kedua prosedur ini
digunakan untuk menampilkan suatu output ke layar baik itu berupa variabel, teks/string ataupun
angka. Write menampilkan output tanpa menambah baris baru setelah menampilkan outputnya.
Sedangkan writeln menambah baris baru setelah menampilkan outputnya. Bentuknya sebagai berikut :
write(var1,var2,..,varn);
writeln(var1,var2, ..,varn);
Perbedaan Write dengan WriteLn adalah bahwa Write menampilkan hasil tanpa ganti baris dan
tampilan berikutnya akan disambung dalam baris yang sama. Sedang WriteLn digunakan untuk
menampilkan tampilan perbaris, akan ganti baris untuk tampilan berikutnya.
Contoh :
Var nama : string{15};
Begin nama := ‘TOKI’;
write(‘nama : ‘);
write(nama);
End.
Hasilnya :
Nama : TOKI
Contoh :
Var nama : string{15};
Begin nama := ‘TOKI”;
WriteLn(‘Nama : ‘);
WriteLn(Nama);
End.
Hasilnya :
Nama :
TOKI
TAMPILAN TERFORMAT
Walaupun bentuk standar dianggap cukup untuk menampilkan bentuk pada program yang sederhana,
tetapi untuk program-program aplikasi dibutuhkan bentuk format tertentu yang harus diatur kembali.
Parameter-parameter yang digunakan adalah sbb:
1. Parameter CH:N
Digunakan untuk membentuk format tampilan Char seleber n karakter dengan spasi kosong dimuka
sebanyak n-1.
Contoh:
Ket1:=’A’;
Ket2:=’B’;
Writeln(Ket1:5, Ket2:3);
Hasilnya : A B
----5--3 karakter
2. Parameter S:N
Parameter ini digunakan untuk membentuk format tampilan string dengan lebar n karakter.
Contoh:
Tulisan:=’Pascal’;
Writeln(‘Bahasa:’,Tulisan:10);
Hasilnya:
Bahasa: Pascal
---------- 10 karakter, 4 spasi kosong di muka
3. Parameter I:N
Parameter ini digunakan untuk membentuk format tampilan integer dengan lebar n digit.
Contoh:
N:=275;
Writeln(‘Jumlah Data=’,N:5);
Hasilnya :
Jumlah Data= 275
-----5 digit, 2 digit spasi kosong di muka
4. Tampilan R:N:M
Parameter ini digunakan untuk membentuk format tampilan nilai numerik Real dengan lebar n digit rata
sebelah kanan dan m digit angka di belakang koma tidak dalam bentuk eksponen.
Contoh:
Nilai:=123.456;
Writeln(‘Nilai Real=’,Nilai:0:0);
Writeln(‘Nilai Real=’,Nilai:3:0);
Writeln(‘Nilai Real=’,Nilai:3:2);
Writeln(‘Nilai Real=’,Nilai:7:1);
Hasilnya:
123
123
123.46
123.5