Pemrogramam
Berorientasi Object
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
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.
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.
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 :
Suatu class mendeklarasikan variabel private, number. Karena number bersifat private, kode
dari luar class ini tidak dapat mengakses variabel secara langsung, seperti ini:
Sebagai gantinya, kode luar harus memanggil getter, getNumber () dan setter, setNumber ()
untuk membaca atau memperbarui variabel, misalnya:
Jadi, setter adalah metode yang memperbarui nilai suatu variabel. Dan getter adalah metode
yang membaca nilai suatu variabel.
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;
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:
Contoh ini menghasilkan objek baru MyClass yang dibuat, dan konstruktor no-arg dari
MyClass dipanggil. Anda akan belajar apa konstruktor no-arg nanti.
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".
public MyClass() {
}
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.
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.
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:
Untuk memanggil konstruktor ini yang mengambil tiga parameter, Anda akan membuat
instance objek Employee seperti ini:
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:
firstName = firstName;
lastName = lastName;
birthYear = birthYear;
}
this.firstName = firstName;
this.lastName = lastName;
this.birthYear = birthYear;
}
}
Anda memanggil konstruktor ketika Anda membuat contoh baru dari Class yang
mengandung konstruktor. Berikut adalah contoh panggilan konstruktor Java:
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.
firstName = first;
lastName = last;
birthYear = year;
}
public Employee(String first, String last){
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.
Lihatlah dua Class Java berikut ini. Class Car extend (mewarisi dari) Class Vehicle.
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
Class Boundary
Class boundary digunakan untuk memodelkan interaksi antara sistem dan lingkungannya,
yaitu para aktornya. Aspek-aspek interaksi berikut ditangkap pada class boundary:
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.
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
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