Percobaan VI

Mengembangkan Fungsi-fungsi Sendiri

Pada kesempatan kali ini saya akan membahas tentang Mengembangkan Fungsi-fungsi Sendiri pada Bahasa C. Tujuannya agar kita bisa mempelajari pembuatan fungsi-fungsi diluar fungsi-fungsi yang ada, serta mempelajari penggunaan variable global, local, eksternal, otomatis, statis dan register.

Suatu fungsi adalah bagian program yang terpisah dari fungsi program utama main() dan berdiri sendiri untuk mengerjakan suatu proses tertentu. tujuan digunakan fungsi untuk mencegah penggunaan program secara berulang-ulang, sehingga program menjadi sangat panjang. pada percobaan-percobaan diatas telah digunakan fungsi dari C, seperti printf(), clrscr(), scanf(), getch(), puts(), for() dan sebagainya, maka disini dicoba untuk membuat fungsi baru dimana tidak ada dalam pustaka bahasa C. secara aturan fungsi baru dibuat setelah fungsi main() sehingga penempatan fungsi dibawah fungsi main(), tetapi ada kalanya fungsi diletakkan diatas fungsi main().

Selanjutnya kita akan mencoba untuk mengerjakan tugas agar lebih memahami materi tentang Fungsi-fungsi.

6.5.1 Membuat fungsi kabisat() yang akan memberikan nilai balik 1 bila tahun adalah kabisat, dan 0 bila tahun bukan kabisat.

Jawab :

Langkah pertama, membuat struktur seperti yang ada dibawah ini

#include<stdio.h>
int kabisat(int x){
if(x % 4==0)
{printf(“Tahun tersebut merupakan kabisat”);
return 1;}
else
{printf(“Tahun tersebut bukan tahun kabisat”);
return 0;}
}
main(){
int x;
printf(“Masukkan Tahun = “);
scanf(“%d”, &x);
printf(” %d\n”, kabisat(x));

}

Lalu, menekan ikon ‘Build and run’ untuk menjalankan program tersebut. Jika penulisan struktur program tersebut sudah benar maka program akan berjalan seperti pada gambar dibawah

  • Facebook
  • Twitter
  • Google+
  • Pinterest

6.5.2 Membuat fungsi faktorial() untuk menghitung nilai faktorial, fungsi faktorial() memberikan nilai balik bertipe long int yang akan dicetak ke layar dalam bentuk fungsi main().

Jawab :

Langkah pertama, membuat struktur seperti yang ada dibawah ini

#include<stdio.h>
int input;
int faktorial(long int input){
int i,hsl = 1;
for(i = 1; i <= input; i++){
printf(“%d “, i);
if(i != input)
printf(“x “);
hsl *= i;}
return (hsl);
}
void main(){
printf(“Masukkan bilangan : “);
scanf(“%d”, &input);
printf(“\n %d! = “, input);
printf(“= %d “,faktorial(input));

}

Lalu, menekan ikon ‘Build and run’ untuk menjalankan program tersebut. Jika penulisan struktur program tersebut sudah benar maka program akan berjalan seperti pada gambar dibawah

  • Facebook
  • Twitter
  • Google+
  • Pinterest

6.5.3 Membuat suatu fungsi permutasi() dan kombinasi() untuk menghitung permutasi dan kombinasi dari pasangan bilangan, yang dinyatakan dengan formula

Jawab :

Langkah pertama, membuat struktur seperti yang ada dibawah ini

#include <stdio.h>
#include <stdlib.h>
int permutasi(int n,int r);
int kombinasi(int n,int r);
int faktorial(int f);
main(){
int n , r ;
printf(“Masukkan nilai n,r : “);
scanf(“%d, %d”,&n,&r);
if (n < r){
printf(“Invalid input n < r.”);
exit(0);
}
printf(“Permutasi (%d,%d): %d “,n,r,permutasi(n,r));
printf(“\nKombinasi (%d,%d): %d “,n,r,kombinasi(n,r));
}
int faktorial(int f){
if (f == 0)
return 1;
return f*faktorial(f-1);
}
int permutasi(int n,int r){
return faktorial(n)/faktorial(n-r);
}
int kombinasi(int n,int r){
return faktorial(n)/(faktorial(r)*faktorial(n-r));
}

Lalu, menekan ikon ‘Build and run’ untuk menjalankan program tersebut. Jika penulisan struktur program tersebut sudah benar maka program akan berjalan seperti pada gambar dibawah

  • Facebook
  • Twitter
  • Google+
  • Pinterest

6.5.4 Membuat fungsi float suhu (s,d), untuk mengonversikan suhu dari celcius ke fahrenheit, celcius ke reamur, fahrenheit ke reamur, reamur ke celcius dan lain-lain. Dimana s adalah suhu sumber, d adalah suhu konversi, dan suhu() adalah hasil konversi suhu

Jawab :

Langkah pertama, membuat struktur seperti yang ada dibawah ini

#include <stdio.h>
#include <stdlib.h>
float konversi(float suhu, char asal, char tujuan);
int main() {
float x, hasil;
char y, z;
printf(“Masukkan suhu sumber : “);
scanf(“%f %c”, &x,&y);
printf(“Masukkan satuan tujuan : “);
fflush(stdin);
scanf(“%c”, &z);
hasil = konversi(x, y, z);
printf(“\nHasil konversi suhu %.2f %c = %.2f %c”, x, y, hasil, z);
return
0;
}
float konversi(float suhu, char asal, char tujuan){
float hasil;
if (asal == ‘c’ || asal == ‘C’ ){
if (tujuan == ‘r’ || tujuan == ‘R’)
hasil = 0.8 * suhu;
else if (tujuan == ‘f’ || tujuan == ‘F’)
hasil = (1.8 * suhu) + 32;
else if (tujuan == ‘k’ || tujuan == ‘K’)
hasil = suhu + 273;
}
else if (asal == ‘r’ || asal == ‘R’ ){
if (tujuan == ‘c’ || tujuan == ‘C’)
hasil = 1.25 * suhu;
else if (tujuan == ‘f’ || tujuan == ‘F’)
hasil = (2.25 * suhu) + 32 ;
else if (tujuan == ‘k’ || tujuan == ‘K’)
hasil = (1.25 * suhu) + 273;
}
else if (asal == ‘f’ || asal == ‘F’ ){
if (tujuan == ‘r’ || tujuan == ‘R’)
hasil = (0.8) * (5/9) * (suhu – 32) ;
else if (tujuan == ‘c’ || tujuan == ‘C’)
hasil = 5 / 9 * (suhu – 32);
else if (tujuan == ‘k’ || tujuan == ‘K’)
hasil = 5/9 * (suhu – 32) + 273;
}
if (asal == ‘k’ || asal == ‘K’ ){
if (tujuan == ‘r’ || tujuan == ‘R’)
hasil = 0.8 * (suhu – 273);
else if (tujuan == ‘f’ || tujuan == ‘F’)
hasil = (1.8 * (suhu – 273)) + 32;
else if (tujuan == ‘c’ || tujuan == ‘C’)
hasil = suhu – 273;
}
return hasil;
}

Lalu, menekan ikon ‘Build and run’ untuk menjalankan program tersebut. Jika penulisan struktur program tersebut sudah benar maka program akan berjalan seperti pada gambar dibawah

  • Facebook
  • Twitter
  • Google+
  • Pinterest

6.5.5 Membuat fungsi prima(), yang memberikan nilai balik 1 bila bilangan yang dimasukkan adalah prima, dan 0 bila bukan bilangan prima.

Jawab :

Langkah pertama, membuat struktur seperti yang ada dibawah ini

#include <stdio.h>
#include <time.h>
int prima(int x);
int prima(int x){
int i, faktor;
for(i = 1; i <= x; i++){
if(x%i==0)
faktor++;
}
if(faktor == 2)
return 1;
else
return 0;
}
main(){
int n;
printf(“Masukkan n : “);
scanf(“%d”, &n);
if(prima(n))
printf(“Bilangan prima”);
else
printf(“Bilangan bukan prima”);
}

Lalu, menekan ikon ‘Build and run’ untuk menjalankan program tersebut. Jika penulisan struktur program tersebut sudah benar maka program akan berjalan seperti pada gambar dibawah

  • Facebook
  • Twitter
  • Google+
  • Pinterest

6.5.6 Membuat program menggunakan dua variable, satu bertipe register dan lainnya bertipe integer, kemudian buatlah dua perulangan menggunakan statement for(), untuk membandingkan waktu yang diperlukan untuk masing-masing tipe variable. gunakan fungsi gettime() untuk menghitung waktu yang diperlukan oleh masing-masing perulangan.

Jawab :

Langkah pertama, membuat struktur seperti yang ada dibawah ini

#include <stdio.h>
#include <time.h>
int main(){
int x=0;
clock_t t;
mulai:
t = clock();
if (x==0){integerwaktu();} else{registerwaktu();}
t = clock() – t;
double waktuyangdibutuhkan = ((double)t)/CLOCKS_PER_SEC;
if (x==0){printf(” integer membutuhkan %g detik untuk eksekusi \n”, waktuyangdibutuhkan);}
else{printf(” register %g detik untuk eksekusi \n”, waktuyangdibutuhkan);}
if(x==0){x++;goto mulai;}
getch();
}
void registerwaktu()
{
register z;
for(z=1;z<=2000;z++)
printf(“a”);
}
void integerwaktu()
{
int c;
for(c=1;c<=2000;c++)
printf(“a”);
}

Lalu, menekan ikon ‘Build and run’ untuk menjalankan program tersebut. Jika penulisan struktur program tersebut sudah benar maka program akan berjalan seperti pada gambar dibawah

  • Facebook
  • Twitter
  • Google+
  • Pinterest