BAB II STRUKTUR BAHASA C - Modul Turbo C BAB II
BAB II STRUKTUR BAHASA C
2.1. StrukturPenulisanBahasa C
Sebagaimanat radisidalambelajarbahasakomput eradalahdimulaidenganmembuat program Hello World, perhatikankodingberikut : / / Menampilkantulisan Hello World #include <st dio.h> void main() { printf (“ Hello World” );
} Jika program diat asdijalankan, maka di layarakantercet akt ulisan " Hello World! ",Marilahkit aanalisabagian program t ersebut sat u per sat u.
/ / M enampilkantulisan Hello W orld
Iniadalahbaris comment (koment ar/ keterangan). Semuabaris yang dimulaidengant anda (/ / ) dianggapsebagai comment .
#include <stdio.h>
Perint ah yang dimulaidengant anda (#) adalah directives (pet unjuk) unt uk preprocessor.Barisinitidakakandieksekusi, t apimerupakan direct ives bagi compiler. Dalamhalinikalimat #include <iost ream.h>memberit ahukankepada preprocessor compiler unt uk include (memasukan) header file st andariost ream. File iniberisideklarasi input -out put st andar library didalamBahasa C yang diperlukanpadabagianberikutnyadalam program ini.
void main ()
Barisinimerupakandeklarasi main funct ion (fungsiut ama). Main f unction merupakantit ikdimanadimana program akanmulaidijalankan. mainselaludiikutioleht andakurung () karenamerupakansebuah funct ion. Padabahasa Csemuamodular adalahf unction.Isi dari function main diapit dengant andakuraw al({}).
printf (“Hello W orld”);
printf merupakan st andard out put padabahasa C (biasanyakelayar), yang dalamhaliniakanmencet aktulisan " Hello World" . print fdideklarasikandalam header f ile st dio.h, sehinggauntukmemanf aat kannyaperlu di #include.
UNIVERSITAS KOM PUTER INDONESIA
Cat at an :setiapperint ah C++ diakhiridengankarakter semicolon (;).
2.2. Komentar/ Keterangan
Ketikaandasedangmenulissebuah program, segalanyaadalahjelastent angpada yang sedangandakerjakan.Tet apisetelahsatubulan, andakembalimelihat program t ersebut, mungkinsajaandat elahlupadanmerasabingung.Unt ukmengurangikeraguantersebut , andaperlumembuatkoment arsecukupnyapadakodeanda.Koment ar/ keteranganadalahba giandari source code yang akandiabaikanoleh compiler. Ada duacarapenulisankoment arpadabahasa C: / / bariskoment ar / * blokkoment ar * / Yang pert amaadalahmengaw alisetiapbariskoment ardengant anda (/ / ), sedangkanbent ukkeduamengaw alikoment ardengan / * dandiakhiridengan * / ,jeniskoment arinicocokunt ukkoment ar/ keterangan yang lebihdarisat ubaris. Perhatikancont ohberikut : / * Menampilkant ulisan Hello World dan Hello Bandung * / #include <iost ream.h> void main () { printf (" Hello World \ n" ); / / menampilkan Hello World printf (" Hello Bandung" ); / / menampilkan Hello Bandung
}
2.3. Variable
Cobabayangkankalausayamemint aandauntukmengingat angka 8, danangka 2, kemudiansayamemint aandaunt ukmenjumlahkanangkapert amadengan 1, sehinggamenjadi 9 (8+1), danakhirnyahasilnyadikurangidenganbilangankedua (2). Proses diat assecarakomput erdapat dit ulissebagaiberikut : a = 8; b = 2; a = a + 1; result = a - b;
UNIVERSITAS KOM PUTER INDONESIA
Dalamhalini a dan b adalah variable, jadi variable di program komput ermenyerupai variable padamatemat ika.Sehingga, kit adapatmendefinsikan variable sebagaibagiandarimemoriunt ukmenyimpannilai, dalamhalini a danb disebut sebagai identifier (pengenal).
2.4. Identifiers
Suat u ident if ier harusmemenuhisyaratberikut : a) Terdiridarihuruf , angkadan symbol garisbaw ah( _ ).
b) Unt uk compiler t ertentumaksimum 32 karakt er.
c) Tidakbolehpakaispasiat aut andabacalainnya .
d) Bolehdiaw alidengan symbol garisbaw ah( _ ), t et apibiasanyadicadangkanunt uk external link.
e) Tidakbolehsamadengan keyw ord (kat a kunci). Key w ord st andarmenurut ANSI-C++ yang t idakbolehandagunakansebagai ident if ier: asm, aut o, bool, break, case, cat ch, char, class, const , const _cast , cont inue, def ault, delete, do, double, dynamic_cast , else, enum, explicit, ext ern, f alse, f loat , f or, f riend, got o, if , inline, int , long, mut able, namespace, new, operat or, private, protected, public, regist er, reinterpret _cast , ret urn, short , signed, sizeof , st atic, st atic_cast , st ruct , swit ch, t emplate, t his, t hrow, t rue, t ry, typedef , typeid, t ypename, union, unsigned, using, virt ual, void, volat ile, w char_t Operat or lainnya yang t idakbolehdigunakansebagai ident if ier: and, and_eq, bit and, bitor, compl, not , not _eq, or, or_eq, xor, xor_eq Sangat pentingdiingat : Bahasa C++ language adalah " case sensitive" , haliniberartibahw a identifier yang dit ulisdenganhuruf besardankeciladalaht idaksama. Jadi, variable
HASIL t idaksamadengan variable hasilat aupun variable Hasil.
2.5. Tipe Data
Tipe dat a merupakanbagian program yang paling pentingkarenatipe data mempengaruhiset iapinst ruksi yang akandilaksanakanoleh computer. Misalnyasaja 5 dibagi 2 bisasajamenghasilkanhasil yang berbedat ergant ungt ipedat anya.Jika 5 dan 2
UNIVERSITAS KOM PUTER INDONESIA
bertipe integer makaakanmenghasilkannilai 2, namunjikakeduanyabertipe f loat makaakanmenghasilkannilai 2.5000000. Pemilihant ipe dat a yang t epat akanmembuat proses operasi dat a menjadilebihefisiendanef ekt if . Dalambahasa C t erdapat lima t ipe dat a dasar, yait u :
NO Tipe Data Ukuran Range (Jangkauan) Format Keterangan
1
- 128 s/ d 127
- 32768 s/ d 32767
- 3.4E-38 s/ d 3.4E+38
- 1.7E-308 s/ d 1.7+308
2
3
4
5 char int f loat double void
1 byt e 2 byt e 4 byt e 8 byt e 0 byt e
%c %i , %d %f %lf
Karakt er/ St ring BilBulat BilPecahan BilPecahanGanda TidakBert ipe
Cont ohProgram : #include <st dio.h> #include <conio.h> void main(){ int x; f loat y; char z; double w ; clrscr(); / / untukmembersihkanlayar x = 10; / / variable x diisidengan 10 y = 9.45; / / variable y diisidengan 9.45 z = ‘C’; / / variable z diisidengankarakter “ C” w = 3.45E+20; / / variable w diisidengan 3.45E+20 printf (“Nilaidari x adalah : %i\ n” , x); / / Menampilkanisi variable x printf (“Nilaidari y adalah : %f \ n” , y); / / Menampilkanisi variable y printf (“Nilaidari z adalah : %c\ n”, z); / / Menampilkanisi variable z printf (“Nilaidari w adalah : %lf\ n” , w); / / Menampilkanisi variable w get ch();
}
UNIVERSITAS KOM PUTER INDONESIA
2.6. Konstanta
Suat ukonst ant aadalahekspresi yang memilikinilaitet ap yang dapat berupa dat a t ype Int eger, Floating-Point, Charact er dan St ring.
2.6.1. Defined Constants (#define)
Andadapat mendefinisikannamatert ent upadakonst ant a yang seringandagunakandenganmenggunakanprepocessor directive #def ine preprocessor direct ive yang memiliki synt ax berikut :
#define ident if ier value Sebagaicontoh :
#define PI 3.14159265 #define NEWLINE '\ n' #define WIDTH 100
Setelahdefinisidiat as, kit adapatmemakainyasepertiberikut : circle = 2 * PI * r; printf (“%d” ,WIDTH);
Sesuat u yang harisdiingat adalahbahw a directive #def ine bukanmerupakanbarisperint ah, t et apimerupakan direct ive unt uk preprocessor, sehinggaandatidakperlumemberikan semicolon (;) padaakhirannya.
2.6.2. Declared Constants (const)
Andadapat jugamenggunakanaw alanconst unt ukmendeklarasikankonst ant aden gan t ype tertent usebagaimanaandalakukanpadavariabel: const int widt h = 100; const char t ab = '\ t '; const zip = 12440;
Dalam hal ini, jika t ype t idak ditent ukan (sepert i pada cont oh terakhir), maka compiler akan mengasumsikan t ype-nya sebagai int.
UNIVERSITAS KOM PUTER INDONESIA
2.7. Karakter Escape
Karakt er escape merupakan karakter spesial yang tidak dapat diekspresikan kecuali dalam source code, seperti newline (\ n) at au t ab (\ t). Berikut ini adalah daf t ar dari kode escape :
Cont oh : int x; / / Deklarasi x bertipe integer char y, huruf, nim[ 10] ; / / Deklarasi variable bert ipe char f loat nilai; / / Deklarasi variable bertipe f loat double bet a; / / Deklarasi variable bertipe double int array[ 5][ 4] ; / / Deklarasi array bertipe int eger char * p; / / Deklarasi point er p bertipe char
Bent uk umum pendeklarasian suat u variable adalah : Nama_t ipe nama_variabel;
Ident if ier dapat berupa variable, konst ant a dan f ungsi.
2.8. Deklarasi Deklarasi diperlukan bila kit a akan menggunakan pengenal (identif ier) dalam program.
\ \ : karakt er garis miring
Ø
\ ” : karakt er pet ik ganda
Ø
\ ’ : karakt er pet ik t unggal
Ø
\ 0 : nilai kosong (null)
Ø
\ v : t abulasi vert ical
Ø
\ r : ke kolom pert ama, baris yang sama (carriage return)
Ø
\ n : gant i baris baru (new line)
Ø
\ f : gant i halaman (f orm feed)
Ø
\ b : mundur sat u spasi (backspace)
Ø
\ a : unt uk bunyi bell (alert)
Ø
2.8.1. Deklarasi Variabel
UNIVERSITAS KOM PUTER INDONESIA
2.8.2. Deklarasi Fungsi
Fungsi merupakan bagian yang t erpisah dari program dan dapat diakt if kan at au dipanggil di manapun di dalam program. Fungsi dalam bahasa C ada yang sudah disediakan sebagai f ungsi pust aka seperti print f(), scanf (), get ch() dan unt uk menggunakannya tidak perlu dideklarasikan. Fungsi yang perlu dideklarasikan t erlebih dahulu adalah f ungsi yang dibuat oleh programmer. Bent uk umum deklarasi sebuah f ungsi adalah :
Tipe_f ungsi nama_f ungsi(parameter_f ungsi); Cont ohnya : f loat luas_lingkaran(int jari); void t ampil(); int t ambah(int x, int y);
2.9. Operator
Sebagaimana pada Pascal unt uk mengoperasikan variable dan konst ant a kita membut uhkan operator, adapun operator yang disediakan oleh C++ adalah sebagai berikut :
2.9.1. Operator Penugasan
Operat or Penugasan (Assignment operator) dalam bahasa C berupa t anda sama dengan (“ =” ). Cont oh : nilai = 80;
A = x * y; Art inya : variable “ nilai” diisi dengan 80 dan variable “ A” diisi dengan hasil perkalian ant ara x dan y.
UNIVERSITAS KOM PUTER INDONESIA
2.9.2. Operator Aritmatika
Bahasa C menyediakan lima operat or aritmat ika, yait u :
- : unt uk perkalian
Ø
Ø
/ : unt uk pembagian
Ø
% : unt uk sisa pembagian (modulus)
- : unt uk pert ambahan
Ø
- : unt uk pengurangan Cat at an : operat or % digunakan unt uk mencari sisa pembagian ant ara dua bilangan. Misalnya : 9 % 2 = 1 9 % 3 = 0 9 % 5 = 4 9 % 6 = 3
Ø
Cont oh Program 1 : #include<stdio.h> #include<conio.h> void main() { clrscr(); / / unt uk membersihkan layar printf (“Nilai dari 9 + 4 = %i” , 9 + 4); / * mencet ak hasil 9 + 4 * / printf (“Nilai dari 9 - 4 = %i” , 9 - 4); / * mencet ak hasil 9 - 4 * / printf (“Nilai dari 9 * 4 = %i” , 9 * 4); / * mencet ak hasil 9 * 4 * / printf (“Nilai dari 9 / 4 = %i” , 9 / 4); / * mencet ak hasil 9 / 4 * / printf (“Nilai dari 9 \ % 4 = %i” , 9 % 4); / * mencet ak hasil 9 % 4 * / get ch();
} Cont oh Program 2 : / * Penggunaan operat or % unt uk mencet ak deret bilangan genap ant ara 1 – 100 * / #include<stdio.h> #include<conio.h> void main() { int bil; clrscr(); / / unt uk membersihkan layar
UNIVERSITAS KOM PUTER INDONESIA
f or (bil=1; bil<100; bil++) { if(bil % 2 == 0) / / periksa apakah ‘bil’ genap printf (“%5.0i” , bil);
} get ch(); }
2.9.3. Operator Hubungan (Perbandingan)
Operat or Hubungan digunakan untuk membandingkan hubungan ant ara dua buah operand (sebuah nilai at au variable). Operat or hubungan dalam bahasa C :
Operator Arti Contoh
< Kurang dari X < Y Apakah X kurang dari Y <= Kurang dari sama dengan X <= Y Apakah X kurang dari sama dengan Y
> Lebih dari X > Y Apakah X lebih besar dari Y >= Lebih dari sama dengan X >= Y Apakah X lebih besar sama dengan Y == Sama dengan X == Y Apakah X sama dengan Y ! = Tidak sama dengan X ! = Y Apakah X tidak sama dengan Y
2.9.4. Operator Logika
Jika operator hubungan membandingkan hubungan ant ara dua buah operand, maka operat or logika digunakan unt uk membandingkan logika hasil dari operat or- operat or hubungan. Operat or logika ada t iga macam, yaitu :
& & : Logika AND (DAN)
Ø
| | : Logika OR (ATAU)
Ø
! : Logika NOT (INGKARAN/ BUKAN)
Ø
UNIVERSITAS KOM PUTER INDONESIA
| : Bit w ise OR
Ø
Ø
Operat or Unary merupakan operat or yang hanya membut uhkan sat u operand saja. Dalam bahasa C t erdapat beberapa operator unary, yait u :
Ø
^ : Bit w ise XOR (exclusive OR)
Ø
& : Bit w ise AND
>> : Pergeseran bit ke kanan
2.9.6. Operator Unary
Ø
<< : Pergeseran bit ke kiri
Ø
Operat or bitw ise digunakan untuk memanipulasi bit-bit dari nilai dat a yang ada di memori. Operat or bitw ise dalam bahasa C :
2.9.5. Operator Bitwise
Operator M aksud Letak Contoh Equivalen
~ : Bit w ise NOT
- Unary minus Sebelum operat or A + -B * C A + (-B) * C ++
Peningkat an dengan penambahan nilai 1 Sebelum dan sesudah
A++ A = A + 1
Sebelum dan sesudah A-- A = A – 1 sizeof
- Penurunan dengan pengurangan nilai 1
Ukuran dari operand dalam byt e Sebelum sizeof (I)
! Unary NOT Sebelum ! A ~ Bit wise NOT Sebelum ~A
& Menghasilkan alamat memori operand
Sebelum & A
- Menghasilkan nilai dari point er
Sebelum * A Cat at an Pent ing: Operat or peningkat an ++ dan penurunan -- jika dilet akkan sebelum at au sesudah operand t erdapat perbedaan. Perhatikan contoh berikut :
UNIVERSITAS KOM PUTER INDONESIA
Cont oh Program 1 : / * Perbedaan operat or peningkat an ++ yang dilet akkan di depan dan dibelakang operand * / #include <st dio.h> #include <conio.h> void main() { int x, nilai; clrscr(); x = 5; nilai = ++x; / * berart i x = x + 1; nilai = x; * / printf ("nilai = %d, x = %d\ n" , nilai, x); nilai = x++; / * berart i nilai = x; nilai = x + 1; * / printf ("nilai = %d, x = %d\ n" , nilai, x); get ch();
} Cont oh Program 2 : #include <st dio.h> #include <conio.h> void main() { int b, nilai; clrscr(); / / unt uk membersihkan layar b = 15; nilai = --b; / * berart i b = b - 1; nilai = b; * / printf ("nilai = %d, b = %d\ n", nilai, b); nilai = b--; / * berart i nilai = b; b = b + 1; * / printf ("nilai = %d, b = %d\ n", nilai, b); get ch();
}