Diberdayakan oleh Blogger.
.....SELAMAT DATANG DI WANCHO INFO BLOGSPOT..... SEBUAH BLOGSPOT YANG MENYEDIAKAN SEDIKIT INFORMASI TERBARU YANG MUNGKIN DAPAT MEMBANTU ANDA ..... TERIMA KASIH .....
RSS

Materi Pemrograman Berorientasi Objek


OOP (Object Oriented Programming) merupakan salah satu metode pembuatan program software yang paling trend saat ini. OOP dengan bahasa pemrograman java sekarang ini sangat baik kita pelajari dan kembangkan karena penggunaan bahasa java dapat berjalan secara multiplatform artinya dapat bekerja di system operasi Windows atau Linux. Saya akan mencoba membagi ilmu mengenai OOP dan bagaimana membuat software dengan OOP. Saya akan menggunakan bahasa Java sebagai bahasa pemrograman software dengan menggunakan konsep OOP.

Pembahasan sekilas OOP

OOP (Object Oriented Programming) adalah konsep dalam membangun suatu program dan dimulai dengan ditemukannya bahasa Simula 67 pada akhir tahun 1960-an. Sebelum konsep OOP lahir, programmer atau system analis lebih banyak memakai konsep pemrograman terstruktur misalnya dengan Bahasa Pascal atau Basic. Pada saat pemrograman terstruktur sedang ramai dibicarakan orang muncul bahasa-bahasa pemrograman lain yang menggunakan konsep OOP. Bahasa-bahasa lain tersebut adalah Neon, LOOPS, Flavors, Object Pascal, Smalltalk, Actor, Eiffel, dan C++.

OOP merupakan konsep yang baik digunakan dalam pembangunan, pemeliharaan dan pengembangan program. Terlepas dari cara berpikir atau berlogika terstruktur, OOP mencoba melihat permasalahan lewat pengamatan dunia nyata yang dianggap sebagai object-object. Dimana object-object tersebut dapat berdiri sendiri (independen) dan antar object-object tersebut dapat saling berinteraksi. Bahasa-bahasa pemrograman sekarang ini dan yang akan datang pada umumnya sudah memiliki kemampuan berorientasi object.

Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Dalam paradigma ini, sesuai dengan model kehidupan nyata, segala bagian (entiti) dari suatu permasalahan adalah objek. Objek-objek ini kemudian juga dapat berupa gabungan dari beberapa objek yang lebih kecil. Sebagai contoh, tengoklah sebuah mobil. Mobil adalah sebuah objek dalam kehidupan nyata. Namun mobil sendiri terbentuk dari beberapa objek yang lebih kecil seperti roda ban, mesin, jok, dll. Mobil sebagai objek yang merupakan gabungan dari objek yang lebih kecil dibentuk dengan membentuk hubungan antara objek-objek penyusunnya. Begitu juga dengan sebuah program. Objek besar dapat dibentuk dengan menggabungkan beberapa objek-objek dalam bahasa pemrograman. Objek-objek tersebut berkomunikasi dengan saling mengirim pesan kepada objek lain.

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. Semua benda yang ada di dunia ini meruapakan sebuah object. Tanah, gedung, kendaraan, meja, kursi, lemari dan alat-alat elektronik merupakan contoh-contoh object yang ada di dunia nyata. Setiap object memiliki dua karakteristik yaitu, atribut dan behavior. Atribut merupakan status object dan behavior merupakan tingkah laku dari object tersebut. Contoh sederhana adalah mobil. Object mobil memiliki atribut : bodi, mesin, roda, dan gigi, serta memiliki tingkah laku seperti kecepatan 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.

Ada beberapa istilah penting dalam OOP, seperti Kelas, Objek, Method, Enkapsulasi, Inheritance, Polimorfisme dan Interface.

Kelas
Dalam bahasa pemrograman java terdapat Kelas yang berbeda dengan Objek. Kelas merupakan prototipe yang mendefinisikan variabel dan method secara umum. Tetapi, Objek adalah hasil instansiasi dari suatu kelas. Objek-objek itu ditempatkan dalam suatu kelas tertentu dan diekspresikan dengan variable dan method. Objek-objek yang memiliki kondisi yang berbeda seperti mobil X pada gigi persneling posisi 4 dan mobil Z pada gigi persneling posisi 3 dapat disatukan dalam satu “class mobil” berdasarkan kondisi umum mobil yang dapat mengubah posisi gigi persnelingnya. Konsep OOP yang dipahami dengan baik dan benar oleh seorang pemrogram harus bisa membedakan antara Kelas dengan Objek.

Sebagai contoh, misalkan kita ingin membuat kelas Rumah, maka kita harus membuat sebuah kelas yang mendefinisikan semua variabel yang dimiliki objek dari kelas tersebut. Selain itu, kelas tersebut juga harus mendeklarasikan method-method yang dimiliki objek dari kelas dan juga membuat implementasi dari method tersebut. Dengan adanya kelas ini, kita dapat membuat sebanyak apapun objek-objek rumah yang sejenis, yaitu jenis yang didefinisikan oleh kelas Rumah. Setiap objek Rumah diciptakan, sistem akan mengalokasikan sejumlah memori untuk objek tersebut dan variabel-variabelnya. Dengan begitu setiap objek akan memiliki salinan masing-masing untuk setiap variabel instans.

Setelah mengenal konsep kelas, saatnya Anda dikenalkan dengan variabel kelas. Variabel kelas sebenarnya sama dengan variabel instans. Bedanya adalah, setiap objek berbagi satu dan hanya satu variabel kelas, tapi masing-masing memiliki salinan dari variabel instans. Misalkan kelas Rumah yang kita buat hanya akan mendukung 2 lantai, dan setiap objek Rumah terdiri atas 2 lantai. Maka informasi ini cukup disimpan satu kali, karena nilainya tidak berbeda untuk semua objek. Lebih jauh, bila ada satu objek yang mengubah nilai dari variabel kelas, maka semua objek sejenis lainnya akan mengikuti perubahan itu. Di samping variabel, terdapat juga method kelas. Method jenis ini dapat langsung dipanggil melalui kelas dan bukan dari instans kelas tersebut.

Objek
Baik dalam dunia nyata atau dalam sebuah program, sebuah objek memiliki dua karakteristik, yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dll. Sedang behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju, membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau lebih variabel, dan mengimplementasikan behaviournya dengan method.

Objek-objek yang bekerja sama membentuk suatu sistem harus saling berkomunikasi untuk menjalankan sistem tersebut. Dalam sebuah program, objek-objek berkomunikasi satu sama lain dengan mengirimkan pesan. Sebagai contoh, jika sebuah objek ingin memanggil method dari objek lain, maka objek ini akan mengirimkan sebuah pesan yang meminta objek tujuan untuk menjalankan method yang dikehendaki. Pesan ini akan berisi informasi-informasi yang dibutuhkan objek tujuan untuk dapat menunaikan permintaan tadi.

Sebuah pesan dibentuk oleh informasi berikut ini: 1) objek yang dituju; 2) nama method yang ingin dipanggil; 3) parameter yang dibutuhkan method tersebut. Misalnya:

anotherObject.aMethod(parameter1);

Bila sebuah objek ingin memanggil method miliknya sendiri, maka informasi pertama adalah dirinya sendiri. Untuk menunjuk diri sendiri dalam Java digunakan kata kunci this. Maka contoh sebelumnya akan menjadi:

this.aMethod(parameter1);

Atau kita dapat menghilangkan informasi pertama sehingga menjadi:

aMethod(parameter1);

karena bila informasi pertama tidak ada, kompiler akan secara otomatis menunjuk ke objek itu sendiri.

Ada dua keuntungan dalam penggunaan pesan, yaitu: 1) semua kebutuhan interaksi antarobjek dapat dilakukan; 2) objek-objek yang saling berinteraksi tidak harus berada dalam satu proses atau bahkan dalam satu komputer.

Method
Method adalah fungsi dan prosedur atau behavior dari sebuah object. Method akan mengolah atau mengubah data/variable yang ada di dalam objek sesuai operasi yang ditentukan. Pada saat terjadi proses mengolah data akan terjadi 3 kemungkinan yaitu:

Mengembalikan suatu nilai akhir
Mengembalikan nilai yang bersifat sementara untuk diumpankan ke method lain.
Tidak mengembalikan nilai sama sekali.
Contohnya pada mobil ada behavior seperti kecepatan, rem, nyalakan lampu depan dan lain-lain. Dalam bahasa java biasanya ditulis dengan coding seperti public void mobil. Contoh lain adalah Main Method seperti:

public static void main(String args[] ) {

< body Main Method>

}

Enkapsulasi
Konsep Enkapsulasi dalam pemrograman adalah pengkombinasian/pembungkusan antara data dan prosedur ataupun fungsi (method) yang memanipulasinya ke dalam sebuah object pada bagian yang terlindungi sehingga data-datanya tidak mudah diakses langsung dari luar. Manfaat dari enkapsulasi ialah kode sumber dari sebuah object dapat dikelola secara independen dari kode object yang lain. Selain itu, dengan enkapsulasi kita bisa menyembunyikan informasi-informasi yang tidak perlu diketahui oleh object lain. Enkapsulasi merupakan salah satu karakteristik utama dalam konsep OOP.

Konsep ini menentukan tingkat aksesibilitas dari masing-masing data dan method serta menyembunyikan detail implementasi dari luar dikenal Information Hiding.

Ada beberapa keuntungan menerapkan prinsip enkapsulasi yaitu:

Memiliki sifat bebas, sehingga dapat digunakan pada bagian manapun dari program tidak terkait pada bagian tertentu program.
Memiliki sifat transparan, bila menlakukan modifikasi maka perubahan akan dirasakan oleh bagian program yang menggunakan modul tersebut.
Menghindari efek diluar perencanaan, dengan demikian akan mereduksi kemungkinan adanya hasil imbas pemrosesan yang di luar perencanaan semula.
Inheritance
Konsep Inheritance dalam OOP berdasarkan kamus bahasa Inggris berarti warisan, sesuai dengan artinya Inheritance adalah pewarisan atribut atau method pada sebuah class yang diperoleh dari sebuah class yang terdefinisi sebelumnya. Sebagai contoh, class mobil mewarisi atribut dari class kendaraan sehingga class mobil juga memiliki atribut-atribut seperti roda, gigi, dan kecepatan. Tetapi mobil memiliki atribut-atribut baru seperti bahan bakar, nomor polisi, kapasitas mesin dan lain-lain.

Kelas yang mewariskan disebut Kelas Super, kelas yang diwariskan disebut Subkelas. Konsep inheritance memberi kemudahan dalam mengelola kelas yang memiliki data dan method yang sama.

Polimorfisme
Ada konsep lainnya dalam OOP yaitu Polimorfisme. Polimorfisme merupakan suatu sifat yang memungkinkan nama method yang sama dapat melakukan tindakan yang berbeda. Contohnya ialah method roda yang terdapat pada mobil dan sepeda motor. Ingat bahwa mobil adalah kelas turunan dari kendaraan. Method roda pada kedua kelas sama-sama untuk menjalankan kendaraan. Namun roda pada mobil berbeda dengan roda pada sepeda motor. Roda pada mobil berjalan memakai empat roda tanpa keseimbangan pengendaranya, sedangkan roda pada sepeda motor berjalan memakai dua roda dengan keseimbangan si pengendaranya. Keduanya menggunakan nama yang sama yaitu roda, namun ternyata merujuk pada pekerjaan spesifik yang berbeda.

Interface
Arti harfiah dari interface adalah antarmuka, yaitu suatu alat untuk digunakan benda-benda yang tidak terhubung secara langsung untuk berinteraksi. Dalam bahasa pemrograman, interface digunakan oleh berbagai objek yang tidak terhubung untuk saling berinteraksi. Jadi dalam bahasa pemrograman, interface dapat didefinisikan sebagai koleksi 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.

Sebelumnya telah dijelaskan bahwa 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 halangan yang tidak menyenangkan, yaitu saat kita membutuhkan suatu kelas yang memiliki sifat-sifat dari dua atau lebih kelas lain. Pada masalah seperti ini, interface dapat memberikan alternatif jalan keluar.

Dengan adanya interface maka beberapa kelas akan dapat menangani interaksi yang sama namun dengan behaviour yang bisa berbeda. Misalnya beberapa kelas mengimplementasi sebuah interface yang sama, maka kelas-kelas tersebut dapat menangani interaksi sesuai interface tersebut, namun tiap kelas dapat memiliki implementasi yang berbeda-beda.

Begitu juga bila sebuah kelas mengimplementasi banyak interface, maka kelas tersebut akan dapat menangani interaksi-interaksi sesuai salah satu interface yang diimplement oleh kelas tersebut. Namun, kelas tersebut harus mengimplementasi sendiri behaviournya. Di sinilah letak perbedaan penggunaan interface dengan multiple inheritance. Dalam multiple inheritance, layaknya single inheritance, subkelas tidak harus mengimplementasikan sendiri behaviournya karena secara default kelas tersebut akan mengikuti behaviour superkelasnya.

Kompiler Java

Kompiler Java akan memproduksi sebuah file keluaran arsitektur netral yang akan jalan pada berbagai implementasi dari Java Virtual Machine (JVM). Dalam bahasa pemrograman java contoh class dapat dilihat dari hasil kompilasi program java misalnya: mobil.java menjadi mobil.class, di mana di dalam codingnya terdapat public class mobil. Sedangkan objectnya ada di dalam public class mobil.

Setiap bahasa pemrograman terdapat kompiler yang mengkompilasi program yang berisi coding. Khusus compiler pemrograman java ada di dalam j2sdk atau J2SE yang terletak di folder bin dengan nama file: javac.exe dan java.exe. Jika kita menggunakan tool java seperti Netbeans, maka kita dapat langsung mengkompilasi dan menjalankan program dengan memilih Built & Run.

Kesimpulannya, pemrograman dengan konsep OOP diunggulkan sebagai cara pemrograman yang dapat mengatasi kerumitan dalam membuat sebuah program. Pada masa sekarang kebanyakan program yang dibuat berukuran besar sehingga sangat sukar untuk dimodifikasi dan di-maintenance. Banyak waktu yang tersita untuk memelihara program-program seperti ini. Dengan menggunakan konsep OOP hal ini dapat diatasi karena program akan menjadi mudah dirancang, dipelihara dan dikembangkan, serta mudah dipakai kembali (dikembangkan) untuk membuat program lain.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar