Selasa, 15 Desember 2009

REKURSI

REKURSI

Merupakan prosedur yang memanggil atau menggunakan prosedur itu juga. Proses dari suatu program bagian yang memanggil dirinya sendiri dikenal dengan istilah recursion. Tidak semua bahasa menyediakan kemampuan untuk melakukan proses recursion, tetapi pascal dapat. Walaupun proses ini merupakan algoritma yang baik, tetapi membutuhkan banyak memori, karena setiap kali program bagian dipanggil oleh dirinya sendiri, sejumlah ruang memori tambahan dibutuhkannya.
Contoh
1.Program Latihan_Rekursi_2;
uses wincrt;
Procedure Rekursi(a:integer);
var
y:integer;
begin
If a<10 then
begin
writeln('Pascal');
writeln;
a:=a+1;
Rekursi(a);
end;
end;

var
x:integer;
begin
writeln('Berapa batas awalnya?');readln(x);
Rekursi(x);
end.

2.program rekursi;
Var
I : integer ;
Procedure Rekursi ;
Begin
Writeln ( ‘Hallo saya Pascal ‘ ) ;
I : = I + 1 ;
If I < 10 Then
Rekursi ;
End ;
Begin
I : = 1 ;
Rekursi ;
End.
3.Program Faktorial;
uses wincrt;
function Faktorial(a:integer):longint;
begin
if (A=1)then
Faktorial:=1
else
Faktorial:=a*faktorial(a-1);
end;
var
x:integer;
begin
writeln('Faktorial sequence');
writeln;
write('Berapa Faktorial ?');readln(x);
writeln(x ,' faktorial ',' = ',faktorial(x));
end.

Program Fibonacci;
uses wincrt;
Var fibo: array [1..10] of integer;
A,i,hasil:integer;
begin
clrscr;
write('Masukkan suku keberapa dalam deret fibonacci : ');readln(A);
if (A=1) or (A=2) then hasil:=1 else
begin
fibo[1]:=1; fibo[2]:=1;
for i:=3 to A do
begin
fibo[i]:=fibo[i-1]+fibo[i-2];
hasil:=fibo[i];
end;
end;
writeln;
for i:=1 to A do
write(fibo[i],' ');
writeln;
writeln('Suku Ke-',A,' dari deret fibonacci adalah ',hasil);
end.

4.Program pangkat;
uses wincrt;
var A,x,i,hasil:longint;
begin
write('masukkan bilangan yang akan dipangkatkan = ');readln(A);
write('masukkan bilangan pangkat = ');readln(x);
hasil:=1;
for i:=1 to x do
hasil:=hasil*A;
writeln('hasil dari ',A,' pangkat ',x,' adalah ',hasil);
end.

SUB PROGRAM

SUB PROGRAM

Subprogram digunakan untuk:
Penghematan kode program
Menyederhanakan persoalan dengan memecahnya menjadi sub-persoalan.
Membagi program menjadi elemen-elemen yang lebih kecil.
Diperlukan mekanisme pemanggilan subprogram dari program utama.

Subprogram dalam turbo pascal ada 2 macam:

1.Fungsi

Semua fungsi mempunyai sifat memberikan nilai (disebut hasil fungsi) pada saat dipanggil.
Contoh penggunaan fungsi yang benar adalah sebagai berikut:
X:=sqrt(100)
Sqrt berkedudukan sebagai operand dari operator penugasan (:=).
Suatu fungsi umumnya mempunyai argument atau parameter. Parameter ditulis di dalam tanda kurung. Namun fungsi bisa saja tidak memiliki parameter, contohnya dalah pi dan random.
Bentuk deklarasinya adalah sebagai berikut:

FUNCTION nama_fungsi (daftar_parameter):Tipe;
Bagian_deklarasi
Bagian_pernyataan;

Contoh judul deklarasi judul fungsi:
FUNCTION Tambah (A:real; B:real):Real;
Contoh ini menunjukkan bahwa fungsi tambah mempunyai dua buah parameter yang masing-masing bertipe real. Selain itu, hasil fungsi juga bertipe real.

Parameter Formal dan Aktual, Variabel Lokal dan Global

Parameter formal (terdapat pada subprogram): parameter yang terdapat pada pendeklarasian judul subprogram, baik pada fungsi maupun prosedur.
Contoh: FUNCTION Tambah (A, B:Real)
A, B merupakan parameter formal.

Parameter aktual (terdapat pada program utama): parameter yang terdapat pada pemanggilan fungsi atau prosedur.
Contoh: Tambah (10,30)
10 dan 30 merupakan parameter aktual.

2.Prosedur

Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Diawali dengan kata cadangan “Procedure” didalam bagian deklarasi prosedur. Prosedur banyak digunakan pada program yang terstruktur karena :

- merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.

- Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.

Bentuk Umum :
PROGRAM judul_program ;
PROCEDURE judul_prosedur ;
Begin
Statement prosedur ;



End ;
Begin
Statement program utama ;



end.
2.1 Parameter Dalam Prosedur
Nilai didalam modul program Pascal sifatnya adalah local, artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya.
Contoh program :
Procedure Tanya_hitung ;
Var
X, Y : real ;
Begin
Write (‘Nilai X =’) ;
Readln (X) ;
Y : = X * X ;
End ;
Begin
Tanya_hitung ;
Writeln (‘Nilai Y =’, Y : 6 : 2 ) ;
End.
Keterangan contoh program :
Bila program dikompilasi, akan di deteksi kesalahan oleh compiler, karena variable Y yang sifatnya local di procedure Tanya_hitung digunakan pada program utama.
Agar nilai-nilai variable dapat digunakan di modul lainnya yang membutuhkan, maka dapat dilakukan dengan beberapa cara, yaitu :

- Dibuat bersifat global.
Harus di deklarasikan diatas modul yang akan menggunakannya.
Contoh :
Procedure kesatu ;
Begin

End ;
Var
A, B : word ;
Procedure kedua ;
Begin

End ;
Procedure ketiga ;
Begin

End ;
Begin { program utama }

End.
Keterangan contoh :
Variabel A dan B dapat digunakan untuk modul Procedure kedua dan ketiga serta modul/program utama, tetapi tidak bersifat global untuk procedure kesatu.

- Dikirimkan sebagai parameter ke modul yang membutuhkannya.
Parameter yang dikirmkan dari modul utama ke modul prosedur disebut dengan parameter nyata (actual parameter) dan parameter yang ada dan dituliskan pada judul prosedur disebut dengan parameter formal (formal parameter). Proses pengiriman data lewat parameter nyata ke parameter formal disebut dengan parameter passing. Parameter nyata dan parameter formal harus dengan tipe yang sama. Didalam pascal, parameter dapat dikirimkan secara nilai (by value) atau secara acuan (by reference).


2.1.1 Pengiriman Parameter Secara Nilai

Bila parameter dikirimkan secara nilai nilai, parameter formal di prosedur akan berisi nilai yang dikirmkan yang kemudian bersifat local di prosedur. Bila nilai parameter formal di prosedur berubah, tidak akan mempengaruhi nilai parameter nyata ( nilai parameter nyata tetap, tidak berubah). Pengiriman secara nilai ini merupakan pengiriman searah, yaitu dari parameter nyata ke parameter formal, yang tidak dikirimkan balik dari parameter formal ke parameter nyata.
Parameter – parameter yang digunakan dengan pengiriman secara nilai ini disebut dengan parameter nilai ( value parameter ).
Contoh program :
Procedure Hitung(A, B : integer ) ;
Var
C : integer ;
Begin
C : = A + B ;
Writeln (‘Nilai C =’, C ) ;
End ;
Var
X, Y : integer ;
Begin
Write ( ‘Nilai X =’ ) ; readln ( X ) ;
Write ( ‘Nilai Y =’ ) ; readln ( Y ) ;
Hitung ( X, Y ) ;
End.
Output program :
Nilai X = 2
Nilai Y = 3
Nilai C = 5
Penjelasan program :

- prosedur dimulai dengan deklarasi prosedur dengan judul prosedur hitung. Variable A dan B adalah parameter formal dan integer adalah tipe parameternya.

- Variable local yang hanya dipergunakan di prosedur dan tidak termasuk parameter formal (parameter nilai), harus didefinisikan sendiri, yaitu : variable C

- Hubungan antara parameter formal di prosedur dengan parameter nyata di modul utama adalah : nilai parameter nyata X dan Y di modul utama dikirimkan ke parameter formal A dan B di prosedur. Dengan demikian nilai parameter A dan B diprosedur akan berisi nilai yang sama dengan parameter X dan Y di modul utama.

2.1.2 Pengiriman Parameter Secara Acuan
Bila pengiriman parameter secara acuan, maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai parameter nyata. Parameter-parameter ini disebut dengan variable parameter serta dideklarasikan di deklarasi prosedur dengan menggunakan kata cadangan Var, sebagai berikut :
PROCEDURE hitung (VAR A, B, C : integer ) ;
Contoh program :
Procedure Hitung ( var A, B, C : integer ) ;
Begin
C : = A + B ;
End ;
Var
X, Y, Z : integer ;
Begin
X : = 2 ; Y : = 3 ;
Hitung ( X, Y, Z ) ;
Writeln (‘ X = ‘, X , ‘ Y = ‘ , Y, ‘ Z = ‘ , Z ) ;
End.
Output program :
X = 2 Y = 3 Z = 5
Penjelasan program :

- pengiriman parameter secara acuan merupakan pengiriman dua arah, bolak-balik, sehingga perubahan nilai di parameter formal akan mempengaruhi nilai parameter nyata juga. Pada contoh, nilai parameter nyata Z akan mengikuti perubahan nilai dari parameter formal C.

2.1.3 Pengiriman Parameter Sebagian Secara Nilai, Sebagian Acuan
Pengiriman parameter dapat dicampur sebagian secara nilai dan sebagian secara acuan dalam suatu prosedur. Parameter yang hanya dibutuhkan pada prosedur saja dapat dikirimkan secara nilai dan yang ingin dikirimkan balik dapat dilakukan secara acuan, sebagai berikut :
PROCEDURE Hitung ( A, B : integer ; Var C : integer ) ;
Contoh program :
Procedure Hitung ( A, B : integer ; Var C ; integer ) ;
Begin
C : = A + B ;
End ;
Var
X, Y, Z : integer ;
Begin
X : = 2 ; Y : = 3 ;
Hitung ( X, Y, Z ) ;
Writeln ( ‘ X = ‘, X , ‘ Y = ‘, Y , ‘ Z = ‘, Z ) ;
End.
Output program :
X = 2 Y = 3 Z = 5
1.2 Prosedur Memanggil Prosedur Yang Lain
Prosedur dapat memanggil prosedur yang lainnya.
Contoh program :
Procedure Pro1 ( X1 : integer ) ;
Begin
Writeln ( ‘Nilai X = ‘, X1, ‘ada di prosedur Pro1’ ) ;
End ;
Procedure Pro2 (X2 : integer ) ;
Begin
Writeln ( ‘Nilai X = ‘, X2, ‘ada diprosedur Pro2’ ) ;
Pro1 (X2) ;
End ;
Var
X : integer ;
Begin
X : = 5 ;
Pro2 ( X ) ;
End.
Output program :
Nilai X = 5 ada diprosedur Pro2
Nilai X = 5 ada diprosedur Pro1
1.3 Prosedur Tersarang
Adalah prosedur yang berada didalam prosedur yang lainnya.
Bentuk Umum :
Program
Procedure
Procedure
Begin



End ;
Begin



End ;
Begin



end .
Contoh fungsi
1.Program Latihan_Function;
uses wincrt;
var
x,y:longint;
Function Tambah(a,b:longint):longint;
var
Hasil:longint;
begin
Hasil:=a+b;
Tambah:=Hasil;
end;

begin
write('Masukkan bilangan pertama: ');readln(x);
write('Masukkan bilangan kedua: ');readln(y);
write('Hasilnya adalah ',(Tambah(x,y)));
end.

2.Program Menukar_Nilai_A_dan_C;
uses wincrt;
var
A,B,C:longint;

Function Tukar(Var A1,B1,C1:longint):longint;
var
temp:longint;
begin
temp:=A1;
A1:=C1;
C1:=temp;
end;

begin
write ('Masukkan Nilai A=');readln (A);
write ('Masukkan Nilai B=');readln (B);
write ('Masukkan Nilai C=');readln (C);
Tukar(A,B,C);
writeln ('Nilai A setelah ditukar ',A);
writeln ('Nilai B setelah ditukar ',B);
writeln ('Nilai C setelah ditukar ',C);
end.
3.Program Fungsi;
uses wincrt;
var x,y:integer;
FUNCTION Tambah (A,B:real):real;
var
Hasil:real;
begin
Hasil:=A+B;
Tambah:=Hasil;
end;
begin
clrscr;
writeln (Tambah(10,30):1);
end.
Program Fungsi;
uses wincrt;
var x,y:integer;
FUNCTION Tambah (A,B:real):real;
var
Hasil:real;
begin
Hasil:=A+B;
Tambah:=Hasil;
end;
begin
write('masukkan nilai x = ');readln (x);
write('masukkan nilai y = ');readln (y);
writeln (Tambah(x,y):1);
end.
Contoh procedure
1.Program Operasi_Tambah_Kurang_Kali_Procedure;
uses wincrt;
Procedure Penjumlahan(Var a,b:longint);
var
c:longint;
begin
writeln ('Operasi yang anda pilih adalah Penjumlahan');
gotoxy (20,5); write ('Masukkan bilangan pertama=');readln (a);
gotoxy (20,6); write ('Masukkan bilangan kedua=');readln (b);
c:=a+b;
gotoxy (20,7); writeln ('Hasil Penjumlahan adalah ',c);
end;

Procedure Pengurangan(Var a,b:longint);
var
d:longint;
begin
writeln ('Operasi yang anda pilih adalah Pengurangan');
gotoxy (20,5); write ('Masukkan bilangan pertama=');readln (a);
gotoxy (20,6); write ('Masukkan bilangan kedua=');readln (b);
d:=a-b;
gotoxy (20,7); writeln ('Hasil Pengurangan adalah ',d);
end;

Procedure Perkalian(Var a,b:longint);
var
e:longint;
begin
writeln ('Operasi yang anda pilih adalah Perkalian');
gotoxy (20,5); write ('Masukkan bilangan pertama=');readln (a);
gotoxy (20,6); write ('Masukkan bilangan kedua=');readln (b);
e:=a*b;
gotoxy (20,7); writeln ('Hasil Perkalian adalah ',e);
end;

var
a,b,c,d,e,i:longint;
f,y,n:string;
begin
f:='y';
while f='y' do
begin
gotoxy (25,3); writeln ('Menu Opersai Dua Bilangan');
gotoxy (25,5); writeln ('1. Penjumlahan');
gotoxy (25,6); writeln ('2. Pengurangan');
gotoxy (25,7); writeln ('3. Perkalian');
gotoxy (25,9); write ('Masukkan Pilihan Anda= '); readln (i);
clrscr;
gotoxy (20,3); If i=1 then
begin
penjumlahan(a,b);
end
else If i=2 then
begin
pengurangan(a,b);
end
else If i=3 then
begin
perkalian(a,b);
end
else writeln ('Pilihan Anda Salah');
gotoxy (20,9); write ('Apakah anda ingin mengulang(y/n)?');read (f);
clrscr;
end;
end.
2.Program procedur1;
uses wincrt;
procedure kuadrat;
var
x,y:real;
begin
write ('nilai x = ');readln(x);
y:=x*x;
writeln ('nilai y =',y:6:2);
end;
begin
kuadrat;
end.

PROGRAM ARRAY

ARRAY (LARIK)

Array (larik) merupakan tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe sama.
Array dibedakan menjadi :
Array berdimensi satu
Array berdimensi satu dapat digambarkan sebagai kotak panjang yang terdiri atas beberapa kotak kecil. Bentuk umum dalam pendeklarasian array : nama tipe : ARRAY [tipe ordinal] of tipe elemen
Setelah tipe dideklarasikan, berikutnya dapat digunakan dalam pendeklarasian variable. Kemudian elemen array diakses dengan menyebutkan nilai indeksnya di dalam tanda kurung.
Array berdimensi banyak
Array berdimensi dua, atau dalam halini berdimensi dua mewakili suatu bentuk table atau matriks yaitu indeks pertama dapat menunjukkan baris dan indeks kedua dapat menunjukkan kolom dari table atau matriks. Bentuk deklarasi array berdimensi 2 dapat berbentuk :
Nama array : array [tipe-indeks1] of array [tipe-indeks 2] of tipe larik

Contoh :
1. Program Matriks;
uses wincrt;
var tabel:array[1..3,1..2] of integer;
i,j:integer;
begin
tabel [1,1]:=50;
tabel [1,2]:=55;
tabel [2,1]:=21;
tabel [2,2]:=26;
tabel [3,1]:=10;
tabel [3,2]:=1;
for i:=1 to 3 do
begin
for j:=1 to 2 do
write(tabel[i,j],' ');
writeln;
end;
end.
Program Penjumlahan_Matriks;
uses wincrt;
var a,b,c:array[1..25,1..25] of integer;
i,j,k,l,m,n:byte;
begin
writeln(' PENJUMLAHAN MATRIKS ');
writeln(' ================= ');
write ('Baris Matriks Pertama = Baris Matriks Kedua = ');readln(m);
write ('Kolom Matriks pertama = Kolom Matriks Kedua = ');readln(n);
writeln;
writeln('Komponen matriks yang pertama');
for i:=1 to m do
begin
for j:=1 to n do
begin
write ('Nilai[',i,',',j,']=');readln(a[i,j]);
end;
writeln;
end;
writeln('Komponen matriks yang kedua');
for i:=1 to m do
begin
for j:=1 to n do
begin
write ('Nilai[',i,',',j,']=');readln(b[i,j]);
end;
writeln;
end;
for i:=1 to m do
begin
for j:=1 to n do
begin
c[i,j]:=a[i,j]+b[i,j];
end;
end;
writeln;
writeln('Hasil Penjumlahan Matriks');
writeln;
for i:=1 to m do
begin
writeln;
for j:=1 to n do
write(c[i,j]:4);
end;
end.
2. Program Memasukkan_Nilai_Matriks;
uses wincrt;
var tabel:array[1..100,1..100] of integer;
i,j:integer;
begin
write('masukkan baris = ');readln(i);
write('masukkan kolom = ');readln(j);
writeln('matriks anda berukuran = ',i,'x',j);
for i:=1 to i do
for j:=1 to j do
begin
write('nilai : ','');readln(tabel[i,j]);
end;
writeln;
writeln('Matriksnya:','');
for i:=1 to i do
begin
for j:=1 to j do
write(tabel[i,j]:3);writeln;
end;
end.
3.Program Menghitung_Rata_Rata;
uses wincrt;
var x:array[1..10] of integer;
i,n:integer;
jumlah,u:real;
begin
write('berapa kali data yang anda masukkan ? ');readln(n);
for i:=1 to n do
begin
write ('masukkan data = ');readln(x[i]);
end;
begin
clrscr;
for n:= 1 to i do
writeln('data = ' ,(x[n]));
end;
jumlah:=0;
for i:=1 to n do
jumlah:=jumlah+(x[i]);
u:=jumlah/n;
writeln ('u = ' ,u:2:2);
end.
4.Program Membuat_matriks_3x2;
uses wincrt;
var tabel:array[1..3,1..2]of integer;
i,j:integer;
begin
tabel[1,1]:=5;
tabel[1,2]:=25;
tabel[2,1]:=32;
tabel[2,2]:=22;
tabel[3,1]:=45;
tabel[3,2]:=11;
for i:=1 to 3 do
begin
for j:=1 to 2 do
write(tabel[i,j]:10);
writeln;
end;
end.
5.Program Membuat_matriks_baris_dan_kolom_belum_ditentukan;
uses wincrt;
var tabel:array[1..10,1..10]of integer;
i,j,m,n:integer;
begin
write('masukkan baris = ');read(m);
write('masukkan kolom = ');read(n);
clrscr;
for i:= 1 to m do
begin
for j:= 1 to n do
begin
write('nilai[',i,',',j,']?');read(tabel[i,j]);
end;
writeln;
end;
for i:= 1 to m do
begin
for j:= 1to n do
begin
write(tabel[i,j]:9);
end;
writeln;
end;
end.

PROGRAM PERULANGAN

PERULANGAN (LOOP)

1.FOR
Pernyataan for biasanya digunakan untuk melakukan pengulangan yang jumlahnya telah diketahui sebelumnya.
Pengulangan Positif  pengulangan dengan penghitung (counter) dari kecil ke besar atau dengan kata lain pertambahannya positif.
Bentuknya : For nilai awal to nilai akhir do.
Contoh
program segitiga_pascal;
uses wincrt;
var n,i,j:integer;
begin
write('Masukkan angka untuk segitiga asyik: ');readln(n);
for j:=1 to n do
begin
for i:=1 to j do
write (2:4);
writeln;
end;
end.
Apabila program dijalankan, maka tampilannya :
Masukkan angka untuk segitiga asyik: 4 (Masukkan angka, misal 4)
2
2 2
2 2 2
2 2 2 2


Pengulangan Negatif  pengulangan dengan penghitung (counter) dari besar ke kecil atau dengan kata lain pertambahannya positif.
Bentuknya : For nilai awal downto nilai akhir do.
Contoh :
Program segitiga_pascal;
uses wincrt;
var n,i,j:integer;
begin
write('masukkan angka untuk segitiga asyik: ');readln(n);
for j:=n downto 1 do
begin
for i:=1 to j do
write (10:4);
writeln;
end;
end.


Apabila program dijalankan, maka tampilannya :
Masukkan angka untuk segitiga asyik: 5 (Masukkan angka, misal 5)
10 10 10 10 10
10 10 10 10
10 10 10
10 10
10



2.WHILE DO

Pernyataan while-do biasanya digunakan untuk melakukan pengulangan yang jumlahnya tidak diketahui dan diulang hingga kondisi salah.

While logika do pernyataan
Contoh:
Program while_do;
uses wincrt;
var x:integer;
begin
x:=1;
while (x<8) do
begin
writeln(x,'. Segitiga ajaib’);
x:=x+1;
end;
end.

Apabila program dijalankan, maka tampilannya :
1.Segitiga ajaib
2.Segitiga ajaib
3.Segitiga ajaib
4.Segitiga ajaib
5.Segitiga ajaib
6.Segitiga ajaib
7.Segitiga ajaib
8.REPEAT…UNTIL
Repeat biasa dipakai untuk menangani pengulangan yang jumlahnya belum pasti, diulang hingga kondisi benar.

Repeat
Pernyatan_1;
Pernyatan_2;

Pernyatan_n;
Until

Contoh:
Program Repeat_until;
uses wincrt;
var x:integer;
begin
x:=2;
repeat
writeln (x,'. Segitiga asik’);
x:=x+1;
until x>4;
end.

Apabila program dijalankan, maka akan menghasilkan tampilan sebagai berikut:
2.Segitiga asik
3.Segitiga asik
4.Segitiga asik

Contoh lain :

1.Program Pengulangan_for_do;
Uses Wincrt;
Var
a,b:longint;
Begin
Write ('Kita akan mengulang berapa kali : '); read (b);
For b:=1 to b do
a:=1;
For a:=1 to b do
Writeln (a,'.','Aku Suka Indonesia');
End.

2.Program For…do;
Uses Wincrt;
Var
a:longint;
Begin
For a:=1 to 5 do
Writeln (a,' . Pemrograman Komputer');
End.

3.Program Repeat_until;
Uses Wincrt;
Var
a:longint;
Begin
a:=0;
Repeat
a:=a+1;
Writeln (a,' . Pemrograman Komputer');
Until a>4;
End.

4.Program While_do;
Uses Wincrt;
Var
a:longint;
Begin
a:=0;
While a<5 do
Begin
a:=a+1;
Writeln (a,' . Pemrograman Komputer');
End;
End.

5.Program Cetak_BilGanjil;
Uses wincrt;
Var
I : Integer;
Begin
I:=1;
While I < 10 Do
begin
I:=I +2;
Write(I:6);
end;
End.
6.Program Segitiga_Asyik;
Uses Wincrt;
Var
a,b,c:longint;
Begin
Write ('Berapa baris segitiga asyik yang kamu inginkan: '); read (a);
For c:=1 to a do
Begin
For b:=1 to c do
Write (c:3);
Writeln;
Writeln;
End;
End.

7.Program Jumlah_Segitiga_Asyik;
Uses Wincrt;
Var
a,b,c,d:longint;
Begin
Write ('Berapa baris segitiga asyik yang kamu inginkan: '); read (a);
For c:=1 to a do
Begin
For b:=1 to 1 do
Write (c:2);
For b:=2 to c do
Write (' +',c:2);
For b:=1 to c do
d:=c*b;
Write (' = ');
Write (d);
Writeln;
Writeln;
End;
End.

8.Program Jumlah_Segitiga_Asik;
Uses Wincrt;
Var
a,b,c,d:longint;
Begin
Write ('Berapa baris segitiga asik yang kamu inginkan: '); read (a);
For c:=1 to a do
Begin
For b:=1 to c do
Begin
Write (c:2);
If b End;
For b:=1 to c do
d:=b*b;
Write (' = ');
Write (d);
Writeln;
Writeln;
End;
End.

9.Program Menampilkan_Bilangan_Genap;
Uses Wincrt;
Var
x,angka_awal:longint;
Begin
angka_awal:=2;
Repeat
Write (angka_awal,' ');
angka_awal:=angka_awal+2;
Until angka_awal>50
End.

10.Program Penjumlahan_Deret_Bilangan_Bulat_1_Sampai_n;
Uses Wincrt;
Var
bilangan_akhir,bilangan_awal,jumlah:longint;
Begin
bilangan_awal:=1;
jumlah:=0;
Write ('Masukkan bilangan akhir yang diinginkan = '); readln (bilangan_akhir);
Repeat
Write (bilangan_awal);
If bilangan_awal jumlah:=jumlah+bilangan_awal;
bilangan_awal:=bilangan_awal+1;
Until bilangan_awal>bilangan_akhir;
Write (' = ',jumlah);
End.

11.Program Penjumlahan_Deret_Bilangan_1_sd_12;
Uses Wincrt;
Var
bilangan_awal,bilangan_akhir,jumlah:integer;
Begin
bilangan_akhir:=12;
jumlah:=0;
bilangan_awal:=1;
Repeat
Write (bilangan_awal,' + ');
jumlah:=jumlah+bilangan_awal;
bilangan_awal:=bilangan_awal+1;
Until bilangan_awal>bilangan_akhir;
Writeln ('=',jumlah);
End.
12.Program Penjumlahan_Deret_Bilangan_Bulat;
uses wincrt;
var
bilangan_awal,bilangan_akhir,bilangan_setelah_awal,bilangan_penolong1,bilangan_penolong2:longint;
jumlah1,jumlah2,jumlah_akhir:longint;
begin
write ('Masukkan bilangan awal yang diinginkan = '); readln (bilangan_awal);
write ('Masukkan bilangan akhir yang diinginkan = '); readln (bilangan_akhir);
If bilangan_akhir=bilangan_awal then write (bilangan_awal)
else begin
jumlah_akhir:=0;
jumlah1:=0;
jumlah2:=0;
bilangan_setelah_awal:=bilangan_awal+1;
bilangan_penolong1:=0;
bilangan_penolong2:=0;
Write (bilangan_awal);
repeat
jumlah2:=jumlah2+bilangan_penolong2;
bilangan_penolong2:=bilangan_penolong2+1;
until bilangan_penolong2>=bilangan_awal;
Repeat
jumlah1:=jumlah1+bilangan_penolong1;
bilangan_penolong1:=bilangan_penolong1+1;
Until bilangan_penolong1>bilangan_akhir;
repeat
write (' + ',bilangan_setelah_awal);
bilangan_setelah_awal:=bilangan_setelah_awal+1;
jumlah_akhir:=jumlah1-jumlah2;
until bilangan_setelah_awal>bilangan_akhir;
write (' = ',jumlah_akhir);
end
End.

PENYELEKSIAN KONDISI

PENYELEKSIAN KONDISI

Tiap program yang komplek mengandung suatu penyeleksian kondisi. Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari hasil kondisi yang diseleksi tersebut. Untuk menyeleksi suatu kondisi, di dalam bahasa pascal dapat dipergunakan statemen if case.
Statemen (pernyataan) If dapat dibagi menjadi tiga, yaitu:
1. Statemen If-Then



2. Statemen If-then…Else





Contoh:
Program Kelulusan_Hasil_Ujian;
uses wincrt;
var a:integer;
begin
write('Nilai Mahasiswa = ');readln(a);
If a>60 then writeln('Selamat Anda Lulus!')
else writeln('Maaf Anda Tidak Lulus')
end.
3. Statemen If bersarang (Nested)
Bentuk statemen if yang mengandung pernyataan if yang lain.
If Then
Begin
If Then
Else
End.
Statemen case dapat dibagi menjadi dua, yaitu:
1.Statemen Case-Of
Struktur case-of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mempunyai tipe sama dengan selector.
Case of
Daftar case-label1:statemen1;
Daftar case-label2:statemen2;
Daftar case-labe3:statemen3; .
Daftar case-labeln:statemenn;
End;
2.Statemen Case-Of…Else
Statemen Case-Of…Else merupakan pengembangan dari struktur case of dan juga pengembangan dari standar Pascal. Dengan struktur Case-Of…Else, bila tidak ada kondisi yang terpenuhi, maka statemen yang akan diproses di dalam lingkunagn Case-Of adalah statemen yang ada di Else.

Contoh penyeleksian kondisi :

1.Program Kelulusan_Hasil_Ujian;
uses wincrt;
var
nilai:integer;
keterangan:string[25];
begin
Keterangan:='Selamat Anda Lulus !';
write('Nilai Mahasiswa = ');readln(nilai);
If Nilai<60 then keterangan:='Maaf Anda Belum Lulus !';
write(keterangan);
end.
2.Program Bilangan_Positif_Negatif_Netral;
uses wincrt;
var bilangan:integer;
begin
write('Masukkan bilangan = '); readln (bilangan);
if bilangan>0 then write ('Bilangan Positif') else
if bilangan=0 then write ('Bilangan Netral') else
write ('Bilangan Negatif');
end.
3.Program Nilai_Terbesar;
Uses Wincrt;
Var
a,b,c:longint;
Begin
Write ('Masukkan 1: ');Readln(a);
Write ('Masukkan 2: ');Readln(b);
Write ('Masukkan 3: ');Readln(c);
If (a>b) and (a>c) then Write(a);
If (b>a) and (b>c) then Write(b);
If (c>a) and (c>b) then Write(c);
End.
4.Program Menu_Makanan;
uses wincrt;
var x:integer;
menu:string;
begin
writeln('========================');
writeln('Menu Makanan Rumah Makan');
writeln('========================');
writeln('1. Nasi Goreng');
writeln('2. Mie Goreng');
writeln('3. Nasi Gudeg');
write('Pilih Menu Favoritmu! ');readln(x);
if x=1 then write ('>>Nasi Goreng = Rp 6.000,00') else
if x=2 then write ('>>Mie Goreng = Rp 5.000,00') else
if x=3 then write ('>>Nasi Gudeg = Rp 4.500,00') else
writeln ('Pilihan anda tidak ada dalam menu kami')
end.
5.Program Menu_Makanan;
uses wincrt;
var x:integer;
menu:string;
begin
gotoxy(10,1);writeln('========================');
gotoxy(10,2);writeln('Menu Makanan Rumah Makan');
gotoxy(10,3);writeln('========================');
gotoxy(10,5);writeln('1. Ayam Bakar');
gotoxy(10,6);writeln('2. Ayam Goreng');
gotoxy(10,7);writeln('3. Ayam Panggang');
gotoxy(10,10);writeln('Pilih Menu Favoritmu!');
gotoxy(10,12);readln(x);
case x of
1: begin
clrscr;
gotoxy(10,4);writeln('>> Ayam Bakar = Rp 7.000,00 <<');
end;
2: begin
clrscr;
gotoxy(10,4);writeln('>> Ayam Goreng = Rp 7.000,00 <<');
end;
3: begin
clrscr;
gotoxy(10,4);writeln('>> Ayam Panggang = Rp 7.000,00 <<');
end;
end;
end.
6.Program Terbilang;
Uses Wincrt;
Var
a,b,c:longint;
Begin
Write('Masukkan Angka: ');readln(a);
b:=a div 10;
c:=a mod 10;
Writeln;
Begin
If (b=1) and (c=0) then write('sepuluh');
If (b=1) and (c=1) then write('sebelas');
If (b=1) and (c=2) then write('dua belas');
If (b=1) and (c=3) then write('tiga belas');
If (b=1) and (c=4) then write('empat belas');
If (b=1) and (c=5) then write('lima belas');
If (b=1) and (c=6) then write('enam belas');
If (b=1) and (c=7) then write('tujuh belas');
If (b=1) and (c=8) then write('delapan belas');
If (b=1) and (c=9) then write('sembilan belas');
Begin
If (b=0) and (c=1) then write('satu');
If (b=0) and (c=2) then write('dua');
If (b=0) and (c=3) then write('tiga');
If (b=0) and (c=4) then write('empat');
If (b=0) and (c=5) then write('lima');
If (b=0) and (c=6) then write('enam');
If (b=0) and (c=7) then write('tujuh');
If (b=0) and (c=8) then write('delapan');
If (b=0) and (c=9) then write('sembilan');
End;
Case b of
2: Write('dua puluh ');
3: Write('tiga puluh ');
4: Write('empat puluh ');
5: Write('lima puluh ');
6: Write('enam puluh ');
7: Write('tujuh puluh ');
8: Write('delapan puluh ');
9: Write('sembilan puluh ');
End;
If b>1 then
Case c of
1: Write('satu');
2: Write('dua');
3: Write('tiga');
4: Write('empat');
5: Write('lima');
6: Write('enam');
7: Write('tujuh');
8: Write('delapan');
9: Write('sembilan');
End;
End;
End.
7.Program Kelulusan;
uses wincrt;
var
a,b,c,d:real;
Ket:string[11];
begin
writeln ('Masukkan Nilai PDB=');readln(a);
writeln ('Masukkan Nilai Kalkulus=');readln(b);
writeln ('Masukkan Nilai Statistika Inferensial=');readln(c);
d:=(a+b+c)/3;
writeln ('Rata-rata Nilai',(d):5:2);
Ket:='Lulus';
if d <50 then Ket:='Tidak Lulus';
writeln(Ket);
end.
8.Program Mencari_Akar_Persamaan;
uses wincrt;
var a,b,c,d,e,x1,x2,x:real;
begin
repeat
repeat
writeln('masukkan nilai a=');readln(a);
writeln('masukkan nilai b=');readln(b);
writeln('masukkan nilai c=');readln(c);
until a<>0;
d:=sqr(b)-4*a*c;
until d>=0;
if d=0 then
begin
e :=-b/2*a;
writeln('x1=x2=',e:5:2);
end else
if d>0 then
begin
x1:=-b+sqrt(d)/(2*a);
x2:=-b-sqrt(d)/(2*a);
writeln('x1=',x1:5:2);
writeln('x2',x2:5:2);
end;
end.
9.Program Operasi_Tambah_Kurang_Kali_Bagi_Div_Mod;
Uses Wincrt;
Var
a,b,i:longint;
c,d,e,f,g,h:real;
Begin
Gotoxy (25,3); Writeln ('Menu Opersai Dua Bilangan');
Gotoxy (25,5); Writeln ('1. Penjumlahan');
Gotoxy (25,6); Writeln ('2. Pengurangan');
Gotoxy (25,7); Writeln ('3. Perkalian');
Gotoxy (25,8); Writeln ('4. Pembagian');
Gotoxy (25,9); Writeln ('5. Pembagian Bulat');
Gotoxy (25,10); Writeln ('6. Sisa Hasil Pembagian');
Gotoxy (25,12); Write ('Masukkan Pilihan Anda= '); readln (i);
Clrscr;
Gotoxy (20,3); If i=1 then
Begin
Writeln ('Operasi yang anda pilih adalah Penjumlahan');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
c:=a+b;
Gotoxy (20,7); Writeln ('Hasil Penjumlahan adalah ',(c):5:0);
End
else If i=2 then
Begin
Writeln ('Operasi yang anda pilih adalah Pengurangan');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
d:=a-b;
Gotoxy (20,7); Writeln ('Hasil Pengurangan adalah ',(d):5:0);
End
else If i=3 then
Begin
Writeln ('Operasi yang anda pilih adalah Perkalian');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
e:=a*b;
Gotoxy (20,7); Writeln ('Hasil Perkalian adalah ',(e):5:0);
End
else If i=4 then
Begin
Writeln ('Operasi yang anda pilih adalah Pembagian');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
f:=a/b;
Gotoxy (20,7); Writeln ('Hasil Pembagian adalah ',(f):5:0);
End
else If i=5 then
Begin
Writeln ('Operasi yang anda pilih adalah Pembagian Bulat');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
g:=a div b;
Gotoxy (20,7); Writeln ('Hasil Pembagian Bulat adalah ',(g):5:0);
End
else If i=6 then
Begin
Writeln ('Operasi yang anda pilih adalah Sisa Hasil Pembagian');
Gotoxy (20,5); Write ('Masukkan bilangan pertama=');readln (a);
Gotoxy (20,6); Write ('Masukkan bilangan kedua=');readln (b);
h:=a mod b;
Gotoxy (20,7); Writeln ('Sisa Hasil Pembagian adalah ',(h):5:0);
End
else Writeln ('Pilihan Anda Salah');
End.

10.Program_Rumus_ABC;
uses wincrt;
var
a,b,c,x1,x2,D,e:real;
begin
writeln(‘masukkan nilai a?’);readln(a);
writeln(‘masukkan nilai b?’);readln(b);
writeln(‘masukkan nilai c?’);readln(c);
D:=b*b-4*a*c;
If a=0 then writeln(‘tidak memiliki persamaan kuadrat’)
else if D<0 then write(‘merupakan bilangan imaginer’)
else if D=0 then
begin
e:=-b/2*a;
writeln(‘x1=x2= ‘,e:5:2);
end; else
if D>0 then
begin
x1:=(-b+sqrt(D))/(2*a);
x2:=(-b-sqrt(D))/(2*a);
writeln(‘x1= ‘,x1:5:2);
writeln(‘x2= ‘,x2:5:2);
end;
end.

PROGRAM BERURUT

BERURUT
Program berurut, adalah menjalankan proses secara berurutan. dari proses satu dilanjutkan proses kedua dan dilanjutkan ke proses berikutnya. tidak ada percanbangan dan tidak ada perulangan.
Contoh flowchart
Membuat algoritma dengan flowchart untuk mencari konversi jam ke detik sudah diketahui waktu dalam jam berlaku untuk sebarang waktu dalam jam, yang kita inginkan.



. 1. Luas daerah persegi panjang dan kelilingnya.

Program Luas_Persegi_Panjang_dan_Kelilingnya;
uses wincrt;
var
panjang, lebar, luas, keliling : real;
begin
write('masukkan panjang =');readln(panjang);
write('masukkan lebar =');readln(lebar);
luas:=panjang*lebar;
keliling:=2*(panjang+lebar);
writeln('Luas=',luas:10:2);
writeln('Keliling=',keliling:10:2);
end.

2. Volum Kubus dan luas permukaan kubus.

Program Volume_Kubus_dan_Luas_Permukaan_Kubus;
uses wincrt;
var
alas, volume, luas_permukaan:real;
begin
write('masukkan alas =');readln(alas);
volume:=alas*alas*alas;
luas_permukaan:=6*(alas*alas);

writeln('volume=',volume:5:2);
writeln('luas_permukaan=',luas_permukaan:5:2);
end.

3. Luas daerah lingkaran dan keliling lingkaran.

Program Luas_Lingkaran_dan_Keliling_Lingkaran;
uses wincrt;
const
phi=3.142857;
var
r, Luas, Keliling:real;
begin
write ('masukkan jari-jari lingkaran: ');readln(r);
Luas:=(phi*r*r);
Keliling:=(phi*2*r);

writeln ('luas:', Luas:10:3);
writeln ('keliling:', Keliling:10:3);
end.

4. Mempertukarkan nilai A dan B, nilai A dan B diinput.

Program Mempertukarkan_Nilai;
uses wincrt;
var
A:integer;
B:integer;
temp:integer;
begin
write('masukkan nilai A =');readln(A);
write('masukkan nilai B =');readln(B);
temp:=A;
A:=B;
B:=temp;

writeln('A =',A);
writeln('B =',B);
end.

5. Luas permukaan tabung dan kerucut.

Program Luas_Permukaan_Tabung_dan_Kerucut;
uses wincrt;
const
phi=3.142857;
var
r, t, s, luas_permukaan_tabung, luas_permukaan_kerucut:real;
begin
write('masukkan jari-jari =');readln(r);
write('masukkan tinggi =');readln(t);
write('masukkan selimut_kerucut =');readln(s);
luas_permukaan_tabung:=((2*phi*r*r)+(2*phi*r*t));
luas_permukaan_kerucut:=((phi*r*r)+(phi*r*s));
writeln('luas_permukaan_tabung=',luas_permukaan_tabung:5:2);
writeln('luas_permukaan_kerucut=',luas_permukaan_kerucut:5:2);
end.

6. Penjumlahan, pengurangan, perkalian, pembagian, pembagian bulat, dan sisa hasil bagi dalam sebuah program.

Program Operasi_Bilangan;
uses wincrt;
var
a,b,c,d,e,h:integer;
f,g:real;
begin
write('masukkan nilai pertama = ');readln(a);
write('masukkan nilai kedua = ');readln(b);
c:=a+b;
d:=a-b;
e:=a*b;
f:=a/b;
g:=a div b;
h:=a mod b;
writeln('hasil penjumlahan = ',c);
writeln('hasil pengurangan = ',d);
writeln('hasil perkalian = ',e);
writeln('hasil pembagian = ',f:0:2);
writeln('hasil pembagian bulat = ',g:0:2);
writeln('sisa hasil bagi = ',h);
end.

7. Meghitung gaji karyawan apabila diinput nama orang, gaji pokok, tunjangan istri 15 % dari gaji pokok, tunjangan tiap anak 20 % dari gaji pokok, pajak 15 % dari gaji keseluruhan.

Program Gaji_Karyawan;
uses wincrt;
var
nama_orang:string;
gaji_pokok:real;
tunjangan_istri:real;
tunjangan_tiap_anak:real;
n:integer;
pajak:real;
total_gaji:real;
begin
write ('masukkan nama orang =');readln(nama_orang);
write ('masukkan gaji pokok =');read(gaji_pokok);
write ('masukkan banyaknya anak =');readln(n);
tunjangan_istri:=(0.15*gaji_pokok);
tunjangan_tiap_anak:=(0.2*n*gaji_pokok);
pajak:=(0.15*(gaji_pokok+tunjangan_istri+tunjangan_tiap_anak));
total_gaji:=(gaji_pokok+tunjangan_istri+tunjangan_tiap_anak-pajak);
writeln('tunjangan_istri=',tunjangan_istri:10:2);
writeln('tunjangan_tiap_anak=',tunjangan_tiap_anak:10:2);
writeln('pajak=',pajak:10:2);
writeln('total_gaji=',total_gaji:10:2);
end.

8. Koordinat titik tengah dari kedua titik yang diketahui.

Program Koordinat_Titik_Tengah;
uses wincrt;
var
x1, x2, y1, y2, a, b, titik_tengah_x, titik_tengah_y:real;
begin
write('masukkan nilai x1 =');readln(x1);
write('masukkan nilai x2 =');readln(x2);
write('masukkan nilai y1 =');readln(y1);
write('masukkan nilai y2 =');readln(y2);
titik_tengah_x:=((x1+x2)/2);
titik_tengah_y:=((y1+y2)/2);
writeln('titik_tengah_x=',titik_tengah_x:10:2);
writeln('titik_tengah_y=',titik_tengah_y:10:2);
end.

9. Konversi dari jam ke detik.

Program Konversi_Jam_ke_Detik;
uses wincrt;
var jam, detik:real;
begin
write('masukkan jam :');readln(jam);
detik:=jam*3600;
writeln('detik =',detik:10:2);
end.

10. Konversi detik ke jam.

Program Konversi_Detik_ke_Jam;
uses wincrt;
var detik, jam:real;
begin
write('masukkan detik :');readln(detik);
jam:=detik / 3600;
writeln('jam =',jam:10:2);
end.

11. Apabila diketahui waktu mulai telepon(jam,menit,detik) dan waktu selesai telepon(jam,menit,detik), berapakah lamanya telepon dalam detik.

Program Durasi_Telepon;
uses wincrt;
var j1, j2, m1, m2, d1, d2, j, m, d, sisa, durasi:integer;
begin
write ('jam mulai=');read(j1,m1,d1);
write ('jam selesai =');readln(j2,m2,d2);
Durasi:=(j2-j1)*3600+(m2-m1)*60+(d2-d1);
j:=Durasi div 3600;
sisa:=Durasi mod 3600;
m:=sisa div 60;
d:=sisa mod 60;
writeln ('durasi jam=',j);
writeln ('durasi menit=',m);
writeln ('durasi detik=',d);
end.

12. Biaya telepon apabila diinput mulai telepon dan selesai telepon, dan biaya pulsa per Rp 200,- dan 1 pulsa adalah 5 detik ( sisa < 5 detik diabaikan).

Program Menghitung_Biaya_Telepon;
Uses Wincrt;
Var
hh1,mm1,ss1,hh2,mm2,ss2,Total_Detik,Biaya_Telepon:longint;
Begin
Writeln ('Waktu mulai telepon:');
Write ('Jam =');read (hh1);
Write ('Menit=');read (mm1);
Write ('Detik=');read (ss1);
Writeln ('Waktu selesai telepon:');
Write ('Jam =');read (hh2);
Write ('Menit=');read (mm2);
Write ('Detik=');read (ss2);
Total_Detik:=(hh2-hh1)*3600+(mm2-mm1)*60+(ss2-ss1);
Biaya_Telepon:=(Total_Detik div 5)*200;
Writeln ('Lama Waktu Telepon dalam Detik adalah ',(Total_Detik), (' detik.'));
Writeln ('Biaya Telepon adalah Rp ',Biaya_Telepon);
End.

13. Konversi Suhu dari Celcius ke Kelvin dan Fahrenhet.

Program suhu;
uses wincrt;
var
celcius,kelvin:integer;
fahrenheit:real;
begin
write('Masukkan suhu dalam celcius = ');readln(celcius);
fahrenheit:=(9/5*celcius)+32;
kelvin:=celcius+273;
writeln('Suhu dalam fahrenheit = ',fahrenheit:5:2);
writeln('Suhu dalam kelvin = ',kelvin);
end.

14. Menghitung umur seseorang apabila diasumsikan dalam 1 bulan ada 30 hari dan dalam 1 tahun ada 365 hari.

Program Menghitung_Umur_Seseorang;
uses wincrt;
var
d1,d2,m1,m2,y1,y2,H,I,J,K,L:integer;
begin
writeln('Menghitung umur seseorang');
write('Masukkan tanggal lahir = ');readln(d1,m1,y1);
write('Masukkan tanggal sekarang = ');readln(d2,m2,y2);
H:=(y2-y1)*365+(m2-m1)*30+(d2-d1);
I:=H div 365;
J:=H mod 365;
K:=J div 30;
L:=J mod 30;
write('umur anda sekarang adalah = ',I,' tahun ',K,' bulan ',L,' hari');
end.

PEMOGRAMAN DALAM TURBO PASCAL

PEMOGRAMAN DALAM TURBO PASCAL

Struktur suatu program pascal dapat terdiri:
1.Judul Program
2.Blok Program
a.Bagian deklarasi.
i.Deklarasi konstanta
Penggunaan identifier yang berisi nilai-nilai konstanta harus didefinisikan terlebih dahulu pada bagian ini.
Deklarasi konstanta diawali dengan kata cadangan const diikuti oleh kumpulan identifier yang diberi suatu nilai konstanta.
Contoh : const
Gaji = 10000;
Potongan = 0,2;
ii.Deklarasi variabel
Variabel adalah identifier yang berisi data yang dapat berubah-ubah nilainya di dalam program.
Deklarasi variabel menggunakan kata cadangan var.
Contoh : var
Jumlahanak: integer;
x, y, z = integer:
iii.Deklarasi label
Apabila program menggunakan statemen Go to untuk meloncat ke suatu statemen yang tertentu, maka dibutuhkan suatu label pada statemen yang dituju dan label tersebut harus dideklarasikan terlebih dahulu pada bagian deklarasi.
Deklarasi variabel diawali dengan kata cadangan label dengan dipisahkan oleh koma dan diakhiri dengan titik koma.
iv.Deklarasi tipe
Pascal menyediakan beberapa macam tipe dari data, terdiri dari:
a)Data tipe sederhana (simple-type data)
Dihubungkan dengan sebuah identifier untuk sebuah data. Data tipe ini digolongkan menjadi dua tipe yaitu :
Tipe data standar :
Integer, real, char, string, Boolean
Tipe data yang didefinisikan pemakai
Enumerated atau scalar type, subrange type

b)Data tipe terstruktur (structured-type data)
Terdiri dari beberapa data item yang dihubungkan satu dengan lainnya. Masing-masing grup dari data item dihubungkan dengan suatu identifier tertentu. Ada 4 macam yang termasuk dalam data ini : array, record, file dan set.
c)Data tipe penunjuk (pointer-type data)
Digunakan untuk membuat data terstruktur tipe dinamik.
1.Integer
Merupakan nilai bilangan bulat baik dalam bentuk desimal maupun hexadecimal. Ada 5 macam tipe data integer berdasarkan jangkauan nilai, yaitu :



Contoh (1) :
Bila nilai yang digunakan lebih besar dari 255, tetapi tidak lebih besar dari 32767, maka dapat digunakan tipe integer
Uses wincrt;
Var
Jumlah : integer ;
Begin
Jumlah:= 25000 ;
Writeln (‘ nilai jumlah = ’, Jumlah) ;
End.
Contoh (2) :
Program Tambah;
Uses wincrt;
Var a,b,c : integer;
Begin
Write(‘masukkan nilai pertama= ’);readln(a);
Write(‘masukkan nilai kedua= ’);readln(b);
c:=a+b;
Writeln(‘jumlah’,c);
End.
2 Real
Nilai konstanta numeric real berkisar dari 1E-38 sampai 1E+38. E menunjukkan nilai 10 pangkat, dan tipe data ini menempati memori sebesar 6 byte.
Contoh :
Program Pembagian;
Uses wincrt;
Var a,b,c : real;
Begin
Write(‘masukkan nilai pertama= ’);readln(a);
Write(‘masukkan nilai kedua= ’);readln(b);
c:=a/b;
Writeln(‘jumlah’,c:10:5);
End.
3 Karakter
Nilai data karakter berupa sebuah karakter yang ditulis diantara tanda petik tunggal, seperti : ‘ A ’. penggunaan variable untuk menyimpan tipe data karakter ini harus dideklarasikan dengan tipe Char.
Contoh :
Uses wincrt;
Var
Huruf : char ;
Begin
Huruf:='D';
Writeln (' Hurufnya adalah : ', Huruf ) ;
End.
Output program :
Hurufnya adalah : D
4 String
Merupakan urut-urutan dari karakter yang terletak diantara tanda petik tunggal. Nilai data string akan menempati memori sebesar banyaknya karakter string ditambah dengan 1byte. Bila panjang dari suatu string didalam deklarasi variable tidak disebutkan, maka dianggap panjangnya adalah 255 karakter.
Contoh :
Uses Wincrt;
Var
Tanggal : string [20] ;
Hari : string [6] ;
Jarak : char ;
Begin
Tanggal:='19 Februari 2007';
Hari:=' Senin ';
Writeln (Hari , Tanggal)
End.

v. Deklarasi prosedur
Prosedur merupakan bagian terpisah dari program dan dapat diaktifkan di manapun di dalam program. Prosedur dapat berupa prosedur stándar maupun prosedur yang dibuat oleh poemakainya sendiri. Prosedur dibuat dalam program dengan cara mendekalrasikannya di dalam prosedur. Bentuknya ialah kata cadangan, identifier nama procedure , kumpulan parameter.
Contoh : Procedure Hitung ( X,Y : integer );
vi. Deklarasi Fungsi
Fungsi merupakan bagian dari program yang terpisah yang mirip dengan prosedur, tetapi ada beberapa perbedaannya. Fungsi dapat berupa fungsi stándar atau fungsi yang dibuat sendiri oleh pemakai. Bila pemakai membuat sendiri harus dideklarasikan terlebih dahulu.
Contoh : Function Pangkat ( X,Y : real ) : real
b.Bagian pernyataan
Binary Operator
Disebut dengan binary operator karena operator ini digunakan untuk mengoperasikan dua buah operand. Operand dapat berbentuk konstanta ataupun variable. Digunakan untuk operasi aritmatika yang berhubungan dengan tipe data integer dan real.