C++

C++ (dibaca: C plus-plus) adalah bahasa pemrograman komputer yang dibuat oleh Bjarne Stroustrup, yang merupakan perkembangan dari bahasa C dikembangkan di Bell Labs (Dennis Ritchie). Pada awal tahun 1970-an, bahasa itu merupakan peningkatan dari bahasa sebelumnya, yaitu B.

Pada awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix. Pada perkembangannya, versi ANSI (American National Standards Institute) pada bahasa pemrograman C menjadi versi dominan, meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded. Dengan demikian, bahasa C++ dapat dikategorikan sebagai bahasa pemrograman tujuan umum (general-purpose programming language; GPL)

Bjarne Stroustrup pada Bell 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).

 Sejarah 
jmpl|Bjarne Stroustrup, pembuat dari C++, di kantor AT&T-nya di New Jersey c. 2000
Pada 1979, Bjarne Stroustrup, seorang ilmuan komputer Denmark, memulai pekerjaan pada "", pendahulunya C++. Motivasi untuk membuat bahasa pemrograman baru originated dari pengalaman Stroustrup dalam pemrograman untuk tesis PhD-nya. Stroustrup menemukan bahwa Simula mempunyai fitur yang sangat membantu untuk pengembangan perangkat lunak besar, tapi bahasanya terlalu lambat untuk penggunaan praktis, sementara BCPL cepat tapi levelnya terlalu rendah agar cocok untuk pengembangan perangkat lunak besar. Saat Stroustrup mulai bekerja pada AT&T Bell Labs, dia mempunyai masalah menganalisi kernel UNIX sehubungan dengan komputasi terdistribusi. Mengingat pengalaman PhD-nya, Stroustrup bertindak untuk meningkatkan bahasa C dengan fitur seperti Simula.

 Etimologi 
Menurut Stroustrup, "namanya menandakan sifat evolusioner dari perubahan dari C". Nama ini dikreditkan ke Rick Mascitti (pertenngahan-1983) dan digunakan pertama kali pada Desember 1983. Ketika Mascitti ditanyai secara informal pada tahun 1992 tentang penamaan, dia menunjukkan bahwa itu diberikan dalam semangat Tongue-in-cheek. Nama itu berasal dari operator C ++ (yang menambah nilai dari sebuah variabel) dan konvensi penamaan umum menggunakan "+" untuk mengindikasikan sebuah program komputer yang disempurnakan.

Selama pengembangan periode C++, bahasa ini disebut sebagai "new C" dan "C dengan kelas" sebelum mendapat nama akhir.

 Standardisasi 
+Standar C++ Tahun Standar C++ Nama informal 1998 ISO/IEC 14882:1998  C++98 2003 ISO/IEC 14882:2003  C++03 2011 ISO/IEC 14882:2011  C++11, C++0x 2014 ISO/IEC 14882:2014  C++14, C++1y 2017 ISO/IEC 14882:2017  C++17, C++1z 2020 ISO/IEC 14882:2020  C++20, C++2a

Pada tahun 1998, C++ Standar Komite (ISO/IEC JTC1/SC22/WG21 Working Group) mengeluarkan Standar Internasional ISO/IEC 14882:1998 yang digunakan selama beberapa tahun. Pada tahun 2003 dirilis versi yang telah dikoreksi, ISO/IEC 14882:2003.
Pada tahun 2005, Laporan Teknis yang disebut "Laporan Teknis Perpustakaan 1" (sering dikenal sebagai TR1) dirilis. Revisi terbaru dari standar C++ adalah C+11 (sebelumnya dikenal C++0x) telah disetujui oleh ISO/IEC pada tanggal 12 Agustus 2011 dan telah diterbitkan sebagai 14882:11.

Sebagai bagian dari proses standardisasi, ISO juga menerbitkan laporan dan spesifikasi teknis:

 ISO/IEC TR 18015:2006 dalam penggunaan dari C++ pada sistem tertanam dan implikasi performa bahasa C++ dan fitur perpustakaan.
 ISO/IEC TS 22277:2017 pada coroutine, terintegrasi ke dalam C++20
 ISO/IEC TS 19216:2018 pada pustaka jaringan
 ISO/IEC TS 21544:2018 pada modul, terintegrasi ke dalam C++20
 ISO/IEC TS 19570:2018 pada satu set ekstensi pustaka baru untuk paralelisme
 ISO/IEC TS 23619:2021 pada ekstensi baru untuk refleksi

Lebih banyak spesifikasi teknis sedang dalam pengembangan dan menunggu persetujuan, termasuk set ekstensi konkurensi baru.See a list at 

 Contoh Program C++ 
C++ mewarisi sebagian besar sintaks C. Berikut ini adalah program Hello world versi Bjarne Stroustrup yang menggunakan fasilitas stream pustaka dasar C++ untuk menulis pesan ke standard output:
#include <iostream>

int main()
{
    std::cout << "Hello, world!\n";
}

 Keterangan 

Baris pertama: #include <iostream.h>
Sebagai bagian dari proses kompilator, kompilator dari c++ menjalankan program yang dinamakan preprosesor. Preprosesor memiliki kemampuan menambahkan dan menghapus kode dari sumber. Pada bagian #include memberitahukan preprosesor untuk menyertakan kode dari iostream, berkas iostream berisi deklarasi untuk berbagai fungsi yang dibutuhkan oleh perangkat lunak, atau class-class yang dibutuhkan.

Baris kedua: int main()
Pernyataan ini mendeklarasikan fungsi utama, bahwa suatu program C++ dapat berisi banyak fungsi, yang harus selalu memiliki sebuah fungsi utama (main function). Fungsi adalah modul yang berisi kode-kode untuk menyelesaikan masalah-masalah tertentu. Kata Void menandakan fungsi main tidak bertipe.

Baris ketiga: {
Kurung kurawal buka menandakan awal program.

Baris keempat: std::cout << "Hello world\n";
Cout adalah sebuah object dari pustaka perangkat lunak standar C++ yang digunakan untuk mencetak string ke peranti output standar, yang biasanya adalah layar komputer, kompilator menghubungkan kode dari pustaka perangkat lunak standar itu dengan kode yang telah ditulis untuk mendapatkan hasil executable. Tanda \n adalah format modifier yang digunakan untuk berganti baris setelah menampilkan string, jika ada cout lain pada program tersebut, maka string yang menyertainya akan dituliskan pada baris bawahnya.

Baris kelima: }
Kurung kurawal tutup menandakan akhir program.

 Kata yang dipesan 
 Kelompok pertama 
C++ mempunyai 32 buah kata yang dipesan (reserved words). Kata kunci kelompok pertama merupakan turunan dari bahasa C, di antaranya:

 auto const double int short struct unsigned break continue else for long signed switch void case default enum goto register sizeof typedef volatile char do extern if return static union while

 Kelompok kedua 
Kata yang dipesan kelompok kedua berjumlah 30. Kata-kata ini adalah baru dan hanya ada di bahasa C++.

 asm dynamic_cast namespace reinterpret_cast try bool explicit new static_cast typeid catch false operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected true wchar_t

Kata-kata yang dipesan tersebut di atas tidak boleh dipakai sebagai nama variable, class, enum, macro, dan struct.

# include <stdio.h>

int maksimum (int,int);
void tulis (int);

main()
int nilai 1,nilai 2,nilai maks;
printf (*\n ketikkan dua bilangan bulat:);
scanf("%d%d",& nilai 1,nilai 2);

nilai maks=maksimum (nilai 1,nilai 2);
tulis(nilai maks);
returns 0;

int maksimum(int x1,int x2)
if (x1>x2)
return x1;
else
return x2;

void tulis(int x)
printf("\n hasilnya adalah:%d",x);

 Tipe data dasar 

Untuk menyimpan suatu variabel diperlukan tempat khusus di dalam memori komputer. Besar dan tipe dari variabel-variabel di dalam standar program C++ dispesifikasikan sebagai berikut.

 Nama Keterangan Ukuran Jangkauan char Abjad/karakter atau untuk bilangan bulat kecil 1 bita signed: -128 to 127
unsigned: 0 to 255 short int (short) Bilangan bulat dengan jangkauan pendek 2 bita signed: -32768 to 32767
unsigned: 0 to 65535 int Bilangan bulat 4 bita signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295 long int (long) Integer dengan jangkauan panjang 4 bita signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295 bool Boolean, dapat bernilai benar atau salah (true or false) i bita true or false float Angka dengan titik mengambang (bilangan cacah) 4 bita 3.4e +/- 38 (7 digit) double Bilangan cacah dengan ketelitian ganda 8 bita 1.7e +/- 308 (15 digits) long double Bilangan cacah dengan ketelitian ganda panjang 8 bita 1.7e +/- 308 (15 digits) wchar_t Karakter lebar, biasa dipakai untuk Unicode karakter 2 bita 1 karakter lebar

 Kompilator C++ 
 Acorn C/C++
 Borland C++
 C++/CX
 C++Builder
 Cfront
 Clang
 CodeWarrior
 Comeau C/C++
 ConceptGCC
 Digital Mars
Dev-C++
Eclipse IDE
Geany
 GNU Compiler Collection
 HP aC++
 IBM XL C++
 Intel C++ Compiler
 MinGW
NetBeans IDE
 Norcroft C compiler
 Open64
 Oracle Solaris Studio
 PathScale
 The Portland Group
 ROSE (compiler framework)
 Shed Skin
 Sublime Text
 Softune
 TenDRA Compiler
 THINK C
 Turbo C++
 Visual C++
 IBM VisualAge
Vim
 Watcom C/C++ compiler
 Zortech

 Keluarga bahasa pemrograman C++ 
 Algorithmic skeleton
 C++/CLI
 C++/CX
 Charm++
 Embedded C++
 Felix (programming language)
 Intel Array Building Blocks
 Intel Parallel Studio
 Managed Extensions for C++
 R++
 Sieve C++ Parallel Programming System
 Threading Building Blocks
 ΜC++

 Lihat pula 

 Dart (bahasa pemrograman)
 C#
 Carbon (bahasa pemrograman)
 Rust

 Referensi 

 Bacaan lanjutan 





















 Pranala luar 
 C++ Users Journal
 Standard Template Library
 Andrei Alexandrescu
 Code guru, C++ resource
 C++ basic tutorial
 http://www.cplusplus.com/
 http://www.cplusplus.com/doc/tutorial/
 http://www.cplusplus.com/doc/tutorial/program_structure/
 http://www.learncpp.com/
 http://www.cprogramming.com/
 http://en.cppreference.com/w/
 http://www.cs.cf.ac.uk/Dave/C/node3.html
 https://goonlinetools.com/cpp-compiler/
 http://www.thefreecountry.com/compilers/cpp.shtml
 http://www.compilers.net/dir/free/compilers/ccpp.htm 
 http://www.cppgameprogramming.com/
 http://www.cprogramming.com/game-programming.html


Kategori:Bahasa pemrograman
Kategori:Perangkat lunak lintas platform
Kategori:Bahasa pemrograman dengan standar ISO
Kategori:Bahasa pemrograman tingkat tinggi
Kategori:Bahasa pemrograman yang dibuat pada tahun 1983