Site icon Mawan.NET

Persegi.java

KONSEP OBJEK

Ada banyak perbédaan mendasar antara Pemrograman Prosédural dengan Pemrograman Beroriéntasi Objék. Pemrograman Prosédural memecah program besar dan rumit menjadi beberapa fungsi atau prosédur (métode), kemudian dipecah lagi dan terus begitu sampai didapat suatu fungsi dan prosédur sederhana. Ini dinamakan pendekatan Top Down. Sedangkan pemrograman Beroriéntasi Objék justru membuat fungsi atau métode sederhana, kemudian digabung menjadi lebih kompléks dan terus begitu sampai akhirnya didapat satu program utama yang paling rumit. Ini dinamakan pendekatan Bottom Up.

Misalkan saja: Saya hendak membuat program untuk menghitung volume.
Bila menggunakan pendekatan Top Down, maka saya akan membuat prosédur untuk menghitung volume, yaitu luas alas dikali tinggi. Luas alas adalah panjang dikali lébar. Variabel panjang, lébar, dan tinggi dikirim dalam bentuk paraméter. Untuk program-program sederhana, pemrograman prosédural lebih cepat dibuat dan lebih ringkas. Tapi semakin besar programnya, akhirnya makin rumit dikendalikan.

Bila menggunakan pendekatan Bottom Up, maka saya akan membuat prosédur untuk menghitung luas alas terlebih dulu, yaitu panjang dikali lébar. Setelah itu baru membuat prosédur untuk menghitung volume yaitu luas alas dikali tinggi. Pada OOP / PBO, variabel-variabel melekat pada objék. Bila tidak dibutuhkan, bisa disembunyikan sehingga program tetap mudah dikendalikan dan lebih mudah dipahami.

Gambaran OOP seperti ini.
Sepéda motor adalah Kelas. Masih berupa konsép. Belum ada wujud nyata. Vario adalah objek, perwujudan dari Sepéda motor. Pada Vario ada tombol starter untuk menghidupkan mesin. Bagaimana cara kerjanya sehingga mesin bisa hidup? Pengendara tidak perlu tahu. Semua itu telah dibungkus dan disembunyikan oléh montir / téknisi. Pengendara hanya perlu tahu bahwa untuk menghidupkan mesin, cukup menekan tombol warna kuning pada setang sebelah kanan. Bila masalahnya diperbesar lagi, maka pemboncéng tidak perlu tahu bagaimana cara menghidupkan sepéda motor. Itu urusan si pengendara. Dia hanya perlu tahu cara memboncéng.

Bingung?
Oké, mari kita membuat program untuk menghitung luas suatu persegi.

Ketik kode di bawah ini, lalu simpan dengan nama Persegi.java

/* --------------------------------
   Program penghitung luas persegi.
   Dibuat oleh Mawan A. Nugroho.
   Tanggal 21 Februari 2017.

   Nama file: Persegi.java
   -------------------------------- */

class Persegi {
	private int panjang, lebar;

	public void setPanjang(int panjang) {
		this.panjang = panjang;
	}

	public void setLebar(int lebar) {
		this.lebar = lebar;
	}

	public int getLuas() {
		int luas;

		luas = this.panjang * this.lebar;
		return(luas);
	}
}

Ketik kode di bawah ini, lalu simpan dengan nama Utama.java

/* --------------------------------
   Program penghitung luas persegi.
   Dibuat oleh Mawan A. Nugroho.
   Tanggal 21 Februari 2017.

   Nama file: Utama.java
   -------------------------------- */
class Utama {

	public static void main(String[] args) {
		Persegi kertas;
		kertas = new Persegi();

		kertas.setPanjang(10);
		kertas.setLebar(4);
		System.out.println("Luas = " + kertas.getLuas());
	}
}

Untuk menjalankan, ketik:

Compiler Java akan mengcompile Persegi.java dan Utama.java. Hasilnya adalah Persegi.class dan Utama.class. Persegi.class tidak bisa dijalankan secara langsung, karena dia adalah bagian dari Utama.class.

PEWARISAN

Pada bagian sebelumnya, kita telah membuat program untuk menghitung luas persegi. Misalkan satu bulan kemudian kita diminta membuat program untuk menghitung volume kotak. Proyék lebih besar nih. Kita tahu bahwa volume adalah luas alas dikali tinggi. Nah, bukankah program penghitung luas sudah pernah dibuat sebelumnya? Jadi kita tak perlu membuat lagi, tapi cukup konséntasi ke masalah berikutnya yaitu menghitung volume.

Ketik program di bawah ini, lalu simpan dengan nama Kotak.java

/* --------------------------------
   Program penghitung volume kotak.
   Dibuat oleh Mawan A. Nugroho.
   Tanggal 21 Februari 2017.

   Nama file: Kotak.java
   -------------------------------- */

class Kotak extends Persegi {
	private int tinggi;

	public void setTinggi(int tinggi) {
		this.tinggi = tinggi;
	}

	public int getVolume() {
		int volume;

		volume = getLuas() * this.tinggi;
		return(volume);
	}
}

Perhatikan baris ke 9. Ada kata kunci extends. Maksudnya adalah, kelas Kotak merupakan perluasan dari kelas Persegi. Dengan demikian, kelas Kotak mewarisi semua yang dimiliki kelas Persegi. Di kelas Kotak otomatis ada métode SetPanjang, setLebar, dan fungsi getLuas. Kita tidak usah membuat kode untuk menghitung luas alas. Yang harus dibuat hanyalah setTinggi dan getVolume.

Kelas Persegi disebut Super Class atau leluhur. Kelas Kotak disebut Sub Class atau turunan.

Silakan modifikasi program Utama.java menjadi seperti di bawah ini:

/* --------------------------------
   Program penghitung volume kotak.
   Dibuat oleh Mawan A. Nugroho.
   Tanggal 21 Februari 2017.

   Nama file: Utama.java
   -------------------------------- */
class Utama {

	public static void main(String[] args) {
		Persegi kertas = new Persegi();
		kertas.setPanjang(10);
		kertas.setLebar(4);
		System.out.println("Luas = " + kertas.getLuas());

		Kotak bakMandi = new Kotak();
		bakMandi.setPanjang(10);
		bakMandi.setLebar(4);
		bakMandi.setTinggi(6);
		System.out.println("Volume = "+ bakMandi.getVolume());
	}
}

Lakukan kompilasi dengan perintah javac Utama.java
Lalu jalankan dengan perintah java Utama

Sekian pembahasan singkat tentang OOP / PBO. Semoga bermanfaat.

Tugas untuk mahasiswa tanggal 5 Januari 2021:

Tugas untuk mahasiswa tanggal 12 Januari 2021:

 

Exit mobile version