Nomo : NPM : Praktikum f5 Fungsi Tuiuan lnstruksional Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk: 1. Mengenal dan memahami fungsi dalam Bahasa C. 2. Dapat menggunakan fungsi pada program. 1. Funtsi Fungsi adalah sekelompok statemen yang secara bersama bekerja melaksanakan sebuah tugas. setiap program c setidaknya memiliki satu fungsi, yaitu mainO, dan pada kenyataanya program yang sangat sederhana sekalipun dapat menggunakan lebih banyak fungsi. Kode program yang dituliskan dapat dibagi menjadi fungsi-fungsi terpisah. Secara logika, pembagiannya adalah bedasarkan tugas tertentu yang dilakukan fungsi. Deklarasi fungsi menginformasikan kepada kompiler mengenai nama fungsi, tipe return, dan parameter-parameternya. Sedangkan cara kerja fungsi didefinisikan pada badan fungsi. Library standar c menyediakan cukup banyak fungsi-fungsi built-in yang dapat dipanggil oleh program. contoh yang paling umum adalah layar atau scanfO printfO untuk menghasilkan tampilan pada untuk meminta input dari keyboard. Fungsidapatjuga disebut sebagai sebuah metode, atau sub-rutin, atau prosedur, dsb. 2. PendefinisianFungsi Bentuk umum sebuah fungsidalam bahasa C adalah sebagai betikut: tipe_return nama-fungsi( daftar parameter ) { badan fungsi ) Definisi fungsi dalam bahasa c terdiri atas header fungsi dan badan fungsi. Berikut ini adalah bagian-bagian sebuah fungsi: Proklikurn Ko.npuler dqn Pemrogromon Pragrem Sludi Ieknik Elekiro Universilos Ee,rgkulLl t8 . - Tipe return Sebuah fungsi dapat mengembalikan nilai. tipe_return adalah tipe data dari nilaiyang dikembalikan fungsi. Sebagian fungsi melakukan operasi yang ditugaskan tanpa mengembalikan nilai. Pada kasus ini, tipe_return adalah kata kuncivoid. . Nama fungsi - sebuah fungsi dapat dijalankan dengan memanggil nama fungsi beserta daftar parameter-parameter yang dibutuhkan fungsi. . parameter - Ketika fungsi dijalankan, nilai-nilai yang dibutuhkan oleh fungsi harus diberikan bersamaan dengan pemanggilan fungsi. Nilai-nilai atau parameter fungsi ini disebut argument. Daftar parameter bergantung pada jenis, urutan, dan jumlah parameter fungsi. Sebuah fungsi bisa saja membutuhkan satu, dua, atau lebih parameter, atau ada juga fungsiyang tidak membutuhkan parameter. . Badan fungsi- Badan fungsi mengandung sekumpulan statemen yang menentukan apa yang dikerjakan oleh fungsi. 3. Deklarasifungsi Deklarasi fungsi menginformasikan kepada kompiler nama fungsi dan bagaimana fungsi tersebut dipanggil. Deklarasifungsi mempunyai bagian-bagian sebagai berikut: tipe_return nama_fungsi ( daftar parameter )j Sebagai contoh, deklarasisebuah fungsi max untuk mencari nilai maksimum: int max(int angkal, int angka2)j nama-nama parametertidak penting dalam deklarasifungsi karena yang penting adalah tipe datanya. Sehingga deklarasi di atas dapat juga dituliskan menjadi: int max(int, int); Deklarasi fungsi diperlukan ketika sebuah fungsi didefinisikan pada satu file sumber dan akan dipanggil dari sebuah file yang lain, 4. Memaoggil fungsi (etika membuat sebuah fungsi, diberikan definisi apa yang harus dikeriakan fungsi. Untuk menggunakannya, fungsi harus dipanggil untuk mengerjakan tugas yang diberikan. Ketika sebuah fungsi dipanggil, kontrol aliran program dialihkan ke fun8si yang dipanggil. Fungsi kemudian melakukan tugas yang ditentukan dan ketika statemen return-nya diialankan, atau telah sampai ke kurawal tutup terakhir, fungsi mengembalikah kontrol program kepada program utama. Proktikum Komputer don Pemrogromon Proqrorn Siudi Ieknik E1eklro Universjlos Bengkullr 19 Untuk memanggilsebuah fungsi, cukup dengan menuliskan nama fungsi beserta parameter- parameter yang dibutuhkan fungsi tersebut. Contohnya: hasil = max(2, 5); jika algoritma fungsi benar, fungsi akan mengembalikan nilai 5 kepada variabel hasil. 5. Aryumen lungsi Jika sebuah fungsi memerlukan arugumen, variabelyang dapat menampung nilai argument harus didefinisjkan. Variabel seperti ini disebut parameter formal dari fungsi. Parameter- parameterformal berlaku seperti variabel lokal lainnya di dalam fungsi. Ketika memanggil fungsi, ada dua cara memberikan argument kepada fungsi: a. call by value Metode ini menyalin nilai argument kepada parameter formal fungsi. Dengan cara ini, perubahan yang dibuat terhadap parameter di dalam fungsi tidak mempengaruhi arSumen. b. call by reterence Metode ini menyalin alamat argumen kepada parameter formal. Di dalam fungsi, alamat ini digunakan untuk mengakses argumen yang digunakan dalam pemanggilan. lni berarti perubahan yang dibuat terhadap parameter mempengaruhi argumennya, Secara default, C menggunakan call by value untuk memberikan argumen. Secara umum, ini berarti kode di dalam fungsi tidak dapat mempertukarkan argumen yang digunakan untuk memanggil fungsi, 6. contoh Program 1, Sinus dalam derajat (tanpa membuat fungsi) #incfude <stdio.h> #include <nath.h> int maino { float hasiI, derajat, nadian; printf("Besar sudut (derajat) : "); scanf ("Xf ", &derajat); radian = derajat * (fl_PI / 180), hasil = sin(radi.an); printf("sin(Xg) = %f\n", derajat, hasil); return O.; ] Proklikum Kompuler don Pemrogromon Progrom Siudi Ieknik E/eklro Universilos Eengkulu 20 2, Sinus dalam deraiat (membuat tungsi srad) *i.nc1ude <stdio.h> #include <math.h> float sind(float); main( ) { float hasil, derajat.; printf("Besar sudut (derajat) : "); scanf("%f", &derajat); hasil = sind(denajat); printf("sin(Xg) = lff\n", derajat, hasil); ) /* Fungsl sihus daLon derojat */ float sind(fIoat sudut) //deklarasi { float radian, hasil; radian = sudut * (li1_PI hasil = sin(radian); / fungsi 18o); return (hasil)j ) 3. Menghitunt Permutasi dan Xombinasi #include <stdio.h> / fi,lekbuat f u ngsi f ahto r ia L double fact(int a) { double hasil=li int i; fo. (i=1; i<=a; hasil *= ii i++) return hasi.l; ] maino { lnt n, k, permutasi, kombinasi; puts("\n PersoaLan Peluang (Permutasi dan Kombinasi)"); puts(" ----------- ----- -- --- --"); printf(" lumlah elemen : "); scanf("2|d", &n): printf(" lumlah yang dipiLih : "); scanf("Xd", &k); permutasl = fact(n)/fact(n - k); kombinasi = fact(n)/(fact(n - k) * fact(k)); printf("\n Permutasi:\n P(%d, %d) = %d\n", n, k, permutasi); printf("\n Kombinasi:\n c(%d, %d) = %d\n", n, k, konbinasi); ] Prqkikum Kompuler don Pemrogronron Frcgrqm SiLdi leknik Elekiro Universilcs Bengkulu 21 7. Latihan Buatlah fungsi untuk mengubah nilai sudut dari derajat menjadi radian dan dari radian menjadiderajat. Gunakan nama fungsideg2rad dan rad2deg. 8. Tugas: Buatlah program untuk mengkonversi bilangan kompleks dari bentuk redangular ke bentuk polar dan sebaliknya. Anda dapat memberi nama fungsi rec2pol dan pol2rec. Misal: X=A+jB=RZe" Dimana: a=rr"'[4) \A) dan kebalikannya, A = R cns9" B = X sin 9' Proktikum Kompuler dqn Pemrogromon Proqrom Siudi leknik Elekiro Universilos Bengkulu 22