Pengertian
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 / Istilah –istilah dalam OOP
·
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 yang mendukung OOP
Visual Foxpro, Java, C++, Pascal, SIMULA, Smalltalk, Ruby, Python, PHP, C#, Delphi, Eiffel, Perl, Adobe Flash AS 3.0
1. Java
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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. 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.
sumber :
http://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek
0 komentar:
Posting Komentar