1 Abstraction Abstract class Abstract Method 2 Encaptulation

1. Abstraction - Abstract class - Abstract Method 2. Encaptulation

intro Sepeda? Mobil? Pesawat? Apapun jenisnya, Semuanya adalah kendaraan Dan pasti kendaraan bisa jalan kan. . https: //www. teknovanza. com/2018/11/bagian-luar-mobil-kenali-namanya. html Bagaimana kalau kita katakan “kendaraan berjalan” Maka ada yg bertanya 1. Cara jalannya bgmana? 2. Terbang atau jalan di aspal? 3. dll deh. . 2

Intro Kata kendaraan masih bersifat abstrak maka ini di sebut abstraction Tetapi lain ceritanya kalo saya katakan “mobil berjalan di aspal“, maka hal itu bisa kita katakan barang nyata atau konkret. � Didalam Pemrograman Java definisi abstraction adalah proses menyembunyikan detail tertentu dan hanya menampilkan informasi penting kepada pengguna. Pengguna tidak perlu mengetahui bagaimana objek bisa melakukannya. � Abstraksi dapat dicapai dengan abstract class dan abstract method Abstract class adalah class yg mempunyai setidaknya satu abstract method. Abstract method adalah method yang tidak memiliki body (hanya deklarasi method). � � 3

Membuat abstract class Untuk membuat sebuah kelas atau method menjadi abstrak maka menggunakan keyword abstract setelah modifier pada deklarasi kelas atau method. � Contoh kelas abstrak � abstract class Nama. Kelas { // deklarasi attribute // definisi/prototype method } public abstract class Unggas { // deklarasi attribute // definisi/prototype method } 4

Contoh // ini abstrak method void katakan. Hello(); Tdk ada body // ini bukan abstrak method karena punya implementasi di body method void greeting() { System. out. println("Hello Java"); } body 5

Kegunaan Class Abstract class tidak bisa digunakan secara langsung, maka harus dibuat bentuk konkritnya dengan cara membuat implementasi dari method 2 yg masih abstrak. Ini bisa dilakukan dengan pewarisan (inheritance) � Abstract class biasanya digunakan class induk dari class 2 yg lain � Abstract class dibuat karena pada kondisi tertentu class induk tidak ingin dibuat objek, kode methodnya belum jelas implementasinya seperti apa. � � Gunakan class abstract untuk mendefinisikan behavior secara umum sebagai superclass, sedangkan subclass menyediakasimplementasi detail. 6

Contoh Class Abstract // Abstract class public abstract class Animal { Class Abstract // Abstract method (tidak mempunyai body) public abstract void animal. Sound(); Sleep Method reguler Krn mpyai body // Subclass (inherit from Animal) class Pig extends Animal { public void animal. Sound() { // body dari animal. Sound() disajikan disini System. out. println("The pig says: wee"); } } // Regular method public void sleep() { System. out. println("Zzz"); } } Body method sleep class My. Main. Class { public static void main(String[] args) { Pig my. Pig = new Pig(); // Create a Pig object my. Pig. animal. Sound(); my. Pig. sleep(); } } Class untuk melihat hasil program 7

Contoh abstract class Class turunan, Class abstract Bangun 2 D. java public abstract class Bangun 2 D { public abstract void cetak. Luas(); public abstract void cetak. Keliling(); } Class main, Bangun 2 DDemo. java class Bangun 2 DDemo { public static void main(String[]args) { Bujur. Sangkar bs=new Bujur. Sangkar(5); bs. cetak. Keliling(); bs. cetak. Luas(); } } Bujur. Sangkar. java public class Bujur. Sangkar extends Bangun 2 D { private int sisi; public Bujur. Sangkar(int sisi) { this. sisi = sisi; } public void cetak. Luas() { Int luas = sisi * sisi; System. out. println(luas); } public void cetak. Keliling() { int keliling = 4 * sisi; System. out. println(keliling); } } 8

Encaptulation 9

Encapsulation � Enkapsulasi merupakan proses pembungkusan (encapsulation) dari suatu kelas atau biasa disebut information hiding. � Mekanisme menyembunyikan suatu proses dan data dalam sistem untuk menghindari interferensi, dan menyederhanakan penggunaan proses itu sendiri � Contoh riil di dunia nyata: ▪Tongkat transmisi (gigi) pada mobil ▪Tombol on/off pengaturan suhu pada AC � Class access level (public, protected, private) 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 � Memiliki mekanisme untuk membuangkus sebuah data/variable, data tidak bisa diakses oleh class lain, semua data harus di set menjadi private, agar class lain tidak dapat mengaksesnya. � Data/variable hanya bisa diakses oleh class itu sendiri, untuk dapat mengakses data / variabel tsb dengan menggunakan method public Getter dan Setter

Encapsulation dan Access Modifier Suatu cara untuk meyembunyikan informasi detail dari suatu class, berupa information hiding dan interface to acsess data. Hak akses data dan perilaku objek memiliki tingkatan: • • • Private Ketika mendeklarasikan data dan method dengan private, maka data dan method tersebut hanya dapat diakses oleh kelas yang memilikinya saja. Protected Ketika mendeklarasikan data dan method dengan protected, maka data dan method tersebut dapat diakses oleh kelas yang memilikinya dan kelas-kelas yang masih memiliki hubungan turunan. Public Data dan method yang bersifat public akan dapat diakses oleh semua bagian dalam program. Semua bagian dalam program adalah semua kelas yang memiliki hubungan turunan maupun yang tidak memiliki hubungan sama sekali

Manfaat dari proses enkapsulasi Modularitas Kode sumber dari sebuah objek dapat dikelola secara independen dari kode sumber objek yang lain. � Information Hiding Karena kita dapat menentukan hak akses sebuah variabel/method dari objek, dengan demikian kita bisa menyembunyikan informasi yang tidak perlu diketahui objek lain. �


Encapsulation � Enkapsulasi data juga dapat dilakukan dengan cara: 1. mendeklarasikan instance variable sebagai private 2. mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut

public class restoran { //Variable (Private) private String menu; private double harga; private boolean spesial; //Method Setter (Public) dengan Parameter public void set. Menu(String menu){ this. menu = menu; } public void setharga(double harga){ this. harga = harga; } public void set. Spesial(boolean spesial){ this. spesial = spesial; } //Method Getter (Public) public String get. Menu(){ return menu; } public double get. Harga(){ return harga; } public boolean get. Spesial(){ return spesial; } class Aksi. Encapsulation { public static void main(String[] args){ //Membuat Instence/Objek dari Class restoran data = new restoran(); //Memasukan Data pada Variable data. set. Menu("Ayam Goreng"); data. setharga(17000. 0); data. set. Spesial(true); //Memanggil Method Get dari Class restoran dan Menampilkannya System. out. println("Menu Makanan: "+data. get. Menu()); System. out. println("Harga Makanan: Rp. "+data. get. Harga()); System. out. println("Menu Spesial: "+data. get. Spesial()); } } } 15

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 Sepeda. Beraksi. java public class Sepeda. Beraksi{ public static void main(String[] args) { Sepeda](http://slidetodoc.com/presentation_image_h/145de46680f921a5300bb8a1b28089ef/image-17.jpg)
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; } }

Contoh pengaruh aksen public dan private public class Mahasiswa { int nim; public String nama; private double ipk; public void set. IPK(double nilai) { ipk = nilai; } public double get. IPK() { return ipk; } } public class Pengaruh. Hak. Akses { public static void main(String[] args) { Mahasiswa Yahya = new Mahasiswa(); Yahya. nim = 1009; //BENAR, karena nim secara default bersifat public Yahya. nama = "Yahya Al. Mahandiz"; //BENAR, karena nama bersifat public Yahya. ipk = 3. 77; //SALAH, karena ipk bersifat private Yahya. set. IPK(3. 77); //BENAR, karena method set. C() bersifat public } } System. out. println("NIM : " +Yahya. nim); System. out. println("Nama : " + Yahya. nama); System. out. println("IPK : " +Yahya. get. IPK());

Contoh pengaruh aksen public dan private class musik. Pop { private String judul. Lagu; // hanya dapat dikenali oleh kelas musik. Pop protected void set. Judul(String nama) { judul. Lagu = nama; } // hanya dapat dikenali oleh kelas musik. Pop dan turunannya protected String get. Judul () { return judul. Lagu; } } class musik. JPop extends musik. Pop { private int tahun. Terbit; // constructor kelas B musik. JPop(String judul, int tahun) { //judul. Lagu = judul; // SALAH, karena a tidak dikenali di sini set. Judul(judul); // menggunakan method set. Judul() tahun. Terbit = tahun; } public void show. Data() { // menggunakan method get. Judul() System. out. println("Judul Lagu : " + get. Judul()); System. out. println("Tahun Terbit : " + tahun. Terbit); } } class musiik. Jazz { private String penyanyi; public void set. Penyanyi(String nama) { // set. Judul("Indonesia Raya"); /* SALAH, set. Judul() tidak dikenal di sini */ penyanyi = nama; } public String get. Penyanyi() { return penyanyi; } public void show. Penyanyi() { //System. out. println("Judul lagu : " + get. Judul()); // SALAH System. out. println("Penyanyi : " + penyanyi); } } public class demo. Enkapsulasi { public static void main(String[] args) { // melakukan instansiasi terhadap kelas musik. JPop obj = new musik. JPop("I Feel My Soul", 2008); obj. show. Data(); //obj. set. Judul(nama); System. out. println("Judul lagu : " + obj. set. Judul()); } }
- Slides: 20