[ HTML ] [ Java ] [ Bahasa C ]


Senin, April 15, 2019

Abstraksi Pada Java

Data abstraksi adalah konponen utama yang dianggap penting dari rincian yang ditampilkan oleh user. Data yang bersifat tidak penting atau tidak esensial tidak ditampilkan pada user. contoh: sebuah kendaraan akan ditampilkan sebagai sebuah kendaraan daripada satuan penyusun komponennya (roda, kaca, dan lainnya).

Data abstraksi juga didefinisikan sebagai proses identifikasi karakteristik kebutuhan dari objek dengan mengabaikan rincian yang tidak relevan. Properties dan behavior dari objek berbeda dengan objek lainnya dari tipe yang sama, dan juga, membantu dalam proses klasifikasi atau pengelompokkan dari sebuah objek.

Seperti contoh, seorang yang sedang mengendari kendaraan. Pada saat berkendara yang diketahui oleh orang atau driver adalah menekan gas dapat meningkatkan kecepatan dari kendaraan, atau menekan rem akan menghentikan laju kendaraan tetapi driver tersebut tidak megetahui bagaimana pada saat proses menekan gas dapat meningkatkan kecepatan dari laju kendaraan tersebut. Driver tidak mengetahui proses mekanisme dari mesin kendaraan atau implementasi dari proses peningkatan laju kendaraan saat menekan gas, rem, dan lain sebagainya.

Pada Java, proses abstraksi dapat dilakukan dengan menggunakan antar muka atau interface.

Class abstrak dan method abstrak:
satu, Class abstrak adalah class yang dideklrasikan dengan menggunakan keyword abstract.
dua, Method abstrak adalah method yang dideklarasikan tanpa implementation.
tiga, Abstrak class mungkin memiliki atau tidak memiliki method abstrak. Beberapa dari abstrak class tersebut bisa saja memiliki method yang terkonsentrasi.
empat, Sebuah method yang akan didefinisikan sebagai abstrak harus selalu didefinisikan ulang dalam subclass, hal ini akan menciptakan overriding compulsory atau membuat subclass itu sendiri sebagai abstrak.
lima, Class apapun yang mengandung lebih dari satu abstrak harus selalu dideklrasikan dengan menggunakan keyword abstrack.
enam, Tidak akan ada objek dari class abstrak. Class abstrak tidak bisa diinisialisasi secara langsung dengan menggunakan operator new.
tujuh, Class abstrak dapat memiliki parameter constructor dan default constructor yang akan selalu tersedia pada class abstrak.

Penggunaan class abstrack dan method abstrak beserta contoh
Ada suatu kondisi dimana harus mendefinisikan sebuah superclass yang mendeklarasikan struktur yang memberikan abstraksi tanpa menyediakan implementasi secara penuh dari setiap method. Terkadang programmer ingin menciptakan sebuah superclass yang hanya mendefinisikan gambaran umum yang dapat dibagikan (shared) terhadap sebuah subclass itu sendiri.

Contoh sederhana, seperti digunakan pada computer-aided design system atau game simulation seperti dijelaskan pada gambar 1 berikut.

abstraksi pada bahasa pemrograman Java
Gambar 1 Abstraksi pada Java
sumber : geeksforgeeks.org

// program Java

// mengilustrasikan konsep

// dari abstraksi.

abstract class Shape 

 

String color; 

 

/* method abstract */

abstract double area(); 

public abstract String toString(); 

 

// class abstract yang

// memiliki constructor.

public Shape(String color){ 

System.out.println("Constru"

+"ctor shape dipanggil"); 

this.color = color;} 

 

/* method terpusat */ 

public String getColor() { 

return color;} 

 

 

 

 

class Circle extends Shape 

{

 

double radius; 

 

public Circle(String color,double radius){ 

/* memanggil constructor shape */ 

super(color); 

System.out.println("Constru"

+"ctor circle dipanggil"); 

this.radius = radius;} 

 

@Override

double area() 

{return Math.PI * Math.pow(radius, 2);} 

 

@Override

public String toString() 

{return "Warna circle adalah " 

+super.color 

+"dan luas : "

+area();} 

 

}

 

 

 

class Rectangle extends Shape

 

double length; 

double width; 

 

public Rectangle(String color,double length,double width){ 

// memanggil constructor shape 

super(color); 

System.out.println("Constru"

+"ctor rectangle dipanggil"); 

this.length = length; 

this.width = width;} 

 

@Override

double area() 

{return length*width;} 

 

@Override

public String toString()

{return "Warna rectangle"

+" adalah "

+super.color

+"dan luas : "

+area();} 

 

}

 

 

 

public class Test 

 

public static void main(String[] args

Shape s1 = new Circle("Merah", 2.2); 

Shape s2 = new Rectangle("Kuning", 2, 4); 

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

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

}

 

}

Output:
Constructor shape dipanggil
Constructor circle dipanggil
Constructor shape dipanggil
Constructor 
rectangle dipanggil
Warna circle adalah Merahdan luas : 15.205308443374602
Warna rectangle adalah Yellowdan luas : 8.0

Enkapsulasi vs Data abstraksi
satu, Enkapsulasi adalah menyembunyikan data (menyembunyikan informasi) sementara abstraksi menjelaskan rincian data yang disembunyikan (implementation hiding).
dua, Enkapsulasi menggabungkan data dan method serta memberikan aksi terhadap data tersebut, sementara data abstraksi berkaitan dengan menampilkan interface kepada user dan menyembunyikan rincian dari implementasinya.

keunggulan dari abstraksi
satu, Mengurangi kompleksitas dari tampilan berbagai hal.
dua, Menghindari duplikasi kode dan meningkatkan reusability.
tiga, Meningkatkan keamanan dari aplikasi atau program yang hanya menyediakan rincian penting untuk user.

Tidak ada komentar:

Posting Komentar

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