0% menganggap dokumen ini bermanfaat (0 suara)
909 tayangan26 halaman

CMATH

cmat atau math.h merupakan header yang berisi fungsi-fungsi matematika seperti trigonometri, eksponensial, logaritma, pembulatan dan lainnya untuk digunakan dalam program C dan C++. Fungsi-fungsi tersebut meliputi operasi dasar seperti akar kuadrat, sinus, kosinus hingga fungsi yang lebih kompleks seperti gamma dan error function.

Diunggah oleh

ahmad
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
909 tayangan26 halaman

CMATH

cmat atau math.h merupakan header yang berisi fungsi-fungsi matematika seperti trigonometri, eksponensial, logaritma, pembulatan dan lainnya untuk digunakan dalam program C dan C++. Fungsi-fungsi tersebut meliputi operasi dasar seperti akar kuadrat, sinus, kosinus hingga fungsi yang lebih kompleks seperti gamma dan error function.

Diunggah oleh

ahmad
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 26

CMATH

Fungsi cmat : cmath atau math.h merupakan merupakan header yang berfungsi untuk mengisi fungsi – fungsi
makro dan tipe yang digunakan untuk operasi matematika.
N/B : cmath digunakan untuk operasi C++, sedangkan math.h digunakan untuk operasi C atau dapat juga di
gunakan di C++ : > .
Sytaks:

#include <iostream>
#include <cmath>
Using namespace std;
Int main(){
Cout << sqrt(64);
Cout << round(2.6);
Cout << log(2);
}

// sqrt() = untuk menghitung akar kuadrat,


Round() = untuk membulatkan ke nilai terdekat,
Log() = untuk menghitung natural logaritma.

Fungsi daric math :


Fungsi Trigonometri
1. cos(C99)
untuk menghitung kosinus
2. sin(C99)
untuk menghitung sinus
3. tan(C99)
untuk menghitung tangen
4. acos(C99)
untuk menghitung arc kosinus (inverse dari kosinus)
5. asin(C99)
untuk menghitung arc sinus (inverse dari sinus)
6. atan(C99)
untuk menghitung arc tangen (inverse dari tangen)
7. atan2(C99)
untuk menghitung arc tangen dengan dua parameter
Fungsi Hiperbolik
1. cosh(C99)
untuk menghitung cosinus hiperbolik
2. sinh(C99)
untuk menghitung sinus hiperbolik
3. tanh(C99)
untuk menghitung tangen hiperbolik
4. acosh(C99) / (C++11)
untuk menghitung luas kosinus hiperbolik
5. asinh(C99) / (C++11)
untuk menghitung luas sinus hiperbolik
6. atanh(C99) / (C++11)
untuk menghitung luas tangen hiperbolik
Fungsi Eksponential dan Logaritma
1. exp(C99)
untuk menghitung fungsi eskponensial
2. frexp(C99)
untuk mengambil significand (mantissa) dan eksponen
3. ldexp(C99)
untuk menghasilkan nilai dari significand dan eksponen
4. log(C99)
untuk menghitung natural logaritma
5. log10(C99)
untuk menghitung logaritma umum
6. modf(C99)
untuk memecah nilai menjadi dua bagian, yaitu bilangan bulat dan angka di belakang koma.
7. exp2(C99) / (C++11)
untuk menghitung eksponensial biner
8. expm1(C99) / (C++11)
untuk menghitung eksponensial minus satu
9. ilogb(C99) / (C++11)
untuk menghitung logaritma biner bilangan bulat
10. log1p(C99) / (C++11)
untuk menghitung logaritma tambah satu
11. log2(C99) / (C++11)
untuk menghitung logaritma biner
12. logb(C99) / (C++11)
untuk menghitung logaritma floating point
13. scalbn(C99) / (C++11)
untuk menghitung sebuah angka yang dikalikan dengan FLT_RADIX yang berpangkat
14. scalbln(C99) / (C++11)
untuk menghitung sebuah angka yang dikalikan dengan FLT_RADIX yang berpangkat (long)
Fungsi Perpangkatan
1. pow(C99)
untuk menghitung pangkat
2. sqrt(C99)
untuk menghitung akar kuadrat
3. cbrt(C99) / (C++11)
untuk menghitung akar kubik
4. hypot(C99) / (C++11)
untuk menghitung hipotenusa
Fungsi Kesalahan dan Gamma
1. erf(C99) / (C++11)
untuk menghitung kesalahan fungsi
2. erfc(C99) / (C++11)
untuk menghitung kesalahan komplementer fungsi
3. tgamma(C99) / (C++11)
untuk menghitung gamma fungsi
4. lgamma(C99) / (C++11)
untuk menghitung logaritma gamma fungsi
Fungsi Pembulatan dan Sisa Bagi
1. ceil(C99)
untuk membulatkan nilai ke atas
2. floor(C99)
untuk membulatkan nilai ke bawah
3. fmod(C99)
untuk menghitung sisa bagi
4. trunc(C99) / (C++11)
untuk membulatkan nilai desimal (x) ke nilai yang tidak lebih besar dari x
5. round(C99) / (C++11)
untuk membulatkan nilai ke nilai terdekat
6. lround(C99) / (C++11)
untuk membulatkan nilai ke nilai terdekat dan di-casting ke long int
7. llround(C99) / (C++11)
untuk membulatkan nilai ke nilai terdekat dan di-casting ke long long int
8. rint(C99) / (C++11)
untuk melakukan pembulatan berdasarkan cara yang ditentukan oleh fegetround dengan pengecualian
jika hasilnya berbeda
9. lrint(C99) / (C++11)
untuk melakukan pembulatan berdasarkan cara yang ditentukan oleh fegetround dan di-casting ke long
int dengan pengecualian jika hasilnya berbeda
10. llrint(C99) / (C++11)
untuk melakukan pembulatan berdasarkan cara yang ditentukan oleh fegetround dan di-casting ke long
long int dengan pengecualian jika hasilnya berbeda
11. nearbyint(C99) / (C++11)
untuk melakukan pembulatan berdasarkan cara yang ditentukan oleh fegetround
12. remainder(C99) / (C++11)
untuk menghitung sisa bagi yang dibulatkan ke nilai terdekat (IEC 60559)
13. remquo(C99) / (C++11)
untuk menghitung sisa bagi dan hasil bagi
Fungsi untuk Memanipulasi Floating Point
1. copysign(C99) / (C++11)
untuk menyalin tanda (negatif dan positif)
2. nan(C99) / (C++11)
untuk memenghasilkan NaN (Not A Number)
3. nextafter(C99) / (C++11)
untuk menentukan nilai representasi floating point selanjutnya dari nilai yang diberikan
4. nexttoward(C99) / (C++11)
untuk menentukan nilai representasi floating point selanjutnya dari nilai yang diberikan
Fungsi Maksimum, Minimum dan Selisih
1. fdim(C99) / (C++11)
untuk menghitung selisih positif
2. fmax(C99) / (C++11)
untuk menentukan nilai maksimum
3. fmin(C99) / (C++11)
untuk menentukan nilai minimum
Fungsi lain
1. fabs(C99)
untuk menghitung nilai absolut (floating point)
2. abs(C99)
untuk menghitung nilai absolut (integer)
3. fma(C99) / (C++11)
untuk menghitung a kali b ditambah c
Makro/Fungsi
Makro/Fungsi Penggolangan
1. fpclassify(C99) / (C++11)
untuk mengklasifikasi nilai floating point
2. isfinite(C99) / (C++11)
untuk menentukan sebuah nilai terbatas atau tidak
3. isinf(C99) / (C++11)
untuk menentukan sebuah nilai tak terbatas atau tidak
4. isnan(C99) / (C++11)
untuk menentukan sebuah nilai NaN atau tidak
5. isnormal(C99) / (C++11)
untuk menentukan sebuah nilai normal atau tidak
6. signbit(C99) / (C++11)
untuk menentukan sebuah nilai negatif atau positif
Makro/Fungsi Pembanding
1. isgreater(C99) / (C++11)
untuk menentukan apakah x lebih besar dari y
2. isgreaterequal(C99) / (C++11)
untuk menentukan apakah x lebih besar sama dengan y
3. isless(C99) / (C++11)
untuk menentukan apakah x lebih kecil dari y
4. islessequal(C99) / (C++11)
untuk menentukan apakah x lebih kecil sama dengan y
5. islessgreater(C99) / (C++11)
untuk menentukan apakah x lebih kecil atau lebih besar dari y
6. isunordered(C99) / (C++11)
untuk menentukan dua nilai apakah berurutan atau tidak
Konstanta Makro
1. math_errhandling(C99) / (C++11)
untuk menangani masalah
2. INFINITY(C99) / (C++11)
konstanta tak terbatas
3. NAN(C99)
konstanta untuk menyatakan bukan angka
4. HUGE_VAL(C99)
untuk menandakan bahwa nilai terlalu besar untuk direpresentasikan tipe data double
5. HUGE_VALF(C99) / (C++11)
untuk menandakan bahwa nilai terlalu besar untuk direpresentasikan tipe data float
6. HUGE_VALL(C99) / (C++11)
untuk menandakan bahwa nilai terlalu besar untuk direpresentasikan tipe data long double
Tipe
1. double_t(C99) / (C++11)
tipe data floating point
2. float_t(C99)
tipe data floating point
ARRAY
Array digunakan untuk menyimpan beberapa nilai dalam satu variable, bukan mendeklarasikan variable
terpisah untuk setiap nilai.
Untuk mendeklarasikan sebuah array tentukan nilai dari sebuah variabke tentukan nama dari pada array
dan tentukan jumlahnya elemen yang harus disimpan.

Contoh sebuah array :


String cars[4];
Sekarang kita sudah mendeklarasikan sebuah variable data array dengan tipe data string, untuk memasukan nilai
kedalamnya kita bisa menggunakan tanda kurung kurawal dan dipisahkan dengan koma.
String cars [4] = {“Avanza”, “mercy”, “Ferrari”, “tesla”}
Acces element of array
Kita bisa memanggil element array dengan megacu pada nimer index,
String cars[4] = {“ Avanza”, “mercy”, “Ferrari”, “tesla”};
Cout << cars[0] << endl;
// maka yang akan muncul adalah Avanza.
Catatan : indexs array deimulai dengan 0 : [0] adalah elemen pertama dan [1] adalah elemen ke 2 dan
seterusnya.

Change an element array


Untuk mengganti sebuah element array kita bisa melihat nomer indexsnya, misalnya :
String cars[4] = {“ Avanza”, “mercy”, “Ferrari”, “tesla”};
Cars [0] = “BMW”;
Cout << cars[0] << endl;
// maka yang akan muncul adalah BMW.

Loop through an array


Anda bisa mengulang atau memunculkan semua element array dengan loop for.
Dengan contoh :
String cars[4] = {“ Avanza”, “mercy”, “Ferrari”, “tesla”};
For (int I = 0; I < 4; i++){
Cout << cars[i] << endl;
}
// maka yang akan muncul adalah semua element array.

Atau mengeluarkan element array bersamaan dengan nilainya :


String cars[4] = {“ Avanza”, “mercy”, “Ferrari”, “tesla”};
For (int I = 0; I < 4; i++){
Cout << I << “:” << cars[i] << endl;
}
// maka yang akan muncul adalah semua element array dan juga nilainya
0 : Avanza
1 : mercy
2 : Ferrari
4 : tesla

Omit array size


Dalam kontesk ini anda bisa tidak menulis ukuran larik dari pada array, tetapi jika tidak , itu hanya akan sebesar
element yang ada di dalamanya
String cars[ ] = {“ Avanza”, “mercy”, “Ferrari”, “tesla”};
Contoh diatas baik baik saja tetapi masalah akan muncul jika antum ingin memasukan elemant lagi dan akan
menimpa element – element yang sudah ada.
Namun jika antum menentukan ukuran dari larik array, insyaaallah array akan bisa digunakan ruang ekstranya.
Dan sekarang antum bisa menambah element yang lainya tanpa menimpa element yang sudah ada.

Omit element on decklaration


Dimungkinkan untuk mendeklarasikan sebuah array tanpa menentukan element pada deklarsi, dan
menambahkanya nanti.
Contoh ANJ :
int main() {
string cars[5];
cars[0] = "Volvo";
cars[1] = "BMW";
cars[2] = "Ford";
cars[3] = "Mazda";
cars[4] = "Tesla";
for(int i = 0; i < 5; i++) {
cout << cars[i] << "\n";
}
return 0;
}

Pointer
Pointer adalah variable yang menyimpan alamat memori sebagai nilai.
Variable pointer menunjuk ke tipe data (int dan string) dari tipe data yang sama, dan dibuat dengan operator *
alamat variable yang anda kerjakan ditugaskan ke pointer.
Example :
string food = "Pizza";  // A food variable of type string
string* ptr = &food;    // A pointer variable, with the name ptr, that stores the address of food

// Output the value of food (Pizza)


cout << food << "\n";

// Output the memory address of food (0x6dfed4)


cout << &food << "\n";

// Output the memory address of food with the pointer (0x6dfed4)


cout << ptr << "\n";

menjelaskan contoh diatas 😊 :


buat variable pointer dengan nama ptr, yang megarah ke variable string, dengan menggunakan panda asterik
*( string * ptr ). Perhatikan bahwa tipe pointer harus cocok dengan tipe variable yang akan dikerjakan.
Gunakan operator & unutk menyimpan alamat memori dari variable yang di sebut food, dan tetapkan dia
di pointer.
Sekarang , ptr menyimpan nilai alamat memori dari pada food.

Ada tiga cara mendeklarasiakan ovariable pointer, tetapi cara pertama lebih diminati.
string* mystring; // Preferred
string *mystring;
string * mystring;
get memory addres and value
dalam contoh tadi antum menggunakan variable ponter untuk mendapatkan alamat memeri dari sebuah variable
( digunaka Bersama dengan operator & reference).namun antum juga dapat menggunakan pointer untuk
mndapatkan nilai variable dengan menggunakan operataor * ( operator deference ).
Example :
string food = "Pizza";  // Variable declaration
string* ptr = &food;    // Pointer declaration

// Reference: Output the memory address of food with the pointer (0x6dfed4)
cout << ptr << "\n";

// Dereference: Output the value of food with the pointer (Pizza)


cout << *ptr << "\n";

perhatikan bahwa tanda * dapat membingungkan disini, karena ia melakukan dua hal yang berbeda dalam kode kita.

 Ketika digunakan dalam deklarasi ( string * ptr ) itu membuat variable pointer.
 Jika tidak digunakan dalam deklarasi, ini bertindak sebagai operator deference.

Modify the pointer value


Antum juga dapat merubah nilai ponter tetapi perhatikan ini merubah nilai variable asli.
Example :

string food = "Pizza";


string* ptr = &food;

// Output the value of food (Pizza)


cout << food << "\n";

// Output the memory address of food (0x6dfed4)


cout << &food << "\n";

// Access the memory address of food and output its value (Pizza)
cout << *ptr << "\n";

// Change the value of the pointer


*ptr = "Hamburger";

// Output the new value of the pointer (Hamburger)


cout << *ptr << "\n";

// Output the new value of the food variable (Hamburger)


cout << food << "\n";

fungsi – fungsi
fungsi adalah blok code yang akan hanya berjalan saat dipanggil.
Antum dapat mengirimkan data, yang dikenal sebagai parameter, kedalam suatu fungsi.
Fungsi digunakan unutk melakukan Tindakan tertrntu dan penting unutk menggunakan Kembali kode.
Tentukan kode d=seklai dan gunakan berkali – kali. 😊

Create fungsion
C++ menyediakan beberapa fungsi yang telah ditentukan sebelumnya. Seperti main(), yang digunakan
untuk mengkesekusi kode . tetapi anda jjuga dapat membuat fungsi anda sendiri unutk melakukan
tidakan tertentu.
Untuk membuat ( sering disebut sebagai deklarasi ) fungsi , tentukan nama fungsinya , diikuti dengan
yabda kurung ().
Syntax :
void myFunction() {
  // code to be executed
}

menjelaskan contoh :
 Myfungsion() adalah nama fungsi
 Void berarti bahwa fungsi tidak memiliki nilai pengembalian.
 Didalam fungsi ( body unin dengan ) tambahkan code yang mendefinisikan apa yang harus
dilakukan fungsi tersebut.

Call a fungtion
Fungsi yang dideklarasikan tidak langsung dijalankan mereka “disimpan untuk digunakan nanti”, dan
akan dijalankan nanti, Ketika dipanggil. Untuk memanggil fungsi, tulis nama fungsi diikuti dengan dua
tanda kurung() dan titik kkoma;
Didalam contoh berikut :
// Create a function
void myFunction() {
  cout << "I just got executed!";
}

int main() {
  myFunction(); // call the function
  return 0;
}

// Outputs "I just got executed!"

Fungsion declarasi and definition


Fungsi c++ terdiri dari dua bagian :
 Deklarasi: nama fungsi, tipe kembalian, dan parameter (jika ada)
 Definisi: tubuh fungsi (kode yang akan dieksekusi)

void myFunction() { // declaration
  // the body of the function (definition)
}

Catatan: Jika fungsi yang ditentukan pengguna, seperti myFunction () dideklarasikan setelah fungsi
main (), kesalahan akan terjadi. Itu karena C ++ bekerja dari atas ke bawah; yang berarti bahwa jika
fungsi tidak dideklarasikan di atas main (), program tidak menyadarinya:
int main() {
  myFunction();
  return 0;
}

void myFunction() {
  cout << "I just got executed!";
}

// Error

namun, dimungkinkan untuk memisahkan deklarasi dan definisi fungsi – unutk pengoptimalan kode .
antum akan sering melihat program c++ yang memiliki deklarso fungus di atas main(), dan definisi
fungsi di bawah main(), ini akan membaut kode lebih terorganisir dan lebi mudah dibaca.
Example :
// Function declaration
void myFunction();

// The main method


int main() {
  myFunction();  // call the function
  return 0;
}

// Function definition
void myFunction() {
  cout << "I just got executed!";
}

Parameter dan argument


Informasi dapat diteruskan ke fungsi sebagai parameter. Parameter bertindak sbagai variable di dlama
fungsi.
Parameter ditentukan setelah nama fungsi, di dalama tanda kurung. Anda dapet menambahan
parameter sebanyak yang nnda inginakan, cukup pisahkan dengan koma.
Syntax :
void functionName(parameter1, parameter2, parameter3) {
  // code to be executed
}

contoh bberikut memiliki fungsi yang mengambil strng bernama fanamesebagai parameter, saat fungsi
dipanggil , anda meneruskan nama depan, yang di gunakan di dalam fungs untuk mencetak nama
lengakp.
Example :
void myFunction(string fname) {
  cout << fname << " Refsnes\n";
}

int main() {
  myFunction("Liam");
  myFunction("Jenny");
  myFunction("Anja");
  return 0;
}

// Liam Refsnes
// Jenny Refsnes
// Anja Refsnes

Ketika parameter dilewatkan ke fungsi, itu disebut argument jadi contoh diatas fname adalah parameter
, sedangkna liam, jeni, dan anja, adalah argument.

Default parameter value


Antu juga dapt menggunakan nilai parameter default,dengan menggunakan tand sama dengan (=). Jiak
kita meangggil fungis tanpa argument, ini menggunakan nilai default ( “norwegia”).
Example :
void myFunction(string country = "Norway") {
  cout << country << "\n";
}

int main() {
  myFunction("Sweden");
  myFunction("India");
  myFunction();
  myFunction("USA");
  return 0;
}

// Sweden
// India
// Norway
// USA

parameter dengan nialai default, sering disebut sebagai “ parameter opsionl” dari contoh di atas ,
negara adalah parameter opsional dan norwegia adlah nilai default.

Multyple parameters
Di dalam fungsi anda dapat menambahkan parameter sebanyak yang anda inginkan.
Example :

void myFunction(string fname, int age) {
  cout << fname << " Refsnes. " << age << " years old. \n";
}

int main() {
  myFunction("Liam", 3);
  myFunction("Jenny", 14);
  myFunction("Anja", 30);
  return 0;
}

// Liam Refsnes. 3 years old.


// Jenny Refsnes. 14 years old.
// Anja Refsnes. 30 years old.

perhatikan bahwa krtkan and bberkerja dengan beberapa parameter. Pemanggilan fungsi harus
memiliki julah argument yang sama dengan yang ada parameter , dan argument harus diteruskan dalam
urutan yang sama.

Return value
Kata kunci void, yang digunakan dalam contoh diatas , menunjukan bahwa fungsi tersebut tidak boleh
mengmbalikan nilai, jika anda ingin fungsi mengembalikan nialai, anda dapat menggunakan tipe data
( seperti int, string , dl ) sebagai gentian void, dan gunakan kata kunci return di dalam fungsi.
Example :
int myFunction(int x) {
  return 5 + x;
}

int main() {
  cout << myFunction(3);
  return 0;
}

// Outputs 8 (5 + 3)

contoh ini mengembalikan jumlah fungsi dngan dua parameter.


Example :
int myFunction(int x, int y) {
  return x + y;
}

int main() {
  cout << myFunction(5, 3);
  return 0;
}

// Outputs 8 (5 + 3)

antum juga bisa menyimpan hasil dalam variable


example :
int myFunction(int x, int y) {
  return x + y;
}

int main() {
  int z = myFunction(5, 3);
  cout << z;
  return 0;
}
// Outputs 8 (5 + 3)
pass by reference
Dalam contoh dari halaman sebelumnya, kami menggunakan variabel normal saat kami mengirimkan
parameter ke suatu fungsi. Anda juga dapat meneruskan referensi ke fungsi tersebut. Ini bisa berguna
saat Anda perlu mengubah nilai argumen:
Example :

void swapNums(int &x, int &y) {
  int z = x;
  x = y;
  y = z;
}

int main() {
  int firstNum = 10;
  int secondNum = 20;

  cout << "Before swap: " << "\n";


  cout << firstNum << secondNum << "\n";

  // Call the function, which will change the values of firstNum and secondNum
  swapNums(firstNum, secondNum);

  cout << "After swap: " << "\n";


  cout << firstNum << secondNum << "\n";

  return 0;
}

function overloading
dengan kelebihan beban fungsi, beberapa fungsi dapat memiliki nama yang sama dengan parameter
berbeda:
example :

int myFunction(int x)
float myFunction(float x)
double myFunction(double x, double y)

perhatikan contoh yang akan aing baut, yang memiliki dua fungsi yang menambahkan angka dengan
tipe berbeda
wxample :

int plusFuncInt(int x, int y) {
  return x + y;
}

double plusFuncDouble(double x, double y) {
  return x + y;
}

int main() {
  int myNum1 = plusFuncInt(8, 5);
  double myNum2 = plusFuncDouble(4.3, 6.26);
  cout << "Int: " << myNum1 << "\n";
  cout << "Double: " << myNum2;
  return 0;
}

dari pada menentukan dua fungsi yang harus melakukan hal yang sama, lebih baik membebani satu
fungsi
pada contoh di bawah antm akan membebani fungsi plusFunc agar berfungsi baik untuk int dan juga
double :
examplw :
int plusFunc(int x, int y) {
  return x + y;
}

double plusFunc(double x, double y) {
  return x + y;
}

int main() {
  int myNum1 = plusFunc(8, 5);
  double myNum2 = plusFunc(4.3, 6.26);
  cout << "Int: " << myNum1 << "\n";
  cout << "Double: " << myNum2;
  return 0;
}

cartatan : beberapa fungsi dapat memiliki nama yang sama selama jumlah dan jenis parameternya
berbeda.

C++ OOP
OOP apaan anjim ??
OOP adalah singkatn dari Objeck oriented programming
Program procedural adalah tentang menulis prosedur atau fungsi yang melakukan operasi pada data,
sedangkan pemrogramman berorentasi objek adalah tentang membuat objek yang berisi data dan
fungsi.
Pemerogramman berorientasi objek memiliki beberapa keunggulan dibandingkan pemerogramman
procedural:
 OOP lebih cepat dan mudah dijalankan
 OOp memberikan struktur yang jelas untuk program
 OOP membantu menjaga kode C++ Kering “ don’t repeat your self “ dan membaut code lebih
mudah untuk dipelihara, dimodifikasi, dan di debug.
 OOP memungkinkan untuk membauta aplikasi penuh yang adept digunakan Kembali dengan
kode yang lebih sedikit dan waktu pengembangan yang lebih sinhgkat.
Tips : prinsip “ don’t repeat yourself “ ( kering ) adalah tentang mengrangi pengulangan kode. Anda
harus mengekstrak kode yang umum untuk aplikasi, dan menempatkanya di suatu tempat dan
menggunakan Kembali, bukan mengulangnya .

What the classes and object ?


Kelas dan onjek adalah dua aspek utama adri pemerograman berorientasi objek, Perhatikan ilustrasi
berikut untuk melihat perbedaan antara kelas dan onjek :
Class Objects

Buah Appel

Pisang

Manga

Jadi kelas adalah template untuk objek, dan objek adalah turunan dari kelas
Ketika objek individual dibuat, mereka mewarisi semua variable dan fungsi dari kelas.

- C++ Classes and objects


C++ adalah Bahasa pemerograman berorentasi pada objek
Segala sesuatu di C++ dikaitkan dengan kelas dan objek, Bersama dengan atribut dan metodenya.
Misalnya “ dalam kehidupan nyata mobil adalah benda. Mobil memiliki atribut seperti bobt dan warna,
serat metode , seperti penggerak dan rem.
Atribut dan metode pada dasarnya adlah variable dan fungsi yang memiliki kelas, ini sering disebut
dengan anggota kelas.
Kelas adalah tipe data yang ditentukan pengguna yang bisa kita gunakan dalam program kita, dan ia
bekerja sebagai konstruktor objek, atau “cetak biru” untuk membuat objek.
- Create class
Untuk membuat kelas, gunakan kata kunci class :
Example :
class MyClass {       // The class
  public:             // Access specifier
    int myNum;        // Attribute (int variable)
    string myString;  // Attribute (string variable)
};

menjelaskan contoh 😊
 kata kunci class digunakan untuk membuat kelas yang disebut MyClass.
 Kata kunci public adalah penentu akses, yang menetapkan bahwa anggota ( atribut dan metode )
kelas dapat diakses di luar kelas.
 Didalam kelas, ada variable integer myNum dan variable string myString , Ketika variable di
ddeklarasikan di dalam kelas, maka disebut atribut.
 Terakhir akhiri definisi kelas dengan titik koma.
- Create an object
Dalam jC++ sebuah objek dibaut dari sebuah kelas. Gau telah membuat kelas bernama MyClass, jadi
sekarang kiata dapat menggunakan ini untuk membuat object . dan untuk membuat object MyClass,
tentukan nama kelasnya deiikuti dengan nama object.
Untuk mengakses atribut kelas ( myNum dan myString ) gunakan sintax titik ( . ) pada objek.
Example_Create an object called “myObj” and acces the attribute 😊 :
class MyClass {       // The class
  public:             // Access specifier
    int myNum;        // Attribute (int variable)
    string myString;  // Attribute (string variable)
};

int main() {
  MyClass myObj;  // Create an object of MyClass

  // Access attributes and set values


  myObj.myNum = 15; 
  myObj.myString = "Some text";

  // Print attribute values


  cout << myObj.myNum << "\n";
  cout << myObj.myString;
  return 0;
}
- Multiple object
Antum bisa membuat beberapa objek dalam satu kelas :
Example :
// Create a Car class with some attributes
class Car {
  public:
    string brand;   
    string model;
    int year;
};

int main() {
  // Create an object of Car
  Car carObj1;
  carObj1.brand = "BMW";
  carObj1.model = "X5";
  carObj1.year = 1999;

  // Create another object of Car


  Car carObj2;
  carObj2.brand = "Ford";
  carObj2.model = "Mustang";
  carObj2.year = 1969;

  // Print attribute values


  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}

C++ Class Methods


- Class Methods
Metode adalah fungsi yang dimiliki kelas. Ada dua cara untuk mendafinisikan fungsi yang termasuk
dalam kelas.
 Didalam definisi kelas
 Definisi di luar kelas
Dalam contoh, gua akan mendefinisikan sebuah fungsi di dalam kelas, dan kami menamaknaya “
myMethod”
Catatan: lo bisa mengakses motode seperti lo mengakses atribut, dengan membuat objek kelas dan
menggunakn sintax titik ( . ).
Example mendefinisikan di dalam kelas :
class MyClass {        // The class
  public:              // Access specifier
    void myMethod() {  // Method/function defined inside the class
      cout << "Hello World!";
    }
};

int main() {
  MyClass myObj;     // Create an object of MyClass
  myObj.myMethod();  // Call the method
  return 0;
}

untuk mendefinisikan fungsi di luar definisi kelas, anda harus mendeklarasikannya di dalam kelas dan
kemudian mendefinisikanya di laur kelas, ini dilakuakan dengan menentukan nama kelas, mengikuti scope
resolution :: operator, diikuti dengan nama fungsinya.
Example definisi diluar kelas :
class MyClass {        // The class
  public:              // Access specifier
    void myMethod();   // Method/function declaration
};

// Method/function definition outside the class


void MyClass::myMethod() {
  cout << "Hello World!";
}

int main() {
  MyClass myObj;     // Create an object of MyClass
  myObj.myMethod();  // Call the method
  return 0;
}

- Anda jyuga bisa menambahkan parameter


Contoh :
#include <iostream>
using namespace std;

class Car {
  public:
    int speed(int maxSpeed);
};

int Car::speed(int maxSpeed) {
  return maxSpeed;
}

int main() {
  Car myObj; // Create an object of Car
  cout << myObj.speed(200); // Call the method with an argument
  return 0;
}
- Constructor
Constructor adlam C++ adalah metode khusus yang dipanggil secara otomatis Ketika objek kelas dibuat.
Untuk membuat konstruktor, gunakan nama yang sama dengan kelas, diikuti dengan tanda kurung ():
Example :
class MyClass {     // The class
  public:           // Access specifier
    MyClass() {     // Constructor
      cout << "Hello World!";
    }
};

int main() {
  MyClass myObj;    // Create an object of MyClass (this will call the constructor)
  return 0;
}

catatan : konstruktor memiliki nama yang sama dengan kelas, selalu public , dan tidak memiliki nilai
yang dikembalikan.
- Constructor parameter
Konstruktor juga dapat mengambil aparameter ( seperti fungsi biasa ) , yang dapat berguna untuk
menetapkan nilai diawal atribut.
Kelas berikut memeliki atribut merek, dengan model dan tahun, serta konstruktor dengan parameter
berbeda. Di dalam kontruktor gua menetapkan atribut yang sama dengan parameter konstruktor
( brand = x, dll ). Saat kita memanggil konstruktor ( dengan membuat objek kelas ), kita meneruskan
parameter ke konstruktor, yang akan menetapkan nilai atribut terkait ke sama ;
Example :
class Car {        // The class
  public:          // Access specifier
    string brand;  // Attribute
    string model;  // Attribute
    int year;      // Attribute
    Car(string x, string y, int z) { // Constructor with parameters
      brand = x;
      model = y;
      year = z;
    }
};

int main() {
  // Create Car objects and call the constructor with different values
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  // Print values


  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}

sama dengan fungsi, konstruktor juga dapat didefinisikan di luar kelas. Pertama, deklarasikan
konstruktor di dalam kelas, lalu tentukan di luar kelas dengan menentukan nama kelas, diikuti dengan
resolusi cakupan :: operator, diikuti dengan nama konstruktor ( yang sama dengan kelasnya ).
Example :
class Car {        // The class
  public:          // Access specifier
    string brand;  // Attribute
    string model;  // Attribute
    int year;      // Attribute
    Car(string x, string y, int z); // Constructor declaration
};

// Constructor definition outside the class


Car::Car(string x, string y, int z) {
  brand = x;
  model = y;
  year = z;
}

int main() {
  // Create Car objects and call the constructor with different values
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  // Print values


  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}

C++ acces specifiers


Acces specifiers
Sekarang antum sudah cukup familiar dengan kata kunci public yang muncul di semua contop OOP.
Kata kunci public adalah penentu akses. Akses penentu bagai mana anggota ( atribut dan metode ) kelas
dapat diakses.
Dalam contoh – contoh diatas, anggota bersifat public yang berarti mereka dapat di akses dan
dimodifikasi diluar kode.
Namun bagaimana jika anggota menjadi privat dan protected dari laur ??

Di C++ ada 3 penentu akses :


1.public – anggota yang dapat diakses dan dimodifikasi di luar kelas
2.anggota - tidak dapat siakses ( atau dilihat ) dari laur kelas.
3.protrcted – anggota tidak dapat diakses dari luar kelas, namun mereka dapat diakses dikelas
yang diwariskan.
Dalam contoh berikut, gua menunjukan perbedaan antara anggota public dan privat :
Example :
class MyClass {
  public:    // Public access specifier
    int x;   // Public attribute
  private:   // Private access specifier
    int y;   // Private attribute
};

int main() {
  MyClass myObj;
  myObj.x = 25;  // Allowed (public)
  myObj.y = 50;  // Not allowed (private)
  return 0;
}
jika anda mencoba coba mengakses anggota privat, maka akan terjadi kesalahan yang besar alias error .
catatan : dimungkinkan untuk mengakses anggota privat kelas menggunakan ,metode public di dalam
kelas yang sama, ingin tau caranya tatap disini ya?
Tips : mendeklarasikan atribut kelas anda sebagai privat ( sesering mungkin ) merupakan praktik yang
baik. Ini akan memungkinkan diri anda atau orang lain untuk mengacaukan code, ini juga merupakan
bahan utama dari konsep enkapsulasi.
Catatan lagi : secara default, semua anggota kelas bersifat pribadi atau privat jika anda tidak
menentukan acces specifier.
Example :
class MyClass {
  int x;   // Private attribute
  int y;   // Private attribute
};

C++ Encapsulation
- Encapulatio
Arti dari encapsulasi adlah untuk memastikan bahwa data “ sensitf “ disembunyikan dari
pengguna. Untuk mencapai ini, anda harus mendeklarasikan variable / atribut kelas sebagai
privat ( tidak bisa diakses di luar kelas ). Jika antum ingin orang lain membaca atau
mengubah nilai anggota privat, antum dapat menyediakan metode get dan set public.
- Acces privat methode
Unutk mengakses atribut privat, gunakan metode get dan set public.
Example :
#include <iostream>
using namespace std;

class Employee {
  private:
    // Private attribute
    int salary;

  public:
    // Setter
    void setSalary(int s) {
      salary = s;
    }
    // Getter
    int getSalary() {
      return salary;
    }
};

int main() {
  Employee myObj;
  myObj.setSalary(50000);
  cout << myObj.getSalary();
  return 0;
}

Menjelaskan contoh :
Atribut the salary bersifat privat, yang memiliki akses terbatas.
Metode public setSalary () mengambil parameter dan menetapkanya ke atribut salary ( salary = s ).
Metode getSalary () public mengembalikan nilai atribut salary.
Didalam main(), gua membuat objek dari kelas karyawan, sekarang kita bisa menggunakan metode setSalary ()
unutk menyetel nilai atribut privat ke 50000.kemidian gua memanggil metode getSalary () pada objek untuk
mengembalikan nilainnya.

- Why encapsulation ??
1. merupakan peraktik yang baik untuk mendeklarsikan atribut kelas anda sebagai privat
( sesering mungkin ). Enkapsulasi memastikan control yang lebih baik atas data anda. Karena
anda (atau orang lain) dapat mengubah satu bagian kode tanpa mempengaruhi bagian lainya.
2. peningkatan keamanan data.

C++ Inheritance
- Inherintance
Dalam C++ dimungkinkan unutk mewariskan atribut dan metode dari satu kelas ke kelas yang
lainya. Kami mengelompokan “ konsep warisan “ menjadi dau kategori :
1. turunan kelas ( anak ) – kelas yang mewarisi dari kelas lain.
2.kelas dasar ( induk ) – kelas yang diwarisi.
Untuk mewarisi dari kelas , gunakan symbol : .
Dalam contoh ,class Car ( anak ) mewarisi atribut dan metode dari kelas Venichle ( induk ).

Example :
// Base class
class Vehicle {
  public:
    string brand = "Ford";
    void honk() {
      cout << "Tuut, tuut! \n" ;
    }
};

// Derived class
class Car: public Vehicle {
  public:
    string model = "Mustang";
};

int main() {
  Car myCar;
  myCar.honk();
  cout << myCar.brand + " " + myCar.model;
  return 0;
}

Mengapa dan kapan menggunakan inhentrance ?


Berguna untuk penggunaan Kembali kode, menggunakan kembali astribut dan metode kelas yang ada saat anda
membuat kelas baru.
- Multilevel inherintance
Kelas juga bisa diturunkan ke kelas yang sudah diturunkan ke kelas lain.
Dalam contoh berikut , MyGrandChild diturunkan dari kelas MyChild ( yang diturunkan dari
MyClass).
Example :
// Base class (parent)
class MyClass {
  public:
    void myFunction() {
      cout << "Some content in parent class." ;
    }
};

// Derived class (child)


class MyChild: public MyClass {
};

// Derived class (grandchild)


class MyGrandChild: public MyChild {
};

int main() {
  MyGrandChild myObj;
  myObj.myFunction();
  return 0;
}
- Acces Specifiers
Dari tulisan diats bahwa Specifier ada tiga penentu yang tersedia di C++. Disaat ini , gua hanya
menggunakan public ( anggota kelas yang dapat diakses dari luar kelas ) dan privat ( anggota yang
hanya bisa diakses di dalam kelas . specifier yang ketiga adalah protected, mirip dengan privat, tetapi
juga dapat diakses dikelas yang diwariskan :

Example :
// Base class
class Employee {
  protected: // Protected access specifier
    int salary;
};

// Derived class
class Programmer: public Employee {
  public:
    int bonus;
    void setSalary(int s) {
      salary = s;
    }
    int getSalary() {
      return salary;
    }
};

int main() {
  Programmer myObj;
  myObj.setSalary(50000);
  myObj.bonus = 15000;
  cout << "Salary: " << myObj.getSalary() << "\n";
  cout << "Bonus: " << myObj.bonus << "\n";
  return 0;
}

C++ Polymorphism
- Polymorphism
Polymorphism berarti “ banyak bentuk “, dan itu terjadi Ketika kita memiliki banyak kelas yang terkait
satu sama lain melalui pewarisan.
Pewarisan memungkinkan kita mewarisi atribut dan metode dari kelas lain. Polimorphosim menggunak
metode tersebut unutk melakukan tugas yang berbeda. Ini memungkinkan kami untuk melakukan satu
Tindakan dengna cara berbeda.
Misalnya, pikirkan kelas yang memiliki animal yang memiliki metode yang disebut animalSound(). Kelas
hewan yang diturunkan dapat berupa babi, kucing, anjing, burung – dan mereka juga memiliki
implementasi suara hewan tersendiri ( suara babi, kucing mengeong, dll).
Example :
// Base class
class Animal {
  public:
    void animalSound() {
    cout << "The animal makes a sound \n" ;
 }
};

// Derived class
class Pig : public Animal {
  public:
    void animalSound() {
    cout << "The pig says: wee wee \n" ;
  }
};

// Derived class
class Dog : public Animal {
  public:
    void animalSound() {
    cout << "The dog says: bow wow \n" ;
 }
};

Ingat dari bab warisan bahwa kita menggunakan symbol : untuk mewarisi dari kelas.
Sekarang kita bisa membuat objek pig dan dog menggunakan metode animalSound().
Example :
// Base class
class Animal {
  public:
    void animalSound() {
    cout << "The animal makes a sound \n" ;
 }
};

// Derived class
class Pig : public Animal {
  public:
    void animalSound() {
    cout << "The pig says: wee wee \n" ;
   }
};

// Derived class
class Dog : public Animal {
  public:
    void animalSound() {
    cout << "The dog says: bow wow \n" ;
 }
};

int main() {
  Animal myAnimal;
  Pig myPig;
  Dog myDog;

  myAnimal.animalSound();
  myPig.animalSound();
  myDog.animalSound();
  return 0;
}

mengapa dan kapan menggukan “ inherintance “ dan “ polymorphism “ ?


berguna untuk penggunaan Kembali kode : menggunakan Kembali atribut dan metode kelas yng ada
saat anda membuat kelas baru.

C++ Files
- C++ Files
Library fstream memungkinkan kita untuk bekerja dengan files
Untuk menggunakan library fstream, sertakan baik standar <iostream> dan file header
<fstream>.

Example :
#include <iostream>
#include <fstream>
Ada tig akelas yang termasuk dalam library fstream, yang digunakan untuk membuat, menulis
atau membaca file.

Class Description

ofstream Membuat dan menulis ke file

ifstream Membaca dari files

fstream Kombinasi ofstream dan ifstream : membuat, membaca, dan menulis


files.

Create and write to a files


untuk membuat file, gunakan kelas ofstream atau fstream dan tentukan nama file. Untuk menulis ke file,
gunaka operator penyisipan ( << ).
Example :
#include <iostream>
#include <fstream>
using namespace std;

int main() {
  // Create and open a text file
  ofstream MyFile("filename.txt");

  // Write to the file


  MyFile << "Files can be tricky, but it is fun enough!";

  // Close the file


  MyFile.close();
}
Mengapa gua menutup / close file ?
Ini diaggap sebagai peraktik yang baik, dan dapat membersihkan runag memory yang tidak perlu.

- Read a files
Unutk membaca dari files, gunakan kelas ifstream atau fstream, dan nama file.
Perhatikan bahwa kami juga menggunakan loop sementara Bersama dengan fungsi getline() ( yang termasuk
dalam kelas fstream ) unutk membaca file baris demi baris, dan untuk mencetak konten file.
Example :
// Create a text string, which is used to output the text file
string myText;

// Read from the text file


ifstream MyReadFile("filename.txt");

// Use a while loop together with the getline() function to read the file line by line
while (getline (MyReadFile, myText)) {
  // Output the text from the file
  cout << myText;
}

// Close the file


MyReadFile.close();

C++ Exceptions
- C++ exceptions
Saat menjalankan kode C++ , kealahan yang berbeda dapat terjasi, kesalahan pengodean yang
dilakukan oleh progremer, kesalahan karena input yang salah, atau hal – hal lain yang tak terduga.
Ketika terjadi kesalahan, c++ biasanaya akan berhenti dan menghasilkan kesalahan. Istilah teknis
untuk ini adlaah C++ akan mengeluarkan pengecualian ( membuat kesalahan ).
- C++ try and catch
Penanganan pengecualian di C++ terdiri dari tiga kata kunci, coba, lempar, dan tangkap. Pernaytaan
coba memungkinkan anda unutk menetukan blok code yang akan diuji untuk kesalahan saat sedang
dijalankan.
Kata kunci throw / lempar, melontarkan pengeculian saat maslah terdeteksi, yang akan
memungkinkan kita membuat kesalahan khusus.
Pernyataan catch / tangkap, memungkinkan anda untuk menentukan blok code yang akan di
eksekusi, jika terjadi kesalahan di blok percobaan.
Kata kunci try and catch dating berpasangan :
Example :

try {
  // Block of code to try
  throw exception; // Throw an exception when a problem arise
}
catch () {
  // Block of code to handle errors
}
perhatiakan conto berikut :
example :
try {
  int age = 15;
  if (age >= 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw (age);
 }
}
catch (int myNum) {
  cout << "Access denied - You must be at least 18 years old.\n";
  cout << "Age is: " << myNum;
}

menjelaskan contoh :
kami menggunakan blok try untuk menguji beberapa kode , jika variable usia kurang dari 18, kami akan
melempar pengeculaian, dan menanganinya di blom catch kami.
Di blok catch, kami menangkap kesalahn dan melakukan sesuatu unutk mengatasinya, pernyataan catch
mengambil parameter, dalam contoh kami, menggunakan variable int ( myNum ) ( karena melempar
pengeculian tipe int di blok try ( usia ), untuk menampikan nilai usia,
Jika ada kesalahan yang terjadi ( misalanya jika usia 20 , bukan 15 , artinya akan lebih besar dari 18 ) blok catch
dilewati.
Example :

Int age = 20;

Anda dapat menggunakan kata kunci throe unutk menghasilkan nomer reference , seperti nomer / kode
kesalahan khusus untuk tujuan pengaturan.
Example :
try {
  int age = 15;
  if (age >= 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw 505;
 }
}
catch (int myNum) {
  cout << "Access denied - You must be at least 18 years old.\n";
  cout << "Error number: " << myNum;
}

- Handle any type of exceptions


Jika anda tidak mengetahui jenis throw yang digunakan dalam try, anda dapat menggunakan sintax “
tiga titik “ ( … ) di dalam blok catch , yang akan menangani semua jenis pengecualian.
Example :
try {
  int age = 15;
  if (age >= 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw 505;
 }
}
catch (...) {
  cout << "Access denied - You must be at least 18 years old.\n";
}

Alhamdulliah tutuk ne 😊😊
By : Ahmad Samsul Hakim 😉

Anda mungkin juga menyukai