-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
1
BAB I
PENDAHULUAN
A. Latar Belakang
Pemrograman Berorientasi Objek (Object Oriented Programming
atau
OOP) merupakan paradigma pemrograman yang terkini. Dimana objek
adalah
struktur data yang terdiri dari bidang data dan metode bersama
dengan interaksi
mereka untuk merancang aplikasi dan program komputer. 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. Pada
jaman
sekarang, banyak bahasa pemrograman yang mendukung OOP.
OOP adalah paradigma pemrograman yang cukup dominan saat
ini,
karena mampu memberikan solusi kaidah pemrograman modern.
Meskipun
demikian, bukan berarti bahwa pemrograman prosedural sudah tidak
layak lagi.
OOP diciptakan karena dirasakan masih adanya keterbatasan pada
bahasa
pemrograman tradisional. Konsep dari OOP sendiri adalah semua
pemecahan
masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi
yang akan
mengoperasikannya digabungkan menjadi satu kesatuan yang dapat
disebut
sebagai objek. Proses perancangan atau desain dalam suatu
pemrograman
merupakan proses yang tidak terpisah dari proses yang
mendahului, yaitu analisis
dan proses yang mengikutinya.
Model data berorientasi objek dikatakan dapat memberi
fleksibilitas yang
lebih, kemudahan mengubah program, dan digunakan luas dalam
teknik piranti
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.
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
2
B. Rumusan Masalah
Dengan memperhatikan Latar belakang tersebut, maka penulis
mengemukakan beberapa rumusan masalah. Rumusan masalah
tersebut
diantaranya adalah :
1. Pengertian OOP (Object Oriented Programming)?
2. Apa keuntungan penerapan OOP?
3. Bahasa apa saja yang mendukung OOP?
4. Apa itu Object dan Class?
5. Apa saja karakteristik OOP?
C. Tujuan dan Manfaat
Tujuan dan Manfaat dari pembuatan makalah ini adalah selain
daripada
salah salah satu syarat seleksi penerimaan Asisten Laboratorium
Fakultas Ilmu
Komputer UMI, juga untuk mengetahui lebih jauh mengenai
Pemrograman
Berorientasi Objek (Object Oriented Programming atau OOP).
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
3
BAB II
PEMBAHASAN
A. Pengertian Pemrograman Berorientasi Objek (OOP)
Pemrograman Berorientasi Objek atau Object Oriented
Programming
disingkat OOP adalah suatu metode pemrograman yang
berorientasikan kepada
objek seperti dalam dunia nyata. Dimana semua data dan fungsi di
dalam metode
ini dibungkus didalam class-class atau object-object. Setiap
objek yang kita buat
dapat menerima instruksi, memproses data, dan mengirim
instruksi/data ke objek
lainnya, Pemrograman berorientasi objek memandang bahwa semua
pemecahan
masalah dibagi ke dalam kelas (class). Class tersebutlah yang
akan menciptakan
sebuah objek yang memiliki atribut/ciri-ciri dan metode/ tingkah
laku.
B. Kelebihan Pemrograman Berorientasi Objek (OOP)
- Memungkinkan menggunakan penerapan dunia nyata (real-world
modeling)
- Mendukung penggunaan kembali code yang telah ada (reusable
sources)
- Menyediakan fleksibilitas dalam memodifikasi kode yang telah
ada (fleksibel)
- Membantu dengan mudah pemeliharaan code yang telah ada
(maintenable)
C. Bahasa Pemrograman yang menerapkan OOP
- Java
- C++ (dari bahasa C )
- Visual Basic.NET , C#
- SIMULA
- Smalltalk
- Ruby
- Python
- PHP
- Perl, dan sebagainya
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
4
D. Objek dan Kelas
1. Objek/ Object
Pada dasarnya semua benda yang ada di dunia nyata dapat
dianggap sebagai sebuah objek. Jika perhatikan lebih lanjut,
pada dasarnya
ada dua karakteristik yang utama pada sebuah objek , yaitu :
- Setiap objek memiliki atribut/ciri-ciri sebagai status yang
kemudian
akan disebut sebagai state.
- Setiap objek memiliki tingkah laku yang kemudian akan
disebut
sebagai behaviour.
Contoh sederhananya adalah : objek mobilku
- Sepeda memiliki atribut ( state ) : merek: xenia, warna:
putih, tahun
produksi: 2012, dll.
- Sepeda memiliki tingkah laku ( behaviour ) : kecepatannya
menaik,
kecepatannya menurun, dan perpindahan gigi,dll.
Dalam pengembangan perangkat lunak berorientasi objek, objek
dalam
perangkat lunak akan menyimpan state-nya dalam variabel dan
menyimpan informasi tingkah laku (behaviour) dalam Method
atau
fungsi/prosedur.
2. Kelas/ Class
Kelas berbeda dengan objek. Kelas merupakan template/cetakan
dari
objek yang mendefinisikan variabel dan Method secara umum.
Sedangkan
objek pada sisi yang lain merupakan instansiasi/penerapan dari
suatu kelas,
yang mendefinisikan variabel dan Method secara spesifik.
Sebuah Kelas juga merupakan type data, dapat digunakan untuk
mendeklarasi objek yang direferensikan dengan variabel-variabel.
Banyak
objek yang dapat dibuat hanya menggunakan satu kelas.
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
5
Berikut adalah perbandingan sederhana antara Object dan Class
:
Contoh penerapannya pada kode Java (nama file MobilBeraksi.java)
:
class Mobil{
String merek,warna,noPlat;
int kecepatan = 0;
//Method
void getAtribut(){
System.out.println("Merek Mobil : "+merek);
System.out.println("Warna Mobil : "+warna);
System.out.println("Nomer Plat : "+noPlat);
}
void setKecepatan(int input){
kecepatan=kecepatan+input;
}
}
public class MobilBeraksi{
public static void main(String[] args) {
// Membuat object
Mobil mobilku = new Mobil();
//memanggil atribut dan memberi nilai
mobilku.merek="Avanza";
mobilku.warna="Hitam";
mobilku.noPlat="DD 24 IR";
// Memanggil Method dan menunjuk nilai parameter
mobilku.getAtribut();
mobilku.setKecepatan(30);
System.out.println ( "Mobil " + mobilku.merek + " warna " +
mobilku.warna + " bernomer plat " + mobilku.noPlat + "
sedang
melaju dengan kecepatan " + mobilku.kecepatan + " km/jam "
);
}
}
Class Object
Identifier Mobil Mobilku
Atribut/ State Merek, Warna, No.Plat Avanza, Hitam, DD 24 IR
Tingkah
Laku/
Method
Tambah kecepatan, Kurangi
kecepatan, dll
Tambah kecepatan, Kurangi
kecepatan, dll
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
6
E. Karakteristik Pemrograman Berorientasi Objek (OOP)
1. Abstraksi/ Abstraction
Abstraksi dapat didefinisikan sebagai kemampuan sebuah
program
untuk melewati aspek informasi yang diproses olehnya, yaitu
kemampuan
untuk memfokus pada inti. Setiap objek dalam sistem melayani
sebagai
model dari pelaku abstrak yang dapat melakukan kerja, laporan
dan
perubahan keadaannya, dan berkomunikasi dengan objek lainnya
dalam
sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan.
Proses,
fungsi atau metode dapat juga dibuat abstrak, dan beberapa
teknik digunakan
untuk mengembangkan sebuah pengabstrakan.
2. Pembungkusan / Encapsulation
Tujuan utama enkapsulasi adalah menyederhanakan kerumitan
program menjadi beberapa bagian yang biasanya tidak perlu
diketahui
prosesnya secara detail. Memastikan pengguna sebuah objek tidak
dapat
mengganti keadaan dalam dari sebuah objek dengan cara yang tidak
layak;
hanya metode dalam objek tersebut yang diberi izin untuk
mengakses
keadaannya. Setiap objek mengakses interface yang menyebutkan
bagaimana
objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak
akan
mengetahui dan tergantung kepada representasi dalam objek
tersebut.
Inti dari enkapsulasi adalah :
- Menyembunyikan kompleksitas
- Memproteksi internal sistem
- Modularitas
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
7
3. Pewarisan/ Inheritance
Konsep pewarisan yaitu suatu kelas bisa diturunkan menjadi
kelas
baru yang masih mewarisi sifat-sifat kelas induknya. Pewarisan
adalah
keuntungan besar dalam pemrograman berbasis object karena suatu
sifat atau
Method yang didefinisikan dalam superclass, secara otomatis
diwariskan dari
semua subclasses. Jadi, penulisan kode Method hanya sekali dan
dapat
digunakan oleh semua subclass. Subclass hanya butuh
mengimplementasikan
perbedaannya sendiri dan induknya.
Contoh pewarisan :
Kelas Lingkaran dapat diturunkan menjadi kelas Kerucut dan
kelas
Bola. Kelas kerucut dan kelas bola (disebut sub kelas/kelas
perluasan) akan
mewarisi semua field dan Method dari kelas Lingkaran (kelas
induknya/superclass) selama field dan Method tersebut tidak
dideklarasikan
sebagai private.
Contoh pewarisan pada Lingkaran.java mewarisi Tabung.java:
public class Lingkaran{ //super class
final double phi=3.14;
double jari2;
public Lingkaran(){
jari2=1.0;
}
public void setJari2(double input){
jari2=input;
}
Class Lingkaran
Class Tabung Class Kerucut
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
8
public double getJari2(){
return jari2;
}
public double Hitung_Luas(){
return (phi*jari2*jari2);
}
public static void main( String [] args ){
Lingkaran lingkar001 = new Lingkaran();
lingkar001.setJari2(100);
System.out.println("jari2 = "+lingkar001.getJari2());
double hasil = lingkar001.Hitung_Luas();
System.out.println("Luas = "+hasil);
}
}
Tabung.java :
public class Tabung extends Lingkaran{ //sub class
private double tinggi;
public Tabung(){
tinggi=1.0;
}
public void setTinggi(double input){
tinggi = input;
}
public double getTinggi(){
return tinggi;
}
public double Hitung_Volume(){
return (phi*jari2*jari2*tinggi);
}
public static void main( String [] args ){
Tabung tabung001 = new Tabung();
tabung001.setTinggi(10.0);
System.out.println("Tinggi = "+ tabung001.getTinggi());
double hasil = tabung001.Hitung_Volume();
System.out.println("Volume = "+hasil);
}
}
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
9
4. Polimorfisme/ Polymorphism
Kata polimorfisme yang berarti satu objek dengan banyak
bentuk
yang berbeda, adalah konsep sederhana dalam bahasa
pemrograman
berorientasi objek yang berarti kemampuan dari suatu variabel
referensi objek
untuk memiliki aksi berbeda bila Method yang sama dipanggil,
dimana aksi
Method tergantung dari tipe objeknya.
Kondisi yang harus dipenuhi agar polimorfisme dapat diterapkan
adalah :
- Method yang dipanggil harus melalui variabel dari basic class
atau
superclass.
- Method yang dipanggil harus juga menjadi Method dari basic
class.
- Signature Method harus sama, baik pada superclass maupun
subclass.
- Method access attribute pada subclass tidak boleh lebih
terbatas dari
basis class.
Dalam konsep Polimorfisme, Method yang sama dapat memiliki aksi
yang
berbeda, teknik ini dinamakan Overloading dan Overriding :
- Overloading
Penggunaan satu nama untuk beberapa Method yang berbeda
(beda
parameter). Overloading mendefinisikan Method yang memiliki nama
yang
sama, tetapi dengan signature yang berbeda dalam definisi kelas
yang sama.
- Overriding
Terjadi ketika deklarasi Method subclass dengan nama dan
parameter
yang sama dengan Method dari superclassnya. Untuk beberapa
pertimbangan,
terkadang subclass perlu memiliki implementasi berbeda dari
Method yang
khusus dari superclass tersebut. Oleh karena itulah, Method
overriding
digunakan. Subclass dapat mengesampingkan Method yang
didefinisikan
dalam superclass dengan menyediakan implementasi baru dari
Method
tersebut.
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
10
Contoh Overloading Method pada Java (nama file
Matematika.java):
public class Matematika {
int hasil;
//Method penjumlahan 2 bilangan
void penjumlahan (int x,int y) {
hasil = x + y;
System.out.println("penjumlahan "+x+" + "+y+" =
"+hasil);
}
//Method penjumlahan 3 bilangan
void penjumlahan (int x,int y, int z) {
hasil = x + y + z;
System.out.println("penjumlahan "+x+" + "+y+" + "+z+" =
"+hasil);
}
}
class MatematikaBeraksi {
public static void main(String[] args) {
Matematika operasi = new Matematika();
// Memanggil Method yang namanya sama
// tapi parameter yg menjadi pembeda
operasi.penjumlahan(2,4);
operasi.penjumlahan(3,5,2);
}
}
Contoh Overriding Method pada Java (nama file
Overriding.java):
public class Overriding { //superclass
void tampil(){
System.out.println("Method Pertama");
}
}
class SubOverriding extends Overriding{ //subclass
@Override
void tampil(){ //meng-override Method dari superclass
System.out.println("Method Kedua, menimpa Method Pertama");
}
public static void main(String[] args){
SubOverriding obj = new SubOverriding();
obj.tampil();
}
}
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
11
BAB III
PENUTUP
A. Kesimpulan
- Pemrograman berorientasi objek memandang bahwa semua
pemecahan
masalah dibagi ke dalam kelas (class). Kelas tersebutlah yang
akan
menciptakan sebuah objek (object) yang memiliki
atribut/ciri-ciri dan
Method/ tingkah laku.
- Kelebihan OOP :
- real-world modeling - fleksibel
- reusable sources - maintenable
- Java adalah bahasa pemrograman yang murni menerapkan konsep
OOP.
- Class merupakan template atau cetakan dari object yang
mendefinisikan
variabel dan Method secara umum.
- Objek merupakan instance atau penerapan dari class yang
mendefinisikan
variabel dan Method secara spesifik.
- Abstraksi adalah cara pandang pemrograman yang berfokus pada
inti
pemecahan masalah dan melewati aspek detail informasi yang
diproses.
- Enkapsulasi adalah penyederhanaan suatu pemecahan masalah
dengan cara
menyembunyikan kerumitan kode dan memproteksi beberapa bagian
internal
program dari pengaksesan yang tidak perlu.
- Pewarisan adalah penurunan sifat (atribut dan Method) dari
kelas induk
(superclass) ke kelas turunannya (subclass).
- Polimorfisme adalah satu objek dengan banyak bentuk yang
berbeda, yaitu
objek yang memiliki satu Method sama tetapi implementasi yang
berbeda.
Teknik polimorfisme yaitu Overloading Method dan Overriding
Method.
B. Kritik dan Saran
Penulis mengharapkan kritik dan saran yang membangun agar
memotivasi
kami untuk bisa membenahi dan berkarya lebih baik lagi dari
sebelumnya.
-
Konsep Dasar Pemrograman Berorientasi Objek
Nur Hadi Indra 2014
12
DAFTAR PUSTAKA
1. Satriowahono Romi. 2008, Konsep Pemrograman Berorientasi
Objek
E-book Ilmukomputer.com, Semarang.
2. Tim Pengembang JENI. 2007, JENI 1 - 4
Depdiknas, Jakarta.
3. Sun Microsystem. 2014 , OOP Concept
http://java.sun.com/docs/books/tutorial/java/concepts/index.html
4. Wikipedia. 2014, Pemrograman Berorientasi Objek
http://id.wikipedia.org/wiki/pemrograman-berorientasi-objek
5. India Rose. 2014, OOP in Java
http://www.roseindia.net/java/beginners/OOP-in-java.html