Karakteristik Pemrograman Berorientasi Objek Encapsulation Inheritance Polymorphism Encapsulation
Karakteristik Pemrograman Berorientasi Objek Encapsulation, Inheritance, Polymorphism
Encapsulation Mekanisme menyembunyikan suatu proses dan data dalam sistem untuk menghindari interferensi, dan menyederhanakan penggunaan proses itu sendiri Tongkat transmisi (gigi) pada mobil Tombol on/off/pengaturan suhu pada AC Class access level (public, privat) adalah implementasi dari konsep encapsulation Enkapsulasi data dapat dilakukan dengan cara: 1. mendeklarasikan instance variable sebagai private 2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut
Encapsulation Enkapsulasi data juga dapat dilakukan dengan cara: 1. mendeklarasikan instance variable sebagai private 2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut
Sepeda. java public class Sepeda{ int gir; void set. Gir(int pertambahan. Gir) { gir= gir+ pertambahan. Gir; } int get. Gir() { return gir; } }
Sepeda. Beraksi. java public class Sepeda. Beraksi{ public static void main(String[] args) { Sepeda sepedaku = new Sepeda(); sepedaku. set. Gir(1); /* Variabel bisa diubah atau tidak sengaja diubah. Hal ini berbahaya dan sering menimbulkan bug. Berikan access modifier private pada instance variable */ sepedaku. gir = 3; System. out. println(“Gir saat ini: “ + sepedaku. get. Gir()); } }
Sepeda. java public class Sepeda{ private int gir; // access modifier private pada instance variable void set. Gir(int pertambahan. Gir) { gir= gir+ pertambahan. Gir; } int get. Gir() { return gir; } }
Latihan Encapsulasi Buatlah contoh program Encapsulasi dengan menggunakan variabel NIM dan Nama pada Class Mahasiswa. Tambahkan method kegiatan dengan parameter lama dan jenis dari kegiatan tsb. Panggillah Class Mahasiswa dengan menggunakan pemanggil construktor.
Mahasiswa. java class public class Mahasiswa{ private int nrp; private String nama; public Mahasiswa (int nrp, String nama){ this. nrp = nrp; this. nama = nama; } public int get. Nrp(){ return nrp; } public String get. Nama(){ return nama; } }
coba. java main class public class coba{ public static void main (String args []){ Mahasiswa anak = new Mahasiswa(201302435, "Agung Imamudin"); System. out. println("NRP : "+anak. get. Nrp()+"n. Nama : "+anak. get. Nama()); } }
Inheritance (Pewarisan) Perngertian dari inheritance adalah dimana sebuah objek dapat mempunyai objek turunan. Dalam hal pemrogramman maka dapat diimpelementasikan dengan sebuah class yang mempunyai class turunan. Class yang mempunyai class turunan disebut sebagai Parent Class atau Base Class, sedangkan class yang menjadi turunan dari Parent Class disebut sebagai Subclass atau Child Class. Secara sederhana misal Hewan adalah parent class maka child class bisa berupa ayam, kucing, bebek dll.
Inheritance (Pewarisan) Suatu class dapat mewariskan atribut dan method kepada class lain (subclass), serta membentuk class hierarchy Penting untuk Reusability Java Keyword: extends
Cara penulisan subclassnya adalah sebagai berikut: Terdapat beberapa software di komputer. Software tersebut beraneka ragam: software game, software edukasi, dan lain-lain. Biarpun berbeda jenisnya, software tersebut pasti memiliki kesamaan dengan software sejenisnya. Dengan kata lain, apabila dilihat dari segi pemrograman, maka class Software adalah superclass, sedangkan class Game adalah subclassnya. Jadi penulisan code java-nya adalah sebagai berikut:
Sepeda. java public class Sepeda{ private int gir; void set. Gir(int pertambahan. Gir) { gir= gir+ pertambahan. Gir; } int get. Gir() { return gir; } }
Class Sepeda. Gunung Mewarisi Class Sepeda public class Sepeda. Gunung extends Sepeda{ public class Sepeda. Gunung. Beraksi { public static void main(String[] args) { private int sadel; void set. Sadel (int jumlah) { sadel = get. Gir() - jumlah; } int get. Sadel(){ return sadel; } Sepeda. Gunung sg=new Sepeda. Gunung(); sg. set. Gir(3); System. out. println(sg. get. Gir()); sg. set. Sadel(1); System. out. println(sg. get. Sadel()); } } } Sepeda. Gunung. java Sepeda. Gunung. Beraksi. java
Latihan: Inheritance Matematika 1. Buat class Matematika. Canggih yang merupakan inherit dari class Matematika § Tambahkan method modulus(int a, int b) yang menghitung modulus dari a dan b Operator modulus adalah % 2. Buat class Matematika. Canggih. Beraksi yang memanggil method pertambahan, perkalian dan modulus
Latihan: Inheritance Matematika 1. Buat class Matematika. Canggih. Sekali yang merupakan inherit dari class Matematika. Canggih 1. 2. Tambahkan method pertambahan. Tiga(int a, int b, int c) yang menghitung pertambahan dari a, b dan c a + b + c 2. Buat class Matematika. Canggih. Banget. Beraksi yang memanggil method pertambahan, perkalian, modulus, pertambahan. Tiga
Polymorphism Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang berbeda Implementasi konsep polymorphism: 1. Overloading: Kemampuan untuk menggunakan nama yang sama untuk beberapa method yang berbeda parameter (tipe dan atau jumlah) 2. Overriding: Kemampuan subclass untuk menimpa method dari superclass, yaitu dengan cara menggunakan nama dan parameter yang sama pada method
Polymorphism – Overloading class Mobil { String warna; int tahun. Produksi; public Mobil(String warna, int tahun. Produksi){ this. warna = warna; this. tahun. Produksi = tahun. Produksi; } public Mobil(){ } void info(){ System. out. println("Warna: " + warna); System. out. println("Tahun: " + tahun. Produksi); } } public class Mobil. Konstruktor{ public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”, 2003); mobilku. info(); Mobil mobilmu = new Mobil(); mobilmu. info(); } }
Polymorphism – Overloading class Lingkaran{ void gambar. Lingkaran(){ } void gambar. Lingkaran(int diameter){. . . } void gambar. Lingkaran(double diameter){. . . } void gambar. Lingkaran(int diameter, int x, int y, int warna, String nama. Lingkaran){. . . } }
Polymorphism - Overriding public class Sepeda{ private int gir; void set. Gir(int pertambahan. Gir) { gir= gir+ pertambahan. Gir; } int get. Gir() { return gir; } }
Polymorphism - Overriding public class Sepeda. Gunung extends Sepeda{ public class Sepeda. Gunung. Beraksi { public static void main(String[] args) { void set. Gir(int pertambahan. Gir) { super. set. Gir(pertambahan. Gir); gir = 2*get. Gir(); } } Sepeda. Gunung sg=new Sepeda. Gunung(); sg. set. Gir(2); System. out. println(sg. get. Gir()); sg. set. Gir(3); System. out. println(sg. get. Gir()); } } Sepeda. Gunung. java Sepeda. Gunung. Beraksi. java
Latihan: Overloading pada Matematika 1. 2. 3. 4. 5. Kembangkan class Matematika, Matematika. Canggih dan Matematika. Beraksi Lakukan overloading pada Method yang ada (pertambahan, pengurangan, perkalian, pembagian, modulus) Tambahkan method baru bertipe data double (pecahan) dan memiliki 3 parameter Uji di kelas Matematika. Beraksi dengan parameter pecahan: 12. 5, 28. 7, 14. 2 Misalnya: pertambahan(12. 5, 28. 7, 14. 2) pertambahan(23, 34) pertambahan(12, 28, 14) pertambahan(3. 4, 4. 9)
Matematika. java public class Matematika{ void pertambahan (int a, int b){ int hasil= a + b; System. out. println(“hasil: ” + hasil); } void pertambahan (double a, double b, double c){ double hasil= a + b + c; System. out. println(“hasil: ” + hasil); }. . . }
Skill Check 1. 2. 3. 4. 5. 6. 7. Class: Halo. Semarang Variable: Mobil Method: Bank Parameter: Matematika Encapsulation: Sepeda Inheritance: Matematika. Canggih Polimorphism: Matematika
- Slides: 24