MENGEMBANGKAN FUNGSI-FUNGSI
By Febriansyah Gunvananda Putra 1 – D4 ELKA B
Di artikel ketuju ini, saya akan membahas tentang cara mengembangkan fungsi-fungsi buatan. 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, sehingga program menjadi sangat panjang.
Pada percobaan-percobaan di atas telah digunakan fungsi-fungsi dari C, seperti printf(), clrscr(), scanf(), gets(), puts(), for(), dan sebagainya, maka di sini dicoba untuk membuat fungsi baru di mana tidak ada dalam pustaka bahasa C. secara aturan fungsi baru dibuat setelah fungsi main() dibuat, sehingga penempatan fungsi adalah di bawah fungsi main(), tetapi ada kalanya dapat diletakkan di atas fungsi main(), seperti fungsi-fungsi yang ada dalam #include. Bila fungsi diletakkan di atas fungsi main() maka tidak diperlukan deklarasi fungsi lagi.
Di artikel ini, saya akan menunjukkan tugas hasil praktikum mata kuliah Algoritma dan Pemrograman bahasa C yang terdiri dari 6 percobaan.
1.Membuat fungsi kabisat() yang akan memberikan nilai balik 1 jika tahun adalah kabisat dan 0
Programnya :
#include <stdio.h>
int kabisat (int x){
if(x % 4 == 0){
printf(“Merupakan tahun kabisat\n”);
printf(“Nilai balik = “);
return 1;
}
else{
printf(“Merupakan bukan tahun kabisat\n”);
printf(“Nilai balik = “);
return 0;
}
}
main (){
int x;
printf(“Masukkan tahun : “);
scanf(“%d”, &x);
printf(“%d\n”, kabisat(x));
}
2.Membuat fungsi factorial() untuk menghitung nilai factorial, fungsi factorial memberikan nilai balik bertipe long int yang akan dicetak ke layar dalam fungsi main().
Programnya :
#include <stdio.h>
int bilangan;
int faktorial (int bilangan){
int hasil = 1, i;
for(i=1;i<=bilangan;i++){
printf(“%d”, i);
if(i!=bilangan){
printf(“*”);
}
hasil *= i;
}
return (hasil);
}
int main (){
printf(“Masukkan bilangan : “);
scanf(“%d”, &bilangan);
printf(“\n %d! = “, bilangan);
printf(” = %d”, faktorial(bilangan));
}
3.Membuat suatu fungsi permutasi() dan kombinasi() untuk menghitung permuasi dan kombinasi dari suatu pasangan bilangan, yang dinyatakan dengan formula:
Permutasi : P(n,r) = n!
(n – r)!
Kombinasi : C(n,r) = n!
r!(n – r)!
Programnya :
#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(“\nPermutasi (%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));
}
4.Membuat fungsi float suhu (s,d), untuk mengkonversikan suhu dari Celcius ke Farenheit, Celcius ke Reamur, Farenheit ke Celcius, Farenheit ke Reamur, Reamur ke Celcius, Reamur ke Farenheit. Di mana s adalah suhu sumber, d adalah suhu konversi, dan suhu() adalah hasil konversi suhu.
Programnya :
#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 (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 (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);
}
}
return hasil;
}
5.Membuat fungsi prima(), yang memberikan nilai balik 1 jika bilangan yang dimasukkan adalah prima, dan 0 jika bukan bilangan prima.
Programnya :
#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(“%d adalah bilangan prima”, n);
}
else{
printf(“%d adalah bukan bilangan prima”, n);
}
}
6.Membuat program menggunakan dua variable, satu bertipe register dan lainnya bertipe integer, kemudian membuat dua perulangan menggunakan statement for(), untuk membandingkan waktu yang diperlukan untuk masing0masing tipe Menggunakan fungsi gettime() untuk menghitung waktu yang diperlukan oleh masing-masing perulangan.
Programnya :
#include <stdio.h>
#include <time.h>
int main (){
int x = 0;
clock_t t;
mulai :
t = clock();
if(x==0){
int waktu();
}
else{
register waktu();
}
t = clock() – t;
double waktu yang dibutuhkan = ((double)t) / CLOCK_PER_SEC;
if(x == 0){
printf(“integer membutuhkan %g detik untuk eksekusi\n”, waktu yang dibutuhkan);
}
else{
printf(“register %g detik untuk eksekusi\n”, waktu yang dibutuhkan);
}
if(x==0){
x++;
goto mulai;
}
getch();
}
void register waktu (){
register z;
for(z=1;z<=2000;z++){
printf(“a”);
}
}
void integerwaktu (){
int c;
for(c=1;c<=2000;c++){
printf(“a”);
}
}
OK Teman-teman cukup sekian artikel saya tentang cara mengembangkan fungsi buatan sendiri. Sampai bertemu kembali dengan artikel saya selanjutnya. See You Again.
Recent Comments