merupakan paradigma pemrograman yang berorientasikan kepada objek. 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 postingan saya ini merupakan bagian kedua dari overview penelitian Tugas Akhir saya (bagian pertama klik disini) yang akan membahas mengenai pendekatan yang saya gunakan untuk mengembangkan sistem perencanaan proses pemesinan berbasis sistem pakar untuk part rotationalyaitu Pengembangan Berorientasi objek
Pengembangan berorientasi objek berbeda dari
pengembangan konvenisonal yang memandang perangkat lunak sebagai fungsi
dan data yang terisolasi.
Algoritma + Struktur Data = Program
Persamaan itu menyatakan bahwa program perangkat
lunak adalah sekumpulan mekanisme yang melakukan aksi – aksi pada data
tertentu. Dengan demikian, pada pendekatan tersebut terdapat dua hal
berbeda yang saling melengkapi dalam memandang pembangunan perangkat
lunak, yaitu berfokus pada fungsi atau berfokus pada data.
Pada pendekatan konvensional, kebanyakan berfokus
pada fungsi. Namun juga terdapat pendekatan yang fokus pada data
terutama pada kubu basis data dan pemodelan informasi. Sementara itu,
pandangan berorientasi objek berpusat pada objek yang mengkombinasikan
data dan fungsionalitas. Keduanya dilakukan secara sekaligus, tidak
hanya berfokus pada satu kubu saja. Berorientasi objek adalah diatasnya,
objek yang didalamnya terkandung data sekaligus fungsi – fungsinya.
Namun objek adalah memiliki layanan – layanan yang diberikan. Meskipun
sepertinya terlihat sepele,hal ini merupakan pergeseran fokus yang
sedemikian sederhana, namun mengakibatkan perubahan – perubahan proses
pengembangan sistem yang radikal dan drastis karena mempengaruhi cara
pandang dalam melihat unti – unit terkecil pembentuk sistem perangkat
lunak.
Pendekatan berorientasi objek adalah cara memandang
persoalan dengan menggunakan model – model yang diorganisasikan seputar
konsep objek yang mengkombinasikan struktur data dan perilaku suatu
entitas. Pada pendekatan ini, organisasi perangkat lunak adalah sebagai
kumpulan objek diskrit yang saling bekerja sama, berkomunikasi, dan
berinteraksi menuju sasaran tertentu
Hariyanto mengutip pernyataan Jackson menyatakan
entitas – entitas (“objek – objek”) lebih stabil dibanding fungsi –
fungsi. Dengan demikian, pengembangan lebih baik dimulai terlebih dahulu
dengan memodelkan bagian – bagian stabil sistem. Pemodelan fungsional
yang lebih mudah berubah kemudian ditambahkan pada model stabilyang
telah diperoleh. Pendekatan berorientasi objek cukup memenuhi kriteria
ini
Pada pendekatan berorientasi objek, blok pembangun
utama sistem perangkat lunak adalah objek dan/atau kelas. Heriyanto
mengutip penjelasan dari Rumbaugh menyatakan bahwa kandidat – kandidat
kelas umumnya dapat merupakan sesuatu yang dapat diperoleh dari kosakata
(vocabulary) di ruang persoalan dan/atau ruang solusi. Kelas
adalah deskripsi himpunan objek serupa. Kelas merupakan catak biru dari
objek. Setiap objek memiliki identitas (berbeda dengan objek lain), state (data yang diasosiasikan dengannya), dan perilaku (user dapat melakukan sesuatu dengan objek dan objek dapat melakukan sesuatu dengan objek lain)
Pengembangan berorientasi objek tidak hanya
memungkinkan informasi dipakai bersama dalam satu aplikasi, tetapi juga
penggunaan ulang (reuse) pada rancangan atau kode pada proyek –
proyek berikutnya. Coad – Yourdon mendefinisikan berorientasi objek
dengan persamaan berikut :
Berorientasi Objek = Objek + Klasifikasi + Pewarisan + Komunikasi
Pendefinisian di persamaan ini dapat dipandang
sebagai ekspresi sangat minimal yang harus dipenuhi metodologi
berpredikat pendekatan berorientasi objek. Rekayasa perangkat lunak
berorientasi objek merupakan disiplin rekayasa dimana tujuan dari
disiplin rekayasa adalah mengelola program dengan memecahnya menjadi
potongan – potongan dalam ukaran yang dapat dikelola, serta
menyembunyikan potongan – potongan ini di belakang antar muka dan
menjadikan kebergantungan diantara potongan – potongan tersebut terhadap
antar muka. Pada rekayasa perangkat lunak berorientasi objek, potongan –
potongan ini adalah objek – objek suatu kelas. Sejak tahun 1990,
pendekatan berorientasi objek telah menjadi pilihan utama bagi
pengembangan perangkat lunak. Teknologi objek menggantikan pendekatan
pengembangan perangkat lunak klasik sebelumnya .
Kelas dan Objek
Kelas adalah abstraksi dari sesuatu yang ada pada
domain persoalan, merefleksikan kemampuan sistem dalam menjaga informasi
didalamnya, berinteraksi dengannya, atau keduanya. Kelas juga dapat
dipergunakan untuk memodelkan abstraksi dari teknologi yang dipergunakan
dalam mengimplementasikan solusi terhadap masalah (pada saat
pemrograman dan perancangan). Kelas merupakan unsure statik dimana
merupakan pengkapsulan nilai – nilai atribut dan layanan eksklusifnya.
Kelas merupakan blok pembangun pada pendekatan berorientasi objek. Kelas
objek mendeskripsikan kelompok objek seperti properti – properti
(atribut – atribut) serupa, perilaku (operasi – operasi) yang common, keterhubungan dengan himpunan objek – objek lain dan semantik yang common .
Hariyanto mengutip pernyataan dari James Martin dan
James J Odell mengemukakan objek adalah sesuatu yang dapat dikonsepkan
yang diperlukan untuk pemecahan masalah. Objek dapat berupa konsep,
abstraksi, atau sesuatu dengan batas – batas tegas dan memiliki arti
untuk persoalan yang ditangani. Objek memiliki identitas dan dapat
dibedakan. Identitasi berarti objek terbedakan oleh keberadaannya secara
inheren dan bukan oleh properti – properti deskriptif yang dimilikinya.
Objek adalah instan kelas, dimana kelas merupakan deskripsi satu objek
atau lebih dengan sekumpulan atribut dan layanan yang seragam, termasuk
pendeskripsian objek baru dalam kelas tersebut. Perbedaan antara kelas
dan objek adalah objek merupakan entitas kongkret yang ada secara ruang
dan waktu sedangkan kelas hanya merupakan representasi abstraksi.
Pembungkusan (Encapsulation)
Dalam sistem berorientasi objek, potongan – potongan
informasi dan perilaku – perilaku spesifik yang bekerja pada suatu
operasi digabungkan. Hal ini dirujuk dengan kata pembungkusan (encapsulation).
Cara lain untuk memahami pembungkusan adalah membagi aplikasi –
aplikasi menjadi bagian – bagian kecil yang secara fungsional
berhubungan. Sebagai contoh pada kasus ATM (Anjungan Tunai Mandiri),
terdapat informasi – informasi yang berhubungan dengan objek rekening seperti no_rekening, saldo, nama, alamat, dan sebagainya. Selain itu, terdapat pula perilaku – perilaku untuk objek rekening misalnya buka, tutup, penarikan, penyimpanan, ubah_nama, ubah_alamat, dan sebagainya. Informasi – informasi dan perilaku – perilaku tersebut dibungkus dalam objek rekening.
Akibatnya, perubahan – perubahan pada sistem perbankan yang berkaitan
dengan rekening – rekening dapat secara sederhana diimplementasikan satu
kali saja pada objek rekening.
Keuntungan lain dari pembungkusan adalah membatasi
efek – efek perubahan pada sistem. Misalnya, saat manajemen bank
menentukan jika seseorang memiliki rekening pinjaman di bank yang
bersangkutan, rekening itu harus dapat juga dipergunakan sebagai saran
bagi penarikan rekening. Dalam sistem tanpa pembungkusan, akan dilakukan
pendekatan langsung untuk analisis imbasnya. Pada dasarnya, penggunaan
fungsionalitas penarikan dalam sistem tidak diketahui secara pasti dan
dapat berada dimana saja, sehingga harus dilakukan pengecekan terhadap
aplikasi perangkat lunak secara keseluruhan.Setelah ditemukan, harus
dibuat perubahan – perubahan untuk dapat beradaptasi dengan kebutuhan
yang baru. Jika diteliti, mungkin akan ditemukan sekitar 80% penggunaan
metoda penarikan dalam sistem. Dengan sistem berorientasi objek, tidak
perlu dilakukan pendekatan langsung untuk analisis. Pengecekan hanya
dilakukan pada model sistem dan secara sederhana menemukan dimana
perilaku penarikan terbungkus. Setelah melokalisasi fungsionalitas itu
dalam rekening, maka hanya perlu dilakukan perubahan satu kali saja,
yaitu pada objek dimana perilaku tersebut terbungkus .
Pewarisan (Inheritance)
Pewarisan adalah konsep dasar pemrograman
berorientasi objek yang lainnya. Pada sistem berioreintasi objek,
peawarisan adalah mekanisme yang memungkinkan penciptaan objek – objek
baru berdasarkan objek lain yang sudah ada, dengan kata lain objek anak
mewarisi segala sesuatu daru objek induk. Contoh pewarisan juga dapat
dilihat pada dunia nyata, misalnya terdapat berbagai tipe dari mamalia,
yaitu : manusia, harimau, anjing, onta, dan sebagainya. Pada
terminologi berorientasi objek, objek mamalia memuat karakteristik –
karakteristik yang bersifat umum. Objek manusia misalnya, mewarisi karakteristik – karakteristik yang dimiliki objek mamalia
seperti : bernafas, makan, minum, bereproduksi, dan yang terpenting
adalah menyusui. Selain itu, objek manusia memiliki karakteristik yang
unik, seperti berpikir.
Salah satu keuntungan dan pewarisan (inheritance)
adalah kemudahannya untuk dipelihara. Saat sesuatu perubahan untuk
informasi atau perilaku yang sama perlu terjadi pada seluruh objek, maka
objek mamalia harus diubah dan objek – objek dibawahnya akan mewarisi perubahan pada objek ini.
Bila merajuk pada sistem ATM sebelumnya, pewarisan
dapat dipakai untuk berbagai tipe rekening yang ada. Misalkan bank yang
bersangkutan memiliki beberapa tipe rekening, yaitu tabungan, pinjaman, kartu kredit, serta deposito. Berbagai tipe rekening tersebut masing – masing memiliki karakteristik – karakteristik yang mirip. Masing – masing memiliki no_rekening, tingkat_sukubunga, serta pemilik_rekening sehingga harus dibuat objek yang dinamakan rekening
untuk memuat karakteristik – karakteristik umum dari semua rekening.
Objek – objek turunan masing – masing dapat memiliki karakteristik –
karakteristik yang unik sebagai tambahan karakteristik – karakteristik
yang diwarisi dari objek induk. Sehingga perubahan pada objek induk akan
mengakibatkan perubahan pada semua objek anak , sedang objek anak bebas
beradaptasi tanpa saling mengganggu satu sama lain atau mengganggu
objek induknya [Nug05].
Polimorfisme
Polimorfisme merupakan prinsip penting yang ketiga
dari pemrograman berorientasi objek. Polimorfisme berarti suatu
fungsionalitas yang diimplementasian dengan berbagai cara yang berbeda.
Polimorfisme juga dapat diambil dalam dunia nyata, seperti misalnya bila
dosen bertanya “Apakah saudara mengerti dengan apa yang saya
jelaskan?”, maka beberapa orang akan menjawab “Ya”, beberapa orang
menganggukkan kepala sambil bergumam “Hmm…hmmm”, sebagian lagi diam.
Dari contoh ini dapat dilihat bahwa masing – masing memiliki respon
tertentu terhadap pertanyaan dosen.
Pada terminologi berorientasi objek, ini berarti
sebagian fungsionalitas tertentu memiliki berbagai implementasi. Sebagai
contoh, misalkan akan dilakukan pengembangan sistem berbasis grafis,
saat pengguna akan menggambar sesuatu, entah garis, elips, atau
lingkaran maka akan memunculkan perintah gambar. Sistem akan mengenali
berbagai bentuk gambar, masing – masing dengan perilakunya sendiri –
sendiri. Seandainya pengguna akan menggambar sebuah garis, maka perintah
untuk menggambar garis akan dibangkitkan.
Tidak ada komentar:
Posting Komentar