250 likes | 463 Views
Prosedur dan Fungsi. 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.
E N D
FUNGSI • Fungsiadalah sub Program yang mengembalikan (return) sebuahnilai. • Fungsisamahalnyadenganprosedurakantetapifungsiharusdideklarasikandengantipenya.
Cara MendefinisikanFungsi functionNama_Fungsi (inputdaftar parameter formal) tipehasil { Spesifikasifungsi, menjelaskanapa yang dilakukandan yang dikembalikanolehfungsi} DEKLARASI { semuanama yang dipakaidalamfungsidideklarasikan di sini. Nama yang didefinisikan di dalam DEKLARASI lokalhanyadikenaldandipakaididalamfungsiinisaja } DESKRIPSI : { badanfungsi, berisikumpulaninstruksiuntukmenghasilkannilai yang akandikembalikanolehfungsi } returnhasil { pengembaliannilai yang dihasilkanfungsi }
ContohFungsi function F (input x : real) real { mengembalikannilaiY = 2x2 + 5x – 8 } DEKLARASI { tidakada} DESKRIPSI : return 2*x*x + 5*x - 8 TulislahFungsiuntukmenghasilkannilai Y = 2x2 + 5x – 8 double F(double x) { return 2*x*x + 5*x – 10 } function F (input x : real) real { mengembalikannilaiY = 2x2 + 5x – 8 } DEKLARASI y : real { penampunghasilfungsi p} DESKRIPSI : y 2*x*x + 5*x - 8 return y Atau :
ContohFungsi function F (input x : real) real { mengembalikannilaiY = 2x2 + 5x – 8 } DEKLARASI { tidakada} DESKRIPSI : return 2*x*x + 5*x - 8 TulislahFungsiuntukmenghasilkannilai Y = 2x2 + 5x – 8 x : parameter F : nama_fungsi
PemanggilanFungsi : • Nama_Fungsi (daftar parameter) • Variabel Nama_Fungsi (daftar parameter) Ataunilai yang diberikanolehfungsidapatlangsungdigunakan, contoh : • write(Nama_Fungsi (daftar parameter)); • ifNama_Fungsi (daftar parameter) < 0 then … • z 2 * Nama_Fungsi (daftar parameter) – x + y; Daftar parameter dapatberupanamatetapan / konstanta, variabel, asalkansudahterdefinisitipedanharganya.
PemanggilanFungsi : AlgoritmaContoh_Pemanggilan_Fungsi { Program UtamauntukmemanggilFungsi F } DEKLARASI { Fungsi yang akandigunakandideklarasikandisini } function F (input x : real) real { mengembalikannilaiY = 2x2 + 5x – 8 } x, y, z, a : real DESKRIPSI : x 10 read (a)
PemanggilanFungsi : { Cara PemanggilanPertama : NilaiFungsilangsungdigunakan } { 1.a. NilaiFungsiDicetak } write (F(a)) write (F(x)) write(‘NilaiFungsi di x = 8.37 adalah ‘, F(8.37)) { 1.b. NilaiFungsiDigunakandalamstrukturPemilihan } if F(a) < 0 then write (‘HasilFungsiNegatif’) endif
PemanggilanFungsi : { 1.c. NilaiFungsiDigunakandalamKondisiPerulangan } repeat a a / 2 until (F(x) > 10) or (a < 0.5) { 1.d. NilaiFungsiDigunakandalamEkspresi } z 2*F(5) + 10; write (‘Nilai z = ‘, z)
PemanggilanFungsi : { Cara PemanggilanKedua : HasilFungsiditampungkedalamnamavariabel 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<<"MasukkanNilai 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(); }
Sintax prototype fungsi : tipeDatanamaFungsi(); Mendefinisikanfungsi : tipeDatanamaFungsi() { [blokpernyataan] return (ungkapan); } tipeDatanamaFungsi(parameter) { [blokpernyataan] return (ungkapan); }
Contoh : 1. long kuadrat(long l); 2. intmaks(int a, int b, int c); 3. double maks(double x, double y); 4. void garis(); Procedure Padacontoh (1) fungsibernamakuadratmempunyaisatuargumenbernama l bertipe long dannilaibalikjugabertipe long. Padacontoh (2) fungsibernamamaksmempunyaitigaargumenbernama a, b, dan c yang masing-masingbertipeintdannilaibalikjugabertipe int. Padacontoh (3) fungsibernamamaksmempunyaiduaargumenbernama x dan y yang masing-masingbertipe double dannilaibalikjugabertipe double. Padacontoh (4) fungsitidakmemilikiargumendannilaibaliknyatidakada / void.
MenggunakanProsedur / FUNGSI • Cara 2 : definisifungsi void main() { memanggilfungsi _getch(); } • Cara 1 : prototype fungsi void main() { memanggilfungsi _getch(); } definisifungsi
#include <iostream> #include <conio.h> using namespace std; void garis(); void main() { garis(); garis(); cout<<"IniContohPenggunaanFungsi / Procedure Dengan Cara 1 "<<endl; garis(); garis(); _getch(); } void garis() { cout<<"------------------------------------------"; cout<<endl; } Contoh Cara 1
#include <iostream> #include <conio.h> using namespace std; void garis() { cout<<"------------------------------------------"; cout<<endl; } void main() { garis(); garis(); cout<<"IniContohPenggunaanFungsi / Procedure Dengan Cara 2"<<endl; garis(); garis(); _getch(); } Contoh Cara 2
Contoh #include <iostream> #include <conio.h> using namespace std; double kuadrat(double bilanganBulat) { return (bilanganBulat * bilanganBulat); } void main() { const float Phi = 3.14; double luas = Phi * kuadrat(3.25); cout<<"Luaslingkaran = "<<luas<<endl; _getch(); }
#include <iostream> #include <conio.h> using namespace std; int terbesar (int a, int b) { if (a < b) return b; else return a; } void main() { intc, d; cout<<"---Input DuaBilangan---"<<endl; cout<<"Bilanganpertama : "; cin>>c; cout<<"Bilangankedua : "; cin>>d; cout<<"Yang terbesaradalah "; intmaksimum = terbesar(c,d); cout<<maksimum; _getch(); } Contoh
#include <iostream> #include <conio.h> using namespace std; float persegi(float s) { float luas = s * s; return luas; } void main() { intsisi; cout<<"---HitungLuasPersegi---"<<endl; cout<<"Masukkan panjang sisi = "; cin>>sisi; cout<<"Luas persegi = "<<persegi(sisi)<<endl; cout<<"-------------------------"; _getch(); } Contoh
ContohFungsi & Pemanggilannya : functionPangkat (input a : real, input n : integer) real { MengembalikanHargaPangkat, n bilanganbulatpositif } DEKLARASI hasil : real i : integer DESKRIPSI : hasil 1 for i 1 to n do hasil hasil * a endfor returnhasil AlgoritmaVolume_Bola { Program utamaUntukMenghitung Volume Bola denganrumus V = 4/3 * phi * r3 DEKLARASI V, r : real functionPangkat (input a : real, input n : integer) real DESKRIPSI : read (r) phi 3.14 V 4 / 3 * phi * Pangkat (r, 3) write (‘Volume Bola : ‘, V)
C++ #include <iostream> #include <conio.h> using namespace std; double Pangkat (double a, int n) { inthasil, i; hasil = 1; for (i = 1; i <= n; i++) { hasil = hasil * a; } return hasil; } void main() { double V, r; cout<<"MasukkanNilai r : ";cin>>r; const double phi = 3.14; V = (4 * phi * Pangkat (r, 3)) / 3; cout<<"Volume Bola : "<<V; _getch(); }
LATIHAN : • BuatlahFungsiuntukmenentukansebuahtahunmerupakantahunkabisatataubukankabisat. • BuatlahFungsiuntukmenentukanbilanganterbesar di antaraduabilangan.
Buatlahsebuah program C++ untuktampilanberikut : Jikapilihan = 1 makahitung volume kubusdari input panjangrusuk, jikapilhan = 2 makahitung volume balokdari input panjang, lebar, dantinggi, jikapilihan yang lainnyatampilkanpesankesalahan.
Buatlahsebuah program C++ dengandefinisikandangunakanfungsibernamaluasSegiEmpat. Jikaargumenfungsihanyasatu, maka yang dihitungadalahluasbujursangkar. Jikaargumenfungsiadadua, maka yang dihitungadalahluaspersegipanjang. Nilaiargumen yang diinputbisaberupabilanganbulatataupunbilangandesimal.