Anda di halaman 1dari 21

Prosedur dan Fungsi

Didik Dwi
didik@um.ac.id

Subbahasan
Prosedur
Fungsi

Parameter Prosedur dan Fungsi


Iteratif dan Rekursif

Didik Dwi - Teknik Elektro UM

Modularisasi
Teknik pemrograman modular
Modul = rutin (routine) = prosedur =

fungsi
Program lebih independen
Menghindari penulisan ulang program

Didik Dwi - Teknik Elektro UM

Prosedur
Subprogram yang dapat dipanggil di

dalam program (atau subprogram lain).


Tidak mengembalikan nilai.
Mendefinisikan:

Keadaan/kondisi Awal (Initial State/IS)


Keadaan/kondisi Akhir (Final State/FS)

Didik Dwi - Teknik Elektro UM

Notasi Prosedur
procedure Nama_Prosedur
{Spesifikasi prosedur}
{K.Awal : keadaan sebelum prosedur dilaksanakan}
{K.Akhir : keadaan setelah prosedur dilaksanakan}
Deklarasi
{deklarasi lokal prosedur}
Deskripsi
{badan prosedur}

Didik Dwi - Teknik Elektro UM

Prosedur Cetak Halo


procedure Cetak_Halo
{Mencetak string Halo ke layar}
{K.Awal : sembarang}
{K.Akhir : tercetak string Halo}
Deklarasi
{tidak ada}
Deskripsi
{mencetak string Halo}
write(Halo)
Didik Dwi - Teknik Elektro UM

Pemanggilan Prosedur
Instruksi dilaksanakan jika prosedur

diakses/dipanggil
Pemanggilan melalui program utama atau
subprogram
Pemanggilan merujuk nama prosedur

Didik Dwi - Teknik Elektro UM

Pemanggilan Prosedur (2)


Algoritma Utama
{Contoh algoritma untuk memanggil prosedur}
Deklarasi

Deskripsi

{memanggil prosedur Cetak_Halo}


Cetak_Halo
{memanggil prosedur Cetak_Halo lagi}
Cetak_Halo

Didik Dwi - Teknik Elektro UM

Parameter
Mekanisme pertukaran informasi
Jenis:
Parameter formal: parameter yang
dideklarasikan di bagian header prosedur
Parameter aktual: parameter yang diberikan
saat pemanggilan
Jumlah dan tipe parameter aktual harus

sama dengan parameter formal

Didik Dwi - Teknik Elektro UM

Parameter Masukan
procedure Nilai_Maksimum(input A, B: integer)
{Menentukan nilai tertinggi antara A dan B}
{K.Awal : sembarang}
{K.Akhir : nilai maksimum tercetak}
Deklarasi
maks : integer
Deskripsi
if A > B then
maksA
else
maksB
endif
write(maks)
Didik Dwi - Teknik Elektro UM

10

Parameter Keluaran
Untuk menampung nilai hasil operasi

prosedur
Nilai disimpan pada parameter keluaran
(output)

Didik Dwi - Teknik Elektro UM

11

Parameter Keluaran
procedure Luas_SegiTiga (input a, t: integer, output L: real)
{Menghitung luas segi tiga, rumus L = (a * t) / 2}
{K.Awal : a dan t sudah berisi nilai}
{K.Akhir : L berisi luas persegi}
Deklarasi
{tidak ada}
Deskripsi
L(a * t) / 2
{Menetapkan output}

Didik Dwi - Teknik Elektro UM

12

Pemanggilan
Deklarasi
a, b, L : integer
Deskripsi
a10
b4
{pemanggilan prosedur dengan parameter keluaran}
Luas_Segitiga(a, b, L)
write(L)

Didik Dwi - Teknik Elektro UM

13

Parameter In/Out
Berfungsi sebagai masukan dan keluaran
Dideklarasikan menggunakan keyword

input/output
Contoh:

procedure Inkremen(input/output x, y : integer)

Didik Dwi - Teknik Elektro UM

14

Didik Dwi - Teknik Elektro UM

15

Fungsi
Modul program dengan tujuan spesifik
Fungsi mengembalikan sebuah nilai

Didik Dwi - Teknik Elektro UM

16

Notasi Fungsi
function Nama_Fungsi(input daftar parameter) tipe hasil
{Spesifikasi, menjelaskan apa yang dilakukan dan yang
dikembalikan oleh fungsi}
Deklarasi
{deklarasi lokal }
Deskripsi
{badan fungsi}
return hasil

Didik Dwi - Teknik Elektro UM

17

Fungsi Nilai Maksimum


function Maks(input a, b: integer) integer
{Mengembalikan nilai terbesar dari a dan b}
Deklarasi
{tidak ada}
Deskripsi
if a > b then
return a
else
return b
endif
Didik Dwi - Teknik Elektro UM

18

Pemanggilan Fungsi
Pemanggilan melalui program utama atau

subprogram
Pemanggilan merujuk nama fungsi
Pemanggilan melalui:

Variabel
variabel nama_fungsi
Operasi manipulasi langsung
if (nama_fungsi > 0) then

Didik Dwi - Teknik Elektro UM

19

Pemanggilan Fungsi
Algoritma Utama
{Contoh algoritma untuk memanggil fungsi Maks}
Deklarasi
A, B, C : integer
Deskripsi

{mendapatkan nilai terbesar dari A dan B, menyimpan di C}


C = Maks(A, B) {memanggil fungsi Maks}
write(Nilai terbesar adalah: , Maks(A, B))

if Maks(A, B) > 0 then


Didik Dwi - Teknik Elektro UM

20

Studi Kasus
Buat fungsi dan prosedur untuk

menghitung nilai jumlah deret 1 s/d N (di


mana N merupakan input) dan
mengembalikan hasilnya (bukan
mencetak).
Misal N = 3, maka
Hasil = 1 + 2 + 3
=6
Gambarkan flowchart-nya
Didik Dwi - Teknik Elektro UM

21