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 prosedur yang dibuat pada bagian bagian Implement Implementasi. asi.
{Nama prosedur, menyebutkan menyebutkan “IS” initial state, “FS” final state dan proses} ) procedure 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 isi informasi bilangan x dan y }
Alasan penggunaan prosedur : 1. Digunakan Digunakan untuk untuk penggala penggalan n program program yang akan akan digunakan digunakan secara berulang berulang – ulang ulang dalam suatu proses program. 2. Digunakan Digunakan untuk untuk memeca memecah h – mecah mecah program program menjadi menjadi sebuah sebuah modul modul program program,, sehingga listing program menjadi lebih sederhana.
Syarat penulisan nama procedure : 1. Haru Haruss diawa diawali li deng dengan an kara karakt kter. er. 2. Untuk nama prosedur prosedur dengan dengan menggu menggunakan nakan dua dua kata atau lebih lebih penulisanny penulisannyaa tidak boleh mengg menggunakan unakan spasi, harus digabung digabung atau dihubungk dihubungkan an dengan dengan underscor underscoree (_) 3. Tida Tidak k men menge genal nal tanda tanda baca. 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.
()
{//kerja dari fungsi di taruh di sini... return //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 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: “ <
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 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);}