-->

Algoritma & Pemrograman #8 - Fungsi



Penjelasan

Bagian ini membahas tentang bagaimana memecahkan masalah yang kompleks dalam program mencadi sub – sub masalah yang lebih spesifik. Sub – sub masalah tersebut berupa fungsi yang didefinisikan sendiri.

Bagian ini juga menjelaskan dua macam fungsi, yaitu fungsi yang mengembalikan nilai dan fungsi yang tidak mengembalikan nilai.

Percobaan

Program1.c Fungsi tanpa mengembalikan nilai
/*
 * Program1.c
 * demo fungsi tanpa mengembalikkan nilai
 */

#include <stdio.h>

//deklarasi
void salam (void);

//main
int main(void) {
 //manggil fungsi salam()
 salam();
}

//deklarasi fungsi salam()
//bertipe void (tidak mengembalikan nilai)
//tidak memiliki parameter


//fungsi
void salam(void) {
 printf("Hello, World\n");
 printf("Saya sedang membuat fungsi.");
}

//kalo fungsi nya dibawah, harus dideklarasikan dulu di atas main,
//kalo gak pake deklarasi, fusngsi ditaruh diatas main,

Program2.c Fungsi tanpa mengembalikan nilai
/*  
* program halo.c  
* demo fungsi tanpa mengembalikan nilai  
*/  

#include <stdio.h>  

void halo(char nama[15]);  
 int main(void) {  
 
 // manggil fungsi halo()  
  halo("John"); }  
 
 // deklarasi fungsi halo() 
 // bertipe void (tidak mengembalikan nilai) 
 // memiliki parameter  
  void halo(char nama[15]) {  
   printf("Hello, %s\n", nama);  
   printf("Bagaimana kabarmu?\n"); 
  }  

Program3.c Cek ganjil atau genap
/*
* Program 5.2 ganjil.c
* demo membuat fungsi untuk mengecek bilangan
* apakah ganjil atau genap
*/

#include <stdio.h>

int ganjil(int n);

int main(void){
 int bil = 1;

 while(bil > 0){
  printf("Masukkan Bilangan = ");
  scanf("%d", &bil);

  if(ganjil(bil)){
   printf("%d adalah ganjil\n", bil);
  } else {
   printf("%d adalah genap\n", bil);
  }
 }
 return 0;
}

/*
  deklarasi fungsi ganjil() bertipe int,
  dengan 1 parameter:
  n bertipe int;
*/

int ganjil(int n){
 if(n % 2 == 0){
  //bila genap mengembalikan nilai 0 (false);
  return 0;
 } else {
  //bila ganjil mengembalikan nilai selain 0 (true);
  return 1;
 }
}

Program4.c Nilai min dan max
/*
 * Program minmax.c
 * demo pemanggilan fungsi dari fungsi yang lain
 */

#include <stdio.h>

#define MAX 1
#define MIN 0

int min(int a, int b, int c);
int max(int a, int b, int c);
int minmax(int a, int b, int c, int f);

int main(void){
 int a, b, c;

 printf("Masukkan 3 bilangan : ");
 scanf("%d%d%d", &a, &b, &c);

 //memanggil fungsi max untuk mengecek bilangan terbesar,
 // dan fungsi min() untuk mengecek bilangan terkecil,

 printf("\nMenggunakan fungsi min() dan max(): \n");
 printf("Bilangan Terbesar : %d\n", max(a, b, c));
 printf("Bilangan Terkecil : %d\n", min(a, b, c));

 //memanggil fungsi minmax() untuk mengecek bilangan 
 // terbesar dan terkecil

 printf("Menggunakan fungsi minmax() :\n");
 printf("Bilangan Terbesar : %d\n", minmax(a, b, c, MAX));
 printf("Bilangan Terkecil : %d\n", minmax(a, b, c, MIN));

 return 0;
 }

/*
 * deklarasi fungsi min()
 * tipe kembalian: int
 * parameter:
 * a: int
 * b: int
 * c: int
*/

int min(int a, int b, int c){
 int min = a;

 //pengecekan nilai min

 if(b < min)
  min = b;
 if(c < min);
  min = c;

 //mengembalikan nilai min
 return min;
}

/*
 * deklarasi fungsi max()
 * tipe kembalian: int
 * parameter:
 * a: int
 * b: int
 * c: int
*/

int max(int a, int b, int c){
 int max = a;

 //pengecekan nilai max

 if(b > max)
  max = b;
 if(c > max)
  max = c;

 //mengembalikan nilai max
 return max;
}

/*
 * deklarasi fungsi minmax()
 * tipe kembalian: int
 * parameter:
 * a: int
 * b: int
 * c: int
 * f: int
 *
 * keterangan
 * a, b, c sebagai bilangan yang dicek nilainya
 *
 * f sebagai penanda pengecekan, apakah max atau min
*/

int minmax(int a, int b, int c, int f){
 //bila f bernilai MAX
 if(f == MAX){
  //panggil fungsi max() dan kembalikan nilai nya
  return max(a, b, c);
 } else if(f == MIN){
  //bila f bernilai MIN
  //panggil fungsi min() dan kembalikan nilainya
  return min(a, b, c);
 }
}

Program5.c Piramid
/*
 * program piramid.c
 * fungsi untuk menggambar piramid
*/

#include <stdio.h>

void piramid(int t, char c);

int main(void){
 int t;
 char c;

 printf("============== NGGAMBAR PIRAMID ==============\n");

 printf("  Karakter: ");
 scanf("%c", &c);

 printf("  Tinggi  : ");
 scanf("%d", &t);

 printf("\n");

 piramid(t, c);

 return 0;
}

/*
 * deklarasi fungsi piramid()
 * tipe kembalian: void
 * parameter:
 *     t: integer
 *     c: char
 *
 *     t untuk tinggi piramid
 *     c untuk karakter yang akan tuliskan
*/

void piramid(int t, char c){
 int i, j;

 for(i = 1; i <= t; i++){
  for(j = t - 1; j >= 1; j--){
   printf(" ");
  }

  for(j = 1; j <= i; j++){
   printf("%c", c);
  }
  for(j = 2; j<= i; j++){
   printf("%c", c);
  }

  printf("\n");
 }
}

Program6.c Faktorial
/*
 * program fakt.c
 * demo fungsi faktorial
 */

#include <stdio.h>

int faktorial(int n);

int main(void) {
 int n;

 printf("Masukkan Bilangan: ");
 scanf("%d", &n);

 printf("Faktorial %d!= %d", n, faktorial(n));

 return 0;
}

/*
 * deklarasi fungsi faktorial()
 * tipe kembalian: int
 * parameter:
 * n: int
 *
 * n sebagai bilangan yang dihitung
*/

int faktorial(int n){
 int i, f;

 f = 1;

 //perhitungan menggunakan struktur perulangan
 for(i = n; i >= 1; i--){
  f*=i;
 }
 return f;
}


Latihan

  1. Buatlah fungsi untuk konversi nilai detik ke jam, menit, detik.
    Contoh output:
    Masukkan detik: 3661
    Hasil konversi [h:m:s]: 1:1:1
  2. Buatlah program yang berisi fungsi – fungsi untuk menghitung luas: segi empat, lingkaran, dan segitiga.
Load Comments

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel