Class dan Objek pada Java

Halo, teman-semua. Selamat datang kembali di IHY Programming! Kali ini, mari kembali belajar java. Pada post kali ini, penulis akan berbagi pemahaman seputar konsep class dan objek pada Java. Seperti apa itu? Langsung saja ke topik utamanya.

Apa itu class?

Sebenarnya setiap kita membuat sebuah program java, kita juga selalu membuat sebuah class. Kehadiran class ini wajib untuk sebuah program java, terutama untuk java versi lama.

1
2
3
4
5
6
public class Main // ini class
{
  public static void main(String[] args) {
    System.out.println("Hello, World!");
  }
}

Untuk java versi baru, seperti Java 21, sepertinya sudah tidak wajib lagi menggunakan class untuk membuat program sederhana.

Oke kembali lagi ke pembahasan. Class. Class biasanya digunakan sebagai blueprint atau template dalam membuat objek.

Lalu apa itu objek?

Objek dalam hal ini bisa diasosiakan dengan objek di kehidupan nyata. Dan kata 'objek' disini tidak hanya tentang benda mati saja ya. Bahkan hewan, tumbuhan, atau manusia (user) bisa direpresentasikan dengan objek.

Ini ada hubungannya dengan konsep Object Oriented Programming (OOP) atau Pemrograman Berorientasi Objek (PBO). Yang pada dasarnya membagi aspek aspek program menjadi objek-objek mandiri dan terisolasi. Kemudian objek-objek tersebut diintegrasikan bersama untuk membuat sebuah program yang utuh.

Oke, jadi sejauh ini kita tahu kalau class adalah cetakan objek.

Tapi, apa sebenarnya objek itu sendiri dalam java?

Nah, objek itu sebenarnya tidak lebih dari sebuah variabel, dengan tipe data class.

Ya, class bisa menjadi tipe data. Layaknya int, float, char, boolean dan kawan-kawan mereka.

Bagian-bagian sebuah class.

Sebuah class umumnya berisi kumpulan fungsi dan kumpulan variabel.

Variabel dalam class disebut properti. 

Fungsi dalam class disebut method.

Properti biasanya digunakan untuk merepresentasikan apa yang 'dimiliki' class tersebut (Property).

Sementara method biasanya digunakan untuk merepresentasikan apa yang bisa 'dilakukan' class tersebut (Behaviour).

Misal, kita punya class kucing. Yang simpel aja dulu.

Kita mau bikin cetakan kucing. Maka kita perlu mendefinisikan apa yang dimiliki kucing, dan apa yang bisa dia lakukan.

Berikut kurang lebih properti yang dimiliki kucing.

  • nama
  • jenisKelamin
  • habitat
  • status

Tentu saja masih ada lebih banyak lagi. Sebagai contoh, kita ambil yang sederhana saja.

Dan berikut kurang lebih method yang dimiliki kucing.

  • tidur()
  • bangun()
  • makan()
  • jalan(arah)
  • lari(arah)
  • berhenti()

Yup, cukup ini saja untuk contoh kali ini.

Waktunya ngoding

Kemudian kita bisa menulis classnya. Mulai dengan buat projek baru di AIDE, atau IDE favorit kalian. Kemudian buat file baru dengan menekan tombol titik tiga, di kanan bawah aplikasi (untuk aplikasi AIDE).

letak titik tiga di ujung kanan bawah layar

Masuk ke folder src.

folder src setelah menekan titik tiga yang memunculkan file explorer project

Kemudian tekan tombol Add New Class... Lalu buat class dengan nama Kucing.

Dialog membuat file baru

Class kucing tampilan awal setelah dibuat. Masih kosong

Kemudian mulai mengetik properti dan method nya.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Kucing
{
    String nama;
    char jenisKelamin;
    String habitat;
    String status;

    void tidur() {
	System.out.println(nama + " sedang tidur...");
    }

    void bangun() {
	System.out.println(nama + " sudah bangun.");
    }

    void makan() {
	System.out.println(nama + " sedang makan...");
    }

    void jalan(String arah) {
	System.out.println(nama + " berjalan ke arah " + arah);
    }

    void lari(String arah) {
	System.out.println(nama + " berlari ke arah " + arah);
    }

    void berhenti() {
	System.out.println(nama + " sedang berhenti");
    }
	
    void pukul(Kucing kucingLain) {
	System.out.println(nama + " memukul " + kucingLain.nama + " :(");
    }
}

Isi method-nya, untuk tujuan demonstrasi, sederhana saja dulu. Kita hanya mencetak aksi yang dilakukan ke layar.

Kemudian buka file Main.java. Kita akan menulis kode untuk memakai class kita di sana.

class main yang berisi code default

Hapus semua kode di method main(). Kita buat kode baru.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Kucing bob = new Kucing(); // bob merupakan objek bertipe Kucing

// Mengisi nilai properti dari bob
bob.nama = "Bob";
bob.jenisKelamin = 'L';
bob.habitat = "Kampung";
bob.status = "Sehat";

System.out.println("Nama kucing   : " + bob.nama);
System.out.println("Jenis Kelamin : " + bob.jenisKelamin);
System.out.println("Habitat       : " + bob.habitat);
System.out.println("Status        : " + bob.status);

bob.makan();
bob.makan();

bob.jalan("utara");
bob.jalan("selatan");
bob.jalan("timur");
bob.lari("barat");

bob.berhenti();
bob.tidur();

Outputnya,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Nama kucing   : Bob
Jenis Kelamin : L
Habitat       : Kampung
Status        : Sehat
Bob sedang makan...
Bob sedang makan...
Bob berjalan ke arah utara
Bob berjalan ke arah selatan
Bob berjalan ke arah timur
Bob berlari ke arah barat
Bob sedang berhenti
Bob sedang tidur...

Kita bisa membuat objek dengan menggunakan keyword new pada java.

Format pembuatannya hampir sama seperti membuat variabel. Yaitu tipe data (dalam hal ini nama class) diikuti nama variabel, kemudian diisi dengan new diikuti nama class lagi dan kurung bulat, titik koma.

Contoh, membuat objek dari class Kucing.

Kucing bob = new Kucing();

Kita bisa membuat banyak objek sesuka kita.

Kucing bob = new Kucing();

Kucing adi = new Kucing();

Kucing sumbul = new Kucing();

Untuk mengakses properti atau methodnya. Gunakan nama objeknya diikuti titik kemudian nama method/propertinya.

bob.nama = "Bob";
adi.nama = "Adiyasa"
sumbul.nama = "Muhammad Sumbul";

bob.tidur();
adi.jalan("timur")
sumbul.lari("utara");

Bahkan kita bisa membuat objek-objek ini berinteraksi satu sama lain.

Misal kita buat method baru di class Kucing dengan nama pukul(kucing). Yang memungkinkan kucing untuk memukul kucing lain.

Tambahkan kode berikut pada class Kucing

void pukul(Kucing kucingLain) {
    System.out.println(nama + " memukul " + kucingLain.nama + " :(");
}

Hasilnya keseluruhan kode Kucing.java akan menjadi seperti berikut,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class Kucing
{

    String nama;
    char jenisKelamin;
    String habitat;
    String status;

    void tidur() {
	System.out.println(nama + " sedang tidur...");
    }

    void bangun() {
	System.out.println(nama + " sudah bangun.");
    }

    void makan() {
  	System.out.println(nama + " sedang makan...");
    }

    void jalan(String arah) {
 	System.out.println(nama + " berjalan ke arah " + arah);
    }

    void lari(String arah) {
	System.out.println(nama + " berlari ke arah " + arah);
    }

    void berhenti() {
	System.out.println(nama + " sedang berhenti");
    }

    void pukul(Kucing kucingLain) {
        System.out.println(nama + " memukul " + kucingLain.nama + " :(");
    }
}

Kemudian kita buat kucing lain di Main.java kita.

Kucing adi = new Kucing(); // adi merupakan objek bertipe Kucing yang gaada hubungannya dengan bob. Hanya tipennya saja yang sama
// Mengisi nilai properti dari adi
adi.nama = "Adi";
adi.jenisKelamin = 'L';
adi.habitat = "Kota";
adi.status = "Sehat";

// Kita buat adi memukul bob
adi.pukul(bob);
// dan sebaliknya hehe..
bob.pukul(adi);

Berikut adalah kode keseluruhan file Main.java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
 	Kucing bob = new Kucing(); // bob merupakan objek bertipe Kucing

	// Mengisi nilai properti dari bob
	bob.nama = "Bob";
	bob.jenisKelamin = 'L';
	bob.habitat = "Kampung";
	bob.status = "Sehat";

	System.out.println("Nama kucing   : " + bob.nama);
	System.out.println("Jenis Kelamin : " + bob.jenisKelamin);
	System.out.println("Habitat       : " + bob.habitat);
	System.out.println("Status        : " + bob.status);

	bob.makan();
	bob.makan();

	bob.jalan("utara");
	bob.jalan("selatan");
	bob.jalan("timur");
	bob.lari("barat");

	bob.berhenti();
	bob.tidur();
		
	Kucing adi = new Kucing(); // adi merupakan objek bertipe Kucing yang gaada hubungannya dengan bob. Hanya tipennya saja yang sama

	// Mengisi nilai properti dari adi
	adi.nama = "Adi";
	adi.jenisKelamin = 'L';
	adi.habitat = "Kota";
	adi.status = "Sehat";

	// Kita buat adi memukul bob
	adi.pukul(bob);
	// dan sebaliknya hehe..
	bob.pukul(adi);
    }
}

Outputnya,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
Nama kucing   : Bob
Jenis Kelamin : L
Habitat       : Kampung
Status        : Sehat
Bob sedang makan...
Bob sedang makan...
Bob berjalan ke arah utara
Bob berjalan ke arah selatan
Bob berjalan ke arah timur
Bob berlari ke arah barat
Bob sedang berhenti
Bob sedang tidur...
Adi memukul Bob :(
Bob memukul Adi :(

Tapi untuk apa semua ini?

Ya memang sih, ini membingungkan di awal. Dan keliatannya memang belum memiliki fungsi praktis dalam pemrograman.

Tapi akan semakin jelas nantinya kalau kita nanti sudah sampai di bab OOP. Kita akan membuat aplikasi yang (agak) real sedikit.

Apa lagi untuk membuat aplikasi yang memiliki kegunaan praktis. Konsep OOP ini akan sangat membantu dalam menstruktur kode agar semakin rapi dan mudah dikelola.

Jadi, pastikan untuk tunggu selalu update di IHY Programming blog.

Terima Kasih sudah membaca sampai akhir. Mohon maaf bila ada kesalahan. Jika ada yang ingin disampaikan, silahkan tulis di kolom komentar dibawah ini. Sampai jumpa lagi di post selanjutnya di IHY Programming. 


Referensi

  1. https://openjdk.org/jeps/445
  2. https://docs.oracle.com/javase/tutorial/java/concepts/class.html

Komentar

Postingan populer dari blog ini

Setup Apache2 Server dan PHP 8 di Android menggunakan Termux

Memasang dan menjalankan PHPMyAdmin pada Android

Array pada Java