Pemrograman berorientasi objek
Pemrograman berorientasi objek (OOP) adalah cara menulis program komputer yang menggunakan ide "objek" untuk mewakili data dan metode. Biasanya, program komputer hanyalah daftar instruksi ke komputer, memberitahu komputer untuk melakukan hal-hal tertentu dengan cara tertentu, yang disebut pemrograman prosedural. Namun, dalam pemrograman berorientasi objek, program komputer menggunakan objek yang berbicara satu sama lain dan mengubah data dalam objek-objek tersebut, untuk bekerja dengan cara yang diinginkan pengguna. Selain itu, karena cara pemrograman berorientasi objek dirancang, ini membantu pengembang dengan memungkinkan kode untuk digunakan kembali dengan mudah oleh bagian lain dari program atau bahkan oleh orang lain.
Sebagian besar bahasa pemrograman adalah campuran dari berbagai jenis cara penulisan program komputer. Misalnya, Python memungkinkan program komputer ditulis baik dalam pemrograman berorientasi objek maupun dalam pemrograman prosedural. Ada banyak bahasa pemrograman yang memungkinkan Anda untuk menulis program komputer dalam OOP, Beberapa bahasa pemrograman ini misalnya: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, dll.
Fitur
Ide utama dari pemrograman berorientasi objek adalah bahwa segala sesuatu adalah objek. Namun, objek bisa dari berbagai jenis:
- Variabel dapat menampung informasi (atau data) dari berbagai tipe yang didukung oleh bahasa pemrograman. Contohnya adalah tipe data integer dan struktur data lists. Variabel adalah ide yang sudah tersedia dari bahasa pemrograman prosedural. Dalam pemrograman berorientasi objek, variabel terutama dikenal sebagai atribut.
- Prosedur (juga dikenal sebagai fungsi, metode, atau rutinitas) adalah daftar instruksi yang memberitahu komputer untuk mengambil input, melakukan beberapa perhitungan atau mengubah data, dan mengembalikan output kepada pengguna. Prosedur juga merupakan ide yang sudah tersedia dari bahasa pemrograman prosedural. Dalam pemrograman berorientasi objek, prosedur terutama dikenal sebagai metode.
- Kelas adalah kumpulan variabel dan prosedur yang berbeda. Kelas biasanya berbicara satu sama lain untuk membuat perubahan pada data agar dapat bekerja dengan cara yang diinginkan pengguna.
Objek adalah istilah yang digunakan untuk merujuk ke instance dari kelas.
Contoh
Dalam contoh di bawah ini, kita membuat sebuah kelas bernama Human
. Kelas ini berisi atribut name
(untuk nama orang) dan friend
(untuk nama teman). Masing-masing metode dalam kelas Human
berisi daftar instruksi yang menggunakan kedua atribut nama
dan friend.
Python
Kode ini dalam bahasa Python.
Jawa
Kode ini dalam bahasa Java.
Kelas Manusia
Metode untuk berbicara dengan kelas Manusia di atas
Kritik
Meskipun pemrograman berorientasi objek sangat populer, tetapi ada banyak orang yang berpikir bahwa itu buruk dan mengkritiknya.
- Luca Cardelli menulis sebuah makalah berjudul 'Bad Engineering Properties of Object-Oriented Languages'.
- Richard Stallman menulis pada tahun 1995, "Menambahkan OOP ke Emacs tidak jelas merupakan perbaikan; Saya menggunakan OOP ketika bekerja pada sistem jendela Lisp Machine, dan saya tidak setuju dengan pandangan umum bahwa itu adalah cara yang lebih unggul untuk memprogram."
- Sebuah studi yang dilakukan oleh Potok dkk. mengatakan bahwa hanya ada sedikit perbedaan dalam produktivitas antara pendekatan OOP dan prosedural.
- Christopher J. Date mengatakan bahwa membandingkan OOP dengan hal lain, terutama bagaimana OOP dan hal lain tersebut berhubungan, adalah sulit karena orang tidak setuju dengan arti dari OOP.
- Alexander Stepanov menyarankan bahwa OOP memberikan sudut pandang yang terbatas sejauh matematika, dan menyebutnya, "hampir sama banyaknya dengan tipuan seperti Kecerdasan Buatan"
- Paul Graham, seorang salesman dan programmer internet yang sukses, telah menyarankan bahwa tujuan OOP adalah untuk bertindak sebagai mekanisme penggembalaan yang membuat programmer rata-rata di organisasi rata-rata tidak "melakukan terlalu banyak kerusakan". Hal ini juga memperlambat programmer yang lebih cepat dan lebih baik yang tahu bagaimana melakukan sesuatu dengan cara yang lebih kuat dan lebih ringkas. [1]
Pertanyaan dan Jawaban
T: Apa yang dimaksud dengan pemrograman berorientasi objek?
J: Pemrograman berorientasi objek adalah cara menulis program komputer menggunakan "objek" untuk mewakili data dan metode.
T: Apa perbedaan pemrograman berorientasi objek dengan pemrograman prosedural?
J: Dalam pemrograman prosedural, program komputer adalah daftar instruksi untuk komputer, yang memerintahkan komputer untuk melakukan hal-hal tertentu dengan cara tertentu. Dalam pemrograman berorientasi objek, program komputer menggunakan objek yang berbicara satu sama lain untuk mengubah data dalam objek-objek tersebut dan bekerja dengan cara yang diinginkan pengguna.
T: Bagaimana pemrograman berorientasi objek bermanfaat bagi pengembang?
J: Pemrograman berorientasi objek memungkinkan kode untuk digunakan kembali dengan mudah oleh bagian lain dari program atau bahkan oleh orang lain.
T: Untuk apa bahasa pemrograman Python dikenal?
A: Python memungkinkan program komputer ditulis dalam pemrograman berorientasi objek dan pemrograman prosedural.
T: Dapatkah Anda memberikan contoh bahasa pemrograman yang memungkinkan Anda untuk menulis program komputer dalam pemrograman berorientasi objek?
J: Bahasa pemrograman yang memungkinkan Anda untuk menulis program komputer dalam pemrograman berorientasi objek meliputi C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C#, dll.
T: Apa yang dimaksud dengan objek dalam pemrograman berorientasi objek?
J: Objek adalah entitas dalam pemrograman berorientasi objek yang berisi data dan metode.
T: Bagaimana cara kerja objek dalam pemrograman berorientasi objek?
J: Objek berinteraksi satu sama lain untuk mengubah data dalam objek tersebut dan bekerja sesuai keinginan pengguna.