OBJECT ORIENTED PROGRAMMING
• Object-Oriented Programming (OOP) adalah sebuah
pendekatan untuk pengembangan / development 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. Bahasa
pemrograman berbasis object menyediakan mekanisme untuk bekerja dengan:
kelas dan object
methods
inheritance
polymorphism
reusability
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 diword
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.
Mengapa menggunakan OOP?
Mengapa OOP dibangun dalam sebuah paradigma yang luas
untuk menyelesaikan masalah bisnis? Bahasa prosedural mengatur program dalam
mode barisan linier yang bekerja dari atas ke bawah. Dengan kata lain, program
adalah kumpulan dari tahapan yang dijalankan setelah yang lain berjalan.
Programmingtipe ini bekerja dengan baik untuk program kecil yang berisi code
relative sedikit, tetapi pada saat program menjadi besar, mereka cenderung
susah untuk di-manage dan di-debug. Dalam usaha untuk me-manage program,
struktur programming diperkenalkan cara untuk mem-break down code-code tersebut
melalui functionsdan procedures.
Ini adalah sebuah langkah perbaikan, namun pada saat
program dijalankan dalam sebuah fungsi bisnis yang kompleks dan berinteraksi
dengan sistem lain, maka kelemahan dari struktur metodologi programming muncul
kepermukaan meliputi:
1. Programs menjadi lebih susah untuk dimaintain.
2. Fungsi yang tersedia, susah untuk diubah tanpa harus
mempengaruhi fungsi sistem secara keseluruhan.
3. Programming tidak baik untuk team development.
Programmers harus mengetahui setiap aspek bagaimana program itu bekerja dan
tidak menyebabkan terisolasi usaha mereka atas aspek yang lain dari sistem.
4. Butuh usaha yang keras untuk menterjemahkan Business
Models dalam programming models. dll
Karakteristik OOP
Dalam section ini, kita akan melihat beberapa konsep
dasar dan term-term yang umum untuk seluruh bahasa OOP.
Objects
Jika kita pikir maka kita sekarang hidup dalam sebuah
dunia object-oriented. Kamu adalah object. Kamu berinteraksi dengan object
lain. Untuk menulis tugas ini kami berinteraksi dengan object komputer. Ketika
saya bangun pagi, saya merespon pesan suara object alarm jam. Faktanya, kamu
adalah objectdengan data-data seperti tinggi dan warna rambut. Kamu mempunyai
metode-metode yang kamu akan lakukan, seperti makan dan berjalan.
Jadi, apa itu objects? Dalam term OOP, object adalah
sebuah structure yang menggabungkan data dan prosedur untuk bekerja
bersama-sama. Contoh, jika kamu tertarik dalam pelacakan data yang dihubungkan
dengan produk, kamu akan menciptakan sebuah object produk yang bertanggung
jawab untuk me-maintenance dan bekerja dengan data yang bersinggungan dengan
produk. Jika kamu ingin kemampuan mencetak dalam aplikasi kamu, kamu harus
bekerja dengan sebuah object printer yang bertanggung jawab untuk data serta
metode yang digunakan untuk berinteraksi dengan printermu.
Abstraction
Ketika kamu berinteraksi dengan object-object di dunia
ini, kamu sering hanya konsentrasi dengan sebuah bagian dari propertiesnya.
Tanpa kemampuan untuk mensarikan/abstract atau menyaring untuk dibuang
properties object yang asing / tidak ada hubungannya, maka kamu akan menemukan
kesulitan untuk memproses informasi yang kebanyakan membombarding kamu. Sebagai
hasil abstraction, ketika 2 orang berbeda berinteraksi dengan object yang sama,
mereka sering setuju dengan bagian yang berbeda atas atribut. Ketika kami
mengendarai mobil, kami perlu tahu kecepatan serta tujuan yang akan dicapai.
Karena mobil itu otomatis, maka kami tidak perlu tahu
berapa RPMs dari mesinnya, jadi kami akan membuang informasi ini. Tapi
informasi ini sangat diperlukan oleh mekanik atau pembalap.
Ketika membangun objects dalam aplikasi OOP, adalah
penting untuk menggabungkan konsep abstraction ini. Jika kamu membangun
aplikasi shipping, kamu harus membangun objectproduk dengan atribut seperti
ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan
harus dibuang.Tetapi ketika kamu membangun order-entry application, warna
menjadi penting dan harus termasuk atribut object produk.
Encapsulation
Ciri penting lainnya dari OOP adalah encapsulation.
Encapsulation adalah sebuah proses dimana tidak ada akses langsung ke data yang
diberikan, bahkan hidden. Jika kamu ingin mendapat data, kamu harus
berinteraksi dengan object yang bertanggung jawab atas dara tersebut. Dalam
contoh inventory, jika kita ingin melihat atau mengupdate informasi atas
produk, kita seharusnya bekerja melalui object produk. Untuk membaca data, kita
mengirimkan pesan ke object produk, kemudian objectproduk akan membaca pesan
dan mengirim pesan balik ke kamu.
Object produk mendefinisikan bahwa operasi dapat
dilakukan pada data produk. Jika kamu mengirim pesan untuk memodifikasi data
dan jika object produk menentukan bahwa permintaan itu valid maka permintaan
tersebut akan dilakukan dan akan mengirimkan pesan balik bersama hasilnya.
Pikirkan mengenai Human Resource Department (HRD), yang
meng-encapsulasi informasi mengenai karyawan. Mereka menentukan bagaimana data
ini dapat digunakan da dimanipulasi. Setiap permintaan data karyawan atau
permintaan untuk mengupdate datanya harus dijalankan melalui mereka. Contoh
lain, network security. Setiap permintaan informasi security atau perubahan
kebijakan security harus dilakukan melalui network administrator. Data security
di-encapsulate dari user network.
Dengan melakukan encapsulasi pada data, berarti kamu
membuat data dari sistemmu lebih secure dan terpercaya. Karena kamu mengetahui
bagaimana data diakses dan operasi apa yang sedang berjalan pada data. Hal ini
membuat maintenance program menjadi lebih mudah. Kamu juga dapat memodifikasi
metode yang digunakan untuk kerja pada data, dan jika kamu tidak merubah
bagaimana metode itu diminta dan tipe response dikirim balik, maka kamu tidak
dapat merubah object lain dengan menggunakan metode tersebut. Pikirkan ketika
kamu mengirim surat melalui pos. Kamu membuat permintaan ke kantor pos agar
mengantar surat, dan bagaimana kantor pos menyelesaikannya kita tidak perlu
tahu. Jika ada perubahan rute yang digunakan, maka hal itu tidak mempengaruhi
keinginan untuk kirim surat lewat kantor pos. Kamu tidak perlu tahu prosedur
internal yang digunakan oleh kantor pos untuk mengantar surat.
Polymorphism
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.
Bagaimana hal ini berhubungan dengan OOP? Kamu dapat
membuat objects yang dapat merespon pesan yang sama dalam implementasi yang
unik. Contohnya, kamu dapat mengirim pesan print ke object printer yang akan
mencetak pada printer, dan kamu juga dapat mengirim pesan yang sama ke object
screen yang akan menuliskan pada screen monitor. Dalam OOP, kamu menerapkan
tipe polymorphism melalui proses yang disebut overloading. Kamu dapat
mengimplementasikan metode yang berbeda pada sebuah object yang mempunyai nama
yang sama.
Inheritance
Banyak objects diklasifikasikan menurut hirarki. Contoh,
kamu dapat mengklasifikasikan sebuah mobil yang mempunyai karakteristik umumnya
mobil, seperti mempunyai ban, mesin, serta body. Keturunan berikutnya
diklasifikasikan dengan atribut umum seperti ukuran, jumlah roda, isi silinder
dll atau mengklasifikasikan mereka atas dasar daya angkutnya. Contoh, ada
kendaraan komersial atau kendaraan pribadi, ada truk atau mobil penumpang. Kamu
menggunakan inheritance dalam OOP untuk mengklasifikasikan objects dalam
program sesuai karakteristik umum dan fungsinya. Hal ini akan membuat pekerjaan
bersama object lebih mudah dan lebih intuitif. Hal ini juga membuat programming
lebih mudah karena memungkinkan kita untuk mengkombinasikan karakteristik umum
kedalam object parent dan mewariskan karakteristik ini ke child object.
Aggregation
Aggregation adalah kondisi ketika object berisi gabungan
dari object-object yang berbeda dan bekerja bersama. Contoh mesin pemotong
rumput terdiri dari object roda, objects mesin, object pisau dll. Object
mesinpun merupakan gabungan dari berbagai object. Kemampuan untuk menggunakan
aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model
menjadi akurat.
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. Object oriented programming yang paling
populer adalah java dan C++, tetapi visual basic pun sudah ikut menambahakan
kemampuan ini sejak meluncurkan VB 4.0. Pada kesempatan kali ini kita hanya
akan membahas tentang visual basic dan C++ saja. Sesuai dengan namanya object
oriented programming maka konsep object merupakan jantung dari object oriented
programming
Sumber :
BalasHapus1. Abdul Kadir, Dasar Pemrograman Java 2, Penerbit Andi, 2005
2. Didik Dwi Prasetyo, 150 Rahasia Pemrograman Java, Elex Media Komputindo, 2007
3. http://university.romisatriawahono.net/file.php?file=/2/romi-oop-01-oopconcepts-18nov2008.pdf
http://eniirfiani.blogspot.com/2010/01/konsep-dasar-oop.html