(8) jobsheet overriding dan overloading · 2. tampilan!program!kurang!lebih!seperti!di!bawah!ini:!...

12
8 Overriding dan Overloading PENDAHULUAN Pada bagian sebelumnya, telah dibahas tentang relasi inheritance. Dalam relasi tersebut, dimungkinkan suatu class (super class) untuk diturunkan ke class yang lain (sub class). Dan akibat dari turunan tersebut, atribut dan method dari super class akan diturunkan atau diwariskan ke sub class. Dengan kata lain, sub class akan memiliki atribut dan method yang diwariskan dari super class. Ada kalanya, sub class perlu untuk memodifikasi isi dari method yang telah diwarisi dari super class. Tujuanya adalah agar method yang diwarisi tersebut bisa memiliki proses yang lebih spesifik untuk sub class. Konsep tersebut disebut sebagai overriding method. Overriding method merupakan kemampuan sub class untuk memodifikasi atau mendefinisikan method yang sudah diwarisi dari super class, sehingga method tersebut bisa memiliki atau melakukan proses yang lebih spesifik. Contoh di bawah ini akan memberikan ilustrasi proses overriding. Class Dog merupakan sub class dari Animal. Class Dog mewarisi method move() dari Animal. Isi dari method move() dari class Animal masih sangat umum, yaitu ia akan menampilkan kalimat Animals can move. Ketika method move() tersebut diwariskan ke class Dog, maka perlu dimodifikasi isinya, sehingga bisa menjadi lebih spesifik dan sesuai untuk Dog. Oleh karena itu, isi method move() di dalam class Dog dimodifikasi atau disesuaikan menjadi Dogs can walk and run. Dengan kata lain, method move() yang diturunkan oleh Animal, dioverride oleh class Dog. Method yang mengoverride (yang ada di subclass) dikenal dengan overriding method, sedangkan method yang dioverride (yang ada di superclass) dikenal dengan overridden method. Syarat terjadinya overriding method: Overiding method dilakukan di dalam subclass Nama method, tipe data method dan daftar argument/parameter overriding method harus sama dengan overridden method

Upload: dinhthuy

Post on 15-Mar-2019

226 views

Category:

Documents


4 download

TRANSCRIPT

8  -­‐  Overriding  dan  Overloading    PENDAHULUAN    Pada   bagian   sebelumnya,   telah   dibahas   tentang   relasi   inheritance.   Dalam   relasi  tersebut,  dimungkinkan  suatu  class  (super  class)  untuk  diturunkan  ke  class  yang  lain  (sub   class).   Dan   akibat   dari   turunan   tersebut,   atribut   dan  method   dari   super   class  akan   diturunkan   atau   diwariskan   ke   sub   class.     Dengan   kata   lain,   sub   class   akan  memiliki  atribut  dan  method  yang  diwariskan  dari  super  class.    Ada  kalanya,  sub  class  perlu  untuk  memodifikasi  isi  dari  method  yang  telah  diwarisi  dari  super  class.  Tujuanya  adalah  agar  method  yang  diwarisi   tersebut  bisa  memiliki  proses   yang   lebih   spesifik   untuk   sub   class.   Konsep   tersebut   disebut   sebagai  overriding  method.      Overriding   method   merupakan   kemampuan   sub   class   untuk   memodifikasi   atau  mendefinisikan   method   yang   sudah   diwarisi   dari   super   class,   sehingga   method  tersebut  bisa  memiliki  atau  melakukan  proses  yang  lebih  spesifik.  Contoh  di  bawah  ini  akan  memberikan  ilustrasi  proses  overriding.    

   Class  Dog  merupakan  sub  class  dari  Animal.  Class  Dog  mewarisi  method  move()  dari  Animal.    Isi  dari  method  move()  dari  class  Animal  masih  sangat  umum,  yaitu  ia  akan  menampilkan  kalimat  Animals  can  move.  Ketika  method  move()  tersebut  diwariskan  ke  class  Dog,  maka  perlu  dimodifikasi  isinya,  sehingga  bisa  menjadi  lebih  spesifik  dan  sesuai  untuk  Dog.  Oleh  karena  itu,  isi  method  move()  di  dalam  class  Dog  dimodifikasi  atau  disesuaikan  menjadi  Dogs  can  walk  and  run.  Dengan  kata  lain,  method  move()  yang  diturunkan  oleh  Animal,  di-­‐override  oleh  class  Dog.    Method   yang   meng-­‐override   (yang   ada   di   subclass)   dikenal   dengan   overriding  method,   sedangkan   method   yang   di-­‐override   (yang   ada   di   superclass)   dikenal  dengan  overridden  method.    Syarat  terjadinya  overriding  method:  

• Overiding  method  dilakukan  di  dalam  subclass  • Nama  method,  tipe  data  method  dan  daftar  argument/parameter  overriding  

method  harus  sama  dengan  overridden  method  

• Modifier  access  dari  overriding  method,  harus  sama  atau  lebih  luas  daripada  modifier  access  dari  overridden  method  

   PERCOBAAN  1  :  Overriding    Tujuan:  

1. Memahami  konsep  overriding  2. Memahami  kapan  overriding  digunakan  3. Memahami  ciri-­‐ciri  overriding  method  4. Bisa  mengimplementasikan  konsep  overriding  

 Prosedur  Percobaan:  

1. Buatlah  klas  di  dalam  paket  overriding  sesuai  dengan  diagram  klas  di  bawah  ini:    

 

   Ketr  :    

Method  hitungLuas()  dan  hitungKeliling()  di  klas  SegiTigaSamaKaki,  SegiEmpat,  dan  Lingkaran,  isinya  merupakan  operasi  perhitungan  luas  dan  keliling  masing-­‐masing  jenis  bangundatar.  Rumusnya  menyesuaikan  dengan  rumus  luas  dan  keliling  bangun  datar  yang  bersangkutan.  

   

2. Tampilan  program  kurang  lebih  seperti  di  bawah  ini:  -­‐  Klas  BangunDatar  

   -­‐  Klas  SegitigaSamaKaki  

     

 -­‐  Klas  SegiEmpat  

   -­‐  Klas  Lingkaran  

     

 3. Buatlah  klas  Main  

 Kemudian  jalankan  klas  tersebut,  dan  perhatikan  hasil  keluarannya  

 4. Jawablah  pertanyaan  di  bawah  ini:  

a. Method  apakah  dari  klas  SegitigaSamaKaki  yang  merupakan  method  overriding?  …………………………………………………………………………………………………………………………………………………………………………………………………………    

b. Method  apakah  dari  klas  SegiEmpat  yang  merupakan  method  overriding?  …………………………………………………………………………………………………………………………………………………………………………………………………………  

c. Method  apakah  dari  klas  Lingkaran  yang  merupakan  method  overriding?  

…………………………………………………………………………………………………………………………………………………………………………………………………………  

d. Method  apakah  dari  klas  BangunDatar  yang  di-­‐override  (overridden  method)?  …………………………………………………………………………………………………………………………………………………………………………………………………………  

e. Mengapa  diperlukan  overriding  method  (sebagaimana  disebutkan  pada  jawaban  soal  a,  b  dan  c)  pada  class  SegitigaSamaKaki,  SegiEmpat  dan  Lingkaran?  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………    

f. Perhatikan  klas  SegiEmpat,  apakah  ada  di  dalam  klas  tersebut  method  yang  BUKAN  overriding  method?  Jika  ada,  sebutkan!  …………………………………………………………………………………………………………………………………………………………………………………………………………  

g. Misal  pada  klas  SegitigaSamaKaki  nama  method  hitungLuas()  diubah  menjadi  hitungLuasSegiTigaSamaKaki(),  apakah  masih  disebut  sebagai  overriding  method?  Mengapa?  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  

h. Kalau  demikian,  apa  saja  ciri-­‐ciri  method  overriding?  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………    

i. Dari  percobaan  dan  pertanyaan-­‐pertanyaan  tersebut,  tarik  kesimpulan  mengenai  overriding.  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  

   

 PERCOBAAN  2  :  Overloading    Tujuan:  

1. Memahami  konsep  overloading  2. Memahami  kapan  overloading  digunakan  3. Memahami  ciri-­‐ciri  overloading  method  4. Bisa  mengimplementasikan  konsep  overloading  

 Prosedur  Percobaan:  

1. Di  dalam  paket  overloading,  buatlah  klas  sesuai  dengan  diagram  klas  di  bawah  ini!  Perhatikan  bahwa  di  semua  klas  hanya  memiliki  KONSTRUKTOR  DEFAULT.  

     

 2. Perubahan  pada  kode  program:  

-­‐  Klas  BangunDatar  

   -­‐  Klas  SegiTigaSamaKaki  

     

 -­‐  Klas  SegiEmpat  

     

 -­‐  Klas  Lingkaran  

   

3. Buat  juga  di  method  main()  di  klas  Main  

 Jalankan  program  dan  amati  hasilnya:  

 4. Jawablah  pertanyaan  di  bawah  ini:  

a. Method  apa  sajakah  dari  klas  SegiEmpat  yang  merupakan  method  overloading  ?  …………………………………………………………………………………………………………………………………………………………………………………………………………  

b. Method  apa  sajakah  dari  klas  SegitigaSamaKaki  yang  merupakan  method  overloading  ?  …………………………………………………………………………………………………………………………………………………………………………………………………………  

c. Method  apa  sajakah  dari  klas  Lingkaran  yang  merupakan  method  overloading  ?  …………………………………………………………………………………………………………………………………………………………………………………………………………  

d. Apabila  dalam  klas  SegiEmpat  ditambahkan  method  public  void  hitungLuas(double  x,  double  y){…..}  apa  yang  terjadi?  Apakah  method  yang  baru  saja  ditambahkan  tadi  merupakan  method  overloading?  Jelaskan  jawaban  anda  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  

 e. Masih  di  klas  SegiEmpat,  missal  ditambahkan  method  public  void  

hitungLuas(double  x){….}  apa  yang  terjadi?  Apakah  method  yang  baru  saja  ditambahkan  tadi  merupakan  method  overloading?  Jelaskan  jawaban  anda  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  

 f. Sebutkan  ciri-­‐ciri  method  overloading!  

…………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  

 g. Dari  hasil  percobaan  dan  pertanyaan  di  atas  tarik  kesimpulan  tentang  

overloading!  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………