Pemrograman berorientasi objek (OOP) ialah sebuah metode pemrograman berbasiskan hirarki kelas-kelas dan melibatkan objek. Pemrograman Berorientasi Objek merupakan fitur utama pada Java dimana syarat utamanya kita harus membuat program berupa kelas . Sebuah kelas ialah sebuah struktur yang mendefinisikan data dan method untuk bekerja pada data tersebut. Ketika kita membuat program OOP di java, semua data diselubung oleh sebuah kelas. Berikut rumus umum dari OOP :
//membuat objek dari suatu kelas menggunakan new
nama kelas nama_objek = new nama_kelas
//memanggil method dari objeknya
nama_objek.nama_method();
//mengeset properties
nama_objek.nama_properties=value;
Kelas
Di dalam kelas kita mendeklarasikan berbagai variabel/properties dan method, contoh berikut menampilkan contoh dasar pembuatan kelas di java :
//deklarasi nama kelas StudInfo
class StudInfo {
//deklarasi variabel
String name;
String nim;
String kelas;
//deklarasi dan inisialisasi method printDetails()
void printDetails() {
System.out.println( name + " " + nim + " " + kelas );
}
}
//kelas utama StudentDetails
class StudentDetails {
public static void main ( String args[] ) {
// membuat objek bernama student dari kelas StudInfo
StudInfo student = new StudInfo();
// inisialisasi variable/properties objek dengan data
student.name = "Risman Hidayat";
student.nim = "11130076";
student.kelas = "11.7C.01";
// memanggil method printDetails untuk menampilkan data
student.printDetails();
}
}
Ketika program ini dijalankan ,hasilnya :
Hasil Output :
Inheritance
Untuk membuat kelas baru dari komponen kelas yang sudah ada, dapat kita gunakan turunan atau inheritance. Di java kita menggunakan fungsi extendsuntuk menandakan suatu kelas ialah turunan dari kelas lain
//kelas Human ialah kelas yang akan diturunkan (base class atau super class)
class Human
{
int hands = 2;
}
//kelas Employee ialah kelas turunan dari kelas Human (subclass)
class Employee extends Human {
String name;
double salary ;
//membuat konstruktor untuk inisialisasi
//idealnya untuk menginisialisasi variable kita gunakan konstruktor
Employee ( String n, double s ) {
name = n;
salary = s;
}
String getDetails()
{
return "\nName : " + name + "\nSalary : " + salary;
}
}
//Kelas manager turunan dari kelas Employee
class Manager extends Employee
{
String dept ;
Manager ( String n, double s, String d ) {
super(n,s);//memanggil konstruktor kelas atas (Employee)
dept = d;
}
String getDetails()
{
return super.getDetails() + "\nDept : " + dept
+ "\nHands : " + super.hands;}
}
class SuperTestEmployee
{
public static void main ( String args[] )
{
Manager m1 = new Manager("Risman", 1000.0, "Vice President");
System.out.println(m1.getDetails());
Manager m2 = new Manager ("Desi", 2000.0,"Finance");
System.out.println(m2.getDetails());
Manager m3 = new Manager ("Aris", 3000.0, "Sales");
System.out.println(m3.getDetails());
}
}
Hasil Output :
Pada program diatas, kita membuat 3 buah kelas, yaitu kelas Human, Employee dan Manager . Untuk menginisialisasi variable idealnya kita menggunakan Konstruktor, dimana penulisannya harus sama dengan nama kelas. Jadi jika kelas bernama Employee , maka konstruktornya bernama Employee() atau terdiri dari beberapa parameter yang kita inginkan. Konstruktor yang tidak mempunyai parameter kita sebut sebagai default constructor. Penggunaan fungsi super untuk memanggil konstruktor dari kelas atas (base class). Jika kita membuat konstruktor dengan nama yang sama , namun berbeda isi parameternya, ini disebut sebagai overloading constructor
Contoh :
class Cload
{
String pname;
int qty;
int price;
//konstruktor dengan 3 parameter
Cload (int prodqty, String prodname, int prodprice )
{
pname=prodname;
qty=prodqty;
price=prodprice;
}
//konstruktor dengan 2 parameter bertipe int dan String
Cload (int q, String p1name)
{
pname=p1name;
price=q;
qty=price/10; }
void print() {
System.out.println ("nama produk : " + pname);
System.out.println ("Kuantitas :" + qty);
System.out.println ("Harga: " + price);}
public static void main (String args[]) {
Cload prods;
prods = new Cload (10,"Apples", 10);
prods.print();
prods = new Cload (10,"Oranges ");
prods.print();
}}
Program diatas akan menginisialisasi variable menggunakan konstruktor yang berbeda parameter dan menampilkan datanya.
Hasil Output :
Pada program diatas terlihat kita bisa mengeset konstruktor dengan berbagai parameter, dan program otomatis akan mencari dan mengenal konstruktor mana yang harus dicari sesuai dengan parameter yang kita berikan.
Di java, agar kita dapat menggunakan method pada berbgai kelas, namun implementasi method tersebut berbeda-beda, kita harus mendeklarasikan method tersebut di dalam kelas abstract. Contoh :
abstract class Bentuk {
…
public abstract float hitungluas();
…
}
public class Lingkaran extends Bentuk {
…
float radius;
public float hitungluas();
{
return radius *22/7;
}
}
Pada program diatas, kita memilih sebuah method abstrak yaitu hitungluas(), oleh karena itu di kelas Lingkaran yang merupakan turunan dari kelas Bentuk, dapat mendefinisikan isi method hitungluas() untuk lingkaran. Tentu saja rumus luas untuk persegi panjang dan bidang lainnya berbeda, disinilah kelebihan penggunakan kelas abstrak. Sedangkan jika anda ingin suatu kelas tidak dapat diturunkan harus menggunakan keyword final. Penggunaan final pada variable justru membuat variabel menjadi suatu konstanta. Beberapa konsep OOP yang harus dipelajari Anda lebih jauh yaitu Polimorphisme, Interface dan method overriding
dari materi : repository.binus.ac.id/content/T0682/T068259373.doc
sipppppppppppp
BalasHapus