Professional Documents
Culture Documents
Bahasa C selain dapat dijalankan pada sistem operasi Windows juga dapat
dijalankan pada sistem operasi Linux. Baris program yang kita buat pada sebuah text
editor belum bisa dijalankan sebelum dieksekusi. Oleh karena itu program yang telah kita
buat harus kita eksekusi terlabih dahulu. Berikut adalah cara mengeksekusi program yang
ditulis manggunakan bahasa C pada sistem operasi Linux :
gcc programku.c
gcc [option] program programku.c
GCC merupakan singkatan dari GNU C Compiler, yaitu kompiler yang digunakan
untuk mengkompilasi program yang ditulis dalam bahasa C. Jika kita mengkompilasi
program dengan perintah yang pertama tanpa disertai option maka hasil eksekusi
program kita secara otomatis akan memiliki nama file a.out. File ini dapat dijalankan
dengan menggunakan perintah ./a.out. Tetapi jika kita menggunakan option yang
disediakan oleh kompiler tersebut maka kita dapat mengatur hasil keluaran dari eksekusi
program tersebut.
STRUKTUR BAHASA C
1. Fungsi main()
Fungsi main () adalah fungsi yang menjadi inti dati program dan
merupakan awal dan akhir dari eksekusi program. Fungsi main() harus ada
dalam setiap program.
Berikut adalah contoh deklarasi fungsio main :
main ()
{
}
2. {}
Tanda kurung kurawal buka dan kurung kurawal tutup {} merupakan
bagian yang berisi perintah-perintah yang akan dijalankan oleh bagian fungsi.
Tanda “{” yang diletakkan dibawah nama fungsi main menunjukkan tanda awal
dari perintah-perintah yang akan dieksekusi atau biasa disebut dengan awal dari
fungtion body. Sedangkan tanda “}” merupakan akhir dari fungtion body. Tanda
{} ini akan sering kita pergunakan dalam program.
3. Komentar
main();
if(a==100);
for(i=1;i<=100;i++);
5. Variabel
Bila kita mempunyai beberapa variabel yang memiliki tipe data sama,
variabel dipisahkan dengan tanda koma “,” dan diakhiri dengan tanda titik koma
“;”. Perhatikan contoh berikut ini :
Int nilai1,nilai2,nilai3;
float ipk1,ipk2,ipk3;
char nama1[20],nama2[25],nama3[30];
Jika kita ingin memberikan nilai lain ke variabel yang telah diberi nilai.
Misalnya seperti berikut:
int nilai=0;
Atau
int nilai;
nilai=0;
Nilai yang terakhir dimasukkan akan menjadi nilai akhir dari variabel
nilai tersebut. Seperti contoh :
int nilai;
nilai=0;
nilai=1;
nilai=2;
8. Konstanta
int phi=3.14;
9. Escape Sequence
OPERASI INPUT/OUTPUT
10.printf
Fungsi printf digunakan untuk menampilkan suatu keluaran pada
layar. Perhatikan penggunaan printf berikut ini :
#include<stdio.h>
main()
{
int nilai=3;
printf(“Bahasa C menyenangkan \n”);
printf(“nilai = %d \n”,nilai);
}
Bahasa C menyenangkan
nilai = 3
11.puts
Cara lain untuk menampilkan suatu keluaran ke layar adalah
menggunakan fungsi puts. Tetapi fungsi puts hanya digunakan untuk
menampilkan nilai string dan sudah mengandung line feed atau escape sequence
ganti baris. Perhatikan contoh berikut :
#include<stdio.h>
main()
{
puts(“Bahasa C menyenangkan ”);
puts(“Belajar bahasa C “);
}
Kini tidak perlu lagi mengguanakan “\n” untuk ganti baris baru. Tampilan
program :
Bahasa C menyenangkan
Belajar bahasa C
12.putchar
Fungsi ini digunakan untuk menampilkan sebuah karakter saja dan tidak
mengandung escape sequence “\n”. perhatikan contoh berikut :
#include<stdio.h>
main()
{
Char a;
printf(“a = ”);scanf(“%c”,&a);
printf(“Data yang anda masukkan ”);
putchar(‘\n’);
putchar(a);
}
Pada putchar yang petama kita ingin membuat program untuk ganti
baris menggunakan “\n”. kita menggunakan tanda petik tunggal (‘) karena
karakter dalam program akan dikenal jika diberi tanda petik tunggal. Fungsi
putchar ini hanya bisa menampilkan satu buah karakter saja sehingga apapun
nilai yang kita masukkan hanya karakter pertama yang akan ditampilkan.
a = 12
Data yang anda masukkan
1
13.scanf
Jika kita ingin memasukkan data dari keyboard, kita dapat menggunakan
fungsi scanf ini. Data selanjutnya akan didefenisikan sebagai data variabel. Jika
fungsi scanf ini digunakan untuk membaca data dengan tipe array, karakter
yang selanjutnya kita sebut dengan istilah string, maka fungsi ini hanya akan
membaca data sampai ditemukan blank. Dengan demikian nilai setelah blank
dianggap bukan lagi nilai dari variabel yang akan mengisi variabel tersebut.
Fungsi scanf lebih cocok digunakan untuk data-data numerik.
Fungi scanf jika digunakan maka harus disertai operator penanda alamat
& didepan nama variabel yang digunakan untuk menyimpan data tersebut. Jika
tidak mempergunakan operator alamat & ini maka ketika data diinputkan akan
muncul pesan error Segmentation fault. Sedangkan untuk data string
tidak perlu menggunakan operator ini. Tetapi jika digunakan tidak menjadi
masalah. Fungsi scanf biasanya digunakan bersama-sama dengan fungsi
printf. Perhatikan contoh berikut :
#include<stdio.h>
main()
{
char a[25];
int b;
printf(“a = ”);scanf(“%s”,a);
printf(“b = ”);scanf(“%d”,&b);
a = naufal
b = 12
Data yang anda masukkan
a = naufal
b = 12
14.gets
Jika kita menggunakan fungsi scanf untuk membaca data yang bertipe
string, maka data tersebut hanya akan dibaca sampai ditemukan spasi. Misalnya
nama “naufal rasendriya” hanya kata “naufal” yang akan dibaca oleh program,
sedangkan kata “resendriya” tidak terbaca karena sebelum kata tersebut program
telah menemukan spasi yang mengakibatkan data ke varibel yang menyimpan
nama dianggap selesai.
#include<stdio.h>
main()
{
char nama[25];
char alamat[50];
printf(“Nama : ”);gets(nama);
printf(“Alamat : ”);gets(alamat);
printf(“\n”);
printf(“Data yang anda masukkan \n”);
printf(“Nama : %s \n”,nama);
printf(“Alamat : %s \n”,alamat);
}
Tampilan program :
15.getchar
#include<stdio.h>
main()
{
Char nilai;
printf(“Nilai anda : ”);
nilai=getchar();
printf(“Nilai yang anda masukkan = %c \n”,nilai );
}
Berikut tampilannya :
Nilai anda : A
Nilai yang anda masukkan = A
OPERATOR ARITMATIKA
Operator merupakan simbol khusus yang merepresentasikan perhitungan
sederhana seperti penambahan dan perkalian. Nilai yang digunakan oleh operator sebagai
operand. Ekspresi merupakan kombinasi dari operator dan operand-nya. Dalam sebuah
eksekusi program, suatu ekspresi akan dievaluasi sehingga menghasilkan suatu nilai
tunggal. Didalam bahasa pemrograman C ada beberapa tipe operator seperti operator
penunjukan, aritmatika, relasional, logika dan pernyataan. Pada bagian ini kita akan
membahas tentang operator aritmatika.
Dalam C dan bahasa pemrograman lainnya dikenal standar aritmatika yang
merupakan simbol-simbol matematika.
16. +
Dalam bahasa C, operasi penambahan menggunakan simbol plus (+). Operasi
ini sama dengan operasi matematika. Contoh pemakaiannya dalam program :
#include<stdio.h>
main()
{
int a,b,c;
printf(“a = ”);
scanf(“%d”,&a);
printf(“b = ”);
scanf(“%d”,&b);
c=a+b;
printf(“%d + %d = %d \n”,a,b,c);
}
Tampilan program:
a = 6
b = 4
6 + 4 = 10
17. –
Dalam bahasa C, operasi pengurangan menggunakan simbol minus (-).
Contoh pemakainnya dalam program :
#include<stdio.h>
main()
{
int a,b,c;
printf(“a = ”);
scanf(“%d”,&a);
printf(“b = ”);
scanf(“%d”,&b);
c=a-b;
printf(“%d - %d = %d \n”,a,b,c);
}
Tampilan program:
a = 6
b = 4
6 - 4 = 2
18. *
Operasi perkalian dalam bahasa C menggunakan tanda asterik (*). Contoh
pemakaian dalam program :
#include<stdio.h>
main()
{
int a,b,c;
printf(“a = ”);
scanf(“%d”,&a);
printf(“b = ”);
scanf(“%d”,&b);
c=a*b;
printf(“%d * %d = %d \n”,a,b,c);
}
Tampilan program:
a = 6
b = 4
6 * 4 = 24
19. /
Operasi pembagian menggunakan simbol /, dapat digunakan baik unutk data
bertipe integer maupun float. Contoh program :
#include<stdio.h>
main()
{
int a,b,c;
printf(“a = ”);
scanf(“%d”,&a);
printf(“b = ”);
scanf(“%d”,&b);
c=a/b;
printf(“%d / %d = %d \n”,a,b,c);
}
Tampilan program:
a = 6
b = 4
6 / 4 = 1.50
20. %
Sisa hasil bagi atau modulus menggunakan simbol persen % hanya dapat
digunakan untuk tipe integer. Perhatikan contoh operasi modulus berikut ini :
7%3=1
#include<stdio.h>
main()
{
int a,b,c;
printf(“a = ”);
scanf(“%d”,&a);
printf(“b = ”);
scanf(“%d”,&b);
c=a%b;
printf(“%d mod %d = %d \n”,a,b,c);
}
Tampilan program:
a = 7
b = 6
7 mod 6 = 1
Operasi aritmatika juga menggunakan aturan umum yang dipakai dalam bahasa
matematika. Misalnya operasi perkalian dan pembagian akan dikerjakan lebih dulu.
Tanda kurung juga berpengaruh pada operasi aritmatika.
OPERATOR PENINGKATAN, PENURUNAN, DAN
GABUNGAN
21. ++
Dalam bahasa C kita mengenal operator peningkatan (increment operator)
yang menggunakan tanda plus ganda (++). Operator ini berfungsi menambahkan nilai
1 pada nilai sebelumnya. Proses penambahan nilai tergantung dari posisi tanda ++
tersebut. Perhatikan contoh program berikut ini :
#include<stdio.h>
main()
{
int a,b=10;
a= 10 + b++;
printf(“a = %d, b = %d\n”,a,b);
}
Nilai a dan b diberi nilai 10. Dalam hal ini a akan berisi nilai 10 ditambah
nilai b terlebih dahulu sebelum ditambah dengan 1. Setelah itu b ditambah dengan
1. b++ berarti lakukan proses kemudian naikkan. Dengan demikian hasil dari
program di atas adalah a = 20, b = 11.
Bandingkan dengan program berikut ini :
#include<stdio.h>
main()
{
int a,b=10;
a= 10 + ++b;
printf(“a = %d, b = %d\n”,a,b);
}
Nilai a dan b diberi nilai 10. nilai b akan ditambah dengan nilai 1 terlebih
dahulu kemudian baru ditambahkan ke nilai 10 dan hasilnya disimpan di variabel a.
++b berarti menaikkan nilai b kemudian lakukan proses. Hasil dari program diatas
adalah a = 21, b = 11.
Operator peningkatan sering dipakai dalam struktur perulangan for, seperti
tampak pada contoh berkut ini :
#include<stdio.h>
main()
{
int i;
for (i=1;i<=5;i++);
printf(“%d \n”,i);
}
Tampilan programnya sebagai berikut :
1
2
3
4
5
22. - -
Operator penurunan (decremen operator) yang menggunakan tanda minus
ganda - - berfungsi untuk mengurangkan nilai 1 dari nilai sebelumnya. Proses yang
dilakukan oleh operator ini sama dengan operator ++, hanya saja operator ini akan
mengurangi nilai. Perhatikan contoh berikut ini :
#include<stdio.h>
main()
{
int a,b=10;
a= 10 + b--;
printf(“a = %d, b = %d\n”,a,b);
}
Mula-mula a dan b diberi nilai 10. Nilai a akan ditambahkan dengan nilai b
kemudian nilai b akan berkurang 1 sehingga nilai akhir dari a adalah 20 dan nilai
akhir dari nilai b adalah 9.
Sama halnya dalam operator ++, jika posisi tanda - - kita ubah, bandingkan
dengan contoh program berikut :
#include<stdio.h>
main()
{
int a,b=10;
a= 10 + --b;
printf(“a = %d, b = %d\n”,a,b);
}
Nilai a dan b diberi nilai 10. Nilai a ditambahkan dengan nilai b tetapi
sebelum proses penambahan nilai b akan berkurang 1 terlebih dahulu sehingga pada
akhir program nilai a adalah 19 dan b adalah 9.
23. +=
Operator sama dengan (=) dapat digabungkan dengan operator lain. Sebuah
persamaan a + = 3 sama artinya dengan a = a + 3. Begitu juga dengan persamaan a +
= b sama artinya dengan a = a + b. Nilai hasil penjumlahan akan disimpan di a.
Perhatikan contoh program berikut ini :
#include<stdio.h>
main()
{
int a=10,b=5,c=7;
a += 10;
a += b;
printf(“a += 10 Hasilnya %d \n”,a);
printf(“c += b Hasilnya %d \n,c”);
}
Tampilan program :
a += 10 Hasilnya 20
c += b Hasilnya 12
24. - =
Fungsi operator ini hampir sama dengan operator += hanya saja digunakan
untuk proses pengurangan. Perhatikan contoh berikut ini :
#include<stdio.h>
main()
{
int a=10,b=5,c=7;
a -=5;
c -= b;
printf(“a -= 5 Hasilnya %d \n”,a);
printf(“c -= b Hasilnya %d \n,c”);
}
Tampilan program :
a -= 5 Hasilnya 5
c -= b Hasilnya 2
Perhatikan bahwa kita memberi niali awal a = 10,b =5 dan c =7. Pada
baris program a -=5; nilai a akan dikurangi dengan 5 sehingga nilai akhir a adalah
5. Sedangkan pada baris c -= b; nilai c akan dikurangi dengan nilai b dan
kemudian ditampung dalam c sehingga nilai c adalah 2.
25. /=
Operator gabungan pembagian. Perhatikan contoh berikut ini :
#include<stdio.h>
main()
{
float a=10,b=5,c=15;
a /=2;
c /= b;
printf(“a /= 5 Hasilnya %d \n”,a);
printf(“c /= b Hasilnya %d \n,c”);
}
Tampilan program :
a /= 5 Hasilnya 5.00
c /= b Hasilnya 3.00
Sama halnya dalam operator += dan operator -=. Mula-mula nilai
a adalah 10, b = 5, dan c = 15. baris perintah a /=2 berfungsi untuk
membagi nilai a dengan 2 dan hasilnya ditampung di a. selanjutnya
c /=b; berfungsi untuk membagi nilai c dengan nilai b. hasilnya
ditampung dalam c.
26. *=
Operator gabungan pembagian. Perhatikan contoh berikut ini:
#include<stdio.h>
main()
{
int a=3,b=5,c=10;
a *=4;
c *= b;
printf(“a *= 4 Hasilnya %d \n”,a);
printf(“c *= b Hasilnya %d \n,c”);
}
Tampilan program :
a 8= 4 Hasilnya 12
c *= b Hasilnya 50
27. %=
Operator gabungan modulus atau sisa pembagian. Perhatikan contoh berikut
ini:
#include<stdio.h>
main()
{
int a=7,b=3,c=9;
a %=6;
c %= b;
printf(“a \%= 6 Hasilnya”);
printf(“%d \n”,a);
printf(“c \%= b Hasilnya”);
printf(“%d \n”,c);
}
Tampilan program :
a %= 6 Hasilnya 1
c %= b Hasilnya 0
Nilai awal a = 7, kemudian dilakukan operasi modulus dengan 6 sehingga
nilai akhir a = 1. Nilai awal b = 3 dan c = 9, kemudian dilakukan operasi c
modulus b sehingga nilai akhir c adalah 0
OPERATOR HUBUNGAN
Operator ini juga sering dipakai dalam operasi if. Operator ini digunakan untuk
membandingkan dua buah nilai. Jika nilai tersebut memenuhi maka akan dikembalikan
nilai true atau 1.
2<7
2 <= 6
#include<stdio.h>
main()
{
int x;
printf(“Bilangan”);
scanf(“%d”,&x);
if(x<7)
printf(“%d < 7 \n”,x);
if(x<=6)
printf(“%d <= 6 \n”,x);
}
Tampilan program :
Bilangan : 6
6 < 7
6 <= 6
14> 12
14>= 13
Tampilan program :
Bilangan : 14
14 > 12
14 >= 13
30. ==
Opeator sama dengan digunakan untuk membandingkan dua buah nilai. Jika
kedua nilai tersebut bernilai sama maka nilai yang dikembalikan adalah true atau 1.
ingat bahwa untuk operasi hubungan kita menggunakan tanda sama dengan ganda.
Perhatiakan contoh berikut ini :
#include<stdio.h>
main()
{
int password=12345.pass;
printf(“Masukkan password anda : ”);
scanf(“%d”,&pass);
if(pass==password)
printf(“Selamat datang ! \n”);
else
printf(“password salah ! \n”);
}
Tampilan program :
31. !=
Operasi tidak sama dengan dilambangkan dengan =!, merupakan kebalikan
dari operator = =. Berikut adalah contoh programnya:
#include<stdio.h>
main()
{
int password=12345.pass;
printf(“Masukkan password anda : ”);
scanf(“%d”,&pass);
if(pass==password)
printf(“Password salah ! \n”);
else
printf(“selamat datang ! \n”);
}
Tampilan program :
32. &&
Operator ini merupakan operator logika AND. Nilai yang dikembalikan akan
bernilai true jika pernyataan yang di-AND-kan bernilai true semua. Berikut adalah
tabel kebenaran logika AND :
P Q p dan q
True True True
True False False
False True False
False False False
Operator logika && sering digunakan untuk operasi if. Misalnya seorang
pegawai akan mendapat bonus jika tiap hari masuk kerja dan tidak pernah terlambat
masuk kerja. Contoh lain, misalnya program yang digunakan untuk menentukan
apakah suatu bilangan merupakan faktor persekutuan dari 2 bilangan atau bukan.
Perhatikan contoh berikut ini :
#include<stdio.h>
main()
{
int x;
printf(“faktor persekutuan dari 12 dan 8 : \n”);
printf(“bilangan yang akan dicek : ”);
scanf(“%d”,&x);
if ((12%x==0)&&(8%c)==0)
printf(“%d adalah faktor persekutuan dari 12 dan 8 \n”,x) ;
else
printf(“%d bukan faktor persekutuan dari 12 dan 8 \n”,x) ;
}
Tampilan program :
Faktor persekutuan dari 12 dan 8 :
Bilangan yang akan dicek : 4
4 adalah faktor persekutuan dari 12 dan 8
33. ||
Operator logoka yang lain adalah operator OR yang dilambangkan dengan ||.
Operator ini akan mengembalikan nilai true jika salah satu atau kedua pernyataan
bernilai true. Operator ini juga sering dipakai dalam operasi if. Jika nilai kembalian
adalah true maka blok statemen dalam if akan diproses. Berikut adalah tabel
kebenaran dari logika OR.
P Q p or q
True True True
True False True
False True True
False False False
Contoh penggunaan operator ini adalah mengecek apakah suatu bilangan x
merupakan faktor dari bilangan y atau faktor dari bilangan z. Berikut adalah contoh
program :
#include<stdio.h>
main()
{
int x;
printf(“faktor dari 5 atau faktor dari 21 : \n”);
printf(“bilangan yang akan dicek : ”);
scanf(“%d”,&x);
if ((15%x==0) || (21%x)==0)
printf(“%d adalah faktor perskutuan dari 15 atau faktor dari \n”,x);
else
printf(“%d bukan faktor dari 15 maupun dari faktor dari 21 \n”,x) ;
}
Tampilan program :
Faktor dari 15 atau faktor dari 21 :
Bilangan yang akan dicek : 7
7 adalah faktor dari 15 atau faktor dari 21
34. !
Dalam bahasa C operator NOT manggunakan tanda seru (!). Operator NOT
memiliki tabel kebenaran sebagai berikut :
P not p
True False
False True
Jika nilai yang dimasukkan adalah 0 maka NOT untuk nilai tersebut adalah 1
sedangkan NOT untuk semua bilangan selain 0 adalah 0. Operasi ini hanya memiliki
2 buah nilai true yang dinyatakan dengan 1 atau false yang dinyatakan dengan 0.
dengan demikian nilai selain 0 dianggap nilai true. Contoh dalam program :
#include<stdio.h>
main()
{
int x,y;
printf(“Nilai x : ”);
scanf(“%d”,&x);
y=!x;
printf(“y = %d \n”,y);
}
Tampilan program :
Nilai x : 2
y = 0
Nilai x : 1
y = 0
Nilai x : -1
y = 0
Nilai x : 0
y = 1
OPERATOR BITWISE
35. <<
Operator yang kita gunakan ini << berfungsi untuk menggeser bit ke kiri.
Sebuah karakter maupun angka disimpan dalam bentuk biner. Misalnya 2 binernya
adalah 10, A didalam tabel ASCII mempunyai nilai 65 jika dinyatakan dalam biner
adalaj 1000001. Dengan menggunakan operator “<<”, nilai bit akan digeser ke kiri
dan bit terkhir ditambah dengan 0. Misalnya 2 digeser bitnya ke kiri akan
menghasilkan 10 <=> 100 yang sama dengan 4. Dalam bahasa C kita bisa menggeser
beberapa bit data secara langsung. Berikut ini contoh programnya:
#include<stdio.h>
main()
{
int a,b,c;
a=2;
b=a<<1;
c=a<<2;
printf(“Nilai a = %d\n”,a);
printf(“Nilai b = %d\n”,b);
printf(“Nilai c = %d\n”,c);
}
Tampilam program:
Nilai a = 2
Nilai b = 4
Nilai c = 8
Dalam program tersebut terlihat bahwa nilai b diambil dari nilai a, digeser
satu bit ke kiri, yaitu 10 <=> 100 maka b akan bernilai 4. Sedangkan nilai c diambil
dari nilai a digeser dua bit ke kiri,yaitu 10 <=> 1000 dan nilai c akan bernilai 8.
36. >>
Operator ini berfungsi untuk menggeser bit ke kanan, merupakan kebalikan
dari operator <<. Bit kanan akan bergeser sehingga bit terakhir akan dihilangkan.
Perhatikan contoh berikut ini:
#include<stdio.h>
main()
{
int a,b,c;
a=8;
b=a>>1;
c=a>>2;
printf(“Nilai a = %d\n”,a);
printf(“Nilai b = %d\n”,b);
printf(“Nilai c = %d\n”,c);
}
Tampilam program:
Nilai a = 8
Nilai b = 4
Nilai c = 2
Mula-mula nilai a adalah 8. Nilai b diambil dari nilai a digeser ke kanan
sebanyak satu bit, yaitu 1000 <=> 100 sehingga nilai b adalah 4. Demikian halnya
dengan nilai c yang menggeser nilai a sebanyak dua bit,yaitu 1000 <=> 10 sehingga
nilai c adalah 2.
37. &
Operator ini merupakan operator logika AND. Operator ini hanya akan
mengembalikan nilai 1 jika dua variabel bernilai 1. Semua data atau nilai variabel
dinyatakan dalam bentuk biner. Misalnya:
11 <=> 1011
2 <=> 0010
0010 <=> 2
Lihat bahwa nilai bit akan bernilai 1 jika kedua bit yang di-AND-kan bernilai
1. Berikut adalah contoh programnya:
#include<stdio.h>
main()
{
int a,b,c;
a=11;
b=2;
c=a&b;
printf(“Nilai a = %d\n”,a);
printf(“Nilai b = %d\n”,b);
printf(“Nilai c = %d\n”,c);
}
Tampilam program:
Nilai a = 11
Nilai b = 2
Nilai c = 2
38. |
Tanda ini merupakan operator OR untuk dua buah nilai. Jika salah satu nilai
atau kedua nilai yang dibandingkan bernilai 1 maka hasilnya adalah 1 juga.
Perhatikan contoh berikut ini :
11 <=> 1011
2 <=> 0010
1011 <=> 11
#include<stdio.h>
main()
{
int a,b,c;
a=11;
b=2;
c=a|b;
printf(“Nilai a = %d\n”,a);
printf(“Nilai b = %d\n”,b);
printf(“Nilai c = %d\n”,c);
}
Tampilam program:
Nilai a = 11
Nilai b = 2
Nilai c = 11
39. ^
Tanda ^ merupakan operator XOR yang akan menghasilkan nilai 1 jika salah
satu dari kedua bit data yang dibandingkan bernilai 1. Misalnya :
11 <=> 1011
2 <=> 0010
1011 <=> 9
Tampilam program:
Nilai a = 11
Nilai b = 2
Nilai c = 9
40. ~
Operator NOT digunakan untuk membalikkan nilai bit. Hal itu berbeda
dengan operasi logika. Jika dalam operasi logika ~1 adalah 0 dan ~0 adalah 1. Coba
perhatikan program berikut ini :
#include<stdio.h>
main()
{
int a,b,c,d;
a=0;
b=~a;
c=1;
d=~1;
printf(“Nilai a = %d\n”,a);
printf(“Nilai ~a = %d\n”,b);
printf(“Nilai c = %d\n”,c);
printf(“Nilai ~c = %d\n”,d);
printf(“Nilai ~5 = %d\n”,~5);
}
Tampilam program:
Nilai a = 11
Nilai ~a = -1
Nilai c = 1
Nilai ~c = -2
Nilai ~5 = -6
Mengapa <=> 0 bukan melainkan -1? Mari kita telusuri. Dalam komputer
nilai 0 disimpan dalam bentuk biner.
0<=>00000000
Operator ~ akan membalik nilai setiap bit dari 0 menjadi 1 dan dari 1 menjadi
0 sehingga nilai ~0 akan berubah mwnjadi :
0<=>00000000
~0<=>11111111
Bit paling kiri adalah sign bit yang berfungsi untuk menunjukkan tanda dari
suatu bilangan. Bilangan akan bertanda positif jika sign bitnya adalah 0 dan akan
bernilai negatif jika sign bitnya adalah 1. ~0 memiliki sign bit 1 sehingga nilai yang
dihasilkan pasti bernilai negatif. Bahasa C menggunakan cara komplemen 2, yaitu
bila nilainya negatif maka diartikan nilai tersebut dikurangi dengan niali 1, yaitu
sebagai berikut :
11111111
1 -
---------------
11111110
11111110
---------------
00000001
Bit data 00000001 sama dengan nilai 1, dan kita tahu bahwa pada saat kita
melakukan operasi ini kita mendapatkan sign bit 1 yang artinya bilangan itu bernilai
negatif sehingga hasil akhir yang ditampilakan program adalah -1. anda bisa mencoba
menghitung ~1 dan ~5 seperti yang ada dalam program.
PRAPOCESSOR DIRECTIVES
#else #include
#endif #undef
#ifdef #warn
41. include
Prapocessor ini digunakan untuk menyertakan kode program yang tersimpan
ke program yang sedang kita buat. Seperti contoh, ketika kita akan menggunakan
fungsi printf maka kita harus menyertakan stdio.h yang merupakan
kepanjangan dari standard input/output header. Header inilah yang
menyimpan fungsi printf. Jika kita menggunakan fungsi printf tetapi kita tidak
menyertakan header stdio.h maka akan muncul pesan error bahwa fungsi
printf tidak terdefenisi.
Untuk menyertakan header ini kita harus menggunakan prapocessor
#include yang ditulis dengan cara #include<stdio.h>, atau dipisahkan
dengan spasi #include <stdio.h> dan dapat juga ditulis dengan #inlude
“stdio.h”.
42. define
Prapocessor ini digunakan untuk mendefenisikan suatu makro, yaitu dengan
nilai yang telah ditentukan. Misalnya, untuk memberi nilai konstanta, mengganti
nama suatu pertintah dengan perintah yang kita inginkan. Perhatikan contoh berikut
ini :
#include<stdio.h>
#define fungsi_utama() main()
#define awal {
#define akhir }
#define cetak printf
#define input scanf
#define bulat int
fungsi_utama()
awal
bulat a;
cetak(“Bahasa C menyenangkan \n”);
cetak(“Masukkan sebuah nilai”);
input(“%d”,&a);
cetak(“Data yang anda masukkan : %d \n”,a);
akhir
bahasa C menyenangkan
masukkan sebuah nilai 12
data yang anda masukkan :12
Jika defenisi makro yang kita buat ingin kita pakai terus maka kita bisa
menulis makro tersebut cukup satu kali dan kita simpan menjadi sebuah file header
dengan eksistensi *.h. misalnya, makro-makro berikut disimpan dengan nama file
headerku.h
#include<stdio.h>
#define fungsi_utama() main()
#define awal {
#define akhir }
#define cetak printf
#define input scanf
#define bulat int
43.
ARRAY
44.JFHGJ