Slide IST101 Fondasi Pemrograman Struktur Data 05 Object Class Class Documentation Packages

FONDASI PEMROGRAMAN & STRUKTUR
DATA
#5
Object, Class, Class
Documentation & Packages

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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.
• Memahami pemanfaatan packages.

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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 tidak dapat dibongkar oleh pengguna object.

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Object Oriented Programming
Tentang Object
• Atomicity dikenal juga dengan information hiding.
• Information hiding:
User tidak dapat mengakses langsung ke bagianbagian atau implementasi object;
hal tersebut dapat diakses secara tidak langsung,
melalui method yang disediakan pada object. user de.”
i
no ins

— ts
n
:
e
g p par
n
ni ot o le
r
b
a
W o n cea
“D rvi
se

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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
Programmer harus dapat me-reuse object sehingga tidak
perlu menulis ulang program.

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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.
Merupakan bagian dari implementasi inheritance

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Class
“Suatu class pada java terdiri dari fields yang berfungsi
untuk menyimpan data dan methods yang nantinya akan
digunakan oleh instances dari class” .
“Suatu class pada java merupakan suatu blue print untuk
object yang akan digunakan dalam program”

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101


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]
“Merupakan template untuk membuat object”. [Lucy Mendel, MIT]

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Class
IntCell
Data:

storedValue

Method:
read()
write(int x)


public class IntCell {
// Public methods
public int read( ) {
return storedValue;
}
public void write( int x ){
storedValue = x;
}
/* Private internal data
representation */
private int storedValue;
}

Kita
Kita bisa
bisa menggunakan
menggunakan method
method read()
read()
dan

dan write()
write() pada
pada object
object yang
yang memiliki
memiliki
type
type class
class IntCell.
IntCell.

Contoh:
Contoh:

IntCell
IntCell m
m == new
new IntCell(
IntCell( ););
m.write(

m.write( 55 ););

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Class

• Public members merupakan bagian dari class yang
dapat dilihat oleh pengguna object.
public int read( ) {
• Private members merupakan bagian dari class yang
tidak dapat dilihat (hidden) dari sisi pengguna object.
(nonclass routines).
private int storedValue;

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Class
• Methods yang mengembalikan nilai harus disertakan
tipe dari nilai yang di kembalikannya, pada deklarasi
method
public int read( ) {
• Methods yang tidak mengembalikan nilai harus
disertakan void, pada deklarasi method
public void write( int x ) {


Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Class
Membuat object dari Class
// IntCell class
// int read( ) --> Returns the stored value
// void write( int x ) --> x is stored

Object m menggunakan
method write()
Deklarasi object m dengan
tipe class IntCell

// Exercise the IntCell 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 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
//Object
m.storedValue
= 0;
m menggunakan
method read()
}

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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
[cay horstmann, Big Java, 2.4]

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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:


== new
new namaClass()
namaClass()

Contoh:
IntCell objAngka = new IntCell( );

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Constructing Objects (instance)
Contoh
m sebagai suatu object acuan. Dapat
dimanipulasi dengan memanggil
method-nya: write(par),
dengan cara: m.write(5)

public class IntCell {
// Public methods
public int read( ) {
return storedValue;
Saat method write() dipanggil,
}
beberapa aktifitas terjadi didalam
public void write( int x ){
object, dan hasilnya adalah
storedValue = x;
storedValue diisi dengan nilai dikirim
}
melalui parameter.
/* Private internal data
representation */
public class TestIntCell {
private int storedValue;
public static void main( String [ ] args ) {
}
IntCell m = new IntCell( );

m.read( ) );
}

m.write( 5 );
System.out.println( "Cell contents: " +

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Method
• Method merupakan member class yang berfungsi
untuk melakukan suatu aksi.
• Pada java terdapat beberapa jenis method:
▫ constructor
▫ mutator
▫ accessor
▫ toString
▫ main

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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
tipe no return yang memiliki nama sama dengan class. Constructor
bisa memiliki parameter.

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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

Date d2 = new Date( 4, 15, 2010 );

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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 ;
yang dapat digunakan untuk merubah nilai suatu field.

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Method
Accessor & Mutator
public class IntCell {
public int read( ) {
return storedValue;
}
public void write( int x ) {
storedValue = x;
}
private int storedValue;
}

Method accessor

Method mutator

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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

Misal:
IntCel angka = new IntCell( );
System.out.println( angka.toString() );
Atau
System.out.println( angka );

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Method
Main
• Method main pada suatu file class merupakan
method utama yang diprioritaskan untuk dijalankan
oleh java command saat suatu file class dipanggil.
public
public class
class TestIntCell
TestIntCell {{
public
public static
static void
void main(
main( String
String [[ ]] args
args )) {{
IntCell
IntCell m
m == new
new IntCell(
IntCell( ););
m.write(
m.write( 55 ););
System.out.println(
System.out.println( "Cell
"Cell contents:
contents: "" ++ m.read(
m.read( )) ););
}}
}}

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Package
• Package digunakan untuk mengelompokkan class class.
• Sebuah package dapat mempunyai satu atau lebih
sub-package ini sehingga membentuk sebuah hirarki.
Contoh package:

Nama class

java.awt.Rectangle;
Nama package

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Importing a Class from a
Package
• Kita harus melakukan import suatu class sebelum kita
membuat object dari suatu class.
Perhatikan pembuatan
object berikut:
Rectangle kotak = new Rectangle(5,5,20,20)

untuk membuat object kotak dengan type class Rectangle
maka kita harus import dahulu class Rectangle dari packagenya.
Instruksi import class Rectangle dari
import java.awt.Rectangle;

package java.awt

class bentuk {
public static void main (String[] args) {
Rectangle kotak = new Rectangle(5,5,20,20);
}
}
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
The Java library has thousands of classes and methods

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Membuat Package dan Mendaftarkan
Class ke Package
• Syntax:

package

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:
package paket1;
public class hai {

….
}

• Berdasarkan contoh di atas, berarti class hai berada dalam
package paket1, untuk menggunakan class hai lakukan:
import paket1.hai;

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Mendaftarkan Class ke Package
• Contoh:
constructor

Membuat object Helo
dari class myAgen

package agen;
Field / Data member
public class myAgen {
private String name;
public myAgen(String name) {
this.name = name;
method
}
public String ambilPesan() {
return "Salam kepada Anda !. dari " + name;
}
}
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);
Menjalankan method
}
ambilPesan()
}

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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.
• Output dari javadoc merupakan sekumpulan file HTML
yang dapat dilihat atau dicetak melalui browser.

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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.
▫ @throws, kegunaannya hampir sama dengan @param

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

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

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

Latihan (Tugas)
• Buat program untuk membaca file teks. Kemudian
tampilkan seluruh isi file teks tersebut pada Konsol.
• Kirim ke: augury.elrayeb@upj.ac.id
▫ Subject: tugas sdat 2016-01 - nim - nama
▫ Kasih penjelasan program pada email

Augury El Rayeb, S.Kom., MMSI.
Fondasi Pemrograman & Struktur Data | IST101

See You Next Session
Thanks