Apa Itu Procedure? Apa Perbedaan Procedure dan Function?
PROCEDURE
Prosedur adalah bagian dari suatu program yang disusun secara terpisah untik melakukan suatu tugas khusus atau fungsi tertentu. Pada dasarnya ada dua macam bentuk prosedur yaitu Subrutin (subprogram) dan Fungsi.
- Subrutin (subprogram) adalah bagian dari program yang dibuat terpisah untuk melaksanakan sebagian dari tugas yang harus diselesaikan oleh suatu program. Pada umumnya yang dikenal dengan nama “Prosedur” sebenarnya adalah “Subprogram” .
- Fungsi adalah bagian dari program yang dibuat terpisah untuk melaksanakan fungsi tertentu yang menghasilkan suatu nilai untuk dikembalikan ke program utama.
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 sebagai 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.
- Membuat kode program lebih mudah dibaca.
- Dapat digunakan untuk menyembunyikan detail program
Prosedur memiliki ciri-ciri sebagai berikut ini :
- Hanya memiliki satu fungsi tujuan (logical inherent). Sebuah prosedur sebaiknya hanya memiliki satu fungsi tujuan dan tidak bercampur dengan tujuan lain. Hal ini untuk membuat prosedur lebih focus.
- Berukuran kecil (small size). Yang dimaksud ukuran disini adalah panjang algoritma atau panjang kode program pada suatu prosedur. Ukuran kecil akan mudah dibaca maupun diperbaiki.
- Tidak tergantung pada prosedur lain (independent). Sebuah prosedur harusnya bersifat mandiri, artinya sebuah prosedur dapat berjalan dan diuji tanpa menunggu bagian lainnya selesai. Selain itu variable yang digunakan dalam prosedur tidak mempengaruhi variabel yang digunakan pada bagian lain di keseluruhan program.
Manfaat pembuatan prosedur :
- Modularisasi : Suatu program yang besar dan kompleks dapat dibagi ke dalam beberapa prosedur sehingga setiap prosedur merupakan bagian yang mudah dikerjakan. Dengan demikian, program besar tersebut menjadi mungkin diselesaikan.
- Simplifikasi : Dalam suatu program, sering diperlukan suatu tugas yang harus dikerjakan berulang-ulang dengan nilai-nilai variabel yang berbeda. Agar tidak merepotkan maka tugas ini cukup ditulis sekali saja dalam bentuk prosedur yang kemudian dipanggil berulang-ulang sesuai kebutuhan.
Lalu apa bedanya dengan fungsi?
Simak penjelasannya pada tabel di bawah ini.
- 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.
- Nama Prosedur tidak dapat digunakan lagsung tidak seperti pada Nama Fungsi, yang dapat langsung digunakan dari sebuah prosedur adalah parameternya yang mengandung nilai balik.
- Pada dasarnya tidak ada perbedaan yang signifikan antara prosedur dan fungsi pada Bahasa C, hanya dibedakan dari return value. Jika suatu sub program tersebut memiliki nilai balik (return value) maka sub program tersebut disebut Function (Fungsi) jika tidak memiliki nilai balik maka sub program tersebut merupakan prosedure (Procedure)
Bentuk / Syntax Umum dari Prosedur :
Void NamaProsedur (DaftarParameter)
{
/*Code atau Badan Prosedur*/
}
Bentuk / Syntax Umum dari Fungsi :
TipeData NamaFungsi (DaftarParameter){
/*Code atau Badan Prosedur*/
return nilaireturn;
}
Contoh sederhana prosedur dalam bahasa C++ :
#include <stdio.h>
//Prosedur
void main(int panjang){// dimisalkan int panjang sebagai parameter input
int lebar, luas; //deklarasi variable dengan tipe data integer
panjang = 16;
printf(“Masukkan Lebar Persegi: “);//menampilkan tulisan
scanf(“%d”,&lebar);//menyimpan nilai
luas=(panjang*lebar); //rumus luas persegi panjang
printf(“Luas persegi panjang tersebut adalah : %d\n\n”,luas);
luas=main2(21);//fungsi main2 dapat dipanggil disini karena memiliki nilai return
printf(“Luas persegi panjang tersebut ke2 adalah : %d\n\n”,luas);
}
//Fungsi
int main2(int panjang) {
int lebar, luas;
printf("Masukkan Lebar Persegi ke2 : ");
scanf("%d", &lebar);
luas=(panjang*lebar);
return luas;
}
Output :
Masukkan lebar persegi : 1
Luas persegi panjang tersebut adalah : 16
Masukkan lebar persegi ke2 : 2
Luas persegi panjang tersebut adalah : 42
Untuk tambahan mengenai perbedaan fungsi dan prosedur dari sumber lain, berikut saya sertakan penjelasannya. Dikutip dari laman geeksforgeeks.org.
- Fungsi : Ini adalah salah satu pemikiran mendasar dalam pemrograman komputer. Ini digunakan untuk menghitung sesuatu dari input yang diberikan. Oleh karena itu mendapat namanya dari Matematika. Fungsi dapat berupa yang ditentukan pengguna atau yang telah ditentukan sebelumnya. Program fungsi memiliki blok kode yang melakukan beberapa tugas atau fungsi tertentu.
- Prosedur : Dalam pemrograman seperangkat instruksi atau perintah tertentu bersama dikenal sebagai prosedur. Mengandalkan bahasa pemrograman itu dikenal sebagai prosedur, subrutin, fungsi atau subprogram.
- Sebuah fungsi berurusan dengan sebagai ekspresi. Sedangkan prosedur tidak berurusan dengan sebagai ekspresi.
- Fungsi digunakan untuk menghitung sesuatu dari input yang diberikan. Oleh karena itu mendapat namanya dari Matematika. Sedangkan prosedur adalah kumpulan perintah yang dijalankan secara berurutan.
- Fungsi dapat dipanggil dengan prosedur. Tapi prosedur tidak bisa dipanggil oleh fungsi.
- Di sql, di dalam fungsi kita tidak bisa menggunakan perintah DML (Data manipulasi bahasa) seperti Insert, Delete, Update. Di sini, di sql, di dalam prosedur kita dapat menggunakan perintah DML.
- Fungsi dapat dipanggil melalui query sql. Namun, prosedur tidak dapat dipanggil melalui kueri sql.
- Setiap fungsi waktu dikompilasi saat dipanggil. Padahal, prosedur dikompilasi hanya sekali dan dapat dipanggil lagi dan lagi sesuai kebutuhan tanpa dikompilasi setiap kali.
- Pernyataan pengembalian suatu fungsi mengembalikan nilai hasil kontrol dan fungsi ke program pemanggil. Sementara pernyataan kembali dari prosedur mengembalikan kontrol ke program pemanggil, itu tidak dapat mengembalikan nilai hasil.
- Fungsi tidak mendukung blok try-catch. Meskipun mendukung blok coba-tangkap.
- Fungsi dapat dioperasikan dalam pernyataan SELECT. Meskipun tidak dapat dioperasikan dalam pernyataan SELECT.
- Fungsi tidak mendukung penanganan transaksi eksplisit. Sedangkan prosedur mendukung penanganan transaksi yang eksplisit.