CMATH
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);
}
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
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";
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.
// Access the memory address of food and output its value (Pizza)
cout << *ptr << "\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;
}
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();
// Function definition
void myFunction() {
cout << "I just got 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.
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;
}
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)
int main() {
cout << myFunction(5, 3);
return 0;
}
// Outputs 8 (5 + 3)
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;
// Call the function, which will change the values of firstNum and secondNum
swapNums(firstNum, secondNum);
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 .
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.
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
int main() {
// Create an object of Car
Car carObj1;
carObj1.brand = "BMW";
carObj1.model = "X5";
carObj1.year = 1999;
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
};
int main() {
MyClass myObj; // Create an object of MyClass
myObj.myMethod(); // Call the method
return 0;
}
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);
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
};
int main() {
// Create Car objects and call the constructor with different values
Car carObj1("BMW", "X5", 1999);
Car carObj2("Ford", "Mustang", 1969);
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;
}
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;
}
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
int main() {
// Create and open a text file
ofstream MyFile("filename.txt");
- 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;
// 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;
}
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 :
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;
}
Alhamdulliah tutuk ne 😊😊
By : Ahmad Samsul Hakim 😉