28431 3 enkapsulasi

24
ENKAPSULASI Pemrograman Berorientasi Objek Oleh : Novri Hadinata,S.kom., M.Kom

Transcript of 28431 3 enkapsulasi

ENKAPSULASI

Pemrograman Berorientasi Objek

Oleh :Novri Hadinata,S.kom., M.Kom

KonsepEnkapsulasi memiliki arti mengelompokkan

program kedalam satu unit sehingga program menjadi mudah digunakan.

Mampu menangani berbagai input yang diberikan dan menghasilkan output yang benar.

Melindungi program dari pengaksesan variabel kritis oleh proses atau perubahan oleh programer selama tahap pembangunan program.

ManfaatModularitas

Source code dari sebuah class dapat dikelola secara independen dari source code class yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class yang menggunakannya.

Information HidingPenyembunyian informasi yang tidak perlu diketahui objek lain.

Enkapsulasipublic class Siswa{

public int nim;public String nama;

public void Info() {System.out.println(“Mahasiswa

UIN”);}

}

Bagaimana mengakses anggota-anggota class Siswa?

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 class sehingga anggota-anggota class tersebut tidak dapat diakses dari luar?•Dengan memberikan akses control private ketika mendeklarasikan suatu atribut atau method.

Enkapsulasipublic class Siswa{ private int nim; public String nama; public void Info() { System.out.println(“Lagi kuliah

PBO”); }}

Enkapsulasipublic 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;

EnkapsulasiMisal: NIM dari siswa-siswa TI09 : range 1-10. Jika NIM tidak dienkapsulasi :–Siswa dapat memasukkan sembarang nilai,

sehingga perlu melakukan penyembunyian informasi (information hiding) thd atribut nim, sehingga nim tidak bisa diakses secara langsung.

Lalu, kalau atribut nim tersebut disembunyikan, bagaimana cara mengakses atribut nim itu untuk memberikan atau mengubah nilai?.

–Perlu suatu interface untuk mengakses data, yang berupa method dimana didalamnya terdapat implementasi untuk mengakses data nim.

Enkapsulasipublic class Siswa{ private int nim; public String nama; public void isiNim(int n) { if (n>=1 &&n<=10) nim=n; Else System.out.println("Error...!!"); } public void Info() { System.out.println(“Saya Mhs UIN”); }}

ConstruktorAdalah 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)

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

ConstruktorKarena konstruktor adalah method yang

pertama kali dijalankan pada saat suatu obyek dibuat, maka konstruktor sangat berguna untuk menginisialisasi data member.

public class Siswa{ private int nim; public Siswa() { nim=0; }}

ConstruktorSiswa TA = new Siswa(5);

public class Siswa{ private int nim; public Siswa(int n) { nim=n; }}

Overloading ConstructorSuatu 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; }}

PackagePackage 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.

PackageMisalnya saja kita mempunyai 2 buah class

Siswa, class Siswa untuk mahasiswa jurusan IT class Siswa untuk mahasiswa Telkom.

PackagePada 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.

Package

Import classSuatu 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.

Import classJika kita ingin meng-import semua class yang

ada pada package it, maka kita dapat mendeklarasikannya dengan menuliskan tanda *.

import it.*;

Kata Kunci thisKata 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

Kata Kunci thisNilai variabel n pada parameter konstruktor

itu akan dipakai untuk menginisialisasi nim atau umur?

nim

nim

nim

Kata Kunci this

public class Siswa{ private int nim; private int umur; public Siswa(int nim){ this.nim= nim; }}

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; }}