My Little Daemon™

Simple, C ProgrammingAugust 14, 2007 4:14 pm

Masih berkaitan dengan oeprasi aritmatika, C menyediakan operator yang disebut sebagai operator penaikan (increment) dan operator penurunan (decrement). Operator increment digunakan untuk menaikkan nilai variabel sebesar satu sedangkan operator decrement sebaliknya. Selengkapnya tertera dalam tabel berikut ini :

Contoh Operasi Hasil
++a Pre-increment Nilai a ditambah satu, kemudian operasi dilaksanakan
a++ Post-increment Operasi dilaksanakan, kemudian nilai a ditambah satu
- -a Pre-decrement Nilai a dikurangi satu, kemudian operasi dilaksanakan
a- - Post-decrement Operasi dilaksanakan, kemudian nilai a dikurangi satu

Catatan : operasi a++ setara dengan a=a+1 begitu pula untuk a–.

File increment1.c

#include <stdio.h>

main(){
int i;
i=1;

while (i<=10){
printf("%d\n",i++);
}
}

$ gcc -o increment1 increment1.c
$ ./increment1
1
2
3
4
5
6
7
8
9
10
$

File increment2.c

#include <stdio.h>

main(){
int i;
i=1;

while (i<=10){
printf("%d\n",++i);
}
}

$ gcc -o increment2 increment2.c
$ ./increment2
2
3
4
5
6
7
8
9
10
11
$

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, C Programming 4:12 pm

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah :

  1. * perkalian,
  2. / pembagian,
  3. % sisa pembagian,
  4. + penjumlahan,
  5. - pengurangan.

Adapun operator aritmatika yang termasuk sebagai operator unary adalah :

  1. + tanda plus,
  2. - tanda minus.

Contoh berikut merupakan contoh pemakaian operator aritmatika untuk memperoleh nilai deskriminan dari suatu persamaan kuadrat :

File deskriminan.c

#include <stdio.h>

main(){
float a,b,c,d;
a=3;
b=4;
c=7;

d=b*b-4*a*c;
printf(”%f\n”,d);
}

$ gcc -o deskriminan deskriminan.c
$ ./deskriminan
-68.000000
$

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa
Simple, C Programming 4:10 pm

Operator merupakan simbol atau karakter yang dilibatkan dalam program untuk melakukan suatu operasi atau manipulasi, seperti menjumlahkan dua buah nilai, memberikan nilai ke suatu variabel atau membandingkan dua buah nilai.

Sebagian besar operator merupakan operator binary, yaitu operator yang dikenakan terhadap dua buah nilai (operand). Misalnya :

a + b

Simbol + adalah operator untuk melakukan operasi penjumlahan dari kedua operand-nya (a dan b).

Contoh lain :

-c

Simbol - (minus) merupakan operator dan disebut sebagai operator unary karena hanya bekerja pada satu operand (dalam hal ini c). pada operasi berikut :

a=3;

= adalah operator binary karena beroperasi pada dua operand (a dan 3). Seperti telah kita ketahui, simbol = adalah operator pemberian nilai (assignment operator).

Dalam bahasa C juga dikenal operator trinary?:” yang memiliki bentuk :

(exp1) ? (exp2) : (exp3);

Pernyataan di atas akan bernilai ekspresi exp2 jika exp1 bernilai benar dan akan bernilai exp3 jika exp1 bernilai salah. 

File operator.c

#include <stdio.h>

main()
{
     int a,b,c,d;
     char *x;
     a = 3;
     b = 2;
     c = a + b;
     d = - c;
     x = (d<0) ? ("lebih kecil dari nol") : ("lebih besar atau sama dengan
     nol");
     printf("%d %s\n", d,x);
}
$ gcc -o operator operator.c
$ ./operator
-5 lebih kecil dari nol
$

tanda * di depan variabel tipe karakter pada deklarasi di atas merupakan referensi ke pointer. Perihal pointer akan dibahas kemudian.

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, C Programming 4:08 pm

Konstanta simbolik menyatakan suatu nilai yang konstan di seluruh bagian program. Bentuk umumnya :

#define nama teks_pengganti

nama (tidak boleh dalam tanda petik dan bukan merupakan bagian dari nama yang lain) akan digantikan dengan teks_pengganti yang bersesuaian. Penamaan nama memiliki bentuk yang sama dengan penamaan suatu variabel : urutan huruf dan angka namun harus diawali dengan huruf tidak boleh angka. Sedangkan teks_pengganti bisa merupakan sembarang urutan karakter.

Untuk lebih jelasnya perhatikan contoh berikut :

File fahrenheit.c

#include <stdio.h>

#define LOWER 0
#define UPPER 300
#define STEP 10

main()
{
        int fahr;

        for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
        printf(�?%3d %6.1f\n�?, fahr, (5.0/9.0)*(fahr-32));
}

$ gcc -o fahrenheit fahrenheit.c
$ ./fahrenheit
0 -17.8
10 -12.2
20 -6.7
30 -1.1
40 4.4
50 10.0
60 15.6
70 21.1
80 26.7
90 32.2
100 37.8
110 43.3
120 48.9
130 54.4
140 60.0
150 65.6
160 71.1
170 76.7
180 82.2
190 87.8
200 93.3
210 98.9
220 104.4
230 110.0
240 115.6
250 121.1
260 126.7
270 132.2
280 137.8
290 143.3
300 148.9

Kuantitas LOWER, UPPER dan STEP adalah konstanta simbolik dan bukan variabel sehingga tidak muncul di bagian deklarasi. Nama dari suatu konstanta simbolik biasanya ditulis dengan kapital/huruf besar. Hal ini dimaksudkan untuk membedakannya dengan nama suatu variabel yang secara konvensional ditulis dengan huruf kecil/lower case. Perhatikan bahwa pada baris #define tidak diakhiri dengan tanda titik koma.

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, C Programming 4:05 pm

Perbedaaan dalam alokasi memori dan jangkauan nilai antara tipe floating-point dan double sudah kita sebutkan. Perbedaan lainnya adalah pada ketelitian. Untuk melihatnya perhatikan contoh berikut :

File bedafloatdouble.c

#include main(){
    float x;
    double y;
    x=56.0123456789123456789;
    y=56.0123456789123456789;

    printf(”x = %20.16f\n”, x);
    printf(”y = %20.16f\n”, y);
}

$ gcc -o bedafloatdouble bedafloatdouble.c
$ ./bedafloatdouble
x =  56.0123443603515625
y =  56.0123456789123466
$

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, C Programming 4:03 pm

Untuk memberikan nilai ke suatu variabel yang telah dideklarasikan adalah dengan pernyataan berikut :

variabel = nilai;

=” dikenal sebagai operator pemberian nilai (assignment operator). Perihal operator akan dibahas kemudian.

Adakalanya dalam penulisan program, setelah dideklarasikan suatu variabel langsung diberi nilai awal.

File inisial.c

#include <stdio.h>

main(){
    int x=1;
    x=x+1;
    printf(”%d\n”,x);
}
 
Dedicated for Light Intermutimedia
Perusahaan Software Pulsa
Middle, C Programming 3:58 pm

Fungsi printf() mempunyai kegunaan yang luas dalam C. Fungsi ini sering dipakai untuk menampilkan string ataupun berbagai jenis data lainnya. Dengan menggunakan fungsi ini maka tampilan dapat diformat dengan mudah.

Pada contoh berikut, printf() dituliskan dalam satu baris :

printf(”Selamat berkenalan dengan bahasa C”);

Pernyataan di atas dapat ditulis menjadi dua pernyataan berikut :

printf(”Selamat berkenalan”);
printf(” dengan bahasa C”);

Keduanya menghasilkan keluaran :

Selamat berkenalan dengan bahasa C 

Bagaimana halnya bila diinginkan keluran berupa :

Selamat berkenalan
dengan bahasa C

dengan dua pernyataan string yang ditempatkan pada dua baris yang berbeda. Untuk keperluan ini kita perlu menyertakan karakter yang dinamakan sebagai karakter “baris baru“ (new_line character) yaitu \n dibagian akhir string yang pertama “Selamat berkenalan“, sehingga menjadi :

printf(”Selamat berkenalan\n dengan bahasa C”);

Tanda \ pada string yang dilewatkan sebagai argumen fungsi printf() mempunyai makna khusus. Tanda ini dapat digunakan untuk menyatakan karakter khusus seperti :

  • \’ menyatakan petik tunggal, 
  • \” menyatakan karakter petik ganda,
  • \\ menyatakan karakter backslash,
  • \t menyatakan karakter tab,
  • \n menyatakan baris baru,
  • \b menyatakan backspace,
  • \r menyatakan carriage return,
  • \f menyatakan formfeed,
  • \xdd menyatakan sandi ASCII dalam notasi heksadesimal (tiap d mewakili satu angka),
  • \ddd menyatakan sansi ASCII dalam notasi oktal (tiap d mewakili satu angka).

Dalam bentuk yang lebih umum format printf() adalah

printf(”string_kontrol”, daftar_argumen);

dimana string_kontrol dapat berupa satu atau sejumlah karakter yang akan ditampilkan ataupun berupa penentu format yang akan mengatur penampilan dari argumen yang terletak pada daftar_argumen.

Mengenai penentu format diantaranya berupa :

  • %d untuk menampilkan bilangan bulat/integer,
  • %u untuk integer tak bertanda,
  • %x untuk integer heksadesimal tak bertanda,
  • %o untuk integer oktal tak bertanda,
  • l untuk awalan yang dipakai dengan %d, %u, %x, %o untuk menyatakan long integer (misalnya %ld),
  • %f untuk menampilkan bilangan pecahan/floating-point (notasi desimal),
  • %e untuk menampilkan bilangan pecahan/floating-point  (notasi eksponensial),
  • %g untuk floating-point (yang terpendek diantara %f dan %e),
  • %c untuk menampilkan karakter,
  • %s untuk menampilkan string,

Untuk lebih jelasnya perhatikan contoh berikut :

File lanjutprintf.c

#include <stdio.h>
main(){
            printf(”Nama  : %s\n”, “Handaru”);
            printf(”NIM     : %d\n”, 23);
            printf(”Nilai     : %f Dalam huruf : %c\n”, 70.5, ‘B’);
}

yang bila di-compile akan mengeluarkan output :

$ gcc -o lanjutprintf lanjutprintf.c
$ lanjutprintf
Nama  : Handaru
NIM     : 23
Nilai     : 70.500000 Dalam huruf : B

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, C Programming 3:55 pm

#include merupakan salah satu jenis pengarah program atau biasa disebut sebagai prepocessor.  Karena menggunakan kata include maka prepocessor ini disebut pula sebagai inclusion file. Prepocessor ini digunakan oleh compiler untuk membaca file header yang merupakan file yang diantaranya berisi deklarasi fungsi dan definisi konstanta.

Adapun bentuk umum penulisannya adalah sebagai berikuit :

#include <nama_file>

atau

#include “nama_file”

Bentuk pertama mengisyaratkan bahwa pencarian file header dilakukan pada direktori khusus (/usr/include). Sedangkan bentuk yang kedua menyatakan bahwa pencarian file header dilakukan pertama kali pada direktori aktif tempat program sumber dan seandainya tidak ditemukan maka pencarian akan dilanjutkan pada direktori lainnya sesuai dengan PATH.

Kebanyakan program melibatkan file stdio.h. File ini merupakan file header untuk program yang membutuhkan standar I/O seperti printf(), getc(), getchar() dan putchar().

Programmer dapat membuat sendiri file header yang berisi fungsi tertentu buatan sendiri. Pada contoh berikut akan dibuat file handaru.h yang mendefiniskan fungsi-fungsi umum yang biasanya terdapat pada compiler C.

File handaru.h

#define utama() main()
#define mulai {
#define selesai }
#define tulis printf

Dengan adanya file header handaru.h ini maka File hello.c dapat ditulis ulang menjadi :

File hello_baru.c

#include <stdio.h>
#include “handaru.h”

utama()
mulai
    tulis(”Hello, world\n”);
selesai

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, C Programming 3:53 pm

Untuk keperluan dokumentasi, biasanya di program disertakan komentar. Komentar adalah keterangan mengenai baris-baris perintah di program yang tertulis/ada namun tidak dieksekusi pada waktu proses kompilasi. Dalam C komentar ditulis dengan awalan /* dan diakhiri dengan */.

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, C Programming 3:51 pm

Salah satu konsep yang paling penting dalam bahasa pemrograman adalah struktur. Struktur merupakan bentuk susunan dari suatu program yang dibuat. Perhatikan struktur paling dasar dari suatu program C berikut :

File dasar.c

main()            /*nama dari suatu fungsi*/
{                   /*awal blok dari suatu fungsi*/
                     /*blok atau tubuh  dari suatu fungsi*/
}                   /*akhir blok dari suatu fungsi*/

main adalah nama dari suatu fungsi yang harus selalu ada dalam program C. Keberadaan main menunjukkan dimana awal dari suatu program kepada compiler C. Selain itu main hanya dapat digunakan sekali dalam satu program. Program C yang tidak mengandung fungsi main tidak dapat diproses oleh compiler.

Karena itu di C dikenal istilah “everything is function“. Setiap program C berapapun ukurannya, selalu mengandung paling tidak 1 (satu) fungsi. Jadi struktur paling dasar dari C adalah berupa fungsi.

File dasar.c di atas jika di-compile tidak akan memunculkan pesan kesalahan. Hal ini dikarenakan memang secara struktur bahasa C tidak ada kesalahan dan tidak ada kekurangan. Namun tentu saja tidak mengeluarkan output apapun karena blok fungsinya tidak mengerjakan tugas apapun.

main biasanya akan memanggil fungsi lain yang akan membantu pekerjaannya. Beberapa dibuat oleh pembuat program dan ada pula yang diambil dari library.

Metode komunikasi data diantara fungsi-fungsi adalah melalui pemanggilan fungsi dengan pemeberian daftar nilai yang disebut sebagai argumen. Pada contoh di atas, main didefinisikan sebagai fungsi tanpa argumen yang diindikasikan dengan daftar kosong ().

Tanda kurung kurawal buka “{” menunjukkan tanda awal dari baris-baris perintah (blok fungsi) yang akan dituliskan. Sedangkan tanda kurung kurawal tutup “}” merupakan akhir blok fungsi. Suatu program C dapat terdiri lebih dari satu blok fungsi. Dalam satu fungsi dapat dibuat satu atau lebih statement atau libraray function (fungsi pustaka) yang sudah tersedia.

Jika program terdiri lebih dari satu fungsi maka fungsi main biasa ditempatkan pada posisi paling atas dalam pendefinisian fungsi. Hal ini hanya merupakan kebiasaan. Tujuannya adalah untuk memudahkan pencarian terhadap program utama dan bukan merupakan keharusan.

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa