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.

class Human(object): def __init__(self, name, friend=None): self. name = name self. friend = friend def say_name(self): print("My name is "+self. name) def say_goodnight(self): if self. friend is None: print("Good night nobody.") else: print("Good night "+self. friend. name) # Membuat objek Human baru bernama stephen dengan nama "Stephen" stephen = Human("Stephen") # Membuat objek Human baru bernama joe dengan nama "Joe" dan stephen sebagai teman joe = Human("Joe", stephen) stephen. say_name() # Menunjukkan 'My name is Stephen' stephen. say_goodnight() # Menunjukkan 'Good night nobody.' joe. say_name() # Menunjukkan 'My name is Joe' joe. say_goodnight() # Menunjukkan 'Good night Stephen'

Jawa

Kode ini dalam bahasa Java.

Kelas Manusia

class Human { private String name = "unnamed"; // nama dari Human private Human friend = null; // teman Human // Metode ini membuat objek Human baru ketika diberi nama dan teman public Human(String name, Human friend) { this. name = name; this. friend = friend; }      // Metode ini juga membuat objek Manusia baru ketika hanya diberi nama public Human(String name) { this. name = name; this. friend = null; }      // Metode ini membuat objek Manusia baru ketika tidak diberi nama dan teman public Human() { this. nama = "tanpa nama"; this. teman = null; } public void sayName() { System. out. println("My name is " + this. name); } public void sayGoodnight() { if (teman == null) { System. out. println("Selamat malam tidak ada orang."); } else { System. out. println("Good night " + teman. nama); }     } }

Metode untuk berbicara dengan kelas Manusia di atas

class Main { public static void main(String[] args) { // Membuat objek Manusia baru stephen dengan nama "Stephen" Human stephen = new Human("Stephen"); // Membuat objek Manusia baru joe dengan nama "Joe" dan stephen sebagai teman Human joe = new Human("Joe", stephen); stephen. sayName(); // Menunjukkan 'My name is Stephen' stephen. sayGoodnight(); // Menunjukkan 'Good night nobody.' joe. sayName(); // Menunjukkan 'My name is Joe' joe. sayGoodnight(); // Menunjukkan 'Good night Stephen' } }

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.

AlegsaOnline.com - 2020 / 2023 - License CC3