DHimanFLorhenza95@gmail.com

Dhimanflorhenza.blogspot.com.

DHimanFLorhenza95@gmail.com

Terimah kasih sudah berkunjung di blog saya.

DHimanFLorhenza95@gmail.com

welcome to my blog, if anyone would like to ask please comment.

DHimanFLorhenza95@gmail.com

IG = DHimanFLorhenza.

DHimanFLorhenza95@gmail.com

welcome to my blog, if anyone would like to ask please comment.

Saturday, 11 March 2017

penjelasan 3 karakteristik metodologi berorientasi objek dan contohnya

penjelasan dari 3 karakteristik metodologi berorientasi objek 

Karakteristik metodologi berorientasi objek :
·         Encapsulation
·         Inheritance

·         Polymorphism

Metodologi pengembangan system berorientasi objek ada tiga karakteristik utama, yaitu
Encapsulation
Encapsulation (pengkapsilan) merupakan daasar untuk pembatasan ruang lingkup program terhadap data yang dip roses. Prosedur dan data atau fungsi atau method di kemas secara bersamaan dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya. Data terlindung dari prosedur lain atau prosedur yang ada didalam objek itu sendiri.
    Encapsulation adalah proses pemaketan data bersama metode-metodenya dimana hal ini bermanfaat untuk menyembeunyikan rincian-rincian implementasi dari pemakai. Dalam sebuah objek yang mengandung variabel-variabel dan methodmethod, dapat ditentukan hak akses pada sebuah variabel atau method dari objek. Pembungkusan variabel dan method dalam sebuah objek dalam bagian yang terlindungi inilah yang disebut denganenkapsulasi.

 Bagian eksternal dari sebuah objek sering disebut sebagai interface atau antarmukaterhadap objek lain. Karena objek lain harus berkomunikasi dengan obejk itu hanya melalui antarmuka maka bagian internal objek dapat dilindungi dari gangguan luar. Karena program luar tidak mengakses implementasi internal objek, maka implementasi internal dapat berubah tanpa mempengaruhi bagian-bagian program lain.

  Di dalam Java, pengkapsulan dapat dilakukan dengan pembentukan kelas-kelas
menggunakan keyword class. Sedangkan penyembunyian informasi dapat dilakukan dengan pengendalian tgerhadap pengaksesan pembentuk kelas dengan keyword-keyword untuk kendali pengaksesan default, private, protected, dan public. Penyembunyian informasi deilakukan dengan implementasi penerapan kendari menggunakan keywordprivate dan protected pada elemen data.

Inheritance
      Inheritance (pewarisan) adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metoda dari induknya langsung. Atribut dan metoda dari objek induk diturunkan kepada anak objek, demikian seterusnya. Pendefinisian objek dipergunakan untuk membangun suatu hirarki dari objek turunannya, sehingga tidak perlu membuat atribut dan metoda lagi pada anaknya, karena telah mewarisi sifat induknya. Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki bersama diantara kelas yang mempunyai hubungan secara hirarki. Suatu kelas dapat ditentukan secara umum, kemudian ditentukan secara spesifik menjadi sub kelas. Setiap subkelas memiliki hubungan atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan ditambah dengan sifat unik yang dimilikinya. Sifat yang dimiliki oleh kelas induknya tidak perlu diulang dalam setiap subkelas. Sebagai contoh, ScrollingWindows dan FixedWindows adalah subkelas dari Windows. Kedua subkelas mewarisi sifat yang dimiliki oleh Windows. ScrollingWindows menambahkan Scroll Bar dan sebuah Offset. Kemampuan untuk menghilangkan beberapa faktor dari superkelas yang bersifat umum dan memasukkannya ke dalam kelas induknya serta mewariskan sifat dari kelas induknya, mengurangi pengulangan dalam desain dan pemrograman. Hal ini merupakan keuntungan utama dari sistem berorientasi objek.

Polymorphism
Polymorphism (polimorfisme) yaitu konsep yang menyatakan bahwa suatu yang sama dapat mempunyai bentuk dan prilaku berbeda. Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda. Operasi MOVE mungkin mempunyai perbedaan dalam kelas windows atau kendaraan bermotor. Suatu implementasi yang spesifik dari sifat polimorfisme, mungkin dapat mempunyai lebih dari suatu metoda.
  • Objek mobil
Pada objek mobil, walupun minibus dan truk merupakan jenis objek mobil yang sama, namun memiliki juga perbedaan. Misalnya suara truk merupakan jenis objek mobil yang sama, namun juga memiliki juga perbedaan. Misalnya suara truk lebih keras dari pada minibus.
Hal ini juga berlaku pada objek anak (child) melakukan metode yang dama dengan algoritma berbeda dari objek induknya. Hal ini yang disebut polymorphism, konsep atau teknik dasar lain adalah ruang lingkup/ pembatasan. Artinya setiap objek mempunyai ruang lingkup kelas, atribut, dan metode yang dibatasi.
  • Motodologi non objek
Motodologi non objek menggunakan beberapa alat untuk menggambarkan model, seperti : data flow diagram, entity relationship diagram, dan structure chart. Sedangkan pada metodologi berorientasi objek menggunakan satu jenis model dari tahap analisis sampai implementasi, yaitu object diagram (diagram objek).
1.    Berikan contoh sederhana implementasi dari 3 karakteristik diatas ke dalam bahasa pemrograman berorientasi objek.

1.     ENCAPSULATION
Berikut adalah contoh programnya.

public class Kapsul{
private double panjang; // attribute yang disembunyikan
private double lebar; // attribute yang disembunyikan
private double tinggi; // attribute yang disembunyikan
public Kapsul(){
double panjang = 0;
double lebar = 0;
}
private double luas(double p, double l) { //attribute yang di enkapsulasi
return p*l;
}
public void setPanjang(double panjang) {
this.panjang = panjang;
}
public void setLebar(double lebar) {
this.lebar = lebar;
}
public double getPanjang() {
return panjang;
}
public double getLebar() {
return lebar;
}
public double getLuas() {
return luas(panjang, lebar);
}
}
class Encapsulasi{
public static void main(String[] args) {
Kapsul pp = new Kapsul();
pp.setPanjang(50);
pp.setLebar(100);
System.out.println("Panjang : "+ pp.getPanjang());
System.out.println("Lebar : "+ pp.getLebar());
System.out.println("Luas : "+ pp.getLuas());
}
}


Output Program


  
Dari program di atas dapat dilihat bahwa deklarasi variabel disembunyikan dan pada saat dilakukan proses perkalian untuk mencari luas dilakukan enkapsulasi. Program di atas akan menghasilkan 2 class yaitu : class Kapsul dan class Encapsulasi. Kedua classini berbeda. Di mana class Kapsul merupakan kelas untuk pembentukan Objek dan pemrosesan dalam pencarian luas persegi panjang. Sedangkan untuk class Encapsulasimerupakan kelas untuk menampilkan hasil dari proses tersebut.


Inheritance
Sebagai contoh, misalkan ada sebuah kelas Titik yang mempunyai kelas turunan Titik3D:
   class Titik
      private integer x
      private integer y
         Titik()
            x < 0
            y < 0
         {end Titik}

         public getX() -> integer
            -> x
         {end getX}
        
         public getY() -> integer
            -> y
         {end getY}
   {end class}
   class Titik3D: Titik
      private integer z

      Titik3D()
         z <- 0
      {end Titik3D}

         public getZ() -> integer
            -> z
         {end getZ}
  
   {end class}
Keterkaitan antara kelas Titik dan Titik3D adalah kelas Titik3D merupakan kelas turunan dari kelas Titik. Dalam hal ini kelas Titik disebut dengan kelas dasar atau super classatau base classsedangkan kelas Titik3D disebut sebagai kelas turunan atau derived classatau subclass.
Pada contoh di atas, ketika kelas Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada pada kelas Titik walau pada kode programnya metode itu tidak dituliskan, misalkan sebagai berikut:
   Titik3D p <-  new Titik3D()
   integer x <-  p.getX()
   integer y <-  p.getY()
   integer z <-  p.getZ()
Keuntungan dari pewarisan adalah tidak perlu mengutak atik kode kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar akan mewariskan semua atribut dan kodenya kecuali konstruktor dan destruktor yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang sama dengan pada kelas dasar.
Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.


Polymorphism

Contoh program java nya :
Simpan dengan nama BeautyfullMahasiswa.java
public class BeautyfullMahasiswa extends Mahasiswa{
public void printNama(){
System.out.println(“Hallo, saya Mahasiswa yg cantik n baik”);
Super.printNama();
}
}
Simpan dengan nama Main.java
public class Main{
public static void main(String[] args]) {
BeautyfullMahasiswa mhs = new BeautyfullMahasiswa();
mhs.setNim(“09530524”);
mhs.setNama(“Afrida Asna”);
mhs.printNim();
mhs.printNama();
}
}
Kemudian compile dan run.
C:\>javac BeautyfullMahasiswa.java
C:\>javac Main.java
C:\>java Main
Kontruksi objek mahasiswa
Nim:09530524
Hallo, saya Mahasiswa yg cantik  n baik
Nama: Afrida Asna
C:\>
Terlihat bahwa disini kita mengoverride method printNama(), dengan menambahkan beberapa teks tambahan, sehingga method printNama(), pada class BeautyfullMahasiswa, memiliki perilaku yang berbeda dengan class Mahasiswa.