Anda di halaman 1dari 15

MODUL PERKULIAHAN

Pemrogramam
Berorientasi Object

Class Entity, Constructor,


Method Getter, Class
Boundary/control, Code
Class Entity

Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh


Ilmu Komputer Teknik F061700009 Mohamad Yusuf, S.Kom., M.C.S
Informatika
04

Abstract Kompetensi
Modul ini membahas tentang Class Mampu membuat class entity,
Entity, Constructor, Getter/setter, constructor, method set dan get. •
Boundary Class/Control Mampu memindahkan
algoritma/logika bisnis dari class
boundary ke class control : •
Membangun Aplikasi GUI dengan
prinsip Model View Control (MVC) •
Membangun Aplikasi GUI dengan
Menggunakan Satu Class Entity
dan Array List sebagai Tempat
Penyimpanan KoleksiClass Entity
Pendahuluan

Dalam contoh-contoh sebelumnya, kunci dan nilai setiap penyimpanan direpresentasikan


menggunakan kelas yang terpisah. Sebagai contoh, kelas PartKey dan PartData digunakan.
Sering kali diinginkan untuk memiliki kelas tunggal yang mewakili kunci dan nilainya,
misalnya, Class Part.
Class entitas dan digunakan bersama dengan entitas yang mengikat. Ikatan entitas
menggabungkan kunci dan nilai menjadi entitas saat membaca catatan dari koleksi, dan
membagi entitas menjadi kunci dan nilai saat menulis catatan ke koleksi. Binding entitas
digunakan di tempat binding nilai, dan objek entitas digunakan dengan koleksi di tempat
objek nilai.
Beberapa alasan untuk menggunakan entitas adalah:

a. Ketika kunci adalah properti dari objek entitas yang mewakili catatan secara
keseluruhan, identitas dan konsep objek seringkali lebih jelas daripada dengan objek
kunci dan nilai yang terpisah.
b. Objek entitas tunggal per rekaman seringkali lebih nyaman digunakan daripada dua
objek.

Mendefinisikan Class Entitas(Entity)

Seperti yang dijelaskan di bagian sebelumnya, class entitas adalah kunci gabungan / class
nilai yang dikelola oleh binding entitas. Dalam contoh ini, class Part, Supplier dan Shipment
adalah class entitas. Class ini berisi field yang merupakan gabungan dari field key dan kelas
nilai yang didefinisikan sebelumnya untuk setiap menyimpan.
Secara umum, class entitas dapat didefinisikan dengan cara apa pun yang diinginkan oleh
aplikasi. Pengikatan entitas, yang juga ditentukan oleh aplikasi, bertanggung jawab untuk
pemetaan antara objek kunci / nilai dan objek entitas.
Perbedaan penting antara class entitas yang didefinisikan di sini dan kelas-kelas dan kunci
dan nilai yang didefinisikan sebelumnya adalah bahwa kelas-kelas entitas tidak serializable
(tidak mengimplementasikan antarmuka Serializable). Ini karena kelas entitas tidak disimpan
secara langsung. Pengikatan entitas menguraikan objek entitas menjadi objek kunci dan nilai,
dan hanya objek kunci dan nilai yang diserialisasi untuk penyimpanan.

2019 Pemrograman Berorientasi Objek java


2 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Salah satu keuntungan menggunakan entitas sudah dapat dilihat dalam metode toString () dari
kelas-kelas di bawah ini. Ini mengembalikan hasil debug untuk kunci dan nilai gabungan, dan
akan digunakan nanti untuk membuat daftar database yang lebih mudah dibaca daripada
dalam contoh sebelumnya.
public class Part
{
private String number;
private String name;
private String color;
private Weight weight;
private String city;

public Part(String number, String name, String color, Weight weight,


String city)
{
this.number = number;
this.name = name;
this.color = color;
this.weight = weight;
this.city = city;
}

public final String getNumber()


{
return number;
}
public final String getName()
{
return name;
}
public final String getColor()
{
return color;
}
public final Weight getWeight()
{
return weight;
}

public final String getCity()


{
return city;
}
public String toString()
{
return "Part: number=" + number +
" name=" + name +
" color=" + color +
" weight=" + weight +
" city=" + city + '.';
}
}

2019 Pemrograman Berorientasi Objek java


3 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Menggunakan Method Getter dan Setter

Getter dan setter termasuk 2 method konvensional yang digunakan untuk mengambil dan
memperbarui nilai suatu variabel.
Class Diagram Mobil lengkap dengan field, constuctor, getter/setter :

Contoh sederhana metode Getter dan Setter:


public class SimpleGetterAndSetter {
    private int number;
    public int getNumber() {
        return this.number;
    }
    public void setNumber(int num) {
        this.number = num;
    }
}

Suatu class mendeklarasikan variabel private, number. Karena number bersifat private, kode
dari luar class ini tidak dapat mengakses variabel secara langsung, seperti ini:

SimpleGetterAndSetter obj = new SimpleGetterAndSetter ();


obj.number = 10; // kompilasi kesalahan, karena angka bersifat pribadi
int num = obj.number; // sama seperti di atas

Sebagai gantinya, kode luar harus memanggil getter, getNumber () dan setter, setNumber ()
untuk membaca atau memperbarui variabel, misalnya:

2019 Pemrograman Berorientasi Objek java


4 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
SimpleGetterAndSetter obj = new SimpleGetterAndSetter ();
obj.setNumber (10); // BAIK
int num = obj.getNumber (); // baik

Jadi, setter adalah metode yang memperbarui nilai suatu variabel. Dan getter adalah metode
yang membaca nilai suatu variabel.

Manfaat Method Getter dan Setter


Dengan menggunakan getter and setter, pemrogram dapat mengontrol bagaimana variabel
pentingnya diakses dan diperbarui dengan cara yang benar, seperti mengubah nilai suatu
variabel dalam rentang tertentu. Pertimbangkan kode metode setter berikut:
public void setNumber(int num) {
    if (num < 10 || num > 100) {
        throw new IllegalArgumentException();
    }
    this.number = num;
}

Itu memastikan nilai angka selalu diatur antara 10 dan 100. Misalkan nomor variabel dapat
diperbarui secara langsung, pemanggil dapat menetapkan nilai sewenang-wenang untuk itu:
obj.number = 3;

Menggunakan Konstruktur (Constructor)

Konstruktor Java adalah metode khusus yang disebut ketika objek dipakai. Dengan kata lain,
saat Anda menggunakan kata kunci baru.
Tujuan dari konstruktor Java adalah untuk menginisialisasi objek yang baru dibuat sebelum
digunakan.

Berikut adalah contoh sederhana yang membuat objek, yang menghasilkan konstruktor Class
yang dipanggil:

MyClass myClassObj = new MyClass ();

Contoh ini menghasilkan objek baru MyClass yang dibuat, dan konstruktor no-arg dari
MyClass dipanggil. Anda akan belajar apa konstruktor no-arg nanti.

2019 Pemrograman Berorientasi Objek java


5 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Konstruktor Class Java menginisialisasi instance (objek) dari Class itu. Biasanya, konstruktor
menginisialisasi bidang objek yang perlu inisialisasi. Konstruktor Java juga dapat mengambil
parameter, sehingga bidang dapat diinisialisasi dalam objek pada saat pembuatan.

Mendefinisikan Konstruktor di Java

Berikut adalah contoh deklarasi konstruktor Java sederhana. Contoh ini menunjukkan Class
Java yang sangat sederhana dengan konstruktor tunggal.
public class MyClass {
    public MyClass () {
    } Constructor (name)

} Access Modiefier

• Bagian pertama dari deklarasi konstruktor Java adalah access modifier. Access
modifier memiliki arti yang sama seperti untuk methods dan  fields. Mereka
menentukan Class apa yang dapat mengakses (memanggil) konstruktor.
• Bagian kedua dari deklarasi konstruktor Java adalah nama class milik konstruktor.
Menggunakan nama class untuk sinyal konstruktor ke kompiler Java bahwa ini adalah
konstruktor. Perhatikan juga bahwa konstruktor tidak memiliki tipe
pengembalian(return), seperti metode lainnya.
• Bagian ketiga dari deklarasi konstruktor Java adalah daftar parameter yang dapat
diambil oleh konstruktor. Parameter konstruktor dideklarasikan di dalam tanda kurung
() setelah bagian nama Class dari konstruktor. Dalam contoh pernyataan konstruktor
di atas tidak ada parameter yang dideklarasikan.
• Bagian keempat dari deklarasi konstruktor Java adalah badan konstruktor(body).
Badan konstruktor didefinisikan di dalam kurung kurawal {} setelah daftar parameter.
Dalam contoh konstruktor di atas, konstruktor tidak memiliki operasi di dalam tubuh
konstruktor. Dikatakan sebagai konstruktor "kosong".

Constructor Overloading - Beberapa Konstruktor untuk class


Class dapat memiliki beberapa konstruktor, selama tanda tangan mereka (parameter yang
mereka ambil) tidak sama. Anda dapat mendefinisikan sebanyak mungkin konstruktor yang
Anda butuhkan.
Berikut adalah contoh kelebihan konstruktor Java:

2019 Pemrograman Berorientasi Objek java


6 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
public class MyClass {

private int number = 0;

public MyClass() {
}

public MyClass(int theNumber) {


this.number = theNumber;
}
}

Class Java di atas mengandung dua konstruktor. Konstruktor pertama adalah konstruktor
no-arg, artinya tidak memerlukan parameter (tidak ada argumen). Konstruktor kedua
mengambil parameter int. Di dalam badan konstruktor nilai parameter int ditugaskan ke
fields, yang berarti nilai parameter disalin ke dalam fields. Maka field diinisialisasi ke nilai
parameter yang diberikan.
Keyword this di depan nama this (this.number) tidak perlu. Itu hanya memberi sinyal kepada
kompiler bahwa itu adalah nomor bernama bidang yang sedang dirujuk.

Konstruktor standar, tanpa arg


Anda tidak harus mendefinisikan konstruktor untuk Class, tetapi jika Anda tidak
mendefinisikan konstruktor, kompiler Java akan menyisipkan konstruktor default, tanpa
argumen untuk Anda. Dengan demikian, begitu Class dikompilasi, Class itu akan selalu
memiliki konstruktor tanpa argumen.
Jika Anda mendefinisikan konstruktor untuk Class Anda, maka kompiler Java tidak akan
memasukkan konstruktor tanpa argumen default ke Class Anda.

Parameter konstruktor
Seperti yang telah Anda lihat, adalah mungkin untuk konstruktor Java untuk mengambil
parameter. Parameter ini kemudian dapat digunakan untuk menginisialisasi keadaan internal
(field) objek yang baru dibuat.

Berikut ini sebuah contoh:

public class Employee {

private String firstName = null;


private String lastName = null;
private int birthYear = 0;

2019 Pemrograman Berorientasi Objek java


7 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
public Employee(String first,
String last,
int year ) {

firstName = first;
lastName = last;
birthYear = year;
}

Dalam contoh ini deklarasi konstruktor Java ditandai dengan huruf tebal. Seperti yang Anda
lihat, tiga parameter dinyatakan: pertama, terakhir, dan tahun. Di dalam tubuh konstruktor
nilai-nilai dari ketiga parameter ini ditetapkan ke field objek Employee.
Garis terputus setelah setiap parameter bersifat opsional. Kompiler Java mengabaikan jeda
baris di sini. Anda juga dapat menulis deklarasi parameter dalam satu baris jika Anda mau,
seperti ini:

public Employee(String first, String last, int year ) {


firstName = first;
lastName = last;
birthYear = year;
}

Untuk memanggil konstruktor ini yang mengambil tiga parameter, Anda akan membuat
instance objek Employee seperti ini:

Employee employee = new Employee("Jaky", " Manurung", 2000);

Parameter dilewatkan ke konstruktor di dalam tanda kurung setelah nama Class di sisi kanan
tanda sama dengan. Objek kemudian dibuat, dan konstruktor dieksekusi. Setelah eksekusi
konstruktor di atas, bidang yang diinisialisasi oleh konstruktor akan memiliki nilai parameter
yang diteruskan ke konstruktor.

Parameter konstruktor Java dapat memiliki nama yang sama dengan field. Jika parameter
konstruktor memiliki nama yang sama dengan bidang, kompiler Java memiliki masalah
mengetahui yang Anda rujuk. Secara default, jika parameter (atau variabel lokal) memiliki
nama yang sama dengan bidang di Class yang sama, parameter (atau variabel lokal)
"bayangan" untuk bidang. Lihatlah contoh konstruktor ini:

public class Employee {

2019 Pemrograman Berorientasi Objek java


8 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
private String firstName = null;
private String lastName = null;
private int birthYear = 0;

public Employee(String firstName,


String lastName,
int birthYear ) {

firstName = firstName;
lastName = lastName;
birthYear = birthYear;
}

Di dalam konstruktor Class Karyawan, firstName, firstName, dan birthYear sekarang


merujuk ke parameter konstruktor, bukan ke field employee dengan nama yang sama. Jadi,
konstruktor sekarang hanya menetapkan parameter yang sama dengan diri mereka sendiri.
Field employee tidak pernah diinisialisasi.
Untuk memberi sinyal ke kompiler Java yang Anda maksud bidang Class Employee dan
bukan parameter, letakkan kata kunci ini dan titik di depan nama field. Berikut adalah
bagaimana deklarasi konstruktor Java dari sebelumnya terlihat dengan perubahan itu:

public class Employee {

private String firstName = null;


private String lastName = null;
private int birthYear = 0;

public Employee(String firstName,


String lastName,
int birthYear ) {

this.firstName = firstName;
this.lastName = lastName;
this.birthYear = birthYear;
}
}

Sekarang field employee diinisialisasi dengan benar di dalam konstruktor.

2019 Pemrograman Berorientasi Objek java


9 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Memanggil Konstruktor

Anda memanggil konstruktor ketika Anda membuat contoh baru dari Class yang
mengandung konstruktor. Berikut adalah contoh panggilan konstruktor Java:

MyClass myClassVar = new MyClass();

Contoh ini memanggil konstruktor tanpa argumen untuk MyClass sebagaimana didefinisikan
sebelumnya dalam teks ini.
Jika Anda ingin meneruskan parameter ke konstruktor, Anda menyertakan parameter di
antara tanda kurung setelah nama Class, seperti ini:
MyClass myClassVar = new MyClass (1976);

Contoh ini meneruskan satu parameter ke konstruktor MyClass yang menggunakan int
sebagai parameter.

Memanggil Konstruktor Dari Konstruktor


Di Java dimungkinkan untuk memanggil konstruktor dari dalam konstruktor lain. Ketika
Anda memanggil konstruktor dari dalam konstruktor lain, Anda menggunakan keyword this
untuk merujuk ke konstruktor. Berikut adalah contoh memanggil satu konstruktor dari dalam
konstruktor lain di Jawa:

public class Employee {


private String firstName = null;
private String lastName = null;
private int birthYear = 0;

public Employee(String first,


String last,
int year ) {

firstName = first;
lastName = last;
birthYear = year;
}
public Employee(String first, String last){
this(first, last, -1);
}
}

2019 Pemrograman Berorientasi Objek java


10 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Perhatikan definisi konstruktor kedua. Di dalam tubuh konstruktor Anda menemukan
pernyataan Java ini:

this(first, last, -1);

Keyword this diikuti oleh tanda kurung dan parameter berarti bahwa konstruktor lain di Class
Java yang sama dipanggil. Konstruktor lain mana yang dipanggil tergantung pada parameter
apa yang Anda berikan ke panggilan konstruktor (di dalam tanda kurung setelah kata kunci
ini). Dalam contoh ini adalah konstruktor pertama di Class yang dipanggil.

Memanggil Konstruktor dalam Superclasses


Di Java suatu Class dapat memperluas Class lain. Ketika suatu Class memperluas Class lain,
ia juga dikatakan " inherit " dari Class yang diperluas. Class yang diperluas disebut subclass,
dan Class yang diperluas disebut superclass
Class yang memperluas Class lain tidak mewarisi konstruktornya. Namun, subclass harus
memanggil konstruktor di superclass di dalam salah satu konstruktor subclass!

Lihatlah dua Class Java berikut ini. Class Car extend (mewarisi dari) Class Vehicle.

public class Vehicle {


private String regNo = null;

public Vehicle(String no) {


this.regNo = no;
}
}
public class Car extends Vehicle {
private String brand = null;

public Car(String br, String no) {


super(no);
this.brand = br;
}
}

Perhatikan konstruktor di Class Car. Itu memanggil konstruktor di superclass menggunakan


pernyataan Java ini:

super(no);

Menggunakan keyword super mengacu pada superclass Class menggunakan keyword super.
Ketika keyword super diikuti oleh tanda kurung seperti di sini, itu merujuk ke konstruktor di

2019 Pemrograman Berorientasi Objek java


11 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
superclass. Dalam hal ini mengacu pada konstruktor di Class Kendaraan. Karena Car
memperluas Vehicle konstruktor Car semua harus memanggil konstruktor di Vehicle.

Class Boundary

Class boundary digunakan untuk memodelkan interaksi antara sistem dan lingkungannya,
yaitu para aktornya. Aspek-aspek interaksi berikut ditangkap pada class boundary:

o Mengoordinasikan perilaku aktor dengan "internal" sistem;


o Menerima input dari aktor ke sistem, mis., informasi atau permintaan;
o Memberikan output dari sistem ke aktor, mis., informasi yang tersimpan atau hasil
turunan.
Class boundary dengan demikian dapat digunakan untuk menangkap persyaratan pada
antarmuka pengguna. Membuat model objek dari antarmuka pengguna biasanya sangat
bermanfaat, karena banyak antarmuka pengguna yang dibuat saat ini berorientasi objek, dan
kecenderungannya mengarah pada orientasi objek yang lebih banyak, karena manfaatnya
terkait dengan penggunaan yang alami dan efisien. Meskipun banyak keputusan desain
antarmuka pengguna yang terbaik dibuat selama prototyping dan pengembangan cepat
antarmuka pengguna itu sendiri, alasan tentang persyaratan struktur dan kegunaan pada
antarmuka pengguna adalah wajar untuk dilakukan dalam hal model objek.

Class Boundary adalah class yang terdapat batasan sistem dan dunia nyata. Hal ini mencakup
semua form, report, hardware interface seperti printer atau scanner. Boundary class dapat
diidentifikasi dari Use Case Diagram. Minimal terdapat satu buah boundary class dalam
relasi actor dengan use case. Class Boundary adalah yang mengakomodasi interaksi
antaraactor dengan sistem.

Contoh Class Boundary


Class Boundary berikut dapat diidentifikasi untuk editor dokumen:

2019 Pemrograman Berorientasi Objek java


12 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Control Class

Control class bertanggung jawab dalam mengatur kelas-kelas yang lain. Seperti yang terlihat
pada gambar di bawah, control class bertanggung jawab dalam mendelegasikan responsibility
kepada kelas lain.
Control class juga bertanggung jawab dalam mengetahui dan menyampaikan business rule
dari sebuah organisasi. Class ini menjalankan alternate flow dan mampu mengatasi error.
Karena alasan ini control class sering disebut sebagai manager class.

Latihan membuat class Author dari class diagram yang didalmnya terdapat field,
constructor, getter dan setter.

Detail kasus
Class Author, dimana didalamnya terdapat

2019 Pemrograman Berorientasi Objek java


13 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
 3 anggota dengan tipe private yang variablenya : name (String), email (String), dan
gender (char yang berisikan 'm' atau 'f' - you might also use a boolean variable
called isMale having value of true or false).
 Sebuah constructor untuk menginisiala name, email dan gender dengan nama yang
telah diberikan
 Public getters/setters: getName(), getEmail(), setEmail(), dan  getGender().
(Tidak ada setters untuk name dan gender, dan properti dibuat untuk tidak dapat diubah)
 Method  toString() yang akan returns "name (gender) pada email", contoh,
"mohamad yusuf (m) pada mhd.yusuf@mercubuana.ac.id ".

Berikut class Author dalam java

2019 Pemrograman Berorientasi Objek java


14 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Daftar Pustaka

http://tutorials.jenkov.com/java/constructors.html
https://sceweb.uhcl.edu/helm/RationalUnifiedProcess/process/modguide/md_bcls.htm
https://www3.ntu.edu.sg/home/ehchua/programming/java/J3b_OOPInheritancePolymorphis
m.html
http://desy.lecturer.pens.ac.id/Workshop%20Pengembangan%20Perangkat
%20Lunak/4_Class%20Diagram.pdf

2019 Pemrograman Berorientasi Objek java


15 Mohamad Yusuf, S.Kom.M.C.S
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id

Anda mungkin juga menyukai