You are on page 1of 10

PROCEDURE DAN FUNCTION

Prosedure dan function merupakan bentuk subprogram dalam pascal, yaitu sekelompok pernyataan bebas yang bisa menjadi bagian dari program/subprogram. Dengan menggunakan procedure dan function, penulisan program dan modifikasi menjadi lebih mudah dilaksakan. 1. PROCEDURE Prosedur adalah suatu program terpisah dan berdiri dalam suatu blok program dan befungsi sebagai sebuah sub program (program bagian). Penulisan prosedur diawali dengan kata Procedure pada bagian deklarasi program dan cukup menuliskan nama prosedur yang dibuat pada bagian Implementasi. {Nama prosedur, menyebutkan IS initial state, FS final state dan proses} procedure tukar (input/output x,y : real) { IS x dan y terdefinisi, x = a dan y = b FS x = b dan y = a Proses : menukar isi informasi bilangan x dan y } Alasan penggunaan prosedur : 1. Digunakan untuk penggalan program yang akan digunakan secara berulang ulang dalam suatu proses program. 2. Digunakan untuk memecah mecah program menjadi sebuah modul program, sehingga listing program menjadi lebih sederhana. Syarat penulisan nama procedure : 1. Harus diawali dengan karakter. 2. Untuk nama prosedur dengan menggunakan dua kata atau lebih penulisannya tidak boleh menggunakan spasi, harus digabung atau dihubungkan dengan underscore (_) 3. Tidak mengenal tanda baca.

Deklarasi procedure terletak pada bagian deklarasi, di bawah deklarasi VAR pada program utama. Bentuk umumnya adalah: Procedure nama_procedure (daftar parameter formal); Bagian deklarasi variabel lokal; Begin ........... Pernyataan ........... End; Daftar parameter formal bersifat optional. Daftar ini digunakan untuk mengontrol komunikasi informasi dari dan ke prosedur tersebut. Terdapat 2 parameter formal, yaitu: 1. Parameter peubah : Mengambil nilai dari parameter aktual dan jika nilainya berubah maka nilai parameter aktual juga berubah. 2. Parameter nilai : Mengambil nilai dari parameter aktual yang sesuai tanpa mengubah nilainya, meskipun nilai parameter formal berubah. Dalam procedure maupun program utama terdapat bagian deklarasi variabel. Variabel yang dideklarasikan di program utama disebut dengan variabel global, yang dapat diakses ke semua bagian program. Sedangkan pada procedure terdapat variabel lokal, yaitu variabel yang hanya bisa diakses oleh bagian program dimana variabel tersebut dideklarasikan. Sebuah procedure bisa memanggil procedure lain yang telah didefinisikan sebelumnya, kemudian dipanggil di program utama.

Untuk memanggil procedure dari program utama bentuk umum perintahnya adalah: nama_procedure (daftar parameter aktual); Prosedur merupakan sub Program yang berisi urutan kegiatan yang melakukan tugas-tugas tertentu. Penulisan prosedur meliputi judul deklarasi dan algoritma. Contoh : Prosedur menyebut kata Deklarasi Kata = string Algoritma Kata isikan kata Tulis kata Untuk memanggil prosedur kita dapat menggunakan perintah panggil atau call

2. FUNCTION Pengertian secara umum mengenai fungsi adalah merupakan sebuah penggalan program yang terpisah dari program utama dan berfungsi sebagai sebuah program bagian dari program utama. Penulisan fungsi diawali dengan kata cadangan function dan dideklarasikan dalam bagian deklarasi fungsi. Dan penulisan program fungsi ditempatkan pada program utama. Satu hal yang perlu diperhatikan dalam penulisan fungsi adalah harus diikuti dengan tipe datanya. {Nama fungsi, menyebutkan domain dan range} function RealToInt (x:real) integer

{mengubah harga x yang bertype real menjadi harga ekivalen yang bertype integer} Function mempunyai kegunaan yang hampir sama dengan procedure. Perbedaannya adalah pada function nama fungsi merupakan satu peubah sehingga dapat digunakan sebagai bagian dari ungkapan. Penggunaan fungsi adalah untuk mempersingkat proses pengkodean, dalam arti ketika menghadapi masalah yang memiliki penyelesaian yang sama. Misalnya saja, ketika harus melakukan proses kalkulasi tertentu terhadap sejumlah angka secara berulang ulang. Bentuk Umum penulisan Fungsi : Function nama_function (daftar parameter formal): tipe; Bagian deklarasi variabel lokal; Begin ........... Pernyataan ........... End; Fungsi Tunggal Fungsi tunggal merupakan suatu fungsi dimana proses pemanggilan dirinya sendiri tanpa melalui fungsi yang lain atau fungsi yang tidak terdapat dalam fungsi yang lain. Listing Program Dengan Fungsi Function hitung(var a,b : integer): integer; Begin

hitung := a+b; end; procedure TForm10.bjumlahClick(Sender: TObject); var x,y : integer; c : integer; begin x := strtoint(enil1.Text); y := strtoint(enil2.Text); c:= hitung(x,y); hasil.Text := inttostr(c); end; Didalam program utama tidak ditempatkan rumus untuk menghitung penjumlahan tetapi ketika dilakukan eksekusi terhadap program dan kita melakukan input nilai 1 dan 2 dan kita klik jumlah maka akan ditampilkan hasil yang diinginkan. Hasil itu diperoleh dari pengiriman nilai dari teks ke nilai pada variabel diprogram utama (x := strtoint(enil1.Text);y := strtoint(enil2.Text);). Selanjutnya nilai pada variabel diprogram utama dikirim ke fungsi hitung untuk mendapat hasil penjumlahan (c:= hitung(x,y);). Fungsi Untuk Memanggil Fungsi yang Lain Merupakan pembuatan program fungsi yang digunakan untuk memanggil program fungsi yang lain didalam satu listing program. Listing Program Fungsi Perhitungan Bunga function pangkat(x,y : real):real;

begin pangkat := exp(ln(x)*y); end; function bunga(e,f,g : real):real; begin bunga := e*pangkat((1+f/100),g); end; Program Total procedure TForm15.btotalClick(Sender: TObject); var a,b,c,d,e : real; begin a := strtofloat(ejumlah.Text); b := strtofloat(ebunga.Text); c := strtofloat(elama.Text); d := bunga(a,b,c); kembalian.Text := floattostr(d); kembalian.Text := formatfloat('#.###,0',d); e := d/c; cicil.Text := floattostr(e); cicil.Text := formatfloat('#.###,0',e); end; Program Bersih procedure bbersih; begin jumlah.Text :=''; lama.Text := '';

peminjam.Text := ''; bunga.Text := ''; kembalian.Text :=''; cicil.Text := ''; end; Program Menutup Form procedure bclose; begin close; end; Fungsi adalah sub program yang mengembalikan nilai dalam tipe tertentu. Fungsi dapat di panggil dengan perintah panggil/call atau dengan cara menulis nama fungsi tersebut. Contoh: Program memasukkan berat barang Deklarasi Berat barang as array (1..10) of real Algoritma For I = o to 10 do Berat nilai tertentu Endfor

Penulisan fungsi adalah di mulai dari tipe data kembaliannya (return), lalu nama fungsi tersebut kemudian parameter dan kerja dari fungsi tersebut. <tipe_data> <nama_fungsi> (<tipe_data_dari_parameter paramater>) {//kerja dari fungsi di taruh di sini... return <variabel_kembalian> //optional} Tipe data kembalian bisa tidak dispesifikasikan jika memang tidak ada kembalian dari fungsi kita. Jadi, untuk fungsi yang tidak mempunyai kembalian maka sebenarnya ada tipe khusus untuk fungsi ini yaitu void / kosong. Contoh fungsi yang tidak mempunyai tipe kembalian adalah: void fungsiku_yang_void (int n) {int n2 = n * n; cout << n setelah di pangkat dua adalah << n2 << \n;} Fungsi juga bisa mempunyai parameter yang kosong (tanpa parameter). Artinya, tanpa adanya sebuah variabel pun, kita dapat memanggil fungsi ini. Contoh untuk fungsi seperti ini adalah: int fungsiku_tanpa_parameter () {cout << hi\n;} Contoh lain dari fungsi: #include <iostream> using namespace std; int fungsiku (int angka)

{return (angka * 2);} void main () {int angka1, angka2, angka3; cout << masukkan tiga angka yang anda ingin kalikan dengan 2: ; cin >> angka1 >> angka2 >> angka3; cout << angka anda setelah di kalikan dengan 2 adalah: <<fungsiku (angka1) << terus, << fungsiku (angka2) <<, dan << fungsiku (angka3) << \n;} Fungsi Rekursif Sebuah fungsi dikatakan rekursif kalau fungsii itu memanggil dirinya sendiri. Misalnya saja fungsi A setelah melakukan kerjanya, memanggil ulang dirinya sendiri sampai pada batas tertentu yang telah ditetapkan. Misalnya saja, mengurangi sebuah angka sampai tersisa hanya setengah dari nilainya saja. Contohnya adalah seperti kode berikut ini: #include <iostream> using namespace std; void masukan_angkanya (int n, int m) {if (n == m) cout << "angkanya setelah diproses berkali-kali, adalah: " << n << "\n"; else {n -= 1; masukan_angkanya (n, m);}} void main () {int masukan, masukan2; cout << "masukkan sebuah angka yang genap: \n"; cin >> masukan;

masukan2 = masukan / 2; masukan_angkanya (masukan, masukan2);}

You might also like