Senin, 23 September 2013

Apa itu PASCAL??? dan apa saja bagian-bagiannya???


PASCAL
Merupakan salah satu Bahasa Pemrograman. Sejarah perkembangan Pascal dimulai pada tahun 1960, yaitu ketika bahasa pemrograman ALGOL 60 digunakan sebagai algorithmic language yang digunakan untuk memecahkan masalah sehari-hari dengan menggunakan komputer. Nama Pascal sendiri diambil dari nama seorang ahli matematika dan ilmu pengetahuan bangsa Perancis, yaitu Blaise Pascal (1623-1662). Niklaus Wirth dari Sekolah Teknik Tinggi Zurich - Swiss, menjadi terkenal sebagai perancang bahasa Pascal, compiler pertama yang dilaksanakan pada tahun 1970, kemudian direvisi pada tahun 1973 bersama K. Jensen. Kemudian pada tahun 1983 bahasa Pascal dapat dibakukan secara resmi dengan adanya Pascal Standard dari ISO.

Keunggulan bahasa Pascal adalah keteraturan dalam pembuatan program dan kelengkapan struktur data.

Contoh program dalam bahasa Pascal:
PROGRAM CariMin;
{Mencari Bilangan terkecil dari dua buah bilangan}
VAR
x,y,min:integer;
BEGIN
WRITE(‘Bilangan pertama : ‘);READLN(x);
WRITE(‘Bilangan kedua : ‘);READLN(y);
IF x>y THEN
Min:=y
ELSE
Min:=x;
WRITE(‘Bilangan terkecil : ‘,min);
END.


Sebelum membahas dengan detail tentang bahasa Pascal (dalam hal ini adalah compiler Free Pascal), perlu diketahui terlebih dulu struktur program dalam bahasa Pascal. Bentuk ini harus dipenuhi agar program dapat dikompilasi oleh compiler.

Struktur Bahasa Pascal
Bentuk umum bahasa Pascal adalah sebagai berikut:
PROGRAM nama(file1,file2,file3);
CONST deklarasikonstanta;
VAR deklarasivariabel;
TYPE deklarasitype;
LABEL deklarasilabel;
FUNCTION deklarasifungsi;
PROCEDURE deklarasiprosedur;
BEGIN
statement1;
statement2;
statement3;
...
END.


Program Pascal terdiri dari 3 bagian pokok, yaitu:

1. Nama Program
Nama program adalah hanya sekedar menuliskan judul dari program, tidak mempunyai arti apa-apa
dalam proses kompilasi. Judul program dapat diikuti oleh file-file data yang berhubungan dengan
program tersebut.
Pada Turbo Pascal, dapat ditambahkan klausa uses yang menunjukkan bahwa program menggunakan unit.

2. Deklarasi
Bagian ini berisi deklarasi pengenal maupun data yang dipergunakan di dalam program. Walaupun
tampaknya membuang-buang waktu dan tidak berguna, namun sesungguhnya merupakan bagian terpenting dari rangka penyusunan sebuah program yang terstruktur. Struktur program sangat penting dalam pembuatan program yang panjang, karena bagian ini akan mengingatkan programmer tentang variabel, tipe data, konstanta, fungsi, prosedur yang digunakan dalam program. Selain itu, orang lain yang membaca program akan lebih dapat mengerti jalannya program dengan deklarasi ini.

3. Program utama
Program utama berisi statement.

Deklarasi program
Bagian deklarasi ada 6 macam, yaitu:

1. Deklarasi CONST
Deklarasi ini gunanya untuk mendeklarasikan nama konstanta tertentu. Nama konstanta adalah
merupakan suatu pengenal (identifier) yang nilainya tidak dapat berubah dalam program. Contoh:
CONST
Pi=3.14
Titikkoma=’;’

2. Deklarasi VAR
Deklarasi ini gunanya adalah untuk menyatakan variabel yang digunakan dalam program. Variabel
adalah suatu pengenal (identifier) yang nilainya dapat berubah. Contoh:
VAR
Data:array[1..100] of byte;
Umur: 0..100;

3. Deklarasi TYPE
Deklarasi type dipergunakan untuk menyusun suatu bentuk tipe data yang baru sebagai hasil
penggabungan dari tipe-tipe yang sudah ada. Contoh:
TYPE
Data=array[1..100] of byte;
Hari=(Senin, Selasa, Rabu, Kamis, Jumat, Sabtu);
VAR
Nilai:Data;
HariKerja:Senin..Jumat;

4. Deklarasi LABEL
Deklarasi label menjelaskan adanya label atau tujuan yang bisa melompatkan jalannya program dengan statement goto.

5. Deklarasi FUNCTION
Function adalah bagian dari program yang melakukan tugas tertentu dan menghasilkan suatu nilai.

Sintaks penulisan:
function namafunction:tipehasil;
Atau
function namafunction(daftarparameter):tipehasil;

Contoh:
function UpCaseStr(S: string): string;
var
I: Integer;
begin
for I := 1 to Length(S) do
if (S[I] >= 'a') and (S[I] <= 'z') then
Dec(S[I], 32);
UpCaseStr := S;
end;
begin
writeln(UpCaseStr(‘this is text’));
end.

6. Deklarasi PROCEDURE
Procedure adalah bagian dari program yang melakukan aksi tertentu, seringkali aksi tersebut dilakukan berdasarkan parameter.

Sintaks penulisan:
procedure namafunction;
Atau
procedure namafunction(daftarparameter);

Contoh:
procedure WrStr(X, Y: integer; S: string);
var
SaveX, SaveY: Integer;
begin
SaveX := WhereX;
SaveY := WhereY;
GotoXY(X, Y);
Write(S);
GotoXY(SaveX, SaveY);
end;
begin
WrStr(10,20,’This is text’);
end.

Aturan penulisan program Pascal
Suatu bahasa pemrograman selalu mempunyai aturan penulisan program. Hal ini menunjukkan konsistensi
kompiler dalam melakukan proses kompilasi. Aturan pada program Pascal adalah sebagai berikut:
Program pascal dapat ditulis pada kolom berapa saja dan diakhiri pada kolom berapa saja.
Antar statement / perintah dipisahkan dengan tanda ; (titik koma)
Akhir dari sebuah program Pascal ditandai dengan tanda . (titik) setelah perintah END. Semua statement / perintah setelah END. tidak akan dianggap sebagai perintah.
Spasi antar pengenal (identifier) diabaikan.
Baris komentar diletakkan di antara tanda (* dan *) atau { dan }. Baris komentar tidak akan dieksekusi oleh komputer. Baris komentar biasanya dipergunakan untuk memberikan penjelasan-penjelasan guna memperjelas pengertian variabel atau tipe atau perintah dalam sebuah program.

Simbol (Symbols)
Pascal mengenal simbol-simbol yang dapat digunakan dalam program, yaitu:
huruf : A..Z , a..z
digit : 0..9
digit heksadesimal : 0..9, A..F, a..f
Karakter khusus : + - * / = < > [ ] . , ( ) : ^ @ { } $ #
Pasangan karakter : <= >= := (* *)
Selain dari karakter-karakter di atas, adalah karakter yang tidak dikenali oleh bahasa Pascal.

Kata tercadang (Reserved Words)
Kata tercadang adalah bagian dari bahasa Pascal dan tidak dapat dipakai untuk kegunaan lain dalam
program (tidak dapat didefinisikan ulang). Kata tercadang ini tidaklah case sensitive, artinya for akan sama dengan FOR.

Pengenal (Identifier)
Identifier adalah nama yang diberikan untuk elemen -elemen dalam Pascal. Misalnya nama prosedur, nama tipe, nama fungsi, nama variabel dan nama label. Identifier ini harus dideklarasikan terlebih dulu agar dapat dikenali.
Contoh penggunaan identifier:
program coba1;
var
a,b:byte;
type
c=word;
begin
end.

Pada program di atas, terdapat 4 buah indentifier, yaitu coba1, a, b dan c. Coba1 digunakan sebagai identifier nama program, a dan b digunakan sebagai identifier dari deklarasi var dan c sebagai indentifier nama type.

Angka (Numbers)
Ada 2 macam penulisan angka dalam bilangan bulat yang dikenal dalam Pascal.
- Normal, dalam format desimal (basis 10).
- Heksadesimal (basis 16), penulisan angka dalam format heksadesimal harus didahului oleh tanda $.
Misalnya $FF berarti 255 desimal.

Tipe (Type)
Tipe data yang dikenal oleh Pascal dapat diklasifikasikan menjadi: tipe sederhana, tipe string, tipe terstruktur dan tipe data pointer. Ada tipe yang sudah didefinisikan (built-in) sehingga compiler langsung mengenalinya

Penjelasan Tipe data pada Free Pascal
Tipe Dasar / Sederhana (Based Types or Simple Types)
Tipe dasar mendefinisikan suatu nilai yang berurutan. Ada 2 kelas dari tipe sederhana ini yaitu:

Tipe Ordinal (Ordinal type)
Pada tipe ordinal, Free Pascal telah mendefinisikan 14 predefined type (apa yang dimaksud predefined type?), yaitu : bilangan bulat, boolean, char. (dimana 11 buah tipe data yang lain?). Artinya pembuat program tidak perlu mendefinisikan tipe untuk tipe-tipe data di atas. Sedangkan untuk user defined type pada tipe ordinal ada 2 macam, yaitu : tipe enumerasi (enumerated types) dan tipe subjangkauan (subrange types).

Tipe Enumerasi (Enumerated)
Identifier list mempunyai format penulisan:
Tipe Enumerasi mendefinisikan nilai yang berurutan ke suatu elemen dalam suatu daftar identifier. Elemen pertama mempunyai nilai 0, yang kedua mempunyai nilai 1 dan seterusnya.

Tipe Subjangkauan (Subrange)
Tipe subjangkauan mendefinisikan suatu elemen dari nilai terkecil sampai nilai terbesar.


Tipe Boolean (Boolean)
Tipe boolean adalah sebuah tipe yang hanya dapat bernilai false atau true. Dalam Free Pascal mendukung tipe Bytebool, WordBool dan LongBool.
Karena masih merupakan tipe ordinal, maka nilainya dapat diketahui urutannya dengan menggunakan fungsi ord.
ORD(FALSE) = 0
ORD(TRUE) = 1

Operasi-operasi yang dapat dilakukan pada tipe boolean adalah (diurutkan berdasarkan hirarki teratas sampai terendah): NOT, AND, OR

Contoh dalam program:
Var
X:boolean;
A:byte;
Begin
A:=0;
If a>100 then x:=true else x:=true;
End.
var
Ok:boolean;
a,b:byte;
Begin
a:=10;
b:=20;
Ok:=a=b;
End.


Tipe Bilangan Bulat (Integer)
Ada 10 tipe bilangan bulat, yaitu:


Tipe Integer secara standard akan diarahkan pada tipe smallint, sedangkan tipe cardinal selalu diarahkan pada tipe longword.
Tipe bilangan bulat ini dapat disebut sebagai predefined type, atau dapat juga dimasukkan dalam tipe subjangakauan.
Operasi-operasi yang dapat dilakukan pada tipe bilangan bulat adalah (diurutkan berdasarkan hirarki teratas
sampai terendah):
? @, NOT
? *, /, div, mod, and, shl, shr
? +, –, or, xor
? =, <>, <, >, <=, >=, in
Tipe Real
Sebuah tipe real adalah anggota bilangan real, yang dinyatakan dalam notasi floating point. Ada 6 model tipe real, masing-masing mempunyai jangkauan, ketepatan angka dan ukuran.

Type                      Jangkauan                          Digit                      Ukuran
Real                       2,9.10-39 .. 1,7.1038           11-12                     6 byte
Single                    1,5.10-45 .. 3,4.1038           7-8                          4 byte
Double                  5,0.10-324 .. 1,7.10308      15-16                     8 byte
Extended              3,4.10-4932 .. 1,1.104932 19-20                     10 byte
Comp                    -2.1063+1 .. 2.1063-1         19-20                     8 byte


Tipe Karakter (Character)
Merupakan suatu tipe data untuk menyimpan karakter ASCII. Ditulis dengan menggunakan tanda petik atau diawali dengan #. Karena masih masuk dalam tipe ordinal maka dapat dioperasikan dengan menggunakan fungsi ord (untuk mengetahui urutannya), fungsi succ, fungsi pred, prosedur inc, prosedur dec.
Tipe ini juga dapat menerima fungsi CHR (mengubah suatu bilangan bulat menjadi karakter yang sesuai dengan ASCII)

Contoh:
Var
A:char;
Begin
A:=’A’;
A:=CHR(65)
A:=#1;
End.

Tipe Untai (String)
Tipe string adalah tipe yang diisi rangkaian karakter.
Format penulisan:
type
identifier=string[panjang];

Bila panjang tidak didefinisikan, maka Pascal menganggap panjangnya adalah 255 karakter (panjang
maksimum).

Contoh penggunaan dalam program
type
str80=string[80]; {bisa dideklarasikan dalam tipe terlebih dulu}
var
a:str80;
b:string[10]; {atau langsung dalam variabel}
const
Heading: string[7] = 'Section';
NewLine: string[2] = #13#10;
TrueStr: string[5] = 'Yes';
FalseStr: string[5] = 'No';

Fungsi standard dari Length adalah untuk mencari panjang dari string. Perbandingan antar string
didefinisikan dengan melihat urutan karakter di dalamnya. Misalnya “AB” lebih besar dari “A”; sehingga ‘AB’>’A’ menghasilkan TRUE. String kosong (panjangnya 0) adalah string yang mempunyai urutan terendah. String dapat dicari urutannya seperti halnya Array. Jika S adalah sebuah variabel string dan I adalah sebuah ekspresi numerik yang menghasilkan bilangan bulat, maka S[I] akan menghasilkan karakter dari S yang ke i. Statement MyString[2]:=’A’ akan mengisikan karakter ke-2 dari MyString dengan karakter A.

Contoh berikut adalah penggunaan fungsi standard UpCase untuk mengubah sebuah string menjadi huruf besar.
var I: Integer;
begin
I := Length(MyString);
while I > 0 do
begin
MyString[I] := UpCase(MyString[I]);
I := I - 1;
end;
end;

Tipe Untai Pendek (Short String)
Deklarasi String akan mendeklarasikan sebagai shortstring apabila:
? Opsi dimatikan {$H-}, maka deklarasi string akan selalu shortstring
? Opsi dinyalakan {$H+} dan diberikan panjang tertentu, maka deklarasi tersebut adalah shortstring.
Predefined type untuk shortstring adalah:
ShortString = String[255];

Tipe Ansistrings
Format penulisan:
type
identifier=ansistring;
Tipe ansistring adalah tipe string dengan panjang tanpa batas. Dalam proses kompilasi, ansistring
diperlakukan sebagai pointer. Jika string adalah kosong (‘‘), maka pointer akan menunjuk pada NIL. Jika ada isinya, pointer akan menunjuk suatu alamat pada heap memory. Ketika tipe ansistring dideklarasikan, Free Pascal hanya mengalokasikan alamat untuk pointernya saja.
Pointer ini pasti berisi NIL, sehingga isi mula-mula dari variabel ansistring pasti kosong (tidak mempunyai nilai apa-apa)

Tipe PChar
Format penulisan:
type
identifier=PChar;
Pchar adalah variabel berjenis pointer yang mengarah ke sebuah array dengan tipe Char, yang diakhiri dengan karakter 0 (#0). Dengan tipe Pchar, dimungkinkan adanya operasi tambahan pada tipe ini.

Perhatikan cara pemakaian PChar pada program di bawah ini:
program one;
var p : PChar;
begin
P := 'This is a null-terminated string.';
WriteLn (P);
end.

Akan sama dengan:
program two;
const P : PChar = 'This is a null-terminated string.'
begin
WriteLn (P);
end.

Mungkin juga nilai sebuah string diberikan pada Pchar, caranya:
Program three;
Var S : String[30];
P : PChar;
begin
S := 'This is a null-terminated string.'#0;
P := @S[1];
WriteLn (P);
end.

Tipe Terstruktur (Structured Type)
Tipe terstruktur dalam pascal adalah tipe yang dapat menampung lebih dari 1 nilai.
Free Pascal mendefinisikan beberapa tipe terstruktur ini, yaitu:
Tipe Array
Tipe array adalah suatu tipe yang dapat menampung beberapa nilai dengan tipe yang sama dalam bentuk satu dimensi atau multidimensi. Tiap nilai dalam array dapat diacu dengan nama array dan indeksnya yang diletakkan dalam kurung.

Format penulisan:
type
identifier=array[tipe_indeks] of tipe_data

Tipe_data mendefinisikan bahwa array tersebut untuk menampung nilai dengan tipe data apa saja.
Contoh dalam program:
type
a=array[boolean] of byte;
c=5..10;
b=array[1..10,c] of real; {termasuk tipe data apa c?}
var
nilai_a:a;
nilai_b:b;
begin
nilai_a[true]:=10;
nilai_b[1,5]:=10.4;
end.


Tipe Himpunan (Set)
Himpunan adalah kumpulan dari beberapa nilai yang bertipe ordinal. Dalam sebuah himpunan, nilai-nilai di dalamnya akan otomatis terurut dari elemen yang paling kecil hingga yang paling besar. Dan tidak ada 2 nilai yang sama dalam sebuah himpunan.

Format penulisan:
type
identifier=set of ordinal_type;
Contoh dalam program:
type TIntSet = set of 1..250;
var Set1, Set2: TIntSet;
begin
Set1 := [1, 3, 5, 7, 9];
Set2 := [2, 4, 6, 8, 10]
End.

Operasi-operasi yang dapat diberlakukan pada tipe data set:

Operation            Operand              Result type          Example
Union                    set                          set                           Set1 + Set2
Difference            set                          set                           S - T
Intersection         set                          set                           S * T
subset                    set                          Boolean                Q <= MySet
superset                set                          Boolean                S1 >= S2
equality set                          Boolean                S2 = MySet
inequality            set                           Boolean                MySet <> S1
membership       ordinal, set         Boolean                A in Set1

Tipe Record
Untuk Field list, diagram penulisannya:
Untuk fixed fields diagram penulisannya:
Sebuah record dapat terdiri dari sejumlah komponen (atau field), yang masing-masing field dapat
mempunyai tipe yang berbeda-beda.

Format penulisan:
Type identifier = record
fieldList1: type1;
...
fieldListn: typen;
end;

Contoh penulisan sebuah record:
Type
Point = Record
X,Y,Z : Real;
end;
RPoint = Record
Case Boolean of
False : (X,Y,Z : Real);
True : (R,theta,phi : Real);
end;
BetterRPoint = Record
Case UsePolar : Boolean of
False : (X,Y,Z : Real);
True : (R,theta,phi : Real);
end;
TDateRec = record
Year: Integer;
Month: (Jan, Feb, Mar, Apr, May, Jun,
Jul, Aug, Sep, Oct, Nov, Dec);
Day: 1..31;
end;
var Record1, Record2: TDateRec;

Deklarasi variabel di atas (Record1 dan Record2) mempunyai tipe data yang sama. Untuk mengakses nilai untuk tiap field dalam sebuah record, menggunakan format:
Namarecord.namafield

Contoh:
Record1.Year := 1904;
Record1.Month := Jun;
Record1.Day := 16;

Atau dapat juga dengan menggunakan statement With.
with Record1 do
begin
Year := 1904;
Month := Jun;
Day := 16;
end;

Untuk tipe data record yang sama, dapat berlaku statement:
Record2 := Record1;

Tipe File
File adalah sekumpulan elemen (data).

Sintaks penulisan untuk tipe data file:
type fileTypeName = file of type

di mana fileTypeName is sembarang nama identifier dan tipe adalah fixed-size type. Contoh:
type
PhoneEntry = record
FirstName, LastName: string[20];
PhoneNumber: string[15];
Listed: Boolean;
end;
PhoneList = file of PhoneEntry;
Var
Filephone: PhoneList;

Deklarasi di atas, mendeklarasikan file bertipe record. Deklarasi di atas, dapat juga secara langsung
dituliskan:
var List1: file of PhoneEntry;

Tipe data file dapat juga berupa file tidak bertipe. Format penulisan:
Var
MyFile : File;

Tipe Pointer
Pointer adalah sebuah variabel yang berisi alamat memori dan bukan berisi data numerik atau string seperti halnya variabel biasa. Format penulisan:
type pointerTypeName = ^type

Contoh dalam program:
var
X, Y: Integer; // X and Y are Integer variables
P: ^Integer; // P points to an Integer
begin
X := 17; // assign a value to X
P := @X; // assign the address of X to P
Y := P^; // dereference P; assign the result to Y
end;

Tipe prosedural (Procedural Types)
Tipe prosedural pada Free Pascal berbeda dengan Turbo Pascal walaupun secara konsep sama.

Berikut adalah contoh pemakaian dalam program:
Type TOneArg = Procedure (Var X : integer);
TNoArg = Function : Real;
var proc : TOneArg;
func : TNoArg;

Pengubah (Variable)
Variabel adalah penampung nilai yang nilai di dalamnya dapat berubah pada saat runtime. Variabel harus mempunyai tipe data tertentu, sehingga compiler dapat memperlakukan data yang ditampung dengan semestinya. Deklarasi untuk variabel terdiri dari 2 bagian, yaitu nama variabel dan tipe datanya, yang dipisahkan dengan semicolon (:).

Cara mendeklarasikan variabel adalah:
Var Identifierlist : type;

Identifierlist merupakan kumpulan identifier yang dipisahkan dengan tanda koma dan type adalah
sembarang tipe data.

Contoh pendeklarasian variabel yang benar:
Var
a:byte;
Var a,b:byte;
Var
X, Y, Z: Double;
I, J, K: Integer;
Digit: 0..9;
Okay: Boolean;
Contoh pendeklarasian variabel yang salah:
Var
a,b;
var
a:8;

Konstanta (Constant)
Konstanta berisi suatu nilai yang tidak dapat dirubah. Pemberian nilai untuk konstanta ini pada saat
konstanta dideklarasikan.
Contoh deklarasi konstanta
const
Pi = 3.14159;
Answer = 342;
ProductName = 'Delphi';
MaxData = 1024 * 64 - 16;
NumChars = Ord('Z') - Ord('A') + 1;
Message = 'Hello world...';

Konstanta seperti di atas disebut sebagai konstanta tak bertipe. Sedangkan konstanta yang bertipe
mempunyai sifat seperti variabel. Untuk konstanta bertipe deklarasinya:
const identifier: type = value

Mendeklarasikan konstanta bertipe untuk ARRAY:
const Digits: array[0..9] of Char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
Factorial: array[1..7] of Integer = (1, 2, 6, 24, 120, 720, 5040);

Mendeklarasikan konstanta bertipe untuk RECORD
type
Point = record
X, Y: Real;
end;
Vector = array[0..1] of Point;
Month = (Jan, Feb, Mar, Apr, May, Jun, Jly, Aug, Sep, Oct, Nov, Dec);
Date = record
D: 1..31;
M: Month;
Y: 1900..1999;
end;
const
Origin: Point = (X: 0.0; Y: 0.0);
Line: Vector = ((X: -3.1; Y: 1.5), (X: 5.8; Y: 3.0));
SomeDay: Date = (D: 2; M: Dec; Y: 1960);

Mendeklarasikan konstanta bertipe untuk SET
type
Digits = set of 0..9;
Letters = set of 'A'..'Z';
const
EvenDigits: Digits = [0, 2, 4, 6, 8];
Vowels: Letters = ['A', 'E', 'I', 'O', 'U', 'Y'];
HexDigits: set of '0'..'z' = ['0'..'9', 'A'..'F', 'a'...f'];

Mendeklarasikan konstanta bertipe untuk tipe data sederhana
const
Maximum: Integer = 9999;
Factor: Real = -0.1;
Breakchar: Char = #3;

Mendeklarasikan konstanta bertipe untuk tipe data string
const
Heading: string[7] = 'Section';
NewLine: string[2] = #13#10;
TrueStr: string[5] = 'Yes';
FalseStr: string[5] = 'No';

OPERASI DI PASCAL
Operasi Aritmatika
Operasi Aritmatika adalah operasi untuk melaksanakan suatu proses perhitungan. Hasil dari operasi ini diberikan pada variabel yang dapat menampung nilai numerik. Seperti yang telah ditulis pada pembahasan tipe bilangan bulat dan real, operator pada operasi aritmatika adalah:


Operasi Logika
Operasi logika menggunakan sistem bilangan biner untuk perhitungannya. Ada 6 buah operator logika yang
dikenal Pascal, yaitu:


Operasi Boolean
Operasi boolean menggunakan operand yang bertipe boolean serta hasil boolean untuk operasinya. Ada 4 operator boolean yang dikenal Pascal, yaitu:


Operasi String
Operasi string pada Pascal hanya mengenal sebuah operator yaitu operator + atau penggabungan antar string.

Operasi himpunan
Pada operasi himpunan selalu menggunakan tipe data himpunan (set) untuk operator maupun operannya.
Ada 3 macam operator pada operasi himpunan, yaitu:


Operasi Relasi
Operasi ini digunakan untuk melakukan perbandingan dan menghasilkan boolean (true atau false) yang menunjukkan perbandingan tersebut bernilai benar atau salah.


STATEMENT

Statement adalah perintah yang dikenal oleh Pascal. Dalam bahasa Pascal terdapat 11 statement, artinya SEMUA program dalam Pascal hanya menggunakan kombinasi dari ke-11 statement ini saja. Statementstatement
yang dikenal Pascal adalah :
1. Assignment (pemberian nilai)
2. Compound (penggabungan)
3. IF – THEN – ELSE
4. CASE – OF
5. FOR – TO – DO
6. REPEAT – UNTIL
7. WHILE – DO
8. WITH
9. Procedure Call
10. Goto
11. Inline

1. Assignment (Pemberian nilai)
Statement Assignment digunakan untuk memberikan nilai pada sebuah variabel.
Sintaks penulisan:
Variabel := nilai

Contoh 1:
var a,b:byte;
begin
a:=10;
a:=a*4;
if a>5 then b:=40;
end.

2. Compound Statement
Digunakan untuk menggabungkan beberapa statement. Dalam teks lain disebutkan:
Compound statements are a group of statements, separated by semicolons, that are surrounded by the keywords
Begin and End. The Last statement doesn't need to be followed by a semicolon, although it is allowed.

Sintaks Penulisan:
begin
statement;
statement;
statement
end

Contoh:
if a>5 then
begin
a:=a*4;
b:=a-4
end.

3. IF – THEN – ELSE Statement
Merupakan perintah percabangan yang akan menjalankan statement sesuai dengan kondisi yang ada. Ada 2 macam sintaks penulisan IF – THEN – ELSE:
IF kondisi THEN statement
Dan
IF kondisi THEN statement ELSE statement

Contoh:
If a>5 then a:=a+1;
If a-4=2 then begin a:=2;b:=a end;
if (a=3) and (b=2) then
begin
a:=a-1;
b:=a
end else b:=3;
if a>5 then a:=4
else begin
a:=4 mod b;
b:=b-1
end;

4. FOR – TO / DOWNTO – DO Statement
Digunakan untuk mengulang statement
Sintaks penulisan
FOR variabel := awal TO akhir DO statement
Atau
FOR variabel := akhir DOWNTO awal DO statement

Catatan:
Statement akan diulang sebanyak akhir-awal+1. Selama perulangan, nilai variabel akan bernilai dari
awal sampai akhir

Contoh:
{Program 1}             {Program 2}
var                     var
a:byte;                 a,b:byte;
begin                   begin
for a:=1 to 5 do        for a:=5 downto 2 do
write(a);               for b:=1 to a do write(a+b)
end.                    end.

5. CASE OF Statement
Statement case digunakan untuk perintah bercabang dengan banyak kondisi. Terdiri dari ekspresi (atau biasa disebut dengan selector) dan serangkaian statement.

Sintaks penulisan:
case expression of
case: statement;
...
case: statement;
end
Atau:
case expression of
case: statement;
...
case: statement;
else
statement
end

Catatan:
Jika pada sebuah kondisi dapat terdiri dari banyak range, maka dapat kondisi-kondisi yang ada dapat dipisahkan
dengan koma.

Contoh:
case Ch of
'A'..'Z', 'a'..'z': WriteLn('Letter');
'0'..'9': WriteLn('Digit');
'+', '-', '*', '/': WriteLn('Operator');
else
WriteLn('Special character');
end;

6. Repeat – Until Statement
Perintah yang ada di dalam statement repeat – until akan diulang sehingga kondisi boolean pada until bernilai true.

Sintaks penulisan:
repeat
statement;
statement;
...
statement
until expression

Contoh:
repeat Ch := GetChar until Ch <> ' ';
repeat
Write('Enter value: ');
ReadLn(I);
until (I >= 0) and (I <= '9');

Catatan: GetChar pada contoh pertama merupakan statement procedure call.

7. While – Do Statement
Statement while terdiri terdiri dari sebuah ekspresi boolean yang mengontrol eksekusi dari sebuah
statement.

Sintaks Penulisan:
While expression do statement;
Atau
While expression do
Begin
Statement;
Statement;
...
End.

Contoh:
while Ch = ' ' do Ch := GetChar;
while not Eof(InFile) do
begin
ReadLn(InFile, Line);
WriteLn(OutFile, Line);
Inc(LineCount);
end;

Catatan:
Contoh kedua adalah statement while yang menggunakan compound statement di dalamnya.

8. Statement With
Statement with digunakan untuk mereferensi field pada sebuah record.

Sintaks Penulisan:
with var, var, ... var do statement
Contoh:
with Date[I] do
begin
month := 1;
year := year + 1;
end;

Ekivalen dengan perintah:
Date[I].month := 1;
Date[I].year := Date[I].year + 1;

Standard Input / Output
Sebuah program komputer, selalu bekerja dengan 3 tahap, yaitu:
- Tahap 1 : MASUKAN
- Tahap II : PROSES
- Tahap III : KELUARAN

Contoh:
Program untuk menghitung nilai dua bilangan bulat A dan B, maka:
- masukan : A dan B
- proses : C=A + B
- keluaran : C

Dalam bahasa Pascal:
var a,b,c:word;
begin
write(‘Nilai A : ‘);readln(a); {masukan}
write(‘Nilai B: ‘);readln(b); {masukan}
c:=a+b; {proses}
write(‘Hasil penjumlahan A+B : ‘,c) {keluaran}
end.

Standard Masukan
Standard masukan pada Pascal adalah keyboard. Artinya semua masukan dimasukkan lewat keyboard. Standard output pada Pascal adalah monitor. Artinya semua output ditampilkan pada layar monitor. Misalkan diminta untuk membuat program yang mencari nilai terbesar dari 1.000 buah data. Untuk program tersebut, entry data satu persatu melalui keyboard menjadi cara yang tidak efisien, karena setiap kali program di-RUN, akan meminta 1.000 masukan. Untuk itu, standard input dapat dialihkan ke sebuah file teks. Artinya, input tidak lagi dimasukkan dari keyboard, melainkan lewat sebuah file teks. Nantinya file teks inilah yang dibaca setiap kali program di-RUN (sehingga user tidak perlu menginput lagi).

Pada Pascal, untuk merubah standard input ke file teks adalah dengan perintah:
Assign(input,namafile);
Reset(input);

Namafile pada perintah assign berupa string yang menunjukkan nama file untuk file yang hendak dibaca.
Setelah kedua perintah tersebut, semua perintah READLN, langsung akan membaca dari namafile.


Standard Keluaran
Standard keluaran pada Pascal adalah layar monitor. Namun layar monitor hanya dapat menampilkan maksimal 25 baris dan 80 karakter tiap barisnya. Jika diminta untuk membuat program yang dapat menampilkan output lebih dari 25 baris, maka layar monitor tidak lagi dapat menjadi standard output yang baik.

Untuk merubah standard output pada Pascal:
Assign(output,namafile);
Rewrite(output);

Namafile berupa string yang menunjukkan nama file yang hendak dibuat / ditulis. nSetelah kedua perintah tersebut, hasil output (dari perintah write), akan ditulis pada namafile.
Cara lain untuk merubah standard input atau output adalah dengan mendeklarasikan sebuah variabel bertipe text.

Contoh:
Var
finput, foutput:text;
Begin
assign(finput,’Input.in’);
reset(finput);
readln(finput,a,b,c);
close(input)
{... proses ...}
assign(foutput,’output.out’);
rewrite(foutput);
write(foutput,’something’);
close(foutput);
End.

Perlu diperhatikan agar seperlunya saja membuka file. Jika file tersebut sudah tidak diperlukan lagi, maka sebaiknya diberikan perintah close(f). Begitu juga untuk membuat file, jika output belum siap ditulis karena masih dalam proses, sebaiknya file tersebut tidak di-rewrite terlebih dulu.

Perintah – Perintah Unit System Golongan Arithmatic
Perintah –perintah berikut ini adalah perintah –perintah yang tidak perlu menggunakan perintah USES pada awal program, lebih tepatnya tidak perlu menggunakan Uses System. Semua perintah yang tergabung dalam Unit System bisa langsung diterjemahkan oleh kompiler turbo pascal. Sebab perintah – perintah yang ada dalan Unit System adalah perintah – perintah utama dalam Turbo Pascal. Tetapi jika anda memasukkan perintah dari unit lain, maka perintah USES harus diberikan pada awal program diikuti nama unit dari perintah yang bersangkutan.
Berikut adalah perintah-perintah Unit System Golongan Arithmatic:
Int :
Perintah untuk mengabaikan angka dibalik koma. Penggunaannya : Int(45,78)=45
Frac:
Mengambil desimal suatu bilangan. Frac(45,78)=0,78 . (Frac=Fraction)
Sqr:
Mencari pangkat 2 dari suatu bilangan. Sqr(3)=9. (Sqr=Square)
Sqrt:
Mencari akar pangkat dua dari suatu bilangan. Sqrt(16)=4. (Sqrt=Square Root)
Exp:
Untuk mencari eksponensial (exponential) dari suatu bilangan. Contoh Exp dari 1 =2,72
Ln:
Mencari logaritma natural dari suatu bilangan. (Ln=logarithma natural).
Pi :
Untuk memasukkan bilangan pi (3,1415926536)
Sin :
Untuk mencari Sinus dari suatu bilangan dalam satuan radian.
Bentuk umumnya adalah: Sin(angka)
Untuk mengkonversi kedalam derajat, maka harus ditambahkan rumus:Sin(Angka/(180/Pi).
Cos:
Untuk mencari Cosinus dari suatu bilangan dalam satuan radian.
Bentuk umumnya adalah : Cos(angka)
Untuk mengkonversi kedalam derajat maka harus ditambahkan rumus:Cos(angka/(180/Pi)
Tan:
Turbo pascal tidak menyediakan perintah untuk mencari tangen dari suatu bilangan. Tetapi dengan perintah Sinus dan Cosinus, maka Tangen dari suatu bilangan dengan dicari dengan rumus : Tan=Sin(angka)/Cos(angka)
Arctan:
Untuk mencari Arctangen dari suatu bilangan.
ArcSin:
Sama dengan Tan, Turbo Pascal tidak menyediakan perintah untuk mencari Arcsinus dari suatu bilangan. Tetapi dengan adanya perintah Arctan, Sqr dan Sqrt, maka ArcSin dari suatu bilangan dapat dicari dengan rumus : ArcSin(x)=ArcTan(x/Sqrt (1-Sqr(x))), dimana x adalah bilangan Real.
ArcCos:
Turbo pascal tidak menyediakan ArcCos.Rumusnya adalah : ArcCos(x)=ArcTan(sqrt(1-sqr(x)) /x), dimana x adalah bilangan Real.
Abs:
Untuk mencari absolut (menghilangkan tanda negatif) dari suatu bilangan.


Tidak ada komentar:

Posting Komentar