Site icon agussuratna.net

Tutorial Java #14 : Konsep Pemrograman Berorientasi Obyek

Dalam pengembangan perangkat lunak / software. Banyak bahasa pemrograman yang bisa digunakan untuk membuat program, baik untuk membuat aplikasi berbasis offline ataupun berbasis online. Selain itu, dalam pengembangan perangkat lunak, ada berbagai paradigma pemrograman yang dapat diterapkan ketika proses pengembangan perangkat lunak, sehingga bentuk kode program menjadi terstruktur dan mudah dimengerti oleh orang lain (programmer lain).

Paradigma pemrograman berarti, bagaimana cara pandang penyelesaian masalah dalam pemrograman. Ada banyak cara / siasat menyelesaikan permasalahan di dunia nyata, sehingga ada banyak paradigma yang bisa diterapkan untuk menyelesaikan permasalahan dalam membuat program. Terdapat bermacam paradigma pemrograman yang bisa dipakai untuk membuat perangkat lunak, namun yang paling umum digunakan adalah paradigma pemrograman fungsional, prosedural, dan berorientasi obyek.

Karena paradigma adalah sudut pandang cara / siasat untuk menyelesaikan permasalahan, maka suatu bahasa pemrograman, dapat menerapkan bermacam paradigma guna membuat solusi dari permasalahan berupa perangkat lunak.

Contoh bahasa pemrograman yang dapat menerapkan beragam paradigma pemrograman antara lain C++, Java, C#, Perl, Python, Ruby, Object Pascal. Sebagai contoh, program yang ditulis dalam bahasa pemrograman C++ atau Object Python, ketika pembuatannya dapat menerapkan paradigma pemrograman prosedural murni ataupun paradigma pemrograman berorientasi obyek murni, atau bahkan menerapkan bagian-bagian dari kedua paradigma tersebut ketika dalam proses pengembangan. Pemilihan paradigma hingga penerapan bagian pada tiap-tiap paradigma akan diputuskan oleh programmer dan software desainer saat merancang dan membuat sebuah perangkat lunak.

Namun, juga terdapat bahasa pemrograman yang hanya mendukung satu jenis paradigma pemrograman seperti, bahasa pemrograman Smalltalk, dimana bahasa pemrograman smalltalk hanya dapat menerapkan paradigma pemrograman berorientasi obyek, atau bahasa pemrograman Haskell yang hanya bisa menerapkan paradigma pemrograman fungsional. Dari sini, dapat disimpulkan paradigma pemrograman adalah sudut pandang, bagaimana menyelesaikan suatu permasalahan melalui beragam cara ketika proses pengembangan perangkat lunak.

Pada tutorial ini akan mempelajari salah satu paradigma pemrograman dengan lebih spesifik, yaitu paradigma pemrograman berorientasi obyek. Paradigma pemrograman berorientasi obyek adalah sebuah paradigma pemrograman yang berkonsep bahwa, data seperti attributes, kode program (source code), prosedur atau method tersimpan dalam obyek. Tiap obyek tersebut berada di dalam class, obyek dalam class ini saling berkomunikasi guna menyelesaikan permasalahan dalam ranah pengembangan perangkat lunak.

Fitur utama dalam bahasa Java adalah sudah mendukung pemrograman berorientasi objek secara bawaan. Bahkan, kita tidak bisa membuat kode program Java tanpa menggunakan object. Ini sedikit berbeda dengan bahasa “hybrid” seperti C++ atau PHP yang bisa ditulis secara procedural maupun OOP.

Secara sederhana, pemrograman berorientasi objek adalah konsep pembuatan program dengan memecah permasalahan menjadi objek-objek yang saling terpisah.

Setiap objek seolah-olah punya dunianya sendiri, dimana sebuah objek bisa memiliki property dan method (istilah lain dari variabel dan function yang berada di dalam objek). Berbagai objek inilah yang saling bekerjasama untuk menjadi satu program akhir.

Pemrograman berorientasi objek biasa disingkat sebagai PBO, atau lebih populer dengan singkatannya dalam bahasa inggris, yakni OOP (Object Oriented Programming).

Agar lebih formal, berikut kutipan pengertian pemrograman berorientasi objek dari wikipedia:

“Object-oriented programming (OOP) is a programming paradigm based on the concept of “objects”, which can contain data and code: data in the form of fields (often known as attributes or properties), and code, in the form of procedures (often known as methods)”

Terjemahan bebas :

Pemrograman Berorientasi Objek atau Object Oriented Programming (OOP) adalah sebuah tata cara pembuatan program (programming paradigm) dengan menggunakan konsep “objek” yang memiliki data dan code. Data ini tersedia dalam bentuk field (lebih populer disebut sebagai atribut atau properti), dan code dalam bentuk prosedur (yang dikenal dengan istilah method).

Pengertian ini memang sedikit rumit, namun akan lebih jelas ketika kita masuk ke praktek pembuatan objek dalam tutorial berikutnya.

Perbedaan Procedural Programming dan Object Oriented Programming

Sebenarnya kita tidak harus belajar pemrograman berorientasi objek atau OOP untuk bisa membuat program. Dalam beberapa kasus, membuat kode program dengan cara biasa (tanpa objek), bisa selesai lebih cepat dan lebih sederhana.

Bahasa C contohnya, tidak memiliki konsep OOP. Begitu juga bahasa PHP yang sampai dengan versi 3 juga tidak memiliki fitur pemrograman objek (baru ditambahkan mulai dari PHP 4).

“Pemrograman biasa” ini disebut juga dengan pemrograman prosedural (Procedural Programming). Disebut seperti itu karena kita memecah kode program menjadi bagian-bagian atau fungsi-fungsi kecil (procedure), kemudian menyatukannya untuk menghasilkan aplikasi akhir.

Keuntungan pemrograman berorientasi objek baru terasa saat membuat aplikasi yang cukup besar, atau ketika bekerja dengan tim untuk membagi tugas. Konsep ‘objek’ yang memecah program menjadi bagian terpisah akan memudahkan proses kolaborasi.

Berbeda dengan konsep function dalam pemrograman procedural, sebuah objek bisa memiliki data dan function sendiri. Setiap objek ditujukan untuk mengerjakan sebuah tugas, dan menghasilkan nilai akhir untuk selanjutnya ditampilkan atau digunakan oleh objek lain.

Hak akses antar objek nantinya diatur dengan keyword seperti public, private, dan protected. Selain itu ada konsep encapsulation , polymorphism dan inheritance pada OOP agar pengelolaan kode program menjadi lebih rapi.

Contoh Kode Program OOP Java :

class Komputer {
    String processor = "Intel Core i9";
    String cekKomputer() {
        return "Ini berasal dari class Komputer";
    }
};

class Laptop extends Komputer {
    String merk = "Asus";
    String cekLaptop() {
        return "Ini berasal dari class Laptop";
    }
};

class BelajarJava {
    public static void main(String args[]){
        Laptop laptopAndi = new Laptop();
        System.out.println(laptopAndi.processor);
        System.out.println(laptopAndi.merk);
        System.out.println(laptopAndi.cekKomputer());
        System.out.println(laptopAndi.cekLaptop());
    }
}

Hasil kode program :

 

A. Konsep Dasar Class

Class bisa diibaratkan cetakan kue putu, cetakan kue tersebut adalah contoh nyata sebuah class dalam bagian pemrograman berorientasi obyek. Class adalah sebuah cetak biru (blueprint) / template untuk obyek yang akan dibuat. Cetakkan kue putu dari bambu, ibarat class dalam pemrograman berorientasi obyek, sedangkan kue putu adalah obyek dalam pemrograman berorientasi obyek.

B. Konsep Dasar Obyek

Di sekitar kita akan melihat berbagai macam obyek, seperti manusia, binatang, tumbuhan, bangunan, komputer, dan sebagainya. Selain itu, obyek yang ada di sekitar kita juga dapat dibedakan berdasarkan jenisnya, yaitu obyek bergerak dan obyek tidak bergerak, obyek bergerak berarti “hidup” atau bisa dikatakan dapat bergerak dan melakukan sesuatu. Berbeda dengan obyek tidak bergerak, obyek tersebut tidak dapat bergerak atau melakukan sesuatu dengan sendirinya. Walaupun begitu, kedua jenis obyek tersebut mempunyai dua persamaan.

Mereka memiliki attributes / ciri, seperti ukuran, warna, bentuk, hingga berat. Mereka juga mempunyai tingkah laku seperti menggelinding, memantul, mengembang, mengempis. Seorang bayi bisa menangis, merangkak, berjalan, berkedip atau mobil yang berakselerasi, mengerem, berbelok dan sebagainya. Berbagai contoh di atas adalah contoh ciri dan tingkah laku suatu obyek dalam dunia nyata.

Konsep obyek juga identik dalam paradigma pemrograman berorientasi obyek. Suatu obyek dalam pemrograman, memiliki ciri-ciri / attributes dan juga tingkah laku / methods / procedures yang berbentuk kode program.

C. Karakteristik Pemrograman Berorientasi Obyek

Hampir semua benda memiliki karakteristik, baik benda hidup maupun benda mati, begitu juga dengan paradigma pemrograman itu sendiri, berikut adalah karakteristik dari paradigma pemrograman berorientasi obyek :

Sekilas, Abstraksi dan Enkapsulasi hampir mirip dalam paradigma pemrograman berorientasi obyek. Yang menjadi perbedaan utama dari kedua karakteristik tersebut ialah, abstraksi lebih fokus pada penyembunyian cara kerja / Implementation Hiding. Sedangkan enkapsulasi lebih fokus pada penyembunyian data / Information Hiding

 

 

 

D. Keuntungan dan Kerugian Menggunakan Paradigma Pemrograman Berorientasi Obyek

Keuntungan Pemrograman Berorientasi Obyek :

 

Kerugian Paradigma Pemrograman Berorientasi Obyek :

 

 

Perbandingan Paradigma Pemrograman Prosedural dengan Pemrograman Berorientasi Obyek

Setelah membahas mengenai pemrograman berorientasi obyek, pada bagian ini kita akan membandingkan paradigma pemrograman berorientasi obyek (Object Oriented Programming) dengan paradigma pemrograman prosedural (Procedural Oriented Program).

Berikut adalah garis besar perbandingan paradigma tersebut :

 

 

Referensi :

 

Exit mobile version