Pemrograman berorientasi objek
Pemrograman berorientasi
objek (Inggris: object-oriented programming disingkat OOP)
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,
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
- Kelas : kumpulan atas
definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan
tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri
atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai
macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari
modularitas dan struktur dalam pemrograman berorientasi object. Sebuah
class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer
sekalipun terkait dengan domain permasalahan yang ada, dan kode
yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan
independen (sebagaimana kode tersebut digunakan jika tidak menggunakan
OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan
aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut.
Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah
program ataupun sebaliknya.
- Objek : membungkus data
dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan
dasar dari modularitas dan struktur dalam sebuah program komputer
berorientasi objek.
- Abstraksi : 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.
- Enkapsulasi : 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.
- Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada
pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode
tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada
objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah
burung menerima pesan "gerak cepat", dia akan menggerakan
sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan
menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang
sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut
polimorfisme karena sebuah variabel tungal dalam program dapat memegang
berbagai jenis objek yang berbeda selagi program berjalan, dan teks
program yang sama dapat memanggil beberapa metode yang berbeda di saat yang
berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa
fungsional yang mencapai polimorfisme melalui penggunaan fungsi
kelas-pertama.
- Dengan menggunakan OOP
maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana
cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek
apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap
kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas
administrasi data dan lainnya. Misal manager tersebut ingin memperoleh
data dari bag administrasi maka manager tersebut tidak harus mengambilnya
langsung tetapi dapat menyuruh petugas bag administrasi untuk
mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui
bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan
data tersebut melalui objek petugas adminiistrasi. Jadi untuk
menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada
karena setiap objek memiliki deskripsi tugasnya sendiri.
Bahasa Pemrograman
Bahasa
pemrograman yang mendukung OOP
antara lain:
1. Visual Foxpro
2. Java adalah bahasa pemrograman yang dapat dijalankan
di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh
James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan
bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi
sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang
lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal.
Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode)
dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan
bahasa pemrograman yang bersifat umum/non-spesifik (general purpose),
dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal
mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu
berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula
dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat
ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara
luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi
ataupun aplikasi berbasis web.
3. C++ adalah bahasa pemrograman komputer yang di buat
oleh (Bjarne Stroustrup) merupakan perkembangan dari bahasa C dikembangkan
di Bell Labs (Dennis Ritchie) pada awal tahun 1970-an, Bahasa
itu diturunkan dari bahasa sebelumnya, yaitu BCL, Pada awalnya, bahasa tersebut
dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix, Pada
perkembangannya, versi ANSI (American National Standart Institute) Bahasa
pemrograman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang
dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded,
Bjarne Stroustrup pada Bel labs pertama kali mengembangkan C++ pada awal
1980-an, Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem
support untuk pemrograman tingkat rendah (low level coding). Pada C++
ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti
inheritance dan overloading. Salah satu perbedaan yang paling mendasar dengan
bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (Object
Oriented Programming). Perbedaan Antara Bahasa pemrograman C dan C++ meskipun
bahasa-bahasa tersebut menggunakan sintaks yang sama tetapi mereka memiliki
perbedaan, C merupakan bahasa pemrograman prosedural, dimana penyelesaian suatu
masalah dilakukan dengan membagi-bagi masalah tersebut kedalam su-submasalah
yang lebih kecil, Selain itu, C++ merupakan bahasa pemrograman yang memiliki
sifat Pemrograman berorientasi objek, Untuk menyelesaikan masalah, C++
melakukan langkah pertama dengan menjelaskan class-class yang merupakan anak
class yang dibuat sebelumnya sebagai abstraksi dari object-object fisik, Class
tersebut berisi keadaan object, anggota-anggotanya dan kemampuan dari
objectnya, Setelah beberapa Class dibuat kemudian masalah dipecahkan dengan
Class.
4. Pascal (bahasa pemrograman) adalah bahasa pemrograman
yang pertama kali di buat oleh Profesor Niklaus Wirth, seorang anggota
International Federation of Information Processing (IFIP) pada tahun 1971.
Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang
pertama kali menciptakan mesin penghitung, Profesor Niklaus Wirth membuat
bahasa Pascal ini sebagai alat bantu untuk mengajarkan konsep pemrograman
komputer kepada mahasiswanya. Selain itu, Profesor Niklaus Wirth membuat Pascal
juga untuk melengkapi kekurangan-kekurangan bahasa pemrograman yang ada pada
saat itu.
5. SIMULA
6. Smalltalk adalah bahasa pemrograman berorientasi objek
yang dikembangkan oleh Xerox PARC.
7. Ruby
8. Python adalah bahasa pemrograman interpretatif
multiguna dengan filosofi perancangan yang berfokus pada tingkat keterbacaan
kode. Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan,
dengan sintaksis kode yang sangat jelas, dan dilengkapi dengan fungsionalitas
pustaka standar yang besar serta komprehensif. Python mendukung multi paradigma
pemrograman, utamanya; namun tidak dibatasi; pada pemrograman
berorientasi objek, pemrograman imperatif, dan pemrograman fungsional.
Salah satu fitur yang tersedia pada python adalah sebagai bahasa pemrograman
dinamis yang dilengkapi dengan manajemen memori otomatis. Seperti halnya pada
bahasa pemrograman dinamis lainnya, python umumnya digunakan sebagai bahasa
skrip meski pada praktiknya penggunaan bahasa ini lebih luas mencakup konteks
pemanfaatan yang umumnya tidak dilakukan dengan menggunakan bahasa skrip.
Python dapat digunakan untuk berbagai keperluan pengembangan perangkat lunak
dan dapat berjalan di berbagai platform sistem operasi.
9. PHP adalah bahasa skrip yang dapat ditanamkan atau
disisipkan ke dalam HTML. PHP banyak dipakai untuk memrogram situs web dinamis.
PHP dapat digunakan untuk membangun sebuah CMS.
10. C#
11. Delphi adalah sebuah Lingkungan pengembangan terpadu (IDE) untuk
mengembangkan aplikasi konsol, desktop, web, ataupun perangkat mobile. Produk
ini pada awalnya dikembangkan oleh CodeGear sebagai divisi pengembangan
perangkat lunak milik Embarcadero, divisi tersebut sebelumnya adalah milik
Borland. Bahasa Delphi, atau dikenal pula sebagai object pascal (pascal
dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya
ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan
untuk mengembangkan aplikasi untuk Mac OS X, iOS, Microsoft .NET framework
(lihat di bawah). Pada tanggal 8 Februari 2006, Borland mengumumkan akan
melepas seluruh jajaran produk pengembangan aplikasi komputernya termasuk di
antaranya Delphi, untuk itulah Borland membentuk perusahaan baru dengan nama
CodeGear sehingga terpisah dari Borland. Saat ini Delphi menjadi bagian dari
jajaran IDE milik Embarcadero Technologies setelah Embarcadero Technologies
mengakuisisi CodeGear. Hal ini disebabkan karena kerugian yang terus menerus
selama 2006 rugi bersih sebesar $53.1 juta, 2007 rugi bersih $61 juta. Sehingga
pada tahun 2008 saat CodeGear menderita rugi bersih $22.3 maka CodeGear dijual
ke Embarcadero seharga $23 juta untuk menutupi rugi bersih ini.
12. Eiffel
13. Perl adalah bahasa pemrograman untuk segala keperluan, dikembangkan
pertama kali oleh Larry Wall di mesin Unix. Perl dirilis pertama kali pada
tanggal 18 Desember 1987 ditandai dengan keluarnya Perl 1. Pada versi-versi
selanjutnya, Perl tersedia pula untuk berbagai sistem operasi varian Unix
(SunOS, Linux, BSD, HP-UX), juga tersedia untuk sistem operasi seperti DOS,
Windows, PowerPC, BeOS, VMS, EBCDIC, dan PocketPC. Dukungan terhadap
pemrograman berbasis obyek (object oriented programming/OOP)
ditambahkan pada Perl 5, yang pertama kali dirilis pada tanggal 31 Juli 1993.
Proyek pengembangan Perl 6 dimulai pada tahun 2000, dan masih berlangsung
hingga kini tanpa tanggal yang jelas kapan mau dirilis. Ini dikatakan sendiri
oleh Larry Wall dalam satu pidatonya yang dikenal dengan seri The State
of the Onion. Dua di antara karakteristik utama Perl adalah penanganan teks
dan berbagai jalan pintas untuk menyelesaiakn persoalan-persoalan umum. Tidak
heran jika Perl sangat populer digunakan dalam program-program CGI (Common
Gateway Interface) dan berbagai protokol Internet lainnya. Seperti
diketahui, TCP/IP sebagai basis bagi semua protokol Internet yang dikenal
sekarang ini menggunakan format teks dalam komunikasi data. Seperti juga bahasa
populer lainnya, Perl menerima banyak kritikan. Meski banyak di antaranya hanya
berupa mitos, atau berlebih-lebihan, tapi terdapat juga sejumlah kritikan yang
valid. Salah satunya adalah, sintaksnya susah dibaca, karena banyak menggunakan
simbol-simbol yang bukan huruf dan angka.
14. Adobe Flash AS 3.0
sumber :
http://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek
Komentar
Posting Komentar