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.

Baca Juga  Tutorial Android Studio : #12 Cara Mengganti Icon Launcher Aplikasi di Android Studio

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.

Baca Juga  Membuat Project Pertama Kotlin dengan IntelliJ IDEA

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 :

    • Abstraction (Abstraksi) : Abstraksi adalah proses mengabstrakkan atau menyembunyikan kerumitan dari suatu proses. Sebagai contoh, kita memiliki sepeda motor, ketika kita ingin mengerem untuk berhenti, kita cukup menekan pedal rem, di sinilah letak fungsi abstraksi dalam dunia nyata. Kita tidak perlu tahu bagaimana alur/proses pedal rem, dapat menghentikan laju kendaraan kita. Yang perlu diketahui adalah fungsinya saja, yaitu pedal rem untuk menghentikan laju kendaraan. Itu adalah contoh penggunaan abstraksi didunia nyata.
    • Encapsulation (Enkapsulasi) : Enkapsulasi adalah pembungkusan attribute (ciri) dan method (perilaku) yang dimiliki obyek dalam sebuah class, untuk disembunyikan dari class lain, sehingga class lain tidak dapat mengakses attribute dan method yang disembunyikan tadi. Agar dapat mengakses attribute dan method yang terenkapsulasi dalam sebuah class, maka harus dibuat method yang memiliki hak akses bertipe public.

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

 

    • Inheritance (Pewarisan) : Inheritance / pewarisan adalah sebuah mekanisme dimana sebuah class utama (superclass) mewariskan karakteristik (attribute) dan perilaku (method) kepada class turunan (subclass). Manfaat dengan adanya pewarisan adalah saat kita membuat sebuah class baru, ketika sebuah class dibuat sebagai class turunan (subclass), dan kita menerapkan pewarisan terhadap class turunan tersebut, maka attributes dan method dari class utama (superclass), akan ikut dimiliki oleh class turunan yang baru kita buat.
    • Polymorpishm (polimorfisme) : Polimorfisme berasal dari 2 kata dalam bahasa Yunani, yaitu poly dan morphs. Kata “poly” berarti banyak dan “morphs” berarti bentuk. Jadi polimorfisme berarti banyak bentuk. Apabila dikaitkan dengan pemrograman berorientasi obyek, dapat diartikan bahwa sebuah object memiliki kemampuan untuk dapat berubah-ubah. Sebagai contoh, terdapat sebuah object yaitu hewan, yang meliputi burung, ular, katak, dan singa kemudian object berupa hewan tersebut bergerak sehingga burung akan terbang, ular akan merayap, katak akan melompat, singa akan berlari. Keempat hewan tersebut memiliki perilaku (method) yang sama, yaitu bergerak. Namun, method tersebut menghasilkan gerakan yang berbeda, yaitu terbang, merayap, melompat, dan berlari. Maka dapat disimpulkan bahwa polimorfisme adalah kemampuan sebuah obyek untuk mempunyai lebih dari bentuk untuk sesuatu hal yang berbeda (terbang, merayap, melompat, berlari), melalui cara yang sama (bergerak).
Baca Juga  Aplikasi Keuangan Sekolah

 

 

D. Keuntungan dan Kerugian Menggunakan Paradigma Pemrograman Berorientasi Obyek

Keuntungan Pemrograman Berorientasi Obyek :

  • Alami atau natural, pemrograman berorientasi objek dapat melakukan pendekatan terhadap objek yang menggambarkan sesuatu yang nyata, seperti sifat suatu benda maupun kegunaan dari benda tersebut.
  • Kemudahan dalam perawatan perangkat lunak, pemrograman berorientasi objek akan mudah dalam perawatan dan memodifikasi kode yang sudah ada. Tanpa perlu mengubah keseluruhan komponen project/software yang ada.
  • Konsep enkapsulasi dimana penulis kode memiliki kemampuan untuk menyembunyikan ataupun mengatur jangkauan akses sebuah data, sehingga secara langsung meminimalisir Coupling (ketergantungan antar class) dan memaksimalkan Cohesion (efisiensi kerja sama kumpulan data dalam sebuah class).
  • Pemrograman berorientasi objek meminimalisir kemungkinan terjadinya kesalahan oleh sang penulis kode (human-error). Pada project berskala besar karena adanya limitasi agar potongan kode yang satu tidak merusak potongan kode lainnya baik secara sengaja ataupun tidak sengaja.

 

Kerugian Paradigma Pemrograman Berorientasi Obyek :

  • Sulit dipahami, karena model pengembangan perangkat lunak dengan paradigma ini terasa tidak alami bagi sebagian orang, dan mungkin memerlukan waktu untuk terbiasa menerapkan paradigma ini. Karakteristik seperti pewarisan dan polimorfisme bisa menjadi sesuatu yang menantang ketika berusaha memahami untuk pertama kalinya.
  • Ukuran program yang besar, biasanya program yang dikembangkan dengan paradigma berorientasi object, mempunya baris kode yang lebih banyak jika dibandingkan dengan program hasil paradigma pemrograman prosedural
  • Program lebih lamban. Jika dibandingkan dengan prosedural, berjalan lebih lambat, karena setiap tindakan memerlukan input instruksi lebih banyak untuk bisa dijalankan.
  • Tidak cocok untuk semua jenis permasalahan, karena ada permasalahan yang dapat lebih efisien diselesaikan dengan paradigma prosedural, fungsional, dan lain-lain.

 

 

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 :

  • https://www.duniailkom.com/tutorial-belajar-oop-java-pengertian-pemrograman-berorientasi-objek/

 

Related Post

Be the first to comment

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy