Rangkuman:
Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP)
merupakan paradigma pemrograman berdasarkan konsep "objek", yang dapat berisi data,
dalam bentuk field atau dikenal juga sebagai atribut; serta kode, dalam bentuk
fungsi/prosedur atau dikenal juga sebagai method. Semua data dan fungsi di dalam paradigma
ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman
terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke
objek lainnya,
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan
mengubah program, dan digunakan luas dalam teknik peranti lunak skala besar. Lebih jauh
lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding
dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan
dirawat.
6 Contoh Pemrograman Berorientasi Objek
(OOP) untuk Praktek Mandiri
Metode pemrograman dalam dunia programming terbagi atas 2 jenis, yaitu
pemrograman terstruktur dan pemrograman berorientasi objek, atau dikenal
dengan OOP (Object Oriented Programming). Setelah sebelumnya kami
memberikan contoh pemrograman terstruktur, pada kesempatan kali ini kami
akan memberikan contoh pemrograman berorientasi objek. Sebelumnya, mari
kita berkenalan dulu sebentar dengan metode pemrograman ini .
Pemrograman berorientasi objek adalah metode pemrograman yang berorientasikan kepada objek,
dimana semua data dan fungsi dalam metode ini didefinisikan ke dalam kelas-kelas atau objek-objek
agar bisa saling bekerjasama dalam memecahkan masalah. Model data berorientasi objek dapat
memberikan fleksibilitas yang lebih banyak, memberikan kemudahan dalam mengubah program,
dan bisa digunakan secara luas dalam pemrograman skala besar.
Kelebihan dari metode pemrograman berorientasi objek sendiri adalah sebagai berikut:
Maintenance program lebih mudah. Program yang dibuat dengan metode pemrograman
berorientasi objek lebih mudah dibaca dan dipahami. Selain itu, pemrograman berorientasi obyek
dapat mengontrol kerumitan program hanya dengan cara mengizinkan rincian-rincian yang
dibutuhkan oleh programmer.
Mudah dalam pengubahan program, bisa berupa penambahan atau penghapusan fitur atau objek
tertentu. Contoh perubahan yang bisa dilakukan antara lain penambahan dan penghapusan data di
dalam suatu database.
Objek-objek di dalam program dapat digunakan sesering mungkin oleh programmer. Programmer
dapat menyimpan objek-objek yang dirancang ke dalam sebuah module, yang dapat disisipkan ke
dalam baris kode baru. Penambahan bisa dilakukan dengan sedikit perubahan atau tanpa perubahan
pada kode program utama.
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 bahasa pemrogramannya termasuk tinggi, sehingga membutuhkan
penulisan yang lebih kompleks. Macam-macam bahasa pemrograman yang cocok untuk penerapan
metode OOP adalah sebagai berikut:
Visual Foxpro
Java
C++
Pascal (bahasa pemrograman)
Visual Basic.NET
SIMULA
Smalltalk
Ruby
Python
PHP
C#
Delphi
Eiffel
Perl
Adobe Flash AS 3.0
Sebelum mempelajari lebih jauh tentang OOP, sebaiknya Anda mengetahui terlebih dulu istilah –
istilah dalam OOP berikut ini:
Class (Kelas), adalah kerangka dasar dari objek yang akan diciptakan, bisa berupa struktur
yang mendefinisikan data atau method dari objek. Contoh penamaan kelas adalah: Motor,
Laptop, Anggota, dan lainnya.
Property, adalah data yang dimiliki oleh class. Contohnya pada class Motor, memiliki
property sebagai berikut:
Tipe
Warna
Produsen
Method, adalah perilaku dari sebuah class. Bisa juga disebut sebagai tindakan yang bisa
dilakukan oleh suatu class. Contoh pada class Motor, memiliki method sebagai berikut:
Start, method untuk menjalankan motor
Stop, method untuk menghentikan laju motor
Ganti Gigi, method untuk ganti gigi
Turn, method untuk belok kiri atau kanan
Variabel Kelas, merupakan variabel yang dibagikan oleh semua turunan dari kelas. Variabel
kelas didefinisikan di dalam kelas, tapi di luar method yang ada di dalam kelas tersebut.
Data Member, merupakan variabel penyimpan data yang berhubungan dengan kelas dan
objek
Overloading Fungsi, merupakan fungsi yang namanya sama di dalam kelas, tetapi jumlah dan
tipe argumennya berbeda. Sehingga bisa dilakukan beberapa hal yang berbeda.
Overloading Operator, merupakan pembuatan beberapa fungsi untuk satu operator.
Variabel Instansiasi, merupakan variabel yang didefinisikan di dalam suatu method dan
hanya menjadi milik dari satu kelas.
Pewarisan, merupakan pewarisan karakteristik dari sebuah kelas kepada kelas lain yang
menjadi turunannya.
Instansiasi, merupakan pembuatan objek dari suatu kelas.
a. Kelas (class)
Kelas (class) merupakan penggambaran satu set objek yang memiliki atribut yang sama. Kelas mirip
dengan tipe data ada pemrograman non objek, akan tetapi lebih komprehensif karena terdapat
struktur sekaligus karakteristiknya. Kelas baru dapat dibentuk lebih spesifik dari kelas ada
umumnya.kelas merupakan jantung dalam pemrograman berorientasi objek.
b. Objek (Object)
Objek merupakan teknik dalam menyelesaikan masalah yang kerap muncul dalam pengembangan
perangkat lunak. Teknik ini merupakan teknik yang efektif dalam menemukan cara yang tepat dalam
membangun sistem dan menjadi metode yang paling banyak dipakai oleh para pengembang
perangkat lunak. Orientasi objek merupakan teknik pemodelan sistem riil yang berbasis objek.
Objek adalah entitas yang memiliki atribut, karakter dan kadang kala disertai kondisi. Objek
mempresentasikan sesuai kenyataan seperti siswa, mempresentasikan dalam bentuk konsep seperti
merek dagang, juga bisa menyatakan visualilasi seperti bentuk huruf (font).
c. Abstaksi (Abstraction)
Kemampuan sebuah program untuk melewati aspek informasi yang diolah adalah kemampuan untuk
fokus pada inti permasalahan. Setiap objek dalam sistem melayani berbagai model dari pelaku
abstrak yang dapat melakukan kerja, laporan dan perubahan serta berkomunikasi dengan objek lain
dalam sistem, tanpa harus menampakkan kelebihan diterapkan.
d. Enkapsulasi (pembungkus)
Pembungkusan merupakan penggabungan potongan-potongan informasi dan perilaku-perilaku
spesifik yang bekerja pada informasi tersebut, kemudian mengemasnya menjadi sesuatu yang
disebut objek (Nugroho,2005).
Enkapsulasi adalah proses memastikan pengguna sebuah objek tidak dapat menggantikan keadaan
dari sebuah objek dengan cara yang tidak sesuai prosedur. Artinya, hanya metode yang terdapat
dalam objek tersebut yang diberi izin untuk mengakses keadaan yang diinginkan. Setiap objek
mengakses interface yang menyabutkan bagaimana objek lainnya dapat berintegrasi dengannya.
Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
e. Polimorfisme
Polimorfise merupakan suatu fungsionalitas yang diimplikasikan dengan berbagai cara yang berbeda.
Pada program berorientasi objek, pembuat program dapat memiliki berbagai implementasi untuk
sebagian fungsi tertentu.
f. Inheritas (Pewarisan)
Konsep inheritas mempunyai fungsi mengatur polimorfise dan enkapsulasi dengan
mengizinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah
ada. Objek-objek ini dapat membagi dan memperluas perilaku mereka tanpa
mengimplementasikan perilaku tersebut.
Baiklah, sekarang kami akan memberikan contoh pemrograman berorientasi objek yang 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 Visual Basic untuk Mengedit Database
Contoh berikut ini diambil dari artikel yang pernah kami bahas sebelumnya, yaitu contoh
program 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
Contoh 5: Program VB Sederhana
Tampilan form:
Listing program
Tombol “commandbutton”:
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 6: Program Python untuk Menghitung Zakat Penghasilan
Contoh berikut kami ambil dari contoh program Python yang pernah kami bahas di situs ini.
nama=[]
gaji=[]
emas=[]
zakat=[]
pertahun=[]
perbulan=[]
nisab=[]
print (‘+———————————————–+’)
print (‘| Penghitung Zakat Penghasilan |’)
print (‘| menurut pendapatan kasar (brutto) |’)
print (‘| |’)
print (‘+———————————————–+’)
data=int(input(‘Masukan banyak data : ‘))
print(‘==========================================’)
for i in range(data):
a = input(‘Masukan nama : ‘)
nama.append(a)
b = int(input(‘Masukan harga emas saat ini: ‘))
emas.append(b)
c = int(input(‘Masukkan penghasilan Anda per bulan : ‘))
gaji.append(c)
print(”)
for i in range(data):
d = 12 * gaji[i]
pertahun.append(d)
e = 0.025 * pertahun[i]
zakat.append(e)
f = 85 * emas[i]
nisab.append(f)
g = zakat[i] / 12
perbulan.append(g)
for i in range(data):
print (”)
print(‘—————————————-‘)
print(‘ Zakat Penghasilan (Brutto)’)
print(‘—————————————-‘)
print(‘Nama :’,nama[i])
print(‘Harga 1 gram emas :’,’Rp.’,emas[i])
print(‘Penghasilan per bulan :’,’Rp.’,gaji[i])
print(‘Penghasilan per tahun :’,’Rp.’,pertahun[i])
print(‘Harga nishab (85 gram emas) :’,’Rp.’,nisab[i])
print(‘Zakat penghasilan :’,’2.5% x’,pertahun[i],’=’,’Rp.’,zakat[i])
if pertahun[i] >= nisab[i]:
print(‘Keterangan : WAJIB Zakat Rp.’,zakat[i],’/tahun’)
print(‘ atau Rp. ‘,perbulan[i],’/bulan’)
print(”)
if pertahun[i] <= nisab[i]:
print(‘Keterangan : Anda belum termasuk Wajib Zakat’)