Metode apa yang dibuat untuk menciptakan sebuah objek ?

Objek pada kehidupan sehari - hari dapat berupa benda hidup (hewan, tumbuhan, bakteri, virus, dll), benda mati (alat, patung, bangunan, dll), atau juga bisa mewakili orang atau sekumpulan orang(organisasi, instansi/bagian, dll) dan sebagainya.

Singkatnya Object adalah segalanya baik yang berbentuk ataupun dapat dinalar (logical). Karena itu disini kita tidak akan membahasnya satu persatu, karena setiap objek masing - masing memiliki kesamaan dan perbedaan walaupun objek tersebut memiliki banyak kesamaan dengan objek lainnya. Untuk itu untuk mengetahui apakah itu objek atau bukan dapat di lihat melalui keriteria berikut:

  1. Memiliki attribut/property/State (nama, berat, tinggi, warna dll),
  2. Memiliki Aksi / kelakuan (tumbuh, makan, minum, tidur, memperkeras suara, menyejukkan dll),
  3. memiliki keunikan (object memiliki beberapa keadaan dan fungsi yang sama tapi tetap ada bedanya).

Object Di Java

Kriteria object di java juga memiliki ketiga kriteria didunia nyata yang kita bahas diatas, memiliki nilai, aksi dan identitas(bisa diimplementasikan menggunakan id unik).

Object di java adalah bentuk jadi dari Class. Jadi class itu template atau cetakan untuk sekelompok objek yang memiliki properti yang sama. Class bisa terdiri dari:

  1. Fields Template dari keadaan(property) yang bisa membedakan objek yang satu dengan yang lainnya
  2. Methods Template dari fungsi dari objek tersebut. Umumnya didalamnnya juga ada mutator atau fungsi yang bisa mengubah keadaan(property) objek dan accessor untuk mengakses informasi fields pada object.
  3. Constructors Sesuai dengan namanya Constructor adalah pembangun objek,umumnya memberikan nilai keadaan default dari objek.
  4. Blocks kode blok seperti blok perulangan, blok percabangan dan blok lainnya
  5. Nested Class dan interface Class di dalam class, termasuk class yang didalamnya berupa fungsi abstrak (referensi type) yang disebut interface class.

Object Class di java

Class Object adalah class utama dari primitif type yang ada di java atau bisa kita katakan Object class itu adalah leluhur dari class lainnya di java seperti String, Integer, Boolean, Float, dan banyak lainnya.

Karena class Object adalah leluhur dari class lainnya maka akan membuat class lainnya juga memiliki sifat atau fungsi yang sama yang diturunkan oleh Object class.

Metode apa yang dibuat untuk menciptakan sebuah objek ?
object class

Membuat Class (Deklarasi Class)

Seperti yang telah dibahas sebelumnya setiap class di java adalah turunan dari Object Class. Tapi tidak semua class diturunkan secara langsung dari Object class.

Jika class yang dibuat tidak menggunakan keyword extends berarti class tersebut secara langsung turunan dari Object class jika menggunakan extends berarti turunan dari class lainnya, Tapi tetap saja class yang diatasnya tersebut alah turunan dari Object class _secara tidak langsung.

Jangan keliru antara membuat class (Deklarasi class) dan membuat object (instansiasi object) karena umumnya setiap tutorial menggabungkan keduanya menjadi nested class(class didalam class), tapi ada benar juga karena untuk membuat object kita perlu membuat classnya dulu.
Membuat class adalah membuat cetakan atau template untuk object yang akan dibuat, sedangkan membuat object kita menggunakan cetakan tersebut dengan keyword new untuk membuat sebuah objek.

Umumnya deklarasi class contohnya seperti berikut:

public class Orang { private String id; private String nama; private int umur; public Orang(String id, String nama, int umur) { this.id = id; this.nama = nama; this.umur = umur; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public int getUmur() { return umur; } public void setUmur(int umur) { this.umur = umur; } public void kenalan(){ System.out.println("Halo nama saya "+ this.nama); } }

Disini kita membuat sebuah class Orang untuk mewakili orang yang secara langsung merupakan turunan dari Object class. Class tersebut terdiri dari field yang menyediakan keadaan object, Contructor dengan argumen untuk inisialisasi object, dan beberapa method yang mengimplementasikan perilaku/fungsi object tersebut.

Pada class kita bisa memiliki lebih dari satu Constructor dengan jumlah atau tipe data argumen berbeda, sama halnya dengan method overloading, tapi kalo Constructor nama fungsinya harus sama dengan nama Classnya.

Contoh lain :

public class Karyawan extends Orang{ private String jabatan; public Karyawan(String id, String nama, int umur,String jabatan) { super(id, nama, umur); this.jabatan = jabatan; } public String getJabatan() { return jabatan; } public void setJabatan(String jabatan) { this.jabatan = jabatan; } @Override public void kenalan(){ System.out.println("Halo nama saya "+ super.getNama()+ "\nSaya menjabat sebagai "+ this.jabatan); } }

Disini class Karyawan menggunakan keyword extends di deklarasi class-nya dan menambahkan class Orang sebagai superclassnya sehingga membuatnya turunan dari class Orang. Dari situ class Karyawan merupakan turunan dari class Object secara tidak langsung.

Keyword this digunakan untuk mereferensikan object setelah class ini digunakan untuk membuat object. fungsinnya untuk mengakses field dan method object tersebut.

Membuat Object (Instansiasi Class)

Di java object dibuat pada saat runtime atau saat program dijalankan dengan mengalokasi memori dari template atau cetakan (Object class) entah itu String Integer atau dari Object class kita sendiri.

Umumnya untuk membuat object kita menggunakan operator atau keyword new. operator new menginstansiasi class dengan mengalokasi memori untuk objek baru dan mengembalikan referensi ke memori tersebut. referensi ini biasanya di tujukan ke variabel yang sesuai dengan tipe objek yang dibuat. Contoh :

Object object = new Object();

Disini kita menginisialsisai object dengan mereferesikan alokasi memori dari template class Object atau simpelnya memberikan nilai default ke variabel tersebut. Contoh diatas jika kita tidak tau object apa yang akan di tujukan kepada variabel object tersebut. biasanya di gunakan untuk mendapatkan nilai dari fungsi yang berasal dari generic class atau generic method dalam class tersebut contoh:

Object object = genericObjectVar.getObject();

Cara tersbut hanya bisa digunakan untuk tipe object primitif atau tipe object bawaan dari bahasa program java. Tapi jika tipe object-nya sudah diketahui maka cukup gunakan tipe data yang sesuai. Seperti:

String text = new String("teks string"); Integer angka = new Integer(1); Boolean bool = new Boolean(true);

Kata ”instansiasi class” sama artinya dengan ”membuat object”. ketika membuat objek, maka kita membuat sebuah sample/contoh dari class.

Referensi yang dikembalikan oleh operator new juga tidak harus di tujukan ke variabel karena juga bisa digunakan langsung menggunakan ekspresi atau fungsi didalam object class tersebut. contohnya:

int panjangText = new String().length();

Membuat Object dari Class Yang telah kita buat

Pada bagian sebelumnya kita telah membuat class Orang dan Karyawan untuk object kita sendiri, sekarang kita coba membuat object dari class yang telah kita buat tadi seperti berikut:

class Main { public static void main(String[] args) { Orang ido = new Orang("001","Ido",19); Orang dina = new Orang("002","dina",18); Orang dino = new Orang("003","dino",18); Karyawan driona = new Karyawan("001", "Driona", 23, "supervisor"); Karyawan tio = new Karyawan("002", "tio", 25, "manager"); } }

Mengunakan Object yang telah dibuat

Setelah kita membuat object tentu kita ingin menggunakannya dengan mengakses nilai, mengubahnya, atau menjalankan aksi yang dapat dilakukan object tersebut. Disini kita akan mengakses,mengubah dan menjalankan aksi dari salah satu object Karyawan yang telah kita buat seperti berikut:

Karyawan driona = new Karyawan("001", "Driona", 23, "supervisor"); System.out.println(driona.getJabatan()); driona.setJabatan("manager"); driona.kenalan();

Dari contoh tersebut bisa kita ketahui kita perlu menggunakan referesi object (driona) dan diikuti dengan tanda titik (.) untuk mengakses method-nya. Sebenarnya kita juga kita bisa mengakses field dari sebuah class yang umumnya class tersebut adalah static class. untuk yang kita bahas disini adalah class dinamis.

The End

Sebenarnya masih banyak sekali hal yang belum kita bahas mengenai Object dan terutama Class seperti interface class, static class dan Generic class yang sempat kita singgung dan sama sekali tidak disangka bahasan tentang class sendiri bisa sangat panjang. Semoga yang telah kita bahas di artikel ini bisa membantu untuk sedikit memahami tentang object dan class di java.

Seperti biasa source code percobaan yang digunakan disini bisa dicoba di sini.

Referensi dan sumber

  • Lesson: Classes and Objects
  • Java Object and Classes - TutorialsPoint