DATA
#5
Object, Class, Class
Tujuan Pertemuan
•
Memahami prinsip Object pada pemrograman.
•
Memahami tentang encapsulation and information
hiding pada object.
•
Mampu implementasi class dan dokumentasi class
untuk diterapkan pada object.
Object Oriented Programming
Tentang Object
•
Object
merupakan entitas/
data type
yang memiliki
struktur dan
state.
•
Tiap
object
memiliki operasi yang disediakan untuk
mengakses atau memanipulasi
state
-nya.
•
Object
merupakan unit
atomic
: bagian-bagian dari
Object Oriented Programming
Tentang Object
•
Atomicity
dikenal juga dengan
information hiding
.
•
Information hiding
:
User tidak dapat mengakses langsung ke
bagian-bagian atau implementasi
object
;
hal tersebut dapat diakses secara tidak langsung,
melalui
method
yang disediakan pada
object
.
Wa
rn
ing
:
“D
o n
ot
op
en
—
no
us
er
se
rv
ice
ab
le
pa
rts
in
Object Oriented Programming
•
Suatu peradigma pemrograman yang menggunakan object
(Struktur Data yang terdiri dari data fields dan methods
•
Merupakan paradigma pemrograman yang
berorientasikan kepada objek.
Semua data & fungsi di dalam paradigma ini dibungkus
dalam
class
atau objects
•
Support
code reuse
Object Oriented Programming
•
Inheritance
Suatu cara untuk
reuse
(menggunakan ulang) code dari objects yg ada atau
membangun
subtype
dari
object
yang sudah ada.
•
Encapsulation
Menyembunyikan detil keseluruhan dari implementasi (
information hiding
).
Untuk menyembunyikan interface dari implementasi digunakan kata
kunci
private
.
•
Polymorphism
Memberikan suatu kemampuan pada program untuk berkembang secara
terus menerus.
Baik pada tahap pengembangan awal ataupun pada saat ingin menambahkan
kemampuan-kemampuan yang baru.
Class
“Suatu class pada java terdiri dari
fields
yang berfungsi
untuk menyimpan data dan
methods
yang nantinya akan
digunakan oleh instances dari class” .
Class
“Merupakan spesifikasi dari suatu object yang mengacu
padanya”.
[cay horstmann, Big Java, 2.4]“Merupakan type dari suatu object”.
[cay horstmann, Big Java, 2.4]Class
public class IntCell {
// Public methods
public int read( ) {
return storedValue;
}
public void write( int x ){
storedValue = x;
}
/* Private internal data
representation */
private int storedValue;
}
public class IntCell {
// Public methods
public int read( ) {
return storedValue;
}
public void write( int x ){
storedValue = x;
}
/* Private internal data
representation */
private int storedValue;
}
IntCell
Data: storedValue Data: storedValue Method: read() write(int x) Method: read() write(int x)Kita bisa menggunakan method
read()
dan
write()
pada object yang memiliki
type class IntCell.
Kita bisa menggunakan method
read()
dan
write()
pada object yang memiliki
type class IntCell.
Contoh
:
IntCell m = new IntCell( );
m.write( 5 );
Contoh
:
Class
Contoh Class dalam Program Java
// IntCell class
// int read( ) --> Returns the stored value
// void write( int x ) --> x is stored
public class IntCell {
// Public methodspublic int read( ) {
return storedValue;
}
public void write( int x ) {
storedValue = x;
}
// Private internal data representation
private int storedValue;
}
// IntCell class
// int read( ) --> Returns the stored value
// void write( int x ) --> x is stored
public class IntCell {
// Public methods
public int read( ) {
return storedValue;
}
public void write( int x ) {
storedValue = x;
}
// Private internal data representation
private int storedValue;
}
Class
IntCell
Method
read() dengan tipe
public, dgn return value
Method
write() dengan tipe
public, tanpa return value (void)
Field
storedValue dengan tipe
private.
Field
adalah member yang menyimpan
data, biasanya memiliki tipe
private
.
Method
adalah member melakukan aksi
Field
adalah member yang menyimpan
data, biasanya memiliki tipe
private
.
Class
•
Public members
merupakan bagian dari
class
yang
dapat dilihat oleh pengguna object.
•
Private members merupakan bagian dari
class
yang
tidak dapat dilihat (hidden) dari sisi pengguna object.
(
nonclass routines
).
public
int
read( ) {
public
int
read( ) {
private int storedValue;
Class
•
Methods yang mengembalikan nilai harus disertakan
tipe
dari nilai yang di kembalikannya, pada deklarasi
method
•
Methods yang tidak mengembalikan nilai harus
disertakan void, pada deklarasi method
public
int
read( ) {
public
int
read( ) {
public
void
write( int x ) {
Class
Membuat object dari Class
// IntCell class
// int read( ) --> Returns the stored value
// void write( int x ) --> x is stored
public class IntCell {
// Public methods
public int read( ) {
return storedValue;
}
public void write( int x ){
storedValue = x;
}
/* Private internal data
representation */
private int storedValue;
}
// IntCell class
// int read( ) --> Returns the stored value
// void write( int x ) --> x is stored
public class IntCell {
// Public methods
public int read( ) {
return storedValue;
}
public void write( int x ){
storedValue = x;
}
/* Private internal data
representation */
private int storedValue;
}
// Exercise the IntCell class
public class TestIntCell {
public static void main( String [ ] args ) {
IntCell m = new IntCell( );
m.write( 5 );
System.out.println( "Cell contents: " +
m.read( ) );
// The next line would be illegal if
uncommented
// because storedValue is a private member
// m.storedValue = 0;
}
}
// Exercise the IntCell class
public class TestIntCell {
public static void main( String [ ] args ) {
IntCell m = new IntCell( );
m.write( 5 );
System.out.println( "Cell contents: " +
m.read( ) );
// The next line would be illegal if
uncommented
// because storedValue is a private member
// m.storedValue = 0;
}
}
Deklarasi object m dengan
tipe class IntCell
Object m menggunakan
method write()
Constructing Objects (instance)
•
Suatu
object
adalah suatu nilai yang dapat
dimanipulasi dengan memanggil satu atau lebih
method
yang dimilikinya
[cay horstmann, Big Java, 2.4]
•
Suatu
method
terdiri dari urutan instruksi yang dapat
mengakses data internal objectnya
Constructing Objects (instance)
•
Pembuatan suatu object dengan mengacu pada
suatu class disebut
instance
•
Kebanyakan program memerlukan berbagai jenis
object. Untuk itu perlu diketahui cara membangun
(
construct
) object baru.
Syntax:
Contoh:
IntCell objAngka = new IntCell( );
Constructing Objects (instance)
Contoh
m
sebagai suatu object acuan. Dapat
dimanipulasi dengan memanggil
method
-nya:
write(par)
,
dengan cara:
m.write(5)
Saat method
write()
dipanggil,
beberapa aktifitas terjadi didalam
object, dan hasilnya adalah
storedValue
diisi dengan nilai dikirim
melalui parameter.
public class IntCell {
// Public methods
public int read( ) {
return storedValue;
}
public void write( int x ){
storedValue = x;
}
/* Private internal data
representation */
private int storedValue;
}
public class IntCell {
// Public methods
public int read( ) {
return storedValue;
}
public void write( int x ){
storedValue = x;
}
/* Private internal data
representation */
private int storedValue;
}
public class TestIntCell {
public static void main( String [ ] args ) {
IntCell m = new IntCell( );
m.write( 5 );
System.out.println( "Cell contents: " +
m.read( ) );
}
}
public class TestIntCell {
public static void main( String [ ] args ) {
IntCell m = new IntCell( );
m.write( 5 );
System.out.println( "Cell contents: " +
m.read( ) );
Method
•
Method merupakan member class yang berfungsi
untuk melakukan suatu aksi.
•
Pada java terdapat beberapa jenis method:
▫
constructor
▫
mutator
Method
Constructor
•
constructor
memberitahu bagaimana suatu object dideklarasikan
dan di-inisialisasi.
•
constructor
biasanya digunakan untuk inisialisasi
field member
yang ada pada
object
•
Jika pada suatu
class
tidak ada
constructor
,
default constructor
akan dibuat oleh java untuk menginisialisasi tiap
field member
sesuai
default value
dari tipe
field
-nya.
•
Untuk
membuat constructor
, kita harus menulis
method
dengan
Method
Constructor
4 public class Date {
5
// Constructor tanpa parameter
6
public Date( )
{
7
month = 1;
8
day = 1;
9
year = 2010;
10 }
11
// Constructor denga tiga parameter
12
public Date( int theMonth, int theDay, int theYear )
{
13
month = theMonth;
14
day = theDay;
15
year = theYear;
16 }
…
…
... }
Untuk membuat object based on
class Date, dengan cara:
Date d1 = new Date( );
Atau
Method
Accessor & Mutator
•
Field members
biasanya dideklarasikan secara
private
, dengan demikian maka tidak dapat diakses
oleh rutin di luar class (
nonclass routines
).
•
Untuk itu diperlukan suatu
method
:
▫
method accessor ;
yang dapat memeriksa / membaca nilai suatu
field
tanpa
merubah nilainya
▫
method mutator ;
Method
Accessor & Mutator
public class IntCell {
public int read( )
{
return storedValue;
}
public void write( int x )
{
storedValue = x;
}
private int storedValue;
}
public class IntCell {
public int read( )
{
return storedValue;
}
public void write( int x )
{
storedValue = x;
}
private int storedValue;
}
Method accessor
Method
toString
•
Method toString() biasa digunakan untuk:
▫
Membaca seluruh nilai field pada class namun dalam
bentuk string.
▫
Membaca suatu object sebagai suatu string
public class IntCell {
private int x;
private int y;
public String toString( ) {
return x + “ “ + y;
}
}
public class IntCell {
private int x;
private int y;
public String toString( ) {
return x + “ “ + y;
}
}
Misal:
IntCel angka = new IntCell( );
System.out.println( angka.toString() );
Atau
Method
Main
•
Method main pada suatu file class merupakan
method utama yang diprioritaskan untuk dijalankan
oleh java command saat suatu file class dipanggil.
public class TestIntCell {
public static void main( String [ ] args ) {
IntCell m = new IntCell( );
m.write( 5 );
System.out.println( "Cell contents: " + m.read( ) );
}
}
public class TestIntCell {
public static void main( String [ ] args ) {
IntCell m = new IntCell( );
m.write( 5 );
System.out.println( "Cell contents: " + m.read( ) );
}
Package
•
Package
digunakan untuk mengelompokkan class -
class.
•
Sebuah package dapat mempunyai satu atau lebih
sub-package ini sehingga membentuk sebuah hirarki.
Contoh package:
java.awt.Rectangle;
Nama package
Importing a Class from a
Package
•
Kita harus melakukan import suatu class sebelum kita
membuat object dari suatu class.
Perhatikan pembuatan
object berikut:
untuk membuat object kotak dengan type class Rectangle
maka kita harus import dahulu class Rectangle dari
package-nya.
Rectangle
kotak
= new Rectangle(5,5,20,20)
import java.awt.Rectangle;
class bentuk {
public static void main (String[] args) {
Rectangle kotak = new Rectangle(5,5,20,20); }
}
Instruksi import class Rectangle dari package java.awt
Untuk mengetahui pada package apa suatu class bisa dilihat di:
http://java.sun.com/javase/7/docs/api/index.html
Don’t Memorize—Use Online Help
Class ke Package
•
Syntax:
Contoh:
package agen;
package calculator;
•
Untuk mendaftarkan class yg kita buat ke suatu package,
tambahkan syntax di atas pada bagian paling atas program
kita, contoh:
•
Berdasarkan contoh di atas, berarti class hai berada dalam
package paket1, untuk menggunakan class hai lakukan:
package
<namaPackage>
package
paket1
;
public class
hai {
…
….
}
Mendaftarkan Class ke Package
•
Contoh:
package
agen
;
public class
myAgen
{
private String name;
public myAgen(String name) {
this.name = name;
}
public String ambilPesan() {
return "Salam kepada Anda !. dari " + name;
}
}
constructor method Field / Data member
import agen.myAgen;
public class salam {
public static void main(String[] args) {
myAgen
Helo
= new myAgen("Rayputra");
String s = Helo.ambilPesan();
System.out.println(s);
}
}
Membuat object Helo dari class myAgen
Menjalankan method
Javadoc
•
Spesifikasi class mendeskripsikan apa yang dapat
dilakukan terhadap suatu
object
. Implementasi internal
object
dapat diketahui dari spesifikasi yang dibuat.
•
Program
javadoc
digunakan untuk membuat
dokumentasi class secara otomatis.
Javadoc
•
Untuk membuat javadoc secara command line:
Jalankan progam
javadoc
disertai dengan nama file (.java).
•
Output
dari program
javadoc
berasal dari
comment
pada program kecuali untuk
method
yang diambil dari
header
method
tersebut.
•
Comment
/**
digunakan Untuk membuat spesfikasi terkait implementasi dari
class.
•
Tags yang digunakan dalam comment;
▫
@author
, untuk memberitahukan nama penulis,
▫
@param
, untuk memberitahukan parameter-parameter yang digunakan pada
method.
▫
@return
, untuk memberitahukan nilai yang dikembalikan oleh method.
Contoh Javadoc
/**
* class untuk simulasi sel memori integer
* @author Augury El Rayeb
public class IntCell {
/**
* Get the stored value.
* @return the stored value.
*/
public int read( )
{
return storedValue;
}
/**
* Store a value.
* @param x the number to store.
*/
public void write( int x )
{
storedValue = x;
}
private int storedValue;
}
/**
* class untuk simulasi sel memori integer
* @author Augury El Rayeb
public class IntCell {
/**
* Get the stored value.
* @return the stored value.
*/
public int read( ) {
return storedValue;
}
/**
* Store a value.
* @param x the number to store.
*/
public void write( int x ) {
storedValue = x;
}
Latihan (Tugas)
•
Buat program untuk membaca file teks. Kemudian
tampilkan seluruh isi file teks tersebut pada Konsol.
•
Kirim ke:
augury.elrayeb@upj.ac.id
See You Next Session