1. 2. 3. 4. 5.
Joko Priyanto (672007001) Astriyer J. Nahumury (672007218) Rico N. Tubalawony (672007193) Heberson Pakpahan (672007195) Agus Andriyanto (672007309)
Sejarah C++ • Bahasa B dikembangkan menjadi bahasa C pada tahun 1970-an. • Tahun 1983, didirikan sebuah komite untuk menciptakan ANSI standar untuk bahasa C. (yang dipakai pada Desember 1989) • Bahasa C yang diciptakan oleh Kerninghan dan Ritchie dikenal dengan ANSI C → digunakan oleh ISO sehingga menghasilkan ISO Standard C. • Tahun 1980, Bjarne Stroustrup dari AT&T Bell Laboratories mulai mengembangkan bahasa C → C++ tahun 1985.
Sejarah C++(lanjt) • C++ mengalami dua tahap : Θ dirilis oleh AT&T laboratories → cfront Θ kompiler C++ menjadi sebuah kompiler yang bisa C++ → bahasa assembly • Tahun 1990, C++ menjadi bahasa berorientasi objek.
Struktur Bahasa C++ Contoh 1 : //my first program in C++ #include
int main() { cout << “Selamat pagi dunia!”; return 0; }
Hasil : Selamat pagi dunia!
Struktur Bahasa C++ (lanjt)
Program tersebut mengandung komponen dasar: //my first program in C++ merupakan komentar, tidak akan berpengaruh terhadap program. #include kalimat yang diawali tanda (#) merupaka preprocessor directive. Indikasi untuk kompiler. #include indikasi untuk menyertakan header file standard iostream, termasuk I/O dalam C++
Struktur Bahasa C++ (lanjt)
int main() sebagai awal deklarasi fungsi main. Merupakan titik awal dimana seluruh program C++ akan dieksekusi. cout << “Selamat pagi dunia!”; merupakan standard output stream dalam C++ (biasanya monitor). return 0; fungsi main() berakhir dan mengembalikan kode yang mengikuti instruksi tersebut, dalam hal ini kasus 0.
Struktur Bahasa C++ (lanjt) • Setiap kalimat diakhiri dengan tanda semicolon (;). Karakter ini menandakan akhir dari instruksi dan harus disertakan pada setiap akhir instruksi pada program C++ manapun. • Isi dari fungsi main() selanjutnya akan mengikuti, berupa deklarasi formal dan dituliskan diantara kurung kurawal ({}). • Komentar adalah bagian dari program yang diabaikan oleh kompiler.
Struktur Bahasa C++ (lanjt) • Ada dua cara untuk menuliskan komentar : Θ// komentar baris akan mengabaikan apapun mulai dari tanda(//) sampai akhir baris. Θ/* komentar blok */ akan mengabaikan apapun yang berada diantara tanda /* dan */
Input dan Output • Dalam ANSI C, operasi input dan output dilakukan dengan menggunakan fungsifungsi header file stdio.h misalkan : printf, scanf, putc, dsb. • Untuk input dan output ke file digunakan fread, fwrite, fputc, dsb. • Dalam C++ menggunakan iostream.h, stsrtrea.h, fstream.h dan constrea.h
Input dan Output (lanjt) • Contoh versi ANSI C #include <stdio.h> void main() { int x; printf (“Masukkan sebuah bilangan:\n”); scanf (“%d”, &x); printf (“Bilangan yang dimasukkan adalah %d\n”,x); }
Input dan Output (lanjt) • Contoh versi C++ #include void main() { int x; cout <<“Masukkan sebuah bilangan: “<<end1; cin >> x; cout <<“Bilangan yang dimasukkan adalah “ << x << end1; }
ELEMEN DASAR C++ • Identifier (Pengenal) pada C++
Identifier adalah nama yang digunakan untuk mempresentasikan variabel, konstanta, jenis (type), fungsi, dan nama program. Identifier dalam pendeklarasian variabel, jenis, atau fungsi pada bahasa C++ dimulai dengan sebuah huruf atau garis bawah. Karakter-karakter lain dalam sebuah identifier dapat berupa huruf, angka, garis bawah, atau tanda dollar. Compiler C++ membedakan huruf kecil dan besar. Variabel NAMA_PEGAWAI dan nama_pegawai dipandang sebagai dua identifier yang menggambarkan variabel memori yang berbeda. Contoh identifier yang diperkenankan untuk dipakai: a atau akelas atau kelas$ atau _kelas atau _KELAS$, sedangkan identifier yang tidak diperbolehkan untuk dipakai: $KELAS atau 7kelas atau kelas! atau ..kelas.
ELEMEN DASAR C++ (lanjt) • Himpunan Karakter
Himpunan karakter pada C++ terdiri dari huruf, digit maupun simbolsimbol lainnya (termasuk spasi, karakter kontrol) Huruf: A B C D E F G H I J K L M N O P Q R S T U V W X Z Y a b c d e f g h i j k l m n o p q r s t u v w x y z Digit: 0 1 2 3 4 5 6 7 8 9 Simbol dan lain-lain: _ - + * dan sebagainya.
ELEMEN DASAR C++ (lanjt) • Kata-kata Kunci
Kata kunci (keyword) adalah pengenal sistem yang mempunyai makna khusus bagi kompiler. Kegunaan dari golongan ini tidak dapat diubah. Karena itu kata kunci tidak dapat digunakan sebagai pengenal yang dibuat oleh pemrogram. Kata kunci diusulkan ANSI: auto, double, int, struct, break, else, loop, switch, case, enum, register, typedef, char, extern, return, union, const, float, short, unsigned, continue, for, signed, void, default, goto, sizeof, volatile, do, if, static, while Sedangkan turbo C memperluasnya dengan menambahkan beberapa kata kunci: _cs, _ss, far, near, _ds, asm, huge, pascal, _es, cdecl, interrupt Sementara itu, Microsoft C/C++ menambah beberapa kata kunci: _asm, _loadds, _cdecl, _huge, _far, _pascal, _export, _interrupt, _fortran, _segname, _near, _saveregs, _segment, _syscall, _self, _stdcall, _fastcall, _based
VARIABEL,TIPE DATA, KONSTANTA 1. VARIABEL • Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. • Identifier adalah untaian satu atau lebih huruf, angka, atau garis bawah ( _ ). Panjang dari identifier, tidak terbatas, walaupun untuk beberapa kompiler hanya 32 karakter pertama saja yang dibaca sebagai identifier (sisanya diabaikan). Identifier harus selalu diawali dengan huruf atau garis bawah ( _ ).
VARIABEL,TIPE DATA, KONSTANTA (lanjt) •
LINGKUP VARIABEL
– variabel Global dapat digunakan untuk setiap bagian dari program, maupun fungsi, walaupun dideklarasikan diakhir program. – variable local terbatas. Hanya berlaku dimana variable tersebut dideklarasikan. Jika dideklarasikan diawal fungsi (seperti dalam main) maka lingkup dari variable tersebut adalah untuk seluruh fungsi main. – Instruction merupakan perintah dalam program
VARIABEL,TIPE DATA, KONSTANTA (lanjt) • Mendeklarasikan dan Mendefinisikan Variabel
Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu, maksudnya mengenalkan sebuah pengenal ke program dan menentukan jenis data yang bisa disimpan di dalamnya. Apabila suatu pendeklarasian menyebabkan pengalokasian memori, maka pendeklarasian tersebut dinamakan pendefinisian. Yang jelas pendefinisian berarti pula pendeklarasian, tetapi tidak semua pendeklarasian berarti pendefinisian. • bentuk pendefinisian variabel: tipe daftar_variabel; Pada pendefinisian variabel, daftar_variabel dapat berupa sebuah variabel atau beberapa variabel yang dipisahkan dengan koma.
VARIABEL,TIPE DATA, KONSTANTA (lanjt) 2. TIPE DATA • Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer.Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien dan efektif. • Dalam bahasa C terdapat beberapa tipe data, yaitu :
Name
Bytes*
Description
Range*
char
1
character or integer 8 bits length.
signed: -128 to 127 unsigned: 0 to 255
short
2
integer 16 bits length.
signed: -32768 to 32767 unsigned: 0 to 65535
long
4
integer 32 bits length.
signed:-2147483648 to 2147483647 unsigned: 0 to 4294967295
int
*
Integer. Its length traditionally depends on the length of the system's Word type, thus in MSDOS it is 16 bits long, whereas in 32 bit systems (like Windows 9x/2000/NT and systems that work under protected mode in x86 systems) it is 32 bits long (4 bytes).
See short, long
float
4
floating point number.
3.4e + / - 38 (7 digits)
double
8
double precision floating point number.
1.7e + / - 308 (15 digits)
Long double
10
long double precision floating point number.
1.2e + / - 4932 (19 digits)
1
Boolean value. It can take one of two values: true or false NOTE: this is a type recently added by the ANSI-C++ standard. Not all compilers support it. Consult section bool tipe for compatibility information.
true or false
2
Wide character. It is designed as a type to store international characters of a two-byte character set. NOTE: this is a type recently added by the ANSI-C++ standard. Not all compilers support it.
wide characters
bool
wchar_t
VARIABEL,TIPE DATA, KONSTANTA (lanjt) • Variabel dan Konstanta Bertipe char Dalam hal ini variabel karakter bertipe char. Variabel ini dapat menampung data sebuah karakter. Untuk menuliskan sebuah konstanta bertipe char, karakter perlu ditulis di dalam tanda petik tunggal, contoh: 'A' karakter berupa huruf A • Variabel dan Konstanta Bertipe int Setelah pendefinisian seperti itu, variabel ini dapat digunakan untuk menampung nilai bertipe int. Sebuah konstanta bertipe int adalah bilangan bulat yang terletak antara minus 32768 hingga plus 32767 (pada PC berbasis DOS) dan tidak mengandung titik desimal.
VARIABEL,TIPE DATA, KONSTANTA (lanjt) •
•
Variabel dan Konstanta Bertipe long Apabila diinginkan untuk memproses bilangan bulat yang nilainya lebih besar daripada tipe int, Anda dapat menggunakan tipe long. Suatu variabel bertipe long didefinisikan dengan cara seperti di bawah ini: long jumlah_penduduk; Pada contoh ini, jumlah_penduduk didefinisikan bertipe long. Dengan demikian variabel ini dapat menampung nilai ratusan juta. Adapun konstanta bertipe long biasa ditulis dengan akhiran L. Sebagai contoh: 1543267635435L Variabel dan Konstanta Bertipe float, double dan long double Tipe-tipe data yang telah dibahas di depan (char, int dan long) berhubungan dengan bilangan bulat. Seandainya diinginkan untuk memproses bilangan yang mengandung nilai pecahan, bisa menggunakan tipe float, double atau long double. Ketiga tipe yang berhubungan dengan bilangan pecahan ini mempunyai perbedaan dalam hal: kepresisian data, dan jangkauan nilai yang dicakup.
VARIABEL,TIPE DATA, KONSTANTA (lanjt) 3. KONSTANTA • Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung. Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebih dahulu di awal program • Konstanta adalah ekspresi dengan nilai yang tetap. Terbagi dalam Nilai Integer, Nilai Floating-Point, Karakter and String.
– Nilai Integer : Merupakan nilai konstanta numerik yang mengidentifikasikan nilai integer decimal. Karena merupakan nilai numeric, maka tidak memerlukan tanda kutip (") maupun karakter khusus lainnya. Contoh : 1776 707 -273 – Nilai Floating Poin : Merepresentasikan nilai desimal dan/atau eksponen, termasuk titik desimal dan karakter e (Yang merepresentasikan “dikali 10 pangkat n” , dimana n merupakan nilai integer) contoh : 3.14159 // 3.14159 6.02e23 // 6.02 x 10 1.6e-19 // 1.6 x 10 3.0 // 3.0 - Karakter dan String :Merupakan konstanta non-numerik contoh :'z‘ ; 'p‘ ; "Hello world"
VARIABEL,TIPE DATA, KONSTANTA (lanjt) Konstanta Define (#define) • •
• • •
Kita dapat mendefinisikan sendiri nama untuk konstanta yang akan kita pergunakan, dengan menggunakan preprocessor directive #define. Dengan format : #define identifier value Contoh : #define PI 3.14159265 #define NEWLINE '\n' #define WIDTH 100 Setelah didefinisikan seperti diatas, maka kita dapat menggunakannya pada seluruh program yang kita buat, contoh : circle = 2 * PI * r; cout << NEWLINE; Pada dasarnya, yang dilakukan oleh kompiler ketika membaca #define adalah menggantikan literal yang ada (dalam contoh, PI, NEWLINE atau WIDTH) dengan nilai yang telah ditetapkan (3.14159265, '\n' dan 100). #define bukan merupakan instruksi, oleh sebab itu tidak diakhiri dengan tanda semicolon (;).
VARIABEL,TIPE DATA, KONSTANTA (lanjt) Deklarasi Konstanta (const) • Dengan prefix const kita dapat mendeklarasikan konstanta dengan tipe yang spesifik seperti yang kita inginkan. contoh : • const int width = 100; const char tab = '\t'; const zip = 12440; • Jika tipe data tidak disebutkan, maka kompiler akan mengasumsikan sebagai int.
OPERATOR •
•
•
OPERATOR PERBANDINGAN
< Kurang dari <= Kurang dari sama dengan > Lebih dari >= Lebih dari sama dengan == Sama dengan != Tidah sama dengan . OPERATOR LOGIKA && : Logika AND (DAN) || : Logika OR (ATAU) ! : Logika NOT (INGKARAN). KODE PENENTU FORMAT . %c : Membaca sebuah karakter . %s : Membaca sebuah string . %i, %d : Membaca sebuah bilangan bulat (integer) . %f, %e : Membaca sebuah bilangan pecahan (real) . %o : membaca sebuah bilangan octal . %x : Membaca sebuah bilangan heksadesimal . %u : Membaca sebuah bilangan tak be
STRUKTUR KONTROL • Sebuah program biasanya tidak terbatas hanya pada intruksi yang terurut saja, tetapi juga memungkinkan terjadinya percabangan, perulangan dan pengambilan keputusan. Untuk mengatasi kebutuhan itu C++ menyediakan struktur kontrol yang dapat menangani hal-hal tersebut. • Untuk membahas hal tersebut diatas, akan ditemui istilah block of instructions. Blok instruksi adalah sekumpulan instruksi yang dibatasi dengan tanda semicolon (;) tetapi dikelompokan dalam satu blok yang dibatasi dengan kurung kurawal { }.
STRUKTUR KONTROL (lanjt) •
Struktur Kondisional : if and else Digunakan untuk mengeksekusi sebuah atau satu blok instruksi jika kondisi terpenuhi, sintaks: if (condition) statement condition merupakan ekspresi yang dievaluasi. Jika kondisi bernilai true, maka statement akan dijalankan. Jika false, maka statement akan diabaikan dan program menjalankan instruksi selanjutnya.
• Struktur perulangan (loops)
Loops merupakan perulangan statement dengan jumlah tertentu jika kondisi terpenuhi.The while loop. Sintaks :while (expression) statement Fungsi dari statement diatas adalah mengulang statement jika expression bernilai true. - The do-while loop. Format :do statement while (condition); Secara fungsional, hampir sama dengan while loop, hanya condition dalam do-while dievaluasi setelah eksekusi saja statement , dengan kata lain, sedikitnya satu kali walaupun kondisi tidak terpenuhi. eksekusi statement
STRUKTUR KONTROL (lanjt) - The for loop. Format : for (initialization; condition; increase) statement; Fungsinya akan mengulang statement jika condition bernilai benar. Sama seperti while loop., hanya saja for memungkinkan untuk memberikan instruksi initialization dan intruksi increase, sehingga dapat menampilkan loop dengan counter.
•
Algoritma perulangan for :
- initialization, digunakan untuk memberikan nilai awal untuk
variable counter. Dieksekusi hanya sekali. - condition, Dievaluasi, jika bernilai true maka loop berlanjut, sebaliknya loop berhenti dan statement diabaikan - statement, dieksekusi, bisa berupa instruksi tunggal maupun blok instruksi (dalam tanda { } ). - increase, dieksekusi kemudian algoritma kembali ke step 2.
TERMA KASIH GBU