Bocah Super Sakti ................

Saturday, October 02, 2010

PEMEROGRAMAN BERORIENTASI OBJEK ( OBJECT ORIENTED PROGRAMMING )

Pemerograman berorientasi objek sangat ampuh dan merupakan paradigm alami untuk membuat program yang dapat bertahan terhadap kemungkinan perubahan yang berkaitan dengan pertumbuhan dan pertambahan umur system apapun. Karena dengan OOP anda telah memahami fungsi masing2 objek dan memiliki antar muka yang jelas dan layak antar objek. Anda dapat mengatur ulang bagian bagian dari system yang lama tampa takut –takut. Para guru besar ilmu computer mengajarkan mahasiswa mereka untuk berpikir berorientasi object selama bertahun tahun. Sebelum mereka belajar bahasa pemerograman dimana secara langsung mereka menerapkan konsep tersebut. Pendekatan ini di sebut rancangan atas-bawah ( top-down design ). Anda di ajari untuk memikirkan masalah pertama kali dengan bentuk yang paling abstrak, baru kemudian mendifinikan subrutin yang berkaitan dengan implementasi yang lebih konkrit. Anda juga di ajari untuk menghindari pembuatan variabel global dan melewatkan pointer ke dalam struktur .
Bahasa berorientasi object sejati menyediakan mekanisme yang di kenal sebagai Enkapsulasi, Inheritansi dan polimorfisme.
Sekarang liat difinisi masing2

Enkapsulasi
Semau program dalam tingkat paling sederhana terdiri dari dua hal: program dan data. Pada model pemerograman tradisional data di alokasikan pada memori dan diolah oleh program yang ada di dalam subrutin atau fungsi. Enkapsulasi program yang mengolah data dengan deklarasi dan penyimpanan data adalah kunci dari rancangan berorientasi objek.
Enkapsulasi dapat di artikan sebagai bungkusan(wrapper) pelindung, program dan data yang sedang di olah. Pembungkusan ini mendefinisikan prilaku dan melindungi program dan data agar tidak di akses sembarangan oleh program lain. Contoh dalam dunia nyata, transmisi otomatis pada mobil mengenkapsulasi ribuan keping informasi dari mesin, seperti percepatan, kemiringan tanjakan dan posisi persenaling. Anda sebagai supir, cukup melaukan satu hal untuk mempengaruhi enkapsulasi yang rumit ini : memindahkan tuas perseneling . anda tidak dapat mempengaruhi transmisi dengan menyalakan lampu sein atau wiper. Keampuhan enkapsulasi program adalah setiap orang tahu cara mengaksesnya , sehungga dapat menggunakannya tanpa harus mengerti implementasinya secara terperinci.
Pada java dasar enkapsulasi adalah class. Anda membuat suatu class yang menyatakan abstaksi dari sekelompok objek yang berbagi struktur dan sifat yang sama. Objek adalah keadaan tertentu suatu class yang mempertahankan struktur dan sifat sebagimana didefinisikan oleh class tersebut, seolah olah keluar dari cetakan class yang sama. Objek – objek ini sering di sebut sebagai instans dari class. Struktur tertentu atau representsi data dari suatu class didefinisikan oleh sekumpulan variabel instans. Variabel – variabel ini menyimpan keadaan dinamis setiap instans suatu class. Sifat dan antarmuka suatu class di definisikan dengan method yang beroperasi pada data instans tersebut. Method adalah perintah untuk melakukan beberapa aksi terhadap sebuah objek. Perintah ini sangat mirip dengan pemanggilan subrutin dalam bahasa prosedurial.

Karena tujuannya mengenkapsulasi kerumitan, maka ada mekanisme untuk menyembunyikan kerumitan implementasi dalam class. Setiap method atau variabel dalam class dapat jadi private atau public . Antarmuka public suatu class menunjukan semua yang perlu atau harus di ketahui oleh pemakai. Anda dapat menyatakan method dan data instans sebagai private sehingga tidak dapat di akses oleh program lain diluar implementasi class anda. Antarmuka public harus dipilih dengan hati-hati supaya tidak membuka terlalu banyak bagian dalam class. Enkapsulasi ini bekerja dua arah. Karena anda yakin tidak akan secara tidak sengaja mempengaruhi bagian lain system dengan program dan data private. Anda dapat membuat program dan dengan bebas dan nyaman dan menelusuri program dengan penuh kepastian.

Apa beda class dengan instans? Class adalah sesuatu yang menjelaskan atribut dan umum sebuah objek, termasuk tipe setiap atribut method yang dapat mengoprasikan objek tersebut. Sebuah instans adalah keadaan tertentu sebuah class objek. Jika seekor kucing mempunyai 4 ekor anak, dia membuat class instans baru dari class kucing. Setiap anak kucing memiliki himpunan variabel nya sendiri yang didefinisikan dengan class. Beberapa hitam yang lain nya coklat dan sisanya putih. Beberap jantan, dan yang lain betina. Tetapi semuanya tetap kucing.

Inheritansi
Sebagian besar kita melihat lingkungan kita sebagai objek yang saling terhubung secara hirarki, misalkan binatang, mamalia dan anjing . Jika kita ingin menggambar binatang secara garis besar, kita dapat mengatakan binatang memiliki ciri-ciri tertentu, misalkan ukuran, kecerdasan dan jenis system kerangka tulangnya. Binatang juga memiliki aspek prilaku tertentu; mereka makan, bernafas dan tidur. Penjelasan tentang struktur tubuh dan prilaku ini adalah penjelasan class binatang.

Jika anda ingin menjelaskan lebih rinci suatu class binatang, misalkan mamalia , maka harus memiliki cirri-ciri antara lain, misalkan jenis gigi dan periode kehamilan. Ini di kenal sebagai sub-class dari binatang. Dimana binatang adalah super-class dari mamalia.

Karena mamalia secara sederhana lebih tepat di khususkan sebagai suatu kelompok binatang, maka mamalia mewarisi(inherit) semua cirri-ciri binatang. Secara lebih mendalam penurunan subclass di turunkan dari setiap moyangnya dalam hirarki class.

Inheritasi juga berintraksi dengan enkapsulasi . Jika suatu class tertentu mengenkapsulasi sejumlah atribut, maka sub-class manapun akan memiliki atribut yang sama ditambah dengan bagian dari specialisasinya . ini adalah konsep kunci yang membuat kerumitan program berorientasi objek berkembang secara linier, tidak geometris. Sub –class yang baru mencakup semua prilaku dan spesifikasi moyang nya . Sub-class tersebut tidak memiliki interaksi tak terduga dengan sebagian besar bagian program di system.

Polimorfisme
Method pada objek adalah informasi yang dilewatkan sebagai parameter untuk permintaan method. Parameter ini mewakili nilai yang dimasukan ke suatu dan harus di kerjakan oleh suatu method.

Pada bahasa pemerograman fungsional yang lain, untuk melengkapi dua pekerjaan yang berbeda, diperlukan dua fungsi yang berbeda. Polimorfisme yang berarti satu objek dengan banyak bentuk adalah konsep sederhana yang memperbolehkan method memiliki beberapa implementasi yang dipilih berdasarkan type objek yang dilewatkan pada pengerjaan method. Ini dekenal dengan overloading method. Ini memungkinkan method yang sama untuk kucing, misalnya memperlihatkan prilaku yang benar- benar berbeda.
Pada suatu saat method smell mengambil parameter kucing, yang menyebabkan anjing mengongong dan mengejar kucing. Method lain di beri nama smell juga, mengambil objek makanan sebagai parameter nya, akan menyebabkan anjing meneteskan air liurnya dan mencari mangkuk makanannya.

Overridding
Overloading sebuah method adalah cara class tunggal mengurusi tipe yang berbeda dengan cara sama. Cara tersebut static karena implementor suatu class perlu mengetahui semua tipe yang akan di hadapi agar dapat menulis suatu metode. Pada beberapa kasus, hal ini sangat di harapkandan kenyataanya menjadikan program lebih jelasdan mudah diramalkan. Namun menjadi tidak fleksibel, karena lebih sering di inginkan untuk memaksimalkan sebuah lingkungan setelah sejumlah program tidak lagi bekerja tidak ada program sama sekali. Pembuatan sub-class memungkinkan kita untuk mengunakan polimorfisme pada program yang sedang berjalan secara lebih dinamis. Jika anda mendifinisikan sub-class anjing anda dapat mengoverride( memaksa) method smell pada anjing untuk melaukan hal yang berbeda. Karena semua sub-class anjing dapat di lewat kan sebagai anjing, maka pemakai method smell tidak akan tahu bahwa yang di eksekusi adalah kelakuan polimorfisme.

Sumber : JAVA HANDBOOK – Patrick Naugthon



Labels:

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]



<< Home