}

Senin, 29 September 2014

PROSEDUR VS FUNGSI

PROSEDUR VS FUNGSI
Prosedur (Procedure)

Kata prosedur sering kita dengar dalam kehidupan sehari-hari. Seorang mahasiswa pada setiap awal semester selalu melakukan pendaftaran ulang (registrasi). Langkah-langkah pendaftaran ulang lazim dinyatakan dalam sebuah prosedur yang dinamakan prosedur daftar ulang. Ketika sebuah prosedur dilakukan, maka instruksi-instruksi di dalamnya dikerjakan satu per satu.
Dalam dunia pemrograman, prosedur adalah modul program yang mengerjakan tugas/aktivitas yang spesifik dan menghasilkan suatu efek netto. Suatu efek netto diketahui dengan membandingkan keadaan awal dan keadaan akhir pada pelaksanaan sebuah prosedur. Oleh sebab itu, pada setiap prosedur kita perlu mendefinisikan keadaan awal sebelum rangkaian instruksi di dalam prosedur dilaksanakan dan keadaan akhir yang diharapkan setelah rangkaian instruksi di dalam prosedur dilaksanakan.
Pada dasarnya, struktur prosedur sama dengan struktur algoritma yang sudah dikenal, yaitu : bagian judul yang terdiri atas nama prosedur dan komentar yang menjelaskan yang menjelaskan spesifikasi prosedur tersebut, bagian deklarasi dan badan prosedur. Setiap prosedur memiliki nama yang unik. Nama prosedur sebaiknya diawali dengan kata kerja karena prosedur berisi suatu aktivitas, misalnya HitungLuas, Tukar, CariMaks, Inisialisasi, AktifkanMenu dan lain sebagainya.
Notasi Algoritma yang digunakan
untuk mendefinisikan struktur prosedur adalah :
Procedure NamaProsedur
{Spesifikasi prosedur, berisi penjelasan tentang apa yang dilakukan prosedur ini}
{K. Awal : keadaan sebelum prosedur dilaksanakan}
{K. Akhir : keadaan setelah prosedur dilaksanakan} 
Deklarasi
{semua nama yang dipakai dalam prosedur dan hanya berlaku lokal di dalam prosedur yang didefinisikan di sini}
Deskripsi
{badan prosedur, berisi kumpulan instruksi} 

Contoh:
Tuliskan prosedur untuk menghitung luas segitiga dengan rumus L=(alas x tinggi)/2. Panjang alas dan tinggi segitiga dibaca dari dalam prosedur. Luas segitiga dicetak ke piranti keluaran.

Penyelesaian:
Procedure HitungLuasSegitiga
{menghitung luas segitiga dengan rumus L=(alas x tinggi)/2
{K. Awal : sembarang}
{K. Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran}

Deklarasi
Alas, tinggi, luas : real

Deskripsi
Read (alas, tinggi)
Luas ß (alas*tinggi)/2
Write (L)

Fungsi (Function)

Seperti halnya prosedur, fungsi juga merupakan sub program yang mempunyai tujuan spesifik. Pertanyaan sering muncul dalam pemrograman moduler adalah : apakah sebuah modul program akan dibuat sebagai prosedur atau fungsi ? Fungsi digunakan apabila modul program mengembalikan sebuah nilai, sementara prosedur digunakan apabila modul menghasilkan efek netto dari satu atau sekumpulan aksi. Pemilihan apakah sebuah modul direalisasikan sebagai fungsi atau prosedur bergantung pada kebutuhan dan seni memprogram.
Berbeda dengan prosedur yang didefinisikan dengan kata kunci function. Berikut ini bentuk umum dari pendefinisian sebuah fungsi.
Function NamaFungsi (parameter1 : tipe_data,
                                    paraneter2: tipe_data, . . .) : tipe_data;
const
{daftar konstanta lokal}
Var
{daftar pendeklarasian variabel lokal}
Begin
{kode program yang akan ditulis}
. . .
NamaFungsi := nilai_kembalian;            {ingat baris ini}
End;

 Bentuk Umum Pendefinisian Fungsi
Berikut ini contoh pendefinisian fungsi sederhana yang akan mengalikan dua buah bilangan bulat.
Function Kali (x, y : integer) : longint;
Begin
     Kali := x * y;
End;

Kita juga dapat mendeklarasikan variabel lokal untuk menyimpan nilai sebelum akhirnya dikembalikan lagi ke fungsi, misalnya seperti kode di bawah ini.
Function Kali (x, y : integer) : longint;
Var
    Hasil : longint;
Begin
    Hasil := x * y;
    Kali := Hasil;
End;

Parameter merupakan suatu nilai atau referensi yang dilewatkan ke dalam rutin tertentu dan kehadirannya akan mempengaruhi proses maupun nilai yang terdapat di dalam rutin itu sendiri. Parameter ditempatkan di dalam tanda kurung setelah nama rutin bersangkutan.
Suatu fungsi umumnya mempunyai parameter. Namun bisa saja suatu fungsi tidak memiliki paramater.
Setiap parameter yang dilewatkan harus memiliki tipe data tersendiri yang dapat berupa dari tipe dasar maupun bentukan seperti array, record atau pointer. Untuk mengetahui arti parameter, perhatikan fungsi matematika di bawah ini.
f (x) =  2x2 + 5x – 3

Bila x=1, maka f akan mengembalikan nilai 4, yang berasal dari

f (1) =  2(1)2 + 5(1) – 3 = 2 + 5 – 3 = 4

Bila x=2, maka f akan mengembalikan nilai 15, yang berasal dari
f (2) =  2(2)2 + 5(2) – 3 = 8 + 10 – 3 = 15

Dari ilustrasi tersebut terlihat jelas bahwa hasil nilai dari fungsi f ditentukan oleh besarnya nilai x, sehingga x disebut sebagai parameter dari fungsi f.

Perbedaan fungsi dengan prosedur adalah :
Prosedur dan fungsi adalah program kecil yang berada dalam program utama yang di gunakan untuk menyelesaikan masalah khusus dengan parameter yang di berikan. Beberapa buku membedakan istilah prosedur dan fungsi terutama pada pemrograman pascal. Letak perbedaan prosedur dan fungsi ada di pengembalian nilai. 
           Pada prosedur nilai yang di proses tidak di kembalikan atau di ubah, nilai hanya di proses di dalam prosedur dan kembali kepada keadaan semula ketika keluar dari prosedur.
           Sedangkan pada fungsi nilai yang di proses akan berbah dan memiliki nilai keluaran. bisa kita simpulkan bahwa prosedur itu hanya berisi metode, langkah lahkah penyelesaian masalah sedangkan fungsi adalah berisi metode yang memproses nilai dan mengubah nilai itu sendiri.
Perbedaan nya nya dapat kita lihat seperti berikut:
& Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya pada prosedur pada parameter yang dikirimkan secara acuan
& fungsi dapat langsung digunakan untuk dicetak hasilnya, sebagai berikut :
Writeln(X,’ + ‘,Y,’ = ‘,Hitung(X,Y));
Nama fungsi yang langsung digunakan untuk ditampilkan hasilnya.
Atau
Hasil := Hitung(X,Y);
Writeln(X,’ + ‘,Y, ‘ + ‘,Hasil);
& Pada prosedur tersebut nama tidak dapat digunakan langsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.
& Fungsi dapat mengembalikan suatu nilai yang dapat digunakan daam ekpresi. sedangkan prosedur tidak memiliki nilai yang berhubungan dengan namanya.

& Fungsi di gunakan untuk membuat operasi-operasi yang tidak ada dalam fungsi utama sedangkan prosedur  digunakan untuk mentrukturkan suatu program dan untuk memperbaiki kejelasan dan keumumannya.

1 komentar:

  1. terima kasih
    nambah ilmu saya, post selanjutnya kalo bisa di capture exenya

    BalasHapus