Penjelasan OOP ( Object Oriented Progamming )

 

Assalammualaikum wr. wb.

Selamat Datang di blogsaya yang bertajuk Penjelasan OOP!

Sebelumnya saya ucapkan terima kasih atas kesediaan anda mengunjungi blog ini. Blog ini saya buat untuk memenuhi tugas kuliah saya, tapi mungkin bisa sekaligus memberi wawasan untuk teman-teman semua, Insya Allah.

Namun demikian, tentunya saya membuka diri bagi rekan dosen maupun mahasiswa lainnya yang ingin memberikan masukan yang konstruktif agar blog ini terus menjadi lebih baik lagi.

Salam Inovatif!!!

 

Apa itu OOP?

    OOP (Object Oriented Programming) atau dalam bahasa indonesia dikenal dengan pemrograman berorientasikan objek (PBO) merupakan sebuah paradigma atau teknik pemrograman yang berorientesikan Objek.

    Pada OOP, Fungsi dan variabel dibungkus dalam sebuah object atau class yang dapat saling brinteraksi, sehingga membentuk sebuah program. OOP merupakan hal yang harus dipelajari untuk memahami Java lebih dalam. Karena Java sendiri merupakan bahasa yang didesain untuk OOP. OOP dikenal sebagai teknik pemrograman modern yang lebih efisien dan banyak digunakan pada Framework.

Objek 

Kelebihan & Kekurangan dari OOP

  • Pembuatan program dengan orientasi object memiliki Kelebihan:

1. Improved software-development productivity

Modularity : Pembuatan program dengan membuat modul-modul berupa object

Flexibility : Sistem Program dapat dimodifikasi tanpa melibatkan banyak modul, hanya object yang terlibat saja.

Extensibility : Class Object dapat dikembangkan dengan menambahkan attributes dan behaviors baru.

Expandability : Sistem Program dapat dikembangankan sampai skala yang paling kompleks (large scale software system).

Reusability : Class Object dipakai lagi pada lintas aplikasi program

2. Improved software maintainability

Karena design-nya modular, bagian dari software system dapat dengan mudah di-maintain jika ada perubahan meskipun dalam skala yang besar.

3. Faster development

OOP disupport oleh banyak library object yang reusable, sehingga mempercepat penyelesaian program dan juga project berikutnya.

4. Lower cost of development

Faster development tentu akan mengurangi biaya pengembangan proyek software. 

5. Higher-quality software

Faster development akan memberikan lebih banyak waktu dan resource untuk melakukan proses verification software. Banyak library object yang digunakan juga sudah teruji.

 

  • Di-samping kelebihan itu, OOP juga memiliki kekurangan:

1. Lebih kompleks untuk dipelajari.

Untuk beberapa programmer, butuh waktu untuk terbiasa dengan OOP. Program OOP yang komprehensif melibatkan banyak konsep, seperti abstraction, inheritance dan polymorphism.

2. Ukuran Program OOP lebih besar dibandingkan dengan program POP.

3. Runtime program OOP lebih lambat dari pada POP karena ukurannya lebih besar.

4. Tidak semua masalah program diselesaikan dengan OOP. Beberapa solusi lebih efisien menggunakan POP atau programming style yang lain.

 

Seperti yg ditulis di atas, dalam OOP ada yg namanya Class, Object, Variabel & Fungsi. Arti dari keempat istilah tersebut adalah :

  • Class

    Class merupakan cetakan dari object. Sebuah class berisi kode-kode yang mendefinisikan bagaimana sebuah object akan berperilaku dan berinteraksi satu sama lain atau berinteraksi dengan dirinya sendiri. Class dalam pemrograman dapat diartikan seperti sebuah cetakan atau template.

Contoh Class :

class NamaClass {
    String atribut1;
    String atribut2;

    void namaMethod(){ ... }
    void namaMethodLain(){ ... }
}
  • Object 

    Object adalah sebuah benda nyata yang merupakan hasil dari ‘cetakan’ class.  Dalam pemrograman, objek dapat diartikan sebagai bagian dari sebuah aplikasi program (software) dimana didalamnya dihubungkannya variabel-variabel dan juga method-mthodnya yang keduanya saling keterkaitan satu dengan lainnya.

Contoh Object

NamaClass namaObj = new NamaClass();

Kata kunci new berfungsi untuk membuat objek baru dari class tertentu.

  • Variabel

    Dalam OOP, Varuabel bisa disebut juga Property. Pada dasarnya property merupakan variable yang dideklarasikan di dalam class, namun tidak berada di dalam fungsi (method) dari suatu class.

    Penerapannya dalam pemrograman, property terdapat di dalam class yang memberikan informasi. Property bisa diakses dengan tiga jenis akses user (modifier), antara lain: public, private dan protected yang akan dibicarakan lebih lanjut.

 Contoh dari penulisan Variabel :

<?php
class laptop {
    var $pemilik;
    var $ukuran_layar;
    var $merk;
}     
?>

$merk, $ukuran_layar dan $jenis_processor adalah property dari class laptop. Seperti yang kita lihat, penulisan property di dalam PHP sama dengan cara penulisan variabel, yakni menggunakan tanda dollar ($). Sebuah class tidak harus memiliki property.

  • Fungsi

Dalam OOP, Fungsi disebut juga Method. Method merupakan fungsi yang berada di dalam class. Seperti property, method juga dapat diakses dengan tiga jenis akses user atau modifier. Dalam penerapannya di pemrograman objek dapat menyimpan state dalam beberapa variabel dan mengimplementasikan behaviour-nya menggunakan method

 Contoh Fungsi :

<?php
class laptop {
    function hidupkan_laptop() {
    //.. isi dari method hidupkan_laptop
    }
function matikan_laptop() {     //.. isi dari method matikan_laptop
    }
} ?>
 

Karakteristik OOP 

Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat : 
  • Encapsulation (pembungkusan)

Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas dalam sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi. Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci. Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan objek kelas tertentu.

Contoh: kelas mobil menyediakan antarmuka fungsi untuk menjalankan mobil tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara dan kalor yang diperlukan untuk proses tersebut.

  • Inheritance (pewarisan)

Kita dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan secara bertingkattingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik. Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya. Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kode-kode itu.

  • Polymorphism (polimorfisme – perbedaan bentuk) 

Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik. Contoh, saya melatih anjing saya dengan perintah untuk menggonggong dan juga saya melatih burung untuk merespon perintah saya untuk berkicau. Saya lakukan latihan untuk merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan.

Pemrograman berorientasi objek (selanjutnya disebut OOP) bisa digunakan jika tahap penulisan kode program sudah mencapai tingkat kerumitan yang tinggi. Hal ini biasanya terjadi pada bahasa pemrograman yang tingkatan pemrograman termasuk tinggi, sehingga membutuhkan penulisan yang lebih kompleks. Macam-macam bahasa pemrograman yang cocok untuk penerapan metode OOP adalah sebagai berikut:

  1. Visual Foxpro

  2. Java

  3. C++

  4. Pascal (bahasa pemrograman)

  5. Visual Basic.NET

  6. SIMULA

  7. Smalltalk

  8. Ruby

  9. Python

  10. PHP

  11. C#

  12. Delphi

  13. Eiffel

  14. Perl

  15. Adobe Flash AS 3.0

 

Contoh pemrograman berorientasi objek 

OOP bisa dipraktekkan menggunakan C++, Python, dan Visual Basic. Berikut contoh-contohnya:

  • Contoh 1: Program menghitung luas persegi panjang dan segitiga

#include <iostream>
using namespace std;

class PersegiPanjang{
int panjang,lebar;
public:
int luas(){
return (panjang*lebar);
}
void set_values(int x,int y){
panjang = x;
lebar = y;
}
};

class Segitiga{
int alas,tinggi;
public:
float luas(){
return (alas*tinggi*0.5);
}
void set_values(int a, int t){
alas = a;
tinggi = t;
}
};

int main(){
PersegiPanjang Kotak1;
PersegiPanjang Kotak2;
Segitiga Segitiga1;
Segitiga Segitiga2;
Kotak1.set_values(10,10);
Kotak2.set_values(5,5);
Segitiga1.set_values(7,6);
Segitiga2.set_values(3,7);
cout << “Luas Kotak 1 adalah ” << Kotak1.luas() << endl;
cout << “Luas Kotak 2 adalah ” << Kotak2.luas() << endl;
cout << “Luas Segitiga 1 adalah ” << Segitiga1.luas() << endl;
cout << “Luas Segitiga 2 adalah ” << Segitiga2.luas() << endl;
}

  • Contoh 2: Program C++ untuk Pendaftaran Mahasiswa Baru

#include <stdio.h>
void main ()
{
char nama[20],alamat [20],jenkel[6],tanya,no_telp[10];
int nim;
tanya;
cout<<"||formulir pendaftaran mahasiswa baru\n";
lagi:
{
cout<<"||Nama=";
cin>>nama;
cout<<"||NIM=";
cin>>nim;
cout<<"||Jenis kelamin=";
cin>>jenkel;
cout<<"||Alamat=";
cin>>alamat;
cout<<"||no telp=";
cin>>no_telp;
}
cout<<"data telah disimpan\n";
cout <<"input data lagi [Y/T] ??";
cin>>tanya;
if(tanya=='Y'||tanya=='y')
goto lagi;
else
goto selesai;
selesai:
getch();
}

  • Contoh 3: Program Python detail karyawan

class Karyawan:
jumlah_karyawan = 0

def __init__(self, nama, gaji):
self.nama = nama
self.gaji = gaji
Karyawan.jumlah_karyawan += 1

def tampilkan_jumlah(self):
print("Total karyawan:", Karyawan.jumlah_karyawan)

def tampilkan_profil(self):
print("Nama :", self.nama)
print("Gaji :", self.gaji) print()

# Membuat objek pertama dari kelas Karyawan
karyawan1 = Karyawan("Sarah", 1000000)
# Membuat objek kedua dari kelas Karyawan
karyawan2 = Karyawan("Budi", 2000000)

karyawan1.tampilkan_profil()
karyawan2.tampilkan_profil()
print("Total karyawan :", Karyawan.jumlah_karyawan)

  • Contoh 4: Program VB Sederhana

Tampilan form:

setelah textbox diisi nama

Listing program

If Text1.Text = “” Then
MsgBox (“Isi dulu Nama anda”)
Else
MsgBox (“Nama Saya” + Text1.Text + “Dan saya sedang belajar Visual Basic 6.0”)
End If

  • Contoh 5: Program Visual Basic untuk Mengedit Database

Contoh berikut ini diambil dari artikel yang pernah kami bahas sebelumnya, yaitu contoh programan Visual Basic. Kami tampilkan di sini sebagai referensi Anda dalam memahami OOP atau pemrograman berorientasi objek.

Tampilan pada form:

Listing Program:

  • Command Button “Simpan”

Private Sub Command1_Click()
‘Addnew = untuk membuat atau menambah data baru
Data1.Recordset.AddNew
‘perintah untuk menyimpan data yang di inputkan pada textbox ke dalam field database
Data1.Recordset!nrp = Text1.Text
Data1.Recordset!nama = Text2.Text
Data1.Recordset!jurusan = Text3.Text
‘update = perintah untuk mengupdate data yang telah ditambahkan
Data1.Recordset.Update
‘perintah untuk merefresh grid ketika data sudah ditambahkan
DBGrid1.Refresh
‘perintah untuk mengkosongkan textbox setelah data disimpan
Text1.Text = “”
Text2.Text = “”
Text3.Text = “”
End Sub

  • Command Button “Edit”

Private Sub Command2_Click()
‘Edit = untuk mengedit data yang sudah ada
Data1.Recordset.Edit
‘perintah untuk menyimpan data yang di sudah di edit
Data1.Recordset!nrp = Text1.Text
Data1.Recordset!nama = Text2.Text
Data1.Recordset!jurusan = Text3.Text
Data1.Recordset.Update
DBGrid1.Refresh
Text1.Text = “”
Text2.Text = “”
Text3.Text = “”
End Sub

  • Command Button “Hapus”

Private Sub Command3_Click()
Data1.Recordset.Delete
DBGrid1.Refresh
Text1.Text = “”
Text2.Text = “”
Text3.Text = “”
End Sub

  • DBGrid1

Private Sub DBGrid1_Click()
‘kode perintah untuk menampilkan data yang sudah disimpan di dalam grid ke textbox
Text1.Text = Data1.Recordset!nrp
Text2.Text = Data1.Recordset!nama
Text3.Text = Data1.Recordset!jurusan
End Sub


 Sekian pembahasan mengenai Object Oriented Progamming.serta contoh programnya, Semoga bermanfaat, Terima Kasih!!

  • Referensi : 

https://www.duniailkom.com/tutorial-belajar-oop-php-pengertian-class-object-property-dan-method/
http://dyascharisma.blogspot.com/2013/10/istilah-istilah-dalam-oop-object.html
https://idcloudhost.com/panduan/mengenal-pengertian-dan-konsep-oop/
https://tugas-kuliah-mahasiswa.blogspot.com/2016/02/artikel-oop.html
https://www.petanikode.com/java-oop/
https://oopcpp.wordpress.com/2017/02/17/kelebihan-dan-kekurangan-oop/
https://dosenit.com/kuliah-it/pemrograman/contoh-pemrograman-berorientasi-objek

Dibuat Oleh : Muhammad Nur Hidayat ( TI-19A ) dari Universitas Bina Insani
~ 2020

Komentar