Successfully reported this slideshow.

4. pemrograman fungsi

716 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

4. pemrograman fungsi

  1. 1. BAB VI PEMROGRAMAN FUNGSI Pertemuan Minggu VII dan VIII Alokasi Waktu : 4 Jam Pertemuan Standar Kompetensi : Mahasiswa dapat membuat program komputer sederhana dengan menggunakan bahasa C Kompetensi Dasar : Memahami program komputer yang mengandung unsur procedure dan fungsi Indikator : Mahasiswa dapat memahami struktur program bahasa C yang mengandung unsur procedure dan fungsi : Mahasiswa dapat membuat program dengan melibatkan struktur procedure dan fungsi Dalam topic-topik sebelumnya kita telah memanfaatkan fungsi yang telah didefinisikan oleh C didalam Pustaka (library) C itu sendiri, seprti sqrt (), pow (), dsb. Salah satu keunngulan pemrograman bahasa C adalah bahwa seorang programmer dapat membuat Fungsi sendiri sesuai dengan kebutuhan program aplikasi yang akan dikebangkan. Analogi fungsi adalah seperti halya kita …… Suatu fungsi dapat diakses atau dipanggil dengan menuliskan nama fungsinya pada main program (fungsi main ( ) ). Gambar dibawah ini mengilustrasikan program yang terdiri dari beberapa fungsi yang terkait antara satu dengan yang lain. Gambar 6.1 Diagram fungsi Struktur pemanggilan main() { function1(); …… fungtion2(); function1() { …… return; } function3() { function3(); …… function4(); ………. return; } } function2() { } …… return; function4() { …… return; } Di beberapa literature ada yang membedakan antara pengertian fungsi dan procedure. Procedure diartikan sebagai suatu bagian program yang menjalankan tugas tertentu yang kemudian dipanggil oleh fungsi utama. Fungsi juga merupakan bagian dari program yang menjalankan tugas tertentu akan tetapi fungsi mempunyai nilai yang akan di kembalikan ke fungsi utama ketika di panggil. Secara umum struktur penamaan sebuah procedure dan fungsi adalah sebagai berikut: void Nama_prosedure (void) : struktur umum penamaan prosedure int nama_fungsi (tipe_data parameter) : struktur umum penamaan fungsi 1
  2. 2. proses pendeklarasian fungsi ini biasanya terletak setelah penulisan library program, dibawah ini merupakan salah satu cara pendeklarasian fungsi atau procedure #include <conio.h> #include <math.h> #include <stdio.h> ……… int fungsi1 (int a, int b) Void prosedure1 (void) …….. Main() { ……………….. ……………….. } 6.1. PROSEDURE Procedure lebih merupakan sebuah fungsi yang tidak memiliki parameter keluaran. Procedure hanya digunakan untuk memecah program sehingga lebih mudah dalam pengelolaan dan pengembangan selanjutnya. Procedure lebih ditekankan pada pemecahan tugas yang lebih spesifik untuk menyederhanakan program dan mempermudah penanganan saat terjadi kesalahan. Contoh dibawah ini akan menjelaskan penerapan procedure dalam suatu program yang bertujuan untuk mempermudah pengelolaan program. Contoh 6.1 #include <stdio.h> #include <conio.h> void luas(void); void keliling(void); main() { printf("Program Bangun Persegi Panjang"); luas(); keliling(); getch(); } void luas(void) { int luasan, lebar, panjang; lebar = 3; panjang = 4; luasan = panjang * lebar; printf("nLuas nya adalah : %d",luasan); } void keliling(void) { int kelilingan, lebar, panjang; 2
  3. 3. lebar = 3; panjang = 4; kelilingan = (2*panjang) + (2*lebar); printf("nKelilingnya adalah : %d",kelilingan); } Pada contoh 1.6 diatas bahwa program perhitungan persegi panjang yang menentukan luas dan keliling dibagi menjadi tiga bagian program, bagian pertama adalah fungsi utama yaitu fungsi main(), bagian kedua adalah procedure luas yang didefinisikan sebagai void luas (void), bagian ketiga adalah prosudure keliling yang didefinisikan sebagai void keliling (void). Pada contoh 6.1 jika kita akan menambahkan suatu proses perhitungan lain terkait dengan persegi panjang semisal menghitung sisi diagonal persegi panjang, kita hanya perlu menambahkan deklarasi baru dibawah deklarasi procedure yang sudah ada, selanjutnya tinggal mendeskripsikan prosedure tersebut seperti pada deskripsi procedure luas dan keliling yang sudah ada. Contoh 6.2 #include <stdio.h> #include <conio.h> void luas(void); void keliling(void); void diagonal(void); main() { printf("Program Bangun Persegi Panjang"); luas(); keliling(); diagonal(); getch(); } void luas(void) { int luasan, lebar, panjang; lebar = 3; panjang = 4; luasan = panjang * lebar; printf("nLuas nya adalah : %d",luasan); } void keliling(void) { int kelilingan, lebar, panjang; lebar = 3; panjang = 4; kelilingan = (2*panjang) + (2*lebar); 3
  4. 4. printf("nKelilingnya adalah : %d",kelilingan); } void diagonal(void) { int lebar, panjang, diagonal lebar = 3; panjang = 4; diagonal = sqrt( (lebar*lebar) + (panjang*panjang) ); printf(“nPanjang diagonal adalah : %d”,diagonal); } 6.2. FUNGSI Procedure yang kita dipelajari di atas adalah bentuk paling sederhana dari sebuah fungsi. Fungsi biasanya mempunyai parameter masukan atau keluaran yang nantinya akan dikeluarkan pada saat fungsi tersebut di panggil, masih dengan program yang telah dikembangkan pada contoh 6.1, pada contoh dibawah ini program tersebut akan dimodifikasi dengan menggunakan fungsi. Contoh 6.2 #include <stdio.h> #include <conio.h> int luas(int x, int y); main() { int panjang, lebar, luasan; printf("Program Bangun Persegi Panjang"); printf("nMasukan Panjangnya : "); scanf("%d",&panjang); printf("nMasukan Lebarnya : "); scanf("%d",&lebar); luasan = luas(panjang,lebar); printf("nLuas Persegi Panjang : %d",luasan); getch(); } int luas(int x, int y) { int hit_luas; hit_luas = x * y; return(hit_luas); } Pada program contoh 6.2 jika diperhatikan ada penulisan tipe data dan parameter yang digunakan dalam pendeklarasian fungsinya. Fungsi dideklarasikan didahului dengan tipe data yang akan dikembalikan kemudian didalam tanda kurung juga berisi variable dan tipe data yang akan diproses pada saat pemanggilan fungsi : int luas(int x, int y). 4
  5. 5. Pada pendeskrisian fungsi luas diatas lebih ditekankan pada proses bagaimana menghitung luas dengan melibatkan parameter yang ada, pada contoh diatas juga didapatkan keyword return yang menyatakan pengembalian dari suatu proses ketika fungsi tersebut di panggil pada fungsi yang lain. Jika ingin menambahkan suatu fungsi lagi terkait dengan perhitungan persegi panjang adalah sebagai berikut Contoh 6.3 #include <stdio.h> #include <conio.h> int luas(int x, int y); int keliling(int x, int y); main() { int panjang, lebar, luasan, kel; printf("Program Bangun Persegi Panjang"); printf("nMasukan Panjangnya : "); scanf("%d",&panjang); printf("nMasukan Lebarnya : "); scanf("%d",&lebar); luasan = luas(panjang,lebar); kel = keliling(panjang,lebar); printf("nLuas Persegi Panjang : %d",luasan); printf("nKeliling Persegi Panjang : %d",kel); getch(); } int luas(int x, int y) { int hit_luas; hit_luas = x * y; return(hit_luas); } int keliling(int x, int y) { int hit_keliling; hit_keliling = (2*x) + (2*y); return(hit_keliling); } Pada contoh 6.3 terlihat ketika ingin menambahkan suatu fungsi, kita tinggal nenambahkan deklarasi fungsi dibawah deklarasi fungsi yang terdahulu, selanjutnya dideskripsikan dibawah deskripsi fungsi yang sudah ada dalam hal ini deskripsi fungsi untuk menghitung luas. Pengayaan Latihan 6.1 5
  6. 6. #include <stdio.h> #include <conio.h> int kabisat(int th); main() { int tahun; printf("Masukan Tahun : "); scanf("%d",&tahun); kabisat(tahun); getch(); } int kabisat(int th) { if(th%4==0) printf("Kabisat"); else printf("Bukan Kabisat"); return(th); } Latihan 6.2 #include <stdio.h> #include <conio.h> int fak(int fk); main() { int nilai,ft; printf("Masukan Nilai: "); scanf("%d",&nilai) printf("Nilai Faktorial dari %d adalah %d",nilai,fak(nilai)); getch(); } int fak(int fk) { int i,f; if(fk==0) { f=1; } if(fk > 0) { f=1; for (i=1; i<=fk; i++) { f=f*i; 6
  7. 7. } return(f); } } 7

×