A.
Polimorphism
Kadangkala pada class yang sama(pada satu kelas) mempunyai
nama operation yang sama. Sebagai contoh operation (method/fungsi) 'buka' bisa
dipakai untuk membuka pintu, membuka jendela, membuka buku, membuka seminar dan
lain-lain. Meski kedengarannya sama, sebenarnya apa yang dilakukan berbeda.
Konsep inilah yang disebut dengan polimorphisme.
Polimorfisme (polymophism) atau yang disebut juga dengan kebanyak
rupaan adalah kemampuan program untuk mengungkap banyak hal berbeda dengan cara
yang sama. Polimorphisme adalah konsep yang sangat handal bagi pengembang
perangkat lunak untuk pemisahan secara jelas diantara sub sistem yang berbeda. Dengan
dimikian sebuah sistem akan bisa dimodifikasi secara mudah karena hanya
dibutuhkan interface antar class. Sebagai contoh kita bisa membuat operation
'hitungGaji'. Operation 'hitungGaji' ini bisa dipakai untuk menghitung gaji
semua pegawai, baik pegawai tetap, pegawai paruh waktu maupun pegawai kontrak.
Dengan konsep polomorphisme kita bisa menghitung gaji masing-masing pegawai.
Sekedar iliustrasi, untuk menghitung gaji karyawan tetap jelas akan
memperhitungkan jabatan dan golongan. Sedangkan untuk pegawai paruh waktu akan
memperhitungkan jumlah jam kerja. Adapun untuk pegawai kontrak tidak ada
tunjangan pensiun.
Polimorfisme bisa disamakan dengan overload method,
dimana sebuah class terdapat beberapa metodhs dengan nama yang sama (biasanya
hanya berbeda dalam jumlah atau tipe data parameternya)
Overloading method adalah dimungkinkan mendefinisikan dua method
atau lebih dengan nama yang sama di dalam satu kelas sepanjang
deklarasi-deklarasi parameternya berbeda. Di dalam istilah orientasi object
disebut berbeda dalam penanda (signatuer). Asalkan deklarasi method membuat
penanda berbeda di satu kelas maka keberadaan metode itu diperbolehkan. Penanda
adalah kombinasi nama fungsi/method ditambah daftar parameter. Dengan penanda
berbeda, Java mampu membedakan metode mana yang perlu dieksekusi dengan
mengenali tipe paremeter-parameter yang dilewatkan. Overloading dalam method merupakan fitur penting dan berguna di
bahasa Java, Overloading method digunakan untuk method sama yang melakukan
tugas-tugas serupa namun berbeda tipe argumen-nya
B.
Inheritance
Inheritance atau pewarisan pada pemrograman berorientasi objek merupakan suatu
hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki
atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode
tambahan yang merupakan sifat khusus kelas yang menjadi turunannya.
Keuntungan dari pewarisan adalah tidak perlu mengutak atik kode
kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal
membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar
akan mewariskan semua atribut dan kodenya kecuali konstruktor dan destruktor
yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang
sama dengan pada kelas dasar.
Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka
secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian
konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka
secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas
dasar dijalankan.
Pada dasarnya, kita melakukan
inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass)
yang masih memiliki sifat atau spesifikasi dari superclass. Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan
dengan cara menambahkan kata kunci extends setelah deklarasi nama class,
kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut
memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
➤ Java hanya memperkenankan adanya single inheritance.
Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu
parent class. Dengan konsep single inheritance ini, masalah pewarisan akan
dapat diamati dengan mudah.
➤ Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
➤ Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan). Di dalam java, kontrol pengaksesan dapat digambarkan dalam tabel berikut ini:
➤ Kata kunci super dipakai untuk merujuk pada
member dari parent class, sebagaimana kata kunci this yang dipakai untuk
merujuk pada member dari class itu sendiri. Adapun format penulisannya adalah
sebagai berikut:
super.data_member -> merujuk pada data member pada parent classsuper.function_member() -> merujuk pada function member pada parent classsuper() -> merujuk pada konstruktor pada parent class
C. Class dan Object
Class merupakan suatu blueprint atau cetakan untuk
menciptakan suatu instant dari object. class juga merupakan grup suatu
object dengan kemiripan attributes/properties, behaviour dan relasi ke
object lain.
Contoh : Class kotak, persegi,
Tree, Fruit dan lain-lain.
Object adalah instance dari class. Jika class secara umum
merepresentasikan (template) sebuah object, sebuah instance adalah
representasi nyata dari class itu sendiri.
Contoh : Dari class Fruit kita
dapat membuat object Mangga, Pisang, Apel dan lainlain.
Membuat Object
Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut.
- String str = new String();
- Random r = new Random();
- Pegawai p2 = new PEgawai();
- Date hari = new Date();
Hari adalah object reference dari class Date yang akan
digunakan untuk mengakses class Date. Sedangkan operator new adalah
operator yang akan menghasilkan hari sebagai reference ke instance dari
class Date().
Attributes merupakan nilai data yang terdapat pada suatu
object yang berasal dari class. Attributes merepresentasikan karakteristik
dari suatu object.
Contoh : pada Class Fruit
terdapat attribute : warna, berat pada object mangga :
warna berisi kuning dan berat
misalkan 0.25 kg pada object apel : warna berisi merah dan berat misalkan
0.30 kg
Method merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan
oleh suatu object. Method didefinisikan pada class akan tetapi dipanggil
melalui object.
Contoh : pada object mangga : terdapat method ambilRasa , kupasKulit dan
lain-lain.
METHOD
Metode menentukan perilaku objek, yakni apa yang terjadi ketika objek itu dibuat
serta berbagai operasi yang dapat dilakukan objek sepanjang hidupnya.
Metode memiliki 4 (empat) bagian dasar :
Metode memiliki 4 (empat) bagian dasar :
- Nama metode
- Tipe Objek atau tipe primitive yang dikembalikan
metode.
- Daftar parameter.
- Badan atau isi metode.
Tiga bagian pertama mengindikasikan informasi penting tentang metode itu
sendiri. Dengan kata lain, nama metode tersebut=metode lain dalam program.
Dalam java kita dapat memiliki metode-metode berbeda yang memiliki nama
sama tetapi berbeda tipe kembalian atau daftar argumennya, sehingga
bagian-bagian definisi metode ini menjadi penting. Ini disebut overloading
metode. Untuk menjalankan program yang memiliki sifat polymorphism
tersebut, diperlukan suatu kemampuan overloading, yaitu suatu
kemampuan untuk menentukan fungsi yang mana yang harus digunakan atau
dijalankan jika terdapat nama fungsi yang sama.
Polimorfisme bisa diartikan seperti kemampuan suatu variable untuk mengubah perangai
sesuai dengan objek hasil instansiasi yang digunakan.
Polimorfisme membiarkan lebih dari 1 objek dari sub class sub class
dan diperlakukan sebagai objek dari super class tunggal
Contoh:
Contoh:
- Mahasiswa cowok = new anakSI();
- cowok.methodKU( Bernaz );
- Mahasiswa cewek = new anakTI();
- cewek.mothodKU( Amelia );
Outputnya:
- Methodku dengan parameter dengan nilai Bernaz di
class anakSI telah dipanggil
- Methodku dengan parameter dengan nilai Amelia di
class anakTI telah dipanggil
Untuk lebih
jelas tentang class dan object, kita perhatikan penjelasan berikut ini :
Bayangkan
kita sedang menyetir mobil dan dan ingin melaju lebih cepat dengan menginjak
pedal gas lebih dalam. Apa yang perlu dilakukan dahulu sebelum semua ini
terjadi? Sebelum kita bisa menyetir mobil, terlebih dahulu seseorang harus
mendesain mobil yang akan kita setir. Sebuah mobil awalnya hanya berupa sebuah
desain/sketsa/blueprint, sama seperti blueprint saat kita ingin membangun
rumah. Dalam desain ini termasuk ketentuan perilaku mobil, seperti "jika
kita injak pedal gas lebih dalam, maka mobil akan melaju lebih cepat".
Dalam pedal gas ini tersembunyi mekanisme yang kompleks yang bisa membuat mobil
melaju lebih cepat.
Ketika desain mobil sudah jadi, urusan belum selesai, karena kita tidak bisa menyetir desain mobil. Sebelum kita bisa mengendarainya, sebuah mobil harus kita cetak/produksi berdasarkan desain yang telah dibuat. Sebuah mobil jadi akan mempunyai sebuah pedal gas yang asli(fisiknya ada) untuk mempercepat laju mobil. Tapi adanya pedal gas ini saja tidak cukup, mobil tidak bisa mempercepat lajunya sendiri. Untuk mempercepat laju mobil kita harus menginjak pedal gas tersebut.
Sekarang kita gunakan analogi mobil tersebut untuk menjelaskan konsep kelas dan objek dalam java.
Untuk melakukan sesuatu dalam suatu program, kita membutuhkan method. Method ini berisi deskripsi mekanisme bagaimana kita melakukan sesuatu. Akan tetapi deskripsi mekanisme ini akan disembunyikan dari pengguna/user persis sama seperti sebuah pedal gas yang didalamnya tersembunyi mekanisme yang kompleks yang membuat mobil melaju lebih cepat.
Dalam java, kita mulai pemrograman dengan membuat unit program yang dinamakan kelas. Kelas ini digunakan untuk menampung method-method, persis seperti sebuah desain/blueprint mobil. Kemudian, sama seperti kita tidak bisa menyetir desain mobil, kita juga tidak bisa menjalankan kelas. Sama halnya jika kita harus mencetak/memproduksi mobil sebelum mengendarainya, kita juga harus membentuk sebuah objek terlebih dahulu dari kelas yang sudah dibuat supaya kita bisa menjalankan fungsi-fungsi program yang telah dideskripsikan dalam kelas. Inilah mengapa Java terkenal dengan bahasa pemrograman berorientasi objek.
Saat menyetir mobil, menginjak pedal gas akan mengirimkan pesan ke mobil supaya melaju lebih cepat. Sama dengan hal tersebut, kita harus memanggil method terlebih dahulu untuk dapat menjalankan fungsionalitasnya.
Kesimpulannya, secara singkat kelas dapat dianalogikan sebagai desain/blueprint sebuah mobil, dan objek dapat dianalogikan sebagai sebuah mobil jadi yang dicetak berdasarkan desain/blueprint.
Ketika desain mobil sudah jadi, urusan belum selesai, karena kita tidak bisa menyetir desain mobil. Sebelum kita bisa mengendarainya, sebuah mobil harus kita cetak/produksi berdasarkan desain yang telah dibuat. Sebuah mobil jadi akan mempunyai sebuah pedal gas yang asli(fisiknya ada) untuk mempercepat laju mobil. Tapi adanya pedal gas ini saja tidak cukup, mobil tidak bisa mempercepat lajunya sendiri. Untuk mempercepat laju mobil kita harus menginjak pedal gas tersebut.
Sekarang kita gunakan analogi mobil tersebut untuk menjelaskan konsep kelas dan objek dalam java.
Untuk melakukan sesuatu dalam suatu program, kita membutuhkan method. Method ini berisi deskripsi mekanisme bagaimana kita melakukan sesuatu. Akan tetapi deskripsi mekanisme ini akan disembunyikan dari pengguna/user persis sama seperti sebuah pedal gas yang didalamnya tersembunyi mekanisme yang kompleks yang membuat mobil melaju lebih cepat.
Dalam java, kita mulai pemrograman dengan membuat unit program yang dinamakan kelas. Kelas ini digunakan untuk menampung method-method, persis seperti sebuah desain/blueprint mobil. Kemudian, sama seperti kita tidak bisa menyetir desain mobil, kita juga tidak bisa menjalankan kelas. Sama halnya jika kita harus mencetak/memproduksi mobil sebelum mengendarainya, kita juga harus membentuk sebuah objek terlebih dahulu dari kelas yang sudah dibuat supaya kita bisa menjalankan fungsi-fungsi program yang telah dideskripsikan dalam kelas. Inilah mengapa Java terkenal dengan bahasa pemrograman berorientasi objek.
Saat menyetir mobil, menginjak pedal gas akan mengirimkan pesan ke mobil supaya melaju lebih cepat. Sama dengan hal tersebut, kita harus memanggil method terlebih dahulu untuk dapat menjalankan fungsionalitasnya.
Kesimpulannya, secara singkat kelas dapat dianalogikan sebagai desain/blueprint sebuah mobil, dan objek dapat dianalogikan sebagai sebuah mobil jadi yang dicetak berdasarkan desain/blueprint.
0 komentar
Posting Komentar
Kritik dan Saran Anda sangat kami perlukan