cpp 12 July 2026

Bagian 1: C++ — Bahasa yang Tidak Pernah Tua, Cuma Kurang Dipelajari

Bagian 1: C++ — Bahasa yang Tidak Pernah Tua, Cuma Kurang Dipelajari

Saya masih ingat saat pertama kali duduk di bangku SMK, mengalahkan kantong kosong beli buku Programming C++ tebal secengkir kopi. Halaman-halamannya berdebu sebelum saya berani buka. Takut. Rasa “ini pasti buat orang jenius aja” menempel di dada.

Sekarang, saya berdiri di depan kelas — Anda duduk di bangku yang dulu saya tempati.

Dan saya bilang: C++ tidak buat jenius. C++ buat orang yang sabar.


Kenapa C++ Masih Hidup di Era Python & JavaScript?

Bayangkan bahasa pemrograman seperti alat musik. Python? Keyboard — tekan, langsung bunyi. JavaScript? Gitar akustik — portable, di mana aja bisa main. C++? Piano grand. Berat. Ribet setup-nya. Tapi kalau Anda mau belajar dasar musik benar — nada, tempo, dinamika — piano grand nggak akan bohong.

C++ lahir 1979 dari tangan Bjarne Stroustrup di Bell Labs. Awalnya bernama “C with Classes” — C yang dikasih kekuatan object-oriented. Nama “C++” sendiri? Operator ++ di C berarti increment. Filosofinya sederhana: C, tapi lebih maju satu langkah.

Tips dari Ruang Kelas 3A:
Banyak siswa tanya, “Pak, C++ bedanya sama C di mana?”
Jawaban singkat: C prosedural. C++ multi-paradigma.
C mikir: “Lakukan ini, lalu itu.”
C++ mikir: “Objek ini punya data, punya perilaku, diaurus sendiri.”
Nanti di Bagian 4 kita bahas class & object. Sabar.


Persiapan: Pilih Senjata Anda

Tiga IDE populer di SMK. Saya tidak akan suruh pilih satu — coba semua, baru putuskan.

1. Code::Blocks — The Classic

Ringan. Biasa di lab sekolah. Compiler GCC (MinGW) biasanya bundled sama installer.
Kelebihan: Debugger visual yang cukup ramah pemula.
Kekurangan: UI ketinggalan jaman. Sering crash kalau proyek gede.

2. Dev-C++ (Embarcadero) — The Lightweight

Ukuran kecil. Cocok laptop jadul 4GB RAM.
Kelebihan: Cepat dibuka. Shortcut compile-run: F11.
Kekurangan: Debugger kadang glitch. Jarang di-update.

3. VS Code + Extensions — The Modern Standard

Bukan IDE asli, tapi code editor yang jadi IDE lewat extension.
Extension wajib: C/C++ (Microsoft), C/C++ Extension Pack, Code Runner.
Butuh setup manual: Install compiler terpisah (MinGW-w64 atau WSL di Windows).

Peringatan Nyata:
Kalau pakai VS Code, jangan lupa tambahkan path bin folder MinGW ke Environment Variables Windows.
Tanpa ini, terminal VS Code bilang g++: command not found — dan Anda bakal bertanya-tanya kenapa “Sudah install tapi error mulu.”
Saya sudah lihat 23 siswa kesal gara-gara ini. Jangan jadi yang ke-24.


Langkah Praktik: Install Code::Blocks (Paling Cepat untuk Pemula)

  1. Buka codeblocks.org → klik Download → pilih Binary Release → cari file yang ada tulisan mingw di namanya (contoh: codeblocks-20.03mingw-setup.exe).
    Versi tanpa mingw butuh install compiler manual. Jangan pilih itu.

  2. Jalankan installer → Next terus sampai selesai. Saat pertama dibuka, Code::Blocks otomatis deteksi compiler GCC. Klik OK.

  3. Tes: File → New → Empty File → simpan sebagai test.cpp → ketik kode di bawah → tekan F9 (Build and Run).


Kode Pertama: Hello World — Tapi Dengan Komentar yang Berarti

#include <iostream>  // Pintu masuk ke layar & keyboard

using namespace std; // Biar nggak peru tulis std:: setiap saat

int main() {
    // Semula C++ cuma C yang dikasih kelas.
    // Sekarang, dia jadi fondasi game engine, OS, browser, dll.

    cout << "Halo, dunia! Ini program C++ pertamaku." << endl;
    cout << "Nama saya: [Ganti dengan nama Anda]" << endl;
    cout << "Umur saya: " << 17 << " tahun" << endl;

    return 0; // Bilang ke OS: "Program selesai dengan baik."
}

Penjelasan:
#include <iostream>library standar untuk input/output. Tanpa ini, cout & cin tidak dikenal.
using namespace std;namespace std punya cout, cin, endl. Tanpa baris ini, harus tulis std::cout setiap kali. Buat pemula, ini bermanfaat. Nanti di level atas, kita hindari ini biar code bersih.
int main()titik masuk program. Setiap program C++ wajib punya main(). int berarti fungsi ini mengembalikan angka (0 = sukses).
cout << ... << endl;cout = character output. Operator << alirkan data ke layar. endl = end line (pindah baris + flush buffer).
return 0;exit code. 0 artinya “bersih”. Angka lain = error.

Pengalaman Kelas:
Siswa sering lupa ; di akhir baris. Compiler marah: expected ';' before '}' token.
Aturan emas: Setiap statement di C++ diakhiri ;. Kecuali blok { ... } dan preprocessor #include.


Variabel & Tipe Data — Kotak-Kotak Memori

Bayangkan memori komputer seperti rak gudang. Variabel = kotak di rak. Tipe data = label di kotak: “Isi ini hanya angka bulat”, “Isi ini hanya huruf”, dst.

#include <iostream>
using namespace std;

int main() {
    // === Tipe Data Dasar ===
    int umur = 17;           // Bilangan bulat: -2 miliar s.d 2 miliar
    float tinggi = 165.5;    // Desimal presisi rendah (6-7 digit)
    double uang = 1500000.75; // Desimal presisi tinggi (15 digit) — default pakai ini
    char inisial = 'R';      // Satu karakter, pakai petik SATU
    bool lulus = true;       // Hanya true (1) atau false (0)
    string nama = "Rifqi";   // Teks, butuh #include <string> (sudah ada di iostream)

    // === Tampilkan Semua ===
    cout << "=== Profil Siswa RPL ===" << endl;
    cout << "Nama     : " << nama << endl;
    cout << "Inisial  : " << inisial << endl;
    cout << "Umur     : " << umur << " tahun" << endl;
    cout << "Tinggi   : " << tinggi << " cm" << endl;
    cout << "Tabungan : Rp " << uang << endl;
    cout << "Status   : " << (lulus ? "Lulus" : "Belum Lulus") << endl;

    return 0;
}

Penjelasan:
int, float, double, char, booltipe data primitif (bawaan bahasa).
string — sebenarnya class dari library <string>, tapi sudah include lewat <iostream>.
Operator ternary (kondisi ? benar : salah)shortcut if-else satu baris. Nanti dibahas di Bagian 3.
<< bisa chaining (dirangkai) — cout << a << b << c; efisien & rapi.

Tips:
Nama variabel case-sensitive: umurUmurUMUR.
Gunakan camelCase (namaLengkap, tinggiBadan) — standar industri & lepaskan kebiasaan nama_lengkap (snake_case) yang biasa di Python.


Input dari Keyboard — Program yang Mendengarkan

Program yang cuma print itu boros. Kita butuh interaksi.

#include <iostream>
#include <string> // Wajib include string biar aman (best practice)
using namespace std;

int main() {
    string nama, jurusan;
    int umur;
    float ipk;

    cout << "=== Form Pendaftaran Magang ===" << endl;
    cout << "Masukkan nama lengkap  : ";
    getline(cin, nama); // Baca SELURUH baris (termasuk spasi)

    cout << "Masukkan jurusan       : ";
    getline(cin, jurusan);

    cout << "Masukkan umur          : ";
    cin >> umur; // Baca sampai spasi/enter

    cout << "Masukkan IPK terakhir  : ";
    cin >> ipk;

    // Bersihkan buffer newline yang tersisa setelah cin >> ipk
    cin.ignore(); 

    cout << "\n=== Data Tersimpan ===" << endl;
    cout << "Nama    : " << nama << endl;
    cout << "Jurusan : " << jurusan << endl;
    cout << "Umur    : " << umur << " tahun" << endl;
    cout << "IPK     : " << ipk << endl;

    return 0;
}

Penjelasan:
cin >> variabelcharacter input. Baca sampai ketemu spasi, tab, atau enter. Cocok untuk int, float, char, string tanpa spasi.
getline(cin, variabel) — baca satu baris penuh termasuk spasi. Wajib untuk nama, alamat, kalimat.
Masalah klasik: Setelah cin >> ipk, cursor di akhir angka, tapi newline (\n) masih tersisa di buffer. Kalau diikuti getline(), dia kebaca “kosong” (kebaca newline tadi). Solusi: cin.ignore() buang newline sisa itu.

Peringatan Nyata (Lagi):
Siswa sering campur cin >> dan getline() tanpa cin.ignore(). Hasilnya: input nama dilewati.
Hafal mantra: “Setelah cin >> angka/float, selalu cin.ignore() sebelum getline().”
Nanti jadi refleks otot.


Latihan Mandiri — Jangan Cuma Baca, Jalankan

  1. Modifikasi Kode 1: Tambahkan variabel string citaCita → input pakai getline → tampilkan: “Cita-citaku jadi [citaCita].”
  2. Modifikasi Kode 2: Hitung luas persegi panjang — input panjang & lebar (float), output luas = panjang * lebar.
  3. Eksperimen Error: Hapus ; di salah satu baris → lihat pesan error compiler. Belajar baca error = separuh kemampuan debug.

Catatan Hati:
Compiler tidak musuh. Dia guru yang jujur — bilang ke Anda di mana salah, bukan siapa yang salah.


Penutup: Baris Pertama dari Ribuan Baris

Anda baru menjalankan program C++ pertama.

Mungkin hanya teks di layar hitam. Tapi di balik layar: Anda baru bicara dengan mesin dalam bahasa yang dia mengerti. Compiler membaca logika Anda, menerjemahkannya ke nol dan satu, lalu prosesor mengeksekusi — dalam pecahan detik.

C++ tidak meminta Anda pintar. Dia meminta Anda teliti. Sabar. Mau coba lagi saat error.

Besok (Bagian 2), kita akan belajar Alur Kendaliif, else, switch, dan perulangan. Di sinilah program mulai “mikir”.

Sampai jumpa di baris kode berikutnya.

Kode tidak akan menulis dirinya sendiri.
Tapi setiap baris yang Anda tulis — menulis masa depan Anda.