A.
Sejarah singkat OOP
Object-Oriented
Programming (OOP) adalah sebuah pendekatan untuk pengembangan suatu software dimana dalam struktur software tersebut didasarkan kepada interaksi object dalam penyelesaian suatu proses/tugas. Interaksi tersebut mengambil form dari pesan-pesan dan mengirimkannya kembali antar
object tersebut. Object akan merespon pesan tersebut menjadi sebuah tindakan /action atau metode. Jika kita mencoba melihat bagaimana tugas disekitar kita diselesaikan, kita akan mengetahui bahwa kita berinteraksi dalam sebuah object-oriented world.
Object-oriented programs
terdiri dari objects yang berinteraksi satu sama lainnya untuk menyelesaikan sebuah
tugas. Seperti dunia nyata, users dari software programs
dilibatkan dari logika proses untuk menyelesaikan tugas.
Contoh,
ketika kamu mencetak sebuah halaman di word processor, kamu berarti melakukan inisialisasi
tindakan dengan mengklik tombol printer. Kemudian kamu hanya
menunggu respon apakah job tersebut sukses atau gagal, sedangkan
proses terjadi internal tanpa kita ketahui. Tentunya
setelah kamu menekan tombol printer, maka secara simultan object tombol tersebut berinteraksi dengan object printer untuk menyelesaikan job tersebut.
Konsep
OOP dimulai pertengahan 1960-an dengan sebuah bahasa program SIMULA kemudian
dilanjutkan di era 70-an dengan SMALLTALK.
Meskipun developer software tidak secara
intensif mengembangkan OOP, tetapi
metodologi object-oriented tetap
digunakan. Pada pertengahan 80-an, bahasa OOP seperti C++ dan
Eifle menjadi popular diantara programmer computer. Popularitas OOP berlanjut pada tahun 90-an, banyak pengembang software menggunakan konsep OOP seperti Java dll. Di tahun 2002, versi terakhir dari Visual Studio,
Microsoft memperkenalkan bahasa OOP baru yaitu C# (dibaca
C-sharp), C# adalah salah satu bahasa pemrograman yang berjalan diatas platform
dotNet yang full OOP (object oriented programing/pemrograman berorientasi
objek) serta
upgrade Visual Basic, dan ini merupakan
sebuah bahasa OOP sesungguhnya.
B.
Apakah OOP (Object Oriented Programming) itu?
Untuk meningkatkan daya pengolahan komputer, perangkat
lunak (software) yang dijalankan menjadi lebih kompleks. Dalam peningkatan
kompleksitas ini, dibutuhkan biaya program yang besar dengan codebases besar
yang sulit untuk dipahami. Oleh sebab itu, keberadaan OOP ditujukan untuk
berusaha mengatasi masalah tersebut.
OOP (Object
Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada
objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program
dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Jadi, setiap bagian dari suatu permasalahan adalah objek, objek itu sendiri merupakan gabungan dari beberapa objek yang lebih
kecil lagi. Ambil contoh Pesawat, Pesawat adalah
sebuah objek. Pesawat itu sendiri terbentuk dari beberapa objek yang lebih
kecil lagi seperti mesin, roda, baling-baling, kursi, dll. Pesawat sebagai
objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan,
berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang
lainnya. Begitu juga dengan program, sebuah objek yang besar dibentuk dari
beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan
saling berkirim pesan kepada objek yang lain.
C.
Konsep Object Oriented Programming
Konsep
dari object oriented programming (OOP) adalah lebih dari sekedar sebuah konsep pemrograman, Object
oriented programming adalah cara berpikir tentang
aplikasi yang mempelajari untuk berpikir bahwa aplikasi bukan sekedar prosedur melainkan sebagai object dan real
entity.
Object
yang dimaksud disini memiliki pengertian suatu modul yang mengkombinasikan antara data dan kode program yang bekerja sama dalam program dengan melewatkan proses satu sama
lain. Jadi object oriented programming merupakan cara
yang paling efisien untuk menulis program komputer yang sangat mudah untuk di kombinasikan dan untuk dipergunakan kembali. Object oriented programming lebih memfokuskan kepada manipulasi object. Kenapa seorang programmer harus mempelajari object oriented programming bahkan seorang
programmer yang tidak pernah bekerja dengan object
oriented programing pun harus
mempelajarinya juga. Hal ini dikarenakan pada
suatu hari nanti semua bahasa pemrograman akan menambahkan
kemampuan object oriented programming pada bahasanya.
Berikut empat konsep yang harus dapat dimiliki oleh
suatu bentuk pemrograman yang berorentasi object :
1. Abstraction
Pesawat yang
telah dicontohkan masuk dalam kelas kendaraan, kelas kendaraan merupakan contoh
abstraction. Abstraction adalah proses yang mewakili versi yang disederhanakan
dari objek dunia nyata dalam kelas dan objek. Hal ini berarti dalam
pengembangan perangkat lunak seorang programmer akan menggunakan atau menciptakan
sejumlah object dimana object tersebut akan ada dan berperilaku pada sistem.
2.
Encapsulation
Encapsuation adalah penyatuan antara proses-proses yang terjadi dan
sejumlah data yang dikelola kedalam suatu bentuk kelompok tertentu.
Pengelompokan tersebut adalah dengan dibentuknya suatu object secara abstrak
(abstraction). Akibatnya, obyek dapat
bekerja sama dalam banyak hal dalam sistem. Dalam beberapa situasi, kelas
dan objek dapat erat bersama-sama untuk menyediakan fungsionalitas yang lebih
kompleks. Dalam contoh mobil, roda, panel, mesin, gearbox, dll
dapat dianggap sebagai kelas individu. Untuk membuat mobil sekelasnya, perlu menghubungkan semua benda-benda bersama, mungkin dapat menambahkan fungsionalitas lebih lanjut. Kerja
internal masing-masing kelas yang tidak penting karena enkapsulasi sebagai
komunikasi antara obyek masih melalui lewat pesan ke antarmuka publik mereka.
Encapsulation mengemas
suatu objek sehingga pada saat kita akan memakai objek tersebut kita tidak
perlu lagi tahu tentang detail bagaimana suatu action itu terjadi. Contoh dalam
hal ini, misal siswa (suatu
object) sedang menulis
(method). Maka detail dari tentang cara siswa itu menulis (bagaimana
otot tangan itu bekerja untuk menulis, bagaimana sistem saraf pusat
memerintahkan untuk menulis) kita tidak perlu mengerti. Kita hanya
melihat si siswa sedang menulis.
Contoh :
class Siswa
{
String nama;
String nim;
void isiData
( String namaku,String nimku )
{
nama =
namaku;
nim = nimku;
}
String
ambilNama()
{
return nama;
}
String ambilNim()
{
return nim;
}
}
public class
Mahasiswa
{
public
static void main ( String [] args)
{
Siswa
mahasiswa_itn = new Siswa(); //membuat variable instant
mahasiswa_itn.isiData(“Dina
Damayanti”,”0412585″);
System.out.println(
“Nama : ” + mahasiswa_itn.ambilNama());
System.out.println(
“Nim : ” + mahasiswa_itn.ambilNim());
}
}
3.
Inherintance
Inherintence atau pewarisan adalah merupakan konsep dimana suatu object
memiliki sejumlah perilaku yang dimiliki oleh object lain dalam suatu hirarki
tertentu.
Hal ini
memungkinkan satu kelas (sub-class) harus didasarkan atas yang
lain (kelas super) dan
mewarisi semua fungsi secara otomatis. Kode tambahan kemudian dapat
ditambahkan untuk membuat versi yang lebih khusus dari kelas. Dalam contoh
kendaraan, sub-kelas untuk mobil atau motor dapat dibuat. Masing-masing
masih akan memiliki semua perilaku kendaraan tetapi dapat menambahkan metode
khusus dan properti.
Beberapa
bahasa pemrograman memungkinkan untuk multiple
inheritance mana
sub-kelas yang berasal dari dua atau lebih super-kelas. C # tidak
mengizinkan ini, tetapi tidak memungkinkan kelas untuk mengimplementasikan
beberapa interface. Sebuah antarmuka mendefinisikan kontrak
untuk metode dan properti dari kelas yang mengimplementasikan hal
itu. Namun, tidak mencakup fungsi yang sebenarnya.
4.
Polymorphism
Polymorphism adalah konsep dimana beberapa object dapat memiliki metode
yang sama dengan aksi yang berbeda. Hal
ini mengakibatkan adanya kemampuan
untuk sebuah objek untuk mengubah perilakunya sesuai dengan bagaimana itu
digunakan. Dimana kelas obyek mewarisi dari kelas super atau
mengimplementasikan satu atau lebih interface ,
dapat disebut dengan kelas atau interface nama-nama. Jadi jika kita
memiliki metode yang mengharapkan sebuah objek dari tipe 'kendaraan' untuk
diteruskan sebagai parameter, kita dapat melewati setiap kendaraan, mobil atau
motor objek untuk metode yang meskipun tipe data mungkin secara teknis berbeda.
Dalam Polymorphism suatu
object bisa bertindak lain terhadap message/method yang sama. Misalkan kita
punya satu class hewan dan
diturunkan menjadi dua class hewan
berkaki dua dan hewan
berkaki empat. Ketika hewan berkaki dua melakukan method makan maka yang dilakukan adalah
makan dengan paruhnya, dan ketika hewan berkaki empat juga makan maka dia akan menggunakan
mulutnya. Keduanya melakukan aksi yang sama yaitu makan akan tetapi perlakuannya lain.
Contoh :
class
Binatang
{
public void
info()
{
System.out.println(”
Info tentang Hewan : “);
}
}
class
Herbivora extends Binatang
{
public void
info()
{
System.out.println
(“Info pada herbivora: Memakan makanan berupa tumbuh – tumbuhan”);
}
}
class
Kelinci extends Herbivora
{
public void
info()
{
System.out.println(“Info
pada Kelinci: Memakan makanan berupa wortel”);
}
}
public class
Polimorfisme
{
public
static void main(String[] args)
{
Herbivora
herbivora;
Kelinci kelinciku;
Binatang
hewan;
herbivora=new
Herbivora();
kelinciku=new
Kelinci();
hewan=herbivora;
hewan.info();
hewan=kelinciku;
hewan.info();
}
}
5.
Modularitas
Selain konsep yang dijelaskan di atas, pemrograman berorientasi objek
juga memungkinkan peningkatan modularitas. Sedangkan
arti kata modularitas adalah memecahkan sesuatu yang kompleks menjadi
bagian-bagian kecil yang mudah dikendalikan. Kelas atau kelompok kelas terkait dapat dianggap sebagai modul kode
yang dapat digunakan kembali dalam proyek perangkat lunak banyak. Hal ini
mengurangi kebutuhan untuk membangun kembali fungsi yang sama dan karena itu
dapat menurunkan waktu dan biaya pengembangan.
Dalam pemograman berorientasi Objek dikenal Ada
beberapa pengertian dasar yang harus kita ketahui yaitu:
a. Class
Class merupakan penggambaran dari sebuah
object atau benda,sifat objek, dan juga apa yang bisa dilakukan oleh objek
tersebut.
·
Sebagai
contoh adalah pengambaran yang real dalam kehidupan kita adalah tentang dunia
transportasi. Tentunya kita semua mengetahui bahwa sangatlah banyak jenis
alat transportasi yang ada seperti motor, mobil,pesawat terbang,kapal laut, dan
lain sebagainya.Kemudian marilah kita anggap berbagai alat transportasi
tersebut sebagai suatu class. Maka motor tentunya mempunyai no polisi,tahun
pembuatan,merk dll, demikian juga dengan alat transportasi yang lainnya, oleh
karenanya hal ini bisa disebut sebagai properties. Selanjutnya motor itu
sendiri bisa berjalan maju, berjalan mundur,belok kiri, belok kanan yang mana
kegiatan ini disebut method.
o
contoh :
public class ApaMotormu {
public static void main(String[] args){
Motor punyaku=new Motor();
punyaku.motorku();
}
}
public class ApaMotormu {
public static void main(String[] args){
Motor punyaku=new Motor();
punyaku.motorku();
}
}
b. Object
Object adalah merupakan suatu bentuk dari class. Kalau kita
mengikuti analogi di atas, maka object dari class Hewan adalah Burung,
Kambing, Ayam, Kuda.. Mereka adalah contoh dari class Hewan. Semua dari mereka
adalah Hewan yang mempunyai nama, kaki,
Jenis makanan dst. Dan bisa berlari, bersuara, berkembang biak dll.
o
contoh :
public class Peliharaanmu{
public static void main(String[] args){
Hewan punyaku=new Hewan();
punyaku.hewanku();
}
}
c.
Method
Method adalah merupakan suatu operasi berupa
fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan
pada class akan tetapi dipanggi lmelalui object.
Contoh : pada object mangga : terdapat method
ambilRasa , kupasKulit dll.
Metode
menentukan perilaku objek, yakni apa yang terjadi ketika objek itu dibuat serta
berbagai operasi yang dapat dilakukan objek sepanjang hidupnya.
d.
Behavior
Behavior adalah tingkah laku yang dapat dilakukan oleh
objek, behavior merupakan kelakuan atau sifat dari Object seperti mobil
tadi bisa melaju, membelok, membunyikan klakson dan lain sebagainya.
e.
Contruktor
Contruktor merupakan suatu method yang akan memberikan
nilai awal pada saat suatu objek dibuat. Pada saat program dijalankan,
constructor akan langsung memberikan nilai awal pada saat perintah new, membuat
suatu objek
Pada saat kita bekerja dengan constructor, hal mendasar yang perlu diperhatikan, yaitu :
Pada saat kita bekerja dengan constructor, hal mendasar yang perlu diperhatikan, yaitu :
1.
Nama
Constructor sama dengan nama Class.
2.
Tidak ada
return type yang diberikan kedalam Constructor Signature.
3.
Tidak ada
return stetement, didalam tubuh constructor.
f.
Constructor Overloading
Overloading
adalah suatu cara membuat lebih dari constructor pada suatu class. Supaya
pengaksesan constructor tersebut lancar, maka sebagai pembedanya adalah tipe
parameter dan atau jumlah parameternya.
Daftar Pustaka
http://id.wikipedia.org/w/index.php?title=Pemrograman_berorientasi_objek&oldid=6620271.
Pemrograman Berorientasi Objek. Diakses tanggal 15 Mei 2013.
Carr,Richard . 2010. Konsep
Pemrograman Berorientasi Objek pada C#. Terjemah http://www.blackwasp.co.uk/ObjectOrientedConcepts.aspx. Diakses tanggal 15 Mei 2013.
Oktavia,
Elvi. 2010. Konsep Object Oriented
Programming (OOP) dalam Pemrograman Visual. Fakultas Ilmu Komputer Jurusan
Sistem Informasi:Universitas Sriwijaya.
Object-Oriented Programming. FTI Budi Luhur : Jakarta.