P12 Fungsi
A. Sidiq Purnomo Program Studi Teknik Informatika Universitas Mercu Buana Yogyakarta SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Tujuan • Mahasiswa mampu mengetahui dan memahami : – Fungsi – Penerapan suatu fungsi.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
2
Pembahasan • • • • •
Deklarasi Fungsi Parameter Formal dan Parameter Aktual Variable Global dan Variable Lokal Melewatkan Parameter Pengembalian Nilai dari Fungsi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
3
Definisi Fungsi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Fungsi • Dalam suatu program seringkali lebih mudah jika dipecah-pecah menjadi beberapa bagian program untuk mengerjakan persoalan tertentu. – Program-program kecil inilah yang disebut suatu fungsi.
• Dengan adanya fungsi, – User dapat menggunakan program tersebut tanpa menuliskan kembali program yang ada. – User cukup hanya memanggil nama fungsi yang telah dibuat hanya dengan memasukkan suatu parameter. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
5
Sifat-sifat fungsi • Setiap fungsi mempunyai nama. – Penamaan fungsi sama dengan penamaan suatu variable.
• Tubuh fungsi – Diawali dengan tanda “{“ dan diakhiri dengan tanda “}”.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
6
Deklarasi Fungsi Penentu_Tipe_Data_Fungsi (Parameter) Deklarasi_Parameter { Tubuh_Fungsi }
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
7
Ilustrasi Fungsi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Contoh Program 1
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
9
Contoh Program 2
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
10
Keterangan Contoh Program 2 : • Program di atas “ContohFungsi2.c”, belum menerapkan fungsi. • Banyak persoalan yang dapat terjadi, akibat dari penulisan program tersebut, misalnya seperti : – Penulisan yang diulan-ulang. y=pow(x,2)+6*x+8; printf(" y = %d \n",y); – Jika pada penulisan tersebut ada satu yang salah, misalnya yg ketiga menjadi : y=pow(x,2)+11*x-7; printf(" y = %d \n",y); – Jika pada penulisan tersebut salah semua, misalnya yang benar adalah : y=pow(x,2)+19*x+87; printf(" y = %d \n",y); – maka otomatis harus mengganti semuanya (ketiganya). SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
11
Contoh Program 3
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
12
Keterangan Contoh Program 2 dan 3: • Program di atas “ContohFungsi3.c” sebenarnya sama dengan program sebelumnya “ContohFungsi2.c”. • Perbedaannya jika “ContohFungsi2.c ” belum menggunakan fungsi, sedangkan “ContohFungsi3.c” sudah menggunakan fungsi. • Dengan menggunakan fungsi pada “ContohFungsi3.c”, persoalan pada kasus program “ContohFungsi2.c” dapat teratasi, sehingga jika terjadi kesalahan yang perlu diubah hanya pada bagian tubuh fungsi. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
13
Contoh Program 4
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
14
Parameter Formal & Aktual
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Parameter Formal • •
Parameter formal adalah variable yang terdapat di dalam daftar parameter dalam pendefinisian fungsi. Contoh : void garis(char karakter, int jumlah) { int x; for(x=0;x<jumlah;x++){ printf("%c",karakter); printf("\n"); } }
•
Keterangan : – Parameter formal → karakter dan jumlah.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
16
Parameter Aktual • Parameter Aktual adalah parameter yang digunakan untuk memanggil fungsi. • Contoh : garis(karakter, jumlah);
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
17
Variable Lokal & Global
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Variable Lokal & Global • Variable global dapat dilihat dan diubah oleh semua fungsi dalam program. • Variable global dikenal disemua tubuh program. • Sedangkan variable lokal hanya dikenal dibagian di mana variable tersebut didefinisikan. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
19
Contoh Program 5 Variable Local
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
20
Contoh Program 6
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
21
Keterangan Contoh Program 6: • Pada program “ContohFungsi6.c” jika dijalankan akan terjadi kesalahan. • Penyebab : – variable b tidak didefinisikan, – variable b hanya didefinisikan pada program utama (variable b bersifat lokal / tidak dikenali oleh bagian program yang lain). SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
22
Contoh Program 7
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
23
Contoh Program 8 Variable Global
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
24
Keterangan Contoh Program 8: • Nilai awal dari variable b = 5 • Selanjutnya program memanggil fungsi persamaan. • Di dalam fungsi persamaan, variable b kemudian diubah menjadi 10. • Perubahan tersebut akan berpengaruh terhadap variable lain yang berada ditempat lain, sehingga begitu ditampilkan isi di program utamanya hasilnya != 5 tetapi berubah menjadi =10. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
25
Contoh Program 9
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
26
Contoh Program 10 Variable Static
Keterangan : • Variable y di program utama bersifat lokal. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
27
Pengembalian Nilai dari Fungsi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Pengembalian Nilai Fungsi •
•
Pada beberapa contoh program pada pembahasan sebelumnya (di atas), dalam pemanggilan fungsi tidak ada nilai yang dikembalikan (dalam pemanggilan fungsi tidak ada suatu nilai yang di berikan oleh fungsi). Pada pemrograman yang komplek, suatu pengembalian nilai sangat penting. Seperti fungsi-fungsi bawaan yang terdapat di dalam bahasa #C, misalnya fungsi pow.
•
Contoh : A = pow (B,C); → A = pow(11,2)
•
Keterangan : – Fungsi pow meminta dua buah nilai. – A → Menyimpan nilai pengembalian fungsi pow. – B → Nilai yang akan dikuadratkan. – C → Nilai yang menjadi kunci kuadrat berapa.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
29
Contoh Program 11
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
30
Contoh Program 12
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
31
Melewatkan Parameter
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Melewatkan Parameter •
Melewatkan parameter adalah bagaimana suatu nilai data dari program utama dilewatkan ke bagian yang menjadi fungsi.
•
Contoh : hasil=hitung_kuadrat(n); . . .
→ memanggil fungsi dari program utama n = nilai yang akan dilewatkan ke fungsi.
float hitung_kuadrat(float kuadrat) { return kuadrat*kuadrat; }
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
33
• Cara melewatkan parameter : – Pemanggilan dengan nilai – Nilai dari parameter aktual akan disalin ke parameter formal. • Dengan begitu nilai parameter aktual tidak akan berubah meskipun nilai parameter formal berubah.
– Pemanggilan dengan referensi – Nilai yang akan dilewatkan dari parameter aktual ke parameter formal akan mengalami perubahan. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
34
Contoh Program 13 Pemanggilan dengan Nilai
Keterangan : • Isi dari variable n tidak berubah walaupun nilai n dilewatkan ke fungsi n = 5; SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
35
Contoh Program 14 Pemanggilan dengan Referensi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
36
Tugas
37
Kemarin adalah sepenggal kisah masa lalu, Esok adalah sebuah bayangan, Hari ini adalah fakta yang dapat menjadikan mimpi indah untuk kemarin, Dan esok menjadi sebuah harapan. (DnD)
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
39
Time to celebrate the year that was, and look forward to the adventures that will be ! Thanks for a great 2013 and wishing you a happy start to 2014.
From all of us at FTI UMBY.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
40
Thanks u For Participating In My Class C U Next ... Year
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
41