OOP, Object Oriented Programming, Pemrograman Berorientasi Objek

12
Konsep Dasar Pemrograman Berorientasi Objek Nur Hadi Indra ©2014 1 BAB I PENDAHULUAN A. Latar Belakang Pemrograman Berorientasi Objek (Object Oriented Programming atau OOP) merupakan paradigma pemrograman yang terkini. Dimana objek adalah struktur data yang terdiri dari bidang data dan metode bersama dengan interaksi mereka untuk merancang aplikasi dan program komputer. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Pada jaman sekarang, banyak bahasa pemrograman yang mendukung OOP. OOP adalah paradigma pemrograman yang cukup dominan saat ini, karena mampu memberikan solusi kaidah pemrograman modern. Meskipun demikian, bukan berarti bahwa pemrograman prosedural sudah tidak layak lagi. OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek. Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

description

OOP, Java, Makalah Java, Makalah OOP, Berorientasi Objek

Transcript of OOP, Object Oriented Programming, Pemrograman Berorientasi Objek

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    1

    BAB I

    PENDAHULUAN

    A. Latar Belakang

    Pemrograman Berorientasi Objek (Object Oriented Programming atau

    OOP) merupakan paradigma pemrograman yang terkini. Dimana objek adalah

    struktur data yang terdiri dari bidang data dan metode bersama dengan interaksi

    mereka untuk merancang aplikasi dan program komputer. Semua data dan fungsi

    di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.

    Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima

    pesan, memproses data, dan mengirim pesan ke objek lainnya. Pada jaman

    sekarang, banyak bahasa pemrograman yang mendukung OOP.

    OOP adalah paradigma pemrograman yang cukup dominan saat ini,

    karena mampu memberikan solusi kaidah pemrograman modern. Meskipun

    demikian, bukan berarti bahwa pemrograman prosedural sudah tidak layak lagi.

    OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa

    pemrograman tradisional. Konsep dari OOP sendiri adalah semua pemecahan

    masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan

    mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut

    sebagai objek. Proses perancangan atau desain dalam suatu pemrograman

    merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis

    dan proses yang mengikutinya.

    Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang

    lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti

    lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih

    mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan

    pendekatan OOP lebih mudah dikembangkan dan dirawat.

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    2

    B. Rumusan Masalah

    Dengan memperhatikan Latar belakang tersebut, maka penulis

    mengemukakan beberapa rumusan masalah. Rumusan masalah tersebut

    diantaranya adalah :

    1. Pengertian OOP (Object Oriented Programming)?

    2. Apa keuntungan penerapan OOP?

    3. Bahasa apa saja yang mendukung OOP?

    4. Apa itu Object dan Class?

    5. Apa saja karakteristik OOP?

    C. Tujuan dan Manfaat

    Tujuan dan Manfaat dari pembuatan makalah ini adalah selain daripada

    salah salah satu syarat seleksi penerimaan Asisten Laboratorium Fakultas Ilmu

    Komputer UMI, juga untuk mengetahui lebih jauh mengenai Pemrograman

    Berorientasi Objek (Object Oriented Programming atau OOP).

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    3

    BAB II

    PEMBAHASAN

    A. Pengertian Pemrograman Berorientasi Objek (OOP)

    Pemrograman Berorientasi Objek atau Object Oriented Programming

    disingkat OOP adalah suatu metode pemrograman yang berorientasikan kepada

    objek seperti dalam dunia nyata. Dimana semua data dan fungsi di dalam metode

    ini dibungkus didalam class-class atau object-object. Setiap objek yang kita buat

    dapat menerima instruksi, memproses data, dan mengirim instruksi/data ke objek

    lainnya, Pemrograman berorientasi objek memandang bahwa semua pemecahan

    masalah dibagi ke dalam kelas (class). Class tersebutlah yang akan menciptakan

    sebuah objek yang memiliki atribut/ciri-ciri dan metode/ tingkah laku.

    B. Kelebihan Pemrograman Berorientasi Objek (OOP)

    - Memungkinkan menggunakan penerapan dunia nyata (real-world modeling)

    - Mendukung penggunaan kembali code yang telah ada (reusable sources)

    - Menyediakan fleksibilitas dalam memodifikasi kode yang telah ada (fleksibel)

    - Membantu dengan mudah pemeliharaan code yang telah ada (maintenable)

    C. Bahasa Pemrograman yang menerapkan OOP

    - Java

    - C++ (dari bahasa C )

    - Visual Basic.NET , C#

    - SIMULA

    - Smalltalk

    - Ruby

    - Python

    - PHP

    - Perl, dan sebagainya

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    4

    D. Objek dan Kelas

    1. Objek/ Object

    Pada dasarnya semua benda yang ada di dunia nyata dapat

    dianggap sebagai sebuah objek. Jika perhatikan lebih lanjut, pada dasarnya

    ada dua karakteristik yang utama pada sebuah objek , yaitu :

    - Setiap objek memiliki atribut/ciri-ciri sebagai status yang kemudian

    akan disebut sebagai state.

    - Setiap objek memiliki tingkah laku yang kemudian akan disebut

    sebagai behaviour.

    Contoh sederhananya adalah : objek mobilku

    - Sepeda memiliki atribut ( state ) : merek: xenia, warna: putih, tahun

    produksi: 2012, dll.

    - Sepeda memiliki tingkah laku ( behaviour ) : kecepatannya menaik,

    kecepatannya menurun, dan perpindahan gigi,dll.

    Dalam pengembangan perangkat lunak berorientasi objek, objek dalam

    perangkat lunak akan menyimpan state-nya dalam variabel dan

    menyimpan informasi tingkah laku (behaviour) dalam Method atau

    fungsi/prosedur.

    2. Kelas/ Class

    Kelas berbeda dengan objek. Kelas merupakan template/cetakan dari

    objek yang mendefinisikan variabel dan Method secara umum. Sedangkan

    objek pada sisi yang lain merupakan instansiasi/penerapan dari suatu kelas,

    yang mendefinisikan variabel dan Method secara spesifik.

    Sebuah Kelas juga merupakan type data, dapat digunakan untuk

    mendeklarasi objek yang direferensikan dengan variabel-variabel. Banyak

    objek yang dapat dibuat hanya menggunakan satu kelas.

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    5

    Berikut adalah perbandingan sederhana antara Object dan Class :

    Contoh penerapannya pada kode Java (nama file MobilBeraksi.java) :

    class Mobil{

    String merek,warna,noPlat;

    int kecepatan = 0;

    //Method

    void getAtribut(){

    System.out.println("Merek Mobil : "+merek);

    System.out.println("Warna Mobil : "+warna);

    System.out.println("Nomer Plat : "+noPlat);

    }

    void setKecepatan(int input){

    kecepatan=kecepatan+input;

    }

    }

    public class MobilBeraksi{

    public static void main(String[] args) {

    // Membuat object

    Mobil mobilku = new Mobil();

    //memanggil atribut dan memberi nilai

    mobilku.merek="Avanza";

    mobilku.warna="Hitam";

    mobilku.noPlat="DD 24 IR";

    // Memanggil Method dan menunjuk nilai parameter

    mobilku.getAtribut();

    mobilku.setKecepatan(30);

    System.out.println ( "Mobil " + mobilku.merek + " warna " +

    mobilku.warna + " bernomer plat " + mobilku.noPlat + " sedang

    melaju dengan kecepatan " + mobilku.kecepatan + " km/jam " );

    }

    }

    Class Object

    Identifier Mobil Mobilku

    Atribut/ State Merek, Warna, No.Plat Avanza, Hitam, DD 24 IR

    Tingkah

    Laku/

    Method

    Tambah kecepatan, Kurangi

    kecepatan, dll

    Tambah kecepatan, Kurangi

    kecepatan, dll

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    6

    E. Karakteristik Pemrograman Berorientasi Objek (OOP)

    1. Abstraksi/ Abstraction

    Abstraksi dapat didefinisikan sebagai kemampuan sebuah program

    untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan

    untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai

    model dari pelaku abstrak yang dapat melakukan kerja, laporan dan

    perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam

    sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses,

    fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan

    untuk mengembangkan sebuah pengabstrakan.

    2. Pembungkusan / Encapsulation

    Tujuan utama enkapsulasi adalah menyederhanakan kerumitan

    program menjadi beberapa bagian yang biasanya tidak perlu diketahui

    prosesnya secara detail. Memastikan pengguna sebuah objek tidak dapat

    mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak;

    hanya metode dalam objek tersebut yang diberi izin untuk mengakses

    keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana

    objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan

    mengetahui dan tergantung kepada representasi dalam objek tersebut.

    Inti dari enkapsulasi adalah :

    - Menyembunyikan kompleksitas

    - Memproteksi internal sistem

    - Modularitas

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    7

    3. Pewarisan/ Inheritance

    Konsep pewarisan yaitu suatu kelas bisa diturunkan menjadi kelas

    baru yang masih mewarisi sifat-sifat kelas induknya. Pewarisan adalah

    keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau

    Method yang didefinisikan dalam superclass, secara otomatis diwariskan dari

    semua subclasses. Jadi, penulisan kode Method hanya sekali dan dapat

    digunakan oleh semua subclass. Subclass hanya butuh mengimplementasikan

    perbedaannya sendiri dan induknya.

    Contoh pewarisan :

    Kelas Lingkaran dapat diturunkan menjadi kelas Kerucut dan kelas

    Bola. Kelas kerucut dan kelas bola (disebut sub kelas/kelas perluasan) akan

    mewarisi semua field dan Method dari kelas Lingkaran (kelas

    induknya/superclass) selama field dan Method tersebut tidak dideklarasikan

    sebagai private.

    Contoh pewarisan pada Lingkaran.java mewarisi Tabung.java:

    public class Lingkaran{ //super class

    final double phi=3.14;

    double jari2;

    public Lingkaran(){

    jari2=1.0;

    }

    public void setJari2(double input){

    jari2=input;

    }

    Class Lingkaran

    Class Tabung Class Kerucut

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    8

    public double getJari2(){

    return jari2;

    }

    public double Hitung_Luas(){

    return (phi*jari2*jari2);

    }

    public static void main( String [] args ){

    Lingkaran lingkar001 = new Lingkaran();

    lingkar001.setJari2(100);

    System.out.println("jari2 = "+lingkar001.getJari2());

    double hasil = lingkar001.Hitung_Luas();

    System.out.println("Luas = "+hasil);

    }

    }

    Tabung.java :

    public class Tabung extends Lingkaran{ //sub class

    private double tinggi;

    public Tabung(){

    tinggi=1.0;

    }

    public void setTinggi(double input){

    tinggi = input;

    }

    public double getTinggi(){

    return tinggi;

    }

    public double Hitung_Volume(){

    return (phi*jari2*jari2*tinggi);

    }

    public static void main( String [] args ){

    Tabung tabung001 = new Tabung();

    tabung001.setTinggi(10.0);

    System.out.println("Tinggi = "+ tabung001.getTinggi());

    double hasil = tabung001.Hitung_Volume();

    System.out.println("Volume = "+hasil);

    }

    }

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    9

    4. Polimorfisme/ Polymorphism

    Kata polimorfisme yang berarti satu objek dengan banyak bentuk

    yang berbeda, adalah konsep sederhana dalam bahasa pemrograman

    berorientasi objek yang berarti kemampuan dari suatu variabel referensi objek

    untuk memiliki aksi berbeda bila Method yang sama dipanggil, dimana aksi

    Method tergantung dari tipe objeknya.

    Kondisi yang harus dipenuhi agar polimorfisme dapat diterapkan adalah :

    - Method yang dipanggil harus melalui variabel dari basic class atau

    superclass.

    - Method yang dipanggil harus juga menjadi Method dari basic class.

    - Signature Method harus sama, baik pada superclass maupun subclass.

    - Method access attribute pada subclass tidak boleh lebih terbatas dari

    basis class.

    Dalam konsep Polimorfisme, Method yang sama dapat memiliki aksi yang

    berbeda, teknik ini dinamakan Overloading dan Overriding :

    - Overloading

    Penggunaan satu nama untuk beberapa Method yang berbeda (beda

    parameter). Overloading mendefinisikan Method yang memiliki nama yang

    sama, tetapi dengan signature yang berbeda dalam definisi kelas yang sama.

    - Overriding

    Terjadi ketika deklarasi Method subclass dengan nama dan parameter

    yang sama dengan Method dari superclassnya. Untuk beberapa pertimbangan,

    terkadang subclass perlu memiliki implementasi berbeda dari Method yang

    khusus dari superclass tersebut. Oleh karena itulah, Method overriding

    digunakan. Subclass dapat mengesampingkan Method yang didefinisikan

    dalam superclass dengan menyediakan implementasi baru dari Method

    tersebut.

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    10

    Contoh Overloading Method pada Java (nama file Matematika.java):

    public class Matematika {

    int hasil;

    //Method penjumlahan 2 bilangan

    void penjumlahan (int x,int y) {

    hasil = x + y;

    System.out.println("penjumlahan "+x+" + "+y+" =

    "+hasil);

    }

    //Method penjumlahan 3 bilangan

    void penjumlahan (int x,int y, int z) {

    hasil = x + y + z;

    System.out.println("penjumlahan "+x+" + "+y+" + "+z+" =

    "+hasil);

    }

    }

    class MatematikaBeraksi {

    public static void main(String[] args) {

    Matematika operasi = new Matematika();

    // Memanggil Method yang namanya sama

    // tapi parameter yg menjadi pembeda

    operasi.penjumlahan(2,4);

    operasi.penjumlahan(3,5,2);

    }

    }

    Contoh Overriding Method pada Java (nama file Overriding.java):

    public class Overriding { //superclass

    void tampil(){

    System.out.println("Method Pertama");

    }

    }

    class SubOverriding extends Overriding{ //subclass

    @Override

    void tampil(){ //meng-override Method dari superclass

    System.out.println("Method Kedua, menimpa Method Pertama");

    }

    public static void main(String[] args){

    SubOverriding obj = new SubOverriding();

    obj.tampil();

    }

    }

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    11

    BAB III

    PENUTUP

    A. Kesimpulan

    - Pemrograman berorientasi objek memandang bahwa semua pemecahan

    masalah dibagi ke dalam kelas (class). Kelas tersebutlah yang akan

    menciptakan sebuah objek (object) yang memiliki atribut/ciri-ciri dan

    Method/ tingkah laku.

    - Kelebihan OOP :

    - real-world modeling - fleksibel

    - reusable sources - maintenable

    - Java adalah bahasa pemrograman yang murni menerapkan konsep OOP.

    - Class merupakan template atau cetakan dari object yang mendefinisikan

    variabel dan Method secara umum.

    - Objek merupakan instance atau penerapan dari class yang mendefinisikan

    variabel dan Method secara spesifik.

    - Abstraksi adalah cara pandang pemrograman yang berfokus pada inti

    pemecahan masalah dan melewati aspek detail informasi yang diproses.

    - Enkapsulasi adalah penyederhanaan suatu pemecahan masalah dengan cara

    menyembunyikan kerumitan kode dan memproteksi beberapa bagian internal

    program dari pengaksesan yang tidak perlu.

    - Pewarisan adalah penurunan sifat (atribut dan Method) dari kelas induk

    (superclass) ke kelas turunannya (subclass).

    - Polimorfisme adalah satu objek dengan banyak bentuk yang berbeda, yaitu

    objek yang memiliki satu Method sama tetapi implementasi yang berbeda.

    Teknik polimorfisme yaitu Overloading Method dan Overriding Method.

    B. Kritik dan Saran

    Penulis mengharapkan kritik dan saran yang membangun agar memotivasi

    kami untuk bisa membenahi dan berkarya lebih baik lagi dari sebelumnya.

  • Konsep Dasar Pemrograman Berorientasi Objek

    Nur Hadi Indra 2014

    12

    DAFTAR PUSTAKA

    1. Satriowahono Romi. 2008, Konsep Pemrograman Berorientasi Objek

    E-book Ilmukomputer.com, Semarang.

    2. Tim Pengembang JENI. 2007, JENI 1 - 4

    Depdiknas, Jakarta.

    3. Sun Microsystem. 2014 , OOP Concept

    http://java.sun.com/docs/books/tutorial/java/concepts/index.html

    4. Wikipedia. 2014, Pemrograman Berorientasi Objek

    http://id.wikipedia.org/wiki/pemrograman-berorientasi-objek

    5. India Rose. 2014, OOP in Java

    http://www.roseindia.net/java/beginners/OOP-in-java.html