11/04/2010
Prosedur dan Fungsi Agus Sumaryanto, S.Kom
[email protected]
http://learning.mas-anto.com
1
Kenapa Prosedur atau Fungsi? • Untuk mencapai suatu 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. (Al-Khuwarizmi). • Prosedur dan Fungsi adalah tujuan kecil itu. • Prosedur dan fungsi adalah bagian dari program yang mempunyai “tugas” sendiri. http://learning.mas-anto.com
2
1
11/04/2010
Fungsi • Fungsi atau Function – Modul program yang mengembalikan sebuah nilai. • Fungsi dalam matematika : – f(x) = x2 + 3x – 5 – g(t) = 2t – 3 – h(u,v,w) = 2uv2 + 3vw + 10v
• f, g dan h adalah nama fungsi dan x, t, u, v dan w adalah parameter. • Jika parameter tersebut diberikan nilai maka fungsi akan menghasilkan sebuah nilai. http://learning.mas-anto.com
3
Deklarasi Fungsi Parameter formal
• Sintaks :
function NAMAFUNGSI (parameter masukan)
tipe hasil
{spesifikasi fungsi, menjelaskan apa yang dilakukan fungsi dan apa yang dikembalikan oleh fungsi}
DEKLARASI LOKAL {konstanta, tipe dan variabel lokal, yang dikenal dalam fungsi}
ALGORITMA {langkah-langkah yang dikerjakan oleh fungsi}
return (hasil)
http://learning.mas-anto.com
4
2
11/04/2010
Pemanggilan Fungsi • Fungsi dipanggil dengan menyebutkan nama fungsi beserta parameternya. Parameter aktual = nilai yang • Sintaks : harus disertakan pada saat pemanggilan fungsi NAMAFUNGSI (parameter) • Yang diperlukan dalam pemanggilan fungsi : – – – –
Jumlah parameter aktual = jumlah parameter formal Tipe parameter aktual=tipe parameter formal Urutan parameter aktual=urutan parameter formal Nama parameter aktual tidak bole sama dengan parameter formal
http://learning.mas-anto.com
5
Contoh Fungsi-1 Algoritma_DenganFungsi {algoritma dengan fungsi dan cara pemanggilannya} DEKLARASI function F(x : real) real {mengembalikan nilai F(x) =x2 + 3x – 5 } Return x*x+3*x-5 x : real a : real y : real z : real ALGORITMA Read(a) Read(x) {cara pemanggilan fungsi : langsung pada pernyataan cetak} Write(F(a)) Write(F(x)) Write(F(8.3)) z F(a)/10 Repeat x x/2 Until F(x)>10 {cara pemanggilan fungsi : ditampung dalam variabel lain} y F(a) z F(x) If y <0 then Write(y) endif http://learning.mas-anto.com
6
3
11/04/2010
Contoh Fungsi-2 ALGORITMA TAHUN_KABISAT {Algoritma untuk memeriksa apakah tahun yang dimasukkan dari piranti masukan termasuk kabisat atau tidak} DEKLARASI Tahun : integer Function KABISAT(th:integer) boolean {mengembalikan nilai true jika th adalah tahun kabisat, false kalo sebaliknya} Return (th mod 4 =0) or (th mod 100=0) or (th mod 400) ALGORITMA Read(tahun) If KABISAT(tahun) then Write(‘Tahun ‘,tahun,’ adalah KABISAT’) Else Write(‘Tahun ‘,tahun,’ adalah bukan KABISAT’) Endif
http://learning.mas-anto.com
7
Prosedur • Sama dengan fungsi, prosedur juga merupakan modul atau bagian dari program. • Prosedur – rangkaian aksi dan menghasilkan efek netto yang terdefinisi. • Dalam prosedur juga dapat ditambahkan parameter dan dibedakan menjadi 3 jenis paramater yaitu : – Parameter input – parameter formal yang digunakan untuk menampung masukkan. – Parameter ouput – parameter formal yang digunakan untuk menampung keluaran. – Parameter input/output – parameter formal yang digunakan untuk menampung masukkan dan keluaran. http://learning.mas-anto.com
8
4
11/04/2010
Deklarasi/Pemanggilan Prosedur • Sintaks :
• • • •
procedure NAMAPROSEDUR (input/output parameter formal) DEKLARASI LOKAL {semua konstanta, tipe dan variabel lokal didefinisikan disini} ALGORITMA {runtunan aksi} Pemanggilan Prosedur : NAMAPROSEDUR(parameter aktual) Saat pemanggilan prosedur terjadi korespondensi satu-satu antara parameter formal dengan parameter aktual. Parameter aktual input harus berupa konstanta atau variabel (harga terdefinisi) Parameter aktual input atau input/output harus berupa variabel. http://learning.mas-anto.com
9
Contoh Prosedur-1 Procedure LuasSegitiga(input a,t : real; output L:real) Algoritma L 0.5 * a * t ALGORITMA HitungLuasSegitiga DEKLARASI Alas : real Tinggi : real Luas : real Procedure LuasSegitiga(input a,t : real; output L:real) ALGORITMA read(alas, tinggi) LuasSegitiga(alas,tinggi, luas) write(luas)
http://learning.mas-anto.com
10
5
11/04/2010
Contoh Prosedur-2 Procedure Euclidean(input m:integer; input n:integer; output pbt:integer) DEKLARASI LOKAL r : integer ALGORITMA Repeat r m div n If r=0 then pbt n else m n n r endif Until r=0 Procedure Tukar(input/output x,y : integer) DEKLARASI LOKAL Z : integer ALGORITMA Z x x y Y z http://learning.mas-anto.com
11
Contoh Prosedur-2 (lanj) ALGORITMA HITUNG_PBT DEKLARASI m, n : integer pbt : integer Procedure Euclidean(input m:integer; input n:integer; output pbt:integer) Procedure Tukar(input/output x,y : integer) ALGORITMA Read(m,n) If m
12
6
11/04/2010
Prosedur apa Fungsi? • Kapan kita menggunakan prosedur atau fungsi?. Tidak ada aturan baku, tapi lebih pada konteks dari algoritma itu sendiri.
http://learning.mas-anto.com
13
Latihan Prosedur/Fungsi Buat algoritma dibawah masing - masing menggunakan prosedur dan fungsi. 1. Algoritma menghitung luas dan keliling lingkaran. 2. Dimasukkan dua buah bilangan bulat dari perangkat masukkan. Buatlah algoritma untuk mencetak bilangan yang terbesar dari dua bilangan tersebut. http://learning.mas-anto.com
14
7