C++ adalah bahasa pemrograman tingkat menengah (intermediate-level language) yang dikembangkan oleh Bjarne Stroustrup pada awal tahun 1980-an sebagai ekstensi dari bahasa C. Kekuatan utama C++ terletak pada kemampuannya untuk menggabungkan efisiensi pemrograman tingkat rendah (seperti manipulasi memori langsung) dengan paradigma pemrograman berorientasi objek (OOP) yang kuat.
Memahami dasar teori C++ memerlukan pemahaman tentang tiga pilar utama yang mendefinisikan bahasa ini:
Pada intinya, C++ mendukung gaya pemrograman prosedural. Program disusun sebagai serangkaian instruksi atau prosedur (fungsi). Meskipun C++ modern sangat menekankan OOP, banyak kode C++ yang efisien masih ditulis dengan struktur prosedural, terutama untuk operasi yang sangat dekat dengan perangkat keras. Konsep seperti fungsi, variabel, dan struktur kontrol (if-else, for, while) adalah fondasi utama di sini.
Inilah yang membedakan C++ secara signifikan dari C. OOP adalah metodologi di mana program dirancang menggunakan konsep Objek yang merupakan instansi dari Kelas. Empat pilar utama OOP yang wajib dikuasai dalam teori C++ meliputi:
C++ adalah bahasa yang dikompilasi. Kode sumber (.cpp) tidak langsung dieksekusi oleh mesin. Prosesnya melibatkan beberapa tahap krusial:
#include dan #define..o atau .obj)..exe pada Windows atau ELF pada Linux).Pemahaman tentang bagaimana header files (.h) berhubungan dengan source files (.cpp) sangat penting untuk menghindari kesalahan linker dan memahami proses kompilasi secara keseluruhan.
Salah satu aspek paling mendasar namun kompleks dari C++ adalah kontrol langsung atas memori melalui Pointer. Pointer adalah variabel yang menyimpan alamat memori dari variabel lain.
// Deklarasi pointer
int data = 42;
int* ptr = &data; // ptr menyimpan alamat 'data'
std::cout << *ptr; // Output: 42 (Dereferencing)
Teori di balik pointer memungkinkan implementasi struktur data kompleks seperti linked list, tree, dan alokasi memori dinamis menggunakan operator new dan delete. Kegagalan dalam mengelola memori dinamis ini sering menyebabkan kebocoran memori (memory leaks).
Selain pointer, Referensi (&) juga berperan penting, berfungsi sebagai alias atau nama alternatif untuk variabel yang sudah ada. Referensi sering digunakan dalam passing parameter ke fungsi untuk menghindari penyalinan data yang besar, meningkatkan efisiensi.
STL adalah seperangkat pustaka kuat yang menyediakan struktur data umum dan algoritma yang efisien. STL bukan bagian dari sintaks inti C++, namun merupakan komponen standar yang sangat penting. STL terdiri dari tiga bagian utama:
vector, list, map). std::vector, array dinamis, adalah pengganti modern untuk array statis C.sort, find, copy).Penguasaan dasar teori C++ ini membentuk landasan yang solid bagi programmer untuk menulis perangkat lunak yang cepat, efisien, dan terstruktur dengan baik, baik itu untuk sistem operasi, game engine, maupun aplikasi performa tinggi.