Selasa, Mei 14, 2019

Pemahaman Class dan Object pada Java

Pada makna Berorientasi Object menjelaskan bahwa konsep dan pengorganisasian perangkat lunak sebagai sebuah kombinasi dari tipe object berbeda yang tergabung didalamnya baik itu tipe data ataupun juga behavior. Karenanya, OOP adalah sebuah model pemrograman, yang menyederhanakan pengembangan dan perawatan perangkat lunak dengan menyediakan beberapa aturan. Program akan diorganisis melalui object ketimbang sebagai action atau logic. Hal ini dapat meningkatkan fleksibilitas dan kemampuan perawatan dari program. Pemahaman dari kerja program menjadi lebih mudah, karena OOP memberikan behaviornya (method) ke dalam sebuah lokasi tunggal (object).

Konsep dasar dari OOP adalah:
satu, Object
dua, Class
tiga, Enkapsulasi
empat, Inheritance
lima, Polymorphism
enam, Abstraction

Artikel berikut ini berhubungan dengan Object dan Class pada Java.

Prasyarat dari Class dan Object pada Pemrograman Berorientasi Object
Class: sebuah class adalah sebuah cetak biru definisi pengguna atau prototipe dari object yang diciptakan. Class yang telah diciptakan tersebut merepresentasikan seperangkat dari properti atau method yang umum dari semua object dari satu tipe data. Class merupakan bagian syarat dari OOP karena:

satu, Class menyediakan template untuk menciptakan object yang dapat mengikat code menjadi data.
dua, Class adalah definisi dari method dan data.
tiga, Class mendukung inheritance dari Pemrograman Berorientasi Objek dan karenanya dapat melakukan pemeliharaan hirarki class.
empat, Class membantu merawat akses spesifikasi dari anggota variabel.

Object: Object merupakan kesatuan dasar dari OOP dan merepresentasikan entitas dari kehidupan nyata. Entitas kehidupan nyata dibagi menjadi dua karakteristik: Dimana semuanya memiliki atribut dan behavior.

Sebuah object terdiri dari:
satu, State: direpresentasikan oleh atribut dari object. State juga memperlihatkan properti dari object.
dua, Behavior: direpresentasikan oleh method dari object. Behavior memperlihatkan respon dari object terhadap object lainnya.
tiga, Identity: memberikan nama unik dari object. Identity juga memberikan ijin akses sebuah object untuk berinteraksi dengan object lainnya.

Object dipersyaratkan dalam OOP karena object dapat diciptakan untuk memanggil fungsi non-static yang tidak dipresentasikan di dalam Main Method tetapi di presentasikan di dalam Class dan juga menyediakan nama ke ruang yang akan digunakan untuk penyimpanan data.

Contoh: Penambahan dua angka, yang mempersyarakatkan ruang penyimpanan untuk angka secara terpisah dari yang lainnya, sehingga dapat diambil dan dilakukan operasi yang sesuai. Karenanya menciptakan dua object berbeda untuk menyimpan dua angka merupakan solusi ideal untuk skenario operasi tersebut seperti diperlihatkan pada gambar 1.


penggunaan object dan class OOP pada bahasa pemrograman berbasis Java
Gambar 1 Demonstrasi penggunaan object dan class pada OOP
sumber : geeksforgeeks.org

Object adalah sesuatu yang berhubungan dengan hal yang ditemukan dikehidupan nyata. Contohnya, sebuah program grafis mungkin memiliki object seperti lingkaran, persegi, dan lain sebagainya. Sistem belanja online mungkin memiliki object seperti shopping chart, costumer, product, dan lain sebagainya.

Pendeklarasian Object (Juga disebut sebagai instansiasi sebuah class)
Ketika sebuah object diciptakan dari sebuah class, maka class tersebut sedang dilakukan instansiasi. Semua instance berbagi atribut dan behavior dari sebuah class. Tetapi nilai dari atribut yaitu state adalah unik untuk masing-masing object. Sebuah class tunggal mungkin memiliki instance dengan angka berapapun. Seperti diperlihatkan pada contoh gambar 2.


pendeklarasian object pada bahasa pemrograman Java
Gambar 2 Pendeklarasian object
sumber : geeksforgeeks.org

Seperti nama variabel yang telah dideklarasikan sebelumnya (type name;). Hal ini akan memberitahukan compiler untuk menggunakan nama tersebut untuk melihat data dengan tipe yang telah dibuat. Dengan sebuah variabel primitif, pendeklarasikan juga menyediakan alokasi memori yang sesuai untuk variabel tersebut. Juga untuk variabel referensi, tipe data haruslah berupa nama class yang konkret. Secara umum, tidak bisa diciptakan object dari sebuah class abstract atau interface.

Dog tuffy;

Jika dideklarasikan referensi variabel (tuffy) seperti contoh sebelumnya, maka nilainya akan tidak terdefinisi (null) sampai sebuah object benar-benar diciptakan dan diberikan operasi kepadanya. Secara sederhana, pendeklarasikan referensi variabel tidaklah menciptakan sebuah object.

Inisialisasi object menggunakan 'new'
Operator new instansiasi dari sebuah class oleh alokasi memori untuk sebuah object baru dan mengembalikan sebuah nilai referensi ke memori. Operator new juga memanggil class constructor.

Output:
Hi my name is tuffy.
My breed, age and color are papillon, 5, white

Class pada kode program sebelumnya mengandung sebuah constructor tunggal. Sebuah constructor dapat dikenali dari pendeklarasiannya yang menggunakan nama yang sama seperti class dan tidak memiliki tipe return. Java compiler membedakan constructor berdasarkan angka dan tipe dari argumennya. Constructor pada class Dog mengambil empat argument. Statement berikut menyediakan "tuffy", "papillon", 5, "white" sebagai nilai untuk argument:

Dog tuffy = new Dog("tuffy", "papillon", 5, "white");

Hasil dari eksekusi statement diperlihatkan pada ilustrasi gambar 3 berikut ini:


eksekusi statement menggunakan bahasa pemrograman Java
Gambar 3 Eksekusi statement
sumber : geeksforgeeks.org

Catatan: Semua class setidaknya memiliki satu constructor. Jika sebuah class dideklarasikan secara eksplisit, maka compiler Java secara otomatis menyediakan sebuah no-argument constructor yang juga disebut dengan default constructor. Default constructor memanggil class parent no-argument constructor (seperti hanya memiliki satu statement yaitu super();), atau class object constructor jika class tidak miliki parent yang lain (seperti class object adalah parent dari semua class baik secara langsung maupun tidak langsung).

Beberapa cara untuk menciptakan object
satu, Penggunaan keyword new: ini merupakan cara paling sederhana untuk menciptakan object. Dengan menggunakan method tersebut, maka constructor yang sesuai akan dipanggil.
Sintak:

ClassName ReferenceVariable = new ClassName();


Output:
Bravo, 4
Oliver, 5

dua, Menggunakan Class.newInstance() method: digunakan untuk menciptakan class dinamis. Method ini juga bisa digunakan untuk memanggil constuctor no-argument apapun. Method ini juga mengembalikan class Class object ketika newinstance() method dipanggil, yang akan mengembalikan object dari class yang akan dilewatkan sebagai argument perintah baris.

Beberapa pengecualisan alasan,
satu, ClassNotFoundException akan muncul, jika class yang akan dilewatkan tidak ada atau tidak tersedia.
dua, InstantiationException akan muncul, jika class yang akan dilewatkan tidak mengandung constructor default. Method internewInstance() secara internal dipanggil constructor default dari class tertentu.
tiga, IllegalAccessException akan muncul, jika class driver tidak memiliki akses ke definisi dari class definisi secara spesifik.

Sintak:
ClassName ReferenceVariable =
                   (ClassName) Class.forName("PackageName.ClassName").newInstance();

Output:
Hello Geeks !!

tiga, Menggunakan newInstance() method untuk class Constructor: method ini merupakan sebuah cara refleksi untuk menciptakan object. Dengan menggunakan method tersebut maka dapat dipanggil parameterisasi dan private constructor. Method tersebut akan membungkus dan melemparkan exception dengan InvocationTargetException. Method tersebut digunakan oleh framework berbeda seperti Spring, Hibernate, Struts, dan lain sebagainya. Constructor.newInstance() method lebih sering digunakan daripada method Class.newInstance().

Sintak:
Constructor constructor = ClassName.class.getConstructor();
 ClassName ReferenceVariable = constructor.newInstance();

Contoh:

Output:
GeeksForGeeks

empat, Menggunakan clone() method: method tersebut digunakan untuk membuat duplikat dari object. Penggunakan method clone merupakan cara termudah dan paling efisien untuk menduplikasi sebuah object. Dalam kode, java.lang.Cloneable, interface harus diimplementasikan oleh object class mana yang akan dibuat duplikasinya. Jika duplikasi interface tidak diimplementasikan, maka method clone() akan mengeluarkan CloneNotSupportedException.

Sintak:
ClassName ReferenceVariable = (ClassName) ReferenceVariable.clone();

Output:
201, Tom
201, Tom

lima, Menggunakan deserialisasi: untuk melakukan deserialisasi objek, pertama implementasikan sebuah interface serializable dalam class. Tidak ada constructor yang digunakan untuk menciptakan object pada method ini.

Sintak:
ObjectInputStream in = new ObjectInputStream(new FileInputStream(FileName));
ClassName ReferenceVariable = (ClassName) in.readObject();

Contoh:
Perbedaan antara object dan class diperlihatkan pada gambar 4 berikut ini.


perbedaan antara object dan class pada bahasa pemrograman Java
Gambar 4 Perbedaan antara object dan class
sumber : geeksforgeeks.org





Related Posts

Pemahaman Class dan Object pada Java
Oleh

mohon untuk melakukan koreksi jika terdapat kesalahan pada penulisan blog ini,