Tugas 12 - Alpro 2 - Si UNIPDU
Class Abstrak
Pengertian Class Abstrak
Kelas abstrak atau abstract class adalah adalah kelas yang memiliki kata kunci yang diawali abstract.
Kelas harus diawali dengan abstrak jika memiliki satu atau lebih metode yang menggynakan kata kunci abstrak. Metode abstrak hanya dideklarasikan tetapi tidak bisa diimplementasikan. Kelas abstrak tidak dapat dibuat instansinya tetapi dapat diwariskan oleh kelas lain.
Lalu, apa fungsi abstrak?
Abstraksi adalah proses menyembunyikan detail implementasi dan hanya menampilkan fungsionalitas kepada pengguna. Cara lainnya, hal ini hanya menampilkan hal-hal penting kepada pengguna dan menyembunyikan detail internal.
Kita tidak tahu proses internal tentang pengiriman pesan. Abstraksi memungkinkan kita fokus pada apa yang dilakukan objek alih-alih bagaimana melakukannya.
Bagaimana Cara Mencapai Abstraksi
Setidaknya, ada dua cara untuk mencapai abstraksi di Java;
1. Kelas Abstrak (0 - 100%)
2. Interface (100%)
Kemudian ada beberapa hal penting yang perlu kita ingat ketika menggunakan abstrak.
- Abstract class harus dideklarasikan dengan kata kunci abstrak.
- Abstract class dapat memiliki metode abstrak dan non-abstrak.
- Abstract class tidak bisa dipakai.
- Abstract class dapat memiliki konstruktor dan metode statis juga.
- Abstract class dapat memiliki metode akhir yang akan memaksa subclass untuk tidak mengubah isi metode.
Contoh penggunaannya kurang lebih seperti dibawah ini
public abstract class abstractClass {
abstract void abstractMethod();
void concreteMethod() { // concrete methods masih diperbolehkan dalam kelas abstract
System.out.println("ini merupakan concrete method.");
}
}Contoh Source Code Menggunakan Class Abstrak
Biar lebih paham lagi, dibawah ini saya berikan project internet cafe penggunaan class Abstract buatan saya untuk dicoba coba, anda bebas merubah sesuka hati.
1. CafeBilling (Super class)
package Ozen.net;
/**
*
* @author Aditya Candra
* Search me on Youtube Candra Score
*/
public abstract class CafeBilling {
String Computer;
void setComputer(String computer){
this.Computer = computer;
}
String getComputer(){
return this.Computer;
}
abstract String getBilling();
}
2. normalComp (Subclass)
package Ozen.net;
/**
*
* @author Aditya Candra
*/
public class normalComp extends CafeBilling {
private final String computer;
private final String price;
private final double bill;
public normalComp(String komputer, String harga, double bill){
this.computer = komputer;
this.price = harga;
this.bill = bill;
}
public String bill(){
String hargaBilling;
if(bill >= 13.000)
hargaBilling = "4 jam";
else if(bill >= 10.000)
hargaBilling = "3 jam";
else if(bill >= 6.000)
hargaBilling = "2 jam";
else if(bill >= 3.000)
hargaBilling = "1 jam";
else
hargaBilling = "Masukkan harga billing!";
return hargaBilling;
}
@Override
String getBilling(){
System.out.println("Komputer : " +this.computer);
System.out.println("Harga : " +this.price);
System.out.println("Waktu : " +bill());
return computer;
}
}
3. VIPComp (Subclass)
package Ozen.net;
/**
*
* @author Aditya Candra
*/
public class VIPComp extends CafeBilling{
private final String computer;
private final String price;
private final double bill;
public VIPComp(String komputer, String harga, double bill){
this.computer = komputer;
this.price = harga;
this.bill = bill;
}
public String bill(){
String hargaBilling;
if(bill >= 17.000)
hargaBilling = "4 jam";
else if(bill >= 13.000)
hargaBilling = "3 jam";
else if(bill >= 7.000)
hargaBilling = "2 jam";
else if(bill >= 4.000)
hargaBilling = "1 jam";
else
hargaBilling = "Masukkan harga billing!";
return hargaBilling;
}
@Override
String getBilling(){
System.out.println("Komputer : " +this.computer);
System.out.println("Harga : " +this.price);
System.out.println("Waktu : " +bill());
return computer;
}
}
4. MainCafeBilling (Main class)
package Ozen.net;
/**
*
* @author Aditya Candra
* Search me on Youtube Candra Score
*/
public class MainCafeBilling {
public static void main(String args[]){
// Tempat untuk memasukkan tarif normal
CafeBilling normal_computer = new normalComp("Komputer A", "Rp 10.000", 10.000);
System.out.println("===================================");
System.out.println("| OZEN.NET SMART BILLING |");
System.out.println("===================================");
System.out.println("PEMBAYARAN BILLING TARIF NORMAL");
normal_computer.getBilling();
System.out.println("Mabar & Enjoy it");
// Tempat untuk memasukkan tarif VIP
CafeBilling vip_computer = new VIPComp("Komputer C", "Rp 7.000", 7.000);
System.out.println();
System.out.println("-----------------------------------"); // Batas
System.out.println();
System.out.println("===================================");
System.out.println("| OZEN.NET SMART BILLING |");
System.out.println("===================================");
System.out.println("PEMBAYARAN BILLING TARIF VIP");
vip_computer.getBilling();
System.out.println("PC kuat, tak kuatir ngelag.. Enjoy it");
}
}
5. OutputReferensi
https://codekey.id/java/abstract-class-java/#:~:text=Abstract%20Class%20Java%20atau%20Kelas,hanya%20dideklarasikan%20tetapi%20tidak%20diimplementasikan.
Komentar
Posting Komentar