Pemrograman Berorientasi Objek


 Pemrograman Berorientasi Objek
 
Definisi
Pemrograman berorientasi objek (Inggris: objcet-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.

OOP berputar pada konsep dari objek yang merupakan elemen dasar dari program Anda. Ketika kita membandingkan dengan dunia nyata, kita dapat menemukan beberapa objek disekitar kita seperti mobil, singa, manusia dan seterusnya. Objek ini dikarakterisasi oleh atribut dan tingkah lakunya.

Contohnya, objek sebuah mobil mempunyai atribut tipe transmisi, warna dan manufaktur. Mempunyai tingkah laku berbelok, mengerem dan berakselerasi. Dengan cara yang sama pula kita dapat mendefinisikan perbedaan sifat dan tingkah laku dari singa.

Konsep Dasar
Pemrograman Berorientasi Objek (Objcet-Oriented Programing disingkat OOP) adalah paradigma pemrograman yang berorientasi kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objekk.

Bahasa pemrograman yang lazim digunakan dalam PBO adalah C++ (Keluaran Borland disebut Borland C++, sedangkan dari Microsoft disebut Ms C++. Namun yang terakhir kurang populer). Demikian pula, jika ada bahasa pemorgraman yang menggunakan C++ sebagai landasan utama bagi pengembangannya, maka bahasa tersebut bisa dipakai untuk PBO, seperti Java, yang menjadi perhatian utama dalam pelatihan ini (bahasa ini sangat populer pada jaringan komputer, dalam hal ini adalah: Internet).

Karakteristik
1.      Abstraction
Adalah cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sebagai suatu kumpulan subsistem (objcet) yang saling berinteraksi. Alat meng-abstraksikan sesuatu adalah class objcet bersifat modularity. Objek dapat ditulis dan dimaintain terpisah (independen) dari objek lain. 

        Abstraksi merupakan 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.

2.      Encapsulation
Encapsulasi merupakan suatu mekanisme atau metode untuk menyembunyikan atau mengindari suatu proses dari kemungkinan interferensi sekaligus menyederhanakan penggunaan sistem itu sendiri agar tidak bisa diakses secara langsung dengan cara method atau proses tidak didefiniskan seluruhnya sebagai public tetapi didefinisikan sebagai private.

Sebagai contoh, data bertipe integer terdiri dari beberapa macam, yaitu char, short, long dan _int64 yang masing-masing menempati ruang dalam memori yang besarnya berbeda-beda tetapi memiliki kesamaan dalam operasi-operasi yang dapat diterapkan, yaitu penambahan, pengurangan, perkalian, dan pembagian.

3.      Inheritance 
Inheritence adalah suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkan ciri atau sifat dari class tersebut. Atau bisa dikatakan membentuk suatu hierarki.
Contoh : hierarki class
Java Keyword: extends
   
4.      Polymorphism
Polymorphism berasal dari bahasa Yunani yang berarti "Banyak bentuk". Dalam OOP, konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah suatu objek agar melakukan suatu aksi atau tindakan yang mungkin akan memberikan hasil akhir yang serupa, tetapi melalui proses yang berbeda. Dalam konsep yang lebih umum seringkali Polymorphism ini disebut dengan istilah "Satu interface, banyak aksi".

Sebagai contoh : ada lima class, dimana satu class utama didefinisikan public dan empat class lainnya yang saling terhubung dalam satu hierarki didefinisikan secara normal. Semisal Ada class Kucing, Kuda dan Ayam yang semuanya merupakan turunan dari class Hewan, masing-masing class memiliki nama method yang sama yaitu bersuara tapi detailnya berbeda-beda untuk masing-masing class.

Dengan kata lain bahwa Polymorphism merupakan beberapa objek dapat memiliki nama metode yang sama tetapi implementasinya berbeda

Implementasi konsep polymorphism:
a.  Overloading: Kemampuan untuk menggunakan nama yang sama untuk beberapa method yang berbeda parameter (tipe dan atau jumlah).
b. Overriding: Kemampuan subclass untuk menimpa method dari superclass, yaitu dengan cara menggunakan nama dan parameter yang sama pada method.

            Istilah Umum Dalam PBO/OOP
1.       Attribute
a.       Definisi dan Gambaran Umum Atribut
Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas, Atribut dapat memiliki hak akses private, public maupun protected.

Sebuah atribut yang dinyatakan sebagai private hanya dapat diakses secara langsung oleh kelas yang membungkusnya, sedangkan kelas lainnya tidak dapat mengakses atribut ini secara langsung.

Sebuah atribut yang dinyatakan sebagai public dapat diakses secara langsung oleh kelas lain di luar kelas yang membungkusnya.

Sebuah atribut yang dinyatakan sebagai protected tidak dapat diakses secara langsung oleh kelas lain di luar kelas yang membungkusnya, kecuali kelas yang mengaksesnya adalah kelas turunan dari kelas yang membungkusnya.
         
Atribut juga biasa disebut state/ properties/field merupakan bagian yang dimiliki oleh sebuah class yang tidak melakukan operasi, tetapi kepadanya dilakukan operasi sehingga dapat merubah nilai dari Attribute tersebut.

b.      Karakteristik Atribut
Dalam class, atribut disebut sebagai variabel. Atribut dapat membedakan antara satu objcet dengan objcet yang lain. Sebagai contoh, pada class : mahasiswa, terdapat objcet mahasiswa si A, dan objcet mahasiswa si B.
          Yang membedakan antara objcet si A dan si B adalah NPM-nya (Nomor Pokok Mahasiswa) yang merupakan atribut dari objcet tersebut. Pada atribut, terdapat pula dua istilah variabel, yaitu Instance Variabel dan Class Variabel.

Dimana pada tiap variabel memiliki karakteristik tersendiri, diantaranya : Pada Instance Variabel à tiap objcet memiliki instance variabel dan menyimpan nilainya tersendiri.

          Sedangkan pada Class Variabel à atribut yang dimiliki oleh semua objcet yang berasal dari class yang sama, serta semua objcet memiliki nilai class variabel yang sama. atribut yang dimiliki objcet dari class yang sama.

2.      Method
a.       Definisi dan Gambaran Umum Method
Method adalah fungsi atau prosedur yang dibuat oleh seorang programmer didalam suatu Class. Dengan kata lain, method pada sebuah kelas hampir sama dengan fungsi atau prosedur pada pemrograman prosedural.

          Pada sebuah method di dalam sebuah kelas juga memiliki izin akses seperti halnya atribut pada kelas, izin akses itu antara lain private, public dan protected yang memiliki arti sama pada izin akses atribut yang telah dibahas sebelumnya. Sebuah kelas boleh memiliki lebih dari satu method dengan nama yang sama asalkan memiliki parameter masukan yang berbeda sehingga kompiler atau interpreter dapat mengenali method mana yang dipanggil.

          Hal ini dinamakan overloading. Di dalam sebuah kelas, terdapat juga yang disebut sebagai method atau atribut statis yang memiliki kata kunci static. Maksud dari statis di sini adalah method yang dapat diakses secara berbagi dengan semua objek lain tanpa harus membuat objek yang memiliki method statis tadi (tanpa proses new), tapi sebuah method statis mempunyai keterbatasan yaitu hanya dapat mengakses atribut atau method lain di dalam kelas yang membungkusnya yang juga bersifat statis. Method statis biasanya diimplementasikan untuk method main.

b.      Karakteristik Method
Didalam suatu class, behaviour disimpan dalam bentuk Method. Method merupakan serangkaian statemen/perintah (perintah = baris program) dalam suatu class yang meng-handle task tertentu. Method merupakan hal-hal yang bisa dilakukan oleh object dari suatu class.

Method didefinisikan pada class akan tetapi dipanggil melalui object. Method memiliki peranan diantaranya :
i.         Merubah nilai atribut dari suatu object,
ii.        Menerima informasi dari objek lain, dan
iii.      Mengirim informasi ke objek lain untuk melakukan suatu task (cara obyek berkomunikasi dengan objek lain adalah dengan menggunakan method).

3.      Class
Merupakan model yang berisi kumpulan attribute dan method dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh class manusia memiliki attribute berat, tinggi, usia kemudian memiliki method makan, minum, tidur. Method dalam sebuah class dapat merubah attribute yang dimiliki oleh class tersebut. Sebuah class merupakan dasar dari modularitas dan struktur dalam pemrograman berorientasi object.

a.       Definisi dan Gambaran Umum Class
Class didefinisikan sebagai sebuah blueprint (denah), atau prototipe, yang mendefiniskan variabel-variabel dan metode-metode yang umum untuk semua objek dari n jenis tertentu (n maksudnya jumlah tertentu). Sebuah kelas menyerupai sebuah struktur yang merupakan tipe data sendiri, misalkan tipe data titik yang terdiri dari koordinat x dan y. Bahasa Java telah menggunakan sebuah kelas untuk menyatakan tipe data titik karena bahasa pemrograman Java merupakan bahasa pemrograman berorientasi objek murni sehingga tidak mengenal struktur, melainkan mengenal apa yang disebut dengan kelas.

          Perbedaan sebuah kelas dengan sebuah struktur adalah sebuah kelas dapat berdiri sendiri dan dapat digunakan untuk berbagai keperluan kelas-kelas yang lain, sedangkan sebuah struktur tidak dapat berdiri sendiri. Sebuah kelas lebih fleksibel untuk digunakan oleh kelas lain tanpa harus membongkar kode program utama, sedangkan jika digunakan struktur maka kode program harus dibongkar unuk disalin bagian strukturnya ke kode program utama yang lain.

          Sebuah file dapat terdiri dari berbagai kelas, namun biasanya pada bahasa pemrograman Java sebuah file hanya terdiri dari satu kelas yang disimpan dengan nama kelas, misal file List. Java berisi kelas List. Namun jika kelas yang dibuat misalnya public class nama_kelas, maka kelas itu harus disimpan dalam satu file hanya untuk satu kelas. Setelah dilakukan kompilasi maka pada Java akan ada sebuah file .class yang berisi bytecode dari setiap kelas.

          Jika sebuah file terdiri dari dua kelas, maka setelah dilakukan kompilasi akan dihasilkan dua buah file .class yang nantinya akan dibaca oleh interpreter Java saat program dieksekusi. Sebuah kelas saat program dieksekusi dan perintah new dijalankan, maka akan dibuat sebuah objek.

Class adalah template untuk pembuatan objek. Class juga memiliki anggota, diantaranya : atribut dan method.

Pemahaman singkatnya :
i.  Class merupakan pola/template yang menggambarkan kumpulan object yang mempunyai sifat dan perilaku yang sama.
ii.    Class merupakan struktur data dari object (blueprint dari sebuah object), dan proses pembuatan object dari sebuah class disebut juga dengan instantiation.
iii.   Class merupakan definisi data dan fungsi dari suatu hal (benda, konsep, dll).
iv.   Di dalam class dideklarasikan variabel dan method yang dimiliki oleh obyek

b.      Karakteristik Class
Class memiliki beberapa karakteristik, diantaranya : anggota class terdiri dari atribut dan method. Tiap-tiap anggota class memiliki control pengaksesan tersendiri, maksudnya adalah apakah anggota class tersebut dapat diakses dengan bebas (dengan tipe public) atau hanya dapat diakses melalui sebuah interface.

Dalam hal ini, interface adalah device yang digunakan untuk komunikasi antar object berbeda yang tidak memiliki hubungan apapun. Interface bisa dikatakan sebagai protokol komunikasi antar object tersebut.
4.      Object
Merupakan perwujudan dari class, setiap object akan mempunyai attribute dan method yang dimiliki oleh class-nya, contohnya: amir, ahmad, yani merupakan object dari class manusia. Setiap object dapat berinteraksi dengan object lainnya meskipun berasal dari class yang berbeda.

a.       Definisi dan Gambaran Umum Object
Object 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. Object adalah implementasi dari class. Secara sederhananya, dapat dikatakan terdiri dari properti (atribut) dan method.

Pemahaman singkatnya :
i.     Objek merupakan sebuah objek khusus yang digunakan untuk mengakses anggota objek (atribut atau method) dari dalam objek itu sendiri.

ii.        Apabila terdapat variabel lain yang memiliki nama yang sama dengan nama atribut di dalam objek, “this” dapat digunakan untuk merujuk ke atribut objek.

b.      Karakteristik Object
Setiap object memiliki dua karakteristik yang utama, yaitu atribut dan behaviour. Atribut merupakan status object dan behaviour merupakan tingkah laku dari object tersebut.

          Contoh sederhana adalah sepeda. Object sepeda memiliki atribut : pedal, roda, dan gigi, kecepatan serta memiliki tingkah laku seperti pacu dan rem. Sama seperti penggambaran di dunia nyata, pengembangan program dengan konsep OOP juga menggunakan model object yang akan menyimpan atributnya dalam variabel dan tingkah lakunya dalam method atau fungsi-fungsi/prosedur. Deskripsinya :

Dalam pengembangan perangkat lunak berorientasi objek, objek dalam perangkat lunak akan menyimpan state-nya dalam variabel dan menyimpan informasi tingkah laku (behaviour) dalam method-method atau fungsi-fungsi/prosedur.

Comments

Popular Posts