pewarisan inheritance n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
PEWARISAN ( Inheritance ) PowerPoint Presentation
Download Presentation
PEWARISAN ( Inheritance )

Loading in 2 Seconds...

play fullscreen
1 / 44

PEWARISAN ( Inheritance ) - PowerPoint PPT Presentation


  • 182 Views
  • Uploaded on

PEWARISAN ( Inheritance ). Pengantar. Adalah proses pembentukan kelas baru yang disebut sebagai derived class atau inherited class atau kelas turunan atau subkelas dari kelas yang sudah ada sebelumnya yang disebut base class atau superkelas

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'PEWARISAN ( Inheritance )' - ria-le


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
pengantar
Pengantar
  • Adalahprosespembentukankelasbaru yang disebutsebagaiderived classatauinherited class atau kelas turunan atau subkelasdarikelas yang sudahadasebelumnya yang disebutbase classatau superkelas
  • Subkelas akanmewarisisemuaanggota superkelas dandapatditambahanggota baru yang memilikikarakter lebihkhusus
pengantar lanjutan
Pengantar(lanjutan)
  • Pewarisan
    • Merupakanbentukrelasi “is-a”
    • PenggunaankembaliSoftware (kode program)
    • Membuatkelas baru dari kelas yang dibuatsebelumnya
      • Menampungvariabelkelas dan perilakudarisuperkelas
      • Meningkatkanataumenambahatributataumetodebarudarisuperkelas
pengantar lanjutan1
Pengantar(lanjutan)
  • Pewarisan
    • Subkelassebagaiperluasandarisuperclass
      • Subclass
        • Lebih spesifikdarisuperkelas-nya
        • Mewarisiatribut dan perilaku dari superkelas
          • Perilakudapat disesuaikan
        • Dapatditambahkan atribut dan perilaku baru
pengantar lanjutan2
Pengantar (lanjutan)
  • hirarki kelas
    • Langsung superclass
      • Warisan eksplisit (satu tingkat hirarki)
    • TidakLangsung superclass
      • Warisandua atau lebih tingkat hirarki
    • Pewarisan Tunggal
      • Mewarisi dari satu superclass
    • PewarisanJamak
      • Mewarisi dari beberapa superclasses
      • Java tidak mendukung PewarisanJamak
superkelas dan subkelas
SuperKelasdanSubKelas
  • SuperKelasdan SubKelas
    • Obyek sebuahkelas “is-an”objek kelas lain
      • Contoh: PersegiPanjangadalah Segiempat.
      • Kelas PersegiPanjangmewarisi dari kelas Segiempat
      • Segiempat: SuperKelas
      • PersegiPanjang: SubKelas
superkelas dan subkelas1
SuperKelasdanSubKelas
  • SuperKelasdan SubKelas
    • SuperKelasmempunyailingkupyang lebih luasdaripada obyek SubKelas
      • contoh:
        • SuperKelas: Kendaraan
          • Mobil, truk, kapal, sepeda, ...
        • SubKelas: Mobil
          • Lebih sempitlinkupnya, bagian yang lebih spesifik darikendaraan
superkelas dan subkelas lanjutan
SuperKelasdanSubKelas (lanjutan)
  • Hirarki Pewarisan
    • RelasiPewarisan:
      • Seperti struktur pohon hirarki
    • Setiap kelas menjadi
      • SuperKelas
        • Pasokan anggota kelas-kelas lain (SubKelas)

ATAU

      • SubKelas
        • Mewarisi anggota dari kelas lain (SuperKelas)
hirarki pewarisan di uml
HirarkiPewarisan di UML

CivitasAkademika

Pegawai

Mahasiswa

Alumni

Fakultas

Pusat

Jurusan

Staf

hirarki pewarisan
HirarkiPewarisan

Bentuk

DuaDimensi

TigaDimensi

Lingkaran

Bola

Persegi

Kubus

Segitiga

Kerucut

anggota protected
Anggota Protected
  • Akses protected
    • Level aksesdi antarapublicdan private
    • Anggota protected dapat diakses oleh:
      • Anggota superkelas
      • Anggota subkelas
      • Anggota kelas dalam paket yang sama
    • Akses subkelaspadaanggota superkelas
      • Menggunakankeywordsuperdiikutidengan operator titik (.)
catatan
Catatan
  • Metode subkelastidak dapat langsung mengakses anggota privatedari superkelas-nya. Sebuah subkelas bisa mengubah status variabel instanprivatemiliksuperkelas hanya melalui metode non-privateyang disediakan superkelas dan diwariskankesubkelas.
catatan lanjutan
Catatan (lanjutan)
  • Mendeklarasikan variabel instanprivatedapatmembantu programmerdalammelakukanpengujian, debug dan modifikasi sistemsecarabenar. Jika subkelas bisa mengakses variabel instan privatesuperclass-nya, kelas yang mewarisi dari subkelas akanbisa jugamengakses variabel instan tersebut. Hal ini akan memperluasakses ke variabel instanprivate, sehinggamanfaat penyembunyian informasi akan hilang.
relasi superkelas dan subkelas
RelasiSuperkelasdanSubkelas
  • Contoh
    • HirarkiPewarisankelasKaryawanPemasarandankelasKaryawanTetapPemasaran
      • KelasKaryawanPemasaran
        • Atribut: nama, nik, totalJual, persenKomisi
      • KelasKaryawanTetapPemasaran
        • Atribut: nama, nik, totalJual, persenKomisi, gajiPokok
kelas karyawanpemasaran
KelasKaryawanPemasaran
  • Turunan (extends) darikelas Object
  • Menggunakan keyword extends
  • Setiap kelas di Java merupakansecara default turunan (extends) darikelas Object
    • Kecualikelas Object
  • Setiap kelas mewarisi metodedarikelas Object
  • Setiap kelas baru secaraimplisit sebagaiturunan (extends) darikelas Object
    • Jika bukansebagaiturunan (extends) darikelas lain
catatan1
Catatan
  • Compiler Java menetapkan sebagaisuperkelas adalahkelas Objectketika mendeklarasikankelas yang tidak secara eksplisit dituliskansebagaiturunan (extends) darikelas Object.
catatan2
Catatan
  • Kesalahan sintaks akanterjadibilasebuahmetode di superkelas di-override padasubkelasdenganmenggunakan access modifier yang lebihterbatasjangkauannya. Misalkan: metode public di superkelas tidak bisa menjadi metode protectedatau private padasubkelas, sebuah metode protected di superkelas tidak dapatmenjadi metode private di subkelas. Karenaperlakuan di atasakan mematahkanrelasi"is-a" dimana diperlukan bahwa semua objekdarisubkelas dapat menanggapi panggilan metode yang dideklarasikansebagaimetode public di superkelasnya.
catatan lanjutan1
Catatan (lanjutan)
  • Jika metode public bisa di-override menjadimetode protected atau private, makaobyek subkelas tidak akan dapatmerespon terhadppemanggilan metode yang sama padaobyek superkelas. Bilametodedideklarasikansebagaipublicdi superkelas, makametode harustetap publicketika di-override padasubkelasbaikpewarisanlangsung maupuntidak langsung.
kelas karyawantetappemasaran tanpa pewarisan
KelasKaryawanTetapPemasarantanpaPewarisan
  • Kelas KaryawanTetapPemasaran
    • Secara implisit turunandarikelasObject
    • Sebagian besar kode program mirip dengan kelasKaryawanPemasaran, meliputi:
      • variabel instan private
      • metode public
      • konstruktor
    • Tambahan
      • variabel instangajiPokok
      • Metode setGajiPokokdan getGajiPokok
catatan3
Catatan
  • Copy dan paste kode program dari satu kelas ke kelas lainnya dapat menambahpeluangterjadikesalahan di beberapa file kode program. Untuk menghindari duplikasi kode (dan mungkin terjadikesalahan), penggunaan konseppewarisan, bukan cara"copy-and-paste", dalam situasi di mana diinginkanmendeklarasikankelas yang dapat"menyerap" variabel instandan metode darikelas lain.
catatan4
Catatan
  • Dengan konseppewarisan, variabel instandan metode umum darisemua kelas dalam hirarki pewarisandideklarasikan di superclass-nya. Bilaperubahan diperlukan darifitur-fitur umum, pengembang perangkat lunak hanya perlu membuat perubahan di superclass-subclass-nyakemudian mewarisikan perubahantersebut. Tanpa pewarisan, perubahan perlu dilakukan untuk semua file kode program yang berisi salinan dari kode tersebut.
catatan5
Catatan
  • Kelas KaryawanTetapPemasaran
    • Turunandarikelas KaryawanPemasaran
    • “is-a” kelasKaryawanPemasaran
    • Memiliki variabel instangajiPokok
    • Mewarisi anggota public dan protected
    • Konstruktor tidak diwariskan
catatan6
Catatan
  • Sebuah kesalahan kompilasi terjadi jika konstruktor subclass memanggilsalah satu konstruktor superclass dengan argumen yang tidak sama persis dengan jumlah dan jenis parameter yang ditentukan dalam salah satu deklarasi konstruktor superclass.
anggota protected1
AnggotaProtected
  • Penggunaan variabel instan protected
    • Dimungkinkan subkelas untuk langsung mengakses variabel instan protected di superclass-nya
    • Anggota protectedsuperclass diwariskan kesemua subclases-nya
anggota protected lanjutan
AnggotaProtected (lanjutan)
  • Penggunaanvariabel instan protected
    • Keuntungan
      • Subclass dapat memodifikasi nilai data secara langsung
      • Meningkatkan kinerjawalausedikit
        • Terhindardarimetode set/get
    • Kerugiannya
      • Tidak ada pemeriksaanvaliditas
        • subclass dapat menetapkan nilai ilegal
      • Implementasitergantung
        • metode subclass dimungkinkantergantung pada implementasi superclass
        • perubahan implementasi superclass dapat mengakibatkan modifikasi subclass
          • Perangkat lunak lemah
catatan7
Catatan
  • Gunakan akses modifier protectedketika superclass harus menyediakan metode yang hanya untuk subclass dan kelas-kelas lain dalam paket yang sama, tetapi tidak untuk kelaslainnya.
  • Mendeklarasikan variabel instanprivate di superkelas (sebagai lawan protected) memungkinkan penggunaanvariabel instansuperclass tersebut tanpa mempengaruhi implementasi subkelas-nya
review
Review
  • Gunakan praktek rekayasa perangkat lunak yang baikdengan:
    • Deklarasikan variable instansebagai private
    • Menambahkanmetode set dan get sebagai public
    • Gunakan metode set dan get tersebutuntuk mendapatkan nilai dari variabel instan.
catatan lanjutan2
Catatan (lanjutan)
  • Ketika metode superkelas di-override di subkelas, sering versi subkelas memanggilversi superkelas untuk melakukan sebagian pekerjaan. Kelalaianpemberianawalan super.padapemanggilanmetode superkelas menyebabkan pemanggilanmetode di subkelas akanmemanggildirinyasendirisehinggaterjadikesalahan beruparekursi tak terbatas (infinite recursion).
konstruktor subkelas
KonstruktorSubkelas
  • Instansiasiobjeksubkelas
    • Sebagaiserangkaiandaripemanggilan konstruktor
      • Konstruktor subkelas memanggil konstruktor superkelas
        • Implisit atau eksplisit
      • Didasarkanhirarki pewarisan
        • Konstruktor terakhir yang dipanggiladalah konstruktor Objek dipilih
        • Konstruktorsubkelas dieksekusi paling akhir
catatan8
Catatan
  • BahasapemrogramanJava menetapkanbahwa jika konstruktor tidak menentukannilai variabel instan, makavariabel instantersebutakandiinisialisasi ke nilai default (misalkan: 0 untuk tipenumerik primitif, false untuk boolean, dannull untuk referensi).
penggunaan pewarisan di rpl
PenggunaanPewarisan di RPL
  • Disesuaikan terhadapperangkat lunak yang ada
    • Pewarisandari kelas yang sudahada (dibuat)
      • Penyertaan anggota tambahan
      • Pendefinisian kembali(override) anggota superkelas
      • Tidak ada modifikasikode sumber superkelas
        • Link ke kode objek
    • Tidaktergantungterhadapsoftware vendor (ISV)
      • Sebagai pengembangan kode berlisensi
        • Tersedia dalam format object-code
      • Pengguna dapatmemperoleh kelas baru
        • Tanpa memodifikasikode sumber yang telahdibuatsebelumnya
catatan9
Catatan
  • Terlepas dari praktekpemrogrambahwa sebenarnyakonsep pewarisan kelas tidak perlumelakukanmodifikasikode sumber dari superkelas, tetapiseringkalipemrogramsering bersikeras inginmelihat kode sumber darisuperkelasuntuk memahami bagaimana superkelas diimplementasikan. Pemrogramhanyaingin memastikan bahwa kelas yang dikembangkanbenar-benarsolid, yaitukelas yang berkinerja baik dan dapatdiimplementasikandengan aman.
catatan10
Catatan
  • Pada tahap desain sistem berorientasi objek, perancangsering menemukan bahwa terdapatbeberapakelastertentu memiliki hubungan erat. Perancang harusmemasukkanbeberapavariabel instan danmetodebersifatumum kedalamkodesumberdarisuperkelss. Kemudian perancangharus menggunakan konseppewarisanuntuk mengembangkan subkelas, sehinggadapatmemasukkananggotatambahandarisuperkelassebelumnyauntukkemudiandiwariskankesubkelas.
  • Jikadeklarasi subkelas tidak mengubahkode sumber superkelasnya, makapenggunaan pewarisan akandapatmenjaga integritas superkelas.
catatan11
Catatan
  • Sama seperti perancang sistem non-object-oriented, merekajugaharus menghindari proliferasi (pengembangan)fungsi/subprogram yang telahada/dibuat, perancang sistem berorientasi objek harus menghindari proliferasi kelas. Proliferasi tersebut menciptakan masalah manajemen dan dapat menghambat usabilitas perangkatlunak, karena dalam kelas pustaka yang besar akanmenyulitkanuntuk menemukan kelas yang paling tepat. Sebagai alternatif adalah membuatsedikit kelas yang menyediakan fungsionalitas yang lebih besar, tetapi kelas tersebut bisa-jadirumit.
  • Jika subkelas lebih besar dari yang dibutuhkan(misalnya, memilikiterlalu banyak fungsi), memori dan pengolahan sumber daya mungkin menjadiboros/sia-sia. Pewarisansuperkelassebaiknyayang berisi fungsi sesuaikebutuhan.
kelas object
KelasObject
  • Beberapametode yang terdapat di kelas Object:
    • clone
    • equals
    • finalize
    • getClass
    • hashCode
    • notify, notifyAll, wait
    • toString