Pengertian C++ adalah bahasa pemrograman komputer yang di buat oleh Bjarne Stroustrup, yang merupakan perkembangan dari bahasa C dikembangkan di Bong Labs (Dennis Ritchie) pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa sebelumnya, yaitu B, Pada awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix, Pada perkembangannya, versi ANSI (American National Standart Institute) Bahasa pemrograman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada Bel labs pertama kali mengembangkan C++ pada awal 1980-an. Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low level coding). Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti inheritance dan overloading. Salah satu perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented Programming). Kelebihan bahasa C++ : a. Bahasa C++ tersedia hampir di semua jenis computer b. Kode bahasa C++ dengan portabilitas dan fleksibiitas yang tinggi untuk semua jenis computer c. Bahasa C++ hanya menyediakan sedikit kata – kata kunci (hanya terdapat 48 kata kunci) d. Proses eksekusi program bahasa C++ lebih cepat. Dengan demikian, aplikasi yang dibuat dengan bahasa C++ akan menjadi aplikasi yang efisien dan kompetitif e. Dukungan pustaka fungsi dan kelas yang banyak sehingga memungkinkan pembuatan aplikasi makro f. C++ adalah bahasa yang terstruktur, dengan demikian akan lebih mendukung OOP g. Bahasa C++ termasuk bahasa tingkat menengah dan lebih dekat dengan bahasa mesin h. Kode program bersifat reuseable, sehingga dapat digunakan kembali pada project lain dengan hanya menggunakan library dan file header i. C++ dapat membuat aplikasi graphic processor berkualitas tinggi Kekurangan bahasa C++ : a. Banyaknya operator serta fleksibilitas penulisan program kadang – kadang membingungkan pemakai (pemula) b. Bagi pemula pada umumnya akan kesulitan menggunakan pointer Struktur kebahasaan c++ Struktur penulisan kode program C++ pada dasarnya masih menuruni struktur penulisan Bahasa Pemrograman C. Bahasa Pemrograman C++ merupakan Bahasa Pemrograman sendiri dan hanya peluasan dari Bahasa Pemrograman C, dan kita masih dapat menggunakan bahasa C di tengah bahasa C++. Struktur program dari bahasa pemrograman C++ terdiri dari kumpulan baris pernyataan yang dibentuk dari sejumah blok fungsi dan keyword. kode program tersebut dimungkinkan untuk memerintah komputer untuk melaksanakan tugas yang diberikan. Program C maupun C++ selalu tersusun dari 5 (Lima) bagian utama, yaitu : 1. Preprocessor Directive (Pengarah Kompilator) 2. Declaration (Deklarasi) 3. Definition (Definisi) 4. Statement atau Expressions (Pernyataan atau Ekspresi) 5. Comments (Komentar) Syntax adalah tata kalimat atau sering disebut dengan kode. Syntax program di sini akan mewakili semua struktur dari bahasa pemrograman C++. Struktur bahasa C++ terdiri atas komentar, preprocessor directive, fungsi utama maupun tambahan, definisi fungsi dan deklarasi. Berikut ini syntax program beserta penjelasan masing-masing struktur yang ada dalam C++. view plainprint? 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. // Contoh komentar satu baris // #include <iostream> using namespace std; void prosedur() { char nama[20]="Fasesa"; cout<<" Nama saya adalah "<<nama<<endl; } int main() { cout<<"Selamat datang di Blog Fasesa Notes"<<endl; prosedur(); return 0; } 1. Komentar // Contoh komentar satu baris // Bagian ini berisi mengenai keterangan pada program kita. Tidak akan dieksekusi dan tidak akan ditampilkan ketika program dijalankan alias nggak ngaruh. Tapi cukup penting, karena komentar akan mempermudah orang lain yang ingin mempelajari program yang kita melalui keterangan yang ada. Dan juga sangat membantu kita megingat ketika kita membuat program dengan statement yang panjang dan terdiri dari banyak fungsi. Komentar ditulis dengan 2 cara yaitu : a. Dimulai dengan tanda // untuk komentar 1 baris (contoh di atas) b. Diapit dengan tanda /* ... */ untuk komentar multi baris 2. Preprocessore Directive (Pengarah Compiler) #include using namespace std; Preprocessor directive ditandai dengan simbol #. Bertugas untuk mengarahkan prepocessor yang akan digunakan untuk membaca file header atau bisa dikatakan sebagai pengatur proses kompilasi. Contoh preprocessor directive : #include, #define, #if, #else, dan lainnya. Contoh file header : , , , dan lainnya. 3. Fungsi Utama a. Fungsi Utama (main) dan Tambahan (function dan procedure) int main() { cout<<"Selamat datang di Blog Fasesa Notes"< prosedur(); return 0; } Fungsi utama adalah bagian yang pertama kali akan dieksekusi, walaupun sebelum bagian dari fungsi utama ini ada fungsi tambahan. Sehingga fungsi utama pasti ada di dalam program C++. Fungsi utama ini tersusun atas kata main lalu diikuti dengan tanda (). Lalu diikuti lagi dengan definisi fungsi (bagian dalam tanda “{}”) yang berisi deklarasi dan perintah-perintah yang akan dieksekusi dalam program tersebut. b. Fungsi Tambahan void prosedur() { char nama[20]="Fasesa"; cout<<" Nama saya adalah "< } Fungsi tambahan ini adalah fungsi yang mendukung dan merupakan pemecahan dari fungsi utama. Terdiri atas function dan procedure. Function merupakan fungsi dengan nilai balik, sedangkan procedure adalah fungsi tanpa nilai balik. Untuk fungsi tambahan nanti akan kita kupas lebih lebar lagi. 4. Definisi fungsi int main() { cout<<"Selamat datang di Blog Fasesa Notes"< prosedur(); return 0; } Definisi fungsi adalah bagian yang menyertai fungsi. Di dalamnya berisi syntax-syntax yang nantinya akan dieksekusi apabila fungsi tersebut dipanggil. Bagian definisi ini selalu diawali dengan tanda kurawal buka “{” dan diakhiri dengan tanda kurawal tutup “}”. Di dalam definisi fungsi ini terdapat beberapa statement. Statement harus diakhiri dengan tanda “;”. Tanda ini berfungsi untuk memberi tanda bahwa satu statement sudah selesai dan akan terjadi error jika tidak ditutupi dengan tanda “;”. Contoh : cout<<"Selamat datang di Blog Fasesa Notes"< 5. Bagian deklarasi void prosedur() { char nama[20]="Fasesa"; cout<<" Nama saya adalah "< } Bisa dikatakan sebagai statement tempat pengenalan variabel, konstanta, fungsi, array dan lainnya. Deklarasi yang sederhana da pada contoh di atas. Pada contoh di atas diperkenalkan tentang tipe data apa yang digunakan variabel nama dalam procedure tersebut. Kemudian diketahui pula nilai dari variabel nama adalah Fasesa. Kompilasi Kompilasi pada C++: Dalam proses kompilasi semua kode sumber dibaca terlebih dahulu dan jika tidak ada kesalahan dalam menulis program maka akan dibentuk kode mesinnya sehingga program bisa dijalankan dengan baik. Program yang melakukan tugas ini disebut compiler. Program hasil kompilasi atau compiler akan berbentuk executable. Program bisa langsung dijalankan tanpa harus memiliki Compiler di komputer yang menjalankan program tersebut. Bahasa yang menggunakan teknik kompilasi misalnya bahasa C, C++, Pascal, Assembly, dan masih banyak lagi. Berikut contoh-contoh compiler pada program C++: Acorn C/C++ Borland C++ C++/CX C++Builder Cfront Clang CodeWarrior Comeau C/C++ ConceptGCC Digital Mars GNU Compiler Collection HP aC++ IBM XL C++ Intel C++ Compiler MinGW Norcroft C compiler Open64 Oracle Solaris Studio PathScale The Portland Group ROSE (compiler framework) Shed Skin Softune TenDRA Compiler THINK C Turbo C++ Visual C++ Tiga Tipe Kesalahan pada C++ Sebagai Berikut: Kesalahan Sintaksis Bahasa C++ hanya dapat dieksekusi, jika dan hanya jika program tersebut memiliki sintaksis yag telah sepenuhnya benar. Jika tidak, maka proses akan berhenti dan memberikan pesan kesalahan. Sintaksis menunjukkan struktur program dan aturannya. Kesalahan Run-time Kesalahan tipe kedua adalah kesalahan run-time, disebut demikian karena kesalahan ini tidak akan muncul sebelum program dijalankan. Kesalahan ini juga sering disebut dengan exception karena kesalahan ini biasanya menunjukkan sesuatu yang ganjil terjadi. Kesalahan Logika Kesalahan tipe ketiga adalah kesalahan logika atau semantik. Jika terjadi kesalahan tipe ini, maka program akan tetap berjalan dengan sukses tanpa pesan kesalahan. Namun, program tersebut tidak menjalankan program dengan benar atau tidak menjalankan program sesuai dengan maksud yang diinginkan programmer. Tipe Data Tipe data merupakan identifier atau pengenal suatu variabel. Tipe data akan memberitahukan kepada compiler mengenai jenis tipe data dan seberapa lebar compiler mengalokasikan ruang memori untuk suatu variabel. Sehingga dengan mekanise alokasi memori pada pemrograman C++, program yang berjalan akan lebih efisien dari segi memori. Tipe data dalam pemrograman terkhusus C++ dapat dibedakan berdasarkan adanya tanda (signed) dan tidak adanya tanda (unsigned). Perbedaan antara keduanya adalah adanya tanda bilangan yang menunjukan positif dan negatif. Untuk tipe data unsigned (tanpa tanda) suatu bilangan hanya diawali dari 0 ke suatu jangkauan tertentu, sedangkan untuk tipe signed (bertanda), bilangan diawali dari nilai negatif (-) menuju ke jangkauan nilai positif (+). Tipe Data Deskripsi Ukuran Memori Jangkauan int Bilangan bulat 2 byte -32768 hingga 32768 short int Sama dengan int namun jangkauanya lebih pendek 2 byte -32768 hingga 32768 long int Memiliki jangkauan lebih panjang dari int 4 byte -2147483648 hingga 2147483648 bool Tipe data untuk menampung nilai kebenaran (flag) 1 byte 1 atau 0 (True atau False) float Bilangan floating point atau koma 4 byte 3,4 x 10^-38 hingga 3,4 x 10^+38 double Sama dengan float namun memiliki jangkauan dua kali dari float 8 byte 1,7 x 10^-308 hingga 1,7 x 10^+308 long double Sama dengan double namum memiliki jangkauan lebih lebar 10 byte 3,4 x 10^-4932 hingga 3,4 x 10^+4932 char Menampung tipe karakter 1 byte -128 hingga 128 wchar_t Sama dengan char namun memiliki jangkauan lebih lebar 2 byte hingga 4 byte 1 wide character Tipe Data Deskripsi Ukuran Memori Jangkauan Unsigned char Menampung karakter 1 byte 0-255 Unsigned int Bilangan bulat tak bertanda atau positif 4 byte 0-4294967295 Unsigned long int Long integer 4 byte 0-4294967295 Unsigned short int Short integer 2 byte 0-65535 Deklarasi Deklarasi Variabel Pendeklarasian variabel sangatlah mudah, yaitu dengan menuliskan terlebih dahulu tipe data dan diikuti nama variabelnya. Sebagai contoh: int a; int b; Penulisan diatas dapat dirangkum menjadi int a,b; Berdasarkan cakupanya, variabel dapat dibedakan menjadi dua yaitu variabel global dan lokal. Variabel global merupakan variabel yang berlaku untuk semua kode program. Variabel ini dapat dipanggil dimanapun dari bagian suatu program. Sedangkan variabel lokal adalah variabel yang hanya berlaku pada suatu fungsi tertentu saja dan variabel tersebut tidak berdampak pada variabel diluar fungsi. Untuk lebih jelasknya perhatikan contoh berikut: 1 2 3 4 5 6 7 8 #include <iostream> using namespace std; int global; //Merupakan variabel global int main(){ int lokal = 39; //Merupakan variabel lokal return 0; } Deklarasi Konstanta Konstanya merupakan variabel dengan nilai yang tetap dan tidak dapat dilakukan perubahan. Pendeklarasian konstanta dapat dilakukan dengan dua cara yaitu: 1. Dengan menggunakan instruksi const const float phi = 3.14; const char karakter = ‘a’; 2. Dengan menggunakan preprocessor #define #define phi = 3,14; Pada proses deklarasi dengan preprocessor, kamu tidak perlu menyertakan tipe data dari nilai konstanta tersebut. Operator Operator adalah simbol khusus yang biasa dilibatkan dalam pembuatan program untuk melakukan suatu operasi matematika maupun manipulasi logika. Pada dasarnya, ada tiga jenis operator dalam pemrograman C++: Operator Unary - operator yang dikenakan untuk satu buah nilai (operand). Operator Binary - operator yang dikenakan untuk dua buah nilai (operand). Operator Ternary - operator yang dikenakan untuk tiga buah nilai (operand) Dengan catatan jika kita hanya melihat dari jumlah operand. Berikut adalah daftar operator yang dapat anda jadikan acuan pembuatan program. 1 Assignment Operators Operator ini berfungsi untuk memberikan nilai kepada variabel. Kita akan menggunakan = ( tanda sama dengan ) untuk memberi nilai. Berikut cara penggunaanya: nama = "Damas"; umur = 22; Berikut contoh program sederha penggunaan assignment operator pada C++: #include <iostream> using namespace std; int main () { int a, b; // a:?, a = 10; // a:10, b:? b = 4; // a:10, b:4 a = b; // a:4, b:4 b = 7; // a:4, b:7 cout << "a:"; b:? cout << a; cout << " b:"; cout << b; } Lalu outputnya adalah: a:4 b:7 Mengapa hal itu bisa terjadi demikian? Jika kita perhatkan, kita mendeklarasikan variabel a dan b. Lalu kita memberikan nilai 10 untuk a dan 4 untuk b pada awalnya. Lalu kita memberikan nilai b terhadap variabel a.Perhatikan bagaimana sebuah variabel tidak terpengaruh oleh modifikasi akhir dari b, meskipun kita menyatakan a = b sebelumnya, anda pasti paham maksud saya.Karena sebuah operasi akan selalu berlangsung dari kanan ke kiri.Dan variabel hanya akan menyimpan data atau nilai terakhir yang diberikan. 2 Arithmetic Operators Operator ini digunakan untuk melakukan sebuah opearasi penghitungan atau aritmatika dalam bahasa pemrograman. Tugasnya untuk memecahkan masalah matematika. Operator aritmatika yang sering digunakan dalam C++ adalah: + untuk penjumlahan - untuk pengurangan * untuk perkalian / untuk pembagian % untuk sisa bagi (modulo) Berikut adalah contoh penggunaanya: x = 11 % 3; Dan tentunya hasil opeasi diatas dapat ditebak, ya hasilnya adalah 2, karena disini kita mencari sisa bagi dimana hasil bagi 11 dan 3 = 3, sedangkan sisa baginya adalah 2. 3Compound Assignment Operator ini memodifikasi nilai variabel saat ini dengan melakukan operasi di atasnya. Operator += Keterangan Penjumlahan Contoh Penggunaanya z += x sama dengan, z = z + x Operator Keterangan Contoh Penggunaanya -= Pengurangan z -= x sama dengan, z = z - x *= Perkalian z *= x sama dengan, z = z * x /= Pembagian z /= x sama dengan, z = z / x >>= Right shift AND z >>= 2 sama dengan, z = z >> 2 <<= Left shift AND z <<= 2 sama dengan, z = z << 2 &= Bitwise AND z &= 2 sama dengan, z = z & 2 ^= Bitwise exclusive OR z ^= 2 sama dengan, z = z ^ 2 Berikut contoh program c++ menggunakan Compound Assignment. #include <iostream> using namespace std; int main () { int a, b=3; a = b; a += 2; // sama dengan a = a + 2 cout << a; } Intinya: “menggunakan dua operand dan memberikan hasilnya ke operand kiri”. 4 Increment and Decrement Operators Kedua operator ini sangatlah penting: Operator Increment (++) dan operator decrement (–) digunakan untuk meningkatkan atau mengurangi satu nilai yang tersimpan dalam sebuah variabel. Maksudnya seperti ini: x = x + 1 ; y = y - 1 ; Jika sebelumnya anda menulis kode seperti diatas maka akan sama hasilnya dengan kode berikut: ++ x ; -- y ; //atau x ++ ; y -- ; TIPS: Operator Increment adalah operator yang digunakan untuk menaikan nilai variabel sebesar 1, sedangkan decrement digunakan untuk menurunkan nilai sebesar 1. Berikut contoh program Increment dalam C++: #include <iostream> using namespace std; int main () { int a, b; a = 3; b = ++a; cout << "a:" << a; cout << " b:" << b; } Jika anda paham konsepnya anda pasti tahu hasil akhir dari variabel a akan bernilai 4, dan b bernilai 4 karena nilai dari b adalah nilai a yang telah ditingkatkan. Kemudian nantinya anda akan mendengar istilah: Pre Increment (++c) dan Post Increment (c++). Yang membedakannya adalah Jika Pre-increment akan menenambahkan nilai 1 sebelum operasi lain dijalankan, maka Post-increment akan menambahkan 1 nilai sesudah proses lain dijalankan. Silahkan coba kode program berikut ini: #include <iostream> using namespace std; int main(){ // Mendeklarasikan Variabel KD int KD; // Mengisi nilai kedalam Variabel KD // dengan nilai 10 KD = 10; // Melakukan Pre-Increment cout<<"Nilai KD awal : "<<KD<<endl; cout<<"Nilai ++MD : "<<++KD<<endl; cout<<"Nilai KD : "<<KD<<endl; // Mengubah nilai yang terdapat dalam variabel KD // dengan nilai 20 KD = 20; // Melakukan Post-Increment cout<<"\nNilai KD awal : "<<KD<<endl; cout<<"Nilai KD++ : "<<KD++<<endl; cout<<"Nilai KD : "<<KD<<endl; return 0; } Anda akan sering menemukannya operator tersebut dalam program looping. 5 Relational and Comparison Operators Operator selanjutnya adalah operator relasi - operator ini akan banyak kita gunakan dalam suatu statement bersyarat yang selalu menghasilkan nilai true atau false. Kita akan sering menggunakan operator ini untuk menentukan kondisi. Operator Keterangan == Sama dengan != Tidak sama dengan > Lebih dari < Kurang dari >= Lebih dari atau sama dengan <= Kurang dari atau sama dengan Operator ini digunakan untuk menguji hubungan antara nilai dan atau variabel. Berikut contoh penggunaanya dalam program: #include <iostream> using namespace std; void main() { bool nilai; nilai = 3 > 2 ; // hasil ungkapan : benar cout << "Nilai = " << nilai; nilai = 2 > 3 ; // hasil ungkapan : salah cout << "Nilai = " << nilai; } Dan berikut adalah hasil akhirnya: Nilai = 1 Nilai = 0 6 Logical Operators Operator Logika adalah operator yang digunakan untuk membandingkan dua nilai variabel atau lebih. Hasil dari operasi ini adalah nilai boolean true atau false. Operator Keterangan && AND - Jika semua operand bernilai benar (TRUE) maka kondisi bernilai benar. || OR - Jika salah satu operand bernilai benar (TRUE) maka kondisi bernilai benar. ! NOT - Digunakan untuk membalik kondisi. Jika kondisi benar (TRUE) maka akan berubah menjadi salah (FALSE), begitu pula sebaliknya. Berikut adalah contoh penggunaanya: ( (5 == 5) && (3 > 6) ) // Hasil = false, karena ( true && false ) ( (5 == 5) || (3 > 6) ) // Hasil = true, karena ( true || false ) 7 Conditional Ternary Operator Pada dasarnya, operator kondisi merupakan penyederhanaan dari bentuk if..else yang setiap blok dari if dan else hanya terdiri dari satu statement/perintah. Struktur penulisan operator kondisi: (ekspresi) ? (jika benar) : (jika salah); Berikut contoh dalam program c++: #include <iostream> using namespace std; int main () { int a,b,c; a=2; b=7; c = (a>b) ? a : b; cout << c; } 8 Comma Operator Operator koma (,) memiliki beberapa fungsi, yaitu: Untuk memisahkan deretan deklarasi variabel Untuk memisahkan argumen fungsi menyatukan dua ekspresi menjadi sebuah pernyataan, dan memungkinkan pemberian lebih dari satu ekspresi pada inisialisasi nilai awal. Berikut contoh program dengan operator koma: #include <iostream> using namespace std; int main () { int a,b; a = (b=3, b+2); cout << a; } Agak rumit namun penjelasanya seperti ini: Pertama variabel b akan diberi nilai 3, kemudian nilai b (3) akan dijumlahkan dengan 2 sehingga variabel a bernilai 5. 9 Bitwise Operators Operator bitwise adalah operator yang digunakan untuk memanipulasi bit-bit nilai data yang ada di memori. Operator ini hanya dapat digunakan untuk tipe data: char int long int Untuk operator bitwise dalam bentuk bit, dilakukan dalam bit per bit (binary). & AND Bitwise AND | OR Bitwise inclusive OR ^ NOT Unary complement (bit inversion) << SHL Shift bits left >> SHR Shift bits right 10 Operator Lainnya Berikut adalah operator lainnya yang didukung oleh bahasa C++: Operator Keterangan sizeof Untuk mengembalikan nilai dari ukuran variabel. Contoh sizeof(a), dimana ‘a’ adalah integer maka akan mengembalikan nilai 4 . (dot) and -> (arrow) Operator member yang digunakan untuk mereferensikan member class, structures, dll. Cast Untuk mengkonversi suatu data ke tipe data lain. Contohnya int(2.2000) akan menjadi 2 * Digunakan sebagai operator pointer Dan berikut adalah daftar operator berdasarkan kategorinya: Category Operator Associativity Postfix () [] -> . ++ - - Left to right Unary + - ! ~ ++ - - (type)* & sizeof Right to left Multiplicative */% Left to right Additive +- Left to right Shift << >> Left to right Relational < <= > >= Left to right Equality == != Left to right Bitwise AND & Left to right Bitwise XOR ^ Left to right Bitwise OR | Left to right Logical AND && Left to right Logical OR || Left to right Conditional ?: Right to left Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left Comma , Left to right