Selama tiga puluh section terakhir kita memakai satu kebiasaan yang sama: ketika sebuah fitur perlu dipastikan, kita membuka rujukan resmi. Course ini akan tetap ada sebagai peta jalan, tetapi kemampuan membaca dokumentasi resmi adalah bekal yang jauh lebih tahan lama — fitur baru terbit setiap tiga tahun, sedangkan buku dan tutorial butuh waktu untuk menyusul. Chapter ini memetakan sumber-sumber resmi yang terus kita gunakan, menjelaskan struktur masing-masing, dan menutup dengan program kecil yang mencetak daftar rujukan tersebut sebagai ceklis belajar kita.

Mengapa Sumber Primer Sejak Awal #

Dokumentasi resmi adalah sumber primer: teks yang ditulis oleh orang-orang yang menjaga standar, compiler, atau library-nya sendiri. Sumber sekunder seperti artikel blog dan video sangat membantu untuk mengintroduksi ide, tetapi sering tertinggal satu-dua versi standar tanpa penjelasan. Kebiasaan yang kita anjurkan sepanjang course: jika ada klaim yang terdengar mencurigakan, periksa sumber primernya sebelum mempercayainya. Semua sumber di chapter ini gratis, mutakhir, dan bisa diakses dari browser — tidak ada alasan untuk tidak memilikinya di daftar bookmark.

cppreference.com: Rujukan Utama Sehari-hari #

Situs yang paling sering kita buka adalah cppreference.com , rujukan komunitas untuk bahasa dan standard library. Strukturnya sederhana untuk dihafal: bagian /w/cpp/language mendokumentasikan aturan bahasa (misalnya aturan konversi tipe), sedangkan /w/cpp/header memetakan seluruh header standar seperti <vector> dan <algorithm>. Ketika mencari, cara tercepat adalah mengetik nama fungsi atau class diikuti kata “cppreference” di mesin pencari — halaman pertama hampir selalu tepat sasaran. Setiap halaman fitur memiliki pola tetap yang layak kita kenali:

  • Signature dan Parameters: deklarasi fungsi lengkap dengan versi standarnya (since C++11, since C++20) — periksa ini dulu agar tidak meniru fitur yang tidak didukung compiler kita.
  • Return value dan Exceptions: apa yang dikembalikan dan kapan exception dilempar; bagian ini sering mengubah cara kita memakai fungsi.
  • Notes dan Example: catatan kejelianh seperti perilaku pada container kosong, ditutup contoh kecil yang bisa langsung diuji.

isocpp.org dan Draft Standar #

isocpp.org adalah rumah komunitas standar C++ yang dikelola Standard C++ Foundation. Situs ini menjadi gerbang ke C++ FAQ untuk pertanyaan praktis klasik, status standar yang merangkum isi tiap versi C++, dan pengumuman pertemuan komite. Satu tingkat di bawahnya ada eel.is/c++draft , draft standar ISO yang utuh. Kita jarang perlu membacanya di awal, tetapi bagian definisi ([intro.defs]) dan aturan lifetime sangat berharga saat kita berdebat tentang perilaku yang presisi — buku populer kadang menyederhanakan detail sekecil ini.

Dokumentasi Resmi Compiler #

Dokumentasi compiler menjawab pertanyaan yang tidak ada di cppreference: flag apa saja yang tersedia, bagaimana warning tertentu bekerja, dan bagaimana optimizer berperilaku. Tiga rujukan utama:

  • GCC Online Docs — manual GCC dan dokumentasi libstdc++ , implementasi standard library yang kita pakai setiap hari di course ini.
  • Clang Docs — manual Clang termasuk daftar diagnostik dan panduan sanitizer.
  • MSVC C++ Docs — dokumentasi Microsoft untuk compiler Visual Studio, termasuk perbedaan perilaku pada Windows.

Cara Efektif Membaca sebuah Halaman #

Kebiasaan membaca dokumentasi bisa dilatih seperti kebiasaan membaca kode: selalu mulai dari signature, lanjut ke requirement, baru ke contoh. Untuk melatihnya, program berikut mencetak daftar rujukan resmi yang kita kurasi sebagai ceklis — simpan hasilnya di tempat mudah dijangkau:

cpp
#include <iostream>
#include <string>
#include <vector>

// Daftar rujukan dokumentasi resmi yang kita kurasi untuk course ini.
struct Rujukan {
    std::string kategori;
    std::string nama;
    std::string url;
};

int main() {
    std::vector<Rujukan> rujukan = {
        {"Bahasa",   "cppreference - bahasa",  "https://en.cppreference.com/w/cpp/language"},
        {"Bahasa",   "cppreference - header",  "https://en.cppreference.com/w/cpp/header"},
        {"Komunitas","isocpp.org",             "https://isocpp.org"},
        {"Standar",  "Draft standar C++",      "https://eel.is/c++draft"},
        {"Compiler", "GCC Online Docs",        "https://gcc.gnu.org/onlinedocs/"},
        {"Compiler", "Clang Docs",             "https://clang.llvm.org/docs/"},
        {"Compiler", "MSVC C++ Docs",          "https://learn.microsoft.com/en-us/cpp/"},
    };

    std::string kategoriAktif;
    int nomor = 0;
    for (const Rujukan& r : rujukan) {
        if (r.kategori != kategoriAktif) {
            std::cout << "[" << r.kategori << "]\n";
            kategoriAktif = r.kategori;
        }
        ++nomor;
        std::cout << "  " << nomor << ". " << r.nama << "\n"
                  << "     " << r.url << "\n";
    }
    std::cout << "Total rujukan: " << nomor << "\n";
    return 0;
}

Output yang Dihasilkan:

text
[Bahasa]
  1. cppreference - bahasa
     https://en.cppreference.com/w/cpp/language
  2. cppreference - header
     https://en.cppreference.com/w/cpp/header
[Komunitas]
  3. isocpp.org
     https://isocpp.org
[Standar]
  4. Draft standar C++
     https://eel.is/c++draft
[Compiler]
  5. GCC Online Docs
     https://gcc.gnu.org/onlinedocs/
  6. Clang Docs
     https://clang.llvm.org/docs/
  7. MSVC C++ Docs
     https://learn.microsoft.com/en-us/cpp/
Total rujukan: 7

Bedah program di atas:

  1. Struct Rujukan: menyimpan satu sumber sebagai pasangan kategori, nama, dan URL; data yang terstruktur membuat daftar mudah diperluas — tambahkan baris baru dan program otomatis menomorinya.
  2. std::vector<Rujukan>: daftar diurutkan berdasarkan kategori sejak awal, sehingga pencetakan bisa mengandalkan urutan masuk.
  3. Pembanding kategoriAktif: judul kategori hanya dicetak ketika nilainya berubah; pola grouping sederhana ini sering muncul pada laporan berkelompok.
  4. Penghitung nomor: meningkat untuk setiap rujukan lintas kategori, jadi nomornya berlanjut dari grup sebelumnya.

Dengan peta besar sudah tersedia, langkah berikutnya adalah memperdalam satu wilayah yang paling sering kita kunjungi sepanjang course ini: standard library. Chapter berikutnya mengurutkan halaman-halaman cppreference ke dalam lima kategori besar beserta kebiasaan membacanya.