TUGAS PEMROGRAMAN BERORIENTASI OBJEK KE - 2
NAMA : FACHRUL ACHYAR
Object Oriented Programming
OOP adalah suatu paradigma pemrograman yang menggunakanan object-object beserta interaksinya untuk mendesain aplikasi dan program komputer.Data dan fungsi dibungkus dalam kelas-kelas atau objek-objek.Setiap objek dapat menerima pesan memproses data,dam mengirim pesan ke objek lainnya.
A. ENCAPSULATION (PENGKAPSULAN)
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 method-method, 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 dengan enkapsulasi.
Class diagram
Class diagram adalah model statis yang menggambarkan struktur dan deskripsi class serta hubungannya antara class. Class diagram mirip dengan ER-Diagram pada perancangan database, bedanya pada ER-diagram tidak terdapat operasi/methode tapi hanya atribut. Class terdiri dari nama kelas, atribut dan operasi/methode.
Nama berfungsi memberi identitas pada sebuah kelas
Atribut berfungsi untuk memberi karakteristik pada data yang dimiliki suatu objek dalam kelas
Operasi berfungsi memberikan sebuah fungsi pada objek.
Berikut pengimplementasian diagram kelas sederhana menggunakan bahasa pemrograman java.
Implementasi kelas
NPM : 17117246
KELAS : 3KA20
KELAS : 3KA20
Object Oriented Programming
OOP adalah suatu paradigma pemrograman yang menggunakanan object-object beserta interaksinya untuk mendesain aplikasi dan program komputer.Data dan fungsi dibungkus dalam kelas-kelas atau objek-objek.Setiap objek dapat menerima pesan memproses data,dam mengirim pesan ke objek lainnya.
Teknik yang dipergunakan didalam
pemrogramannya Diantaranya adalah :
·
Encapsulation ·
Polymorphism ·
Inheritance
A. ENCAPSULATION (PENGKAPSULAN)
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 method-method, 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 dengan enkapsulasi.
Bagian eksternal dari sebuah objek sering disebut
sebagai interface atau antarmuka terhadap 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 terhadap pengaksesan pembentuk kelas dengan keyword-keyword
untuk kendali pengaksesan default, private, protected, dan public.
Penyembunyian informasi deilakukan dengan implementasi penerapan kendari
menggunakan keyword private dan protected pada elemen data.
Ada 2 manfaat utama dari
encapsulation yaitu :
1. Penyembunyian Informasi (information hiding)
Hal ini mengacu kepada perlindungan terhadap implementasi obejk internal. Objek tersebut dari interface public dan bagian private yang merupakan kombinasi data dan metode internal. Manfaat utamanya adalah bagian internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.
1. Penyembunyian Informasi (information hiding)
Hal ini mengacu kepada perlindungan terhadap implementasi obejk internal. Objek tersebut dari interface public dan bagian private yang merupakan kombinasi data dan metode internal. Manfaat utamanya adalah bagian internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.
2. Modularitas
Modularitas berarti objek dapat dikelola secara independen. Karena kode sumber bagian internal objek dikelola secara terpisah dari antarmuka, maka Kita bebas melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian lain dari sistem. Manfaat ini mempermudah mendistriibusikan objek-objek dari sistem.
Modularitas berarti objek dapat dikelola secara independen. Karena kode sumber bagian internal objek dikelola secara terpisah dari antarmuka, maka Kita bebas melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian lain dari sistem. Manfaat ini mempermudah mendistriibusikan objek-objek dari sistem.
Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single
inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class.
Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati
dengan mudah.
2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).
4. Kata kunci super dipakai untuk merujuk pada member dari parent class, sebagaimana kata kunci this yang dipakai untuk merujuk pada member dari class itu sendiri. Adapun format penulisannya adalah sebagai berikut:
super.data_member -> merujuk pada data member pada parent classsuper.function_member() -> merujuk pada function member pada parent classsuper() -> merujuk pada konstruktor pada parent class
Contoh program java nya :
Simpan dengan nama CoolMahasiswa.java
public class CoolMahasiswa extends Mahasiswa{
public void printNama(){
System.out.println(“Hallo, saya Mahasiswa yang baik”);
Super.printNama();
}
}
2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).
4. Kata kunci super dipakai untuk merujuk pada member dari parent class, sebagaimana kata kunci this yang dipakai untuk merujuk pada member dari class itu sendiri. Adapun format penulisannya adalah sebagai berikut:
super.data_member -> merujuk pada data member pada parent classsuper.function_member() -> merujuk pada function member pada parent classsuper() -> merujuk pada konstruktor pada parent class
Contoh program java nya :
Simpan dengan nama CoolMahasiswa.java
public class CoolMahasiswa extends Mahasiswa{
public void printNama(){
System.out.println(“Hallo, saya Mahasiswa yang baik”);
Super.printNama();
}
}
Simpan dengan nama Main.java
public class Main{
public static void main(String[] args]) {
CooltMahasiswa mhs = new CoolMahasiswa();
mhs.setNpm(“09530518”);
mhs.setNama(“Vladimir Inanov wkwk”);
mhs.printNpm();mhs.printNama();}}
Kemudian compile dan run.
Kontruksi objek mahasiswa
Npm:09530518
Hallo, saya Mahasiswa yang baik
Nama: Vladimir Inanov wkwk
C:\>
Terlihat bahwa disini kita mengoverride method printNama(), dengan menambahkan beberapa teks tambahan, sehingga method printNama(), pada class CoolMahasiswa, memiliki perilaku yang berbeda dengan class Mahasiswa.
public class Main{
public static void main(String[] args]) {
CooltMahasiswa mhs = new CoolMahasiswa();
mhs.setNpm(“09530518”);
mhs.setNama(“Vladimir Inanov wkwk”);
mhs.printNpm();mhs.printNama();}}
Kemudian compile dan run.
Kontruksi objek mahasiswa
Npm:09530518
Hallo, saya Mahasiswa yang baik
Nama: Vladimir Inanov wkwk
C:\>
Terlihat bahwa disini kita mengoverride method printNama(), dengan menambahkan beberapa teks tambahan, sehingga method printNama(), pada class CoolMahasiswa, memiliki perilaku yang berbeda dengan class Mahasiswa.
B. INHERITANCE (PEWARISAN)
Inheritance adalah pewarisan. Pewarisan dalam pemrograman
berorientasi objek, Inheritance memungkinkan 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.
# Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
# Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass.
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.
# Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
# 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.
Contoh program javanya :
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.
Contoh program javanya :
Simpan dengan nama SmartMahasiswa.java
Public class SmartMahasiswa extends Mahasiswa{}
Simpan dengan nama Main.javapublic class Main{
public static void main(String[] args]) {
SmartMahasiswa mhs = new SmartMahasiswa();
mhs.setNpm(“09530518”);
mhs.setNama(“Vladimir Inanov wkwk”);
mhs.printNpm();mhs.printNama();
}
}
kemudian jalankanKontruksi objek mahasiswa
Npm:09530518
Nama: Vladimir Inanov wkwk
C:\>
Public class SmartMahasiswa extends Mahasiswa{}
Simpan dengan nama Main.javapublic class Main{
public static void main(String[] args]) {
SmartMahasiswa mhs = new SmartMahasiswa();
mhs.setNpm(“09530518”);
mhs.setNama(“Vladimir Inanov wkwk”);
mhs.printNpm();mhs.printNama();
}
}
kemudian jalankanKontruksi objek mahasiswa
Npm:09530518
Nama: Vladimir Inanov wkwk
C:\>
C. POLIMORPHISME
Polymorphism sebuah kata dari bahasa Yunani yang mempunyai
arti banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila
kedua objek tersebut mempunyai (interface) antarmuka identik namun mempunyai
perilaku yang berbeda. Dalam pemrograman, polimorpism dapat diartikan sebagai
modul yang memiliki nama sama, namun memiliki behaviour yang berbeda sehingga
listing code implementasinya juga berbeda. Kondisi yang harus dipenuhi supaya
polimorfisme dapat diimplementasikan adalah :
· Method yang dipanggil harus melalui variabel dari basis class atau superclass.
· Method yang dipanggil harus juga menjadi method dari basis class.
· Signature method harus sama baik pada superclass maupun subclass.
· Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.
Contoh dalam program
· Method yang dipanggil harus melalui variabel dari basis class atau superclass.
· Method yang dipanggil harus juga menjadi method dari basis class.
· Signature method harus sama baik pada superclass maupun subclass.
· Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.
Contoh dalam program
Belajar.Java
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}
}
Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.
class belajar{
public String x =”Pintar”;
private String y = “Java”;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(“Panggil X : “+panggil.x);
System.out.println(“Panggil Y : “+panggil.y);
}
}
Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.
Class diagram
Nama berfungsi memberi identitas pada sebuah kelas
Atribut berfungsi untuk memberi karakteristik pada data yang dimiliki suatu objek dalam kelas
Operasi berfungsi memberikan sebuah fungsi pada objek.
Berikut pengimplementasian diagram kelas sederhana menggunakan bahasa pemrograman java.
Implementasi kelas
Ada empat langkah umum yang digunakan untuk mentransformasikan kelas – kelas
menjadi kode dalam bahasa pemrograman berorientasi objek empat langkah tersebut
yakni :
1. membuat implementasi kode java untuk kelas – kelas yang dijumpai di diagram kelas. Dalam hal ini, kita perlu membuat konstruktor serta setter dan getter untuk kelas – kelas yang bersangkutan.
2. mengimplementasikan attribut – attribut yang ada di dalam kelas menjadi kode – kode pada bahasa java, hal ini sesuai dengan konsep penyembunyian(encapsulation) dalam paradigma OOP, nah dalam pengimplementasiannya attribut ini umumnya bersifat PRIVATE(-).
3. mengimplementasikan metode beserta fungsi menjadi kode dalam bahasa java, untuk metode serta fungsi umumnya memiliki visibilitas PUBLIK (+), ini bertujuan metode dan fungsi dapat digunakan oleh kelas – kelas atau objek lain yang memerlukannya.
4. mengimplementasikan attribut – attribut serta metoda – metoda yang akan diwariskan(menurut hierarki pewarisan) menjadi bervisibilitas protected sehingga kelas – kelas lain(sub kelas) yang berada pada super kelas(kelas utama) dapat memanfaatkannya, tanpa perlu melakukan penulisan ulang, langkah inilah yang memungkinkan adanya penggunaan ulang komponen(reusable).
1. membuat implementasi kode java untuk kelas – kelas yang dijumpai di diagram kelas. Dalam hal ini, kita perlu membuat konstruktor serta setter dan getter untuk kelas – kelas yang bersangkutan.
2. mengimplementasikan attribut – attribut yang ada di dalam kelas menjadi kode – kode pada bahasa java, hal ini sesuai dengan konsep penyembunyian(encapsulation) dalam paradigma OOP, nah dalam pengimplementasiannya attribut ini umumnya bersifat PRIVATE(-).
3. mengimplementasikan metode beserta fungsi menjadi kode dalam bahasa java, untuk metode serta fungsi umumnya memiliki visibilitas PUBLIK (+), ini bertujuan metode dan fungsi dapat digunakan oleh kelas – kelas atau objek lain yang memerlukannya.
4. mengimplementasikan attribut – attribut serta metoda – metoda yang akan diwariskan(menurut hierarki pewarisan) menjadi bervisibilitas protected sehingga kelas – kelas lain(sub kelas) yang berada pada super kelas(kelas utama) dapat memanfaatkannya, tanpa perlu melakukan penulisan ulang, langkah inilah yang memungkinkan adanya penggunaan ulang komponen(reusable).
/*——————>Bofile Mobil.java —————————*/
public class Mobil {
//instansi
private String merk;
private String jenis;
private String bahanbakar;
private double cc;
public class Mobil {
//instansi
private String merk;
private String jenis;
private String bahanbakar;
private double cc;
//konstruktor
public Mobil(String mrk, String jns){
merk = mrk;
jenis = jns;
}
public void setMerk(String mrk){merk =mrk ;}
public void setJenis(String jns){jenis = jns;}
public void setBahanBakar(String bb){bahanbakar = bb;}
public void setCC(double cyl){cc = cyl;}
public String getMerk(){return merk;}
public String getJenis(){return jenis;}
public String getBB(){return bahanbakar;}
public double getCC(){return cc;}
//main class
public static void main(String [] args){
Mobil mbl = new Mobil(“Marcedes Benz”,”Sport”);
mbl.setBahanBakar(“Bensin“);
mbl.setCC(15000.00);
//dapatkan informasi dari mobil
System.out.println(“Merk : “+mbl.getMerk()+”\n”);
System.out.println(“Jenis : “+mbl.getJenis()+”\n”);
System.out.println(“Bahan Bakar : “+mbl.getBB()+”\n”);
System.out.println(“Cylinder : “+mbl.getCC()+”\n”);
}
}
/*——————>eofile Mobil.java —————————*/
public Mobil(String mrk, String jns){
merk = mrk;
jenis = jns;
}
public void setMerk(String mrk){merk =mrk ;}
public void setJenis(String jns){jenis = jns;}
public void setBahanBakar(String bb){bahanbakar = bb;}
public void setCC(double cyl){cc = cyl;}
public String getMerk(){return merk;}
public String getJenis(){return jenis;}
public String getBB(){return bahanbakar;}
public double getCC(){return cc;}
//main class
public static void main(String [] args){
Mobil mbl = new Mobil(“Marcedes Benz”,”Sport”);
mbl.setBahanBakar(“Bensin“);
mbl.setCC(15000.00);
//dapatkan informasi dari mobil
System.out.println(“Merk : “+mbl.getMerk()+”\n”);
System.out.println(“Jenis : “+mbl.getJenis()+”\n”);
System.out.println(“Bahan Bakar : “+mbl.getBB()+”\n”);
System.out.println(“Cylinder : “+mbl.getCC()+”\n”);
}
}
/*——————>eofile Mobil.java —————————*/
Ref :
https://superyogi.wordpress.com/pemrograman-berorientasi-object/
https://kartikawahyuniii.wordpress.com/2017/01/07/pengertian-encapsulation-inheritance-polimorphisme-dan-package-serta-contoh-listing-program/
https://fauzalinformatika.blogspot.com/2016/11/tata-cara-membuat-class-diagram-uml.html
Komentar
Posting Komentar