OOP..

OOP.. O_O P.. whew..ujug-ujug mau bahas tentang OOP..
Ada apa ini?
Mau sedikit menseriusi dunia blog?
Mau ikut-ikutan membuat sesuatu yang bermanfaat?
Yah apapun itu..hargai saja usaha saia..😎

OOP a.k.a Object Oriented Programming..
Pemrograman berorientasi objek diciptakan untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada dalam kehidupan nyata. Semua data dan fungsi di dalam paradigma ini dibungkus dalam class atau object.

Ketika kita mendengar OOP maka setidaknya kita akan mengenal class, object, atribut, method, polymorphism, inheritance, encapsulation, overloading, dan overriding.
Class: anggaplah Cetakan.

Object: Hasil cetakan; jika Class kita analogikan dengan manusia, maka object yang bisa kita buat bisa berupa saia yang enggunakan kacamata, anda yang suka membaca blog saia, sahabatSaia yang namanya Anish, temanSaia yang berbaju garis-garis ataupun temanAnda yang seorang PNS.

Atribut: Sesuatu yang dimiliki suatu object; misalkan saja manusia punya nama, alamat dan pekerjaan.

Method: Sesuatu yang bisa dilakukan object; misalkan saja manusia bisa berjalan, makan, bekerja dan tidur.

Polymorphism: Banyak bentuk; object yang berbeda dapat memiliki metode dengan nama yang sama dan mungkin berlaku berbeda pada kelas yang berbeda. Polymorphism dapat meningkatkan generalisasi code dan readability *mencontek catatan kuliah*

Inheritance: Pewarisan; jika dianalogikan dalam suatu silsilah keluarga, ada orang tua dan kita sebagai anaknya. Apa yang dimiliki orang tua akan diwariskan ke anak-anaknya, seperti bentuk dagu, bentuk hidung, ataupun cara berjalan. Jika dikembalikan lagi ke konsep OOP maka class OrangTua dengan atribut dagu, hidung, dan method cara berjalan akan diwariskan ke subclass AnakAnaknya.

Encapsulation: Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. *pengertian yang ini saia contek dari tante Wiki*πŸ˜€

Overloading: Penggunaan satu nama untuk beberapa method yang berbeda (beda parameter).

Overriding: Terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method dari superclassnya.

:serius kesulitan/kesulitan serius?:
Ada sedikit sample code yang sudah saia buat:

package oopkonsep;

//Matematika.java
public class Matematika {
int hasil;
double hasil2;

void pertambahan(int a, int b){
hasil = a+b;
System.out.println(“Hasil pertambahan “+ a + ” dan ” + b +” adalah “+hasil);
}

void pengurangan(int a, int b){
hasil = a-b;
System.out.println(“Hasil pengurangan “+ a + ” dan ” + b +” adalah “+hasil);
}

void perkalian(int a, int b){
hasil = a*b;
System.out.println(“Hasil perkalian “+ a + ” dan ” + b +” adalah “+hasil);
}

void pembagian(int a, int b){
hasil = a/b;
System.out.println(“Hasil pembagian “+ a + ” dan ” + b +” adalah “+hasil);
}

/* Ini sudah contoh dari overloading
* dimana metode pertambahan, pengurangan, perkalian, dan pembagiannya mengguinakan 3 parameter bertipe double (pecahan)
*/
void pertambahan(double a, double b, double c){
hasil2 = a+b+c;
System.out.println(“Hasil pertambahan “+ a + ” “+ b + ” dan ” + c +” adalah “+hasil2);
}

void pengurangan(double a, double b, double c){
hasil2 = a-b-c;
System.out.println(“Hasil pengurangan “+ a +” “+ b + ” dan ” + c +” adalah “+hasil2);
}

void perkalian(double a, double b, double c){
hasil2 = a*b*c;
System.out.println(“Hasil perkalian “+ a + ” ” + b + ” dan ” + c +” adalah “+hasil2);
}

void pembagian(double a, double b, double c){
hasil2 = a/b/c;
System.out.println(“Hasil pembagian “+ a + ” ” + b + ” dan ” + c +” adalah “+hasil2);
}
}

//MatematikaBeraksi.java
public class MatematikaBeraksi {
public static void main(String[] args){
// Membuat object mtk dimana atribut dan metode mtk sama dengan class Matematika
Matematika mtk = new Matematika();

// memanggil metode dan memberi nilai parameter
mtk.pertambahan(12.5, 28.7, 14.2);
mtk.pertambahan(20, 10);

mtk.pengurangan(20, 5);
mtk.pengurangan(20.5, 0.5, 1);
}
}

Keluaran ketika file tersebut di-run adalah:

run:
Hasil pertambahan 12.5 28.7 dan 14.2 adalah 55.400000000000006
Hasil pertambahan 20 dan 10 adalah 30
Hasil pengurangan 20 dan 5 adalah 15
Hasil pengurangan 20.5 0.5 dan 1.0 adalah 19.0
BUILD SUCCESSFUL (total time: 0 seconds)

:cepat cukupkan:

Itu saja yang saia coba jelaskan, semoga bermanfaat..πŸ˜€

btw mau pamer sebentar ah..liat lagi deh Matematika.java sampe 4 method pertama aja, sebelum contoh overloading..
Sudah??
Barisan code itulah yang membuat saia mendapatkan buku berjudul “Dapat apa sih dari universitas?” langsung dari seorang Romi Satria Wahono..
:jingkrak2 kesenangan:

*saia memang selesai duluan waktu ngerjain itu, jangan dianggap hebat, lha wong pernah belajar waktu kuliah hehe.. :mrgreen:*

13 thoughts on “OOP..

  1. ai, td waktu bimbingan gw nanya sama pembimbing tentang overloading *sambil bawa catetan sedikit codingan ai* kata dosenku itu sih, overloading tidak disarankan. Kl aku ga salah nangkep, sebaiknya dalam satu class tidak ada method yang sama. *terusannya apa ya ai, dongdong nih gw pikun bgt* wallahu a’lam, ayo kita blajar lagi^^’

  2. @poetz: ckckck… codingan saia dibawa ke dosen?? atuh jangan bu.. :geleng2 kepala::mrgreen:
    iyah..mari belajar lagi..pada dasarnya ai nulis ini karena ada yg request (baca:nyuruh/tugas)..dan yg dijadikan contoh juga sekedar memberikan bayangan aja overloading itu bentuknya ky apa..masalah recommended / ngganya juga masih kurang ngerti hehe…πŸ˜€
    SMANGAT..belajar teruuuusss..😎

  3. wew overloading tidak disarankan?!? apakah para programmer pencipta compiler itu sudah salah langkah dengan menciptakan suatu method yg dinamakan overloading?! hihii,,

    *buka2 buku lagi:mrgreen:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s