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.
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.
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.
terima kasih
BalasHapusnambah ilmu saya, post selanjutnya kalo bisa di capture exenya