[ HTML ] [ Java ] [ Bahasa C ]


Selasa, Mei 04, 2021

Pemahaman Class dan Object pada Java

Pada makna Pemrograman Berorientasi Object, dijelaskan 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. Maka program akan diorganissasi 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.


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.


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.

// Program java

// mengilustrasikan konsep

// dari class dan object

 

/* Deklarasi class */

 

public class Dog {

/* Instance Variabel */

String name;

String breed;

int age;

String color;

 

// Deklarasi konstructor dari

// class

public Dog(String name, String breed, int age, String color)

{

this.name = name;

this.breed = breed;

this.age = age;

this.color = color;

}

 

/* method 1 */

public String getName()

{return name;}

 

/* method 2 */

public String getBreed()

{return breed;}

 

/* method 3 */

public int getAge()

{return age;}

 

/* method 4 */

public String getColor()

{return color;}

@Override

public String toString()

{

return ("Hi, nama saya " 

+this.getName() 

+".\nTanggal lahir, usia, dan"

+" dan warna kesukaan: " 

+this.getBreed()

+", "

+this.getAge() 

+", "

+ this.getColor());

}

 

public static void main(String[] args)

{

Dog tuffy = new Dog("tuffy", "sekayu", 19, "putih");

System.out.println(tuffy.toString());

}

 

}

Output:
Hi, nama saya tuffy.
Tanggal lahir, usia, dan warna kesukaan: sekayu, 19, putih

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:


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();

// Program Java

// mengilustrasikan penciptaan

// dan akses object

// menggunakan keyword new

 

/* base class */

class Dog {

 

// class Dog memiliki dua

// field

String dogName;

int dogAge;

 

// class Dog memiliki satu

// constructor

Dog(String name, int age)

{

this.dogName = name;

this.dogAge = age;

}

 

}

 

/* driver class */

public class Test {

 

public static void main(String[] args)

{

/* Menciptakan object dari class Dog */

Dog ob1 = new Dog("Bravo", 4);

Dog ob2 = new Dog("Oliver", 5);

 

// Mengakses object data

// melalui referensi

System.out.println(ob1.dogName 

+", "

+ob1.dogAge);

System.out.println(ob2.dogName 

+", "

+ob2.dogAge);

}

 

}

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();

// Program Java

// mendemonstrasikan

// penciptaan object

// menggunakan newInstance()

// method

 

/* Base class */

class Example {

void message()

{System.out.println("Hello"

+" Budi !!");}

}

 

/* Driver class */

class Test {

 

public static void main(String args[])

{

 

try {

Class c = Class.forName("Contoh");

Example s = (Example)c.newInstance();

 s.message();

}

 

catch (Exception e) { System.out.println(e); }

}

 

}

Output:
Hello Budi !!

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:

// Program Java

// mendemosntrasikan

// penciptaan object

// menggunakan

// Constructor.newInstance()

// method

import java.lang.reflect.Constructor;

import java.lang.reflect.InvocationTargetException;

 

public class ConstructorExample {

 

// dilemparkan exception

// berbeda

public static void main(String[] args)

throws NoSuchMethodException,

SecurityException,

InstantiationException,

IllegalAccessException,

IllegalArgumentException,

InvocationTargetException

 

{

Constructor constructor = ExampleClass.class.getConstructor(String.class);

ExampleClass exampleObject = (ExampleClass)constructor

.newInstance("MakanNasiPadang");

System.out.println(exampleObject.getemp_name());

}

 

}

 

class ExampleClass {

 

// Pendeklarasian variabel

// private

private String emp_name;

 

public ExampleClass(String emp_name)

{this.emp_name = emp_name;}

 

// mendapatkan method untuk

// emp_name guna mengakses

// variabel private empt_name

public String getemp_name()

{return emp_name;}

 

// setting method untuk

// emp_name guna mengakses

// variabel private emp_name

public void setemp_name(String emp_name)

{this.emp_name = emp_name;}

 

}

Output:
MakanNasiPadang

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();

// Program Java

// mendemonstrasikan

// penciptaan object

// menggunakan method clone()

 

// class employee yang

// object-nya akan diduplikasi

class Employee implements Cloneable {

 

int emp_id;

String emp_name;

 

/* default constructor */

Employee(String emp_name, int emp_id)

{this.emp_id = emp_id;

this.emp_name = emp_name;}

 

public Object clone() throws CloneNotSupportedException

{return super.clone();}

 

}

 

/* driver class */

public class Test {

 

public static void main(String args[])

{

 

try {

Employee ob1 = new Employee("El", 201);

 

// menciptakan referensi baru

// variabel ob2 yang menuju ke

// alamat yang sama pada ob1

Employee ob2 = (Employee)ob1.clone();

 

System.out.println(ob1.emp_id 

+", "

+ob1.emp_name);

System.out.println(ob2.emp_id 

+", "

+ob2.emp_name);

}

 

catch (CloneNotSupportedException c

{System.out.println("Excepti"

+"on: "

+c);}

 

}

 

}

Output:
201, El
201, El

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:

// Kode program Java

// mendemonstrasikan 

//penciptaan object oleh

// deserialisasi

import java.io.*;

 

/* Base class */

class Example implements java.io.Serializable {

 

public int emp_id;

public String emp_name;

 

/* Default constructor */

public Example(int emp_id, String emp_name)

{this.emp_id = emp_id;

this.emp_name = emp_name;}

 

}

 

/* Driver class */

class Test {

public static void main(String[] args)

{

Example object = new Example(1, "MakanNasiPadang");

String filename = "file1.ser";

 

/* Serialisasi */

try {

/* menyimpan object dalam sebuah file */

FileOutputStream file1 = new FileOutputStream(filename);

ObjectOutputStream out = new ObjectOutputStream(file1);

 

// method untuk serialisasi

// object

out.writeObject(object);

 

out.close();

file1.close();

System.out.println("Object"

+" telah diserialisasi");

}

 

catch (IOException ex){

System.out.println("IOExcept"

+"ion ditemukan");}

 

Example object1 = null;

 

/* deserialisasi */

try {

 

// membaca object dari sebuah

// file

FileInputStream file1 = new FileInputStream(filename);

ObjectInputStream in = new ObjectInputStream(file1);

 

// method untuk deserialisasi

// object

object1 = (Example)in.readObject();

 

in.close();

file1.close();

 

System.out.println("Object"

+" telah di deserialisasi");

System.out.println("ID Pega"

+"wai = " + object1.emp_id);

System.out.println("Nama"

+" Pegawai = " 

+ object1.emp_name);

}

 

catch (IOException ex) {

System.out.println("IOExcep"

+"tion ditemukan");

}

 

catch (ClassNotFoundException ex) {

System.out.println("ClassNot"

+"FoundException ditemukan");

}

 

}

 

}


Perbedaan antara object dan class diperlihatkan pada Tabel 1 berikut ini.

Tabel 1 Perbedaan antara object dan class
OBJECTCLASS
Object adalah instance dari class.Class adalah blue print dari object yang diciptakan.
Object berasal dari entitas dunia nyata   seperti kursi, pena, meja, laptop, dan lain sebagainya.Class adalah kelompok yang sama dengan object.
Object adalah sesuatu yang berbentuk   entitas fisik.Class adalah entitas logika.
Object dapat diciptakan berapapun sesuai   kebutuhan.Class hanya dideklarasikan sekali.
Object mengalokasikan memori ketika   object tersebut diciptakan.Class tidak mengalokasikan memori ketika diciptakan.
Object diciptakan menggunakan keyword   new. Contoh, Pegawai obj = new Pegawai();Class dideklarasikan menggunakan keyword class. Contoh, class Pegawai{}
Terdapat banyak cara untuk menciptakan   object pada Java. Seperti, new Keyword, new instance() method, clone()   method, dan deserialisasi.Hanya ada satu cara untuk mendefinisikan class yaitu dengan menggunakan   keyword class.

5 komentar:

  1. Apa yang dimaksud dengan instance class pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Class merupakan blok bangunan dasar dari pemrograman berorientasi objek atau OOP pada bahasa pemrograman Java. Class merupakan template yang mendeskripsikan data dan perilaku yang terkait dengan instance class tersebut. Ketika programmer membuat sebuah class instance, maka programmer tersebut sedang membuat sebuah object yang terlihat dan terasa seperti halnya instance yang lain yang berasal dari class yang sama.

      Hapus
    2. Class pada bahasa pemrograman Java mendeskripsikan object konten yang dimilikina. Class mendeskripsikan agregat bidang data yang disebut dengan instance variabel, dan juga mendefinisikan operasi atau method.

      Hapus
  2. Apa yang dimaksud dengan object pada OOP Java?

    BalasHapus
    Balasan
    1. Object, dalam bahasa pemrograman berorientasi object atau OOP pada bahasa pemrograman Java adalah tipe data abstrak yang dibuat oleh programmer pada kode program. Object dapat mencakup beberapa properti dan method dan bahkan juga berisi object-object lainnya. Pada kebanyakan bahasa pemrograman, tidak hanya Java, object didefinsiikan sebagai sebuah class. Object menyediakan pendekatan terstruktur untuk pengembangan suatu program.

      Hapus

Respon komentar 7 x 24 jam, so please be patient :D