FUNGSI
FUNGSI PENGERTIAN Adalah subrutin/ subprogram/ potongan program Mempunyai tugas tertentu Letaknya terpisah dari bagian program yang menggunakannya Mempunyai bagian RETURN VALUE dan PARAMETER/ ARGUMEN Pengeksekusiannya dengan cara memanggil fungsi dari program yang menggunakannya MENGAPA MENGGUNAKAN FUNGSI? Agar program memiliki struktur yang baik & mudah dipahami Untuk menghindari penulisan bagian program yang sama berulang-ulang
DEKLARASI FUNGSI DEKLARASI & PROTOTYPE FUNGSI Sebuah fungsi yang baik perlu dideklarasikan sebelum digunakan Jika tidak, maka return_value dari fungsi akan dianggap bertipe integer Deklarasi Fungsi: Penulisan fungsi TANPA menuliskan argumen/parameter Prototype Fungsi: Penulisan fungsi DENGAN menuliskan argumen
PENDEFINISIAN FUNGSI tipe_return_value nama_fungsi (parameter2) { statemen-statemen; // badan fungsi return (return_value/ variabel); }
CONTOH Prototype fungsi & pendefinisiannya dalam program #include <stdio.h> void tampil(int s); //prototype fungsi tampil void main(){ int data; printf("Masukkan bilangan yg akan ditampilkan:"); scanf("%d",&data); tampil(data); //pemanggilan fungsi tampil } void tampil(int a) { //pendefinisian fungsi tampil printf("Data yang dimasukkan %d\n",a);
PARAMETER FUNGSI Adalah cara komunikasi antara fungsi dengan bagian program yang memanggilnya Dikatakan sebagai pengiriman parameter (passing parameter) Ada 2 jenis pengiriman parameter: Secara nilai (pass by value) Secara acuan (pass by reference)
Pass by Value Yang dikirim adalah nilai dari data Fungsi yang menerima kiriman nilai akan menyimpannya di alamat yang terpisah dari alamat nilai aslinya Perubahan nilai di dalam fungsi tidak akan mempengaruhi nilai asli di bagian program yang memanggil fungsi, walaupun keduanya menggunakan nama variabel yang sama
Pass by Value Ilustrasi: Pak Bos menyuruh asistennya menghitung rekapitulasi pemasukan & pengeluaran toko hari itu. Pak Bos & asistennya tidak bertemu secara langsung untuk memberikan data2nya, tetapi hanya memberitahu bahwa data2 yg diperlukan ada di laci mejanya. Si asisten membuka laci meja Pak Bos, mengkopi data2 yang diperlukan, dan mengembalikan lagi ke dalam laci. Asisten (berdasarkan data hasil kopian tadi) menghitung rekapitulasi (dengan menuliskannya pada kertas data hasil kopian) dan melaporkan hasilnya ke Pak Bos. Data asli yang ada di laci Pak Bos tidak berubah sama sekali. Asisten hanya bekerja berdasarkan hasil kopian saja.
Pass by Reference Yang dikirim adalah alamat letak dari nilai data Fungsi yang menerima kiriman alamat ini menggunakan alamat yang sama untuk mengambil nilai datanya Perubahan nilai di fungsi akan dapat mengubah nilai asli di bagian program yang memanggil fungsi Menggunakan tipe data pointer
Pass by Reference Ilustrasi: Kembali pada kasus Pak Bos & asistennya tadi. Kali ini si asisten membuka laci meja Pak Bos, mengerjakan rekapitulasi pada kertas2 data asli milik Pak Bos & setelah selesai meletakkannya kembali di dalam laci. Ketika Pak Bos mengeceknya, kertas data2 aslinya sudah berubah sesuai dengan yang dikerjakan oleh asisten.
Hasil Balik (Return Value) Fungsi Fungsi dapat memberikan hasil balik dari proses yang sudah ia kerjakan ke bagian program yang memanggilnya Untuk dapat memberikan hasil balik, fungsi harus memiliki tipe yang sama dengan variabel yang digunakan untuk menampung hasil balik di bagian program pemanggil
Kesimpulan Fungsi Dapat didefinisikan dengan atau tanpa return value dan/atau parameter. Jika fungsi didefinisikan setelah bagian program main(), maka harus dibuat prototypenya SEBELUM program main(). Tipe data yang dituliskan dalam prototype fungsi harus sama dengan yang didefinisikan di dalam fungsi Sebuah fungsi dapat dipanggil dari dalam sebuah fungsi lainnya.