Skip to main content

MENEJEMEN INFORMATIKA




Pewarisan, Polimorfisme, dan Interface

1.              Pewarisan
Dalam  Java,  semua  class,  termasuk  class  yang  membangun  Java  API,  adalah  subclasses dari superclass Object. Contoh hirarki class diperlihatkan di bawah ini. 
Beberapa  class  di  atas  class  utama  dalam  hirarki  class  dikenal  sebagai  superclass. Sementara  beberapa  class  di  bawah  class  pokok  dalam  hirarki  class  dikenal  sebagai subclass dari class tersebut.
Pewarisan  adalah  keuntungan  besar  dalam  pemrograman  berbasis  object  karena  suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua  subclasses.  Jadi,  Anda  dapat  menuliskan  kode  method  hanya  sekali  dan  mereka dapat  digunakan  oleh  semua  subclass.  Subclass  hanya  perlu  mengimplementasikan perbedaannya sendiri dan induknya.

Mendefinisikan superclass dan subclass
Untuk  memperoleh  suatu  class,  kita  menggunakan  kata  kunci  extend.  Untuk mengilustrasikan  ini,  kita  akan  membuat  contoh  class  induk.  Dimisalkan  kita  mempunyai class induk yang dinamakan Person.

Perhatikan bahwa atribut name dan address dideklarasikan sebagai protected. Alasannya kita melakukan ini yaitu, kita inginkan atribut-atribut ini untuk bisa diakses oleh subclasses dari  superclassess.  Jika  kita  mendeklarasikannya  sebagai  private,  subclasses  tidak  dapat menggunakannya.  Catatan  bahwa  semua  properti  dari  superclass  yang  dideklarasikan sebagai public, protected dan default dapat diakses oleh subclasses-nya.
Sekarang,  kita  ingin  membuat  class  lain  bernama  Student.  Karena  Student  juga  sebagai Person,  kita  putuskan  hanya  meng-extend  class  Person,  sehingga  kita  dapat  mewariskan semua  properti  dan  method  dari  setiap  class  Person  yang  ada.  Untuk  melakukan  ini,  kita tulis,

Ketika  object  Student  di-instantiate,  default  constructor  dari  superclass  secara  mutlak meminta  untuk  melakukan  inisialisasi  yang  seharusnya.  Setelah  itu,  pernyataan  di  dalam subclass dieksekusi. Untuk mengilustrasikannya, perhatikan kode berikut,
Dalam  kode  ini,  kita  membuat  sebuah  object  dari  class  Student.  Keluaran  dari  program adalah, 
Alur program ditunjukkan sebagai berikut.






Kata Kunci Super
Subclass juga dapat memanggil constructor secara eksplisit dari superclass terdekat. Hal ini dilakukan  dengan  pemanggil  construktor  super.  Pemanggil  constructor  super  dalam constructor  dari  subclass  akan  menghasilkan  eksekusi  dari  superclass  constructor  yang bersangkutan, berdasar dari argumen sebelumnya.
Sebagai contoh, pada contoh class sebelumnya. Person dan Student, kita tunjukkan contoh dari pemanggil constructor super. Diberikan kode berikut untuk Student,
  
  public Student(){
                    super( "SomeName", "SomeAddress" ); 
                    System.out.println("Inside Student:Constructor");  
  }

Kode  ini  memanggil  constructor  kedua  dari  superclass  terdekat  (yaitu  Person)  dan
mengeksekusinya. Contoh kode lain ditunjukkan sebagai berikut,

public Student(){
                    super();  
                    System.out.println("Inside Student:Constructor");
}
Kode  ini  memanggil  default  constructor  dari  superclass  terdekat  (yaitu  Person)  dan
mengeksekusinya. 
Ada beberapa hal yang harus diingat ketika menggunakan pemanggil constuktor super: 
1.  Pemanggil super() HARUS DIJADIKAN PERNYATAAN PERTAMA DALAM constructor.
2.  Pemanggil super() hanya dapat digunakan dalam definisi constructor.
3.  Termasuk  constructor  this()  dan  pemanggil  super()  TIDAK  BOLEH  TERJADI  DALAM
constructor YANG SAMA.
Pemakaian  lain  dari  super  adalah  untuk  menunjuk  anggota  dari  superclass(seperti
reference this). Sebagai contoh,
public Student()
{
                    super.name = “somename”;
                    super.address = “some address”;
  }




Overriding Method
Untuk  beberapa  pertimbangan,  terkadang  class  asal  perlu  mempunyai  implementasi
berbeda  dari  method  yang  khusus  dari  superclass    tersebut.  Oleh  karena  itulah,  method overriding digunakan. Subclass dapat mengesampingkan method yang didefinisikan dalam superclass dengan menyediakan implementasi baru dari method tersebut.
Misalnya  kita  mempunyai  implementasi  berikut  untuk  method  getName  dalam  superclass Person,

public class Person {
  :
  :
  public String getName(){
    System.out.println("Parent: getName");  
    return name;  
  }
  :
}

Untuk override, method getName dalam subclass Student, kita tulis,
                    public class Student extends Person {
  :
  :
  public String getName(){
                System.out.println("Student: getName")   
return name;  
 }
 :
}

Jadi,  ketika  kita  meminta  method  getName  dari  object  class  Student,  method  overridde akan dipanggil, keluarannya akan menjadi, 
                                Student: getName


Method Final dan class final
Dalam  Java,  juga  memungkinkan  untuk  mendeklarasikan  class-class  yang  tidak  lama menjadi  subclass.  Class  ini  dinamakan  class  final.  Untuk  mendeklarasikan  class  untuk menjadi  final  kita  hanya  menambahkan  kata  kunci  final  dalam  deklarasi  class.  Sebagai contoh, jika kita ingin class Person untuk dideklarasikan final, kita tulis,   
  public final class Person {
  //area kode
 }
Beberapa class dalam Java API dideklarasikan secara final untuk memastikan sifatnya tidak dapat di-override. Contoh-contoh dari class ini adalah Integer, Double, dan String. Ini memungkinkan dalam Java membuat method yang tidak dapat di-override. Method ini dapat kita panggil method final. Untuk mendeklarasikan method untuk menjadi final, kita tambahkan kata kunci final ke dalam deklarasi method. Contohnya, jika kita ingin method getName dalam class Person untuk dideklarasikan final, kita tulis,    
               public final String getName(){
                                return name; 
}

Method  static  juga  secara  otomatis  final.  Ini  artinya  Anda  tidak  dapat  membuatnya override.
2.            Polimorfisme
Sekarang,  class  induk  Person  dan  subclass  Student  dari  contoh  sebelumnya,  kita tambahkan subclass lain dari Person yaitu Employee. Di bawah ini adalah hierarkinya,
Dalam Java, kita dapat membuat referensi yang merupakan tipe dari superclass ke sebuah object dari subclass tersebut. Sebagai contohnya,
Sekarang  dimisalkan  kita  punya  method  getName  dalam  superclass  Person  kita,  dan  kitaoverride method ini dalam kedua subclasses Student dan Employee,
Kembali  ke  method  utama  kita,  ketika  kita  mencoba  memanggil  method  getName  dari reference Person ref, method getName dari object Student akan dipanggil. Sekarang, jika kita berikan ref ke object Employee, method getName dari Employee akan dipanggil.
Kemampuan dari reference untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan  polimorfisme.  Polimorfisme  menyediakan  multiobject  dari  subclasses  yang berbeda  untuk  diperlakukan  sebagai  object  dari  superclass  tunggal,  secara  otomatis menunjuk  method  yang  tepat  untuk  menggunakannya  ke  particular  object  berdasar subclass yang termasuk di dalamnya.
Contoh  lain  yang  menunjukkan  properti  polimorfisme  adalah  ketika  kita  mencoba  melalui reference  ke  method.  Misalkan  kita  punya  method  static  printInformation  yang mengakibatkan  object  Person  sebagai  reference,  kita  dapat  me-reference  dari  tipe Employee dan tipe Student ke method ini selama itu masih subclass dari class Person.



3.            Abstract Class
Misalnya  kita  ingin  membuat  superclass  yang  mempunyai  method  tertentu  yang  berisi implementasi, dan juga beberapa method yang akan di-overridden oleh subclasses nya.
Sebagai contoh, kita akan membuat superclass bernama LivingThing. class ini mempunyai method tertentu seperti breath, eat, sleep, dan walk. Akan tetapi, ada beberapa method di dalam superclass yang sifatnya tidak dapat digeneralisasi. Kita ambil contoh, method walk. Tidak  semua  kehidupan  berjalan(walk)  dalam  cara  yang  sama.  Ambil  manusia  sebagai misal,  kita  manusia  berjalan  dengan  dua  kaki,  dimana  kehidupan  lainnya  seperti  anjing berjalan  dengan  empat  kaki.  Akan  tetapi,  beberapa  ciri  umum  dalam  kehidupan  sudah biasa, itulah kenapa kita inginkan membuat superclass umum dalam hal ini.
Kita  dapat  membuat  superclass yang  mempunyai  beberapa method  dengan  implementasi sedangkan yang lain tidak. Class jenis ini yang disebut dengan class abstract. 
Sebuah class abstract  adalah  class  yang  tidak  dapat di-instantiate.  Seringkali  muncul  di atas hirarki class pemrograman berbasis object, dan mendefinisikan keseluruhan aksi yang mungkin pada object dari seluruh subclasses dalam class. 
Method  ini  dalam  class  abstract  yang  tidak  mempunyai  implementasi  dinamakan  method abstract. Untuk membuat method abstract, tinggal menulis deklarasi method tanpa tubuh class dan digunakan menggunakan kata kunci abstract. Contohnya,
Sekarang mari membuat contoh class abstract.

Ketika  class  meng-extend  class  abstract  LivingThing,  dibutuhkan  untuk  override  method abstract  walk(),  atau  lainnya,  juga  subclass  akan  menjadi  class  abstract,  oleh  karena  itu tidak dapat di-instantiate. Contohnya,

Jika  class  Human  tidak  dapat  overridde  method  walk,  kita  akan  menemui  pesan  error berikut ini,





4.            Interface
Interface adalah jenis khusus dari blok yang hanya berisi method signature (atau constant).  Interface mendefinisikan tanda (signature) dari sebuah kumpulan method tanpa tubuh.  Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class,  untuk  mengimplementasikan  sifat-sifat  yang  umum.  Dengan  catatan  bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method  interface  dan  versi yang tepat  dari method  yang  akan  dieksekusi  tergantung  dari tipe object yang melewati pemanggil method interface.

Mengapa menggunakan interface
Kita  akan  menggunakan  interface  jika  kita  ingin  class  yang  tidak  berhubungan mengimplementasikan  method  yang  sama.  Melalui  interface-interface,  kita  dapat menangkap  kemiripan  diantara  class  yang  tidak  berhubungan  tanpa  membuatnya  seolah-olah class yang berhubungan.
Mari  kita  ambil  contoh  class  Line  dimana  berisi  method  yang  menghitung  panjang  dari garis dan membandingkan object Line ke object dari class yang sama. Sekarang, misalkan kita  punya  class  yang  lain  yaitu  MyInteger  dimana  berisi  method  yang  membandingkan object  MyInteger  ke  object  dari  class  yang  sama.  Seperti  yang  kita  lihat  disini,  kedua class-class mempunyai method yang mirip dimana membandingkan mereka dari object lain dalam  tipe  yang  sama,  tetapi  mereka  tidak  berhubungan  sama  sekali.  Supaya  dapat menjalankan  cara  untuk  memastikan  bahwa  dua  class-class  ini  mengimplementasikan beberapa  method  dengan  tanda  yang  sama,  kita  dapat  menggunakan  sebuah  interface untuk  hal  ini.  Kita  dapat  membuat  sebuah  class  interface,  katakanlah  interface  Relation dimana  mempunyai  deklarasi  method  pembanding.  Relasi  interface  dapat  dideklarasikan sebagai,
  
Alasan lain  dalam menggunakan  interface  pemrograman  object  adalah untuk menyatakan sebuah interface pemrograman object tanpa menyatakan classnya. Seperti yang dapat kita lihat nanti dalam bagian Interface vs class, kita dapat benar-benar menggunakan interface sebagai tipe data.
Pada  akhirnya,  kita  perlu  menggunakan  interface  untuk  pewarisan  model  jamak  dimana menyediakan  class  untuk  mempunyai  lebih  dari  satu  superclass.  Pewarisan  jamak  tidak ditunjukkan di Java, tetapi ditunjukkan di bahasa berorientasi object lain seperti C++.

Interface VS abstract class
Berikut  ini  adalah  perbedaan  utama  antara  sebuah  interface  dan  sebuah  class  abstract: method  interface  tidak  punya  tubuh,  sebuah  interface  hanya  dapat  mendefinisikan konstanta  dan  interface  tidak  langsung  mewariskan  hubungan  dengan  class  istimewa lainnya, mereka didefinisikan secara independent.
Satu ciri umum dari sebuah interface dan class adalah pada tipe mereka berdua. Ini artinya bahwa sebuah interface dapat digunakan dalam tempat-tempat dimana sebuah class dapatdigunakan.  Sebagai  contoh,  diberikan  class  Person  dan  interface  PersonInterface,  berikut deklarasi yang benar:
Bagaimanapun, Anda tidak dapat membuat instance dari sebuah interface.  Contohnya:
Ciri  umum  lain  adalah  baik  interface  maupun  class  dapat  mendefinisikan  method. Bagaimanapun,  sebuah  interface  tidak  punya  sebuah  kode  implementasi  sedangkan  class memiliki salah satunya.

Membuat Interface
Untuk membuat interface, kita tulis,
Sebagai contoh, mari kita membuat sebuah interface yang mendefinisikan hubungan antara dua object menurut  urutan asli dari object.
Sekarang, penggunaan interface, kita gunakan kata kunci implements. Contohnya,
Ketika class Anda mencoba mengimplementasikan sebuah interface, selalu pastikan bahwa Anda  mengimplementasikan  semua  method  dari  interface,  jika  tidak,  Anda  akan menemukan kesalahan ini,

Hubungan dari interface ke class
Seperti yang telah kita lihat dalam bagian sebelumnya, class dapat mengimplementasikan sebuah interface selama kode implementasi untuk semua method yang didefinisikan dalam interface tersedia.
Hal  lain  yang  perlu  dicatat  tentang  hubungan  antara  interface  ke  class-class  yaitu,  class hanya dapat mengEXTEND SATU superclass, tetapi dapat mengIMPLEMENTASIkan BANYAK  interface. Sebuah contoh dari sebuah class yang mengimplementasikan interface adalah,
  
Contoh  lain  dari  class  yang  meng-extend  satu  superclass  dan  mengimplementasikan sebuah interface adalah,
Catatan bahwa sebuah interface bukan bagian dari hirarki pewarisan class. Class yang tidak berhubungan dapat mengimplementasikan interface yang sama.


Pewarisan antar interface
Interface  bukan  bagian  dari  hirarki  class.  Bagaimanapun,  interface  dapat  mempunyai hubungan  pewarisan  antara  mereka  sendiri.  Contohnya,  misal  kita  punya  dua  interface StudentInterface  dan  PersonInterface.  Jika  StudentInterface  meng-extend PersonInterface, maka ia akan mewariskan semua deklarasi method dalam PersonInterface.





Comments

Popular posts from this blog

MENULIS AKSARA JAWA KE WORD

MENULIS AKSARA JAWA DENGAN KOMPUTER   Kalau pada posting yang lalu kita belajar  MENULIS FONT PUTUS - PUTUS DENGAN KOMPUTER , untuk kali ini  PRAHMACELLCOM  berbagi tips MENULIS AKSARA JAWA DENGAN KOMPUTER. Sebagai generasa penerus bangsa yang cinta akan tanah airnya, tentunya kita harus melestarikan kebudayaan daerah kita masing - masing. Sebagai orang yang lahir di tanah jawa, kita harus bisa untuk mempertahankan budaya tanah kelahiran (nguri uri kabudayan), salah satunya bisa menulis dan membaca aksara jawa ini. Baik langsung saja download font aksara jawa  DISINI . Setelah di download extract maka akan ada folder dengan 2 file font yaitu : HANAN dan MODIF HANAN aksara jawa asli MODIF adalah huruf biasa yang dirubah seperti aksara jawa Copy ke dua file tersebut di C : Windows/Fonts ( paste disini ) Cara penulisannya : Misal di Word, Tinggal rubah saja jenis font, untuk aksara jawa pilih font HANACARAKA sedang untuk huru...

Makalah Tentang IPV6

MAKALAH IPV6 Disusun oleh: Yanu Puguh Pamungkas (14240002) MANAJEMEN INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS RESPATI YOGYAKARTA 2015 KATA PENGANTAR Segala puji syukur kami panjatkan kepada Allah SWT, karena atas rahmat-Nya Makalah dengan judul “ IPV6 ” ini dapat terselesaikan.  Dengan terselesaikannya makalah ini, diharapkan pelaksanaan mata kuliah Jaringan Komputer di Program Studi Management informatika dapat berjalan semakin baik dan memberikan kemudahan kepada mahasiswa dalam rangka memahami teori dan pengetahuan yang diterima di perkuliahan. Demikian pula, dengan terselesaikannya makalah ini agar dapat memudahkan seluruh civitas akademik (Dosen, Mahasiswa dan Staf  Pendukung) dalam menyelenggarakan dan melaksanakan Mata Kuliah Jaringan Komputer. Ucapan terimakasih kami tujukan kepada semua pihak yang baik secara langsung maupun tidak langsung telah terlibat dalam penyelesaian makalah ini. Kami berharap makalah i...