Prosedur dan Fungsi Triana Elizabeth, S.Kom
FUNGSI Fungsi adalah sub Program yang mengembalikan (return) sebuah nilai. Fungsi sama halnya dengan prosedur akan tetapi fungsi harus dideklarasikan dengan tipenya.
Cara Mendefinisikan Fungsi function Nama_Fungsi (input daftar parameter formal) tipe hasil { Spesifikasi fungsi, menjelaskan apa yang dilakukan dan yang dikembalikan oleh fungsi} DEKLARASI { semua nama yang dipakai dalam fungsi dideklarasikan di sini. Nama yang didefinisikan di dalam DEKLARASI lokal hanya dikenal dan dipakai didalam fungsi ini saja } DESKRIPSI : { badan fungsi, berisi kumpulan instruksi untuk menghasilkan nilai yang akan dikembalikan oleh fungsi } return hasil { pengembalian nilai yang dihasilkan fungsi }
Contoh Fungsi Tulislah Fungsi untuk menghasilkan nilai Y = 2x2 + 5x – 8 function F (input x : real) real { mengembalikan nilai Y = 2x2 + 5x – 8 } DEKLARASI { tidak ada} DESKRIPSI : return 2*x*x + 5*x - 8 double F(double x) { return 2*x*x + 5*x – 10 } function F (input x : real) real { mengembalikan nilai Y = 2x2 + 5x – 8 } DEKLARASI y : real { penampung hasil fungsi p} DESKRIPSI : y 2*x*x + 5*x - 8 return y Atau :
Contoh Fungsi Tulislah Fungsi untuk menghasilkan nilai Y = 2x2 + 5x – 8 function F (input x : real) real { mengembalikan nilai Y = 2x2 + 5x – 8 } DEKLARASI { tidak ada} DESKRIPSI : return 2*x*x + 5*x - 8 F : nama_fungsi x : parameter
Pemanggilan Fungsi : Fungsi Menghasilkan Nilai, maka nilai itu harus ditampung di dalam variabel yang bertipe sama dengan fungsi. Nama_Fungsi (daftar parameter) Variabel Nama_Fungsi (daftar parameter) Atau nilai yang diberikan oleh fungsi dapat langsung digunakan, contoh : write (Nama_Fungsi (daftar parameter)); if Nama_Fungsi (daftar parameter) < 0 then … z 2 * Nama_Fungsi (daftar parameter) – x + y; Daftar parameter dapat berupa nama tetapan / konstanta, variabel, asalkan sudah terdefinisi tipe dan harganya.
Pemanggilan Fungsi : Algoritma Contoh_Pemanggilan_Fungsi { Program Utama untuk memanggil Fungsi F } DEKLARASI { Fungsi yang akan digunakan dideklarasikan disini } function F (input x : real) real { mengembalikan nilai Y = 2x2 + 5x – 8} x, y, z, a : real DESKRIPSI : x 10 read (a)
Pemanggilan Fungsi : { Cara Pemanggilan Pertama : Nilai Fungsi langsung digunakan } { 1.a. Nilai Fungsi Dicetak } write (F(a)) write (F(x)) write (‘Nilai Fungsi di x = 8.37 adalah ‘, F(8.37)) { 1.b. Nilai Fungsi Digunakan dalam struktur Pemilihan } if F(a) < 0 then write (‘Hasil Fungsi Negatif’) endif
Pemanggilan Fungsi : { 1.c. Nilai Fungsi Digunakan dalam Kondisi Perulangan } repeat a a / 2 until (F(x) > 10) or (a < 0.5) { 1.d. Nilai Fungsi Digunakan dalam Ekspresi } z 2*F(5) + 10; write (‘Nilai z = ‘, z)
Pemanggilan Fungsi : { Cara Pemanggilan Kedua : Hasil Fungsi ditampung ke dalam nama variabel lain } y F(a) z F(x) if y < 0 then write (y) endif
C++ #include <iostream> #include <conio.h> using namespace std; double F (double x) { return 2*x*x + 5*x - 10; } void main() { int x, a; x = 10; cout<<"Masukkan Nilai a : ";cin>>a; cout<<"Nilai F(a) : "<<F(a)<<endl; cout<<"Nilai F(x) : "<<F(x)<<endl; cout<<"Nilai Fungsi di x = 8.37 adalah "<<F(8.37); _getch(); C++
Sintax prototype fungsi : tipeData namaFungsi(); Mendefinisikan fungsi : tipeData namaFungsi() { [blok pernyataan] return (ungkapan); } tipeData namaFungsi(parameter)
2. int maks(int a, int b, int c); 3. double maks(double x, double y); Contoh : 1. long kuadrat(long l); 2. int maks(int a, int b, int c); 3. double maks(double x, double y); 4. void garis(); Procedure Pada contoh (1) fungsi bernama kuadrat mempunyai satu argumen bernama l bertipe long dan nilai balik juga bertipe long. Pada contoh (2) fungsi bernama maks mempunyai tiga argumen bernama a, b, dan c yang masing-masing bertipe int dan nilai balik juga bertipe int. Pada contoh (3) fungsi bernama maks mempunyai dua argumen bernama x dan y yang masing-masing bertipe double dan nilai balik juga bertipe double. Pada contoh (4) fungsi tidak memiliki argumen dan nilai baliknya tidak ada / void.
Menggunakan Prosedur / FUNGSI Cara 1 : prototype fungsi void main() { memanggil fungsi _getch(); } definisi fungsi Cara 2 : definisi fungsi void main() { memanggil fungsi _getch(); }
Contoh Fungsi & Pemanggilannya : function Pangkat (input a : real, input n : integer) real { Mengembalikan Harga Pangkat, n bilangan bulat positif } DEKLARASI hasil : real i : integer DESKRIPSI : hasil 1 for i 1 to n do hasil hasil * a endfor return hasil Algoritma Volume_Bola { Program utama Untuk Menghitung Volume Bola dengan rumus V = 4/3 * phi * r3 DEKLARASI V, r : real function Pangkat (input a : real, input n : integer) real DESKRIPSI : read (r) phi 3.14 V 4 / 3 * phi * Pangkat (r, 3) write (‘Volume Bola : ‘, V)
Flowchart Fungsi Flowchart Algoritma Volume_Bola Flowchart Fungsi Pangkat (int a, int r)
C++ #include <iostream> #include <conio.h> using namespace std; double Pangkat (double a, int n) { int hasil, i; hasil = 1; for (i = 1; i <= n; i++) { hasil = hasil * a; } return hasil; void main() { double V, r; cout<<"Masukkan Nilai r : ";cin>>r; const double phi = 3.14; V = (4 * phi * Pangkat (r, 3)) / 3; cout<<"Volume Bola : "<<V; _getch(); C++
LATIHAN : Buatlah Fungsi untuk menentukan sebuah tahun merupakan tahun kabisat atau bukan kabisat. Buatlah Fungsi untuk menentukan bilangan terbesar di antara dua bilangan.
Algoritma dan Struktur Data -Thanks- Algoritma dan Struktur Data