Anda di halaman 1dari 48

LAMPIRAN

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.

Bentuk Umum Penulisan:

Tanda_pengenal : array [..tipe index ..] of tipe data;

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

Alokasi Penggunaan Array

a. Array Static (Static Array)


Array static adalah model pendeklarasian array dimana tipe data yang digunakan
mempunyai nilai yang tetap. Nilai yang digunakan untuk menentukan jangkauan pada
umumnya bernilai integer. Array Static juga bisa disebut Array dengan deklarasi tipe
indeks subrange integer.
Bentuk Umum

array[indexType1, ..., indexTypen] of baseType

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;

b. Array Dinamis (Dynamic arrays)

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.

Fungsi Standar Transfer

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

Fungsi Standar Lainnya


Terdiri dari : Hi, Lo, Random, SizeOf, Swap, UpCase, ParamCount dan ParamStr.
Penjelasan :
- Hi (x) : byte ;
Untuk mengisi low order byte dari hasil fungsi dengan high order byte dari ungkapan
integer x. high order byte dari hasil fungsi akan bernilai nol. Tipe hasil dari fungsi ini
adalah byte.
- Lo (x) : byte ;
Untuk mengisi low order byte dari hasil fungsi dengan low order byte dari ungkapan
integer x. high order byte dari hasil fungsi akan bernilai nol. Tipe hasil dari fungsi ini
adalah byte.
- Swap (x) ;
Untuk membalik bit-bit di low order byte menjadi high order byte dan sebaliknya dari
ungkapan x. ungkapan x dapat berupa tipe integer atau word.
- Random [ (range : word ) ] ;
Untuk menghasilkan angka random berkisar dari nilai lebih besar atau sama dengan nol
dan lebih kecil dari satu. Bila range tidak disebutkan, hasil dari fungsi ini adalah real.
Bila range disebutkan, hasilnya adalah word.
- SizeOf (x) : word ;
Untuk menunjukkan besarnya byte yang digunakan oleh suatu variable x. hasilnya
adalah word.
UpCase (Ch : char ) : char ; Untuk merubah argument suatu karakter yang ditunjukkan
oleh Ch menjadi bentuk karakter huruf besar ( upper case ).
- ParamCount: word ; Untuk mengetahui jumlah parameter yang dikirimkan lewat
promt DOS
- ParamStr (index) : string ; Untuk menerima parameter yang dikirmkan lewat promt
DOS, index adalah ungkapan dengan tipe word, dan akan menghasilkan parameter ke
index yang dikirmkan tersebut.

Gambar Lemari dengan banyak kotak laci di dalamnya

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.

Penggunaan Larik / Array

1. Defenisi Larik ( Array )


Larik atau array ialah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri
dari sejumlah elemen yang mempunyai tipe data yang sama dan merupakan gabungan dari
beberapa variabel sejenis serta memiliki jumlah komponen yang jumlahnya tetap.
2. Deklarasi Larik
Array adalah struktur data yang statik, yaitu jumlah elemen array harus sudah diketaui
sebelum program dieksekusi.
Macam-macam array terdiri atas :
a. Array 1 dimensi dituliskan :
Variabel [ indeks ]
b. Array 2 dimensi dituliskan :
Variabel [ indeks1, indeks2 ]
c. Array 3 dimensi dituliskan :
Variabel [ indeks1, indeks2, indeks3 ]
Syntax :
Variabel [ indeks ]
Variabel [ indeks1, indeks2 ]
Variabel [ indeks1, indeks2, indeks3 ]
Deklarasi
Var
< Nama Array = array [indeks] of tipe data;
< Nama Array = array [indeks1, indeks2] of tipe data;
tipe data;
< Nama Array = array [indeks1, indeks2, indeks3] of tipe data;
of tipe data;
Contoh :

1. Bentuk Pertama sebagai variabel


Deklarasi

Nilai : Array [ 1..15] of integer

Nama : Array [ A..Z] of string

2. Bentuk Kedua sebagai tipe baru


Deklarasi

Type

Nilai : Array [ 1..100 ] of real

Var

X : Nilai

Atau

X : Array [ 1.. 100 ] of real

3. Bentuk Ketiga dengan ukuran maksimum elemen larik sebagai sebuah konstanta
Deklarasi
Const max : 100

Type

Nilai : Array [ 1..max ] of real

Var

X : Nilai

Atau

X : Array [1..100 ] of real

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

menuliskannya sebagai berikut :

Tipe_Data Nama_Array[Jumlah_Elemen1] ]...[Jumlah_Elemen n];

Contoh :

int Array[10][5]; //deklarasi array 2 dimensi

double Jumlah[7][1][3]; //deklarasi array 3 dimensi

float Total[5][6][1][2]; //deklarasi array 4 dimensi, dst

Materi Kuliah Pemrograman Terstruktur I

IF - UTAMA Versi/Revisi : 1/0 Halaman : VIII-3

Array dua dimensi dapat kita gambarkan sebagai berikut :

0 1 n Index kolom

Index baris

Elemen Array

Gambar 8.1. Array Dua Dimensi


Array berdimensi banyak pada kenyataannya jarang dipergunakan dalam aplikasi. Array
berdimensi banyak yang sering digunakan adalah array dengan 2 dimensi atau lebih dikenal
dengan nama Matriks

Cara Pendeklarasian Array Tak Berukuran

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

menuliskannya sebagai berikut :

Tipe_Data Nama_Array[ ][ ]...[ ];

Contoh :

int Array[ ]; //deklarasi array 1 dimensi tak berukuran

char Angka[ ][ ]; //deklarasi array 2 dimensi tak berukuran

float Total[ ][ ]...[ ]; //deklarasi array dimensi tertentu dan tak berukuran

8.4 Cara Pengaksesan Array Array Multi Dimensi

Untuk dapat memasukan suatu nilai atau melihat isi dari suatu array kita harus

menentukan posisi dimana nilai tersebut disimpan. Untuk mengakses elemen array dapat

kita lakukan dengan perintah

Pada C/C++, untuk mengakses elemen array dapat kita lakukan dengan perintah

sebagai berikut :

Nama_Array[indeks_Elemen1] ]...[indeks_Elemen n];

Contoh :

Ary[10]; //akses elemen array Ary pada indeks ke-10

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

dan indeks z ke-1, dst


Setelah posisi ini kita ketahui, kemudian kita bisa melakukan operasi pada array atau nilai

dalam array tersebut. Operasi yang dapat dilakukan pada sebuah array sangat beragam

tergantung kebutuhan pengguna program tersebut.

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 :

Contoh 01 : Program untuk menjumlahkan 2 buah array 2 dimensi pada C/C++

//Contoh program array multi dimensi - kuliah Pemrograman Terstruktur I

//IF-Universitas Widyatama

//dibuat oleh : Danang Junaedi

//Tanggal : 17 November 2008 jam : 15:09 di B.417

//program untuk menjumlahkan array/Matriks A dan B yang berukuran 2x23

#include<stdio.h>

#include<conio.h>

int main()

int Matriks_A[2][2], Matriks_B[2][2]; // array Matriks_A dan Matriks_B

int Matriks_Hasil[2][2];// array untuk hasil penjumlahan Matriks_A dan Matriks_B

int idxBaris;//indeks baris, sebagai penunjuk nomor baris dalam array

int idxKolom; //indeks kolom, sebagai penunjuk nomor kolom dalam array

//proses input nilai ke dalam array Matriks_A dan Matriks_B

printf("Masukan Nilai ke dalama Matriks_A\n");

for (idxBaris=1; idxBaris<=2;idxBaris++)

for(idxKolom=1;idxKolom<=2;idxKolom++)

printf("Masukan nilai ke dalam Matriks_A[%d,%d] : ",idxBaris,idxKolom);

scanf("%d",&Matriks_A[idxBaris][idxKolom]);//input nilai ke dalam


Matriks_A pada baris ke-idxBaris dan kolom ke-idxKolom

printf("\nMasukan Nilai ke dalama Matriks_B\n");

for (idxBaris=1; idxBaris<=2;idxBaris++)

for(idxKolom=1;idxKolom<=2;idxKolom++)

printf("Masukan nilai ke dalam Matriks_B[%d,%d] : ",idxBaris,idxKolom);

scanf("%d",&Matriks_B[idxBaris][idxKolom]);//input nilai ke dalam

Matriks_B pada baris ke-idxBaris dan kolom ke-idxKolom

//proses penjumlahan Matriks_A dan Matriks_B

for (idxBaris=1; idxBaris<=2;idxBaris++)

for(idxKolom=1;idxKolom<=2;idxKolom++)

Matriks_Hasil[idxBaris][idxKolom] = Matriks_A[idxBaris][idxKolom] +

Matriks_B[idxBaris][idxKolom];

//proses output nilai pada array Matriks_A, Matriks_B dan Matriks_Hasil

printf("\nisi Matriks_A\n");

for (idxBaris=1; idxBaris<=2;idxBaris++)

for(idxKolom=1;idxKolom<=2;idxKolom++)
Materi Kuliah Pemrograman Terstruktur I

IF - UTAMA Versi/Revisi : 1/0 Halaman : VIII-5

printf("\t%d ",Matriks_A[idxBaris][idxKolom]);//output nilai dalam

Matriks_A baris ke-idxBaris dan kolom ke-idxKolom

printf("\n");

printf("\nisi Matriks_B\n");

for (idxBaris=1; idxBaris<=2;idxBaris++)

for(idxKolom=1;idxKolom<=2;idxKolom++)

printf("\t%d ",Matriks_B[idxBaris][idxKolom]);//output nilai dalam

Matriks_B baris ke-idxBaris dan kolom ke-idxKolom

printf("\n");

printf("\nisi Matriks_Hasil\n");

for (idxBaris=1; idxBaris<=2;idxBaris++)

for(idxKolom=1;idxKolom<=2;idxKolom++)

printf("\t%d ",Matriks_Hasil[idxBaris][idxKolom]);//output nilai dalam

Matriks_B baris ke-idxBaris dan kolom ke-idxKolom

printf("\n");
}

getch();

return 0;

Outputnya adalah :

Contoh 02 : Program untuk menghasilkan matriks identitas pada C/C++

//Contoh program array multi dimensi - kuliah Pemrograman Terstruktur I IF-Universitas

Widyatama

//dibuat oleh : Danang Junaedi

//Tanggal : 17 November 2008 jam : 16:30 di B.417

//program untuk menghasilkan matriks identitas

Materi Kuliah Pemrograman Terstruktur I

IF - UTAMA Versi/Revisi : 1/0 Halaman : VIII-6

#include<stdio.h>

#include<conio.h>

int main()

int MaxBaris,MaxKolom;

int idxBaris;//indeks baris, sebagai penunjuk nomor baris dalam array

int idxKolom; //indeks kolom, sebagai penunjuk nomor kolom dalam array

//proses input jumlah maksimum elemen pada Matriks_Identitas

printf("Masukan Ukuran Baris & Kolom Matriks_Identitas : ");scanf("%d",&MaxBaris);

MaxKolom=MaxBaris;

int Matriks_Identitas[MaxBaris][MaxKolom]; //deklarasi array Matriks_identitas

for (idxBaris=0; idxBaris<=MaxBaris;idxBaris++)

for(idxKolom=0;idxKolom<=MaxKolom;idxKolom++)
{

(idxBaris == idxKolom) ? Matriks_Identitas[idxBaris][idxKolom] = 1:

Matriks_Identitas[idxBaris][idxKolom] = 0;

printf("\nMatriks_Identitasnya adalah \n");

for (idxBaris=1; idxBaris<=MaxBaris;idxBaris++)

for(idxKolom=1;idxKolom<=MaxKolom;idxKolom++)

printf("%d ",Matriks_Identitas[idxBaris][idxKolom]);//output nilai dalam

Matriks_Identitas baris ke-idxBaris dan kolom ke-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

Type Larik : Array [ 1.. max] of integer


X : Larik

M : Integer

N : Integer

Contoh

Program Utama
Kepala

Algoritma Pemrosesan_Larik;

Deklarasi
Type Larik : Array [ 1.. 100 ] of integer

X : Larik

N : Integer

Procedure Input_Array ( Output x : larik; input N: integer);

Deklarasi
J := Integer

Deskripsi

For J := 1 to N do

Read ( x [ J ] )

Endfor

Procedure Output_Array ( Input x : larik; input N: integer);

Deklarasi
I := Integer

Deskripsi

For I := 1 to N do

write ( x [ I ] )

Endfor

Read ( N );

Implementasi dalam Bahasa Pemrograman Pascal :

Uses Crt;

Const max = 100;


Type

Latih = array [ 1..max ] of real;

Var

X : latih;

I,n : integer;

Procedure Inputan (masuk : latih; n : integer);

Begin

For i := 1 to n do

Begin

Write (Masukkan suku ke-,i, = );

Readln(x [ i ]);

End;

End;

Procedure Keluaran (cetak : latih; n : integer);

Begin

For i := 1 to n do

Write (x [,I, ] = x [ i ] :6:1);

End;

Begin

Clrscr;

Write (Masukkan N (mak 100) : );

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.

Jika Program ini dijalankan maka hasilnya Sebagai berikut :


Masukkan N (mak 100) : ketikkan 5
Masukkan suku ke-1 = 10
Masukkan suku ke-2 = 15
Masukkan suku ke-3 = 20
Masukkan suku ke-4 = 25
Masukkan suku ke-5 = 30
Hasilnya :
X[1] = 30
X[2] = 30
X[3] = 30
X[4] = 30
X[5] = 30
b. Variabel berindeks
Data akan disimpan berdasarkan alamat dari suatu indeksnya.
Contoh dalam Program Pascal :
Uses Crt;

Type

Latih = array [ 1..max ] of real;

Var

X : latih;

I,n : integer;

Procedure Inputan (masuk : latih; n : integer);

Begin

For i := 1 to n do

Begin

Write (Masukkan suku ke-,i, = );

Readln(x [ i ]);

End;

End;

Procedure Keluaran (cetak : latih; n : integer);

Begin

For i := 1 to n do

Write (x [,I, ] = x [ i ] :6:1);

End;

Begin
Clrscr;

Write (Masukkan N (mak 100) : );

Readln(n);

Inputan(x,n);

Writeln; Writeln;

Keluaran(x,n)

Readln;

End.

Jika Dijalankan maka hasilnya :

Masukkan N (mak 100) : ketikkan 5


Masukkan suku ke-1 = 10
Masukkan suku ke-2 = 15
Masukkan suku ke-3 = 20
Masukkan suku ke-4 = 25
Masukkan suku ke-5 = 30
Hasilnya :
X[1] =10
X[2] = 15
X[3] = 20
X[4] = 25
X[5] = 30

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

Makaalgoritma dari permasalahan tersebut dapat dituliskan :


Deklarasi
Type larik : Array [1..Indeks, 1..indeks2] of integer

X : Larik

N : Integer

Procedure Input_ArrayA(output x : Larik; Input M,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

Procedure Input_ArrayB(output x : Larik; Input M,N : integer);

Deklarasi

I,j : integer

Deskripsi

For I := 1 to m do

For J := 1 to n do

Read ( B[I,j])

End for

Ebdfor

Procedure Jumlah_Array(Input x : Larik; Input M,N : integer);

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)

Implementasinya dalam bahasa Pemrograman Pascal :

Uses Crt;

Type

Latih = array [ 1..10, 1..10] of integer;

Var

I,j,n,m : Integer;

A,B,C : latih;

Procedure InputA(var x : latih; m,n : integer);

Begin

For I := 1 to m do

Begin

For J := 1 to n do

Begin

Write(Masukkan suku A[,I,] = );

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

Write(Masukkan suku B[,I,] = );

Raedln(B[I,j](;

End;

End;

End;

Procedure Keluaran(var x : latih; m,n : integer);

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

Write(Masukkan m (mak 10) :);

Readln(m);

Write(Masukkan n (mak 10) :);

Readln(n);
InputA(a,m,n);

InputB(a,m,n);

Writeln; Writeln;

Keluaran(c,m,n);

Readln;

End.

Operasi-operasi Array

2.1. Pengaksesan data array

Pengaksesan data array dapat dilakukan dengan cara memberikan nama variabel array tersebut
serta indexnya.

Contoh :

Data[0]=5;

Data[1]=7;

Printf(Data pertama adalah %d \n,Data[0]);

Cara lain untuk pengaksesan data array dalam bahasa C adalah dengan menggunakan pointer.

Contoh :

1 int data[5]={1,4,5,6,7};

2 int *p,i; //p adalah pointer ke data int, i


adalah sebuah int
3
p=data;
4
i=data[2];
5
*p=50; // identik dengan data[0]=50
6
*(p+1)=15; // identik dengan data[1]=15
7
*(p+2)=*p+data[1]; // identik dengan
8
data[2]=data[2]+data[1];
9
p++; // alamat p ditambah 1 (p berisi
10 alamat int berikutnya)

11 printf(Isi P adalah : ,*p);// akan muncul


data[1] yaitu 50

p=p+2; // alamat p ditambah 2(p berisi


alamat 2 int berikutnya

printf(Isi P sekarang : ,*p);// akan


muncul data[3] yaitu 6

#include <stdio.h>

#include <conio.h>

#define maks 5

main()

int i,*p;

int data[5];

p=data;

clrscr();

printf("Pemasukan data :\n");

for(i=0;i<maks;i++)

printf("Masukan data[%d]: ",i);

scanf("%d",p+i);

printf("\nData yang telah di masukan adalah :\n");

for(i=0;i<maks;i++)

printf("Data[%d] ada di alamat %u dengan isi : %i\n",

i,p+i,*(p+i));

getch();
return 0;

2.2. Menampilkan data array

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]);

Jika ingin menggunakan pointer, maka programnya adalah :

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 :

void view_array(int data[],int banyakdata)

int i;

for(i=0;i<banyakdata;i++)

printf("%4d ",data[i]);

atau jika parameternya ingin berupa pointer

void view_array(int *data,int banyakdata)

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;

printf("3 buah Isi A adalah : ");

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 :

PROGRAM contoh_1; HEADER program utama

VAR a,b,c : integer;


PROCEDURE maksimum;

VAR max : integer;

BEGIN

IF a>b THEN max := a ELSE max := b; deklarasi program

IF c>max THEN max := c; utama

WRITELN(max);

END;

BEGIN

READLN(a,b,c);

Maksimum statement program utama

END.

Contoh 2 :

PROGRAM CONTOH_2;

VAR p,l,t,vol,panj : real;

PROCEDURE kotak;

VAR v,pl : real;

BEGIN

v := p * l * t ;

pl := p + 2.0 * t;

writeln(v,pl);

END;

BEGIN

writeln(panjang : 10,lebar : 10,tinggi : 10);

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

..; daerah berlakunya y daerah

..; berlakunya x

end;

begin

..;

..;

end.

y variabel global

2. Program P ;

Var x,y : real; y (real) berlaku disemua blok program P, kecuali di P1

x (real) berlaku disemua

blok P, kecuali di P2

Procedure Pl ;

Var y : integer; hanya berlaku di P1 saja (lokal)

..

Begin

End;
Procedure P2;

Var x : char; hanya berlaku di P2 saja (lokal)

Begin

..

..

End;

Begin

x := . x dan y yang dimaksud adalah x dan y real

y := . (variabel global)

End.

PROCEDURE DENGAN PARAMETER

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;

Var X,Y :real;

Begin

Write (Nilai X ?);

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;

Var X,Y :real;

Begin

Write (Nilai X ?);

Readln(X);

Y:=X*X;

End;

Begin

Tanya_Hitung;

Writeln(Nilai Y = ,Y:6:2);

End.

Hasilnya :

Error 31: Unknown identifier

Supaya nilai variabel dapat digunakan di modul lainnya, maka dapat dilakukan dengan cara :

1. Dibuat bersifat global

Harus dideklarasikan di atas modul yang menggunakannya.

Procedure kesatu;

Begin

..
End; (*akhir dari procedure kesatu*)

Var

A,B : word;

Procedure kedua;

Begin

..

..

End; (*akhir dari procedure kedua*)

Procedure ketiga;

Begin

..

..

End; (*akhir dari procedure ketiga*)

Begin

..

..

End. (*akhir dari modul utama*)

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

..

End; (*akhir dari procedure kesatu*)

Procedure kedua;
Begin

..

..

End; (*akhir dari procedure kedua*)

Procedure ketiga;

Begin

..

..

End; (*akhir dari procedure ketiga*)

Begin

..

..

End. (*akhir dari modul utama*)

Pada contoh ini, variabel A dan B bersifat global untuk semua modul.

2. Dikirimkan sebagai parameter ke modul yang membutuhkannya.

Parameter yang dikirim dari modul utama ke modul prosedur disebut actual parameter, dan
parameter yang ada dan dituliskan pada judul prosedur disebut formal parameter.

2.1 Pengiriman parameter secara nilai

Parameter yang dikirimkan secara nilai, maka parameter formal yang ada di prosedur akan berisi nilai
yang dikirimkan yang kemudian bersifat lokal di prosedur.

Perhatikan procedure berikut :

Procedure konversi;

begin

f := (5/9) * c + 32; f dan c variabel global, c sebagai input dan

writeln(c,f); f sebagai output.

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

F := (5/9) * c + 32; disebut formal parameter

Writeln(c,f);

End;

Selanjutnya procedure di atas dapat dipanggil dengan parameter lain, misalnya :

konversi (x,y) ;

actual parameter

x dan y disebut sebagai actual parameter.

Pada eksekusinya x akan menggantikan c dan y akan menggantikan f.

x dan y ini dapat berupa :

- konstanta

- variabel

- procedure, atau

- fungsi

Contoh :

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.

Hasilnya :

Nilai X ? 2

Nilai Y ? 3

Nilai C = 5

2.2 Pengiriman parameter secara acuan

Bila pengiriman parameter secara acuan (by reference), maka perubahan-perubahan yang terjadi
pada nilai parameter formal di prosedur akan mempengaruhi nilai actual parameter .

Procedure hitung(Var A,B,C : integer);

Menunjukkan pengiriman parameter secara acuan.

Contoh :

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.

Hasilnya :

X=2Y=3Z=5

Acuan Forward

Digunakan untuk mendeklarasikan dimuka judul prosedur terpisah dari bloknya.

Contoh :
Procedure pro1(var I : integer); Forward;

Procedure pro2(var I : integer);

Begin

Writeln(prosedur pro, I);

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

Prosedur yang disediakan oleh Turbo Pascal :

1. Prosedur standar EXIT

Digunakan untuk keluar dari suatu blok.

2. Prosedur standar HALT

Digunakan untuk menghentikan proses program baik di program bagian maupun di program utama.

3. Prosedur standar MOVE


Bentuk umum : MOVE (Var source,dest; count : word);

Digunakan untuk menyalin suatu blok sebanyak count byte memori dari blok dimulai byte pertama
source dan disalinkan ke byte pertama dest.

4. Prosedur standar FILLCHAR

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.

Secara umum bentuk header suatu function adalah :

FUNCTION nama : jenis hasil;

Atau FUNCTION nama (formal parameter : jenis ) : jenis_hasil;

Contoh :

1. Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar di antara
dua integer.

Function MAX (x,y : integer) : integer;

Begin

If x < y then MAX := y ;


Else MAX := x;

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.

2. Function LOG (x : real) : real;

Begin

LOG := ln (x) / ln (10.0);

End;

3. Function POWER (x,y : real) : real;

Begin

POWER := exp (y * ln (X))

End;

ab = POWER (a,b)

ba = POWER (b,a)

(p + q)r/s = POWER (p + q, r/s)

..

dll

Contoh :
Function Hitung(Var A,B : integer): integer;

Begin

Hitung := A + B;

End;

Var X,Y : integer;

Begin

Write(Nilai X ? );

Readln(X);

Write(Nilai Y ? );

Readln(Y);

Writeln;

Writeln(X, + ,Y, = ,Hitung(X,Y));

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.

1. function faktorial (nilai : integer) : integer;

begin

if nilai <= 0 then faktorial := 1;

else faktorial := nilai * faktorial (nilai-1)

end;
Var

N : integer;

Begin

Write(Berapa faktorial ? );

Readln(N);

Writeln(N, faktorial = ,faktorial(N):9:0);

End.

faktorial (4) = 4 * faktorial (3)

3 * faktorial (2)

2 * faktorial (1)

1 * faktorial (0)

=4*3*2*1*1

= 24

2. Bilangan Fibonanci:

F (0) = 0

F (1) = 1

F (n) = F ( n-1 ) + F (n-2); untuk n >1

Function fibonacci ( n : integer ) : integer;

Begin

If n = 0 then fibonacci := 0

Else

If n := 1 then fibonacci := 1

Else fibonacci := fibonacci (n-1) + fibonacci (n-2);


End;

3. Procedure reverse ( num : integer );

Begin

If num < 10 then write(num)

Else begin

Write(num mod 10);

Reverse(num div 10);

End;

End;

Fungsi Standar

1. Fungsi standar arutmatika

Fungsi standar ABS


Bentuk umum : ABS(x);

Digunakan untuk memutlakkan suatu nilai yang ditunjukkan oleh argumen x.

Contoh :

Begin

X:=-2.3;

Write(Nilai X = ,X, Nilai mutlaknya = ,Abs(X):3:1);

End.

Fungsi standar EXP


Bentuk Umum : EXP(x:):real;

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.

Fungsi standar INT


Bentuk umum : INT(x:real):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;

Write(Nilai yang akan dibulatkan = ,X);

Writeln(Nilai pembulatannya = ,Int(X):3:2);

End.

Hasil :

Nilai yang akan dibulatkan = 9.99

Nilai pembulatannya = 9.00

Fungsi standar FRAC


Bentuk umum : FRAC(x:):real;

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;

Write(Nilai X = ,X, Nilai pecahannya = ,Frac(X):4:3);

End.
Hasilnya : Nilai X = 9.99 Nilai pecahannya = 0.990

Fungsi standar SQR


Bentuk umum : SQR(x);

Digunakan untuk menghitung nilai pangkat kuadrat dari argumen x.

Contoh :

Begin

X :=2;

Write(Nilai X = ,X, Nilai kuadratnya = ,sqr(x));

End.

Hasilnya : Nilai X = 2 Nilai kuadratnya = 4

Fungsi standar SQRT


Bentuk umum : SQRT(x) : real;

Digunakan untuk menghitung nilai akar dari argumen x, hasilnya berupa real.

Fungsi standar PI, SIN, COS, ARCTAN

1. Fungsi Standar Transfer Digunakan untuk merubah suatu nilai ke bentuk nilai lain.

Fungsi standar CHR

Bentuk umum : CHR(x:byte):char;

Digunakan untuk merubah nilai dari byte x ke bentuk karakter yang sesuai dengan kode ASCII.

Contoh :

X := 66;

Write(Nilai X = ,x, Nilai karakternya = ,CHR(X));

Hasilnya : Nilai X = 66 Nilai karakternya = B

Fungsi standar ORD

Bentuk umum : ORD(x):longint;


Digunakan untuk merubah nilai x ke bentuk nilai longint yang sesuai dengan kode ASCII, merupakan
kebalikan dari fungsi CHR.

Fungsi standar ROUND


Bentuk umum : ROUND(x:real):longint;

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 :

Write(10 dibagi 3 hasil pembulatan terdekat ,Round(10/3));

Writeln(20 dibagi 3 hasil pembulatan terdekat adalah ,Round(20/3);

Hasilnya :

10 dibagi 3 hasil pembulatan terdekat adalah 3

20 dibagi 3 hasil pembulatan terdekat adalah 7

Fungsi standar TRUNC


Bentuk umum : TRUNC(x:real):longint;

Digunakan untuk membulatkan nilai dari real x ke nilai longint terkecil. Atau dengan kata lain
membulatkan ke bawah.

Contoh :

Write(10 dibagi 3 hasil pembulatan terdekat ,Trunc(10/3));

Writeln(20 dibagi 3 hasil pembulatan terdekat adalah ,Trunc(20/3);

Hasilnya :

10 dibagi 3 hasil pembulatan terdekat adalah 3

20 dibagi 3 hasil pembulatan terdekat adalah 6

1. Fungsi Standar Lainnya Fungsi standar yang tidak termasuk dalam kelompok pembagian di atas :
Fungsi standar Hi, Lo, Swap

Fungsi standar Random


Bentuk umum : Random [(range :word)];
Digunakan untuk menghasilkan angka random berkisar dari nilai lebih besar atau sama dengan nol
dan lebih kecil dari satu. Bila range tidak disebutkan, hasil dari fungsi ini adalah real, bila range
disebutkan, hasilnya adalah word.

Fungsi standar SizeOf


Bentuk umum : SizeOf(x):word;

Digunakan untuk menunjukkan besarnya byte yang digunakan oleh suatu variabel x, hasilnya berupa
nilai word.

Fungsi standar UPCASE


Bentuk umum : UpCase(Ch:char):char;

Digunakan untuk merubah argumen suatu karakter yang ditunjukkan oleh Ch menjadi bentuk
karakter huruf besar (upper case).

1.1. Fungsi Tanpa Parameter


Fungsi yang tanpa parameter berarti nilai balik yang akan dihasilkan merupakan nilai
yang sudah pasti. Karena tidak menggunakan parameter, maka hasil fungsi tersebut tidak
dapat diatur dari modul yang menggunakannya, karena tidak ada parameter yang dikirimkan.
Fungsi tanpa parameter jarang dipergunakan.
Contoh program :
Type Huruf = string [6] ;
Function Garis : Huruf ;
Begin
Garis : = ====== ;
End ;
Begin
Writeln (Garis) ; Writeln (Pascal) ; Writeln (Garis) ;
End.
Output program :
======
Pascal
======
Keterangan program :
Fungsi Garis hanya menghasilkan nilai yang sudah pasti yaitu : ======.

1.2. Parameter Dalam Fungsi


Parameter dalam fungsi dapat dikirimkan secara nilai atau secara acuan.
Contoh penulisan parameter dengan pengiriman secara nilai :
Function Hitung (A, B : integer ) : integer ;
Contoh program :
Function Terbesar(X, Y : real ) : real ;
Begin
If X > Y Then
Terbesar : = X
Else
Terbesar : = Y ;
End ;
Var
Nilai1 , Nilai2 : real ;
Begin
Write (Nilai pertama = ) ; readln (Nilai1) ;
Write (Nilai kedua = ) ; readln (Nilai2) ;
Writeln (Nilai terbesar adalah =, Terbesar (Nilai1, Nilai2) : 9 : 3 ) ;
End.
Output program :
Nilai pertama = 12.356
Nilai kedua = 55.182
Nilai terbesar adalah = 55.182

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.

Fungsi Memanggil Dirinya Sendiri


Proses fungsi memanggil dirinya sendiri juga merupakan proses recursion.
Contoh program :
Function Faktorial (Nilai : integer ) : real ;
Begin
If Nilai = 0 Then
Faktorial : = 1
Else
Faktorial : = Nilai * Faktorial (Nilai 1 ) ;
End ;
Var
N : integer ;
Begin
Write (Berapa factorial ?) ;
Readln (N) ;
Writeln (N, faktorial =, Faktorial(N) : 9 : 0 ) ;
End.

Output program :
Berapa factorial ? 5
5 faktorial = bbbbbb120
ket : b = blank

Fungsi Memanggil Fungsi Yang Lain


Fungsi yang di panggil letaknya harus berada di atas fungsi yang memanggilnya.
Contoh program :
Function Fungsi2 (Y : integer) : integer ;
Begin
Fungsi2 : = Y * 2 ;
End ;
Function Fungsi1 ( X : integer ) : integer ;
Begin
Fungsi1 : = Fungsi2 (X) + 5 ;
End ;
Begin
Writeln (Fungsi1(3)) ;
End.

Anda mungkin juga menyukai