BLOG DALAM RANGKA TUGAS PBO
Selasa, 03 November 2015
Selasa, 03 September 2013
Sejarah Pemrograman Berorientasi Objek
Dasar untuk OOP dimulai pada awal tahun
1960-an. Sebuah terobosan melibatkan contoh dan objek telah dicapai di MIT
dengan PDP-1, dan pertama untuk menggunakan bahasa pemrograman objek adalah
Simula 67. Ia dirancang untuk tujuan membuat simulasi, dan dikembangkan oleh
Kristen Nygaard dan Ole-Johan Dahl di Norwegia.
Mereka bekerja pada simulasi yang
berurusan dengan exploding kapal, dan mereka dapat diwujudkan grup yang berbeda
kapal ke kategori. Setiap jenis kapal akan memiliki class, dan class akan
menghasilkan perilaku yang unik dan data. Simula tidak hanya bertanggung jawab
untuk memperkenalkan konsep class, tetapi juga memperkenalkan instance dari
class.
Istilah "object oriented
programming" pertama kali digunakan oleh Xerox PARC mereka di luar program
bahasa. Istilah ini digunakan untuk merujuk kepada proses menggunakan objek
sebagai dasar untuk penghitungan. Tim Smalltalk yang telah terinspirasi oleh
Simula 67 proyek, tetapi mereka telah merancang Smalltalk sehingga akan
dinamis. Object dapat diubah, diciptakan, atau dihapus, dan ini berbeda dengan
sistem statis yang digunakan secara umum. smalltalk juga merupakan bahasa
pemrograman pertama kali yang memperkenalkan konsep inheeritance. Hal ini
adalah fitur yang diperbolehkan untuk Smalltalk melebihi simula 67 dan
pemrograman sistem analog. Meskipun sistem yang canggih pada saat itu belum
bisa menggunakan konsep inheritance.
Simula 67 adalah sistem yang telah
memberikan inspirasi banyak bahasa pemrograman lain, termasuk Pascal dan Lips.
Pada tahun 1980-an, pemrograman berorientasi objek telah menjadi dominan, dan
faktor utama dalam hal ini yakitu C++. object oriented programming juga penting
untuk pengembangan grafik user interface. Cocoa dengan struktur yang ada dalam
Mac OS X adalah contoh yang baik dari GUI yang dinamis yang bekerja dengan
bahasa pemrograman berorientasi objek. Paradigma dari pemrograman ini juga
telah memainkan peranan penting dalam pengembangan event-driven programming.
Niklaus Wirth dan asosiasinya yang mencari
daerah seperti modular programming dan abstraction dan mereka mengembangkan
sistem yang menghimpun dua unsur ini. Kedua sistem ini adalah Oberon dan
Modula-2. Oberon menggunakan pendekatan yang unik untuk class dan objek
orientasi yang jauh berbeda dibandingkan C++ atau smalltalk. Sejak
diperkenalkannya OOP, sejumlah besar bahasa pemrograman modern sekarang
menggunakan konsep ini. Beberapa diantaranya adalah Fortran, BASIC, dan Pascal.
Ada beberapa masalah kompatibilitas, karena banyak bahasa pemrograman yang
tidak dirancang dengan pendekatan OOP. Pemrograman bahasa berorientasi objek
yang "murni" tidak memiliki banyak fungsi yang diperlukan oleh
programmer.
Untuk memecahkan masalah tersebut,
sejumlah peneliti telah mencoba membuat desain baru untuk bahasa pemrograman
yang menggunakan kosep obejct oriented yang masih tetap memnggunakan fungsi
yang diperlukan oleh programer. Satu contoh dari sebuah bahasa pemrograman yang
telah dicapai adalah Eiffel. Bahasa pemrograman lain yang telah berusaha untuk
memecahkan masalah ini adalah Java. Java menjadi populer karena menggunakan
virtual Machine, dan sangat mirip dengan C++ dan C. mesin virtual penting
karena memungkinkan kode untuk dijalankan pada berbagai platform tanpa perlu
diubah. Sistem lain yang serupa adalah Microsoft .NET. Banyak pengembang
sekarang memahami pentingnya OOP, dan sedang aktif menggunakan dalam programnya
masing-masing. Banyak peneliti terus membuat pengembangan dengan menggunakan
pendekatan object oriented.
Ada sejumlah bahasa lain yang telah
berhasil mengkombinasikan pendekatan objek oriented dengan prosedur yang
berguna untuk programmer. Python adalah salah satu contoh, dan Ruby menggunakan
pendekatan yang serupa juga.
Penggunaan pendekatan yang berorientasi
objek telah menyebabkan pengembangan dalam bahasa modeling, design patern, dan
lain sebagainya.Kemungkinan OOP merupakan paradigma pemrograman yang akan terus
berkembang seperti yang kita maju ke depan. Ini merupakan bahasa yang kuat
untuk terus ditingkatkan selama bertahun-tahun. Ini adalah perdebatan dalam
komunitas, sebagai kritikus menunjukkan sejumlah masalah dengan struktur.
Namun, popularitas bahasa pemrograman seperti Java menunjukkan bahwa paradigma
ini akan terus ada.
Sumber :
http://www.exforsys.com
http://objekaja.blogspot.com/2008/12/sejarah-pemrograman-berorientasi-objek.html
Konsep & Ciri OOP
KONSEP DASAR OOP
OBJECT
CLASS/KELAS
METHOD
FIELD
INTERFACE
INHERITANCE/PEWARISAN
CIRI OOP
ENCAPTULATION/ENKAPSULASI
POLYMORPHISM
KEUNGGULAN MENGGUNAKAN PEMROGRAMAN OOP DENGAN PEMROGRAMAN TERSTRUKTUR
MAINTENABILITY
EXTENSIBILITY
REUSIBILITY
SUMBER :
OOP adalah pemrograman yang paling populer pada saat ini karena menjadikan objek sebagai komponen utama dalam suatu program. Objek ini menggabungkan data dan fungsi sebagai satu kesatuan, hal ini membedakan dengan pemrograman yang tidak berorientasi objek (terstruktur) dimana fungsilah yang menjadi perhatian utama. Fungsi adalah subprogram atau sekumpulan kode yang diberi suatu nama tersendiri. Java adalah salah satu dari bahasa pemrograman berorientasi objek, karena dalam pemrograman java kita dapat mengetahui dan membedakan.
Dalam OOP mempunyai ciri-ciri dan beberapa konsep penting, seperti Object, Class, Method, Enkapsulasi, Inheritance, dan Polimorfisme.
OBJECT
Object adalah elemen dasar dari konsep pemrograman, merupakan sesuatu yang memiliki identitas (nama), pada umumnya juga memiliki data tentang dirinya maupun object lain dan mempunyai kemampuan untuk melakukan sesuatu dan bisa bekerja sama dengan objek lainnya. Pada dasarnya semua benda yang ada di dunia dapat dianggap sebagai sebuah object. Rumah, mobil, sepeda motor, meja, dan komputer merupakan contoh-contoh object yang ada di dunia nyata. Setiap object memiliki dua karakteristik yang utama yaitu, atribut dan behavior. Atribut merupakan status object dan behavior merupakan tingkah laku dari object tersebut.
CLASS/KELAS
Class berbeda dengan object. Class merupakan prototipe, blue print, ataupun template dengan kata lain Class adalah representasi abstrak dari suatu objek, sedangkan objek adalah representasi nyata dari Class ataupun perwujudan (instance) dari suatu class. Suatu class dapat berisi property,field,method dan event dari suatu object, gabungan dari property,field,method dan event dari suatu object biasanya member dari class.
METHOD
Method adalah fungsi dan prosedur atau behavior dari suatu objek atau juga sebuah tindakan (implementasi) dari sebuah object . Contohnya pada Komputer seperti cara memastikan, cara menghidupkan, cara menyimpan, menghapus data dan lain-lain.
FIELD
Adalah informasi atau atribut yang terdapat dalam suatu object. Bentuk field mirip dengan variabel yaitu dapat dibaca dan diset langsung.
Contoh: suatu class Anak yang memiliki field Nama_Anak dan usia anak, juga memiliki subrutin(method) kegiatan_Anak.
INTERFACE
Interface atau diartikan dalam bahasa indonesianya adalah antarmuka, atau secara fungsi adalah alat untuk menghubungkan benda-benda lain secara langsung untuk dapat berinteraksi. Makna dalam bahasa pemrograman sendiri interface dapat didefinisikan sebagai koleksi /kumpulan definisi metode-metode dan variabel-variabel konstan, namun tanpa implementasi. Implementasi akan dilakukan oleh kelas-kelas yang mengimplements interface ini. Tanpa implementasi di sini tidak seperti pada kelas abstrak yang merupakan metode-metode yang tidak melakukan apa-apa, melainkan hanya sekedar nama metode saja.
Sebuah kelas tidak dapat menjadi subkelas dari beberapa superkelas, melainkan hanya bisa menjadi subkelas dari satu superkelas saja. Hal ini membuat desain program lebih rapi dan teratur, sehingga dapat mengurangi kompleksitas program. Namun, terkadang hal ini dapat menjadi suatu kendala yang tidak menyenangkan, misalnya saat kita membutuhkan suatu kelas yang memiliki sifat-sifat dari dua atau lebih kelas lain. Nah disinalah fungsi interface itu dapat memberikan sebuah alternatif jalan keluar.
Tentunya dengan adanya interface maka beberapa kelas akan dapat menangani interaksi yang sama tapi dengan behaviour yang bisa berbeda. Contoh beberapa kelas mengimplementasi sebuah interface yang sama, maka kelas-kelas tersebut dapat menangani interaksi sesuai interface tersebut, namun tiap kelas dapat memiliki implementasi sendiri-sendiri.
Jika sebuah kelas mengimplementasi banyak interface, maka kelas tersebut akan dapat menangani interaksi-interaksi sesuai salah satu interface yang diimplement oleh kelas tersebut.tapi kelas tersebut harus mengimplementasi sendiri behaviournya. Inilah letak perbedaan penggunaan interface dengan multiple inheritance. Pada multiple inheritance, seperti single inheritance, subkelas tidak harus mengimplementasikan sendiri behaviournya karena secara default kelas tersebut akan mengikuti behaviour superkelasnya.
INHERITANCE/PEWARISAN
Pewarisan atau inheritance..adalah sebuah kelas mewarisi state dan behaviour dari kelas lain. Contohnya kelas komputerLapotop akan mewarisi state dan behaviour dari kelas komputer. Demikian juga dengan kelas komputerNetbook. Kelas komputerLaptop dan kelas komputerNetbook disebut subkelas, atau kelas anak, dari kelas komputer , yang disebut superkelas,atau kelas Induk. Kegunaan konsep pewarisan antara lain :
• dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode yang ada.
• dapat menggunakan kembali kelas-kelas yang kita buat (sebagai superkelas) dan membuat kelas-kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas.
Hal ini berguna jika kita ingin membuat prototype/template kelas. Kelas semacam ini disebut kelas abstraksi, karena behaviournya masih abstrak dan belum diimplementasikan. Subkelas-subkelas dari kelas semacam ini, yang disebut kelas konkret/nyata, mengimplementasikan behaviour abstrak tersebut sesuai dengan kegunaan masing-masing.
CIRI OOP
ENCAPTULATION/ENKAPSULASI
Enkapsulasi secara definisi adalah mekanisme pembungkusan untuk menyembunyikan atau melindungi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem juga sekaligus menyederhanakan penggunaan system itu sendiri. Akses ke internal sistem diatur sedemikian rupa melalui seperangkat interface/antarmuka. Contohnya Komputer, pada saat menyalakan, mematikan, pembacaan data, pemrosesan data maka pemakai/user tidak perlu tahu detail dari bagaimana proses menyalakan dan mematikan, itu dilakukan oleh komputer, cukup tahu bagaimana cara menyalakan/mematikan komputer , keyboard, mouse, tombol power merupakan interface (antar muka) pemakai dengan sistem komputer tersebut.
POLYMORPHISM
Polymorphism sebuah kata dari bahasa Yunani yang mempunyai arti banyak bentuk., konsep ini dimungkinkan untuk menggunakan suatu interface yang sama agar suatu objek melakukan aksi atau tindakan yang mungkin secara prinsip sama tapi secara proses bisa berbeda-beda. Pada umumnya konsep ini sering kali disebut dalam istilah satu interface banyak aksi. Contoh yang nyata adalah. komputer yang ada dipasaran terdiri atas berbagai tipe dan merk, namun semuanya memiliki interface yang sama, seperti: tombol power, keyboard, mouse, monitor dlsb,. Jika seseorang dapat mengoperasikan komputer satu jenis saja dari merk tertentu, maka orang itu akan dapat mengoperasikan hampir seluruh jenis komputer yang ada, karena semua komputer tersebut menggunakan interface yang sama. Perlu diketahui disini bahwa interface yang sama tidak berarti cara kerjanya juga sama. Misal kecepatan/speed komputer, kapasitas memory penyimpan, jika dibandingkan komputer 1 dan komputer 2 maka kecepatan komputer berbeda.
KEUNGGULAN MENGGUNAKAN PEMROGRAMAN OOP DENGAN PEMROGRAMAN TERSTRUKTUR
MAINTENABILITY
Kemampuan untuk mudah dikelola. Maksudnya jika terjadi kesalahan pada program yang besar maka solusinya adalah memecah program tersebut menjadi modul-modul kecil (modularitas). Modularitas melekat pada OOP karena kelas-kelas yang ada merupakan suatu modul sehingga kelas-kelas yang mempunyai fungsi sama akan disimpan pada namespace yang sama pula.
EXTENSIBILITY
Kemampuan dapat di perluas, yaitu Class-class yang ada dapat diperluas dengan menambahkan method atau data, atau mengubah prilaku dari method.
REUSIBILITY
Kemampuan untuk dapat dipergunakan kembali bagi mereka yang memerlukan fungionalitas yang sama yang disediakan oleh kode.
SUMBER :
http://www.agustav.web.id/2009/11/konsep-oop-objek-oriented-programming.html
http://tifani2012.blogspot.com/2009/09/ciri-khas-oop.html
Pemrograman Prosedural Vs OOP
• Pemrograman Prosedural (Pascal, C, Basic)
Algoritma pada pemrograman procedural berisi langkah-langkah atau tahapan
kegiatan tentang penyelesaian suatu masalah dimana program dipecah menjadi
beberapa modul yang diistilahkan dengan modular (procedural). Program dibedakan
antara bagian data dan bagian instruksi. Bagian instruksi akan dilaksanakan
secara berurutan oleh pemrosesan, beberapa instruksi menentukan instruksi
berikutnya yang akan dieksekusi (percabangan kondisional). Kemudian, data yang
disimpan dalam memori dimanipulasi secara berurutan (procedural). Konsep
pemrogramannya yaitu flow programming yang dieksekusi mulai baris awal perintah
sampai baris akhir. Pada konsep ini, antara data (varibel, konstanta, dll) dan
metode (fungsi dan prosedur) akan dipandang secara terpisah.
• Pemrograman Berorientasi Objek
-Object Oriented Programming- (Java)
Obyek (object) yang dimaksud dalam Object Oriented Programming (OOP) yaitu
kumpulan elemen-elemen dalam suatu program dan hubungan yang terjadi antar
elemen tersebut. OOP merupakan perkembangan dari paradigma pemrograman
procedural yang dibuat untuk mengatasi kesulitan yang ada pada pemrograman
procedural.
OOP merupakan paradigma yang berbeda dengan pemrograman prosedural. Pada
pemrograman prosedural, data (variabel, konstanta, dll), metode (prosedur dan
fungsi) dan hubungan satu dengan lainnya dipandang secara terpisah, sedangkan
pada OOP elemen-elemen serta hubungannya dikemas atau dikelompokkan dalam suatu
modul yang dinamakan kelas (class). Kelas inilah yang digunakan untuk membangun
atau membentuk obyek.
Dalam OOP juga terdapat langkah-langkah dalam penyelesaian masalah, diantarnya
yaitu:
- Langkah pengkombinasian data dan berbagai metode yang berhubungan dengannya.
Hasil kombinasinya disebut sebagai obyek (object) yang merupakan tipe data
baru.
- Membentuk obyek baru yang memiliki sifat sama atau mirip dengan obyek yang
sudah ada sebelumnya (pewarisan). Obyek turunan juga dapat membetuk obyek
turunan lagi dan seterusnya, dimana setiap perubahan pada obyek induk, juga
akan mengubah obyek turunannya.
- Object yang berbeda memberikan tanggapan/respon terhadap pesan yang sama
sesuai dengan sifat masing-masing obyek.
Jika diambil sebuah kasus untuk merepresentasikan sebuah objek (misalnya
tabung) dalam pemrogaman procedural dan oop, maka dalam pemrograman procedural
akan mendeklarasikan beberapa variabel untuk menggambarkan objek (tabung)
tersebut. Semua bagian tabung tersebut akan direpresentasikan ke dalam
variabel-variabel terpisah seperti: tinggi, jari-jari, warna, konstanta phi,
begitu juga untuk fungsi dan atau prosedur. Namun pada OOP, data-data dimaksud
yang disebut dengan atribut dan fungsi atau prosedur yang disebut metode (method)
dikemas dalam satu tipe baru yang disebut dengan kelas (class). Dari class
inilah nantinya diciptakan obyek-obyek.
Sumber :
Langganan:
Postingan (Atom)