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

28431 3 enkapsulasi

Aug 12, 2015

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 28431 3 enkapsulasi

ENKAPSULASI

Pemrograman Berorientasi Objek

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

Page 2: 28431 3 enkapsulasi

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.

Page 3: 28431 3 enkapsulasi

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.

Page 4: 28431 3 enkapsulasi

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: 28431 3 enkapsulasi

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.

Page 6: 28431 3 enkapsulasi

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

PBO”); }}

Page 7: 28431 3 enkapsulasi

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;

Page 8: 28431 3 enkapsulasi

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.

Page 9: 28431 3 enkapsulasi

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

Page 10: 28431 3 enkapsulasi

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)

Page 11: 28431 3 enkapsulasi

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: 28431 3 enkapsulasi

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

Page 13: 28431 3 enkapsulasi

ConstruktorSiswa TA = new Siswa(5);

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

Page 14: 28431 3 enkapsulasi

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

Page 15: 28431 3 enkapsulasi

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.

Page 16: 28431 3 enkapsulasi

PackageMisalnya saja kita mempunyai 2 buah class

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

Page 17: 28431 3 enkapsulasi

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.

Page 18: 28431 3 enkapsulasi

Package

Page 19: 28431 3 enkapsulasi

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.

Page 20: 28431 3 enkapsulasi

Import classJika kita ingin meng-import semua class yang

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

import it.*;

Page 21: 28431 3 enkapsulasi

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

Page 22: 28431 3 enkapsulasi

Kata Kunci thisNilai variabel n pada parameter konstruktor

itu akan dipakai untuk menginisialisasi nim atau umur?

nim

nim

nim

Page 23: 28431 3 enkapsulasi

Kata Kunci this

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

Page 24: 28431 3 enkapsulasi

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