Pengenalan Lengkap Bahasa Pemrograman C++ |
C++ adalah bahasa pemrograman tingkat tinggi yang dikembangkan oleh Bjarne Stroustrup pada awal 1980-an sebagai perpanjangan dari bahasa C. C++ mendukung pemrograman prosedural, berorientasi objek, dan generik, menjadikannya bahasa yang sangat fleksibel dan serbaguna.
1. Sejarah dan Pengembangan
- Dikembangkan oleh: Bjarne Stroustrup
- Pertama kali dirilis: 1985
- Tujuan: Untuk meningkatkan kemampuan bahasa C dengan penambahan konsep pemrograman berorientasi objek.
2. Karakteristik Utama C++
- Pemrograman Berorientasi Objek (OOP): Mendukung konsep OOP seperti enkapsulasi, pewarisan, dan polimorfisme.
- Pemrograman Generik: Mendukung template, yang memungkinkan pembuatan fungsi dan kelas generik.
- Manajemen Memori: Memberikan kontrol langsung terhadap manajemen memori melalui penggunaan pointer dan alokasi dinamis.
- Kinerja Tinggi: Karena dekat dengan bahasa rakitan, C++ memberikan kinerja yang sangat tinggi.
- Portabilitas: Kode C++ dapat dikompilasi di berbagai platform dengan sedikit atau tanpa modifikasi.
3. Struktur Program Dasar
Hello World
cpp#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
Penjelasan
#include <iostream>
: Direktif preprocessor untuk menyertakan header file untuk input dan output.int main()
: Fungsi utama di mana eksekusi program dimulai.std::cout
: Objek dari pustaka standar yang digunakan untuk menampilkan output.<<
: Operator pengiriman output.std::endl
: Manipulator untuk memasukkan baris baru.
4. Variabel dan Tipe Data
Deklarasi dan Inisialisasi
cppint a = 5; // Integer
double b = 3.14; // Floating-point
char c = 'A'; // Character
bool d = true; // Boolean
std::string e = "Hello"; // String (requires #include <string>)
5. Struktur Kontrol
If-Else
cppif (a > b) {
std::cout << "a is greater than b" << std::endl;
} else {
std::cout << "a is less than or equal to b" << std::endl;
}
Switch
cppswitch (a) {
case 1:
std::cout << "a is 1" << std::endl;
break;
case 2:
std::cout << "a is 2" << std::endl;
break;
default:
std::cout << "a is not 1 or 2" << std::endl;
}
Looping
cpp// For Loop
for (int i = 0; i < 5; i++) {
std::cout << i << std::endl;
}
// While Loop
int i = 0;
while (i < 5) {
std::cout << i << std::endl;
i++;
}
// Do-While Loop
int i = 0;
do {
std::cout << i << std::endl;
i++;
} while (i < 5);
6. Fungsi
Deklarasi dan Definisi Fungsi
cppint add(int x, int y) {
return x + y;
}
int main() {
int sum = add(5, 3);
std::cout << "Sum: " << sum << std::endl;
return 0;
}
Fungsi dengan Template
cpptemplate <typename T>
T add(T x, T y) {
return x + y;
}
int main() {
std::cout << "Sum: " << add<int>(5, 3) << std::endl;
std::cout << "Sum: " << add<double>(5.5, 3.3) << std::endl;
return 0;
}
7. Pemrograman Berorientasi Objek
Kelas dan Objek
cppclass Person {
public:
std::string name;
int age;
void display() {
std::cout << "Name: " << name << ", Age: " << age << std::endl;
}
};
int main() {
Person person;
person.name = "John";
person.age = 30;
person.display();
return 0;
}
Pewarisan
cppclass Person {
public:
std::string name;
int age;
void display() {
std::cout << "Name: " << name << ", Age: " << age << std::endl;
}
};
class Employee : public Person {
public:
std::string position;
void display() {
Person::display();
std::cout << "Position: " << position << std::endl;
}
};
int main() {
Employee emp;
emp.name = "Jane";
emp.age = 28;
emp.position = "Manager";
emp.display();
return 0;
}
Polimorfisme
cppclass Animal {
public:
virtual void sound() {
std::cout << "Animal sound" << std::endl;
}
};
class Dog : public Animal {
public:
void sound() override {
std::cout << "Woof" << std::endl;
}
};
class Cat : public Animal {
public:
void sound() override {
std::cout << "Meow" << std::endl;
}
};
int main() {
Animal* a;
Dog d;
Cat c;
a = &d;
a->sound();
a = &c;
a->sound();
return 0;
}
8. Manajemen Memori
Alokasi Dinamis
cppint* p = new int; // Alokasi memori untuk integer
*p = 10;
std::cout << *p << std::endl;
delete p; // Menghapus memori yang dialokasikan
Alokasi Array Dinamis
cppint* arr = new int[5];
for (int i = 0; i < 5; i++) {
arr[i] = i * 10;
}
for (int i = 0; i < 5; i++) {
std::cout << arr[i] << std::endl;
}
delete[] arr;
9. Pemrograman Generik
Penggunaan Template
cpptemplate <typename T>
class Calculator {
public:
T add(T x, T y) {
return x + y;
}
T subtract(T x, T y) {
return x - y;
}
};
int main() {
Calculator<int> intCalc;
std::cout << "Sum: " << intCalc.add(5, 3) << std::endl;
std::cout << "Difference: " << intCalc.subtract(5, 3) << std::endl;
Calculator<double> doubleCalc;
std::cout << "Sum: " << doubleCalc.add(5.5, 3.3) << std::endl;
std::cout << "Difference: " << doubleCalc.subtract(5.5, 3.3) << std::endl;
return 0;
}
10. Kesimpulan
C++ adalah bahasa pemrograman yang kuat dan serbaguna dengan berbagai fitur yang mendukung berbagai paradigma pemrograman. Dari pemrograman prosedural hingga berorientasi objek dan generik, C++ memungkinkan pengembang untuk membuat aplikasi yang efisien dan berperforma tinggi. Dengan memahami dasar-dasar C++ serta fitur-fitur lanjutannya, Anda akan mampu mengembangkan berbagai jenis aplikasi mulai dari perangkat lunak sistem hingga aplikasi bisnis dan game.
Sumber Daya Tambahan
- Buku: "The C++ Programming Language" oleh Bjarne Stroustrup
- Dokumentasi: C++ Reference
- Kursus Online: Udemy, Coursera, edX
- Komunitas: Stack Overflow, GitHub, Reddit (r/cpp)
Dengan dasar-dasar ini, Anda siap untuk mulai mempelajari dan mengembangkan aplikasi dengan C++.