Showing posts with label Bahasa C. Show all posts
Showing posts with label Bahasa C. Show all posts

Wednesday, October 2, 2013

Seri Bahasa C :"Fungsi" dan Menampilkan Hasil Compile Pada Web Server

'Fungsi' dapat memecah sebuah komputasi yang besar menjadi lebih kecil, dan memungkinkan bagi pengembang untuk membangun apa yang telah dikerjakan pengembang lain tanpa memulai dari awal.

Mendefinisikan fungsi tipe_fungsi nama_fungsi(argumen1, argumen2,…)

program dibentuk ke dalam fungsi agar tidak terbentuk blok-blok program yang sangat panjang dan tidak terbaca, karena tidak bisa tertampung dalam satu screen (layar) atau dalam 1 page (halaman) dan juga untuk memastikan bahwa kita tidak telah mengulangi potongan source code yang sama pada bagian program yang lain.

Berikut Beberapa contoh Penggunaan Fungsi 

Fungsi yang mengembalikan nilai
#include

int mult(int x,int y);

int main()
{ int x,y;

printf("masukkan dua bilangan untuk dikalikan :");
scanf("%d", &x);
scanf("%d", &y);

printf("hasil perkalian dari bilangan tsb adalah :%d\n",mult(x,y));
getchar();
}

int mult (int x, int y)
{
return x*y;
}

output program 
cinnamon FUNCTION # ./function3
masukkan dua bilangan untuk dikalikan :2 10
hasil perkalian dari bilangan tsb adalah :20

Hasil kompilasi yang dijalankan pada Web Server [cgi-bin]


/*****************************************************
compile dan copy-kan hasil compilasi ke cgi-bin 
/usr/lib/cgi-bin
buka di browser http://localhost/cgi-bin/function1?5:5
atau eksekusi di terminal : # ./function1 ?5:5
****************************************************/
#include <stdio.h>
#include <string.h>
#include <math.h>

double doit(int number1, int number2)/*mendefinisikan fungsi*/

{
    return sqrt((double)(number1+number2));
}

int main(int argc,char*argv[],char*env[])
{
    int n1=0, n2=0, i=0;
    n1 = atoi((char*)strtok(argv[1],":"));
    n2 = atoi((char*)strtok(NULL,":"));

    printf ("Content-type:text/html\n\n<html><body>\n");

    for(i=1;i<=100;i++)
    printf("%f",doit(n1+i,n2*i));

    printf("</body></html>\n");

    return 0;
}


Pada contoh di atas fungsi yang dipanggil adalah fungsi doit yang menggunakan dua argumen integer dan mengembalikan hasil dari beberapa perhitungan matematika.

compile dan copy hasil kompile pada directory cgi-bin. selanjutnya pada browser buka http://localhost/cgi-bin/function1?5:5 .


atau dapat juga di buka pada terminal : ./function1 ?5:5


coba tampilkan hasil compile tanpa ?5:5 bagaimana hasilnya??




referensi
The C programming Language, Dennis M. Ritchie (Pencipta bahasa C)
C programming in Linux, David Haskins


Thursday, September 19, 2013

Seri Bahasa C : Variabel dan Ekspresi Aritmatika...(2)

Contoh kasus : membuat daftar/tabel suhu fahrenheit dan celsius, dengan rumus konversi suhu
celsius =(5/9)(fahrenheit - 32)
#include <stdio.h>

main()
{
int fahr, celsius;
int lower, upper, step;

lower = 0;
upper = 300;
step = 20;

fahr = lower ;

while (fahr <= upper) {
    celsius = 5*(fahr-32)/9;
    printf ("%d \t %d \n",fahr, celsius);
    fahr = fahr + step;


      }

}
Kompilasi dan Hasil Running

pada bahasa C, semua variabel harus dideklarasikan sebelum digunakan, biasanya pada awal fungsi sebelum ada statemen yang dieksekusi. Deklarasi variabel memberikan sifat dan daftar variabel, contoh

int fahr, celsius;
int lower, upper, step;
Pada contoh program di atas dapat dilihat bagaimana perintah printf bekerja. Jika yang akan dicetak pertama kali adalah karakter string, tanda % mengindikasikan ada argumen lain yang akan disubstitusi. Misalnya %d menunjukkan tipe integer sehingga statemen

printf("%d\t%d\n", fahr, celsius);

menyebabkan nilai dua buah integer fahr dan celsius tercetak dengan sebuah tab (\t) diantaranya

Sunday, January 6, 2013

seri Bahasa C : Compile bahasa C dengan GCC ...(1)


Menulis dan meng-compile bahasa C pada sistem operasi Linux tidak persis sama ketika menggunakan IDE yang berjalan pada windows, misalnya dengan borland dll.

berikut ini gambaran sedikit perbedaan tersebut. Saya membuat program sederhana untuk menghitung nilai sin.

#include <stdio.h>
#include <math.h>

main () {
float degree, rad, sinus;

printf ("sinus dari : ");
   scanf ("%f",&degree);

   rad = 0.01745*degree;
   sinus = sin(rad);

printf ("adalah = %.2f \n",sinus); }

Dari sisi bahasa tidak ada perbedaan, masalah sering timbul ketika melakukan kompilasi dengan GCC (Gnu C Compiler). Cara yang dilakukan untuk meng-compile dengan GCC adalah :

gcc -o program program.c

program sederhana diatas menggunakan library math (file header math.h), maka ketika meng-compile dengan cara biasa maka akan ada kesalahan

 $ gcc -o sinus sinus.c
/tmp/ccSm1bxV.o: In function `main':
sinus.c:(.text+0x43): undefined reference to `sin'
collect2: ld returned 1 exit status

ini terjadi karena library math belum terhubung, untuk menghubungkannya maka tambahkan opsi -lm pada bagian ahir :

$ gcc -o sinus sinus.c -lm



sumber Gambar : http://www.fsf.org/blogs/community/happy-birthday-gcc