ILMU COMPUTER

  







OOP(orientit objeck progrems)
Artikel

Artikel ini akan membahas pengenalan awal terhadap konsep pemrograman berbasis objek (OOP-Object Oriented Programing ). Dalam pemerograman OOP, Pembahasan konsep dasar OOP sangat perlu. Karna dengan memahami konsep dasar OOP, kita dapat melihat gambaran yang lebih jelas dan memperoleh pengertian tentang konsep OOP secara nyata.

Abstraksi merupakan suatu cara di mana kita melihat suatu objek dalam bentuk yang lebih sederhana . sebagai contoh kita tidak melihat mobil sebagai sekumpulan atau ribuan komponen elektronik, mekanik dengan empat buah ban, besi, besi, jok, stir kemudi dan lain sebagainya yang di sebut sedemikian rupa sehingga dinamakan mobil. Walaupun kenyataannya demikian, namun kita melihat mobil sebagai entitas yang mempunyai sifat dan karakter istik tersendiri. Dengan pemikiran seperti ini, kita dapat mengendarai mobil tanpa perlu memikirkan betapa rumitnya komponen yang menyusun sistem mobil itu sendiri. Dengan demikian kita tidak melihat bagian-bagian dalam sebuah mobil sebagai suatu bagian yang berdiri sendiri-sendiri. Tapi melihat dan menggunakannya sebagai satu kesatuan.



Dengan abstraksi, kita juga dapat melihat suatu sistem yang kompleks sebagai kumpulan subsistem yang lebih sederhana. Dari sini kita bisa melihat subsistem-subsistem tersebut masing-masing memiliki sifat dan karakteristik yang unik, seperti subsistem pengendalai stir pada mobil, sistem pengatur bahan bakar pada mobil dll, namun saling berintraksi dan bekerja sama menjadi satu kesatuan yang di kenal sebagai suatu entitas.


Pemahaman terhadap objek-objek di sekitar kita inilah yang akan mendasari pemahaman akan OOP. Tetapi yang terpenting yakni bagaimana mentransformasikan apa yang diketahui tentang suatu objek menjadi suatu program. Object Oriented Programming (OOP) adalah metode yang baik dalam pengembangan aplikasi. Sebuah variable biasa dapat di ubah menjadi sebuah object dan dapat melakukan banyak hal seperti simpan data, memformat penampilan data dll.
OOP (Objek Orientid Programming) merupakan cara atau metode baru dalam membuat program dengan teknik OOP pertamakali mengetahui objeknya, kemudian atributnya (field/data) dan perilakunya (fungsi). Berbeda dengan pemrogranman procedural(konfensiaonal), membuat program memakai aspek input, proses, dan output.


Karakteristik OOP


Karakteristik (Ciri) suatu program termasuk OOP, Apabila terdapat Pengapsulan Atau Pembungkusan (Encapsulaton), Polymorphisme, dan Turunan (Inheritance).
Pengapsulan/Pembungkusan(Encapsulation)
Dalam Pemrograman yang berorientasi murni Objek, program hanya dipusatkan pada aspek internal, tidak melihat aspek External. Pembuat program bisa lebih focus pada objek yang ditanganinya saja. Pengertian lain dari pengapsulan(Pembungkusan) adalah data dan perilaku menjadi satu dalam program.
Plymorphisme
Plymorphisme merupakan suatu krakteristik OOP dimana objek yang berbeda dapat memakai method dengan nama yang sama pada suatu kelas(class). Adapun salah satu sifat Plimorphisme yaitu Overloading, Overloading mempunyai ciri memiliki nama yang sama tetapi berbeda fungsi. Dalam hal ini bila suatu class mempunyai suatu method tertentu, kemudian kita bisa mendefinisikan method tersebut dengan menambahkan suatu parameter lain tetapi tetap memiliki nama yang sama, itu yang disebut dengan Overloading.
Polimorfisme berarti objek memiliki banyak bentuk. beberapa objek dikatakan polimorfik jika memiliki interface yang identik, namun memiliki prilaku yang berbeda. Bisa juga bentuk lain dari metode yang sebelumnya dimiliki oleh nenek moyangnya, tetapi memiliki perbedaan perilaku pada kelas turunannya, Contohnya:

public class ContohPolimorfis {
public static void main (String args[]) {
S1 sarjana = new S1();
S2 magister = new S2();
informasikan(sarjana);
informasikan(magister);
}
static void informasikan (Jenjang vJenjang){
System.out.println("=========================================");
System.out.println("Pendidikan : "+vJenjang.pendidikan );
System.out.println("Gelar : "+vJenjang.gelar);
System.out.println("=========================================");
}
}
abstract class Jenjang{
String pendidikan;
String gelar;
abstract public void setPendidikan(String vPendidikan);
abstract public void setGelar(String vGelar);
}
class S1 extends Jenjang {
public S1() {
pendidikan="Strata Satu";
gelar="Sarjana";
}
public void setPendidikan(String vPendidikan) {
pendidikan=vPendidikan;
}
public void setGelar(String vGelar) {
gelar=vGelar;
}
}
class S2 extends Jenjang {
public S2() {
pendidikan="Strata Dua";
gelar="Magister";
}
public void setPendidikan(String vPendidikan) {
pendidikan=vPendidikan;
}
public void setGelar(String vGelar) {
gelar=vGelar;
}
}
Turunana(Inheritance)
Turunan merupakan suatu karakteristik OOP dimana suatu kelas(Parent Class/Base Class) dapat diturunkan kekelas yang lain(Child Class/Derived Class), sehingga kelas anak dapat memiliki data atau prilaku kelas orangtuanya.
Interface
Dalam bahasa pemrograman, interface digunakan oleh berbagai objek yang tidak terhubung untuk saling berinteraksi. Jadi dalam bahasa pemrograman, interface dapat didefinisikan sebagai koleksi definisi metode-metode dan variabel-variabel konstan, namun tanpa implementasi. Implementasi akan dilakukan oleh kelas-kelas yang mengimplements interface ini. Tanpa implementasi di sini tidak seperti pada kelas abstrak yang merupakan metode-metode yang tidak melakukan apa-apa, melainkan hanya sekedar nama metode saja.
Sebuah kelas tidak dapat menjadi subkelas dari beberapa superkelas, melainkan hanya bisa menjadi subkelas dari satu superkelas saja. Hal ini membuat desain program lebih rapi dan teratur, sehingga dapat mengurangi kompleksitas program. Namun, terkadang hal ini dapat menjadi suatu halangan yang tidak menyenangkan, yaitu saat kita membutuhkan suatu kelas yang memiliki sifat-sifat dari dua atau lebih kelas lain. Pada masalah seperti ini, interface dapat memberikan alternatif jalan keluar.
Berikut ini adalah contoh dari interface
class ContohInterface {
public static void main (String args[]) {
Manusia man;
man =new Manusia();
man.berlari("10 KM/jam");
man.melompat("1,5 M");
man.pergiSekolah("SMP");
man.tampil();
Kucing kc = new Kucing();
kc.berlari("2 KM/jam");
kc.tampil();
}
}
interface Lari{
public void berlari(String vLari);
}
interface Lompat{
public void melompat(String vLompat);
}
interface Sekolah{
public void pergiSekolah(String vSekolah);
}
class Kucing implements Lari{
String kecepatanLari;
public Kucing(){
}
public void berlari(String vLari){
kecepatanLari = vLari;
}
public void tampil(){
System.out.println("Kucing berlari = "+ kecepatanLari);
}
}
class Manusia implements Lari, Lompat, Sekolah{
String kecepatanLari;
String tinggiLompat;
String pendidikan;
public Manusia(){
}
public void berlari(String vLari){
kecepatanLari = vLari;
}
public void melompat(String vLompat){
tinggiLompat = vLompat;
}
public void pergiSekolah(String vSekolah){
pendidikan=vSekolah;
}
public void tampil(){
System.out.println("Manusia berlari = "+ kecepatanLari);
System.out.println("Tinggi lompatan = "+ tinggiLompat);
System.out.println("Pendidikan = "+ pendidikan);
}
}