Anda di halaman 1dari 20

ALGORITMA & SUB

ALGORITMA
Algoritma & sub Algoritma
• Menurut Al-Khuwarizmi
Untuk mencapai tujuan besar, maka tujuan
tersebut harus dibagi-bagi menjadi tujuan kecil
sampai tujuan kecil itu merupakan tujuan yang
dapat dicapai berdasarkan kondisi dan potensi
yang dimiliki saat itu.
Pemrograman Modular
Memecah program besar menjadi beberapa sub
program (routine) yang lebih kecil
• Keuntungan
– menjadi sederhana
– Menghindari penulisan yang sama berulangkali
– Dapat mengurangi panjang program/algoritma
Sub Algoritma
• Komponen algoritma yang terpisah dari
algoritma utamanya atau berdiri sendiri
tapi diproses dibawah kendali algoritma
utama
• Dibedakan menjadi :
1. Procedure
2. Function
Gambaran umum
Algoritma utama Sub Algoritma A
: :
: Return
Panggil Sub Algoritma A
:
Panggil Sub Algoritma B Sub algoritma B
: :
exit return
Procedure
• Sub algoritma yang diaktifkan dengan
perintah Call dan diikuti dengan nama
procedure dan parameternya;
• mempunyai satu output atau lebih; atau
sama sekali tidak
Procedure
Format Penulisan :
– Procedure nama_procedure;
– Procedure nama_procedure[parameter1, parameter2 ,……]

• Parameter dapat berfungsi sebagai varibel input (parameter


nilai) maupun output (parameter variabel) bagi suatu
procedure {keduanya disebut parameter formal}
• Procedure boleh tidak mempunyai parameter output
maupun input.
• Contoh :
– Procedure ReSet
– Procedure Tambah(a,b,c  bil. Bulat)
– Procedure mencetak header
Procedure
• Format pemanggilan
– Call nama_procedure
– Call nama_procedure[argumen1, argumen2 ,……]

• Argumen disebut juga dengan parameter


aktual
• Argumen dapat berupa : nilai, konstanta,
ekspresi, variabel maupun sub algoritma
Procedure
• Jumlah dan tipe argumen harus sesuai dengan jumlah dan
tipe parameter formal

• Contoh :
Procedure Bagi(dibagi, pembagi  bil. Bulat; hasil,sisa  bil.
real)

Call Bagi(para_1,para_2,para_3,Para_4)
Procedure

• Pada waktu pemanggilan argumen yang berfungsi


sebagai output harus berupa variabel

• Contoh :
– Procedure Bagi[dibagi, pembagi,hasil,sisa]
– Call bagi(10,5,hasilnya,sisanya)
Contoh sub algoritma : Contoh pemanggilan :

Deklarasi
Procedure Tukar[X,Y  bil. bulat]
A,B  bil. bulat
Deklarasi
Deskripsi
Sementara bil bulat Read (A,B)
Dekripsi : Call Tukar [A,B]
Sementara  X Write(A, ‘ ‘,B)
XY
Y  Sementara
Return
Function
• Sub algoritma yang diproses langsung dalam suatu
ekspresi dan selalu menghasilkan satu nilai output
• Pada awal penulisan sub algoritma function harus
dituliskan nama dan parameternya
Formatnya :
Function nama(daftar parameter)

Contoh :
Function RataRata(Nilai_1, Nilai_2, Nilai_3, Nilai_4
bil. bulat)
Function

• Parameter adalah variabel yang mengatur proses


sub algoritma tersebut.
• Hanya mempunyai satu output, nilai output ini
dikeluarkan ke algoritma utama melalui nama
function tersebut. Jadi dalam function harus ada
proses yang memasukkan nilai ke dalam variabel
yang bernama sama dengan nama function.
Function
• Parameter berfungsi sebagai input dan boleh
lebih dari satu. Function harus diakhiri dengan
RETURN yang mengembalikan kontrol
algoritma ke algoritma utama.
• Function digunakan dalam suatu ekspresi
dengan cara menuliskan nama dan argumennya
dalam ekspresi itu. Dimana argumen dapat
berupa :
Bilangan konstan
variabel yang nilainya telah didefinisikan
ekspresi
Function
• Jumlah dan tipe argumen harus sama dengan
parameter yang bersesuaian karena pada waktu
function diproses terjadi korespondensi antara
argumen dan parameter yang bersesuaian atau
dengan kata lain argumen dimasukkan ke
parameter yang bersesuaian.
• Jadi argumen adalah nilai tertentu yang
diisikan ke parameter ketika sub algoritma itu
dipanggil.
Contoh
Buatlah function untuk menghitung nilai =
A[1]*X1 + A[2]*X2 + A[3]*X3 +...+
A[n]*Xn + konstan. Dimana function ini
bertipe real. A adalah array bertipe integer,
untuk menyimpan koefisien. n adalah
integer untuk menyatakan pangkat. Konstan
dan X adalah integer. I bertipe Integer.
Variabel Local & Variabel Global
• Variabel yang didefinisikan dalam procedure/function
bersifat lokal terhadap procedure/function tersebut dan
dinamakan variabel lokal.
• Variabel lokal tidak mempunyai pengaruh diluar
procedure/function dan akan lenyap setelah
procedure/function itu dieksekusi.
• Jadi variabel lokal tidak dikenal diluar procedure/function
yang mendefinisikannya, hanya nama procedure/function
yang dikenal sub algoritma.
• Variabel yang didefinisikan pada algoritma utama akan
dikenal dan disebut variabel global.
Contoh
Buat procedure untuk mereset nilai-nilai yang dimasukkan.
semua variabel bertipe integer.

Prosedure Reset [m,n,x]


Algoritma Utama
m0 Deklarasi
n0 a,b,c,x,y,z : integer
x0 Deskripsi
Read (a,b,c,x,y,z)
a0
Call Reset (a,b,c,y)
return
Write(a,b,c,x,y,z)
Exit
Bila algoritma tersebut dieksekusi, dimana nilai
inputnya sbb :

a = 10 b = 20 c = 30
x = 40 y = 50 z = 60

Maka Hasilnya :
a=0 b=0 c=0
x = 40 y=0 z = 60
Keterangan :
• a adalah variabel global yang dikenal di algoritma utama
maupun di sub algoritma karena disub Algoritma reset nilai a
(diisi 0) maka nilai a pada algoritma utama juga akan berubah
menjadi 0.
• Ada 2 variabel x, pada sub algoritma yang merupakan
variabel lokal dan pada algoritma utama yang merupakan
variabel global.
• Nilai variabel lokal x tidak akan dikenal oleh algoritma utama
sehingga nilai x pada algoritma utama tetap 40 walaupun pada
sub algoritma nilai x diberi nilai 0.
• Perhatikan bahwa parameter x pada algoritma utama dipanggil
dengan argumen y sehingga nilai variabel y yang direset.
• Variabel lokal dapat diubah menjadi variabel global dengan
menggunakan perintah public

Anda mungkin juga menyukai