2007 Pearson Education, Inc. All rights reserved.
1
1Introduction
to C/C++ Programming
2007 Pearson Education, Inc. All rights reserved.
2
TujuanPada bagian ini akan dipelajari: Pengantar Komputer Perkembangan bahasa C Mengenal bentuk umum bahasa C Konsep tipe data dalam C Operator dalam C.
2007 Pearson Education, Inc. All rights reserved.
3
Sistem Komputer KomputerDivais yang mampu melakukan komputasi dan membuat
keputusan logisKomputer memproses data di bawah Kendali [dari]
kumpulan instruksi disebut program komputer Hardware/Perangkat KerasBerbagai divais terdiri dari satu komputer'keyboard', layar, mouse, disk, memori, CD-ROM, dan
unit pemrosesan Software/Perangkat LunakProgram yang berjalan pada satu komputer
2007 Pearson Education, Inc. All rights reserved.
Organisasi Komputer
Enam unit logis dalam setiap komputer:1. Unit input Memperoleh informasi dari divais input ('keyboard',
mouse komputer)2. Unit Output Informasi output (ke layar, ke printer, ke divais
pengendali lainnya)3. Unit Memori Akses Cepat, kapasitas rendah, menyimpan informasi
masukan
4
2007 Pearson Education, Inc. All rights reserved.
Organisasi Komputer (Lanjt.)
4. Arithmetic and logic unit (ALU) Melakukan kalkulasi aritmatika dan keputusan
logika5. Central processing unit (CPU) mengawasi dan mengkoordinir bagian-bagian lain dari
komputer6. Secondary storage unit Murah, jangka panjang, tempat penyimpanan kapasitas-
tinggi menyimpanan non-aktip program
5
2007 Pearson Education, Inc. All rights reserved.
Evolusi Sistem Operasi Batch processing– hanya mengerjakan satu pekerjaan atau tugas pada suatu saat
Operating systems – Mengelola transisi antar pekerjaan
Multiprogramming – Sumber-sumber daya Komputer digunakan bersama oleh
banyak pekerjaan atau tugas Timesharing– Komputer menjalankan sebagian kecil dari satu pekerjaan
pemakai kemudian berpindah pada layanan pemakai berikutnya
6
2007 Pearson Education, Inc. All rights reserved.
Personal Computing, Distributed Computing, and Client/Server Computing
Personal computers – Ekonomis untuk individu
Distributed computing – Komputer terdistribusi melalui jaringan
Client/server computing– Berbagi informasi melintasi jaringan komputer antara
file server dan klien (komputer pribadi)
7
2007 Pearson Education, Inc. All rights reserved.
Machine Languages, Assembly Languages, and High-level Languages
Tiga tipe Bahasa Pemrograman1. Bahasa Mesin
- String dari nomor memberi instruksi spesifik ke mesin - Contoh: +1300042774
+1400593419+1200274027
2. Bahasa Assembly/Asembler– Singkatan seperti bahasa Inggris yang merepresentasikan operasi
komputer dasar (diterjemahkan melalui asembler)– Contoh : LOAD BASEPAY
ADD OVERPAYSTORE GROSSPAY
8
2007 Pearson Education, Inc. All rights reserved.
Machine Languages, Assembly Languages, and High-level Languages
3. Bahasa Pemrograman Tingkat Tinggi– Kode serupa dengan bahasa Inggris setiap hari– Menggunakan notasi matematika (diterjemahkan
melalui compilers)– Contoh:
grossPay = basePay + overTimePay– Contoh Nama bahasa: COBOL, FORTRAN, PASCAL
9
2007 Pearson Education, Inc. All rights reserved.
10
Perkembangan Bahasa C
Perkembangan bahasa C erat kaitannya dengan perkembangan sistem operasi UNIX, dimana keduanya dikembangkan di AT&T Bell Lab (USA).
Pertama kali bahasa C diimplementasikan pada komputer DEC PDP-11 yang menggunakan sistem operasi UNIX oleh Dennis Ritchie di Bell Laboratories tahun 1972.
Banyak ide penting dari C diambil dari bahasa BCPL yang dikembangkan oleh Martin Richards melalui bahasa B yang ditulis Ken Thompson. BCPL dan B tidak memiliki data type sedang C memiliki beragam data type.
2007 Pearson Education, Inc. All rights reserved.
11
Pada tahun 1978 Dennis Ritchie dan Brian W Kernighan mengeluarkan buku THE C PROGRAMMING LANGUAGE, buku inilah yang dijadikan acuan dari pembuatan berbagai versi bahasa C yang ada.
Pada tahun 1983 ANSI (American Nasional Standart Institute) membuat standarisasi bahasa C yang kemudian dijadikan sebagai referensi dari berbagai bahasa C yang beredar saat ini. C yang dihasilkan disebut C standard ANSI atau ANSI C. Tahun 1987 Borland menciptakan sebuah compiler C yang dikenal dengan nama TURBO C.
2007 Pearson Education, Inc. All rights reserved.
12
Dalam beberapa literatur bahasa C digolongkan sebagai bahasa tingkat menengah (Medium Level Language). Penggolongan ini tidak berarti bahwa bahasa C lebih sulit dibandingkan dengan bahasa pemrogramman tingkat tinggi seperti : PASCAL, BASIC.
Pada kenyataannya bahasa C mengkombinasikan elemen dalam bahasa tingkat tinggi dan bahasa tingkat rendah.
Hampir semua operasi yang dapat dilakukan oleh bahasa mesin dapat dilakukan oleh C dengan penyusunan program yang lebih sederhana dan mudah.
2007 Pearson Education, Inc. All rights reserved.
13
Bahasa C dalam pemakainnya memerlukan suatu translator. Jenis translator dalam bahasa C adalah interpreter dan compiler. Interpreter merupakan translator yang menterjemahkan bahasa C ke dalam bahasa mesin satu persatu. Contoh interpreter yang beredar saat ini yaitu Run/c.
Sedangkan compiler merupakan translator yang menterjemahkan bahasa C ke dalam bahasa mesin secara keselurahan. Contoh compiler : Turbo C, Microsoft C dan Lattice C.
2007 Pearson Education, Inc. All rights reserved.
14
Bahasa C merupakan bahasa pemrogramman yang sederhana dimana jumlah fungsi dan perintah yang disediakan terbatas, walaupun akhirnya beberapa compiler menyediakan fungsi-fungsi library yang cukup lengkap. Karena sifatnya yang sederhana ini maka bahasa C mudah ditransfer dari satu compiler ke compiler yang lain.
2007 Pearson Education, Inc. All rights reserved.
15
Gambar 1. Proses penterjemahan bahasa C ke dalam dalam bahasa mesin dengan menggunakan compiler
•Kode Program .C•Hasil kompilasi .obj•Object code sudah berbentuk
kode mesin, tapi kode ini belum bisa dimengerti oleh komputer. Agar dapat dimengerti oleh komputer maka object code bersama dengan object code yang lain serta file library (file yang berisi rutin untuk tugas tertentu) perlu dikaitkan (linking) dengan menggunakan linker. Sehingga terbentuk suatu file yang executable (program yang dapat dijalankan secara langsung dalam lingkungan sistem operasi).
•Program hasil linker ini disimpan dalam sebuah file executable dengan ciri mempunyai ekstension .EXE
2007 Pearson Education, Inc. All rights reserved.
Kelebihan Bahasa C C mempunyai banyak jenis data yang dikenal &
operator untuk manipulasi data. C menyediakan berbagai struktur data dan
pengendalian proses. Sehingga memungkinkan untuk membuat program yang terstruktur (program yang mudah dipakai dan dikembangkan).
C mudah dipahami dibandingkan dengan bahasa mesin, karena bahasa C berorientasi pada permasalahan bukan pada mesin..
16
2007 Pearson Education, Inc. All rights reserved.
17
C mempunyai kecepatan eksekusi yang mendekati kecepatan eksekusi bahasa mesin
C memungkinkan manipulasi data dalam bentuk bit maupun byte secara efisien dan dapat memanipulasi alamat dari suatu data
C memakai sedikit memori C merupakan salah satu bahasa pemrograman
yang terstruktur.
2007 Pearson Education, Inc. All rights reserved.
Sejarah C++ Merupakan perluasan dari C Ditemukan pada tahun 1980-an oleh Bjarne Stroustrup
(Bell Laboratories) Menyediakan kemampuan untuk bahasa pemrograman
berorientasi objek- Objek: komponen perangkat lunak dapat digunakan kembaliModel item di/dalam dunia nyata- Object-oriented programs
Mudah dipahami, dikoreksi dan dimodifikasi Bahasa Dominan di dalam industri dan akademisi
18
2007 Pearson Education, Inc. All rights reserved.
Kekurangan Bahasa C
Banyaknya operator serta flexibilitas penulisan program yang terkadang membingungkan pemakai.
Programmer C tingkat pemula pada umumnya kurang memgenal pointer dan tak terbiasa menggunakannya, padahal kelebihan C ada pada pointer ini.
19
2007 Pearson Education, Inc. All rights reserved.
MENGAPA C ???
Semakin banyak program dan software yang ditulis dalam C
C adalah bahasa yang modern, efisien, portable, powerful, flexible, friendly menghasilkan program yang kompak dan cepat
C adalah bahasa yang mendominasi pemakaian komputer dengan sistem operasi UNIX.
20
2007 Pearson Education, Inc. All rights reserved.
MENGAPA C ???
C adalah bahasa yang portable: program yang ditulis pada satu sistem dapat dijalankan
pada sistem lain tanpa atau dengan sedikit perubahanC adalah bahasa yang efisien : menghasilkan program yang kompak/ringkas dan cepatC adalah bahasa modern : mempunyai fasilitas - fasilitas kontrol yang diperlukan
oleh teori – teori komputer science maupun aplikasiC adalah bahasa yang friendly : keterikatannya/ restriksinya tidak ketat
21
2007 Pearson Education, Inc. All rights reserved.
MENGAPA C ???
C adalah bahasa yang powerful dan fleksible UNIX sebagian besar ditulis dalam C C compiler ditulis dalam C Interpreter lain (FORTRAN, APL, Pascal, LISP, BASIC)
bisa ditulis dalam C Digunakan baik dalam memecahkan masalah fisik
maupun engineering Digunakan untuk animasi Mempunyai kontrol yang biasanya hanya dimiliki oleh
bahasa assembly.
22
2007 Pearson Education, Inc. All rights reserved.
Visual C++– Penerapan C++ dalam Microsoft
- Includes extensions- Microsoft Foundation Classes (MFC)- Common library
GUI, graphics, networking, multithreading, … Shared among Visual Basic, Visual C++, C
23
2007 Pearson Education, Inc. All rights reserved.
Pengenalan Program C
Program terdiri dari koleksi satu / lebih fungsi, salah satu diantaranya harus berupa main().
Fungsi terdiri dari sebuah header dan sebuah badan.
Header berisi preprocessor statement seperti #include dan nama fungsi
Badan ditandai oleh { } dan berisi seri dari statement masing diakhiri tanda ;
24
2007 Pearson Education, Inc. All rights reserved.
25
Contoh Struktur Program C
2007 Pearson Education, Inc. All rights reserved.
26
Contoh Program C Sederhana
2007 Pearson Education, Inc. All rights reserved.
27
Contoh Program C Sederhana
2007 Pearson Education, Inc. All rights reserved.
Penjelasan Singkat Program28
2007 Pearson Education, Inc. All rights reserved.
29
2007 Pearson Education, Inc. All rights reserved.
30
2007 Pearson Education, Inc. All rights reserved.
31
2007 Pearson Education, Inc. All rights reserved.
32
2007 Pearson Education, Inc. All rights reserved.
33
1. Initialize variables
2. Input
2.1 Sum
3. Print
Output Program
Program Output
1 /* Fig. 2.5: fig02_05.c2 Addition program */3 #include <stdio.h>45 int main()6 {7 int integer1, integer2, sum; /* declaration */89 printf( "Enter first integer\n" ); /* prompt */10 scanf( "%d", &integer1 ); /* read an integer */11 printf( "Enter second integer\n" ); /* prompt */12 scanf( "%d", &integer2 ); /* read an integer */13 sum = integer1 + integer2; /* assignment of sum */14 printf( "Sum is %d\n", sum ); /* print sum */1516 return 0; /* indicate that program ended successfully */17 }
Enter first integer45Enter second integer72Sum is 117
2007 Pearson Education, Inc. All rights reserved.
Penjelasan Program34
int integer1, integer2, sum;– Deklarasi Variabel
- Variabel: lokasi dalam memori dimana sebuah nilai dapat disimpan– int bermakna variabel dapat menangani integers (-1, 3, 0, 47)– Nama Variabel (identifiers)
- integer1, integer2, sum - Identifiers: terdiri atas huruf, digits (tidak dapat diawali dengan
sebuah angka/digit) dan underscores( _ )- Case sensitive
– Deklarasi muncul sebelum executable statements- Jika sebuah executable statement mengacu pada dan tidak
mendeklarasikan variabel ia akan mengasilkan sebuah syntax (compiler) error
2007 Pearson Education, Inc. All rights reserved.
Penjelasan Program (Lanjt.)
scanf( "%d", &integer1 );– Memperoleh sebuah nilai dari pemakai
- scanf menggunakan standard input (umumnya keyboard)– scanf statement ini memiliki dua arguments
- %d - mengindikasi data harus berupa decimal integer- &integer1 - lokasi dalam memori untuk menyimpan variabel- & untuk saat ini, hanya perlu diingat untuk menyertakannya
dengan nama variabel dalam scanf statements– Ketika menjalankan program, pemakai merespon untuk scanf statement dengan mengetikkan suatu number, kemudian menekan enter (return) key
35
2007 Pearson Education, Inc. All rights reserved.
3636
Good Programming Practice
Tempatkan suatu spasi setelah setiap tanda koma (,) untuk membuat program lebih mudah dibaca.
2007 Pearson Education, Inc. All rights reserved.
Penjelasan Program (Lanjt.)37
= (assignment operator)– Menugaskan sebuah nilai ke sebuah variabel– Adalah sebuah operator biner (memiliki dua operands)
sum = variable1 + variable2;sum gets variable1 + variable2;
– Variabel yang menerima nilai terletak di sisi kiri printf( "Sum is %d\n", sum );
– Sama dengan scanf- %d bermakna decimal integer akan dicetak- sum menentukan integer apa yang akan dicetak
– Kalkulasi dapat dibentuk di dalam printf statementsprintf( "Sum is %d\n", integer1 + integer2 );
2007 Pearson Education, Inc. All rights reserved.
3838
Good Programming Practice
Letakkan spasi sebelah menyebelah dari operator biner. Ini membuat operator terpisah dari operan dan membuat program lebih mudah dibaca
2007 Pearson Education, Inc. All rights reserved.
3939
Common Programming Error
Sebuah kalkulasi dalam satu pernyataan penugasan harus pada sisi kanan operator =. Sebuah error sintaksis akan muncul apabila menempatkan satu kalkulasi pada sisi kiri dari suatu operator penugasan
2007 Pearson Education, Inc. All rights reserved.
Konsep Memori40
Variabel – Nama Variabel menghubungkan ke lokasi dalam memori
komputer– Setiap variabel memiliki nama, tipe, ukuran dan nilai– Kapan saja sebuah nilai baru diletakkan ke dalam sebuah
variabel (melalui scanf, sebagai contoh), ia menggantikan (dan menghapus) nilai sebelumnya
– Membaca variabel dari memori tidak merubah isinya
2007 Pearson Education, Inc. All rights reserved.
41
Penyajian secara visual
2007 Pearson Education, Inc. All rights reserved.
42
Penyajian secara visual
2007 Pearson Education, Inc. All rights reserved.
43
Penyajian secara visual
2007 Pearson Education, Inc. All rights reserved.
4444
Good Programming Practice
Memilih nama variabel yang penuh arti membantu membuat satu program self-documenting, karena dapat membuat komentar menjadi sedikit
2007 Pearson Education, Inc. All rights reserved.
4545
Good Programming Practice
Huruf Pertama dari suatu identifier yang digunakan sebagai satu nama variabel sederhana harus merupakan satu huruf kecil. Berikutnya dalam teks kita akan memberikan arti khusus untuk identifiers yang dimulai dengan satu huruf besar dan untuk identifiers yang menggunakan huruf besar semua
2007 Pearson Education, Inc. All rights reserved.
4646
Common Programming Error
Menempatkan definisi variabel di antara executable statements menyebabkan error sintaksis
2007 Pearson Education, Inc. All rights reserved.
47
Good Programming Practice
Pisahkan definisi dan executable statements dalam satu fungsi dengan satu baris kosong untuk menekankan dimana akhir definisi serta executable statements mulai.
2007 Pearson Education, Inc. All rights reserved.
48
2007 Pearson Education, Inc. All rights reserved.
49
2007 Pearson Education, Inc. All rights reserved.
Tipe Data Semua variabel harus didefinisikan di dalam C. Memiliki bentuk : type data mendefinisikan variabel sebelum variabel
digunakanDefinisi dari satu variabel akan memberikan tempat
penyimpanan untuk variabel dan mendefinisikan tipe data yang akan ditangani dalam lokasi
Mempunyai bentuk typename variablename;Contoh : int myInteger; char myCharacter;
50
2007 Pearson Education, Inc. All rights reserved.
Tipe Integer51
Byte sizes for Lonestar & Ranger. How to get the sizes:char c;int i;printf("%d,%d\n", sizeof (c), sizeof (i) );
Output: 1,4
Common sizes (in bytes):
int 4
long 8
char 1short 2
2007 Pearson Education, Inc. All rights reserved.
Tipe Float
Mayoritas dari kode ilmiah akan menggunakan data floating-point dalam melipatgandakan presisi
float (single precision) – 4 bytes double - 8 bytes
52
2007 Pearson Education, Inc. All rights reserved.
Tipe Karakter53
• char myName[10];– Membuat variabel string yang disebut “myName" yang
berisi 10 elements
myName="yye00"; /*Invalid syntax*/
2007 Pearson Education, Inc. All rights reserved.
54
Mengapa saya tidak dapat memberikan suatu string ke suatu nilai tunggal?Hanya skalar (satu nilai tunggal) dapat diberikan pada suatu saat. Sebuah string adalah satu array (larik) dari nilai, dan setiap lokasi harus diberikan secara individu
Nilai diberikan oleh operator penugasan "=". Sintak yang benar :char myChar;int x;x = 3;myChar = ‘x'; Catatan : penggunaan tanda kutip tunggal (') sebagai ganti tanda kutip ganda ("), karena ini adalah satu karakter tunggal, bukan satu string.
Assigning Values
2007 Pearson Education, Inc. All rights reserved.
55
Empat Tipe Data Data Type Abbreviation Size
(byte)Range
char char 1 -128 ~ 127unsigned char 1 0 ~ 255
int
int 2 or 4 -215 ~ 215-1 or -231 ~ 231-1unsigned int unsigned 2 or 4 0 ~ 65535 or 0 ~ 232-1short int short 2 -32768 ~ 32767unsigned short int unsigned short 2 0 ~ 65535long int long 4 -231 ~ 231-1unsigned long int unsigned long 4 0 ~ 232-1
float 4
double 8
2007 Pearson Education, Inc. All rights reserved.
Deklarasi Variabel
type v1,v2,v3, …, vn
Example:int i;int j;float k;char c;short int x;long int y;unsigned int z;int a1, a2, a3, a4, a5;
56
2007 Pearson Education, Inc. All rights reserved.
Aritmatika57
Perhitungan Aritmatika – Gunakan * untuk perkalian dan / untuk pembagian– Pembagian Integer menghilangkan sisa
- 7 / 5 menghasilkan nilai 1– Operator Modulus (%) menghasilkan sisa hasil bagi
- 7 % 5 menghasilkan nilai 2 Operator precedence
– Beberapa operator aritmatika dilaksanakan sebelum yang lain (seperti, perkalian sebelum penjumlahan)
- Gunakan parenthesis jika diperlukan – Contoh : Carilah nilai rata2 dari tiga variabel a, b dan c
- Do not use: a + b + c / 3 - Use: (a + b + c ) / 3
2007 Pearson Education, Inc. All rights reserved.
5858
C opetration Arithmetic operator
Algebraic expression C expression
Addition + f + 7 f + 7
Subtraction – p – c p - c
Multiplication * bm b * m
Division / or orxx y x ÷ y
y x / y
Remainder % r mod s r % s
Arithmetic operators.
2007 Pearson Education, Inc. All rights reserved.
5959
Common Programming Error
Satu usaha untuk membagi dengan nol adalah secara normal tdk terdefinisi pada sistem komputer dan secara umum menghasilkan suatu fatal error, , misalnya., satu error yang menyebabkan program untuk berakhir dengan segera tanpa memiliki kesuksesan dalam melakukan pekerjaannya. Nonfatal Error memungkinkan program untuk menjalankan menuju penyelesaian, sering memproduksi hasil yang salah
2007 Pearson Education, Inc. All rights reserved.
60
Precedence of arithmetic operators.
Operator(s) Operation(s) Order of evaluation (precedence)
( ) Parentheses Evaluated first. If the parentheses are nested, the expression in the innermost pair is evaluated first. If there are several pairs of parentheses “on the same level” (i.e., not nested), they are evaluated left to right.
* / %
Multiplication Division Remainder
Evaluated second. If there are several, they are evaluated left to right.
+ -
Addition Subtraction
Evaluated last. If there are several, they are evaluated left to right.
2007 Pearson Education, Inc. All rights reserved.
61
Order in which a second-degree polynomial is evaluated.
2007 Pearson Education, Inc. All rights reserved.
62
Good Programming Practice
Penggunaan tanda kurung di dalam ekspresi aritmatika yang kompleks dapat membuat ekspresi lebih jelas.