Prosedur dan Fungsi Agus Sumaryanto, S.Kom mas.anto72@gmail.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. 2 1
Fungsi Fungsi atau Function Modul program yang mengembalikan sebuah nilai. Fungsi dalam matematika : f(x) = x 2 + 3x 5 g(t) = 2t 3 h(u,v,w) = 2uv 2 + 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. 3 Deklarasi Fungsi Sintaks : Parameter formal function NAMAFUNGSI (parameter masukan) tipe hasil {spesifikasi fungsi, menjelaskan apa yang dilakukan fungsi dan apa yang dikembalikan oleh fungsi} {konstanta, tipe dan variabel lokal, yang dikenal dalam fungsi} {langkah-langkah yang dikerjakan oleh fungsi} return (hasil) 4 2
Pemanggilan Fungsi Fungsi dipanggil dengan menyebutkan nama fungsi beserta parameternya. Sintaks : NAMAFUNGSI (parameter) Parameter aktual = nilai yang harus disertakan pada saat pemanggilan fungsi 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 5 Contoh Fungsi-1 Algoritma_DenganFungsi {algoritma dengan fungsi dan cara pemanggilannya} 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 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 6 3
Contoh Fungsi-2 TAHUN_KABISAT {Algoritma untuk memeriksa apakah tahun yang dimasukkan dari piranti masukan termasuk kabisat atau tidak} 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) Read(tahun) If KABISAT(tahun) then Write( Tahun,tahun, adalah KABISAT ) Else Write( Tahun,tahun, adalah bukan KABISAT ) Endif 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. 8 4
Deklarasi/Pemanggilan Prosedur Sintaks : procedure NAMAPROSEDUR (input/output parameter formal) {semua konstanta, tipe dan variabel lokal didefinisikan disini} {runtunan aksi} Pemanggilan Prosedur : NAMAPROSEDUR(parameter aktual) Saatpemanggilan 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. 9 Contoh Prosedur-1 Procedure LuasSegitiga(input a,t : real; output L:real) Algoritma L 0.5 * a * t HitungLuasSegitiga Alas : real Tinggi : real Luas : real Procedure LuasSegitiga(input a,t : real; output L:real) read(alas, tinggi) LuasSegitiga(alas,tinggi, luas) write(luas) 10 5
Contoh Prosedur-2 Procedure Euclidean(input m:integer; input n:integer; output pbt:integer) r : integer 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) Z : integer Z x x y Y z 11 Contoh Prosedur-2 (lanj) HITUNG_PBT m, n : integer pbt : integer Procedure Euclidean(input m:integer; input n:integer; output pbt:integer) Procedure Tukar(input/output x,y : integer) Read(m,n) If m<n then Tukar(m,n) Endif EUCLIDEAN(m,n,pbt) Write(pbt) 12 6
Prosedur apa Fungsi? Kapan kita menggunakan prosedur atau fungsi?. Tidak ada aturan baku, tapi lebih pada konteks dari algoritma itu sendiri. 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. 14 7