• Tidak ada hasil yang ditemukan

RPP TKJ Kurikulum 2013 Kelas X Pascal.rar

N/A
N/A
Protected

Academic year: 2017

Membagikan "RPP TKJ Kurikulum 2013 Kelas X Pascal.rar"

Copied!
48
0
0

Teks penuh

(1)
(2)

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;

(3)

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;

(4)

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.

(5)

- 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.

(6)

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> using namespace std; int main() {

// Mendeklarasikan array A dengan 3 buah elemen bertipe int

int A[3];

// Mengisikan nilai elemen array

A[0] = 5; A[1] = 10; A[2] = 20;

"<<A[1];

cout<<"Nilai elemen ke-3 = "<<A[2];

return 0; }

‘Mendeklarasikan array A dengan 3 buah elemen bertipe integer

Dim A (2) as Integer ‘Mengisikan nilai elemen array

(7)

// Menampilkan nilai elemen array

cout<<"Nilai elemen ke-1 = "<<A[0];

cout<<"Nilai elemen ke-2 =

A(1) = 10; A(2) = 20;

‘Menampilkan nilai elemen array

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

(8)

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

1

n

(9)

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

(10)

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 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

(11)

//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] +

(12)

}

}

//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++)

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

=

(

a b c d

e f g h

i

j k l

)

dan

B

=

(

(20)

C

=

(

a

+

m b

+

n c

+

o d

+

p

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

(21)

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

(22)

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

(23)

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

2

3

4

5

6

7

8

9

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

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

p=data;

i=data[2];

*p=50; // identik dengan data[0]=50

*(p+1)=15; // identik dengan data[1]=15

(24)

10

11

dengan

data[2]=data[2]+data[1];

p++; // alamat p ditambah 1 (p berisi alamat int berikutnya)

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++)

{

(25)

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

}

(26)

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;

(27)

view_array(a,3); printf("\n");

printf("Seluruh Isi A adalah : ");

(28)

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

(29)

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.

(30)

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;

(31)

………

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.

(32)

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……*)

(33)

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

……..

(34)

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

(35)

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.

(36)

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 = 2 Y = 3 Z = 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

(37)

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.

(38)

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;

(39)

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;

(40)

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

(41)

Readln(N);

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

End.

faktorial (4) = 4 * faktorial (3)

3 * faktorial (2)

2 * faktorial (1)

1 * faktorial (0)

1

= 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)

(42)

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;

Digunakan untuk menghitung nilai pangkat dari bilangan e yaitu sebesar ex. 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

(43)

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 :

(44)

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.

(45)

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.

(46)

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

(47)

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

(48)

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

Gambar

Gambar Lemari dengan banyak kotak laci di dalamnya

Referensi

Dokumen terkait

Retnaningati (2011), melakukan penelitian di SMA Negeri 3 Surakarta menggunakan Model Pembelajaran Siklus Belajar (Learning Cycle) Untuk Meningkatkan Ke- terampilan Proses

Secara keseluruhan Manajemen Pengembangan Pariwisata Kabupaten Semarang di Dinas Pemuda, Olahraga, Kebudayaan dan Pariwisata Kabupaten Semarang sudah baik, disini

Hasil studi empiris menunjukkan bahwa banyak siswa menyelesaikan masalah matematika dengan penalaran imitatif daripada penalaran kreatif.. Siswa meniru prosedur

Alamat Email : diharto72 pada domain gmail.com atau diharto pada domain staff.unnes.ac.id. Pangkat/Golongan/Ruang :

7) Asas Akuntabilitas , adalah asas yang menentukan bahwa setiap kegiatan dan hasil akhir dari kegiatan Penyelenggara Negara harus dapat dipertanggungjawabkan kepada masyarakat

Pandangan bahwa pendidikan dan politik adalah dua hal yang terpisah tidak mengandung kebenaran baik di negara maju dan berkembang karena keduanya merupakan

Indonesia merupakan Negara kepulauan dengan kebudayaan yang beragam. Struktur masyarakat Indonesia ditandai dengan keragaman suku bangsa, ras, agama dan budaya.

4.1.11 Jumlah Tenaga Akademik Tetap pada Universitas Negeri Malang (UM) menurut Fakultas dan Jenjang Pendidikan Number of Full Time Academic Staff at Owened Malang