Assalamualaikum wr. wb.

Haloo teman-teman seperjuangan di redaksi PENS , kembali lagi Nih! bersama artikel saya yang super JOSS!!!. sebelumnya perkenalkan dulu nama saya Aditya dari kelas D3 Elektronika B. Nah! pada kesempatan ini,  saya akan sedikit memberikan informasi tentang bagaimana cara mengembangkan fungsi-fungsi pada bahasa “C” secara sendiri. Pada pengen tau semua kan?? yukk simak pembahasan nya di bawah ini ya!

 

Tujuan dari mengembangkan fungsi-funsi secara sendiri yakni, untuk mempelajari pembuatan fungsi-fungsi diluar fungsi-fungsi yang ada. Serta mempelajari penggunaan variabel global, local, ekstrenal, otomatis, statis dan register.

Nah! untuk sobat agar dapat lebih faham lagi tentang artikel ini, silahkan simak teori dari Mengembangkan fungsi-fungsi secara sendiri di bawah ini ya!

 

Suatu fungsi adalah bagian program yang terpisah dari fungsi program utamanya main() dan berdiri sendiri untuk mengerjakan suatu proses tertentu. Suatu fungsi dapat digunakan sebagai fungsi itu sendiri. Subrutin dan prosedur seperti istilah yang digunakan pada bahasa pemrograman BASIC atau PASCAL. Tujuan digunakannya fungsi adalah untuk mencegah penggunaan program secara berulang-ulang, sehinga program menjadi sangat panjang. Pada percobaan-percobaan diatas telah digunakan fungsi-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 ( Turbo C). Secara aturan fungsi baru dibuat setelah fungsi main() dibuat. sehingga penempatan fungsi adalah dibawah fungsi main(), tetapi ada kalanya dapat diletakkan diatas fungsi main(). seperti fungsi-fungsi yang ada dalam #include. bila fungsi dietakkan diatas fungsi main() maka tidak diperlukan deklarasi fungsi lagi.

Nah selesai sudah nihh! Bagaimana sobat masih kurang faham kah?? jika masih juga belum faham, sobat bisa simak  suatu percobaan, dimana percobaan tersebut merupakan tugas dari materi ini.

 

TUGAS 6.5.1

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

jawab

Membuat programnya seperti ini

int kabisat(int x)
{
if ((x%100==0 && x%400==0)||(x%100!=0 && x%4==0))
return 1;
else
return 0;
}
void main()
{
int x;
printf (“Fungsi kabisat\n”);
printf (“Nilai 1 menunjukkan tahun kabisat\n”);
printf (“Nilai 0 menunjukkan bukan tahun kabisat\n\n”);

printf (“Masukkan tahun : “);
scanf (“%d”, &x);
printf (“Nilai= %d\n”,kabisat(x));

getch();
}

 

kemudian Build dan Run, jika programnya benar maka akan tampil seperti yang dibawah ini;

  • Facebook
  • Twitter
  • Google+
  • Pinterest

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

TUGAS 6.5.2

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

jawab

Membuat programnya seperti ini

int input;
int faktorial(int input){
int i, hasil = 1;
for(i=1; i<=input; ++i){
printf(“%d”, i);
if(i != input)
printf(“x”);
hasil *= i;}
return (hasil);
}
main(){
printf(“Masukkan angka : “);
scanf(“%d”, &input);
printf(“\n %d! = “, input);
printf(“= %d “, faktorial(input));
getch();
}

 

kemudian Build dan Run, jika programnya benar maka akan tampil seperti yang dibawah ini;

  • Facebook
  • Twitter
  • Google+
  • Pinterest

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

TUGAS 6.5.3

Membuat suatu fungsi permutasi () dan kombinasi () untuk menghitung permutasi dan kombinasi dari suatu pasangan bilangan.

jawab

Membuat programnya seperti ini

int permutasi(int n, int r);
int kombinasi(int n, int r);
int faktorial(int f);
main(){
int n, r;
printf(“Masukkan nilai n: “);
scanf(“%d, %d”, &n);
printf(“Masukkan nilai r: “);
scanf(“%d”, &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);
getch();
}

 

kemudian Build dan Run, jika programnya benar maka akan tampil seperti yang dibawah ini;

  • Facebook
  • Twitter
  • Google+
  • Pinterest

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

TUGAS 6.5.4

Membuat fungsi float suhu (s, d) untuk mengkonversikan suhu dari Celcius ke Fahrenheit. Celcius ke Reamur, Fahrenheit ke Celcius. Fahrenheit ke Reamur, Reamur ke Celsius. dan Reamur ke Fahrenheit. Dimana s adalah suhu sumber, d adalah suhu konversi, dan suhu () adalah hasil konversi suhu.

jawab

Membuat programnya seperti ini

double suhu(float a,char b,char c)
{
float d;
if(b==’c’&&c==’f’) goto cf;
if(b==’c’&&c==’r’) goto cr;
if(b==’f’&&c==’c’) goto fc;
if(b==’f’&&c==’r’) goto fr;
if(b==’r’&&c==’c’) goto rc;
if(b==’r’&&c==’f’) goto rf;

cf: d=a*9/5+32; return (d);
cr: d=a*4/5; return (d);
fc: d=(a-32)*5/9; return (d);
fr: d=(a-32)*4/9; return (d);
rc: d=a*5/4; return (d);
rf: d=a*9/4+32; return (d);
}

main()
{
float a; char b,c,e;
menu1:
printf(“Konversi suhu\n”);
printf(“Masukkan suhu=”);
scanf(“%g”,&a);
printf(“Masukkan suhu sumber dan tujuan tanpa spasi<contoh cf>=”);
scanf(“%c%c%c”,&b,&b,&c);

if (b==c)
{
printf(“Format suhu salah, silahkan coba lagi”);
getch(); system(“cls”);goto menu1;
}

if ((b==’c’||b==’f’||b==’r’)&&(c==’c’||c==’f’||c==’r’))
{
printf(“Hasil konversi=%g\n”, suhu(a,b,c));
printf(“Tekan <y> untuk mengulang\n”);
e=getche();
while(e==’y’)
{
system(“cls”); goto menu1;
}
}
}

 

kemudian Build dan Run, jika programnya benar maka akan tampil seperti yang dibawah ini;

  • Facebook
  • Twitter
  • Google+
  • Pinterest

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

TUGAS 6.5.5

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

jawab

Membuat programnya seperti ini

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 bilangan : “);
scanf(“%d”, &n);
if(prima(n))
printf(“Bilangan %d termasuk bilangan prima”, n);
else
printf(“Bilangan %d bukan termasuk bilangan prima”, n);
getch();
}

 

kemudian Build dan Run, jika programnya benar maka akan tampil seperti yang dibawah ini;

  • Facebook
  • Twitter
  • Google+
  • Pinterest

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

TUGAS 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

Membuat programnya seperti 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”);
}

 

kemudian Build dan Run, jika programnya benar maka akan tampil seperti yang dibawah ini;

  • Facebook
  • Twitter
  • Google+
  • Pinterest

  • Facebook
  • Twitter
  • Google+
  • Pinterest

 

Dari penjelasan percobaan atau tugas diatas dapat ditarik kesimpulan bahwa; suatu fungsi dalam bahasa C merupakan bagian program yang terpisah dari fungsi program utamanya dan berdiri sendiri untuk mengerjakan  suatu proses tertentu. dan fungsi ini  dapat dikembangkan sendiri sesuai keinginan.

 

Nah, sekian dari saya, apa bila ada salah penulisan di paragraf saya mohon maaf yang sebesar- besarnya, akhir kata

 

wassalamualaikum wr. wb.