Apa Perbedaan Fungsi dan Prosedur Pada Algoritma Pemrograman

Pasti sahabat-sahabat bertanya-tanya Apa perbedaan fungsi dan prosedur pada Algoritma Pemrograman. nah disini kita akan mengetahui semunya mengenai apa saja fungsi dan procedur algoritma pemrograman untuk lebih jelasnya dapat kita saksikan bersama:


Prosedur
Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Diawali dengan kata cadangan procedure didalam bagian deklarasi prosedur. Procedure biasanya bersifat suatu aktifitas seperti menghitung luas, meghitung faktorial, mencari nilai maksimum/minimum,dsb.  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.
Notasi algoritmik

Program tukar
Kamus : a,r : integer {}
Procedure tukar (in/out : a,r : integer)
Algoritma : input (a,r)
Tukar (a,r)
Output (a,r)
Procedure tukar2(in/out : a,r : integer)
Kamus lokal : b : integer
Algoritma : b ← a
A ← r
R ← a

Fungsi 
Fungsi sama seperti halnya dengan procedure, namun tetap ada perbedaannya yaitu fungsi mempunyai output dengan tipe variabel yang kita tentukan. Dan cara pemanggilan variabel ada 2 macam dalam pascal.
Yaitu :
-          mengoutputkan nilai dari fungsi tersebut contoh : writln (namafungsi(parameter));
-          dengan assignment variabel1 := namafungsi(parameter);
Berbeda dengan procedure yang bisa tidak menggunakan parameter, fungsi harus menggunakan parameter dalam penggunaannya.

Algoritmik
Program faktorial
Kamus : a : integer
Function faktor (a : integer) → integer
Algoritma
Input (a)
Output (faktor(a))
Function faktor (a:integer) →integer
Kamus :
I, hasil : integer
Algoritma :
Hasil ← 1
I traversal [a..1]
Hasil ← hasil * i
Faktor ← hasil
Function identifier (daftar parameter) : 
type ;

Blok fungsi juga diawali dengan kata cadangan begin dan di akhiri dengan kata cadangan end dan titik koma.

Perbedaan fungsi dengan prosedur adalah :
-   Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya ( kalau pada prosedur pada parameter yang dikirimkan secara acuan).
-  Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya. Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variable yang lainnya.
-    Pada prosedur, nama prosedur tidak dapat digunakan lagsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.

Mengapa menggunakan prosedur dan fungsi?
-   Memecahkan program yang rumit dan besar menjadi program-program yang lebih sederhana.
-    Untuk aktivitas yang dilakukan lebih dari satu kali / sering dilakukan berulang-ulang.