BAHAN AJAR
Pertemuan ke 1
Pengertian Array
Array (larik) merupakan tipe data tersetruktur dimana didalamnya terdiri dari
komponen komponen yang mempunyai tipe data yang sama. Didalam suatu array jumlah
komponen banyaknya adalah tetap. Didalam suatu larik atau array setiap kompoenen
ditunjukkan oleh suatu index yang unik. Index dari setiap komponen array menunjukan
urutan data atau identitas yang mewakili data yang adadidalamnya. Logika sederhananya
array itu bisa disamakan dengan dua orang dengan nama yang sama didalam suatu
komunitas, untuk membedakan antara nama yang satu atau dengan nama yang lain maka
diberikan initial tambahan untuk setiap nama.
Variabel array telah kita singgung di bagian depan, namun masih sangat terbatas. Pada
bagian ini kita akan pelajari lebih detil tentang array.
Deklarasi Array
Didalam penulisan bahasa pemograman setiap penggunaan array harus dideklarsikan
terlebih dahulu. Pendeklarasian array diawali dengan nama variabel array diikuti dengan
indeks array yang dituliskan didalam tanda [] , diikuti dengan kata cadangan of dan tipe
data yang dibutuhkan.
Contoh :
Var
A : array[1..4] of integer;
B : array[1..5] of string;
C: array[1..10] of real;
Keterangan: :
A,B,C merupakan tanda pengenal/ nama variabel dari array;
1.4 : merupakan tipe indek dari array, yang menunjukan banyaknya data yang mampu
disimpan.
Integer : menunjukan bahwa data yang diinput berupa bilangan bulat.
Pertemuan ke 2
Keterangan = index type menunjukan tipe data ordinal yang menunjukan batasan atau
elemen maksimal terhadap seberapa besar variabel tersebut menyimpan
komponen.
Contoh :
Var arrayku : array[1..5] of char
Atau juga
type
jangkauan = 1..5;
var
nilai : array[jangkauan] of integer;
Larik atau array dinamis merupakan array yang tidak mempunyai suatu jangkauan
atau ukuran yang tetap. Tetapi ketika program dijalankan maka memori untuk suatu array
dinamis direalokasikan ketika kita menugaskan suatu nilai kepada array. Dynamic-Array jenis
ditandai oleh konstruksi (menyangkut) format.
Bentuk Umum
array of baseType
Contoh
var nilai: array of Real;
Dari deklarasi tersebut nilai yang merupakan deklarasi array belum memperoleh nilai
yang tetap, tetapi hanya diberikan batasan sebagai tipe data real. Untuk mendeklarasikan
array tersebut kita harus menempatkan array didalam suatu memori, caranya adalah dengan
memanfaatkan fungsi dari perintah sellength.
Misalnya : Selllength(nilai,20)
Dari penggalan program tersebut nilai untuk array nilai tersebut mempunyai range sebanyak
atau cakupan 20 untuk tipe data real, dengan indeex dimulai dari 0 sampai dengan 20.
Pertemuan Ke 3
Fungsi Standar Aritmatika
Ada Abs, ArcTan, Cos, Exp, Franc, Int, Ln, Pi, Sin, Sqr dan Sqrt
Penjelasan :
- Abs (x) ;
Memutlakkan suatu nilai yang ditunjukkan oleh argument x. dapat berupa tipe real atau
integer.
- Exp (x : real ) : real ;
Untuk menghitung nilai pangkat dari bilangan e. dapat berupa real atau integer dan hasil
dari fungsinya adalah real.
- Ln (x : real ) : real ;
Untuk menghitung nilai logaritma alam dari nilai x. tipe datanya real atau integer dan
hasil fungsinya adalah real.
- Int (x : real) : real ;
Untuk menghasilkan nilai integer dari x. hasil dari fungsi adalah tipe real dengan nilai
yang berupa pembulatan ke bawah dari nilai x.
- Franc (x : real ) : real ;
Untuk mendapatkan nilai pecahan dari argument x. Argumen x dapat berbentuk real
atau integer dan hasilnya adalah real.
- Sqr (x) ;
Untuk menghitung nilai pangkat kuadrat dari argument x.
- Sqrt (x : real ) : real ;
Untuk menghitung nilai akar dari argument x. dapat real dan integer dan hasil dari
fungsinya adalah real.
- Pi :Akan menghasilkan nilai PI sebesar 3, 14.
Digunakan untuk merubah suatu nilai ke bentuk nilai yang lain. Yang tersedia adalah
fungsi standar Chr, Ord, Round dan trunc.
Penjelasan :
- Chr (x : byte) : char ;
Untuk merubah nilai dari byte x ke bentuk karakter yang sesuai dengan kode ASCII.
- Ord (x) : longint ;
Untuk merubah nilai x ke bentuk nilai longint yang sesuai dengan kode ASCII. Fungsi ini
kebalikan dari fungsi standar Chr.
- Round (x : real) : longint ;
Untuk membulatkan nilai dari real x ke nilai longint yang terdekat. Bila nilai pecahan sama
dengan atau lebih besar dari 0,5 akan dibulatkan ke atas, sedangkan bilai nilai pecahan lebih
kecil dari 0,5 akan dibulatkan ke bawah.
- Trunc (x : real) : longint ;
Untuk membulatkan nilai dari real x ke nilai longint terkecil, atau dengan kata lain
membulatkan ke bawah.
Pertemuan Ke 4
Pada variabel array, kita tidak hanya menentukan tipe datanya saja, tetapi juga jumlah elemen dari
array tersebut atau dalam hal ini adalah batas atas indeksnya. Pada banyak bahasa pemrograman
seperti C++, Visual Basic, dan beberapa yang lainnya, nilai indeks awal adalah 0 bukan 1. Cara
menuliskan variabel array berbeda-beda tergantung bahasa pemrograman apa yang dipakai. Tetapi
yang pasti tipe data harus disebutkan dan batas atas indeks harus ditentukan. Untuk mengisi data
pada array kita dapat langsung menentukan pada indeks berapa kita akan isikan demikian juga untuk
memanggil atau menampilkan data dari array. Contoh deklarasi, pengisian dan pemanggilan array
adalah sebagai berikut.+
Pertemuan Ke 5
Penulisan array pada C++
#include <iostream> "<<A[1];
using namespace std; cout<<"Nilai elemen ke-3 =
int main() { "<<A[2];
// Mendeklarasikan array A return 0;
dengan 3 buah elemen bertipe }
int Mendeklarasikan array A
int A[3]; dengan 3 buah elemen bertipe
// Mengisikan nilai elemen integer
array Dim A (2) as Integer
A[0] = 5; Mengisikan nilai elemen
A[1] = 10; array
A[2] = 20; A(0) = 5;
// Menampilkan nilai elemen A(1) = 10;
array A(2) = 20;
cout<<"Nilai elemen ke-1 = Menampilkan nilai elemen
"<<A[0]; array
cout<<"Nilai elemen ke-2 = Print A(0); Print A(1);
Perhatikan pada kedua kode di atas. Pada pendeklarasian variabel array nilai maksimal indeks
adalah 2 tetapi jumlah elemennya ada 3 karena indeks dimulai dari 0 bukan dari 1.
Type
Var
X : Nilai
Atau
3. Bentuk Ketiga dengan ukuran maksimum elemen larik sebagai sebuah konstanta
Deklarasi
Const max : 100
Type
Var
X : Nilai
Atau
Pertemuan 6 - 7 :
Pendeklarasian Array Multi Dimensi (Berdimensi Banyak) Cara pendeklarasian array multi dimensi
mirip dengan cara array 1 dimensi. Hanya terdapat penambahan tanda kurung siku ([ dan ]) untuk
menunjukan jumlah maksimum data yang dapat ditampung oleh variabel array tersebut. Pada C/C++,
untuk mendeklarasikan variable array multi dimensi kita dapat
Contoh :
0 1 n Index kolom
Index baris
Elemen Array
Kita bisa menentukan ukuran atau jumlah elemen dalam array dengan suatu nilai tertentu
(seperti contoh deklarasi array pada sub bab 8.2) dan ukuran ini sifatnya konstan atau tidak akan
berubah. Namun ada kalanya kita tidak mengetahui jumlah elemen maksimum (atau dengan kata
lain jumlah elemen dalam array sifatnya tidak konstan atau dinamis), untuk keperluan inilah
adlam bahasa C/C++ kita bisa mendefinisikan suatu array tanpa mencantumkan berapa ukuran
atau jumlah elemen maksimal ya g bisa disimpan dalam array tersebut.
Pada C/C++, untuk mendeklarasikan variable array tak berukuran kita dapat
Contoh :
float Total[ ][ ]...[ ]; //deklarasi array dimensi tertentu dan tak berukuran
Untuk dapat memasukan suatu nilai atau melihat isi dari suatu array kita harus
menentukan posisi dimana nilai tersebut disimpan. Untuk mengakses elemen array dapat
Pada C/C++, untuk mengakses elemen array dapat kita lakukan dengan perintah
sebagai berikut :
Contoh :
Jumlah[7][1]; // akses elemen array Jumlah pada indeks baris ke-7 dan indeks
kolom ke-1
Total[5][6][1]; // akses elemen array Total pada indeks x ke-5 dan indeks y ke-6
dalam array tersebut. Operasi yang dapat dilakukan pada sebuah array sangat beragam
Contoh Program ontoh Menggunakan Array Array Multi Dimensi Agar bisa mendapatkan
gambaran lebih jauh seperti apa sih program yang menggunakan array multi dimensi? Anda bisa
melihat contoh-contoh sebagai berikut :
//IF-Universitas Widyatama
#include<stdio.h>
#include<conio.h>
int main()
int idxKolom; //indeks kolom, sebagai penunjuk nomor kolom dalam array
for(idxKolom=1;idxKolom<=2;idxKolom++)
for(idxKolom=1;idxKolom<=2;idxKolom++)
for(idxKolom=1;idxKolom<=2;idxKolom++)
Matriks_Hasil[idxBaris][idxKolom] = Matriks_A[idxBaris][idxKolom] +
Matriks_B[idxBaris][idxKolom];
printf("\nisi Matriks_A\n");
for(idxKolom=1;idxKolom<=2;idxKolom++)
Materi Kuliah Pemrograman Terstruktur I
printf("\n");
printf("\nisi Matriks_B\n");
for(idxKolom=1;idxKolom<=2;idxKolom++)
printf("\n");
printf("\nisi Matriks_Hasil\n");
for(idxKolom=1;idxKolom<=2;idxKolom++)
printf("\n");
}
getch();
return 0;
Outputnya adalah :
Widyatama
#include<stdio.h>
#include<conio.h>
int main()
int MaxBaris,MaxKolom;
int idxKolom; //indeks kolom, sebagai penunjuk nomor kolom dalam array
MaxKolom=MaxBaris;
for(idxKolom=0;idxKolom<=MaxKolom;idxKolom++)
{
Matriks_Identitas[idxBaris][idxKolom] = 0;
for(idxKolom=1;idxKolom<=MaxKolom;idxKolom++)
printf("\n");
getch();
return 0;
Outputnya adalah :
8.6 Referen
Pertemuan ke 8 - 10 :
Pemrosesan Larik
Elemen Larik diproses secara beruntun melalui indeks terurut, asalkan indeks tersebut sudah
terdefenisi. Contoh algoritma pemrosesan larik :
Deklarasi
Const max : 25
M : Integer
N : Integer
Contoh
Program Utama
Kepala
Algoritma Pemrosesan_Larik;
Deklarasi
Type Larik : Array [ 1.. 100 ] of integer
X : Larik
N : Integer
Deklarasi
J := Integer
Deskripsi
For J := 1 to N do
Read ( x [ J ] )
Endfor
Deklarasi
I := Integer
Deskripsi
For I := 1 to N do
write ( x [ I ] )
Endfor
Read ( N );
Uses Crt;
Var
X : latih;
I,n : integer;
Begin
For i := 1 to n do
Begin
Readln(x [ i ]);
End;
End;
Begin
For i := 1 to n do
End;
Begin
Clrscr;
Readln(n);
Inputan(x,n);
Writeln; Writeln;
Readln;
End
Penggunaan Larik
Array dibutuhkan apabila suatu proses memerlukan penyimpanan sementara data yang
bertipe sama dalam memori, untuk selanjutnyauntuk selanjutnya data tersebut dimanipulasi,
dihitung, atau diterapkan proses lainnya. Dengan array dapat menghemat penggunaan nama-
nama variabel yang banyak. Variabel dapat dibagi menjadi 2 yaitu :
a. Variabel tunggal
Keseluruhan data yang di input akan disimpan pada satu tempat saja sehingga
nantinya yang tersimpan data yang paling akhir.
Contoh dalam bahas Pemrograman Pascal :
Uses Crt;
Var
I,n,x : integer;
Procedure Inputan ( var x,n : integer);
Begin
For i := 1 to n do
Begin
Write (masukkan suku ke-,i,=);
Readln(x);
End;
End;
Procedure Keluaran ( var x,n : integer);
Begin
For i := 1 to n do
Write (x[,i,]=,x);
End;
Begin
Clrscr;
Write(Masukkan N (mak 100) :);
Readln(n);
Inputan(x,n);
Writeln; Writeln;
Keluaran(x,n);
Readln;
End.
Type
Var
X : latih;
I,n : integer;
Begin
For i := 1 to n do
Begin
Readln(x [ i ]);
End;
End;
Begin
For i := 1 to n do
End;
Begin
Clrscr;
Readln(n);
Inputan(x,n);
Writeln; Writeln;
Keluaran(x,n)
Readln;
End.
Larik 2: Dimensi
Misalkkan Matrik C ukuran 3x4 yang merupakan hasil penjumlahan dari Matrik A ukuran 3x4 dan
Matrik B ukuran 3x4.
( ) ( )
a b c d m n o p
A= e f g h B= q r s t
i j k l dan u v w x
( )
a+m b+n c+o d +p
C= e+q f + r g+ s h+t
i+u j+ v k +w l+ x
X : Larik
N : Integer
Deklarasi
I,j : integer
Deskripsi
For I := 1 to m do
For J := 1 to n do
Read ( A[I,j])
End for
Ebdfor
Deklarasi
I,j : integer
Deskripsi
For I := 1 to m do
For J := 1 to n do
Read ( B[I,j])
End for
Ebdfor
Deklarasi
I,j : integer
Deskripsi
For I := 1 to m do
For J := 1 to n do
C[I,j] := A[I,j] + B[I,j]
Write ( C[I,j] )
End for
Ebdfor
Deskripsi
Read (N)
Input_ArrayA(x,M,N)
Input_ArrayB(x,M,N)
Jumlah_Array(x,M,N)
Uses Crt;
Type
Var
I,j,n,m : Integer;
A,B,C : latih;
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
Raedln(A[I,j](;
End;
End;
End;
Procedure InputB(var x : latih; m,n : integer);
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
Raedln(B[I,j](;
End;
End;
End;
Begin
For I := 1 to m do
Begin
For J := 1 to n do
Begin
C[I,j]:=A[I,j]+ B[I,j]
Writeln(C[,I,]=, C[I,j]);
End;
End;
End;
Begin
Readln(m);
Readln(n);
InputA(a,m,n);
InputB(a,m,n);
Writeln; Writeln;
Keluaran(c,m,n);
Readln;
End.
Operasi-operasi Array
Pengaksesan data array dapat dilakukan dengan cara memberikan nama variabel array tersebut
serta indexnya.
Contoh :
Data[0]=5;
Data[1]=7;
Cara lain untuk pengaksesan data array dalam bahasa C adalah dengan menggunakan pointer.
Contoh :
1 int data[5]={1,4,5,6,7};
#include <stdio.h>
#include <conio.h>
#define maks 5
main()
int i,*p;
int data[5];
p=data;
clrscr();
for(i=0;i<maks;i++)
scanf("%d",p+i);
for(i=0;i<maks;i++)
i,p+i,*(p+i));
getch();
return 0;
Operasi ini berguna untuk menampilkan data yang ada dalam array sebanyak banyaknya data.
Oleh karena itu berarti akan ada perulangan dari data pertama sampai data terakhir. Program untuk
menampilkan data array dapat dilihat dalam potongan program di bawah ini.
int i;
int data[5]={1,5,8,9,8};
int banyakdata=5;
for(i=0;i<banyakdata;i++)
printf("data[%d]: %i\n",i,data[i]);
int i,*p;
int data[5]={1,5,8,9,8};
int banyakdata=5;
p=data;
for(i=0;i<banyakdata;i++)
printf("data[%d]: %i\n",i,*(p+i));
Kedua perintah di atas sama-sama menampilkan data dalam array. Jika dijalankan akan menghasilkan
tampilan seperti dibawah ini.
data[1]=5;
data[2]=8;
data[3]=9;
data[4]=8;
Karena proses menampilkan data array ini akan sangat banyak dipakai, maka sebaiknya proses ini
dibuat dalam bentuk sebuah fungsi yang memiliki parameter/argumen berupa array dan banyaknya
data. Fungsi tersebut adalah :
int i;
for(i=0;i<banyakdata;i++)
printf("%4d ",data[i]);
int i;
for(i=0;i<banyakdata;i++)
printf("%4d ",*(data+i));
Setelah fungsi tersebut dibuat, maka jika ingin menampilkan data array, akan lebih mudah. Perhatikan
contoh di bawah ini.
int a[5]={2,5,6,7,8};
int banyakdata=5;
view_array(a,3); printf("\n");
printf("Seluruh Isi A adalah : ");
view_array(a,banyakdata);
Pertemuan ke 11- 16:
PROCEDURE DAN FUNCTION
Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang
berfungsi sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk
memproses sebagian dari pekerjaan program utama.
PROCEDURE
Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur.
Prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan
judul prosedurnya.
Prosedur banyak digunakan pada program yang terstruktur, karena :
1. Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang
rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-
prosedur.
2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam
prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block.
Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja.
Bentuk Umum header suatu procedure adalah :
PROCEDURE nama;
Atau
PROCEDURE nama (formal parameter : jenis);
Jika kita menggunakan procedure dalam suatu program, maka procedure tersebut harus
dituliskan pada bagian deklarasi.
Contoh : Misal akan dibuat suatu procedure untuk menentukan bilangan bulat terbesar
diantara tiga bilangan bulat, maka procedure tersebut adalah sebagai berikut :
PROCEDURE maksimum;
VAR max : integer;
BEGIN
IF a > b THEN max := a ELSE max := b;
IF c > max THEN max := c;
WRITELN(max);
END.
Selanjutnya, di dalam suatu program, procedure ini dapat digunakan dengan bentuk penulisan
sebagai berikut :
BEGIN
WRITELN(max);
END;
BEGIN
READLN(a,b,c);
END.
Contoh 2 :
PROGRAM CONTOH_2;
PROCEDURE kotak;
BEGIN
v := p * l * t ;
pl := p + 2.0 * t;
writeln(v,pl);
END;
BEGIN
readln(p,l,t);
kotak;
END.
JANGKAUAN IDENTIFIER
Identifier yang dideklarasikan dalam suatu blok program hanya berlaku pada blok dimana identifier
tersebut didefinisikan.
Contoh :
1. PROGRAM p;
VAR x : real;
PROCEDURE pl;
VAR y : integer;
begin
..; berlakunya x
end;
begin
..;
..;
end.
y variabel global
2. Program P ;
blok P, kecuali di P2
Procedure Pl ;
..
Begin
End;
Procedure P2;
Begin
..
..
End;
Begin
y := . (variabel global)
End.
Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya hanya dapat digunakan pada
modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit
program yang lainnya.
Contoh :
Prosedur Tanya_hitung;
Begin
Readln(X);
Y:=X*X;
Writeln(Nilai Y = ,Y:6:2);
End;
Begin
Tanya_Hitung;
End.
Hasilnya :
Nilai X ? 5
Nilai Y = 25.00
Keterangan :
Variabel X dan Y sifatnya adalah lokal untuk prosedur Tanya_hitung, artinya hanya dapat digunakan
pada modul itu saja, Pada modul yang lain tidak dapat digunakan, contoh :
Prosedur Tanya_hitung;
Begin
Readln(X);
Y:=X*X;
End;
Begin
Tanya_Hitung;
Writeln(Nilai Y = ,Y:6:2);
End.
Hasilnya :
Supaya nilai variabel dapat digunakan di modul lainnya, maka dapat dilakukan dengan cara :
Procedure kesatu;
Begin
..
End; (*akhir dari procedure kesatu*)
Var
A,B : word;
Procedure kedua;
Begin
..
..
Procedure ketiga;
Begin
..
..
Begin
..
..
Pada contoh diatas, variabel A dab B bersifat global untuk prosedur kedua, ketiga dan utama, tetapi
tidak bersifat global untuk prosedur kesatu, sehingga prosedur kesatu tidak dapat menggunakan
variabel-variabel tersebut.
Var
A,B : real;
Procedure kesatu;
Begin
..
Procedure kedua;
Begin
..
..
Procedure ketiga;
Begin
..
..
Begin
..
..
Pada contoh ini, variabel A dan B bersifat global untuk semua modul.
Parameter yang dikirim dari modul utama ke modul prosedur disebut actual parameter, dan
parameter yang ada dan dituliskan pada judul prosedur disebut formal parameter.
Parameter yang dikirimkan secara nilai, maka parameter formal yang ada di prosedur akan berisi nilai
yang dikirimkan yang kemudian bersifat lokal di prosedur.
Procedure konversi;
begin
end;
Procedure di atas dapat dipanggil dengan variabel yang berbeda, tetapi penulisannya harus diubah
dengan menggunakan parameter sbb:
Procedure konversi (var f : real; c : real);
Begin
Writeln(c,f);
End;
konversi (x,y) ;
actual parameter
- konstanta
- variabel
- procedure, atau
- fungsi
Contoh :
Var C : integer;
Begin
C := A + B;
Writeln(Nilai C = ,C)
End;
Begin
Write(Nilai X ? );
Readln(X);
Write(Nilai Y ?);
Readln(Y);
Hitung(X,Y);
End.
Hasilnya :
Nilai X ? 2
Nilai Y ? 3
Nilai C = 5
Bila pengiriman parameter secara acuan (by reference), maka perubahan-perubahan yang terjadi
pada nilai parameter formal di prosedur akan mempengaruhi nilai actual parameter .
Contoh :
Begin
C := A + B;
End;
Begin
X := 2; Y:= 3;
Hitung(X,Y,Z);
End.
Hasilnya :
X=2Y=3Z=5
Acuan Forward
Contoh :
Procedure pro1(var I : integer); Forward;
Begin
End;
Procedure pro1;
Begin
Writeln(prosedur pro,I);
End;
Var I : integer;
Begin
I := 1; pro1(I);
I := 2; pro2(I);
End.
Hasilnya :
prosedur pro1
prosedur pro2
Prosedur Standar
Digunakan untuk menghentikan proses program baik di program bagian maupun di program utama.
Digunakan untuk menyalin suatu blok sebanyak count byte memori dari blok dimulai byte pertama
source dan disalinkan ke byte pertama dest.
Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel, sebagai berikut
FillChar(x;count :word;ch);
X adalah variabel yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal Ch sebanyak
count byte.
FUNCTION
Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan
tipenya atau jenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya.
Fungsi-fungsi tersebut biasanya dikenal dengan Built in Function. Sedangkan function yang akan
bicarakan disini adalah fungsi yang kita buat sendiri.
Berbeda dengan procedure, function merupakan modul program yang menghasilkan suatu
kuantitas.
Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis data dari kuantitas yang
dihasilkan.
Contoh :
1. Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar di antara
dua integer.
Begin
End;
Selanjutnya kita dapat menggunakan fungsi di atas dalam suatu program, misalnya dengan
menyatakan sebagai berikut :
P := MAX(a,b);
Z := MAX(a+b,a*b);
Q := MAX(MAX(a,b),c);
dsb.
Begin
End;
Begin
End;
ab = POWER (a,b)
ba = POWER (b,a)
..
dll
Contoh :
Function Hitung(Var A,B : integer): integer;
Begin
Hitung := A + B;
End;
Begin
Write(Nilai X ? );
Readln(X);
Write(Nilai Y ? );
Readln(Y);
Writeln;
End.
Hasilnya :
Nilai X ? 2
Nilai Y ? 3
1+3=5
REKURSIF
Suatu fungsi atau prosedur dalam bahasa Pascal dapat bersifat rekursif. Artinya, fungsi atau prosedur
tersebut dapat memanggil dirinya sendiri. Berikut ini sebuah contoh fungsi dan prosedur yang
rekursif.
begin
end;
Var
N : integer;
Begin
Write(Berapa faktorial ? );
Readln(N);
End.
3 * faktorial (2)
2 * faktorial (1)
1 * faktorial (0)
=4*3*2*1*1
= 24
2. Bilangan Fibonanci:
F (0) = 0
F (1) = 1
Begin
If n = 0 then fibonacci := 0
Else
If n := 1 then fibonacci := 1
Begin
Else begin
End;
End;
Fungsi Standar
Contoh :
Begin
X:=-2.3;
End.
x
Digunakan untuk menghitung nilai pangkat dari bilangan e yaitu sebesar e . Hasilnya berupa nilai
real.
Fungsi standar LN Bentuk umum : LN(x):real;
Digunakan untuk menghitung nilai logaritma alam (natural logarithm) dari nilai x. Hasilnya berupa
nilai real.
Digunakan untuk menghasilkan nilai integer dari x. hasil dari fungsi adalah tipe real dengan nilai yang
berupa pembulatan ke bawah (nilai pecahan dibuang) dari nilai x.
Contoh :
Begin
X:=9.99;
End.
Hasil :
Digunakan untuk mendapatkan nilai pecahan dari argumen x. Argumen x dapat bernilai real maupun
integer dan hasil dari fungsi adalah real.
Contoh :
Begin
X:=9.99;
End.
Hasilnya : Nilai X = 9.99 Nilai pecahannya = 0.990
Contoh :
Begin
X :=2;
End.
Digunakan untuk menghitung nilai akar dari argumen x, hasilnya berupa real.
1. Fungsi Standar Transfer Digunakan untuk merubah suatu nilai ke bentuk nilai lain.
Digunakan untuk merubah nilai dari byte x ke bentuk karakter yang sesuai dengan kode ASCII.
Contoh :
X := 66;
Digunakan untuk membulatkan nilai dari real x ke nilai longint yang terdekat. Bila nilai pecahan sama
dengan atau lebih besar dari 0.5 akan dibulatkan ke atas, sedang kalau lebih kecil dari 0.5 akan
dibulatkan ke bawah.
Contoh :
Hasilnya :
Digunakan untuk membulatkan nilai dari real x ke nilai longint terkecil. Atau dengan kata lain
membulatkan ke bawah.
Contoh :
Hasilnya :
1. Fungsi Standar Lainnya Fungsi standar yang tidak termasuk dalam kelompok pembagian di atas :
Fungsi standar Hi, Lo, Swap
Digunakan untuk menunjukkan besarnya byte yang digunakan oleh suatu variabel x, hasilnya berupa
nilai word.
Digunakan untuk merubah argumen suatu karakter yang ditunjukkan oleh Ch menjadi bentuk
karakter huruf besar (upper case).
Penulisan judul fungsi yang menggunakan parameter dengan pengiriman secara acuan adalah
dengan menambahkan kata cadangan var.
Contoh penulisan :
Function Hitung ( Var A, B : integer ) : integer ;
Pengiriman parameter secara acuan akan mengakibatkan perubahan nilai parameter di fungsi
juga merubah nilai parameter di modul yang mengirimkannya. Fungsi yang menggunakan
pengiriman parameter secara acuan ini mirip dengan prosedur, yaitu parameter yang
dikirmkan secara acuan tersebut dapat di manfaatkan sebagai hasil balik.
Fungsi Pangkat
Pascal tidak menyediakan fungsi untuk perpangkatan tinggi, yang ada hanya fungsi standar
Sqr, yaitu pemngkatan kuadrat saja. Bila akan melakukan perpangkatan lebih dari pangkat
dua, maka harus dibuat program tersendiri.
Output program :
Berapa factorial ? 5
5 faktorial = bbbbbb120
ket : b = blank