FUNCTION Oleh : Oman Somantri, S.Kom Email : oman_mantri@yahoo.com
Konsep fungsi dalam pascal sama halnya serupa dengan konsep fungsi dalam matematika. Sebuah fungsi bisa digunakan untuk menghitung sebuah nilai berdasar satu atatu beberapa nilai masukan. Fungsi didefinisikan atau dideklarasikan terlebih dahulu sebelum dipanggil atau digunakan, biasanya disebut dengan user-defined function dan kebalikannya fungsi tanpa dibuat terlebih dahulu disebut built-in function
Fungsi sedikit lebih rumit dari prosedur karena dia selain menerima parameter, fungsi juga dapat menghasilkan nilai keluaran (output) dari hasil pemrosesannya sehingga dalam pemanggilannya pun sedikit berbeda,
Bentuk umum penulisan sebuah fungsi : Function Nama_Fungsi(parameter):tipe-fungsi; Begin pernyataan fungsi End;
Program cobafungsi; uses wincrt; function inputnama (x:string):string; var salam:string; begin salam:='Selamat Datang '+X; inputnama:=salam; end; var nama,kalimat:string; clrscr; write('masukan Nama Anda : ');readln(nama); kalimat:=inputnama(nama); write(kalimat); readln; end.
Disarankan dalam pemakain fungsi, sebaiknya segala bentuk perintah penerimaan input dilakukan diluar fungsi sehingga fungsi hanya menerima parameter, melakukan proses dan mengeluarkan output tanpa harus menerima input dari keyboard.
CONTOH PROGRAM KURS DOLAR program kurs_uang; uses wincrt; var rupiah, kursdolar : integer; dolar : real; function nilaidolar (rp, kurs : integer ) : real; begin nilaidolar := rp / kurs; end; write (' Nilai Rupiah = '); readln (rupiah); write (' Kurs 1 dolar = '); readln (kursdolar); dolar := nilaidolar (rupiah, kursdolar); write (' Rp.', rupiah, ' = ', dolar :3:2, ' dolar'); end. CONTOH PROGRAM KURS DOLAR
Studi Kasus 6 Buat sebuah program pencari huruf mutu mahasiswa dengan menggunakan fungsi dengan ketentuan : Nilai > 75 <=100 A Buat dengan fungsi ? Nilai > 65 <=75 B Nilai > 50 <=65 C Nilai > 40 <=50 D Nilai >= 0 <=40 E
JAWABAN KASUS Uses wincrt; function carihuruf (X:integer) : char; var jawab:char; begin jawab:='?'; if (x>75) and (X<=100) then jawab:='A' else if (x>65) and (X<=75) then jawab:='B' else if (x>50) and (X<=65) then jawab:='C' else if (x>40) and (X<=50) then jawab:='D' else if (x>0) and (X<=40) then jawab:='E'; carihuruf:=jawab; end; Var nilai:integer; hurufmutu:char; Begin Write('Masukan Nilai : ');readln(nilai); hurufmutu:=carihuruf(nilai); Write('Huruf Mutu : ',hurufmutu); End. JAWABAN KASUS
SELESAI