13216 3 enkapsulasi
-
Upload
universitas-bina-darma-palembang -
Category
Engineering
-
view
49 -
download
3
Transcript of 13216 3 enkapsulasi
![Page 1: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/1.jpg)
Pemrograman Berorientasi Objek
Oleh :
Novri Hadinata,S.kom., M.Kom
![Page 2: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/2.jpg)
Konsep
Enkapsulasi memiliki arti mengelompokkan programkedalam satu unit sehingga program menjadi mudahdigunakan.
Mampu menangani berbagai input yang diberikan danmenghasilkan output yang benar.
Melindungi program dari pengaksesan variabel kritisoleh proses atau perubahan oleh programer selamatahap pembangunan program.
![Page 3: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/3.jpg)
Manfaat
Modularitas
Source code dari sebuah class dapat dikelola secaraindependen dari source code class yang lain.Perubahan internal pada sebuah class tidak akanberpengaruh bagi class yang menggunakannya.
Information Hiding
Penyembunyian informasi yang tidak perlu diketahuiobjek lain.
![Page 4: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/4.jpg)
Enkapsulasipublic class Siswa{
public int nim;
public String nama;
public void Info() {
System.out.println(“Mahasiswa UIN”);
}
}
Bagaimana mengakses anggota-anggota class Siswa?
![Page 5: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/5.jpg)
Enkapsulasipublic class IsiData{public static void main(Stringargs[]) {Siswa TI09=new Siswa();TI09.nim=5;TI09.nama=”Andi”;TI09.Info();}}
•Bagaimana menyembunyikan information dari suatu classsehingga anggota-anggota class tersebut tidak dapat diakses dariluar?•Dengan memberikan akses control private ketika mendeklarasikan suatu atribut atau method.
![Page 6: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/6.jpg)
Enkapsulasipublic class Siswa{
private int nim;
public String nama;
public void Info() {
System.out.println(“Lagi kuliah PBO”);
}
}
![Page 7: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/7.jpg)
Enkapsulasi public class IsiData{
public static void main(Stringargs[]) {
Siswa TI09 =new Siswa();
TI09.nim=5;
TI09.nama=”Andi”;
TI09.Info();
}
}
HasilRuning?Hallo.java:4: nim has private access in Siswa TI09.nim=5;
![Page 8: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/8.jpg)
Enkapsulasi Misal: NIM dari siswa-siswa TI09 : range 1-10.
Jika NIM tidak dienkapsulasi :
–Siswa dapat memasukkan sembarang nilai, sehinggaperlu melakukan penyembunyian informasi(information hiding) thd atribut nim, sehingga nimtidak bisa diakses secara langsung.
Lalu, kalau atribut nim tersebut disembunyikan,bagaimana cara mengakses atribut nim itu untukmemberikan atau mengubah nilai?.
–Perlu suatu interface untuk mengakses data, yangberupa method dimana didalamnya terdapatimplementasi untuk mengakses data nim.
![Page 9: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/9.jpg)
Enkapsulasipublic class Siswa{
private int nim;public String nama; public void isiNim(int n) {
if (n>=1 &&n<=10)nim=n;
ElseSystem.out.println("Error...!!");
}public void Info() {
System.out.println(“Saya Mhs UIN”);}
}
![Page 10: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/10.jpg)
Construktor Adalah suatu method yang pertama kali dijalankan
pada saat pembuatan suatu obyek. Konstruktor mempunyai ciri yaitu:
–mempunyai nama yang sama dengan nama class
–tidak mempunyai modifier (seperti void, int, double dll)
![Page 11: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/11.jpg)
ConstruktorSetiap class pasti mempunyai konstruktor.
•Jika kita membuat suatu class tanpa menuliskan konstruktornya , maka kompiler dari Java akan menambahkan sebuah konstruktor kosong.
•Kompiler Java akan menambahkan konstruktor kosong
![Page 12: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/12.jpg)
Construktor Karena konstruktor adalah method yang pertama kali
dijalankan pada saat suatu obyek dibuat, makakonstruktor sangat berguna untuk menginisialisasidata member.
public class Siswa{private int nim;public Siswa() {
nim=0;}
}
![Page 13: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/13.jpg)
Construktor Siswa TA = new Siswa(5);
public class Siswa{private int nim;public Siswa(int n) {
nim=n;}
}
![Page 14: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/14.jpg)
Overloading Constructor Suatu class dapat mempunyai lebih dari 1 konstruktor
dengan syarat daftar parameternya tidak boleh ada yang sama.
public class Siswa{private int nim;public Siswa() {
nim=0;}public Siswa(int n) {
nim=n;}
}
![Page 15: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/15.jpg)
Package Package adalah suatu cara untuk memenej class-class
yang kita buat.
Package akan sangat bermanfaat jika class-class yang kita buat sangat banyak sehingga perlu dikelompokkan berdasarkan kategori tertentu.
![Page 16: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/16.jpg)
Package Misalnya saja kita mempunyai 2 buah class Siswa,
class Siswa untuk mahasiswa jurusan IT
class Siswa untuk mahasiswa Telkom.
![Page 17: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/17.jpg)
Package Pada saat deklarasikan package, class tersebut harus
disimpan pada suatu direktori yang sama dengan nama package-nya.
Berkenaan dengan class Siswa diatas, class Siswa pada package it harus disimpan direktori it, dan class Siswa pada package telkom harus disimpan direktori telkom.
![Page 18: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/18.jpg)
Package
![Page 19: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/19.jpg)
Import class Suatu class dapat meng-import class lainnya sesuai
dengan nama package yang dipunyainya.
Misalnya saja kita dapat meng-import class Siswa.java dalam package it dengan mendeklarasikan kata kunci import.
![Page 20: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/20.jpg)
Import class Jika kita ingin meng-import semua class yang ada pada
package it, maka kita dapat mendeklarasikannya dengan menuliskan tanda *.
import it.*;
![Page 21: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/21.jpg)
Kata Kunci this
Kata kunci this sangat berguna untuk menunjukkan suatu member dalam class-nya sendiri. This dapat digunakan baik untuk data member maupun untuk function member, serta dapat juga digunakan untuk konstruktor.
–this.data_member >> merujuk pada data member
–this.function_member() >> merujuk pada function member
–this() >> merujuk pada konstruktor
![Page 22: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/22.jpg)
Kata Kunci this Nilai variabel n pada parameter konstruktor itu akan
dipakai untuk menginisialisasi nim atau umur?
nim nim
nim
![Page 23: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/23.jpg)
Kata Kunci this
public class Siswa{private int nim;private int umur;public Siswa(int nim){
this.nim= nim;}
}
![Page 24: 13216 3 enkapsulasi](https://reader035.fdocument.pub/reader035/viewer/2022081721/55ace4c81a28ab42058b484e/html5/thumbnails/24.jpg)
Kata Kunci thisThis dapat juga dipakai untuk memanggil
konstruktor yang lain pada class yang bersangkutan.
public class Siswa{private int nim;public Siswa() {
this(0);}
public Siswa(int n) {nim=n;}
}