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, bool — tipe 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: umur ≠ Umur ≠ UMUR.
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 >> variabel — character 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 Kendali — if, 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.