Anda di halaman 1dari 19

CCIT - OOP

29 maret 2023

Class

Seperti sebuat struct diluar function MAIN

Contohnya hewan, (bisa karnivora atau herbivora- karn dan herb aadalah object atau manusia bisa
mahasiswa, pegawai kantoran (mahasiswa atau pekerja kantoran adalah object)

- Class gapunya return jadi dia ga perlu tipe data ataupun void

Object

Seuatu yg punya sifat dan perilaku / aksi

Missal mahasiswa :

Sifat: nim, nama, warna kulit, bentuk wajah

Aksi: cetakDataDiri () (biasanya berbentuk function (berdasarkan Tindakan)

Encapsulation

Membungkus data

Variabel local dan Variabel Global

Kalo disini nama public dan private

Kalo public bisa dipake oleh semua class

Kalo private hanya di dalam 1 class saja

Inheritance

Konsep pewarisan class

Jadi turunan sebuah class

Missal class mahasiswa

Inheritancenya : Mahasiswa internasional, mahasiswa pindahan

Jadi mahasiswa internasional / mahasiswa pindahan memilih sifat dan aksi yang sama seperti class
mahasiswa
Abstraction

Proses tersembunyi akan sebuah proses mendisain suatu object

Contoh abstraksi dalam mahasiswa: IPK

Konsep: jadi kan ada proses tersendiri untuk mendapatkan nilai ipk (ada dirata ratain) di kolom
mahasiswanya tinggal display ipknya aja.

Contoh abstraksi dalam mahasiswa #2: Pengerjaan sebuah project tugas

Konsep: dosen gatau proses pengerjaan project, Taunya cumin pas jadi aja

Polymorphism

Contoh program Polimorfisme pada C++

 Polimorfisme artinya “memiliki banyak bentuk”, maksudnya satu hal yang sama dapat memiliki
beberapa bentuk yang berbeda.

Bentuk yang berbeda ini didapat dari: Menggunakan 1 class yg sama, membedakannya dengan
pemanggilan beberapa object dari class tsb.

Method

Berada di dalam class, sifatnya sama seperti fungsi, fungsi memiliki return

Constructor

Fungsi special yang untuk pemanggilan 1 object atau lebih dan berada di dalam class.

Destructor

Untuk menghapus constructor

Constructor dan destructor berada di dalam class

Perbedaan dan persamaan Struct dan class dengan Constructor

Struct berda di luar class, itu memiliki banyak data dengan beragam tipe datanya
Kalao constructor berada dalam class, itu untuk pemanggilan 1 object atau lebih,

Struct dan class tidak memiliki return, kemudian constructor juga tidak memiliki return

Perbedaan Struct dan Class

- Struct terdapat alias untuk merujuk pada suatu struct


- Class dia memiliki 1 object/ lebih yang mewakili rujukan tiap class yang ada

Syntax:

#include <iostream>

using namespace std;

#include <string>

class hewan { // hewan disebut class

public: // disebut access specifier

/*

*/

string nama; //nama dan jenis adalah sifat dan disebut encapsulation (pembungkus data)

string jenis;

void printData() { //printData adalah perilaku/ aksi

cout << "Nama \t= " << nama << endl;

cout << "Jenis \t= " << jenis << endl;

}; //sifat dan perilaku pasti dimiliki oleh object

int main()

hewan harimau; // harimau disebut object

harimau.nama = "Harimau Sumatera";

harimau.jenis = "Karnivora";
harimau.printData();

return 0;

Output:

Kesimpulan:

Kodingan class hewan dan objectnya harimau mirip dengan kodingan polimorfisme diatas

Syntax:

#include <iostream>

using namespace std;

class mahasiswa {

public:

mahasiswa();

};

mahasiswa::mahasiswa() {
// symbol ‘ : : ‘ disebut “Scope Resolution Operator” yang diletakkan diantara nama_class dan
nama_memberFunction

cout << "Constructor Terpanggil" << endl;

int main()

mahasiswa anissa;

return 0;

Output:

Syntax:

#include <iostream>

#include <string>

using namespace std;

class orang{

public:

string nama;

orang(string pNama):

nama(pNama){

cout<<"orang dibuat\n"<<endl;

~orang(){
cout<<"orang dihapus\n"<<endl;

};

class pelajar: public orang{

public:

string sekolah;

pelajar(string pNama, string pSekolah):

orang(pNama),

sekolah(pSekolah){

cout<<"pelajar dibuat\n"<<endl;

~pelajar(){

cout<<"orang dibuat\n"<<endl;

string perkenalan(){

return "Hallo, nama saya " + nama + " dari sekolah " + sekolah + "\n\n";

};

int main(){

pelajar andi("andi laksono", "belajarcpp");

cout<<andi.perkenalan();

return 0;

Output:
2 April 2023

Function

- Pengelompokan yang mengandung beberapa pernyataan yang akan dilaksanakan oleh CPU
Ketika naman ama function tsb dipanggil untuk diesksekusi, kecuali unuk function utama int
main () yang akan dieksekusi scr otomatis
- Fungsi : membantu kita mengelompokan pernyataan2 yang serupa berdasarkan tugas, proses
atau kategori
- Pemanggilan: memanggil nama function tsb

Bentuk umum penulisan

Tipe nama (parameter1, parameter2, ..) {

Pernyataan

Deklarasi function

Output:
Pemanggilan function

Output :

OOP Latihan Mandiri

1. Penjelasan tentang OOP


- Pemrograman yang semua fungsi, data, dan pengolahan data akan dibungkus dalam kelas-kelas
dan object-object.
- Pembungkusan dengan class-class dan object-object ini bertujuan memberikan kemudahan dan
fleksibilitas dalam pembuatan dan perawatan program
- Apa itu object? Seperti wadah yang dibuat untuk menampilkan suatu hasil.
- Object2 tersebut dapat bekerja sendiri dan juga dapat saling bekerja sama, seperti menerima,
mengirim data kepada object lainnya dan memproses data.
- Masing2 object berisi sifat (variable) dan aksi (method/fungsi)

( Penjelasan dan Konsep OOP (Object Oriented Programming) - Belajar C++ (belajarcpp.com)
Contoh kasus: seseorang yang sedang dalam perjalanan dengan mobil.

Kondisi diatas memiliki 2 komponen (class) yaitu Manusia dan Mobil. Masing2 class terdiri dari
komponen kecil (object) yang menyusunnya.

Contoh pada class Manusia, terdapat object yang menyusunnya yaitu object kepala, badan, dan kaki.

Sama halnya dengan bahasa pemrograman berbasis object. Sebuah program besar terdiri dari
komponen2 besar (Class) yang menyusun dan setiap dari komponen besar (Class) itu memiliki
komponen2 kecil (object) di dalamnya.

Fungsi Class dan Object:

- Memudahkan beberapa developer untuk berkolaborasi membangun sebuah program besar


Dengan cara masing2 anggota mengerjakan bagian class dan object nya masing2

Class

- Mirip seperti struct. Perbedaan class dan struct: Yang membedakan antara classdan struct
adalah access specifiernya.
+ Struct hanya memiliki SATU access specifier, yaitu public. Sedangkan, Class memiliki
TIGA access specifier yaitu public, private, protected.

++ public, anggota-anggota dan methods yang bersifat public dapat di akses di


dalam class dan dari luar class.

++ private, anggota-anggota dan methods yang bersifat private HANYA dapat


diakses di dalam class itu sendiri. Dengan kata lain, class lain tidak dapat
mengaksesnya.

++ protected, anggota-anggota dan methods yang bersifat protected HANYA


dapat diakses oleh class itu sendiri dan class class yang bukan turunan dari base
class TIDAK dapat mengakses anggota-anggota dan methods yang bersifat protected.

- Class berisi object2 untuk menghasilkan suatu output tertentu, masing2 class biasanya memiliki
karakter output tersendiri

Object

- Adalah isi dari sebuah class juga mempresentasikan karakter dari sebuah class. Berisi sifat dan
fungsi untuk mengeluarkan output yang diinginkan.

Encapsulation

- Pembungkus data, berupa data sifat (variable) juga data fungsi.


Inheritance

- Konsep pewarisan class, berupa class turunan dari sebuah class, class turunan akan memiliki
sifat dan fungsi yang dimiliki oleh class induk.

Abstraction

- Menyembunyikan detail proses (komponen kecil2 (sifat dan fungsi) yang membangun) sebuah
object. Bertujuan agar memfokuskan pengguna pada proses umum nya saja

Polymorphism

- Dalam Bahasa Yunani artinya memiliki banyak bentuk, jadi Ketika object yang berbeda
memberikan tanggapan atau respon terhadap pesan yang sama berdasarkan suatu class

Penjelasan dan cara pembuatan class dan object

Class

- Mirip dengan struct, perbedaannya yaitu pada class memiliki kemampuan lebih seperti method,
inheritance, dll

Bentuk Penulisan Class

- Butuh keyword class kemudian nama class kemudian tanda { } untuk mengapit statement dari
class tsb.
- Class diakhiri dengan tanda titik koma ‘ ; ‘ karena merupakan sebuah pernyataan.
- Fungsi class dapat menampung member variable, function, constructor, desctructor,
overloading, dll. Juga membuat relasi seperti inheritance dan overriding.
Bentuk penulisan Object

 Penulisan syntax class dan object yaitu ‘nada’, object berada di dalam deklarasi class
- Syaratnya: penulisan objectnya berada diantara ‘ } ’ dan ‘ ; ‘ diakhir class.

Syntax:

Output:

Keterangan:

Kenapa valuenya 0? Karena belum diberikan inisialisasi nilai variabel

 Penulisan syntax class dan object yaitu ‘nada’, object berada di luar deklarasi class yaitu pada
fungsi main
- Syarat Penulisan: di fungsi main deklarasikan nama_class, kemudian spasi, kemudan
nama_object

Syntax:
Output:

Keterangan:

Kenapa valuenya 0? Karena belum diberikan inisialisasi nilai variable

Inisialisi object

- Terdapat tiga acara:


1. Non static member initialization
2. Uniform Initialization
3. Member Initialization in Constructor

 Syntax cara 1
- Inisialisasi objectnya diberikan saat pendeklarasian variabel
- Maka nilai awal itu akan berlaku pada semua object dengan nama yang sama di dalam class tsb.

Syntax:
Output:

 Syntax cara ke-2


- Insialisasi objectnya saat pendeklarasian object
- Inisialisasinya harus berurut sesuai urutan pendeklarasian variable

 Syntax cara ke-3


- Disarankan menggunakan ini
- Inisialisasi object di dalam constructor

Syntax:
Method

Dalam membuat member function atau method terdapat DUA cara:

1. Mendirikan dan mendefinisi function di dalam definisi class


- (dirikan adalah deklarasi) dan (definisi adalah statement)
- Cara 1 ini seperti yang sudah ada diatas di contoh penulisan object
2. Mendeklarasikan method di dalam definisi class dan memberikan statement method di luar class

Function Prototype

- Method dideklarasikan di dalam class, dan untuk memberikan statement di luar class kita dapat
melakukan dengan “Scope Resolution Operator” yaitu symbol ‘ : : ‘, yang diletakkan di antara
nama_class dan nama_memberFunction

Bentuk Penulisan function atau method:

Contoh Penulisan

Output:
Latihan class dan object

 Syntax buatlah class dan objet tentang bunga2 di taman

#include <iostream>

using namespace std;

// buatlah class dan objet tentang bunga2 di taman

class bunga {

public:

string nama;

string jenis;

void mengenalBunga () {

cout << "Nama: " << nama << endl;

cout << "jenis: " << jenis;

};

};

int main(void)

bunga bunga1;

bunga1.nama = "Mawar";

bunga1.jenis = "berduri";

//output

bunga1.mengenalBunga ();
}

Output:

Latihan Enkapsulasi

Private
Error karena member variable nama dan member function mengenalBunga () termasuk data private, jadi
tidak bisa diakses di luar class, dan tidak bisa diotak atik di luar class. Tidak seperti data bersifat public
yang digunakan untuk berkomunikasii dengan luar class

3 April 2023
Keyword ‘This’

Keyword this digunakan untuk ?

Syntax:

 Syntax: coba buat 1 contoh dengan menggunakan keyword this bisa mencetak atau deklarasi :
perhitungan persegi Panjang atau perkalian

#include <iostream>
using namespace std;

class luasPersegiPanjang {
int p, l;
public:
void perhitungan (int p, int l) {
int luas;
cout << "Berapa panjang dan lebar persegi panjang sebelum diberi nilaii: " << this -> p << "
dan " << this -> l << endl;
cout << "Berapa panjang dan lebar persegi panjang setelah diberi nilaii: " << p << " dan " << l
<< endl;
this->p = p;
this -> l = l;
cout << "Berapa panjang dan lebar persegi panjang sebelum diberi nilaii setelah kita inisiasi
dengan parameter: " << p << " dan " << l << endl;

luas = p*l;
cout << "Luas persegi panjang adalah: " << luas;
}
};
int main() {
luasPersegiPanjang luas;
luas.perhitungan(2, 3);
return 0;
}
Output:

Keyword ‘namespace’
Gunakan namespace untuk ketika fungsi kita ingin menggunakan variable yang sama
 // namespaces
 #include <iostream>
 using namespace std;
 namespace satu
 {
 int var = 5;
 }
 namespace dua
 {
 double var = 3.1416;
 }
 int main () {
 cout << satu::var << endl;
 cout << dua::var << endl;
 return 0;
 }
Output:

Anda mungkin juga menyukai