OBJECT ORIENTED PROGRAMMING

PENGERTIAN OBJECT ORIENTED PROGRAMMING (OOP)

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.

 

SEJARAH OOP

Dasar untuk OOP dimulai pada awal tahun 1960-an. Sebuah terobosanmelibatkan contoh dan objek telah dicapai di MIT dengan PDP-1, dan pertamauntuk menggunakan bahasa pemrograman objek adalah Simula 67. Ia dirancanguntuk tujuan membuat simulasi, dan dikembangkan oleh Kristen Nygaard danOle-Johan Dahl di Norwegia.Mereka bekerja pada simulasi yang berurusan dengan exploding kapal, danmereka dapat diwujudkan grup yang berbeda kapal ke kategori. Setiap jeniskapal akan memiliki class, dan class akan menghasilkan perilaku yang unik dandata. Simula tidak hanya bertanggung jawab untuk memperkenalkan konsepclass, tetapi juga memperkenalkan instance dari class.Istilah “object oriented programming” pertama kali digunakan oleh Xerox PARCmereka di luar program bahasa. Istilah ini digunakan untuk merujuk kepadaproses menggunakan objek sebagai dasar untuk penghitungan. Tim Smalltalkyang telah terinspirasi oleh Simula 67 proyek, tetapi mereka telah merancangSmalltalk 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 memperkenalkankonsep inheeritance. Hal ini adalah fitur yang diperbolehkan untuk Smalltalkmelebihi simula 67 dan pemrograman sistem analog. Meskipun sistem yangcanggih pada saat itu belum bisa menggunakan konsep inheritance.Simula 67 adalah sistem yang telah memberikan inspirasi banyak bahasapemrograman lain, termasuk Pascal dan Lips. Pada tahun 1980-an,pemrograman berorientasi objek telah menjadi dominan, dan faktor utamadalam hal ini yakitu C++. object oriented programming juga penting untukpengembangan grafik user interface. Cocoa dengan struktur yang ada dalamMac OS X adalah contoh yang baik dari GUI yang dinamis yang bekerja denganbahasa pemrograman berorientasi objek. Paradigma dari pemrograman ini jugatelah memainkan peranan penting dalam pengembangan event-drivenprogramming.

PARADIGMA PEMROGRAMAN

Paradigma adalah sudut pandang tertentu yang digunakan terhadap suatu problem, realitas,keadaan dan sebagainya. Paradigma membatasi dan mengkondisikan jalan berpikir seseorang, mengarahkannya terhadap beberapa atribut dan mengabaikan atribut lain,sehingga paradigma hanya memberikan pandangan yang terbatas terhadap sebuah realitas.Dalam pemrograman dikenal beberapa paradigma, yaitu:

1. Paradigma Pemrograman Prosedural atau Imperatif

Paradigma ini didasari oleh konsep mesin Von Newman (stored program concept)sekelompok tempat penyimpanan (memori), yang dibedakan menjadi memori instruksi danmemori data, masing-masing memori tersebut dapat diberi nama dan nilai, selanjutnyainstruksi akan dieksekusi satu persatu secara sekuensial oleh sebuah proses tunggal.Program dalam paradigma ini berdasarkan pada struktur informasi di dalam memori danmanipulasi dari informasi yang disimpan tersebut. Kata kunci yang sering digunakan dalam paradigma ini adalah:

Algoritma + Struktur Data = Program

Kelebihan dari paradigma ini adalah efisiensi eksekusi karena lebih dekat dengan konsepmesin, kekurangannya adalah batasan yang sangat mengikat sehingga terkadang menyulitkan programmer yang tidak terbiasa.Contoh bahasa pemrogaman yang menggunakan paradigma prosedural atau imperatif adalah:Algol, Pascal, Fortran, Basic, Cobol, C, dsb…

2. Paradigma Pemrograman Fungsional

Paradigma ini didasari oleh konsep pemetaan dan fungsi pada matematika, fungsi dapat berupa fungsi ”primitif”, atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. Dalam paradigma ini, diasumsikan bahwa akan selalu ada fungsi-fungsi dasar yang dapat digunakan,sehingga penyelesaian masalah berdasarkan pada fungsi-fungsi yang telah tersedia tersebut.Jadi dasar pemecahan masalah adalah transformasional, semua kelakuan program adalahsuatu rantai transformasi dari sebuah keadaan awal menuju ke suatu rantai keadaan akhir,yang mungkin melalui keadaan antara, melalui aplikasi fungsi.Paradigma fungsional tidak mempermasalahkan memorisasi dan struktur data, tidak ada pemilahan antara data dan program, tidak ada lagi pengertian tentang ”variabel”. Programmer tidak perlu tahu bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalammemori, setiap fungsi seperti ”kotak hitam”, yang perlu diperhatikan hanya keadaan awal danakhir, sebuah program besar dihasilkan dengan menggabungkan fungsi-fungsi yang telahtersedia. Program yang dihasilkan dengan bahasa pemrograman yang menggunakan paradigma ini biasanya membutuhkan waktu pemrosesan yang lebih lama dibandingkandengan yang menggunakan paradigma prosedural karena dibutuhkan waktu lebih untuk memproses fungsi-fungsi yang digunakan dalam membuat program.Contoh bahasa pemrograman yang menggunakan paradigma fungsional adalah LOGO, APLdan LISP.

3. Paradigma Pemrograman Deklaratif, Predikatif atau Lojik

Paradigma ini didasari atas pendefinisian relasi antar individu yang dinyatakan sebagai predikat. Sebuah program lojik adalah kumpulan aksioma (Fakta dan aturan deduksi.Dalam paradigma ini, programmer menguraikan sekumpulan fakta dan aturan-aturan(

inference rules

). Ketika program dieksekusi, pemakai akan mengajukan pertanyaan,selanjutnya program akan menggunakan aturan deduksi dan mencocokkan pertanyaan denganfakta-fakta yang ada untuk menjawab pertanyaan.

Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Prolog.

4. Paradigma Berorientasi Object (Object Oriented )

Paradigma ini menggunakan konsep

class dan object  , object  adalah instansiasi dariclass,setiap object  akan mempunyai attribute dan method  , masing-masingobject dapat berinteraksidenganobject

lainnya meskipun berasal dari

class

yang berbeda.mempunyai hirarki artinya sebuah

class

dapat diturunkan menjadi sebuah

class

baru yang juga memiliki attribut dan method

class

diatasnya. Dengan begitu dalam paradigma inidikenal konsep modularitas, penggunaan kembali (

reuse

) serta kemudahan modifikasi.Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Smalltalk, Eifel,Delphi, Java.—————————————————————————————————————-

Pembuktian melalui deduksi

adalah sebuah  jalan pemikiran yang menggunakanargumen- argumendeduktif untuk beralih dari premis-premisyang ada, yang dianggap benar, kepada kesimpulan-kesimpulan, yang mestinya benar apabila premis-premisnya benar.

[1]

Contoh klasik dari penalaran deduktif, yang diberikan oleh Aristoteles, ialah

Semua manusia fana (pasti akan mati). (premis mayor)

Sokrates adalah manusia. (premis minor)

Sokrates pasti (akan) mati. (kesimpulan)Konsep Pemrograman Berorientasi Objek Jika teman-teman mau belajar atau belum pernah belajar pemrograman berbasis objek,

harus

tau dulu konsep dasarnya. Konsep dasar yang harus difahami sebelum belajar lebih lanjut.Pemahaman tentang pemrograman berbasis objek tentu saja kita mulai dari objek itu sendiri.Di dalam dunia nyata, seluruh hal yang kita lihat adalah

objek

(orang, pacar, orang tua, binatang, gedung, komputer, mouse, keyboard, dll). Program komputer yang kita pelajariseperti C, C++, Java, Delphi, dll juga bisa dilihat sebagai

objek

.Kita dapat membagi objek menjadi dua kategori yaitu benda hidup dan benda mati. Objek yang merupakan benda hidup tentu saja mempunyai indra yang digunakan untuk melakukan banyak yang diinginkannya. Sedang objek yang merupakan benda mati tidak dapatmelakukan apapun kecuali ada campur tangan dari benda hidup.

Biarpun demikian kedua kategori objek itu (hidup & mati) mempunyai kesamaan.Kesamaannya yaitu keduanya memiliki

attributes ;

sifat, tanda, ciri, atribut seperti ukuran, bentuk, lebar, panjang, berat, dll. Serta memiliki

behaviours

; kelakuan, tingkah laku, tindak tanduk, tindakan , aturan seperti jalan, tidur, belajar, makan, komputer dihidupkan /dimatikan, mobil di gas, dll). Objek-objek yang berbeda dapat memiliki attributes dan behaviours yang sama. Dapat kita bandingkan antara pembaca tulisan ini (orang) dan monyet.Hampir sama kan?Setelah membaca tulisan diatas, coba anda lihat sebentar objek nyata yang ada disekitar.Untuk tiap objek coba tanyakan pada diri anda sendiri : “Keadaan apa yang mungkin terjadi pada objek ini?” dan “Tingkah laku yang bagaimana yang bisa dilakukan objek ini?”.Setelah melakukan itu, anda pasti akan menemukan bahwa objek-objek itu mempunyaikompleksitas yang beragam. Sebagai contoh objek pintu punya dua kemungkinan keadaan(terbuka, tertutup) dan tiga kemungkinan behaviours (ditutup terkunci, dibuka, ditutup tdk terkunci). Sedang objek yang lain seperti lampu punya dua keadaan (mati, hidup) dan duakemungkinan behaviours (dimatikan, dihidupkan). Anda pasti juga akan menemukan bahwasuatu objek dapat menjadi bagian atau terdapat dalam objek lain. Seperti objek meja dapat berada didalam objek kamar. Objek-objek seperti inilah yang akan di terjemahkan dalam pemrograman berbasis objek.Dalam dunia nyata, anda pasti sering menemukan objek yang sama satu dengan yang lainnya.Seperti, banyak televisi yang ada (bukan banyak lagi, puluhan bahkan ratusan) yang dibuat perusahaan yang sama dan modelnya juga sama. Tiap televisi mempunyai

blueprints

yangtentunya komponennya juga sama. Di dalam pemrograman objek, kita dapat menyebut bahwatelevisi yang anda miliki adalah

instance

dari

class

suatu objek yaitu televisi. Sebuah

class

adalah suatu blueprint dari tiap objek individu yang ada.Bermacam-macam objek biasanya mempunyai persamaan dengan yang lain. Televisi layar datar, televisi layar biasa, keduanya mempunyai atribut yang sama (ukuran, berat,dll). Tapiterdapat perbedaan juga diantara televisi yang ada, beberapa televisi juga sudah dilengkapidengan video player, cd/dvd player, support radio, dll.Untuk hal diatas, dengan pemrograman berbasis objek dapat dilakukan pewarisan atribut dan behaviour dari class yang satu ke yang lain (

inheritance

). Untuk atribut dan behaviour yang

sama dapat diwariskan dari class diatasnya (televisi) sedang atribut dan behaviour yang tidak terdapat pada televisi pada umumnya menjadi atribut objek itu sendiri.Selamat belajar ..Keuntungan OOP Dan Kelemahan OOP1.Salah satu kelebihan pemrograman berorientasi objek adalah penggunaan ulang kode-kodeyang telah dibuat. Pewarisan adalah salah satu cara untuk menggunakan kode-kode yangtelahdibuat sebelumnya.2.Karena sebuah methode hanya bisa mengakses dimana metode itu berada, pemrograman berorientasi objek mengurangi kesalahan yang terjadi. Dalam pemrograman berorientasi objek waktu yang diperlukan untuk merancang lebih lamadibandingkan dengan pembuatan program. Hal ini disebabkan oleh fokus menentukankelas dan objek yang memerlukan perhatian lebih besar. Tetapi waktu yangdiperlukan untuk menulis program lebih sedikit dibandingkan dengan program prosedural. program berorientasi objek juga lebih mudah dipelihara sertadikembangkan.

Konsep pemrograman berbasis object : Enkapsulasi, pewarisan, polymorphism.Enkapsulasi

adalah suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi penyalahgunaan dari luar system sekaligusmenyederhanakan suatu system itu sendiri. Akses ke internal system diatu oleh interface.Contoh : seperti dalam kasus mobil, bayangkan transmisi mobil. Kita tidak mengetahuitransmisi tersebut secara fisik seperti pada system transmisi tentang bagaimana cara mobilmengatur percepatan dan apa yang dilakukannya terhadap mesin untuk mendapatkan percepatan tersebut. Kita hanay memindah-mindahkan tongkat transmisi untuk mendapatkan percepatan yang kita inginkan. Tongkat transmisi inilah yang menjadi interface mobiltersebut. Dengan pedal rem kita tidak dapat mengakses system tersebut. Sebaliknya dengan

menggunakan transmisi tersebut kita tidak mungkin dapat menyalakan radio mobil ataupunmembuka pintu mobil. Konsep yang sama dilakukan dalam pemrograman.Dalam bahasa Java “everything is an object”. Setiap baris program merupakan bagian dariobject dan memiliki fungsi masing-masing. Kita dapat mengganti object-object yangmenyusun subsistem dengan object lainnya jika memang diperlukan tanpa mengganggukeseluruhan system.

Pewarisan

merupakan suatu proses dimana suatu class diturunkan dari class yang lainnyasehingga ia mendapatkan cirri dan sifat dari class tersebut. Perbedaan antara class dan object,class dipergunakan untuk menggambarkan suatu model atau spesifikasi dari suatu entitas,sedangkan object merupakan kenyataan, realisasi atau perwujudan dari class itu sendiri.

Polymorphism

berasal dari bahasa Yunani yang berarti “banyak bentuk”. Dalam OOP,mungkin digunakannnya suatu interface yang sama untuk memerintahkan suatu objek agar melakukan tindakan yang mungkin akan memberikan hasil akhir yang serupa dengan proses berbeda. Dalam konsep lebih umum polymorphism dapat disebut “suatu interface, banyak aksi”. Contoh: dalam kasus mobil, banyak merek mobil beredar dipasaran tapi semuamemiliki interface kendali yang sama. Jika kita dapat mengendarai satu mobil, kita pastidapat mengendari mobil lain dengan merek berbeda. Interface yang sama tidak berarti carakerja yang sama.Dengan interface yang sama dapat mendapatkan hasil yang sama tetapi bagaimana prosesyang terjadi dari aksi menjadi hasil mungkin saja berbeda.

Blueprint saat ini diartikan sebagai sebuah rancangan menyeluruh yangterdokumentasi mengenai hal teknis

Materi Tambahan

OOP memiliki beberapa keuntungan dalam pemrograman, di antaranya:

1.OOP menyediakan struktur modular yang jelas untuk program sehingga OOP sangat bagus digunakan untuk mendefinisikan tipe data abstrak di mana detilimplementasinya tersembunyi.2.OOP akan mempermudah dalam memaintain dan memodifikasi kode yang sudah ada.Objek yang baru dapat dibuat tanpa mengubah kode yang sudah ada.3.OOP menyediakan framework untuk library kode di mana komponen software yangtersedia dapat dengan mudah diadaptasi dan dimodifikasi oleh programmer. Hal inisangat berguna untuk mengembangkan GUI (Graphical User Interfaces).Sedangkan beberapa kelemahan OOP antara lain adalah sebagai berikut:1. Tidak memperbolehkan implementasi yang kuat pada reuse2. Properti software tidak terikat dalam satu unit fungsional, sehingga haruscrosscut di antara komponennya.3. Crosscut tersebut mengakibatkan sulitnya pengembangan dan pemeliharaan.Diposkan oleh OOP quick view di18.08 0 komentar  

Minggu, 14 September 2008

Konsep dasar dari PemrogramanBerorientasi Objek 

Pemrograman orientasi-objek menekankan konsep berikut:1.Kelas2.Kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuantertentu. Sebagai contoh ‘class of dog’ adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunandari 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 yangada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiridan independen (sebagaimana kode tersebut digunakan jika tidak menggunakanOOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara sepertiini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupunsebaliknya.3.Objek 4.Membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah programkomputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.5.Abstraksi6.Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya,yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayanisebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpamengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metodedapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkansebuah pengabstrakan.7.Enkapsulasi8.Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam darisebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yangdiberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yangmenyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnyatidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.9.Polimorfisme

10.Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapatmengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesantergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bilasebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya danterbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkankakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yangsesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuahvariabel tungal dalam program dapat memegang berbagai jenis objek yang berbedaselagi program berjalan, dan teks program yang sama dapat memanggil beberapametode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.11.Inheritas12.Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dandiciptakan dengan jenis khusus dari objek yang sudah ada – objek-objek ini dapatmembagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.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 kitamemiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi datadan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi makamanager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagadministrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harusmengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan datatersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengankolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnyasendiri.Bahasa PemrogramanBahasa pemrograman yang mendukung OOP antara lain:1. Java2. C++3. Visual Basic.NET4. SIMULA5. Smalltalk 6. Ruby7. PHP8. C#

9. Eiffel10. PerlDiposkan oleh OOP quick view di14.14 1 komentar  

Pengertian OOP

Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP)merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data danfungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkandengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memprosesdata, dan mengirim pesan ke objek lainnya.Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahanmengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauhlagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibandingdengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dandirawat.

Leave a Reply

Your email address will not be published. Required fields are marked *