fungsi 1 - wexku.files. · pdf filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai...

16
Fungsi 1 Ekohariadi FT Unesa

Upload: vukiet

Post on 05-Feb-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Fungsi 1

EkohariadiFT Unesa

Page 2: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Pustaka C Standar merupakan kumpulan fungsi yang sudahditentukan yang diases melalui file header. Fungsi matematikayang umum didefinisikan di header <math.h>.

#include <iostream.h>#include <math.h>using namespace std;int main(){for (int i = 0; i < 6; i++)cout << "\t" << i << "\t" << sqrt(i) << endl;system ("PAUSE");return 0;}

Fungsi Pustaka Standar

Page 3: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Program tersebut mencetak akar kuadrat bilangan 0 sampai 5.Setiap kali ekspresi sqrt (i) dievaluasi di loop for, fungsi sqrtdieksekusi.

Output

Page 4: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Sebuah fungsi seperti sqrt() dieksekusi menggunakannamanya seperti sebuah variabel di pernyataan, seperti ini:

y = sqrt (x);Ini disebut fungsi pemanggil. Pada contoh di atas, kode sqrt(i) memanggil fungsi sqrt. Ekspresi i di tanda kurung disebutargumen atau parameter aktual dari panggilan fungsi, dankita mengatakan bahwa ia dilewatkan / dikirim dengan nilaike fungsi. Ketika i adalah 3, nilai 3 dikirim ke fungsi sqrtmelalui panggilan sqrt(i). Proses tersebut diilustrasikan olehdiagram berikut:

Fungsi Pustaka Standar

Page 5: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Fungsi Pustaka Standar

Variabel i dideklarasikan di main(). Selama iterasi ke empatdari loop for, nilainya adalah 3. Nilai tersebut dikirim ke fungsisqrt() yang lalu mengembalikan nilai 1.73205.

Page 6: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Berikut adalah contoh lain yang menggunakan file header<math.h>. Tujuannya adalah membuktikan bahwa sin 2 x = 2 sin xcos x:

#include <iostream.h>#include <math.h>using namespace std;int main(){for (float x = 0; x < 2; x += 0.2)cout << "\t" << x << "\t\t" << sin(2*x) << "\t"<< 2*sin(x)*cos(x) << endl;system ("PAUSE");return 0;}

Fungsi Pustaka Standar

Page 7: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Program tersebut mencetak x di kolom pertama, sin 2x dikolom kedua, dan 2 sin x cos x di kolom ketiga. Setiap nilai xdites, berlaku sin 2 x = 2 sin x cos x.

Fungsi Pustaka Standar

Page 8: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Meskipun banyak variasi fungsi yang diberikan oleh pustaka Cdan C++, tetapi masih belum memadai untuk sebagian besartugas-tugas pemrograman. Pemrogram perlu juga dapatmendefinisikan fungsi mereka sendiri. Berikut adalah contohsederhana fungsi yang didefinisikan oleh pemakai:int kubik(int x)

{return x*x*x;}

Fungsi mengembalikan pangkat tiga dari integer yang dikirimke fungsi. Dengan demikian kubik(3) mengembalikan 27.

Fungsi yang Didefinisikan Pemakai

Page 9: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Fungsi adalah sub unit dari sebuah program yang melakukantugas tertentu. Ketika fungsi dipanggil, kode didalam tubuhfungsi akan dieksekusi, dan ketika fungsi selesai dieksekusi,kendali akan kembali ke titik dimana fungsi tersebut dipanggil.

Fungsi yang Didefinisikan Pemakai

Page 10: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Dalam semua program, kamu mendeklarasikan variabel untukprogram pada awal blok dari fungsi main(). Kenyataannya,kamu dapat mendefinisikan variabel pada sembarang blok.Variabel ada hanya dalam blok dimana variabel tersebutdidefisinikan. Variabel akan tercipta ketika ia dideklarasikan,dan akan hilang saat mucul tanda kurung akhir. Ini jugaberlaku juga ketika kamu mendeklarasikan dalam blok yangterletak dalam blok lain. Variabel yang dideklarasikan di awalblok luar juga berlaku di blok dalam. Variabel tersebut bebasdiases, selama tidak ada variabel lain dengan nama yangsama di blok dalam.

Fungsi yang Didefinisikan Pemakai

Page 11: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Variabel yang tercipta ketika ia dideklarasikan dan dihapuspada akhir blok disebut variabel otomatis, sebab ia terciptadan terhapus secara otomatis. Sejauh mana suatu variabeldapat diases disebut skop variabel. Jika kamu mencobamengacu suatu variabel diluar skop, kamu akam mendapatpesan kesalahan ketika kamu mengompil program sebabvariabel tidak berlaku diluar skopnya. Ide umum diilustrasikandi potongan berikut:

Fungsi yang Didefinisikan Pemakai

Page 12: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

{int a = 0; /* Buat a *//* a masih berlaku *//* b tidak berlaku, ada kesalahan */

{int b = 10; /* Buat b *//* a dan b berlaku */} /* b mati */

/* Acuan ke b salah *//* Acuan ke a masih OK */}

Fungsi yang Didefinisikan Pemakai

Page 13: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

#include <iostream.h>using namespace std;int main(){int hit1 = 1; /* Dideklarasikan di blok luar */do{int hit2 = 0; /* Dideklarasikan di blok dalam */++hit2;cout<<"\nhit1 = "<<hit1<<" hit2 = "<<hit2;} while( ++hit1 <= 8 );/* hit2 tidak ada lagi */cout<<"\nhit1 = "<<hit1;

Cobalah: Memahami Skop

system ("PAUSE");return 0;}

Page 14: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

Output

Nilai hit2 tidak pernah lebih besar dari 1. Setiap iterasi loop,variabel hit2 diciptakan, dideklarasi, dinaikkan dan dihapus.Sebaliknya, variabel hit1 berlaku pada level blok main (). Iaterus naik, sehingga cout terakhir menghasilkan nilai 9.

Page 15: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

#include <iostream.h>using namespace std;int main(){int hit = 0; /* di blok luar */do{int hit = 0; /* variabel lain yang disebut hit */++hit; /* berlaku untuk hit dalam */cout<<"\nhit = "<<hit;}while( ++hit <= 8 ); /* berlaku untuk hit luar *//* hit dalam mati, ini adalah luar */

Lebih Jauh tentang Skopcout<<"\nhit = "<<hit<<"\n";system ("PAUSE");return 0;}

Page 16: Fungsi 1 - wexku.files. · PDF filekita mengatakan bahwa ia dilewatkan / dikirim dengan nilai ke fungsi. Ketika i adalah 3, ... program pada awal blok dari fungsi main(). Kenyataannya,

OutputDi dalam blok loop, variabel lokalakan ”menyembunyikan” variabelhit yang terdapat di tubuh main(),blok dalam adalah loot di levelblok mai(). Di dalam loop while,berlaku versi lokal dari hit,sehingga variabel tersebutdinaikkan. Cout di loopmenampilkan hit lokal, yang selalu1. Segera setelah kamu keluarloop, variabel hit luar akan terlihat,cout akhir akan menampilkan nilai9.