Cheat Sheet C++
Terakhir diperbarui
Hello World & struktur program
Eksekusi dimulai di main, yang mengembalikan sebuah int.
| Elemen | Kode |
|---|---|
| Menyertakan header | #include <iostream> |
| Titik masuk program | int main() { ... } |
| Mencetak satu baris | std::cout << "Hello, World!" << std::endl; |
| Membaca input | std::cin >> x; |
| Memakai namespace std | using namespace std; |
| Mengembalikan status sukses | return 0; |
| Komentar | // line dan /* block */ |
Tipe data
| Tipe | Keterangan |
|---|---|
int | Bilangan bulat (biasanya 32 bit) |
long / long long | Bilangan bulat yang lebih lebar |
float / double | Bilangan floating point |
char | Satu byte / karakter |
bool | true atau false |
std::string | Teks dinamis dari <string> |
auto | Compiler menyimpulkan tipenya |
std::size_t | Tipe unsigned untuk ukuran dan indeks |
Variabel & reference
Reference adalah alias; pointer menyimpan alamat.
| Operasi | Sintaks |
|---|---|
| Mendeklarasikan & menginisialisasi | int x = 5; |
| Inisialisasi dengan kurung kurawal | int x{5}; |
| Konstanta | const double PI = 3.14159; |
| Konstanta saat compile | constexpr int N = 10; |
| Reference (alias) | int &r = x; |
| Pointer | int *p = &x; |
| Dereference pointer | *p = 10; |
| Inferensi tipe | auto y = 3.14; |
Alur kontrol
| Pernyataan | Sintaks |
|---|---|
| If / else | if (x > 0) { ... } else { ... } |
| Switch | switch (n) { case 1: ...; break; default: ...; } |
| While loop | while (i < n) { ... } |
| Do-while loop | do { ... } while (i < n); |
| For loop | for (int i = 0; i < n; i++) { ... } |
| Range-based for | for (auto x : vec) { ... } |
| Range-based dengan reference | for (auto &x : vec) { ... } |
| Break / continue | break; keluar dari loop, continue; lompat ke iterasi berikutnya |
Fungsi
| Operasi | Sintaks |
|---|---|
| Mendefinisikan fungsi | int add(int a, int b) { return a + b; } |
| Tanpa nilai kembalian | void greet() { ... } |
| Argumen default | int pow(int b, int e = 2) { ... } |
| Pass by reference | void inc(int &x) { x++; } |
| Const reference (tanpa salinan) | void print(const std::string &s) { ... } |
| Overloading | int max(int a, int b); dan double max(double a, double b); |
| Lambda | auto f = [](int x) { return x * 2; }; |
| Lambda dengan capture | auto g = [n](int x) { return x + n; }; |
Class & OOP
| Operasi | Sintaks |
|---|---|
| Mendefinisikan class | class Dog { ... }; |
| Access specifier | public:, private:, protected: |
| Variabel anggota | std::string name; |
| Constructor | Dog(std::string n) : name(n) {} |
| Destructor | ~Dog() { ... } |
| Fungsi anggota | void bark() { ... } |
| Membuat object | Dog d("Rex"); |
| Inheritance | class Puppy : public Dog { ... }; |
| Fungsi virtual | virtual void speak(); |
Container STL
Container umum dari library standar.
| Container | Kegunaan & contoh |
|---|---|
std::vector<int> | Array dinamis: v.push_back(1); v.size(); |
std::string | Teks: s += "!"; s.length(); |
std::array<int, 3> | Array berukuran tetap dengan info batas |
std::map<K, V> | Key-value terurut: m["a"] = 1; |
std::unordered_map<K, V> | Hash map (pencarian lebih cepat, tanpa urutan) |
std::set<T> | Nilai unik terurut: s.insert(5); |
std::pair<A, B> | Dua nilai: make_pair(1, "x") |
std::queue / std::stack | Adapter antrean FIFO / stack LIFO |
Algoritma & iterator STL
Dari <algorithm>; sebagian besar menerima rentang iterator begin/end.
| Operasi | Sintaks |
|---|---|
| Iterator begin / end | v.begin(), v.end() |
| Mengurutkan | std::sort(v.begin(), v.end()); |
| Mengurutkan menurun | std::sort(v.begin(), v.end(), std::greater<int>()); |
| Mencari nilai | auto it = std::find(v.begin(), v.end(), 5); |
| Menghitung yang cocok | std::count(v.begin(), v.end(), 5); |
| Elemen terkecil / terbesar | std::max_element(v.begin(), v.end()); |
| Menjumlahkan sebuah rentang | std::accumulate(v.begin(), v.end(), 0); |
| Mengubah setiap elemen | std::transform(v.begin(), v.end(), v.begin(), fn); |
Smart pointer & C++ modern
Utamakan smart pointer daripada new/delete mentah agar pembersihan berjalan otomatis.
| Fitur | Sintaks |
|---|---|
| Kepemilikan tunggal | auto p = std::make_unique<Dog>("Rex"); |
| Kepemilikan bersama | auto p = std::make_shared<Dog>("Rex"); |
| Reference tanpa kepemilikan | std::weak_ptr<Dog> w = p; |
| Move semantics | auto v2 = std::move(v1); |
| Nullptr | int *p = nullptr; |
| Structured binding | auto [key, val] = *it; |
| Nilai opsional | std::optional<int> maybe; |
| Template | template <typename T> T add(T a, T b) { return a + b; } |
Sintaks C++, container STL, dan fitur modern yang paling sering kamu pakai, dalam satu halaman. Cheat sheet C++ ini adalah referensi cepat untuk menulis C++: tipe data, reference, class, container library standar seperti vector dan unordered_map, serta smart pointer yang menggantikan new/delete mentah.
Semua yang ada di sini adalah C++ standar (C++11 ke atas) dan bisa kamu compile dengan g++ atau clang++. Salin yang kamu butuhkan, atau coba potongan kode apa pun langsung di playground C++, tanpa perlu menginstal compiler. Sedang belajar bahasanya? Kursus C++ interaktif gratis dari Coddy membahas pointer, STL, dan class langkah demi langkah.
FAQ cheat sheet C++
Apakah cheat sheet C++ ini gratis?
Ya. Cheat sheet C++ ini sepenuhnya gratis, tanpa perlu daftar. Simpan di bookmark dan kembali kapan pun kamu perlu mencari sintaks, container STL, atau smart pointer.
Apa perbedaan pointer dan reference di C++?
*p. Reference (int &r = x) adalah alias untuk variabel yang sudah ada: harus diikat saat dideklarasikan, tidak pernah bisa null atau diikat ulang, dan dipakai seperti variabel itu sendiri. Pakai reference untuk parameter pass-by-reference yang lebih rapi, dan pointer saat kamu butuh indireksi yang opsional atau bisa diarahkan ulang.Sebaiknya saya pakai new/delete atau smart pointer?
std::unique_ptr dan std::shared_ptr (lewat make_unique/make_shared) membebaskan memorinya secara otomatis saat keluar dari scope, sehingga mencegah memory leak dan double free yang biasa muncul dengan new/delete manual. Pakai new/delete mentah hanya di kode tingkat rendah yang punya alasan khusus.Bisakah saya berlatih C++ secara online?
Bisa. Buka playground C++ untuk compile dan menjalankan potongan kode apa pun dari cheat sheet ini di browsermu, tanpa perlu menginstal compiler. Kalau kamu ingin belajar terarah, kursus C++ interaktif gratis dari Coddy membawamu dari variabel dan perulangan sampai class dan STL, langkah demi langkah.
Apakah cheat sheet ini cocok untuk pemula?
Cocok. Isinya disusun mulai dari komponen dasar yang paling umum (tipe, alur kontrol, fungsi) sampai yang lanjutan (STL dan smart pointer), jadi kamu bisa memakai bagian atas sejak hari pertama dan pelan-pelan menguasai sisanya.