Anda di halaman 1dari 7

Fundamental Pemrograman Berorientasi Objek

Pemrograman Berorientasi Objek (Object-Oriented Programming atau disingkat OOP)


adalah paradigma pemrograman yang berfokus pada objek. Objek dalam OOP adalah
gabungan antara data dan perilaku (behavior) yang terkait dengan data tersebut. Pada
OOP, data dan perilaku dikemas ke dalam sebuah objek yang mempunyai karakteristik
masing-masing dan dapat saling berinteraksi.

Dalam OOP, program terdiri dari kumpulan objek yang saling berinteraksi. Setiap objek
memiliki keadaan (state) yang tersimpan dalam variabel-variabel (data) dan perilaku
(behavior) yang diwujudkan dalam metode (function). Keadaan suatu objek dapat berubah
melalui metode yang dijalanannya.

OOP memungkinkan pemrogram untuk merancang program dengan lebih modular, reusable
dan mudah dimengerti karena pemrogram dapat mengkapsulasi logika program ke dalam
objek-objek yang saling terpisah, sehingga setiap objek dapat dipahami secara terpisah
tanpa harus memahami seluruh program secara utuh.

Contoh sederhana OOP adalah objek mobil. Mobil memiliki beberapa atribut seperti warna,
tahun, dan kecepatan saat ini, serta perilaku seperti menyalakan mesin, mengubah gigi, dan
bergerak maju atau mundur. Dalam OOP, atribut dan perilaku ini dapat dikemas ke dalam
sebuah objek yang dapat digunakan berulang kali dalam program untuk menghemat waktu
dan menghindari kesalahan.

Berikut ini adalah penjelasan singkat tentang dasar-dasar pemrograman berorientasi objek
menggunakan bahasa C++:

1. Class: Dasar dari pemrograman berorientasi objek adalah class. Class adalah
struktur yang digunakan untuk menyimpan data dan fungsi terkait bersama. Class ini
dapat dianggap sebagai blueprint untuk membuat objek.
2. Object: Objek adalah instance atau perwujudan dari class. Sebuah class dapat
memiliki banyak objek. Setiap objek memiliki nilai yang berbeda untuk setiap variabel
anggota yang dimilikinya.
3. Encapsulation: Encapsulation adalah konsep untuk membatasi akses langsung ke
data dan fungsi dalam class. Ini dapat dilakukan dengan menetapkan tingkat akses,
seperti public, private, dan protected.
4. Inheritance: Inheritance memungkinkan class baru untuk diwarisi sifat dari class yang
sudah ada. Class yang baru ini dikenal sebagai subclass atau turunan, dan class
yang sudah ada disebut sebagai superclass atau induk.
5. Polymorphism: Polymorphism adalah kemampuan objek untuk berubah bentuk. Ada
dua jenis polymorphism: compile-time dan runtime. Compile-time polymorphism
terjadi ketika keputusan diambil pada saat kompilasi, sedangkan runtime
polymorphism terjadi pada saat runtime.

Kelas & Objek


Konsep kelas dan objek adalah dasar dari paradigma pemrograman berorientasi objek
(Obejct Oriented Programming - OOP) yang digunakan dalam bahasa pemrograman seperti
C++, Java, Python, dan lainnya. Dalam OOP, program dibuat berdasarkan konsep real-
world objects, di mana sebuah objek adalah sebuah entitas yang memiliki atribut (variabel)
dan perilaku (fungsi/method).
Kelas adalah sebuah blueprint atau cetak biru (template) yang digunakan untuk membuat
sebuah objek. Kelas mendefinisikan jenis data (atribut) dan fungsi-fungsi (method) yang
dapat dilakukan oleh objek dari kelas tersebut. Dalam C++, sebuah kelas didefinisikan
dengan menggunakan kata kunci class. Berikut adalah contoh definisi kelas dalam C++:

Dalam contoh di atas, kita membuat sebuah kelas bernama Mahasiswa. Kelas tersebut
memiliki tiga atribut: nama, nim, dan umur, serta sebuah method bernama
tampilkan_data(). Method tersebut digunakan untuk menampilkan data mahasiswa.

Objek adalah sebuah instance dari sebuah kelas. Ketika sebuah objek dibuat, memori akan
dialokasikan untuk menyimpan atribut-atribut dan method-method dari objek tersebut. Untuk
membuat sebuah objek, kita menggunakan operator new dalam bahasa C++. Berikut adalah
contoh pembuatan objek dari kelas Mahasiswa:

Dalam contoh di atas, kita membuat sebuah objek dari kelas Mahasiswa bernama mhs.
Kemudian, kita mengisi atribut-atribut dari objek tersebut dan memanggil method
tampilkan_data() untuk menampilkan data mahasiswa.

Ikutilah program di bawah ini, buatlah sebuah file baru dengan nama Mahasiswa.cpp:
Method/function Konstruktor dan Encapsulation
Method konstruktor (constructor) adalah sebuah method khusus dalam pemrograman
berorientasi objek yang dipanggil secara otomatis ketika sebuah objek dibuat dari suatu
kelas. Konstruktor biasanya digunakan untuk menginisialisasi nilai awal dari properti atau
atribut yang ada pada suatu objek.

Method konstruktor dapat didefinisikan dengan nama yang sama dengan nama kelas dan
tidak memiliki tipe pengembalian. Method ini juga dapat memiliki parameter, yang biasanya
digunakan untuk memberikan nilai awal pada properti atau atribut yang ada pada objek.

selanjutnya kita ubah kelas mahasiswa sebelumnya dengan penambahan konstruktor dan
contoh encapsulation:
Encapsulation adalah salah satu konsep dasar dalam pemrograman berorientasi objek
(OOP) yang bertujuan untuk menyembunyikan data dari akses langsung oleh program lain,
dan hanya memungkinkan akses melalui metode atau fungsi tertentu.

Dengan cara ini, data dan perilaku kelas dapat diatur dan diatur dengan lebih baik, karena
data terlindungi dan hanya dapat diubah melalui fungsi atau metode yang disediakan. Ini
juga mencegah perubahan tidak disengaja atau tidak diinginkan pada data kelas, dan
memastikan bahwa data kelas terjaga konsistensinya.

Secara umum, encapsulation terdiri dari dua bagian utama:

1. Penyembunyian data (data hiding) - data kelas tidak dapat diakses secara langsung
dari luar kelas. Data hanya dapat diakses melalui fungsi atau metode publik yang
disediakan oleh kelas.
2. Abstraksi - detail implementasi kelas disembunyikan dari pengguna kelas, dan hanya
antarmuka publik yang terlihat. Ini memungkinkan pengguna kelas untuk fokus pada
penggunaan kelas tanpa khawatir tentang bagaimana kelas itu diimplementasikan.

Contoh implementasi encapsulation pada kelas Mahasiswa yang telah dibuat sebelumnya
adalah dengan menyembunyikan variabel nama, nim, dan umur menggunakan akses
kontrol private, dan menyediakan fungsi-fungsi public display() untuk mengakses data
tersebut. Hal ini mencegah perubahan data secara langsung dari luar kelas, sehingga dapat
dijamin data kelas terjaga konsistensinya.

Pada C++, terdapat dua jenis encapsulation, yaitu:

1. Public Encapsulation Dalam public encapsulation, semua anggota kelas (baik


variabel atau fungsi) dapat diakses dari mana saja, baik dari dalam kelas maupun
dari luar kelas.
2. Private Encapsulation Dalam private encapsulation, hanya anggota kelas yang dapat
diakses dari dalam kelas itu sendiri. Anggota kelas yang bersifat private tidak dapat
diakses dari luar kelas. Oleh karena itu, jika ingin mengakses anggota kelas yang
bersifat private, kita harus menggunakan fungsi anggota (member function) yang
bersifat public.

Untuk mengubah data yang bersifat private, kita memerlukan fungsi setter dan getter,
berikut ini adalah contoh penerapannya, silahkan ubah class mahasiswa sebelumnya:

#include <iostream>
#include <string>
using namespace std;

class Mahasiswa {
private:
string nama;
string nim;
int umur;

public:
// Konstruktor
Mahasiswa(string _nama, string _nim, int _umur) {
nama = _nama;
nim = _nim;
umur = _umur;
}

// Getter
string getNama() {
return nama;
}

string getNim() {
return nim;
}

int getUmur() {
return umur;
}

// Setter
void setNama(string _nama) {
nama = _nama;
}

void setNim(string _nim) {


nim = _nim;
}

void setUmur(int _umur) {


umur = _umur;
}
};

int main() {
Mahasiswa mhs1("Andi", "190001", 20);
cout << "Nama: " << mhs1.getNama() << endl;
cout << "NIM: " << mhs1.getNim() << endl;
cout << "Umur: " << mhs1.getUmur() << endl;

mhs1.setNama("Budi");
mhs1.setNim("190002");
mhs1.setUmur(21);

cout << "\nNama: " << mhs1.getNama() << endl;


cout << "NIM: " << mhs1.getNim() << endl;
cout << "Umur: " << mhs1.getUmur() << endl;

return 0;
}

SOAL:
1. Buatlah kelas "Mobil" dengan atribut "merek", "tahun_pembuatan", dan "harga".
Berikan method "getMerek()", "getTahunPembuatan()", "getHarga()", dan
"setHarga(int harga)" untuk mendapatkan dan mengubah nilai atribut "merek",
"tahun_pembuatan", dan "harga".
2. Buatlah program yang membuat 2 objek dari kelas "Mobil" dengan merek dan tahun
pembuatan yang berbeda. Tampilkan atribut dari masing-masing objek dan ubah
harga dari salah satu objek. Kemudian, tampilkan kembali atribut dari kedua objek
tersebut.
3. Buatlah kelas "Mahasiswa" dengan atribut "nama", "nim", dan "ipk". Berikan method
"getNama()", "getNIM()", "getIPK()", dan "setIPK(double ipk)" untuk mendapatkan
dan mengubah nilai atribut "nama", "nim", dan "ipk".
4. Buatlah program yang meminta input dari user untuk membuat objek dari kelas
"Mahasiswa". Tampilkan atribut dari objek yang dibuat dan minta user untuk
mengubah nilai IPK dari objek tersebut. Tampilkan kembali atribut dari objek setelah
nilai IPK diubah.

Kumpulkan jawaban kalian pada GFORM berikut:


https://forms.gle/TvUY1vjmgcRbsvVx9

Anda mungkin juga menyukai