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

Post on 15-Mar-2019

226 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

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!  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  …………………………………………………………………………………………………………………………………………………………………………………………………………  

top related