Friday, February 7, 2014

Prosedur dan Fungsi

PROCEDURE DAN FUNCTION



Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian dari pekerjaan programutama.

 PROCEDURE
Procedure diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil  dan digunakan  di  dalam  blok  program  yang  lainny dengan  menyebutkan judul prosedurnya.


Prosedur banyak digunakan pada program yang terstruktur, karena :
  • Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.
  • Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
Sebagaimana  halny sebuah  program suatu  procedure  juga  memiliki  header  dan  block. Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja.
Bentuk Umum header suatu procedure adalah :

Atau

PROCEDURE nama;

PROCEDURE nama (formal parameter : jenis);


Jika kita menggunakan procedure dalam suatu programmaka procedure tersebut harus dituliskan pada bagian deklarasi.


JANGKAUAN IDENTIFIER

Identifier yang dideklarasikan dalam suatu blok program hanya berlaku pada blok dimana identifier tersebut didefinisikan.


PROCEDURE DENGAN  PARAMETER

Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya hanya dapat digunakan pada modulatau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya.


Procedure Standar

Prosedur yang disediakan oleh Turbo Pascal :
  1. Prosedur standar EXIT > Digunakan untuk keluar dari suatu blok.
  2. Prosedur standar HALT >Digunakan untuk menghentikan proses program baik di program bagian maupun di program utama.
  3. Prosedur standar MOVE > Bentuk umum :  MOVE (Var source,dest; count : word); > Digunakan untuk menyalin suatu blok sebanyak count byte memori dari blok dimulai byte pertama sourcedan disalinkan ke byte pertama dest.
  4. Prosedur standar FILLCHAR > Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel, sebagai berikut : FillChar(x;count :word;ch); > X adalah variabel yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal Ch sebanyak countbyte.

  FUNCTION 
Blok fungsi  hampir  sam dengan blok  prosedur, hany fungsi harus dideklarasikan dengan tipenya ataujenis hasilnya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi.
Pada bahasa Pascal dikenal beberapa fungsi, misalkan : abs, pred, sqrt, sqr, succ dan sebagainya. Fungsi-fungsitersebut biasanya dikenal dengan Built in Function. Sedangkan function yang akan bicarakan disini adalah fungsiyang kita buat sendiri.
Berbeda  dengan  procedure,  function  merupakan  modul  program  yang  menghasilkan  suatu kuantitas. Hal ini dapat dilihat dari bentuk header-nya yang menyebutkan jenis data dari kuantitas yang dihasilkan.
Secara umum bentuk header suatu function adalah :

FUNCTION nama : jenis hasil;
Atau FUNCTION nama (formal parameter : jenis ) : jenis_hasil;


Contoh Program Fungsi pada C++
// Menampilkan pesan
#include <iostream>
#include <conio>

void printmessage ()
{
  cout << "I'm a function!";
}

void main ()
{
  printmessage ();
  getch();
}

Contoh Program Fungsi pada Pascal
uses crt;
function Hitung (X, Y, Z : Byte): Byte;
Begin
    Z := X + Y;
    Writeln ('ilai X = ',X);
    Writeln ('Nilai Y = ',Y);
    Writeln ('Nilai Z = ', Z);
End;
Var
    A, B, C : Byte;
Begin
clrscr;
    A := 5; B:= 7; C:=3;
    Hitung (A, B, C);
    Writeln ('Nilai A = ',A,'Nilai B = ',B,'Nilai C = ',C);
    Readln;
End.

Contoh Program Prosedur pada C++
#include<iostream.h>
#include<conio.h>
int addition (int a, int b){
  int r;
  r=a+b;
  return (r);
}
void main ()
{
  int z;
  z = addition (5,3);
  cout << "The result is " << z;
  getch();
}

Contoh Program Prosedur pada Pascal
program Lsegitiga;
   uses crt;
var
 i,n:integer;
 a,t:real;
 procedure hitungLuassegitiga(alas,tinggi:real);
 var
 luas:real;
 BEGIN
 luas:=(alas*tinggi)/2;
 writeln('luas segitiga=',luas:10:2);
 END;
BEGIN
Clrscr;
write ( ' banyaknya segitiga ?'); readln(n);
for i:=1 to n do
 BEGIN
 write(' panjang alas segitiga?');
 readln(a);
 write('tinggi segitiga?');
 readln(t);
 hitungluassegitiga(a,t);
 END;
 END.

Beberapa pertanyaan dan jawaban mengenai Perbedaan Fungsi & Prosedur, Manfaat Fungsi, Pass by Value Vs. Pass by Reference, & Return Value

a. Apa yang dimaksud dengan fungsi dan prosedur?Jelaskan apa perbedaanya!
  • Fungsi adalah suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari bagian program yang dijalankan.
  • Prosedur adalah suatu bagian yang digunakan untuk mengenali subprogram di dalam suatu program.
  • Perbedaan fungsi dan prosedur :
·       Fungsi dapat mengembalikan suatu nilai yang dapat digunakan dalam ekspresi. Sedangkan, prosedur tidak memiliki nilai yang berhubungan dengan namanya.
·   Fungsi digunakan untuk membuat operasi-operasi yang tidak ada dalam fungsi utama. Sedangkan, prosedur digunakan untuk menstrukturkan suatu program dan untuk memperbaiki kejelasan dan keumumannya.

b. Jelaskan apa manfaat penggunaan fungsi dalam pemrograman!
Manfaat penggunaan fungsi dalam pemrograman adalah untuk memudahkan pembacaan suatu program. Selain itu fungi dibuat untuk mengurangi terjadinya pengkodean ulang, serta dapat mengembangkan program menjadi lebih baik.

c. Jelaskan bagaimana fungsi bisa menerima variabel inputan (secara ‘pass by value’ dan ‘pass by reference’)! Dan jelaskan perbedaan keduanya!
  • Pemanggilan Secara Nilai (‘Pass by Value’) :
·         Call by value akan menyalin nilai dari parameter aktual ke parameter formal.
·         Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya.
·         Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi.
·         Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya.
·         Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil.
·         Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah variabel, elemen array atau konstanta saja.
  • Pemanggilan Secara Referensi (‘Passl by Reference’)
·         Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi.
·         Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai datanya.
·         Fungsi yang menerima kiriman alamat ini makan menggunakan alamat yang sama untuk mendapatkan nilai datanya.
·         Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi.
·         Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya.
·         Pengiriman secara acuan tidak dapat bdilakukan untuk suatu ungkapan.

d. Jelaskan bagaimana fungsi bisa menghasilkan output (return value)!

Untuk menghasilkan output (return value), fungsi membutuhkan input yang berupa argument atau para meter. Argument dan parameter memungkinkan terjadinya komunikasi antara fungsi utama dan fungsi-fungsi lain dalam program sehingga menjadi lebih fleksibel, karena daftar argument memungkinkan fungsi dapat memanipulasi data yang berbeda setiap kali fungsi tersebut dipanggil.

2 comments: