C++

C++ adalah bahasa pemrograman serbaguna yang dikembangkan oleh Bjarne Stroustrup pada tahun 1979 di Bell Labs. Bahasa ini awalnya merupakan ekstensi dari C dengan tambahan fitur pemrograman berorientasi objek (OOP), dan kini telah berkembang menjadi salah satu bahasa paling powerful untuk pengembangan perangkat lunak, mulai dari aplikasi desktop, game, hingga sistem embedded. Artikel ini akan membahas C++ dari level dasar hingga mahir, mencakup sintaks dasar, struktur kontrol, fungsi, pointer, manajemen memori, OOP, template, Standard Template Library (STL), dan topik lanjutan seperti multithreading serta optimasi kode.


cplus.png


1. Dasar-Dasar C++​

1.1 Struktur Program C++​

Setiap program C++ memiliki struktur dasar. Berikut adalah contoh program sederhana yang mencetak "Hello, World!":

C++:
#include <iostream>



int main() {

    std::cout << "Hello, World!" << std::endl;

    return 0;

}


Penjelasan:

  • #include <iostream>: Mengimpor library input/output untuk menggunakan std::cout.
  • int main(): Fungsi utama, titik masuk program.
  • std::cout: Objek untuk mencetak output ke konsol.
  • std::endl: Menambahkan baris baru dan mengosongkan buffer output.

1.2 Tipe Data dan Variabel​

C++ mendukung berbagai tipe data:

  • Tipe Dasar: int, float, double, char, bool.
  • Tipe Komposit: Array, string, struct.
  • Tipe Khusus: Pointer, referensi, enum.
Contoh deklarasi variabel:
C++:
int umur = 25;
float tinggi = 1.75;
char inisial = 'A';
bool isStudent = true;
std::string nama = "Budi";

1.3 Operator​

C++ memiliki operator aritmatika (+, -, *, /, %), relasional (==, !=, <, >), logika (&&, ||, !), dan bitwise (&, |, ^).

Contoh:
C++:
int a = 10, b = 5;
int hasil = a + b; // hasil = 15
bool isEqual = (a == b); // false

2. Struktur Kontrol​

2.1 Percabangan​

C++ mendukung if, else if, else, dan switch.

Contoh if:
C++:
int nilai = 85;
if (nilai >= 90) {
    std::cout << "A" << std::endl;
} else if (nilai >= 80) {
    std::cout << "B" << std::endl;
} else {
    std::cout << "C" << std::endl;
}

2.2 Perulangan​

C++ memiliki for, while, dan do-while.

Contoh for:
C++:
for (int i = 0; i < 5; i++) {
    std::cout << i << " ";
} // Output: 0 1 2 3 4

3. Fungsi​

Fungsi memungkinkan modularitas kode. Berikut adalah contoh fungsi untuk menghitung faktorial:
C++:
#include <iostream>

unsigned long long faktorial(int n) {
    if (n <= 1) return 1;
    return n * faktorial(n - 1);
}

int main() {
    int n = 5;
    std::cout << "Faktorial dari " << n << " adalah " << faktorial(n) << std::endl;
    return 0;
}

3.1 Parameter Passing​

C++ mendukung pass by value, pass by reference, dan pass by pointer.

Contoh pass by reference:
C++:
void swap(int& a, int& b) {
    int temp = a;
    a = b;
    b = temp;
}

4. Pointer dan Manajemen Memori​

4.1 Pointer​

Pointer menyimpan alamat memori variabel.

Contoh:
C++:
int x = 10;
int* ptr = &x; // ptr menyimpan alamat x
std::cout << *ptr << std::endl; // Output: 10

4.2 Manajemen Memori Dinamis​

C++ memungkinkan alokasi memori dinamis dengan new dan delete.

Contoh:
C++:
int* arr = new int[5]; // Alokasi array dinamis
for (int i = 0; i < 5; i++) {
    arr[i] = i + 1;
}
delete[] arr; // Membebaskan memori

4.3 Smart Pointer (C++11 dan seterusnya)​

C++11 memperkenalkan smart pointer seperti std::unique_ptr dan std::shared_ptr untuk manajemen memori otomatis.

Contoh unique_ptr:
C++:
#include <memory>
std::unique_ptr<int> ptr = std::make_unique<int>(100);
std::cout << *ptr << std::endl; // Output: 100

5. Pemrograman Berorientasi Objek (OOP)​

C++ mendukung OOP dengan konsep seperti kelas, objek, enkapsulasi, pewarisan, dan polimorfisme.

5.1 Kelas dan Objek​

Contoh kelas:
C++:
class Mahasiswa {
private:
    std::string nama;
    int umur;
public:
    Mahasiswa(std::string n, int u) : nama(n), umur(u) {}
    void tampilkanInfo() {
        std::cout << "Nama: " << nama << ", Umur: " << umur << std::endl;
    }
};

int main() {
    Mahasiswa mhs("Ali", 20);
    mhs.tampilkanInfo();
    return 0;
}

5.2 Pewarisan​

Pewarisan memungkinkan kelas turunan mewarisi properti kelas induk.

Contoh:
C++:
class Orang {
protected:
    std::string nama;
public:
    Orang(std::string n) : nama(n) {}
};

class Dosen : public Orang {
private:
    std::string mataKuliah;
public:
    Dosen(std::string n, std::string mk) : Orang(n), mataKuliah(mk) {}
    void tampilkan() {
        std::cout << "Dosen: " << nama << ", Mata Kuliah: " << mataKuliah << std::endl;
    }
};

5.3 Polimorfisme​

Polimorfisme memungkinkan fungsi berperilaku berbeda berdasarkan objek yang memanggilnya.

Contoh virtual function:
C++:
class Bentuk {
public:
    virtual double luas() = 0; // Pure virtual function
};

class Persegi : public Bentuk {
private:
    double sisi;
public:
    Persegi(double s) : sisi(s) {}
    double luas() override {
        return sisi * sisi;
    }
};

6. Template​

Template memungkinkan penulisan kode generik.

Contoh fungsi template:
C++:
template <typename T>
T maksimum(T a, T b) {
    return (a > b) ? a : b;
}

int main() {
    std::cout << maksimum(5, 10) << std::endl; // Output: 10
    std::cout << maksimum(3.14, 2.71) << std::endl; // Output: 3.14
    return 0;
}

7. Standard Template Library (STL)​

STL menyediakan kontainer, algoritma, dan iterator.

7.1 Kontainer​

Contoh penggunaan std::vector:
C++:
#include <vector>
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int x : vec) {
    std::cout << x << " ";
}

7.2 Algoritma​

Contoh penggunaan std::sort:
C++:
#include <algorithm>
std::vector<int> vec = {5, 2, 9, 1, 5};
std::sort(vec.begin(), vec.end()); // Mengurutkan vektor

8. Topik Mahir​

8.1 Multithreading (C++11)​

C++11 memperkenalkan library <thread> untuk pemrograman konkuren.

Contoh:
C++:
#include <thread>
void cetak() {
    std::cout << "Thread berjalan" << std::endl;
}

int main() {
    std::thread t(cetak);
    t.join(); // Menunggu thread selesai
    return 0;
}

8.2 Optimasi Kode​

  • Inline Function: Mengurangi overhead pemanggilan fungsi.
  • Const Correctness: Menggunakan const untuk mencegah modifikasi yang tidak diinginkan.
  • Move Semantics (C++11): Mengoptimalkan transfer kepemilikan objek.
Contoh move semantics:
C++:
#include <utility>
std::string s1 = "Hello";
std::string s2 = std::move(s1); // Memindahkan kepemilikan

9. Best Practices​

  • Gunakan const sebanyak mungkin untuk keamanan.
  • Hindari kebocoran memori dengan smart pointer.
  • Tulis kode yang modular dan mudah dibaca.
  • Gunakan STL untuk efisiensi dan keandalan.

10. Kesimpulan​

C++ adalah bahasa yang kuat dan fleksibel, cocok untuk berbagai aplikasi dari pengembangan game hingga sistem operasi. Dengan memahami konsep dasar hingga mahir seperti yang dijelaskan di atas, Anda dapat membangun aplikasi yang efisien dan skalabel. Terus berlatih dan eksplorasi fitur-fitur baru seperti C++20 untuk tetap relevan di dunia pemrograman.
About author
Administrator
ISE
ISE

Facebook Comment

Comments

There are no comments to display.

C++ information

Author
ISE
Article read time
4 min read
Views
106
Last update

More from ISE

Search Google Web Search Google Images Search Google Voice Search Google Videos Search Maps Translate Word
🔍
GE
Google Experiment
Visit Google Experiment
⋮
CS
Code Saya
Visit Code Saya
⋮
SK
Sekolah Koding
Visit Sekolah Koding
⋮
HF
Huggingface
Visit Huggingface
⋮
SL
Sololearn
Visit Sololearn
⋮
LM
Learnx
Visit Learnxinmyminutes
⋮
w3s
W3schools
Visit w3schools
⋮
CW
Codewars
Visit Codewars
⋮
GG
Geeksforgeeks
Visit Geeksforgeeks
⋮
EXC
Exercism
Visit Exercism
⋮
EDX
EDX
Visit EDX
⋮
Add Shortcut
WhatsApp

Customer Service

CS 1

Mr.Ibnu

Loading jadwal...

Hubungi via WhatsApp
CS 2

Mr.Husein

Loading jadwal...

Hubungi via WhatsApp
CS 3

Mr.Hasan

Loading jadwal...

Hubungi via WhatsApp
Top Bottom

Translate Website

Upload Custom Icon

coding Coding
programmer Programmer
webmaster Webmaster
banners.png Banners
Home
What's New Resources Media Gallery
Record your forum activity and save it as MP4
> INITIALIZING ISE CONNECTION...
> BYPASSING SECURITY PROTOCOLS...
> ESTABLISHING WORMHOLE LINK...
> Starting XenForo engine... [DONE]
> Calibrating singularity Hosting parameters... [DONE]
> Establishing Forum Style... [DONE]
> The Programmer Community ready in 3... 2... 1.