Belajar OOP C++

 https://www.duniailkom.com/tutorial-belajar-oop-c-plus-plus-cara-membuat-object-pada-bahasa-c-plus-plus/

ZZZZZ

class Komputer {
  // kode untuk class Komputer
};
 
class Laptop: public Komputer {

membuat dua buah class: Komputer dan Laptop. Perhatikan perintah di baris 9, itulah cara menurunkan class Komputer kepada class Laptop. Yakni dengan cara menulis tanda titik dua, diikuti hak akses class yang dalam hal ini public, beserta nama parent class yang ingin diturunkan.

ZZZZZ

int main()
{
  SmartLaptop smartLaptopAndi;

SmartLaptop mengacu ke class diatas, smartLaptopAndi adalah variabel pemanggil pada isi program (menggunakan operator titik)


ZZZZZZZ
cout << laptopAndi.Komputer::cekInfo()

Agar bisa mengakses function cekInfo(), saya menggunakan perintah cout << laptopAndi.Komputer::cekInfo() seperti di baris 23. Inilah cara mengakses member function yang sudah ter-overridden.

Format penulisan yang dipakai adalah: namaObject.NamaClass::namaFunction().

ZZZZZ

for(int i : arr) {
    cout << "Akar kuadrat dari " << i <<" = "<< sqrt(i) << endl;
  }
variabel i akan di isi dengan setiap element array arr sepanjang blok perulangan for. Perintah ini terus dijalankan sampai element terakhir dari array arr, kita tidak perlu menulis berapa kali perulangan harus dijalankan.

ZZZZZ


void hitungLuasSegitiga(int alas, int tinggi) {
  double luas = (alas * tinggi) / 2.0;
  cout << "Luas segitiga adalah: " << luas << endl;
}

PROG LANJUT

double hitungLuasSegitiga(int alas, int tinggi) {
  double luas = (alas * tinggi) / 2.0;
  return luas;
}
 
int main()
{
  double var1 = hitungLuasSegitiga(5, 7);
  cout << "Luas segitiga adalah: " << var1 << endl;

Sebelumnya di awal baris 5 ini terdapat keyword void karena function hitungLuasSegitiga() tidak memiliki perintah return.

Perintah return sendiri ada di baris 7, yakni return luas. Artinya, kembalikan nilai yang tersimpan di dalam variabel luas kepada kode yang akan memanggil function tersebut.

Di baris 12 saya membuat variabel var1 bertipe double dan mengisinya dari hasil function hitungLuasSegitiga(5, 7). Dengan perintah ini, variabel var1 akan berisi angka 17.5 yang kemudian ditampilkan dengan perintah cout.

Seperti inilah cara penggunaan perintah return dalam mengembalikan nilai function.


ZZZZZZZZZ


double hitungLuasSegitiga(int alas, int tinggi) {
  double luas = (alas * tinggi) / 2.0;
  return luas;
  cout << "Hello Duniailkom";
}

perintah return berfungsi mirip seperti break dalam perulangan. Jika ditemukan perintah return, pemrosesan function akan berhenti dan tidak akan mengeksekusi kode dibawahnya.
Kode program di DIBAWAHNYA tidak akan pernah dijalankan karena berada setelah perintah return.

ZZZZZZ










ZZZZZZ


struct Siswa {
  string nama;
  string sekolah;
  unsigned int uangSaku;
};
 
int main()
{
  struct Siswa siswa01;
 
  siswa01.nama = "Andi Permana Nugroho";
  siswa01.sekolah = "SMA 1 Lumut Ijo";
  siswa01.uangSaku = 10000;


Tipe data struct adalah tipe data bentukan, dimana kita harus buat dulu seperti apa isi komponen dari struct, baru kemudian diakses dari kode program utama.

ZZZZZZZ

enum nama_hari {
    minggu = 0,
    senin  = 10,
    selasa = 20,
    rabu   = 30,
    kamis  = 40,
    jumat  = 50,
    sabtu  = 60
};
 
int main()
{
  nama_hari var1;
 
  var1 = senin;
  cout << var1 << endl;
 
  var1 = rabu;
  cout << var1 << endl;
 
  var1 = sabtu;
  cout << var1 << endl;










ZZZZZZZ

REFERENCE
Perintah string &var2 = var1 artinya, alamat memory yang dirujuk oleh var2 akan sama dengan milik var1


int main()
{
  string var1 = "Belajar C++ di Duniailkom";
  string &var2 = var1;
 
  cout << var1 << endl;
  cout << var2 << endl;
 
  var2 = "Belajar Java di Duniailkom";
 
  cout << var1 << endl;
  cout << var2 << endl;


Hasil kode program:

Belajar C++ di Duniailkom
Belajar C++ di Duniailkom
Belajar Java di Duniailkom
Belajar Java di Duniailkom

ZZZZZZZZZZ

 cout << &var1 << endl;
  cout << &var2 << endl;
  cout << &var3 << endl;

Inilah cara menampilkan alamat memory dari setiap variabel, yakni dengan cara men-cout &var1&var2 dan &var3.

Hasil 0x61fe1c0x61fe18 dan 0x61fe14 adalah alamat memory yang dipakai untuk menyimpan data milik var1var2 dan var3


ZZZZZZ

Pengertian Pointer

int main()
{
  string var1 = "Belajar C++ di Duniailkom";
  string* var2 = &var1;
 
  cout << var1 << endl;
  cout << var2 << endl;

Belajar C++ di Duniailkom
0x61fde0

perintah string* var2 = &var1. Ini akan menginput alamat memory milik var1 ke dalam var2.
Tipe data pointer harus di set dengan tipe data yang sama dengan tipe data asal

Pengertian Dereference

Untuk menampilkan nilai yang tersimpan di dalamnya, bisa menggunakan operator * pada saat di cout

int main()
{
  string var1 = "Belajar C++ di Duniailkom";
  string* var2 = &var1;
 
  cout << var1 << endl;
  cout << var2 << endl;
  cout << *var2 << endl;

pointer ini mengizinkan kita mengakses alamat memory secara langsung, implementasinya bisa dipakai untuk membuat struktur data yang kompleks.

Misalnya nanti ada struktur “linked list” yang mirip seperti array dinamis (array yang jumlah elementnya bisa terus ditambah, tidak harus ditentukan di awal). Linked list ini butuh pointer agar bisa bekerja.


ZZZZZZZZZZ

Pengertian Function Overloading C++

Di dalam C++, Function Overloading adalah membuat beberapa function dengan nama yang sama, tapi dibedakan dari jumlah dan tipe data parameter.

int tambah(int var1, int var2) {
  return var1 + var2;
}
 
int tambah(int var1, int var2, int var3) {
  return var1 + var2 + var3;
}
 
string tambah(string var1, string var2) {
  return var1 + " tambah " + var2;
}
 
int main()
{
  cout << tambah(1, 2) << endl;
  cout << tambah(5, 4, 3) << endl;
  cout << tambah("satu","dua") << endl;

ZZZZZZZZZ


ZZZZZZZZZZ



Komentar