iklan

Labels

Thursday, December 5, 2019

Memahami Abstraction





   Abstraction adalah proses untuk menyembunyikan detail implementasi dari user sehingga hanya sisi fungsionalitas saja yang ditampilkan, atau dengan kata lain user akan menerima informasi mengenai apa yang dapat dilakukan oleh suatu objek namun user tidak akan mengetahui bagaimana objek itu melakukannya.

   Abstraction merupakan salah satu dari empat konsep penting Java selain encapsulation, inheritance dan polymorphism.

Untuk membuat class menjadi abstract, anda tinggal melakukannya dengan menambahkan keyword abstract. 

Contohnya:

public abstract class Binatang {

   protected void bergerak (){

   }
}


  Bila anda melihat Java API, maka anda dapat menemukan banyak sekali abstract class. Tapi seperti apakah GUI Component tersebut? class Component merupakan superclass dari banyak sekali class yang terkait seperti button, dialog box, text area dan sebagainya.

 Tapi apakah anda membuat objek langsung dari class Component tersebut? Tentu saja tidak, melainkan anda membuat objek dari class konkritnya seperti membuat objek dari class JButton.

Pewarisan Dari Class Abstract

Untuk penggunaan class abstract, perhatikan contoh simpel di bawah ini :


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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package com.bahasaJava.Abstraction;
public abstract class Binatang {
private String nama, lokasi, makanan;
private double berat;
//Konstruktor, walaupun class abstract tidak bisa di instance-kan
//namun bisa dibuat konstruktornya.
public Binatang(String nama, String lokasi, String makanan, double berat){
  this.nama = nama;
  this.lokasi = lokasi;
  this.makanan = makanan;
  this.berat = berat;
}
//Getter dan setter nama binatang
public String getNama() {
  return nama;
}
public void setNama(String nama) {
  this.nama = nama;
}
//Getter dan setter lokasi binatang
public String getLokasi() {
  return lokasi;
}
public void setLokasi(String lokasi) {
  this.lokasi = lokasi;
}
//Getter dan setter makanan binatang
public String getMakanan() {
  return makanan;
}
public void setMakanan(String makanan) {
  this.makanan = makanan;
}
//Getter dan setter berat binatang
public double getBerat() {
  return berat;
}
public void setBerat(double berat) {
  this.berat = berat;
}
//Method cara bergerak binatang
public void bergerak(String gerakan){
  System.out.println(this.nama + " bergerak dengan " + gerakan );
}
//Method makan
public void makan(){
  System.out.println(this.nama + " memakan " + this.makanan );
}
//Method berkembang biak
public void berkembangBiak(String caraBerkembangBiak){
  System.out.println(this.nama + " berkembang biak dengan cara " + caraBerkembangBiak );
}
public void lokasi(){
  System.out.println(this.nama + " memiliki habitat di " + this.lokasi );
}
}
Ketika anda mencoba membuat instance dari class abstract binatang tersebut akan terjadi error, misalnya seperti di bawah ini:

1
2
3
4
5
6
7
8
9
10
11
package com.bahasaJava.Abstraction;
public class TestAbstract {
public static void main(String args []){
  /* Kode berikut ini tidak diizinkan dan akan memberikan keterangan error*/
  Binatang binatang = new Binatang("Harimau", "Afrika", "Rusa", 120,26);
  binatang.bergerak("berlari");
  binatang.berkembangBiak("beranak");
  binatang.makan();
}
}



Contoh keterangan error:

Exception in thread “main” java.lang.Error: Unresolved compilation problem:
Cannot instantiate the type Binatang
at com.bahasaJava.Abstraction.TestBinatang.main(TestBinatang.java:6)

Di keterangan tersebut tertera cannot instantiate the type Binatang, jadi tidak diperbolehkan membuat objek dengan tipe binatang dari class abstract.

Oleh karena itu, objek dari subclass yang akan bekerja, dengan cara membuat extends dari class abstract Binatang tersebut, seperti contoh di bawah ini:


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
package com.bahasaJava.Abstraction;
public class Harimau extends Binatang  {
private double kecepatanBerlari;
//Konstruktor untuk objek Harimau
public Harimau(String nama, String lokasi,
   String makanan, double berat, double kecepatanBerlari) {
  super(nama, lokasi, makanan, berat);
  setKecepatanBerlari(kecepatanBerlari);
}
//Method getter dan setter untuk kecepatan berlari Harimau
public double getKecepatanBerlari() {
  return kecepatanBerlari;
}
public void setKecepatanBerlari(double kecepatan) {
  if(kecepatan >= 0.00){
   kecepatanBerlari = kecepatan;
  }
  
}
//Method untuk menghitung jarak tempuh harimau dengan parameter waktu
public double jarak (double waktu){
  double jarak = waktu * kecepatanBerlari;
  System.out.println("Harimau berlari dengan kecepatan " + kecepatanBerlari +
    " km/jam selama " + waktu + " jam dengan jarak tempuh " + jarak + " km ");
  
  return jarak;
}
}

Kemudian untuk mengujinya, dibuat satu class lagi seperti di bawah ini:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.bahasaJava.Abstraction;
public class TestAbstract {
public static void main(String args []){
  
  Harimau harimau = new Harimau("Harimau", "Afrika", "Rusa", 120.26, 50.88);
  
  harimau.bergerak("berlari");
  harimau.makan();
  
  //Sekarang harimau makan kambing
  harimau.setMakanan("kambing");
  harimau.makan();
  
  harimau.lokasi();
  harimau.jarak(0.89);
}
}
Output:
Harimau bergerak dengan berlari
Harimau memakan Rusa
Harimau memakan kambing
Harimau memiliki habitat di Afrika
Harimau berlari dengan kecepatan 50.88 km/jam selama 0.89 jam dengan jarak tempuh 45.2832 km

Related Posts:

  • Cara memasang jam di BLOGhallo sobat  GeovanaTech kali ini saya akan share cara memasang jam di blog sobat,Memasang jam di blog sebenarnya memiliki fungsi untuk melengkapi,mempercantik,serta memperunik sebuah blog yang kita miliki.dengan adanya … Read More
  • STRUKTUR DAN FUNGSI KOMPOEN PENYUSUN KOMPUTER Pengertian Komputer Kata komputer berasal dari bahasa Latin yaitu Computare yang artinya menghitung. Dalam bahasa Inggris disebut to compute. Secara definisi komputer diterjemahkan sebagai sekumpulan alat elektro… Read More
  • Pengertian SSD Pengertian SSD adalah media penyimpanan data (non volatile memory) yang menggunakan papan memory sebagai media dan tidak menggunakan compact-disk seperti hard-disk konvensional sehingga SSD tidak memilki penundaan m… Read More
  • CYBER MAFIA ID hallo sobat GeovanaTech  apa kabar?,pastinya sehat donk hehehe, kali ini GeovanaTech akan share lagi nih game terbaru buatan anak indonesia , itu adalah game CYBER MAFIA ID game ini adalah game versi Android l… Read More
  • Review Soundcloud Android , Apakah lebih baik dari yang lain ?    Baiklah kali ini GeovanaTech akan mereview salah satu aplikasi produktifitas dan juga jejaring sosial yang berbasis audio atau music , Aplikasi semacam ini  dapat membantu musisi dan content creator untuk m… Read More

0 comments:

Post a Comment