Entri Populer

Selasa, 25 Oktober 2011

Pertemuan 3



INFORMASI HIDING, INHERTANCE,ENCAPSULATION DAN POLYMORPHISM
  • INHERITANCE
Inheritance adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, inheritancememungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh anggota fungsi dari kelas.

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.
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
Contoh Pogram SuperClass.Java
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbbXg-BAAJK8xL_eYQCpF5rP6fLkEljX3LnO2qiYYV84peGlEfYpV_kCgCV6LOhE_b5B81JPA0NZ2lmzGgfZAmhrzVlCO_u1n9uJaE3Kh5LzZUmz8VEb10glWrLxJweCUSWodaIqHnomA/s320/supperclass.JPG
  • Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierark
  • Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass


Keuntungan penggunaan Inheritance dalam OOP : Reusability
                     Ketika behavior(method) dideklarasikan dalam superclass, behavior tersebut otomatis diwariskan ke seluruh subclass·
                     Jadi, Anda dapat meng-enkode method hanya sekali dan method tersebut dapat digunakan oleh seluruh subclass·
                     Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya sendiri dan parent-nya·


Inheritance adalah salah satu teknik pemrograman berorientasi object yang digunakan agar suatu codingan dapat digunakan kembali oleh programmer lain / reuseable. Hal tersebut dilakukan dengan cara membuat turunan dari suatu class yang sudah ada, yaitu dengan membuat child class. Contohnya adalah jika ada programmer yang membuat suatu class yaitu shape yang memiliki atribut atribut luas, dan position kita tidak perlu membuat class baru ketika kita ingin membuat suatu class rectangle yang notabennya juga termasuk shape, jadi kita cuma perlu untuk menurunkan class shape tadi ke class rectangle yang akan kita buat.



https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPauldbvlQO4czSrQTZ3eGrUS1hqcmuJhcfOdfthIO-NMlVQ0Qyzz80CjGlG3KA_Z_kko_640Neb50YtTTQxVhjhE4vO687JhGlDgdtB8nIcs8KfqWoeS9GHHLuy2PnP-OWAxUjlm3Vvk/s320/1.JPG
Dari gambar diatas dapat kita ketahui hierarki dari penurunan class shape menjadi class class lainya yang notabennya masih termasuk dalam class shape. Selain itu dalam iheritance ini kita juga mulai mengenal yang dinamakan access modifier, yaitu keyword untuk merubah atribut dari suatu field dalam suatu class, dimana dalam java access modifier tersebut ada 4, yaitu: (none) -> Akses ke field tersebut hanya terbatas pada suatu package Public -> Field tersebut dapat diakses dari semua tempat, asal masih dalam satu scope Private -> Akses ke field tersebut hanya terbatas pada class dimana field tersebut ada Protected -> Akses ke filed tersebut hanya terbatas pada class dimana field tersebut ada, beserta class turunan dari class field tersebut. Untuk contoh program dapat dilihat dibawah ini, yang merupakan inheritance class person menjadi class student.
1.      //class Person.java  
2.      public class Person {  
3.        
4.      protected String name;  
5.      protected int age;  
6.        
7.      public Person(String name, int age) {  
8.          this.name = name;  
9.          this.age = age;  
10.  }  
11.    
12.  public String getName() {  
13.      return this.name;  
14.  }  
15.    
16.  public int getAge() {  
17.      return this.age;  
18.  }  
19.  }  
1.      //class Student.java  
2.        
3.      public class Student extends Person {  
4.        
5.       private String schoolName;  
6.        
7.       public Student(String name, int age, String schoolName) {  
8.           super(name, age);  
9.           this.schoolName = schoolName;  
10.   }  
11.    
12.   public String getSchoolName() {  
13.       return this.schoolName;  
14.   }  
15.  }  
1.      //class Main.java  
2.        
3.      public class Main {  
4.        
5.        public static void main(String[] args) {  
6.            Person person = new Person("Yohanda"19);  
7.            Student student = new Student("Mandala"18"SMAN 2");  
8.        
9.            System.out.println("Informasi tentang object person : ");  
10.        System.out.println("Name : " + person.getName());  
11.        System.out.println("Age : " + person.getAge());  
12.        System.out.println();  
13.    
14.        System.out.println("Informasi tentang object student : ");  
15.        System.out.println("Name : " + student.getName());  
16.        System.out.println("Age : " + student.getAge());  
17.        System.out.println("School Name : " + student.getSchoolName());  
18.    }  
19.  }  
Maka setelah kita compile dan kita eksekusi maka akan manghasilakan output seperti dibawah ini :
1.      Informasi tentang object person :  
2.      Name : Yohanda  
3.      Age : 19  
4.        
5.      Informasi tentang object student :  
6.      Name : Mandala  
7.      Age : 18  
8.      School Name : SMAN 2  
Untuk melakukan inheritance di java, kita menggunakan keyword extends. Dalam contoh program diatas class Studentlah yang mengiherit class Person sehingga class Student yang melakakukan extends, dimana dalam pendefinisian class nya menjadi class Student extends Person. Dalam proses inheritance ini subclass bisa mengakses semua field dari super classnya, kecuali yang beratribut private. Akan tetapi superclass tidak bisa mengakses field dari subclass apapun atributnya. Dalam program diatas sudah dicontohkan bahwa method getName dan getAge yang hanya terdapat pada class Person dapat dengan bebas diakses oleh Class turunannya yaitu class Student. Mengenai constructornya adalah sebagai berikut, dalam class person ia membutuhkan dua variable dalam constructornya, yaitu String name, dan int age, dan dalam class student ia membutuhkan 3 variable ketika membuat constructornya yaitu String name, int age, dan String schoolName, dimana dapat kita lihat bahwa 2 dari 3 variabel constructor dari class student sama dengan variable pada class person, maka kita tidak perlu membuatnya lagi, akan tetapi hanya perlu menggunakan keyword “super” untuk memanggil constructor dari superclass.


  vENCAPSULATION

 Encapsulation atau pengkapsulan adalah suatu kemamouan dalam pemrograman berorientasi objek  untuk menyembunyikan atribut dan method suatu objek dari objek lain. Pengkapsulan membuat orang lain tidak  mengetahui bagamana detil  implementasi(listing program) dari modul tersebut, mereka hanya perlu menatasi variabrl-variabelapa saja yang menjadi input dan output,  serta bagaimana  interaksi modul tersebut dengan variabel method, kelas, intervace atau package lain dengan modul tersebut.
Pengkapsulan dilakukan dengan caramemberikan modifier private pada suatu method dan pada variabel. Method untuk memberikan nilai pada suatu atribut privat biasanya diawali dengan kata “set”, sedangkan method untuk mengambil  nilai dari suatu atribut privat biasanya diawali dengan kata”get”.


  vPOLYMORPHISM

Polymorphism dapat disamakan dengan Method Overloading, dimana di dalam sebuah class terdapat beberapa method dengan nama sama. Sebuah Method bernama CetakData() yang misalnya berfungsi menampilkan data String, tentu tidak bisa menangani masukan berupa data numerik, boolean, ataupun karakter, demikian juga sebaliknya. Solusi yang bisa dilakukan adalah dengan menyediakan beberapa Method CetakData() yang akan menangani setiap tipe data, sehingga data apapun yang diberikan sebagai parameter tetap bisa diproses.
Berikut adalah contoh program Polymorphism pada Java:


1. Pakailah editor untuk menuliskan Source Code Java, seperti Notpad, JCreator, atau
Netbeans, Dan kitekkan Source Code Dibawah ini :


class CetakDataTipe {

// membuat method dengan nama sama tapi berbeda tipe data
public void CetakData(String Cetak) {
System.out.println(Cetak);
}
public void CetakData(int Cetak) {
System.out.println(Cetak);
}
public void CetakData(double Cetak) {
System.out.println(Cetak);
}
public void CetakData(char Cetak) {
System.out.println(Cetak);
}
}
public class Polymorphism {

public static void main(String[] args) {
CetakDataTipe data = new CetakDataTipe();

System.out.print("Cetak Data Tipe String : ");
data.CetakData("Sumatra");

System.out.print("Cetak Data Tipe Integer : ");
data.CetakData(1989);

System.out.print("Cetak Data Tipe Double : ");
data.CetakData(16.5 / 2);

System.out.print("Cetak Data Tipe Char : ");
data.CetakData('N');
}
}
2. Lalu Jalankan Program dan Akan mendapatkan Output seperti dibawah ini :
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBdz9AW3Pc0YIQwb1F4TZbIRkVhYVzW5HTTc0wrVP3cg7mqhx0L1B3QvqdWxL93UcVmV5Oj5BuohDzl04Iozpq6QokCUE7VvEfhCmC7zLtPVhEqbLR_B_TvdE5QwVDzdp7oxDyO3wh2Vw/s320/2.JPG



Method CetakData() akan bereaksi dengan satu dari 4 macam tipe data, tergantung dari data yang Passing ke dalamnnya. Keragaman model Method ini disebut Polimorph atau Banyak Bentuk.




Program SubClass.Java
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQw5VqYqltQQrvEu9Uf-W0O3IKcxu6zGSH-4AS1KgJKyAnUrnsGGxVNs35t9tuMrwAkByBq3t8cLou8wVsEH_T8LHrEkvSImbrZiR-CHQlC3o_RNKCCjT2ELVcwXwQOOa02KMR4NQ9MBI/s320/subclass.JPG


keterangan:
public class extend SuperClass {

extend      =        warisan

=Super( ) ;            Untuk memanggil konstruktor  kelas induk

=Super.methodSuperClass( );             untuk memanggil superclass dari kelas induk

Program DemoInheritance
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit0olcV-W5XA5oiT-cOqx279lUnAFsnkMydOtXe5bFtK791CsRUS4pjOu0b9C2Z1L72yF4tHG28uQgBGVgvoy5dCSNQdMvmKOf3dqkr2fcNMgGN1fYm-J_hU3Gto_qWNgcQY0ZLlXsxfM/s320/Demo.JPG
Keterangan :
SubClass sc = new SubClass( );       =Digunakan untuk membuat objek baru dengan nama sc
sc.methodSubcCass( );                     =untuk memanggil method subclass dari objek sc
Hasil Dari Program di atas :
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8lf8cg93ECDkElZOUMcPRdkLuIM9R6gKRqHBQF0zJNWOelEFDE3gqHwy8aGvHTIFNfY1lICuWZWnT_-bTW77nMg16UwEe1h26YJOjl4jjkxwg1Duj77tSDvBsRtJDLW5ux456uiEbqRU/s320/HSLDMO.JPG

PROGRAM Persegi.java
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWr0OTLqbk9AHeJE7RTWuZzOEKF_MYRVEKcJtmfEF04qCF1y_EqNtlAmk5fQAA5c_hfu5J4iZKpmlzvLJ-BsmsYXSWhzU8VJ2N_BZlZqimrg6fNXzSAtReNTnlvEPR8nfHNxZCkvlXCX4/s320/PRSGI.JPG
Keterangan:

Panjang
Lebar       = adalah atribut
Tinggi      

Hasil ProgramPersegi
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm53WFwvixohDL52HBawutzeQTKK76KIdi0VdrwSpfKyKuPr7iCB7tybZbtv2wUK7GgKYoCUE3v2_3YbOHeY94zXjdH75oH6RQOMAAXVE3fi2qN4fznnjsB_NcV-vcVOr6TWNzEef2hlM/s320/HLSPERSGI.JPG




PROGRAM MainPersegi.Java
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq8BDXhIgPqOmw2guMwKkJl1B5KRnvBp_9-J5LI3dUkiSJpVDa3YfKmZq6yImS0cpgyjZjhOWGIunjEYLkb0q-bxAaMdhVKQ_SMokvZRXMErJ_3n21t4OEml1ASZodydrwXbbbMstKKbU/s320/MAINpRSGI.JPG
Keterangan:
Persegi pg  =  new Persegi( );     =  membuat objek baru pg dr class Persegi
pg.setpanjang(10);  = untuk memanggil method panjang dari class persegi
pg.setLebar(20);  = untuk memanggil method lebar dari class persegi

HAsil Dari Program Di atas:
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOoeDyeDlcZuEbmWlr_3isfnKX7hT5Ck5LOmp7mOnVRigOXJsOcGRuqVc4S1trp2vXvDYWe1pCfNJ_rcBA4tcyPFztA6VVFnzE4ygbVB0QxngD_Ti8SiDna8j2OsVo1c6nGmI4TM46KKA/s320/HSLMAIPRSGI.JPG
PROGRAM Karyawan.Java
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqLP85exnfDo-p0qQJXaLad4Z7a_oHxVn_y7nyCk_McygJAppT7klyyTxoL7_y1A9Yj583qoSwX0EhlDmxLoJW1AhtzIshh0w-zb5UedURXEdzkpuAtJlZ9CMTCGwkmVBBu8OFZaCE4gA/s320/KARYAWN.JPG

PROGRAM Manager.java
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0tcDRAvHHjyzS7qk9bgKANNQwxQRZEVUvVGSU6sEtBL_Kp4idQauzKC5dUCba4vxe4PSaASQkNRr7fAz5Cd6lAs14bmQZ-MIOeYTVSYjSO8uFHTXAmV__cmCxcfSpzkrl1KEF3xzzqx8/s320/MANAGER.JPG






PROGRAM Receptionis.Java.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIwm4NTF2jFwX-9SGfSdBMhjcW1aCOkxl3leQj1THokfZy7aUrxNd470RgFiQZu_D3P4tBE1t9cfdy_jwkIgUqcedy-AwktdgKh8Up-Aq_shxnchwqfzkSQsSCxh0q22WyivsM9TTCB00/s320/RECEPTIONIS.JPG

PROGRAM Polymorphisme.Java
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin4CWBA6iiixUDumJFQ0pIur45qovFhFhlfmjnrdOGRiWIAEwayrY7cR3QPPbyFJS6o0zkHbuRKtTTVVz3ED8UV06pIervJW0X7XbAfwwP85E1i5gkgpGvbpsQescWtMg9g6lkFy5xFgE/s320/POLYMORHPISM.JPG
Hasil  dari Program Molymorphisme
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ9BUX_DKeZSp5i57O190UyErOBBGSNeDRRlnPOFHz_NuCzZW-lCjUhT4vbPj4LZMYBiy6IC9CZ5fBsjG-kvHJIg6eyR5UUNsfqkpm6l2XofBUNf5cwBELMhA387Xz2U0dKcHma1xfDFY/s320/HSLPOLYMORPHISM.JPG


Tidak ada komentar:

Posting Komentar