struktur bahasa pemrograman pascal


Bahasa pemrograman pascal dirancang oleh niklaus wirth pascal pada tahun 1970. Turbo pascal merupakan salah satu bahasa pemrograman pascal yang dikembangkan oleh Borland International. Bahasa pascal adalah bahasa pemrograman tigkat tinggi dan merupakan bahasa pemrograman terstruktur. Program tersusun atas komponen-komponen terpisah dalam bagian-bagian tertentu.

A.    Komponen Program

Sebagaimana telah disinggung pada bagian sebelumnya, program dalam bahasa pascal tersusun atas komponen-komponen program. Komponen-komponen didalam program tersebut adalah kepala program, bagian deklarasi dan bagian pernyataan atau program utama.

Sruktur dari komponen program pascal adalah sebagai berikut:




Program nama_program; {bagian kepala}
[ deklarasi unit ]
[ deklarasi konstanta ]
[ deklarasi tipe data ]                                     Bagian Deklarasi
[ deklarasi variabel ]
[ deklarasi subprogram ]

begin
     pernyataan 1;
                                                                   Bagian pernyatan / program utama
      pernyataan 2;
end;

Struktur komponen program diatas akan dijelaskan lebih detail pada bagian selanjutnya.
1.      Kepala Program
Kepala program didalam pascal umumnya berisi nama dari program yang bersangkutan. Kepala program diawali dengan kata “PROGRAM” yang diikuti dengan nama program. Sebagai contoh sebuah program untuk menghitung luas persegi panjang, kepala program dapat ditulis sebagai berikut:

PROGRAM Menghitung_luas_PP;

Nama program tidak terikat dengan apa harus ditulis tetapi ada beberapa hal yang harus diperhatikan dalam menuliskan nama program. Ketentuan-ketentuan dalam menuliskan nama program adalah sebagai berikut:
-          Nama program adalah satu kesatuan sehingga nama program tidak boleh lebih dari dua kata yang dipisahkan dengan spasi. Apabila nama program lebih dari dua kata maka sebaiknya digabungkan dengan menghilangkan spasi atau menggantinya dengan tanda underscore ( _ ).
-          Nama program tidak dapat diawali dengan angka.
-          Nama program tidak boleh mengandung karakter bukan huruf kecuali underscore ( _ ).

2.      Bagian Deklarasi
Seperti yang telah digambakan pada bagian struktur program pascal, bagian deklarasi terdiri atas deklarasi unit, deklarasi konstanta dan lain sebagainya.

  1. Deklarasi Unit

Perintah-perintah didalam pascal sebagian besar tersimpan dalam sebuah file unit. Sebagai contoh ketika didalam program utama terdapat perintah untuk membersihkan layar dengan statemen clrscr; maka definisi dari clrscr ini terdapat dalam sebuah file unit yang disebut crt. Pascal tidak akan memahami perintah tersebut apabila dibagian deklarasi unit tidak disebutkan file unit yang direferensi yaitu unit crt.

Berdasarkan ilustrasi diatas, deklarasi unit digunakan untuk menuliskan unit-unit file yang berisi definisi dari perintah-perintah yang dipakai didalam program utama. Deklarasi unit dilakukan dengan menuliskan statemen USES yang diikuti dengan nama unit yang disertakan. Contoh deklarasi unit adalah sebagai berikut:

      Uses Wincrt;

Deklarasi unit yang terdiri dari dua file unit atau lebih, penulisannya dilakukan setelah klausa USES diikuti dengan nama-nama file unit yang dipisahkan denga tanda koma (,) kemudian diakhiri dengan tanda titik koma (;). Contoh penulisan unit yang lebih dari satu file adalah sebagai berikut:

      Uses Wincrt,WinDos;

Daftar file unit yang dapat digunakan untuk menuliskan program terdapat pada tabel berikut ini.

Tabel 2. Daftar file uni didalam pascal
 
Nama Unit
Keterangan
Crt
Berisi rutin yang berkaitan dengan layar, keyboard, dan suara. Unit ini ada pada pascal untuk dos.
Wincrt
Hampir sama dengan unit crt tetapi digunakan untuk pascal for windows.
Dos
Unit yang berisi rutin yang digunakan untuk operasi terhadap system operasi dan penanganan dos.
WinDos
Hampir sama dengan unit dos tetapi digunakan dalam pascal for windows.
Printer
Berisi fasilitas untuk melakukan operasi yang berkaitan dengan pencetakan data melalui printer.
Graph
Berisi rutin yang digunakan untuk melakukan operasi berkaitan dengan grafis.
System
Berisi sejumlah pustaka yang digunakan saat eksekusi (runtime library). Rutime berisi hal-hal berikut:
-          penanganan input / output file
-          penanganan string
-          alokasi dinamis

Selain unit yang telah disebutkan diatas, masih terdapat beberapa unit yang lain.

  1. Deklarasi konstanta

Konstanta adalah sebuah nilai tetapan yang tidak berubah. Salah satu contoh yang dapat dijadikan sebagai sebuah konstanta adalah nilai phi untuk menghitung luas lingkaran. Konstanta yang akan digunakan didalam sebuah program harus terlebih dahulu didefinisikan pada bagian deklarasi konstanta. Cara mendeklarasikan sebuah konstanta, digunakan sebuah klausa ‘CONST’ dan diikuti dengan nama konstanta beserta dengan nilai tetapannya. Contoh sebuah deklarasi konstanta adalah sebagai berikut:

      Const phi=3.14;

Nama konstanta diberikan oleh pemrogram. Untuk mendeklarasikan konstanta yang lebih dari satu maka dapat dituliskan dengan menambahkan konstanta berikutnya setelah sebuah konstanta dideklarasikan dan diakhiri dengan tanda titik koma (;).

      Const  phi=3.14;
          Huruf:char=’A’;

Pada contoh diatas terdapat dua jenis konstanta. Konstanta yang pertama adalah konstanta yang nilai tetapannya tidak dapat diubah didalam program. Pada konstanta yang kedua, nilai tetapan awal adalah huruf ‘A’, nilai ini dapat diubah pada program utama.



  1. Deklarasi Tipe data

Terdapat dua kelompok tipe data yang dibedakan secara mendasar yaitu tipe data yang sudah ada di mengerti oleh bahasa pemograman pascal dan tipe data bentukan. Tipe data bentukan adalah tipe data yang didefinisikan oleh seorang pemrogram.

Untuk mendeklarasikan sebuah tipe data, digunakan klausa “TYPE” kemudian diikuti dengan nama tipe data bentukan serta tipe data asli. Contoh deklarasi sebuah tipe data adalah sebagai berikut:

Type status : Boolean;

Dalam contoh diatas, tipe data bentukan dengan nama status bertipe boolean. Tipe status tersebut dapat digunakan oleh variabel yang akan di deklarasikan pada bagian deklarasi variabel

  1. Deklarasi Variabel

Variabel adalah sebuah perubah yang dapat digunakan untuk menyimpan data. Variabel juga dapat diperlakukan sebagaimana data atau nilai yaitu dengan operasi-operasi aritmatika maupun operasi logika. Setiap variabel yang akan digunakan untuk menyimpan data, akan ditentukan tipenya. Sebuah veriabel yang bertipe data numeric tidak akan dapat digunakan untuk menyimpan data huruf. Beberapa tipe data yang sangat umum digunakan adalah integer, real, char, dan string.

Deklarasi sebuah variabel dilakukan dengan menuliskan klausa “VAR” kemudian diikuti dengan tipe data yang digunakan. Sebagai contoh sebuah variabel dengan nama jumlah dengan tipe bilangan bulat maka dapat dituliskan sebagai berikut:

Var jumlah:integer;

Tipe data pada variabel juga dapat menggunakan tipe data bentukan yang deklarasikan oleh pemrogram pada bagian deklarasi tipe data. Contoh:

Type status:Boolean;
Var  jumlah:integer;
       Chek:status;

  1. Deklarasi subprogram

Deklarasi subprogram adalah mendeklarasikan bagian program yang disebut dengan procedure dan function. Procedure dan function merupakan bagian dari program yang memiliki fungsi untuk menyelesaikan tugas tertentu yang menjadi bagian dari program. Secara detail procedure dan function akan dibahas dalam bab tersendiri.

Untuk mendeklarasikan procedure dapat digunakan klausa “PROCEDURE” kemudian diikuti dengan nama procedure sedangkan untuk mendeklarasikan function digunalan klausa “FUNCTION” kemudian diikuti dengan nama function. Setelah mendeklarasikan nama procedure ataupun nama function, berikutnya akan diikuti oleh bagian procedure atau function yang diawali dengan pernyataan BEGIN dan diakhiri pernyataan END;.

Contoh penulisan procedure dan function adalah sebagai berikut:

Procedure bacainput(nilai:integer);
Begin
   . . .
End;


Function jumlah(nilai1:integer; nilai2:integer):integer;
Begin
   . . .
End;


3.      Bagian Pernyataan / Program utama

Bagian program utama adalah bagian yang berisi langkah-langah dalam program. Statemen-statemen yang ada pada program utama adalah statemen untuk input pogram, proses, dan output program. Didalam program utama juga dapat dilakukan pemanggilan procedure dan function yang telah dedeklarasikan sebelumnya. Penulisan statemen pada program utama terletak diantara klausa “BEGIN” dan “END.”

4.      Komentar Program

Komentar program merupakan tulisan-tulisan yang berfungsi untuk memberikan keterangan pada program atau instruksi-instruksi yang ada di dalam program. Komentar program ini tidak akan diekseksi oleh program. Cara penulisan komentar adalah dengan memberikan tanda kurung kurawal buka dan tutup ({…})pada awal komentar dan akhir komentar.


B.     Perintah Input/Output

Perintah input digunakan untuk membaca masukan data pada sebuah program. Data dapat berasal dari sebuah file atau dimasukan langsung melalui keyboard. Perintah input ini dinyatakan dengan klausa “READ” atau “READLN”. Perintah READ adalah perintah membaca masukan data dari user setelah user menekan tombol enter. Sedangkan perintah READLN adalah perintah untuk membaca input data dari user setelah user menekan tombol enter pada keybord kemudian memindah posisi kursor pada baris baru.

Perintah yang lain, yaitu perintah untuk menampilkan suatu output pada layar monitor dengan menggunakan perintah “WRITE” dan “WRITELN”. Perintah WRITE digunakan untuk menampilkan output pada layar monitor, sedangkan perintah “WRITELN” sama dengan perintah write, hanya saja setelah menuliskan output ke layar monitor kemudian memindah kursor keposisi baris yang baru.

Untuk memberikan ilustrasi yang lebih detil mengenai perintah input dan perintah output, berikut ini diberikan contoh program untuk menampilkan pesan sederhana.

Program 2. Menampilkan pesan
Program pesan;
Uses wincrt;

Begin
Write(‘Selamat Datang’);
Write(‘Ini Program Pertama Saya’);
End.

Dari contoh program diatas, terdapat dua perintah write tanpa adanya perintah untuk memindah kusor pada baris baru sehingga walaupun perintah tersebut ditulis dalam dua baris maka output yang keluar akan ada pada satu baris.


Selamat DatangIni Program Pertama Saya


Hasil tampilan output tersebut akan berbeda apabila pada perintah pertama digunakan perintah writeln (‘Selamat Datang’);, maka output yang dihasilkan adalah penulisan kalimat yang pertama kemudian ganti baris dan dilanjutkan dengan kalimat yang kedua.


Selamat Datang
Ini Program Pertama Saya


Penulisan perintah output diatas, data yang ditulis adalah data berupa string atau text sehingga dalam penulisan write atau writeln diapit dengan tanda petik (‘). Dalam penulisan angka, tanda petik tidak digunakan.
Contoh:
Writeln(12345);
Write(321);

Hasil outputnya:
      12345
   321

Jika diperhatikan, dalam tampilan output diatas, data ditampilkan rata kiri. Untuk dapat menampilkan data rata kanan dan dalam format area jumlah karakter tertentu, penulisan write atau writeln dapat diikuti dengan ukuran jumlah karakter. Format penulisanya adalah write(data:n), dimana n adalah ukuran jumlah karakter.
Contoh:
Writeln(12345);
Writeln(12345:10);
Writeln(12345678:10);

Hasil outputnya:
      12345
        12345
     12345678

Untuk menulisakan bilangan desimal, perintah write dan writeln dapat diikuti dengan dua buah bilangan yang menyatakan banyaknya karakter dan banyaknya karakter dibelakang koma. Format penulisannya write(data:n:m) dimana n adalah banyaknya karakter dihitung dari kiri dan m adalah banyaknya angka setelah koma.
Contoh:
Writeln(12345678);
Writeln(1234.765:6:2);
Writeln(1234.765:5:1);


Hasil outputnya:
      12345678
    1234.76
    1234.7

Selain perintah output, perintah yang sama pentingnya adalah perintah input. Perintah input, sebagaimana yang telah dijelaskan sebelumnya yatu berupa klausa “READ” dan “READLN”. Perintah input digunakan untuk membaca sebuah masukan data dari user baik melalui keyboard maupun melalui sebuah file. Data masukan tersebut untuk selanjutkan akan diproses oleh program. Agar data yang dimasukkan dapat poses oleh program maka data tersebut harus ditampung terlebih dahulu pada suatu perubah yang disebut dengan variabel. Secara detail pengertian mengenai variabel dan bagaimana penggunaanya akan dibahas didalam bagian tersendiri.

Penggunaan perintah input didalam program sebaiknya diawali dengan perintah output yang menjelaskan suatu hal yang berkaitan dengan input tersebut. Dengan cara ini, program akan mencadi lebih interaktif. Untuk memberikan ilustrasi yang baik terhadap penggunaan perintah input dan output, berikut ini akan diberikan beberapa contoh program yang menyertakan kedua perintah tersebut.
Program 3. Menghitung luas persegi panjang 1
Program luas_pp1;
Uses wincrt;
Var panjang,lebar:integer;
     Luas:integer;
Begin
  Readln(panjang);
  Readln(lebar);
  Luas:=panjang * lebar;
  Writeln(luas);
End.

Hasil Output:
4
5
20

Pada program diatas, ketika dijalankan program akan langsung meminta input dengan tampilan layar kosong dan hanya terdapat kursor aktif. Pengguna yang menjalankan ini kemungkinan besar tidak akan mengerti dengan maksud program. Perbedaan terlihat jika program yang dibangun seperti pada contoh berikut ini.
Program 4. Menghitung luas persegi panjang 2.
Program luas_pp;
Uses wincrt;
Var panjang,lebar:integer;
     Luas:integer;
Begin
  Writeln(‘Progam Hitung Luas Persegi Panjang’);
  Write(‘Masukan Sisi Panjang =’); Readln(panjang);
  Write(‘Masukan Sisi Lebar=’); Readln(lebar);
  Luas:=panjang * lebar;
  Writeln(‘Luas Persegi Panjang=’,luas);
End.

Hasil Output:
Progam Hitung Luas Persegi Panjang
Masukan Sisi Panjang =4
Masukan Sisi Lebar=5
Luas Persegi Panjang=20

Pada program yang kedua, ketika dijalankan program akan menampilkan statemen yang pertama yaitu Progam Hitung Luas Persegi Panjang kemudian pada baris kedua akan muncul statemen Masukan Sisi Panjang= dan kursor aktif untuk menerima input data. Dengan demikian pengguna yang menjalankan program ini akan mengerti apa maksud dari program tersebut.

C.    Tipe Data

Tipe data adalah sebuah tipe atau jenis data yang mungkin untuk disimpan kedalam sebuah perubah atau variabel. Seperti yang telah dijelaskan pada bagian deklarasi variabel bahwa untuk mendeklarasikan sebuah variabel harus diikuti dengan tipe datanya. Sebagai contoh sebuah variabel dengan nama nilai dan bertipe data integer maka variabel tersebut hanya dapat menyimpan data yang berupa bilangan bulat seperti 1, 2, -3, dan lain sebagainya. Variabel tersebut tidak dapat digunakan untuk menyimpan data yang berupa bilangan desimal seperti 2.5, 4.25, dan lain sebagainya.

Didalam bahasa pemrograman pascal terdapat dua macam tipe data yatu tipe data dasar dan tipe data bentukan. Tipe data dasar merupakan tipe data yang telah disediakan dan dikenali oleh program sedangkan tipe data bentukan adalah tipe data yang dibuat dan didefinisikan oleh pemrogram.

1.      Tipe data Ordinal

Tipe data ordinal adalah sebuah tipe data yang memiliki nilai ordinalitas pada sebuah himpunan yang berurutan  (orderet set). Pada tipe data ordinal, nilai pertama memiliki nilai ordinalitas 0, berikutnya memiliki nilai ordinal 1 dan seterusnya. Khusus untuk tipe integer nilai ordinalitasnya adalah nilai integer itu sendiri.

Pada tipe data ordinalitas, setiap nilai memiliki nilai pendahulu kecuali pada nilai yang pertama dan memiliki nilai yang mengikutinya kecuali nilai terakhir. Standar fungsi yang digunakan untuk mengetahui nilai ordinalitas dari suatu data ordinal adalah Ord( ). Fungsi pred( ) digunakan untuk mengetahui nilai pendahulunya. Fungsi ini tidak dapat diterapkan pada nilai yang petama. Fungsi succ( ) digunkan untuk mengetahui nilai yang mengikutinya. Fungsi ini tidak dapat diterapkan pada nilai yang terakhir.

Pada tipe data ordinal terdapat beberpa jenis tipe data, yaitu tipe integer, tipe char, dan tipe Boolean.

a.       Tipe Integer

Tipe data integer adalah tipe data yang berupa bilangan bulat. Tipe data ini tidak memiliki nilai hasil pembagian yang berupa pecahan. Dalam tipe data integer terdapat beberapa jenis yang membedakan ukurannya. Kelompok tipe data tersebut dapat dilihat ada tabel berikut ini.



Tabel 3. Tipe data integer
Tipe
Rentang Nilai
Ukuran
Byte
0..125
8 bit
Shorint
-128 .. 127
8 bit
Word
O .. 65535
16 bit
Integer
-32768..32767
16 bit
longInt
-2147483648..2147483647
32 bit

Contoh:
Var a,b,c:integer;
Begin
A:=5;
B:= -10;
C:=A+B;
Write (C);
End;

b.      Tipe Char

Tipe char digunakan untuk mendefinisikan sebuah himpunan karakter yang ada pada kode ASCII. Untuk menuliskan sebuah karakter didalam program dengan menyertakan tanda petik (‘) awal dan akhir karakter tersebut. Sebagai contoh ‘A’, ‘B’, ‘C’, ‘0’, ‘1’, ‘2’ dan sebagainya. Tipe data char hanya terdiri dari satu karakter dan sama dengan tipe data string[1] (tipe data string akan dibahas pada bagian tersendiri).

Fungsi-fungsi yang telah dijelaskan sebelumnya dapat diterapkan pada tipe data ini. Fungsi ord( ) akan menghasilkan sebuah nilai ordnalitas dari sebuah karakter. Sebagai contoh Ord(‘A’) akan menghasilkan nilai 65. Fungsi pred() akan menghasilkan nilai sebelumnya. Sebagai contoh pred(‘B’) akan menghasilkan karakter ‘A’. Demikian juga dengan fungsi  succ( ) yang akan menghasilkan nilai sesudahnya. Sebagai contoh Succ(‘B’) akan menghasilkan karakter ‘C’.

Untuk menghasilkan sebuah nilai karakter dari suatu nilai ordinal juga dapat digunakan dengan sebuah fungsi chr( ). Sebagai contoh pada kode asci nilai 68 adalah sebuah karakter ‘D’, maka untuk memperoleh nilai ‘D’ dari suatu data integer dapat dilakukan dengan perintah Chr(68).

Sebagai ilustrasi yang lebh detail dapat dilihat pada contoh program berikut.
Program 5. Karakter ASCII
Program karakter;
Uses wincrt;
Var     nilai:integer;
        K:char;
Begin
      Writeln(‘Program Cetak Karakter dari Asci’);
      Write(‘Masukan nilai karakter ASCII [0-255]=’);
      Readln(nilai);
      K:=chr(nilai);
      Write(‘Karakter=’,K);
End. 

Hasil Output:
Program Cetak Karakter dari Asci
Masukan nilai karakter ASCII [0-255]=68
Karakter=D


c.       Tipe Boolean

Tipe data Boolean merupakan tipe data logika dengan dua buah nilai kebenaran yaitu true dan false. Nilai true memiliki nilai biner 1 dan nilai false memiliki nilai biner 0.
Contoh:
Var x:Boolean;
Begin
   X:=true;
   Writeln(x);
End.

Dalam contoh diatas, x adalah variabel dengan tipe Boolean. Variabel x tersebut kemudian diberikan nilai true. Tampilan dari pogram tersebut adalah menampilkan nilai true.



2.      Tipe data real

Tipe data real adalah tipe data bilangan yang mengandung nilai pecahan. Bilangan ini disbut dengan bilangan desimal. Penulisan data desimal tidak mengunakan tada koma (,) tetapi menggunakan tanda titik (.), sebagai contoh 2.25.

Sebagaimana tipe integer, didalam tipe data real juga terdapat beberapa jenis tipe data yang memiliki jangkauan yang berbeda. Kelompok tipe data tersebut dapat dilihat pada tabel berikut.

Tabel 4. Tipe data real
Tipe
Rentang nilai
Angka signifikan
Byte
Real
2.9e-39..1.7e38
11 – 12
6
Single
1.5e-45..3.4e38
7 -8
4
Double
5.0e-324..1.7e308
15 – 16
8
Extended
3.4e-4932..1.1e4932
19 -20
10
Comp
-2E63+ 1 .. 2E63-1
19 -20
8

Pada rentang nilai dituliskan dalam bentuk notasi denga huruf e. notasi ini memiliki arti perkalian dengan pangkat berbasis 10. Sebagai contoh 2.3E2, bilangan ini memiliki nilai 2.3 X 102 yaitu 230.

Program 6. Program Pembagian
Program pembagian;
Uses wincrt;
Var a,b:integer;
       C:real;
Begin
     Writeln(‘Program Operasi Pembagian’);
     Write(‘Masukan Nilai A=’);
     Readln(a);
     Write(‘Masukan Nilai B=’);
     Readln(b);
     C:=A/B;
     Writeln(‘Hasil Pembagian=’,C);
End.


Hasil Output:
Program Operasi Pembagian
Masukan Nilai A=20
Masukan Nilai B=3
Hasil Pembagian= 6.66666666666667E+0000

Pada program diatas, user pada awalnya akan diminta untuk memasukan data bilangan bulat yang disimpan dalam variabel A. Berikutnya user akan diminta untuk memasukan sebuah bilangan bulat yang akan disimpan dalam variabel B. Program akan melakukan pembagian yang hasilnya akan disimpan dalam variabel C yang bertipe real. Terakhir program akan menampilkan output yang ada pada variabel C dengan mengguanakan notasi perkalian pangkat 10 yaitu denan huru E. Untuk mengubah tampilan ini dapat disertakan format bit signifikan. Pernyataan terakhir dapat diganti dengan perintah:

     Writeln(‘Hasil Pembagian=’,C:8:2);


3.      Tipe data terstruktur

Tipe data terstruktur adalah tipe data yang dapat  menyimpan lebih dari satu nilai. Masing-masing nilai tersebut disebut sebagai elemen yang memiliki tipe tersendiri. Struktur pembentukan tipe data ini akan menentukan karakteristik penyimpanan dan pengaksesan data. Didalam tipe data terstruktur terdapat beberapa jenis tipe data yaitu tipe string, tipe himpunan (set), tipe larik (array), tipe rekaman (record) dan tipe berkas (file). Pembahasan pada bab ini hanya akan dilakukan pada dua buah tipe data yaitu tipe data string dan tipe data himpunan. Ketiga tipe data yang lain, yaitu tipe larik, tipe rekaman, dan tipe berkas akan dibahas dalam bab tersendiri.

a.       Tipe String

Tipe data string adalah tipe data yang berisi kumpulan karakter. Untuk mendefinisikan tipe data string dapat diikuti dengan jumlah karakter yang dispesifikasikan. Jika jumlah karakter yang boleh disimpan tidak didefinisikan maka data yang disimpan tidak dibatasi. Untuk menspesifikasikan jumlah karakter yang dapat disimpan dalam sebuah variabel dapat dituliskan dengan tanda kurung siku ( [ ] ).
Contoh:
Var S:string;
    A:string[10];

Jika sebuah varabel dideklarasi dengan tipe data string dan dispesifikasikan jumlah karakter yang dapat disimpan maka variabel tersebut hanya mampu menyimpan sejumlah karakter tersebut meskipun diberikan sebuah input yang jumlah karakternya lebih banyak. Pada contoh diatas, variablel hanya mampu menyimpan 10 karakter. Apabila variabel tersebut diberi input ‘ABCDEFGHIJKLMN’ maka data yang akan tersimpan hanya ‘ABCDEFGHIJ’ sesuai dengan jumlah yang telah ditentukan.
Contoh:
Program 7. Menampilkan salam

Program salam;
Uses wincrt;
Var nama:string[20];
Begin
   Writeln(‘Masukan nama Anda=’);
Readln(nama);
Writeln(‘Selamat Datang ’,Nama);
End.

Hasil Output program:
Masukan nama Anda=
Andi
Selamat Datang Andi

b.      Tipe Himpunan

Himpunan adalah kumpulan data yang memiliki tipe yang sama. Sebagaimana pengertian himpunan di dalam matematika, himpunan adalah kumpulan objek yang memiliki karakteristik yang sama. Misalnya himpunan bilangan bulat 0 sampai 10 maka himpunan tersebut adalah kumpulan nilai yang memiliki tipe yang sama yaitu 0,1,2,3,4,5,6,7,8,9, dan 10.

Didalam bahasa pemrograman pascal, himpunan ditulis dengan tanda kurung siku ( [ ] ).  Himpunan bilangan bulat positif dari 0 sampai dengan 10 dapat dinyatakan dengan [0,1,2,3,4,5,6,7,8,9,10].  Urutan dalam himpunan tidak mempengaruhi karakteristiknya. Dua buah himpunan dikatakan sama apabila masing-masing himpunan memiliki anggota yang sama. Himpunan [0,1,2,3,4,5,6,7,8,9,10] sama dengan himpunan [10,9,8,7,6,5,4,3,2,1,0].

Untuk mendeklarasikan sebuah tipe data himpunan digunakan perintah dengan klausa “SET”.
Contoh:
Var X : set of  1..10;
    Karakter: set of  char

Untk mengetahui apakah suatu data merupakan anggota dari suatu himpunan dapat digunakan perintah In. Pada program dibawah ini akan memberikan gambaran yang lebih jelas.
           
            Program 8. Program Himpunan
Program himpunan;
Uses wincrt;
Var x:Boolean;
       Y:integer;
Begin
      Y:=5;
      X:=y in [1..10];
      Writeln(x);
End.

Dari contoh program diatas, nilai output dari program tersebut adalah true. Variabel X bernilai true karena varibael y yang berisi angka 5 adalah bagian dari bilangan dari 1 sampai 10.




4.      Tipe data pointer

Tipe data pointer adalah tipe data terstruktur yang dipakai pada deklarasi variabel sehingga variabel tersebut bersifat dinamis. Sebagai ilustrasi, sebuah variabel dideklarasi dengan tipe string[20] maka variabel tersebut berukuran tetap yaitu 20. Pada saat program berjalan ukuran variabel tersebut tidak akan berubah. Dengan menggunakan sebuah tipe data pointer sebagai contoh pointer char maka variabel tersebut ukuran dapat berubah sesuai dengan kebutuhan program.

Deklarasi sebuah tipe data pointer digunakan sebuah perintah dengan menuliskan tanda topi (^) kemudian diikuti dengan jenis tipe data dasar.
Contoh:
X : ^char;

Pembahasan mengenai tipe data pointer secara detail akan dijelaskan pada bab tersendiri.


5.      Tipe data bentukan

Tipe data bentukan adalah sebuah tipe data yang didefinsikan oleh pemrogram. Tipe data bentukan ini terdapat dua jenis taitu tipe terbilang (enumerated) dan tipe subjangkauan.

a.       Tipe terbilang (enumerated)
Tipe terbilang adalah sebuah tipe data yang didefinisikan satu persatu. Sebagai contoh untuk mendeklarasikan sebuah tipe data hari maka semua nama hari harus disebutkan satu persatu yaitu senin, selasa, rabu, kamis, jumat, sabtu, dan minggu. Bentuk umum deklarasinya adalah pengenal = <tipe>. Pendeklarasian tipe data ini ada pada bagian deklarasi tipe sebagaimana yang telah dijelaskan pada bagian sebelumya.
            Contoh:
Type
   Hari=(minggu,senin,selasa,rabu,kamis,jumat,sabtu);

Untuk mendeklarasikan sebuah variabel yang bertipe hari dideklarasikan pada bagian deklarasi variabel.
Contoh:
Var
   NamaHari:hari;

Variabel NamaHari yang telah dideklarasikan dengan tipe hari hanya dapat menyimpan data yang berupa nama-nama hari yang telah disebutkan pada bagian deklarasi tipe data.
Contoh:
NamaHari:=senin;

b.      Tipe subjangkauan

Tipe subjangkauan adalah sebuah tipe yang menunjukkan adanya rentang nilai. Tipe subjangkauan dapat diambil dari sembarang nilai ordinal. Bentuk umum untuk menyatakan notasi ini adalah dengan sintak:
Type
      Pengenal1=konstanta1 .. konstanta 2
Dimana:
Pengenal= nama tipe subjangkauan
      Konstanta1=nilai yan menyatakan batas awal jangkauan.
      Konstanta2= nilai yang menyetakan batas akhir jangkauan.

Contoh:
Type
   Nilai=1..100
   HurufBesar=’A’..’Z’

Sebuah variabel yang dideklarasikan sebagai tipe data maka variabel tersebut hanya dapat menerima data yang ada didalam rentang nilai tersebut. Program berkut ini adalah program yang menyajikan tipe data sub jangkuan.


Program 9. Nilai mahasiswa1.
Program nilai_mhs1;
Uses wincrt;
Type
nilai=1 .. 100;
var
      nilaimhs:nilai;
begin
writeln(‘Program Nilai Mahasiswa’);
write(‘Masukkan Nilai Mahasiswa=’); readln(nilaimhs);
writeln(‘Nilai mahasiswa=’,nilaimhs);
end.

Hasil Output Program:
Program Nilai Mahasiswa
Masukkan Nilai Mahasiswa=98
Nilai mahasiswa=98

Pada program diatas, nilai adalah sebuah tipe subjangkauan dengan batas awal 1 dan batas akhir 100. variabel nilaimhs yang dideklarasikan dengan tipe nilai maka variabel tersebut hanya dapat menerima masukan data yang ada diantara seubjangkauan tersebut seperti 25, 40, 80 dan lain sebagainya. Variabel tersebut tidak dapat menerima nilai diluar subjangkauan tersebu seperti 125, -5,110 dan lain sebagainya.


D.    Operator

Operator adalah suatu simbol yang digunakan untuk melakukan operasi terhadap data. Operasi yang dimaksud adalah memanipulasi dan mengolah data. Data dengan tipe tertentu dapat dilakukan operasi dengan operator tertentu.

1.      Operator Penugasan
Operator penugasan adalah operator yang digunakan untuk memberikan nilai pada suatu perubah. Sebagai contoh sebuah variabel dideklrasikan dengan tipe data integer. Untuk memberikan sebuah nilai pada variabel tersebut digunakan operator penugasan. Didalam bahasa pascal operator penugasan ini dituliskan dengan simbol titik dua dan sama dengan (:=);
Contoh:
Nilai:=100;
A:=10;
B:=25;
C:=A*B;

Dari contoh diatas dapat dilihat bahwa untuk memberikan nilai 100 pada variable nilai digunakan operator penugasan yaitu titik dua dan sama dengan (:=). Demikian juga pemberian nilai pada variabel-variabel yang lain.

2.      Operator Aritmatika

Operator aritmatika adalah operator yang digunakan untuk mengoperasikan data-data numerik. Operasi yang dilakukan adalah operasi aritmatika seperti penjumlahan, perkalian, pembagian dan lain sebagainya.

Operator aritmatika memeliki beberapa simbol dengan fungsi yang berbeda-beda. Masing-masing simbol juga memiliki prioritas yang berbeda jika didalam suatu notasi terdapat lebih dari satu operator aritmatika. Simbol-simbol operator arimatika dan hierarki urutan prioritasnya dapat dilihat pada tabel berikut.

Tabel  5. Operator Aritmatika
Operator
Operasi
-
Tanda negative
* , /
Pekalian dan pembagian
Div
Pembagian integer
Mod
Modulo (sisa hasil bagi)
+ , -
Penambahan dan pengurangan

Keterangan:
-          Operasi tanda negatif akan memberikan nilai negasi dari nilai yang disebutkan.
Contoh:
-5 + 10 = 5
-          Operasi div akan menghasilkan nilai pembagian dalam bilangan bulat tanpa nilai pecahan.
Contoh:
8 div 3 = 2
4 div 5 = 0
15 div 3 = 5
16 div 3 = 5
-          Operasi mod akan menghasilkan nilai sisa hasil bagi.
Contoh:
5 mod 2 = 1
3 mod 5 = 3
11 mod 5 = 1

Didalam proses operasi yang dilakukan dengan operator aritmatika, prioritas yang lebih tinggi akan dilaksananakan terlebih dahulu.
Contoh:
4 + 2 * 8
Proses operasi tersebut akan dilakukan dengan perkalian terlebih dahulu kemudian dilakukan proses penjumlahan. Hasil dari operasi tersebut adalah:
= 4 + 16
= 20

Untuk memberikan prioritas operasi yang lebih tinggi terhadap operator yang berprioritas rendah agar dikerjakan lebih dulu maka perlu adanya notasi penulisan dengan tanda kurung buka dan kurung tutup. Misalnya dari notasi yang telah dicontohkan diatas apabila proses penjumlahan ingin dilakukan lebih dulu dari pada proses perkalian maka notasi tersebut dapat diubah menjadi (4+2)*8 sehingga hasil yang diperoleh yaitu 8 * 8 = 64.

Operator aritmatika tersebut secara keseluruhan digunakan untuk melakukan proses perhitungan data-data numerik. Hanya ada satu operastor yang digunakan untuk melakukan operasi terhadap jenis data yang lain yaitu untuk tipe string. Operator tersebut adalah penjumlahan (+) yang dapat digunakan untuk menggabungkan dua buah string.

Contoh:
NamaDepan:=’AGUS’
NamaBelakang:=’SETYIAWAN’
NamaLengkap :=NamaDepan + NamaBelakang;


3.      Operator Logika

Operator logika adalah simbol-simbol yang digunakan untuk melakukan ekspresi terhadap data-data logika.  Proses operasi tersebut akan menghasilkan salah sat dari dua jenis nilai kebenaran yatu TRUE dan FLASE. Simbol-simbol operator logika tersebut dapat dilihat pada tabel yang ada dibawah ini.

Tabel 6. Operator Logika
Operator
Keterangan
Not
Tidak
And
Dan
Or
Atau
Xor
Exclusive Or

Sebagaimana operator matematika, operator logika  juga memiliki urutan prioritas dalam melakukan prosesnya apabila dalam suatu pernyataan terdapat lebih dari satu operator.

a.       Operator Not
Operasi not merupakan operasi unary yang digunakan untuk sebuah nilai Boolean tunggal dan menghasilkan nilai kebalikanya (negasi). Jika sebuah ekspresi bernilai true kemudian diberikan operator not memakai akan menghasilkan nilai baru yaitu false.

Tabel 7. Nilai kebenaran Operator NOT
Ekspresi
Hasil Operasi  NOT
True
False
False
True

Contoh:
A:=true;
B:=Not A;
Hasil yang ada pada variable B adalah FALSE.

b.      Operator And
Operator and dilakukan untuk dua buah ekspresi Boolean. Operator and akan menghasilkan nilai true jika kedua ekspresi tersebut memiliki nilai true. Tabel berikut menunjukan hasil operasi and pada dua buah ekspresi Boolean.

Tabel 8. Nilai kebenaran Operator And
Ekspresi1
Ekspresi2
Ekspresi 1 And Ekspresi2
False
False
False
False
True
False
True
False
False
True
True
True

Contoh:
A:=true;
B:=false;
C:=A and B

Variabel c mengandung nilai hasil operasi and yaitu false.

c.       Operator Or
Operator Or dilakukan untuk dua buah ekspresi sebagimana operator and. Operator or akan manghasilkan nilai true apabila salah satu ekspresi bernilai true. Operator or akan menghasilkan nilai false apabila kedua ekspresi bernilai false. Tabel berikut adalah tabel kebenaran yang menunjukan hasil operasi or.

Tabel 9. Nilai kebenaran Operator Or
Ekspresi1
Ekspresi2
Ekspresi 1 Or Ekspresi2
False
False
False
False
True
True
True
False
True
True
True
True

Contoh:
A:=true;
B:=false;
C:=A or B
Variabel c mengandung nilai hasil operasi or yaitu true.

d.      Operator Xor (Exclusive Or)
Sebagaimana operator and dan operator Or, operator Xor juga merupakan operator yang digunakan untuk dua buah ekspresi. Operator Xor akan menghasilkan nilai true jka kedua ekpresi memiliki nilai yang berbeda. Operator xor akan menghasilkan nilai false jika kedua espresi bernilai sama.

Tabel 10. Nilai kebenaran Operator XOr
Ekspresi1
Ekspresi2
Ekspresi 1 XOr Ekspresi2
False
False
False
False
True
True
True
False
True
True
True
False

Contoh:
A:=true;
B:=true;
C:=A Xor B

Variabel c mengandung nilai hasil operasi xor yaitu false.

4.      Operator Relasi / Perbandingan

Operator relasi/perbandingan digunakan untuk membandingkan suatu data (ekspresi) dengan data (ekspresi) yang lain dan menghasilkan nilai logika (benar atau salah). Dua buah data atau ekspresi yang dibandingkan mempunyai tipe data yang sama. Tabel berikut adalah daftar simbol-simbol operator perbandingan.

Tabel 11. Operator Perbandingan
Operator
Keterangan
=
Sama dengan
<> 
Tidak sama dengan
Lebih kecil
Lebih besar
<=
Lebih kecil atau sama dengan
>=
Lebih besar atau sama dengan

Operasi perbandingan akan mengasilkan nilai kebenaran true jika pernyataannya bernilai benar dan akan menghasilkan nilai false apabila pernyataannya salah.
Contoh:
Tes = 5 > 4       ‘variabel tes berisi true’

A:=true;
B:=false;
C:=A=B      ‘Variabel C berisi false karena A tidak sama dengan B’


5.      Operator Himpunan

Operator hmpunan adalah operator yang digunakan untuk melakukan operasi terhadap data-data yang bertipe himpunan. Pada tipe data himpunan dapat diberlakukan beberapa operator yaitu interseksi, union, dan selisih. Selain operator tersebut, pada tipe data himpunan juga dapat diberlakukan operator perbandingan.

Untuk memberikan gambaram yang jelas akan diberikan dua buah data himpunan yaitu:
  A:= [1,2,3,4,5,6]
  B:= [5,6,7,8,9,10]

Operator interseksi dinyatakan dengan symbol bintang (*). Operator ini akan menghasilkan himpunan anggota yang ada pada kedua himpunan tersebut. A*B akan menghasilkan himpunan anggota interseksi yaitu [5,6].

Operator union dinyatakan dengan symbol plus (+). Operator ini akan menghasilkan himpunan yang anggotaya adalah gabungan dari kedua himpunan. A + B akan menghasilkan himpunan yang anggotanya adalah gabungan dari himpunan A dan himpunan B yaitu [1,2,3,4,5,6,7,8,9,10]

Operator selisih dinyatakan dengan symbol minus (-). Operator ini akan menghasilkan himpunan yang anggotanya merupakan anggota himpunan pertama tetapi bukan anggota himpunan kedua. A – B akan menghasilkan himpunan yang anggotanya merupakan anggota himpunan A dan bukan anggota himpunan B yaitu [1,2,3,4]. B – A akan menghasilkan himpunan [7,8,9,10].

Untuk melakukan operasi perbandingan, pada tipe data himpunan dapat diberlakukan operator perbandingan yang telah dijelaskan pada bagian sebelumnya. Selain operator tersebut masih terdapat satu operator perbandingan yang ada pada data himpunan. Operator tersebut adalah operator in. Penggunaan operator in telah dijelaskan pada bagian tipe data himpunan.



Latihan
1.      Buatlah program yang untuk menampilkan output seperti dibawah ini dengan menggunakan  empat buah perintah writeln dan dua buah perintah write.
Program Selamat Datang
Selamat Datang
Hari ini saya sedang belajar pascal
Semoga berhasil

Pembahasan
Perintah writeln digunakan untuk menampilkan data kemudian kursor akan berpindah pada baris baru sedangkan perintah write untuk menampilkan data tanpa memindah kursor pada baris baru. Dari tampilan diatas terlihat ada empat baris yang artinya terdapat empat kali ganti baris. Pada setiap penampilan data tiap baris dapat dipisah menjad dua bagian. Bagian pertama diguakan perintah write sehingga kursor tidak akan berpindah kebaris baru kemudian bagian kedua digunakan perintah writeln.

Program lat1;
Uses wincrt;
Begin
 Writeln(‘Program Selamat Datang’);
 Write(‘Selamat ‘);
 Writeln(‘Datang’);
 Write(‘Hari ini saya sedang ‘);
 Writeln(‘belajar pascal’);
 Writeln(‘Semoga berhasil’);
End.

2.      Buatlah program untuk melakukan penjumlah dan perkalian dua buah bilangan.

Pembahasan
Program untuk melakukan penjumlah dan perkalian dua buah bilangan, ini berarti program akan melakukan proses penjulahan dan proses perkalian terhadap dua buah bilangan. Kedua bilangan tersebut merupakan data input dan kedua hasil proses yaitu penjumlahan dan perkalian adalah informasi yang akan ditampilkan (output).

Program lat2.
Uses wincrt;
Var bil1,bil2:integer;
    Jumlah,kali:integer;
Begin
  Writeln(‘Program penjumlahan dan perkalian’);
  Write(‘Bilangan 1=’);
  Readln(bil1);
  Write(‘Bilangan 2=’);
  Readln(bil2);
  Jumlah:=bil1 + bil2;
  Kali:=bil1*bil2;
  Writeln(‘Hasil Penjumlahan=’,jumlah);
  Writeln(‘Hasil Perkalian =’,kali);
End.

3.      Jelaskan hasil dari operasi berikut:
A:=4;
B:=10;
C:= 4 – A * 2 + B MOD 3
D:= C + 8 DIV 4 * 2
E:= (C + 8) DIV 4 * 2

Pembahasan
A memiliki nilai 4 dan B memiliki nilai 10.
Notasi C:=4 – A * 2 + B MOD 3, sesuai dengan aturan prioritas maka operasi yang pertama kali dilaksanakan adalah operasi perkalian yaitu A * 2, urutan berikutnya adalah operasi modulasu yaitu B Mod 3 dan urutan yang teakhir adalah penjumlahan dan pengurangan sehingga nilai yang diperoleh adalah:
      = 4 – 8 + B MOD 3
      = 4 – 8 + 1
      = -3
Notasi D:= C + 8 DIV 4 * 2, sesuai dengan aturan prioritas operator aritmatika maka operasi yang dilakukan pertama adalah pembagian DIV. Selanjutnya dilakukan operasi perkalian yaitu 4 * 2 dan terkahir adalah operasi penjumlahan. Proses operasi terhadap notasi tersebut adalah sebagai berikut:
D:= C + 8 DIV 4 * 2
   = -3 + 2 * 2
   = -3 + 4
   = 1
Notasi E:= (C + 8) DIV 4 * 2, sesuai dengan aturan prioritas maka operasi yang dilakukan pertama adalah yang berada didalam tanda kurung yaitu (C + 8) kemudian perasi pembagian dan operasi perkalian. Langkah-langkah proses operasi tersebut adalah sebagai berikut:
   E:= (C + 8) DIV 4 * 2
      = (-3 + 8) DIV 4 * 2
      = 5 DIV 4 * 2
      = 1 * 2
      = 2

4.      Jelaskan hasil dari operasi berikut ini:
X:=true;
Y:=false;
P:=not Y and X or Y
Q:=Not Y or X and  Y
R:=not Y xor X or Y
Q:= (Y or X) and X

Pembahasan
Variabel X memiliki nilai true dan varabel Y memiliki nilai false.
Notasi P:=not Y and X or Y, berdasarkan urutan prioritas maka yang pertama dikerjakan adalah operasi not kemudian operasi and dan terakhir operasi or.
P:=not Y and X or Y
   = not False and X or Y
   = True and True or Y
   = True or False
  = True
Notasi Q:=Not Y or X and  Y, berdasarkan urutan prioritas maka yang pertama dikerjakan adalah operasi not kemudian operasi and dan terakhir operasi or
      Q:=Not Y or X and  Y
          = not false or X and Y
          = true or true and false
          = true or false
          = true
Notasi R:=not Y xor X or Y, berdasarkan urutan prioritas maka yang pertama dikerjakan adalah operasi not kemudian operasi or dan terakhir operasi xor.
R:=not Y xor X or Y
         = not false xor true or false
         = true xor true or false
         = true xor true
         = false
Notasi Q:= (Y or X) and X, berdasarkan urutan prioritas maka yang pertama dilaksanakan adalah operasi yang berada didalam tanda kurung yaitu or kemudian operasi diluar kurung tanda kurung yaitu and.
      Q:= (Y or X) and X
          = (false or true) and true
          = true and true
          = true          

Soal
1.      Buatlah program sederhana untuk melakukan perhitungan aritmatika dengan dua buah input dan enam buah output yaitu hasil penjumlahan, hasil pengurangan, hasil perkalian, hasil pembagian, hasil pembagian integer, dan sisa hasil bagi
2.      Buatlah program untuk melakukan operasi berikut kemudian analisa hasilnya.
X1:=4;
X2:=10;
X3:=8;
A := 2 * X1 + 4 – 2 * X2
B:= 8 + A DIV 4 * 2
C:= (B + 8) DIV 4 * 2
3.      Buatlah Program untuk melakukan operasi berikut ini kemudian analisa hasilnya.
X:=true;
Y:=false;
P:=not Y and (X xor Y)
Q:=Not Y or X and  P
R:=not P xor Q or Y
S:= (Y or X) and X or Q