Jumat, 28 September 2018

Class dan Object Pada Java

class dan object pada java

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.

Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :

➤ 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:

parent class java

➤ 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 :
  1. Nama metode
  2. Tipe Objek atau tipe primitive yang dikembalikan metode.
  3. Daftar parameter.
  4. 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:
  • 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.

0 komentar

Posting Komentar

Kritik dan Saran Anda sangat kami perlukan