TecnoUpdate Menu

Belajar C++

Modul Pembelajaran C++ - TecnoUpdate

🚀 Modul Pembelajaran C++

Belajar C++ dari Dasar hingga Mahir - TecnoUpdate.web.id

Pengenalan C++

Apa itu C++?

C++ adalah bahasa pemrograman yang dikembangkan oleh Bjarne Stroustrup pada tahun 1979 sebagai pengembangan dari bahasa C. C++ adalah bahasa pemrograman yang powerful, efisien, dan banyak digunakan dalam pengembangan sistem operasi, game, aplikasi desktop, dan software yang membutuhkan performa tinggi.

Kenapa Belajar C++?

  • Performance Tinggi: C++ memberikan kontrol penuh terhadap memori dan hardware
  • Fleksibel: Mendukung pemrograman prosedural, object-oriented, dan generic
  • Banyak Digunakan: Digunakan dalam game engines (Unreal Engine), browser (Chrome, Firefox), sistem operasi
  • Foundation yang Kuat: Memahami C++ memudahkan belajar bahasa lain
  • Karir yang Menjanjikan: Permintaan programmer C++ tetap tinggi dengan gaji kompetitif

Persiapan Belajar

Untuk memulai belajar C++, Anda memerlukan:

  1. Compiler C++: MinGW (Windows), GCC (Linux), Clang (Mac)
  2. Text Editor / IDE: Visual Studio Code, Code::Blocks, Dev-C++, atau Visual Studio
  3. Konsistensi: Latihan rutin dan kesabaran
💡 Tips: Jangan hanya membaca, praktikkan setiap contoh kode yang ada di modul ini. Programming adalah skill yang diasah dengan praktek!

Dasar-Dasar C++

Program C++ Pertama

Mari kita mulai dengan program "Hello World" klasik:

hello.cpp
// Program Hello World
#include <iostream>

using namespace std;

int main() {
    cout << "Hello, World!" << endl;
    return 0;
}

Penjelasan Kode

  • #include <iostream> - Menyertakan library untuk input/output
  • using namespace std - Menggunakan namespace standard
  • int main() - Fungsi utama program
  • cout - Untuk menampilkan output ke layar
  • endl - Pindah baris baru
  • return 0 - Mengakhiri program dengan status sukses

Struktur Program C++

// 1. Preprocessor Directives
#include <iostream>

// 2. Namespace
using namespace std;

// 3. Fungsi Main
int main() {
    // 4. Statement/Perintah
    cout << "Belajar C++" << endl;
    
    // 5. Return Statement
    return 0;
}

Komentar dalam C++

// Ini adalah komentar satu baris

/* 
   Ini adalah komentar
   multi baris
*/

int x = 10; // Komentar di akhir baris

📝 Latihan 1:

Buat program yang menampilkan nama Anda dan hobi favorit menggunakan cout!

Variabel dan Tipe Data

Apa itu Variabel?

Variabel adalah tempat penyimpanan data dalam memori komputer. Setiap variabel memiliki nama, tipe data, dan nilai.

Tipe Data Dasar

#include <iostream>
using namespace std;

int main() {
    // Integer (bilangan bulat)
    int umur = 25;
    
    // Float (bilangan desimal)
    float tinggi = 175.5;
    
    // Double (bilangan desimal presisi tinggi)
    double pi = 3.14159265359;
    
    // Character (karakter tunggal)
    char grade = 'A';
    
    // Boolean (true/false)
    bool lulus = true;
    
    // String (teks)
    string nama = "TecnoUpdate";
    
    // Menampilkan nilai variabel
    cout << "Nama: " << nama << endl;
    cout << "Umur: " << umur << " tahun" << endl;
    cout << "Tinggi: " << tinggi << " cm" << endl;
    
    return 0;
}

Tabel Tipe Data

Tipe Data Ukuran Range
int 4 bytes -2,147,483,648 to 2,147,483,647
float 4 bytes 6-7 digit presisi
double 8 bytes 15-16 digit presisi
char 1 byte -128 to 127
bool 1 byte true atau false

Input dari User

#include <iostream>
using namespace std;

int main() {
    string nama;
    int umur;
    
    cout << "Masukkan nama Anda: ";
    cin >> nama;
    
    cout << "Masukkan umur Anda: ";
    cin >> umur;
    
    cout << "\nHalo " << nama << "!" << endl;
    cout << "Umur Anda: " << umur << " tahun" << endl;
    
    return 0;
}
💡 Tips: Gunakan getline(cin, variabel) untuk input string yang mengandung spasi!

📝 Latihan 2:

Buat program kalkulator sederhana yang meminta user memasukkan dua angka, lalu tampilkan hasil penjumlahan, pengurangan, perkalian, dan pembagian!

Operator dalam C++

1. Operator Aritmatika

int a = 10, b = 3;

cout << a + b;  // Penjumlahan: 13
cout << a - b;  // Pengurangan: 7
cout << a * b;  // Perkalian: 30
cout << a / b;  // Pembagian: 3 (integer division)
cout << a % b;  // Modulus (sisa bagi): 1

2. Operator Assignment

int x = 5;

x += 3;  // x = x + 3 (sekarang x = 8)
x -= 2;  // x = x - 2 (sekarang x = 6)
x *= 2;  // x = x * 2 (sekarang x = 12)
x /= 3;  // x = x / 3 (sekarang x = 4)
x %= 3;  // x = x % 3 (sekarang x = 1)

3. Operator Perbandingan

int a = 5, b = 10;

cout << (a == b);  // Sama dengan: false (0)
cout << (a != b);  // Tidak sama dengan: true (1)
cout << (a > b);   // Lebih besar: false (0)
cout << (a < b);   // Lebih kecil: true (1)
cout << (a >= b);  // Lebih besar atau sama: false (0)
cout << (a <= b);  // Lebih kecil atau sama: true (1)

4. Operator Logika

bool x = true, y = false;

cout << (x && y);  // AND: false
cout << (x || y);  // OR: true
cout << (!x);      // NOT: false

5. Operator Increment & Decrement

int x = 5;

x++;  // Post-increment: x = 6
++x;  // Pre-increment: x = 7
x--;  // Post-decrement: x = 6
--x;  // Pre-decrement: x = 5
⚠️ Perhatian: Pembagian integer (int / int) akan menghasilkan integer. Gunakan tipe float atau double untuk hasil desimal!

📝 Latihan 3:

Buat program yang menghitung luas dan keliling lingkaran berdasarkan jari-jari yang diinput user! (π = 3.14159)

Kontrol Alur Program

1. If-Else Statement

#include <iostream>
using namespace std;

int main() {
    int nilai;
    
    cout << "Masukkan nilai: ";
    cin >> nilai;
    
    if (nilai >= 90) {
        cout << "Grade: A" << endl;
    } else if (nilai >= 80) {
        cout << "Grade: B" << endl;
    } else if (nilai >= 70) {
        cout << "Grade: C" << endl;
    } else if (nilai >= 60) {
        cout << "Grade: D" << endl;
    } else {
        cout << "Grade: E" << endl;
    }
    
    return 0;
}

2. Switch-Case Statement

int pilihan;

cout << "Menu:\n1. Tambah\n2. Kurang\n3. Kali\n4. Bagi\n";
cin >> pilihan;

switch(pilihan) {
    case 1:
        cout << "Operasi Penjumlahan";
        break;
    case 2:
        cout << "Operasi Pengurangan";
        break;
    case 3:
        cout << "Operasi Perkalian";
        break;
    case 4:
        cout << "Operasi Pembagian";
        break;
    default:
        cout << "Pilihan tidak valid";
}

3. Loop: For

// Contoh 1: Menampilkan angka 1-10
for (int i = 1; i <= 10; i++) {
    cout << i << " ";
}

// Contoh 2: Tabel perkalian
int n = 5;
for (int i = 1; i <= 10; i++) {
    cout << n << " x " << i << " = " << (n * i) << endl;
}

4. Loop: While

int i = 1;

while (i <= 5) {
    cout << "Iterasi ke-" << i << endl;
    i++;
}

5. Loop: Do-While

int angka;

do {
    cout << "Masukkan angka positif: ";
    cin >> angka;
} while (angka <= 0);

cout << "Terima kasih!";

6. Break dan Continue

// Break: Keluar dari loop
for (int i = 1; i <= 10; i++) {
    if (i == 5) break;
    cout << i << " ";
}

// Continue: Skip ke iterasi berikutnya
for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) continue;
    cout << i << " "; // Hanya angka ganjil
}

📝 Latihan 4:

Buat program yang menampilkan pola bintang segitiga siku-siku menggunakan nested loop!

*
**
***
****
*****

Function (Fungsi)

Apa itu Function?

Function adalah blok kode yang dapat digunakan kembali untuk melakukan tugas tertentu. Function membantu membuat kode lebih terstruktur dan mudah dipelihara.

1. Function Tanpa Parameter dan Return

#include <iostream>
using namespace std;

void sapa() {
    cout << "Selamat datang di TecnoUpdate!" << endl;
}

int main() {
    sapa();  // Memanggil function
    sapa();
    return 0;
}

2. Function dengan Parameter

void sapa(string nama) {
    cout << "Halo, " << nama << "!" << endl;
}

int main() {
    sapa("Budi");
    sapa("Ani");
    return 0;
}

3. Function dengan Return Value

int tambah(int a, int b) {
    return a + b;
}

double luasLingkaran(double r) {
    double pi = 3.14159;
    return pi * r * r;
}

int main() {
    int hasil = tambah(5, 3);
    cout << "Hasil: " << hasil << endl;
    
    double luas = luasLingkaran(7.0);
    cout << "Luas: " << luas << endl;
    
    return 0;
}

4. Function Overloading

// Beberapa function dengan nama sama tapi parameter berbeda
int kali(int a, int b) {
    return a * b;
}

double kali(double a, double b) {
    return a * b;
}

int kali(int a, int b, int c) {
    return a * b * c;
}

5. Recursion

// Function yang memanggil dirinya sendiri
int faktorial(int n) {
    if (n <= 1) {
        return 1;
    }
    return n * faktorial(n - 1);
}

int main() {
    cout << "5! = " << faktorial(5) << endl;  // Output: 120
    return 0;
}
💡 Tips: Gunakan function untuk menghindari duplikasi kode. Jika Anda menulis kode yang sama lebih dari sekali, buat function untuk itu!

📝 Latihan 5:

Buat function untuk mengecek apakah sebuah bilangan adalah bilangan prima atau bukan!

Array dan String

1. Array (Larik)

Array adalah kumpulan data dengan tipe yang sama yang disimpan secara berurutan dalam memori.

#include <iostream>
using namespace std;

int main() {
    // Deklarasi array
    int angka[5] = {10, 20, 30, 40, 50};
    
    // Akses elemen array (index mulai dari 0)
    cout << angka[0] << endl;  // Output: 10
    cout << angka[2] << endl;  // Output: 30
    
    // Mengubah nilai array
    angka[1] = 25;
    
    // Loop melalui array
    for (int i = 0; i < 5; i++) {
        cout << angka[i] << " ";
    }
    
    return 0;
}

2. Array Multi-Dimensi

// Array 2 dimensi (matriks)
int matriks[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

// Akses elemen
cout << matriks[0][0];  // Output: 1
cout << matriks[1][2];  // Output: 6

// Loop 2 dimensi
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        cout << matriks[i][j] << " ";
    }
    cout << endl;
}

3. String dalam C++

#include <string>

// Deklarasi string
string teks = "TecnoUpdate";

// Operasi string
cout << teks.length();        // Panjang string
cout << teks[0];               // Karakter pertama: T
cout << teks.substr(0, 5);    // Substring: Tecno

// Menggabungkan string
string depan = "Hello";
string belakang = "World";
string gabung = depan + " " + belakang;  // Hello World

// Membandingkan string
if (depan == "Hello") {
    cout << "String sama!";
}

4. String Methods Penting

string s = "Belajar C++";

s.length()           // Mendapatkan panjang
s.empty()            // Cek apakah kosong
s.clear()            // Mengosongkan string
s.append(" Fun")    // Menambah di akhir
s.insert(0, "Ayo ") // Menyisipkan
s.erase(0, 4)        // Menghapus karakter
s.find("C++")       // Mencari substring
s.replace(0,3,"X")  // Mengganti substring

5. Input String dengan Spasi

string nama;

// Untuk input dengan spasi
cout << "Nama lengkap: ";
getline(cin, nama);

cout << "Halo, " << nama;

📝 Latihan 6:

Buat program yang menghitung rata-rata nilai dari array yang berisi 5 nilai mahasiswa!

Pointer

Apa itu Pointer?

Pointer adalah variabel yang menyimpan alamat memori dari variabel lain. Pointer sangat penting dalam C++ untuk manipulasi memori yang efisien.

1. Dasar Pointer

#include <iostream>
using namespace std;

int main() {
    int angka = 42;
    int* ptr = &angka;  // Pointer ke angka
    
    cout << "Nilai angka: " << angka << endl;
    cout << "Alamat angka: " << &angka << endl;
    cout << "Nilai ptr: " << ptr << endl;
    cout << "Nilai yang ditunjuk ptr: " << *ptr << endl;
    
    // Mengubah nilai melalui pointer
    *ptr = 100;
    cout << "Nilai angka sekarang: " << angka << endl;
    
    return 0;
}

2. Operator Pointer

  • & (address-of) - Mendapatkan alamat memori variabel
  • * (dereference) - Mengakses nilai yang ditunjuk pointer

3. Pointer dan Array

int arr[5] = {10, 20, 30, 40, 50};
int* ptr = arr;  // Array name adalah pointer

// Akses elemen array dengan pointer
cout << *ptr << endl;       // 10 (elemen pertama)
cout << *(ptr + 1) << endl; // 20 (elemen kedua)
cout << *(ptr + 2) << endl; // 30 (elemen ketiga)

// Loop dengan pointer
for (int i = 0; i < 5; i++) {
    cout << *(ptr + i) << " ";
}

4. Pointer sebagai Parameter Function

void tukar(int* a, int* b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    int x = 5, y = 10;
    
    cout << "Sebelum: x=" << x << ", y=" << y << endl;
    tukar(&x, &y);
    cout << "Sesudah: x=" << x << ", y=" << y << endl;
    
    return 0;
}

5. NULL Pointer

int* ptr = nullptr;  // Pointer yang tidak menunjuk ke apapun

if (ptr == nullptr) {
    cout << "Pointer kosong";
}
⚠️ Perhatian: Selalu inisialisasi pointer! Pointer yang tidak diinisialisasi dapat menyebabkan error yang sulit dilacak.

📝 Latihan 7:

Buat function yang menerima array dan ukurannya sebagai parameter (gunakan pointer), lalu tampilkan semua elemen array tersebut!

Object-Oriented Programming (OOP)

Apa itu OOP?

OOP adalah paradigma pemrograman yang mengorganisir kode dalam bentuk objek yang memiliki atribut (data) dan method (fungsi). OOP membuat kode lebih terstruktur, mudah dipelihara, dan dapat digunakan kembali.

1. Class dan Object

#include <iostream>
using namespace std;

// Definisi Class
class Mobil {
public:
    // Atribut (Properties)
    string merk;
    string warna;
    int tahun;
    
    // Method (Function)
    void info() {
        cout << "Mobil " << merk << " warna " << warna;
        cout << " tahun " << tahun << endl;
    }
    
    void klakson() {
        cout << "Tin tin!" << endl;
    }
};

int main() {
    // Membuat object
    Mobil mobil1;
    mobil1.merk = "Toyota";
    mobil1.warna = "Merah";
    mobil1.tahun = 2023;
    
    mobil1.info();
    mobil1.klakson();
    
    return 0;
}

2. Constructor

class Mahasiswa {
public:
    string nama;
    string nim;
    float ipk;
    
    // Constructor
    Mahasiswa(string n, string i, float ip) {
        nama = n;
        nim = i;
        ipk = ip;
    }
    
    void tampil() {
        cout << "Nama: " << nama << endl;
        cout << "NIM: " << nim << endl;
        cout << "IPK: " << ipk << endl;
    }
};

int main() {
    Mahasiswa mhs1("Budi", "12345", 3.75);
    mhs1.tampil();
    
    return 0;
}

3. Encapsulation (Private & Public)

class BankAccount {
private:
    string nomorRekening;
    double saldo;
    
public:
    // Constructor
    BankAccount(string no, double s) {
        nomorRekening = no;
        saldo = s;
    }
    
    // Getter
    double getSaldo() {
        return saldo;
    }
    
    // Setter dengan validasi
    void setor(double jumlah) {
        if (jumlah > 0) {
            saldo += jumlah;
            cout << "Setor berhasil!" << endl;
        }
    }
    
    void tarik(double jumlah) {
        if (jumlah > 0 && jumlah <= saldo) {
            saldo -= jumlah;
            cout << "Tarik berhasil!" << endl;
        } else {
            cout << "Saldo tidak cukup!" << endl;
        }
    }
};

int main() {
    BankAccount rek1("001", 1000000);
    rek1.setor(500000);
    cout << "Saldo: " << rek1.getSaldo() << endl;
    
    return 0;
}

4. Inheritance (Pewarisan)

// Parent Class
class Hewan {
protected:
    string nama;
    int umur;
    
public:
    Hewan(string n, int u) : nama(n), umur(u) {}
    
    void info() {
        cout << "Nama: " << nama << ", Umur: " << umur << endl;
    }
};

// Child Class
class Kucing : public Hewan {
private:
    string ras;
    
public:
    Kucing(string n, int u, string r) : Hewan(n, u) {
        ras = r;
    }
    
    void meong() {
        cout << nama << " berkata: Meong!" << endl;
    }
    
    void infoLengkap() {
        info();
        cout << "Ras: " << ras << endl;
    }
};

int main() {
    Kucing kucing1("Mimi", 2, "Persian");
    kucing1.infoLengkap();
    kucing1.meong();
    
    return 0;
}

5. Polymorphism

class Bentuk {
public:
    virtual double luas() {
        return 0;
    }
};

class Lingkaran : public Bentuk {
private:
    double jariJari;
    
public:
    Lingkaran(double r) : jariJari(r) {}
    
    double luas() override {
        return 3.14159 * jariJari * jariJari;
    }
};

class PersegiPanjang : public Bentuk {
private:
    double panjang, lebar;
    
public:
    PersegiPanjang(double p, double l) : panjang(p), lebar(l) {}
    
    double luas() override {
        return panjang * lebar;
    }
};
💡 Tips OOP: Gunakan enkapsulasi untuk melindungi data, inheritance untuk menghindari duplikasi kode, dan polymorphism untuk fleksibilitas!

📝 Latihan 8:

Buat class "Buku" dengan atribut judul, penulis, tahun, dan harga. Tambahkan constructor, getter/setter, dan method untuk menampilkan info buku!

© 2025 TecnoUpdate.web.id - Belajar Pemrograman C++ dari Dasar

Terus berlatih dan jangan pernah menyerah! 💪

Mengenal Artificial Intelligence

Belajar Css

Belajar Java Script

Belajar Java

Belajar Kotlin

Belajar Python Dasar

AI Robot
🤖 TecnoBot AI
Halo! Saya TecnoBot 🤖 Tanya saya tentang perkembangan teknologi terkini!