Pemrograman Berorientasi Objek: Membuat Konsep Rumit Sederhana

Penyingkapan: Dukungan Anda membantu menjaga situs tetap berjalan! Kami mendapatkan biaya referensi untuk beberapa layanan yang kami rekomendasikan pada halaman ini.


Pemrograman berorientasi objek (OO) adalah paradigma pemrograman yang mencakup atau bergantung pada konsep objek, struktur data yang dienkapsulasi yang memiliki properti dan fungsi dan yang berinteraksi dengan objek lain.

Objek dalam suatu program sering mewakili objek dunia nyata – misalnya, aplikasi situs web e-niaga mungkin memiliki objek Pelanggan, objek Shopping_cart, dan objek Produk. Objek lain mungkin secara longgar terkait dengan padanan dunia nyata – seperti prosesor Payment_form atau Login_form. Banyak objek lain melayani logika aplikasi dan tidak memiliki paralel dunia nyata langsung – objek yang mengelola otentikasi, templating, penanganan permintaan, atau fitur segudang lainnya yang diperlukan untuk aplikasi yang berfungsi.

Pemrograman berorientasi objek

Sejarah Pemrograman Berorientasi Objek

Jika sepertinya pemrograman berorientasi objek sangat cocok untuk memodelkan sistem dunia nyata, itu bukan kebetulan. Konsep sekarang terkait dengan pemrograman berorientasi objek, termasuk sebagian besar bahasa untuk menggambarkannya, berasal dari bahasa pemrograman Simula, yang digunakan untuk mensimulasikan sistem dunia nyata. Kelas, subclass, dan objek ditambahkan ke Simula pada tahun 1967.

Pada 1970-an, Alan Kay menciptakan istilah “berorientasi objek” saat bekerja di Smalltalk. Ini mengacu pada penggunaan luas objek dalam bahasa, dan tempat mereka sebagai unit dasar organisasi.

Penyebaran pemrograman berorientasi objek relatif lambat pada awalnya. Common Lisp memperkenalkan Common Lisp Object System, menambahkan objek ke Lisp, pada akhir 1970-an. Pada 1980-an, bahasa pemrograman Eiffel ditemukan, yang sepenuhnya berorientasi objek. Penemu Eiffel, Bertrand Meyer, menulis Object-Oriented Software Construction, yang merupakan salah satu buku pertama yang menyebar luas konsep-konsep pemrograman OO.

Pada 1990-an dan 2000-an, pemrograman berorientasi objek benar-benar berjalan. Ini bertepatan dengan ledakan besar di industri teknologi umumnya selama periode itu, dan masuknya tiba-tiba programmer ke perusahaan teknologi besar. Salah satu nilai jual pemrograman berorientasi objek, seperti yang dipromosikan oleh para pendukungnya, adalah bahwa pemisahan masalah dan pelonggaran longgar (lihat di bawah) memungkinkan tim untuk bekerja pada sistem besar dengan lebih efektif.

Pada akhir dekade pertama abad ke-21, pemrograman berorientasi objek sebagian besar telah menjadi “satu cara yang tepat” untuk mengembangkan sebagian besar perangkat lunak. Bahasa pemrograman yang lebih baru, terutama bahasa yang ditafsirkan secara dinamis-diketik seperti Python, Ruby, dan JavaScript, cenderung untuk mengasumsikan, atau bahkan menegakkan, pendekatan berorientasi objek. Sementara itu, banyak bahasa lama, seperti Fortran dan COBOL telah menambahkan fitur berorientasi objek.

Konsep Berorientasi Objek Penting

Pemrograman berorientasi objek adalah konsep – cara mendekati masalah merancang program komputer. Ini bukan seperangkat aturan yang sulit dan cepat atau metodologi tertentu. Bahasa pemrograman yang berbeda mendekati OOP secara berbeda. Beberapa lebih atau kurang ketat, dan beberapa berbeda. Berikut ini adalah gambaran umum konsep desain berorientasi objek. Lihat artikel saudara kita, Pemrograman Berorientasi Objek untuk sumber daya dan detail yang menjelaskan bagaimana konsep-konsep ini diimplementasikan dalam banyak bahasa yang berbeda.

Pemisahan Kekhawatiran

Prinsip panduan sentral yang menginformasikan semua konsep lain dalam pemrograman berorientasi objek adalah pemisahan perhatian. Ini adalah gagasan bahwa kumpulan data dan fungsionalitas yang berbeda secara logis harus dipisahkan ke dalam kumpulan kode aplikasi yang berbeda.

Ide ini tidak unik untuk pemrograman berorientasi objek. Kebanyakan bahasa pemrograman memungkinkan pemisahan masalah, dan sebagian besar paradigma pemrograman mempromosikannya. Namun, pemisahan masalah adalah kepentingan khusus untuk pemrograman berorientasi objek. Pemisahan keprihatinan yang kuat adalah dorongan di balik hampir semua konsep OO lainnya.

Obyek dan Kelas

Tampaknya, pada awalnya, bahwa konsep dasar dalam pemrograman berorientasi objek adalah objek. Di satu sisi, itu benar. Tetapi dari perspektif pengembang, perhatian mendasar adalah kelas.

Kelas mendefinisikan objek; sebuah objek instantiate sebuah kelas. Sebagai contoh, mari kita terus berpikir tentang situs web e-commerce. Ada banyak pelanggan, tetapi mereka semua melakukan hal yang sama. Jadi akan ada kelas Pelanggan, di mana programmer mendefinisikan apa itu pelanggan, dan bagaimana cara kerjanya. Kemudian, setiap pelanggan individu diwakili dalam sistem oleh objek pelanggan.

Karena definisi kelas menentukan semua detail implementasi, sebagian besar pekerjaan mengembangkan program berorientasi objek melibatkan bekerja dengan kelas, bukan objek.

Bahasa OO Klasik dan Non-klasik

Ada beberapa bahasa yang menggabungkan sejumlah besar konsep berorientasi objek, tetapi yang tidak memiliki konstruk khusus yang disebut kelas. Paling menonjol adalah JavaScript, yang menggunakan prototipe, atau objek generik yang kemudian dikloning. Terminologi, filosofi yang mendasari, dan bahkan implementasi “di bawah tenda” berbeda – namun pengalaman pengembang sebagian besar sama.

Bahasa dengan kelas, yang mewakili mayoritas bahasa OO, kadang-kadang disebut “klasik.” Ini adalah permainan kata pada kata “kelas,” dan pengakuan bahwa kelas telah menjadi pendekatan konvensional untuk pemrograman berorientasi objek.

Metode dan Properti

Objek memiliki variabel, yang biasanya disebut properti atau atribut di sebagian besar bahasa. Misalnya, objek Pelanggan mungkin memiliki properti seperti shipping_address atau nama.

Objek juga memiliki fungsi, yang disebut metode. Ini adalah hal-hal yang mampu dilakukan objek, dan juga didefinisikan dalam kelas. Misalnya, objek Pelanggan mungkin memiliki metode untuk checkout, change_shipping_address, atau logout.

Salah satu tantangan dalam mengembangkan program berorientasi objek yang baik adalah menentukan bagaimana membagi fungsi di antara beberapa kelas potensial. Misalnya, haruskah metode checkout milik Pelanggan atau Keranjang Belanja? Apakah Pelanggan memiliki metode logout, atau apakah Pelanggan memanggil metode logout dari beberapa objek Authentication_manager?

Tantangan lain bagi banyak programmer OO baru adalah memahami bagaimana merancang kelas yang tidak mewakili hal-hal dunia nyata. Memahami bahwa kebutuhan e-niaga Produk dan sistem manajemen proyek membutuhkan Proyek cukup mudah. Tetapi program berorientasi objek besar memiliki kelas yang tak terhitung mendefinisikan semua jenis bundel fungsionalitas abstrak, seperti pemetaan relasional objek, pabrik objek, dan pengontrol (hanya untuk menyebutkan tiga contoh yang mudah dipahami).

Menavigasi masalah ini membutuhkan latihan, tentu saja. Pengembang berorientasi objek juga dapat dibantu oleh pemahaman pola desain, dan oleh proses pengembangan yang mencakup pemodelan.

Berikut adalah beberapa sumber untuk membantu Anda lebih memahami kelas, properti, dan metode:

  • Konsep Kelas, Objek, Properti, dan Metode adalah ikhtisar video hebat selama 10 menit dari konsep-konsep ini;
  • Memilih Antara Properti dan Metode adalah tutorial .NET, yang mencakup beberapa pertimbangan desain yang berlaku untuk bahasa apa pun;
  • Memahami Kelas, Metode, dan Properti di C # memberikan penjelasan yang baik, dengan beberapa diagram bermanfaat.

Lulus Pesan dan Pengiriman Dinamis

Kelas, dan sejumlah konsep lain yang dibahas di sini, telah menjadi tak terhindarkan terkait dengan pemrograman berorientasi objek. Namun, menurut ilmuwan komputer yang menciptakan istilah, pemrograman berorientasi objek adalah tentang pengiriman pesan.

Pesan lewat berarti bahwa objek berkomunikasi satu sama lain dengan mengirim pesan. Ini terdengar sepele, tetapi ini memengaruhi bagaimana panggilan fungsi dilakukan. Daripada satu objek memanggil fungsi objek lain secara langsung, objek akan meneruskan pesan ke objek lain. Pesan itu berisi nama metode dan parameter apa pun yang terkait. Objek yang dipanggil kemudian memiliki kemampuan untuk menangani pemanggilan metode itu namun diperlukan.

Kemampuan ini untuk setiap objek untuk menentukan responsnya sendiri terhadap pemanggilan metode yang diperlukan disebut pengiriman dinamis. Ini memungkinkan objek untuk berevolusi dari waktu ke waktu, dan menanggapi pesan sesuai dengan keadaan mereka saat ini.

Melewati pesan bisa sedikit membingungkan, terutama karena sebagian besar bahasa yang digunakan saat ini hanya menerapkan satu jenis tertentu (pemanggilan metode). Berikut adalah beberapa sumber untuk membantu Anda lebih memahaminya:

  • Seseorang bertanya Apa pesan yang lewat di OO? di StackExchange; beberapa jawaban yang sangat membantu diikuti;
  • Juga lihat Apa perbedaan utama antara OO di Smalltalk dan Java? untuk beberapa wawasan tentang bagaimana penyampaian pesan telah berubah dari ide asli ke bagaimana sebagian besar kerjanya dalam bahasa kontemporer;
  • Message Passing on the c2 wiki memiliki penjelasan rinci, jika agak kacau,.

Enkapsulasi

Terkait erat dengan pesan yang lewat dan pengiriman dinamis adalah konsep enkapsulasi. Enkapsulasi berarti bahwa kode di luar objek tidak dapat secara langsung mengakses data internalnya. Jika, misalnya, satu objek perlu “mengetahui” properti dari objek lain (misalnya, Shipping_manager mungkin memerlukan shipping_address objek Pelanggan), maka objek panggilan tidak dapat menemukan data itu secara langsung; ia harus menyampaikan pesan “meminta” objek Pelanggan, yang kemudian mengembalikan data yang dibutuhkan. (Ini biasanya dilakukan dengan pemanggilan metode.)

Tidak semua bahasa berorientasi objek menerapkan enkapsulasi ketat; beberapa memungkinkan properti objek diakses (dapatkan dan atur) secara langsung. Namun, banyak ahli dalam pengembangan OO mendorong programmer untuk mematuhi prinsip enkapsulasi (dengan tidak memanggil properti secara langsung), bahkan dalam bahasa yang memungkinkannya..

Ada banyak manfaat enkapsulasi. Terutama, ini memungkinkan detail atau efek samping untuk disarikan dari titik di mana properti itu disebut. Misalnya, setiap kali nilai tertentu dibaca, Anda mungkin ingin memeriksa kapan itu terakhir dihitung, dan menghitung ulang jika kondisi tertentu terpenuhi. Mampu menambah, menghapus, atau mengubah logika itu di satu tempat kapan saja, tanpa memengaruhi tempat lain mana pun dalam kode yang membuat panggilan, adalah manfaat enkapsulasi.

Warisan dan Komposisi

Warisan dan komposisi adalah dua cara yang berbagai kelas (dan objek instantiated) terkait satu sama lain.

Warisan menjelaskan hubungan “adalah a”: Pengguna adalah Orang; Pelanggan adalah Pengguna. Dalam contoh ini, mungkin ada kelas Person yang mendefinisikan semua properti dan metode Orang secara umum (nama, ulang tahun). Kemudian kelas Pengguna akan memperluas kelas Orang, untuk menambahkan hal-hal seperti atribut nama pengguna atau metode masuk dan keluar. Kelas Pelanggan kemudian dapat memperluas Pengguna, menambahkan hal-hal yang hanya dibutuhkan pelanggan, seperti order_history atau billing_address.

Komposisi menggambarkan hubungan “memiliki”, ketika satu objek “memiliki” objek lain. Misalnya, kelas Pelanggan mungkin memiliki Billing_address, yang merupakan objek penuh yang didefinisikan dalam kelas. Seperti hierarki warisan, hierarki komposisi dapat dengan mudah memiliki beberapa lapisan. Misalnya: Pelanggan mungkin memiliki Shopping_cart, Shopping_cart memiliki beberapa Produk, setiap Produk memiliki Vendor, dan sebagainya.

Sebagian besar pekerjaan desain dalam pengembangan berorientasi objek harus dilakukan dengan memetakan hubungan warisan dan komposisi ini. Diagram kelas, yang merupakan bagian dari Unified Modeling Language adalah alat yang sangat berharga untuk memvisualisasikan hubungan ini.

  • Warisan versus Komposisi: Yang Mana Yang Harus Anda Pilih? masuk ke beberapa pertimbangan desain ketika membangun hirarki kelas compex;
  • Komposisi vs Warisan: Bagaimana Cara Memilih? mencakup pertanyaan yang sama, tetapi dari sudut yang berbeda dan dengan lebih banyak humor;
  • Desain Java: Objek, UML, dan Proses, oleh Kirk Knoernschild, termasuk bagian, “Prinsip Penggunaan Kembali Komposit,” dalam bab pertama yang menjelaskan mengapa komposisi kadang-kadang lebih baik, bahkan ketika pewarisan tampak tepat.

Polimorfisme

Polimorfisme (atau, lebih khusus lagi, polimorfisme subtipe) adalah konsep yang secara alami keluar dari warisan. Jika kelas induk (atau “Kelas super”) memiliki metode tertentu, maka semua anak-anaknya (“subkelas”) juga akan memiliki metode tersebut. Setiap subkelas mungkin menerapkan metode ini secara berbeda, tetapi objek panggilan tidak perlu tahu dari beberapa subtipe yang mereka panggil. Mereka dapat memperlakukan semua subtipe objek yang berbeda sebagai setara.

Polimorfisme adalah masalah besar, dan bukannya tanpa kontroversi. Berikut adalah beberapa sumber untuk membantu Anda memahami:

  • Polimorfisme di Jawa – Metode Overloading dan Overriding adalah pengantar lembut untuk polimorfisme;
  • Konsep Pemrograman Berorientasi Objek: Polimorfisme dan Antarmuka secara khusus tentang ActionScript, tetapi memberikan banyak detail pada subjek, termasuk berbagai masalah dan keterbatasan;
  • Polimorfisme – Pemrograman Berorientasi Objek dalam C ++ adalah penjelasan video yang bagus;
  • Prinsip Substitusi Liskov (PDF) adalah presentasi untuk membantu Anda memahami subtyping.

Pelajari Lebih Lanjut Tentang Pemrograman Berorientasi Objek

Untuk pemahaman yang mendalam tentang pemrograman berorientasi objek, sejumlah buku klasik dan kontemporer tentang masalah ini sangat berharga, dan hampir tidak dapat digantikan oleh tutorial online.

  • Pola Desain: Elemen-elemen Perangkat Lunak Berorientasi Objek yang Dapat Digunakan Kembali, oleh Gamma, dkk, adalah buku klasik yang memperkenalkan program berorientasi objek kepada para pengembang utama; masih harus dibaca;
  • Analisis dan Desain Berorientasi Objek dengan Aplikasi, oleh Booch, dkk, melampaui penulisan kode OO dan masuk ke dalam daging gerakan OOP, yang merupakan analisis dan desain sistem;
  • Proses Pemikiran Berorientasi Objek oleh Matt Weisfeld, adalah buku yang bagus untuk pengembang yang terampil dalam pemrograman prosedural atau fungsional dan yang perlu melatih pemikiran mereka terhadap objek dan kelas;
  • OOP Demystified, oleh Keogh dan Giannini, menyajikan tutorial tentang OOP dalam konteks pengembangan aplikasi dunia nyata, dengan fokus pada keterampilan dan pemikiran yang diperlukan untuk menerapkan analisis berorientasi objek dan proses desain;
  • Konstruksi Perangkat Lunak Berorientasi Objek, oleh Bertrand Meyer, adalah buku klasik tentang OO, salah satu yang pertama menyajikan teknik dan filosofi yang mendasari konsep; beberapa materi dalam buku ini bisa terlihat ketinggalan zaman, tetapi dasarnya masih relevan;
  • Dijelaskan Pola Desain: Perspektif Baru tentang Desain Berorientasi Objek, oleh Shalloway dan Trott, adalah buku paling penting yang memajukan praktik pola desain, atau strategi yang dapat digunakan kembali untuk mengatasi masalah yang berulang;
  • Model Objek: Strategi, Pola, dan Aplikasi, oleh Coad, North, dan Mayfield, adalah teman yang baik untuk Pola Desain yang Dijelaskan, menyediakan banyak pola dan strategi tambahan untuk pemrograman berorientasi objek.

Untuk pemahaman konsep pemrograman berorientasi objek yang lebih praktis dan kontemporer, cobalah satu atau lebih sumber daya daring ini:

  • Mempelajari Pemrograman Berorientasi Objek dengan Cepat adalah tutorial berbasis Python dari Jaringan Pengembang Mozilla;
  • Konsep Pemrograman Berorientasi Objek adalah tutorial dari Oracle, yang mencakup dasar-dasar pemrograman berorientasi objek, dari perspektif Java;
  • Tutorial Pemrograman Berorientasi Objek menyajikan pengantar agnostik bahasa untuk konsep inti;
  • Pengantar Konsep Pemrograman Berorientasi Objek dan Lainnya adalah gambaran yang bagus tentang pemrograman berorientasi objek, dan juga beberapa mata pelajaran yang terkait erat, seperti arsitektur perangkat lunak dan pola desain;
  • Tinjau Pemrograman Berorientasi Objek dari Codecademy, menggunakan JavaScript dan editor di browser untuk memungkinkan Anda segera bekerja dengan konsep-konsep (tapi ingat bahwa JavaScript mengimplementasikan konsep-konsep OOP sedikit berbeda);
  • Dasar-dasar Pemrograman Berorientasi Objek adalah sumber daya Java lainnya, dengan banyak contoh bermanfaat dengan kelas nyata.

Bahasa Berorientasi Objek Penting

Tidak semua bahasa pemrograman mendukung pemrograman berorientasi objek. Beberapa bahasa dirancang untuk tidak melakukan apa pun selain mendukung OOP. Lainnya memungkinkan berbagai pendekatan untuk pemrograman. Yang lain tampaknya berorientasi objek, tetapi menerapkan konsep orientasi objek dengan cara yang tidak standar, tidak lengkap, atau sekadar tidak biasa.

Di bawah ini adalah daftar dari beberapa bahasa berkemampuan OO yang lebih populer, dengan catatan tentang pendekatan mereka terhadap Orientasi Objek, dan beberapa sumber daya untuk membantu Anda masuk ke OOP dengan bahasa itu.

Internet dipenuhi dengan esai yang melihat bahasa X vs bahasa Y – yang sebagian besar hanya menggores permukaan. Kami sarankan Anda memeriksa Perbandingan Bahasa Pemrograman yang lebih umum ini. Analisis bijaksana ini melihat pada detail spesifik dari beberapa bahasa OO populer, membahas bagaimana konsep OO tertentu diimplementasikan di masing-masing.

Bahasa Berbasis C

C bukan bahasa yang berorientasi objek. Namun, paling tidak mungkin untuk menulis kode OO di dalamnya:

  • Pemrograman Berorientasi Objek dengan ANSI-C (PDF)
  • Phil’s Guide to ANSI Berorientasi Objek C
  • Pemrograman Berorientasi Objek Di C.

Tak satu pun dari teknik yang dijelaskan dalam buku-buku dan artikel-artikel itu sangat kuat atau mudah ditangani untuk program non-trivia. Alih-alih mencoba meregangkan C hingga batasnya, ada tiga keturunan langsung C yang mencakup alat bahasa berorientasi objek.

C++

C ++ adalah multi-paradigma, yang berarti mendukung beberapa metode pemrograman yang berbeda (PDF), termasuk orientasi objek. Ini didasarkan pada C, dan dikembangkan secara khusus sebagai cara untuk menambahkan dukungan untuk konsep kelas OOP.

  • Pemrograman Berorientasi Objek (OOP) dalam C ++: panduan intro yang bagus dari profesor Ilmu Komputer
  • Mempelajari Pemrograman Berorientasi Objek di C ++: tutorial multi-bagian yang besar tentang OOP
  • C ++ Tutorial 20-1 – Kelas dan Pemrograman Berorientasi Objek: bagian dari seri video yang lebih besar tentang C ++, sesi ini memulai liputan tentang konsep OOP
  • Pengantar Pemrograman Berorientasi Objek Menggunakan C++
  • Pemrograman Berorientasi Objek di C++.

C #

C # (“C sharp”) adalah turunan C lainnya, sebagian besar dirancang sebagai peningkatan C ++ untuk digunakan dalam Microsoft .NET Framework.

  • Pemrograman Berorientasi Objek dalam C #
  • C # Pemrograman Berorientasi Objek Basic to Advance (video)
  • Konsep C # OOPS (video)
  • Dasar-dasar Pemrograman Berorientasi Objek di C #: tutorial premium dari PLuralsight (percobaan gratis tersedia)
  • Pengantar Konsep Pemrograman Berorientasi Objek di C #: mencakup abstraksi, enkapsulasi, pewarisan dan polimorfisme dalam C #
  • 10 Konsep OOPS Teratas Dalam C # .NET Dengan Contoh: panduan cepat yang bagus untuk mengarahkan diri Anda dalam C # jika Anda sudah memahami konsep OOP
  • Belajar C #: Bagaimana Menguasai Bahasa Pemrograman Berorientasi Objek: ikhtisar tingkat tinggi tentang bagaimana cara terbaik mendekati pembelajaran C # dan OOP secara umum
  • Awal C # Pemrograman Berorientasi Objek.

Objektif-C

Objective-C dikembangkan sekitar waktu yang sama dengan C ++, dengan tujuan yang pada dasarnya sama – penambahan kemampuan OOP ke C. Saat ini, Objective-C benar-benar hanya digunakan dalam Platform Pengembangan Kakao Apple untuk OS X dan iOS, dan GNUstep, yang Alternatif Sumber Terbuka.

  • Pemrograman Berorientasi Objek dengan Objective-C
  • Pengantar Desain Berorientasi Objek
  • Pemrograman Berorientasi Objek dan Bahasa Objective-C (PDF)
  • Pengenalan Pemrograman Berorientasi Objek.

Gangguan umum

Lisp pada dasarnya tidak Berorientasi Objek. Namun Common Lisp, salah satu dialek Lisp yang lebih populer, termasuk Common Lisp Object System (CLOS), yang menyediakan fitur OOP.

Pendekatan untuk Orientasi Objek yang diimplementasikan dalam CLOS secara radikal berbeda dari cara OO ditangani dalam bahasa lain. Ini berarti bahwa CLOS bukan tempat yang tepat untuk memulai jika Anda ingin mempelajari OO secara umum, atau menerapkan OO dalam jenis bahasa lain. Namun, jika Anda masuk ke Lisp, CLOS sangat penting. Selain itu, jika Anda menemukan OOP sangat menarik, Anda akan menikmati mempelajari CLOS untuk melihat konsep OO dengan cara yang berbeda.

  • Fundamental CLOS
  • Panduan Singkat untuk TUTUP
  • Sistem Objek Common Lisp: Tinjauan (PDF)
  • CLOS: Mengintegrasikan Pemrograman Berorientasi Objek dan Fungsional (PDF)
  • Pemrograman Berorientasi Objek dalam COMMON LISP: Panduan Programmer untuk CLOS.

Erlang

Menurut beberapa sudut pandang konvensional, Erlang bukan bahasa yang berorientasi objek. Namun, ada pendapat minoritas yang menarik sebaliknya, dan para pendukungnya menyatakan bahwa Erlang adalah Bahasa yang Paling Berorientasi Objek, atau bahkan bahwa Erlang adalah satu-satunya bahasa Berorientasi Objek yang benar.

Banyak dari ini juga berlaku untuk Elixir. Di sisi lain, mungkin ini hanya gaya OO, bukan OO sejati.

F #

F # (“F sharp”) adalah bahasa multi-paradigma. Intinya adalah pemrograman yang benar-benar fungsional, tetapi mencakup dukungan untuk OO dan upaya untuk merekonsiliasi dua pendekatan yang berbeda untuk pemrograman.

  • Seri “Pemrograman berorientasi objek dalam seri F #”
  • F # Panduan Cepat: Pemrograman Berorientasi Objek
  • F # Ikhtisar – Pemrograman Imperatif dan Berorientasi Objek
  • Berorientasi Objek F # – Membuat Kelas
  • Pemrograman Berorientasi Objek dalam F # (PDF)
  • OOP tanpa kelas di F #.

Fortran

Fortran adalah bahasa pemrograman tertua yang masih umum digunakan. Ketika ditemukan pada 1950-an, tidak ada yang namanya orientasi objek. Dukungan OOP eksplisit ditambahkan ke Fortran dengan rilis bahasa Fortran 2003. Tetapi dimungkinkan untuk mengimplementasikan beberapa konsep OOP dasar dalam versi bahasa yang lebih lama.

  • OOP di Fortran sebelum Fortran Berorientasi Objek:
    • Gaya Berorientasi Objek semu di Fortran 90
    • Pemrograman Berorientasi Objek via Fortran 90 (PDF)
    • Pengantar Konsep Berorientasi Objek menggunakan Fortran90.
  • OOP di Fortran dengan dukungan resmi:
    • Pemrograman Berorientasi Objek di Fortran 2003
    • Fortran Modern dalam Praktek
    • PEMROGRAMAN ILMIAH DI FORTRAN 2003: Tutorial Termasuk Pemrograman Berorientasi Objek (PDF).

Pergilah

Go adalah bahasa yang relatif baru, yang dikembangkan oleh Google pada tahun 2007. Ada banyak diskusi tentang apakah Go berorientasi objek atau tidak.

Go tidak memiliki apa pun di dalamnya yang disebut “objek” atau “kelas,” tetapi memang memiliki beberapa struktur analog. Dari sudut pandang tertentu, Anda dapat menganggap Go sebagai berorientasi objek.

Banyak orang yang mengira Go adalah OO:

  • Go-Oriented Design
  • Pemrograman Berorientasi Objek di Go
  • Patters Bahasa Berorientasi Objek di Go
  • Pergi untuk Pemrogram Berorientasi Objek atau Pemrograman Berorientasi Objek tanpa Obyek (video)
  • Ringkasan Pemrograman Berorientasi Objek, Kebaikan di Jalan, tanpa rasa sakit.

Jawa

Java dibangun dari bawah ke atas untuk berorientasi objek. Berikut adalah beberapa sumber yang bagus untuk membantu Anda menggunakan Java:

  • Desain Sistem Berorientasi Objek: situs web untuk Stanford’s CS108, dengan tautan ke kode, selebaran, slide kuliah, dan hampir semua yang Anda butuhkan untuk mengerjakan kursus sendiri
  • Tutorial Java: Konsep Pemrograman Berorientasi Objek
  • Dasar-Dasar Pemrograman Java Tutorial Pemrograman Berorientasi Objek (OOP)
  • Konsep Pemrograman Berorientasi Objek (enam seri video)
  • Pemrograman Berorientasi Objek – Tutorial Java
  • Java Fundamentals Tutorial: Pemrograman Berorientasi Objek di Jawa
  • Pemrograman Berorientasi Objek di Jawa
  • Dasar-Dasar Pemrograman Berorientasi Objek Dengan Java (PDF).

JavaScript

Banyak orang tidak berpikir bahwa JavaScript benar-benar berorientasi objek. Tetapi banyak orang berpikir bahwa itu pasti.

Kami merasa tugas kami adalah membantu Anda menemukan sumber daya yang bermanfaat, tidak memihak dalam perdebatan yang tidak dapat dimenangkan. Jadi, inilah beberapa sumber daya OOP untuk JavaScript:

  • Pengantar JavaScript Berorientasi Objek (Jaringan Pengembang Mozilla)
  • JavaScript: Bahasa Pemrograman yang Paling Banyak Disalahpahami Dunia
  • OOP Dalam JavaScript: Yang Harus Anda Ketahui
  • JavaScript Berorientasi Objek: Membuat Aplikasi dan Pustaka JavaScript Berkualitas Tinggi yang Dapat Dikukur dan Dapat Digunakan Kembali
  • Prinsip JavaScript Berorientasi Objek
  • JavaScript Berorientasi Objek (video).

PHP

PHP bahkan tidak mendukung konsep OO dasar hingga versi 4, dan tidak mendukung orientasi objek penuh hingga PHP5.

  • PHP Berorientasi Objek untuk Pemula
  • PHP Berorientasi Objek untuk Pemula Mutlak
  • Prinsip Pemrograman Berorientasi Objek dalam PHP
  • PHP Berorientasi Objek (video)
  • PHP Berorientasi Objek: Konsep, Teknik, dan Kode.

Python

Kode python tidak perlu berorientasi objek, tetapi bahasa sepenuhnya mendukungnya. Lihat sumber daya ini:

  • Pemrograman Berorientasi Objek: pengantar OOP, dengan cara Python, dari Open Courseware MIT
  • Pemrograman Berorientasi Objek dengan Python
  • Tingkatkan Python Anda: Kelas Python dan Pemrograman Berorientasi Objek
  • Kursus Python: Pemrograman Berorientasi Objek
  • Pemrograman Berorientasi Objek Python 3.

Rubi

Di Ruby semuanya adalah objek, bahkan tipe data “primitif” seperti string dan integer. Anda menambahkan dua bilangan bulat dengan memanggil metode penambahan pada salah satu dari mereka; Anda menemukan panjang string dengan memanggil metode panjang di atasnya.

  • Panduan Pengguna Ruby: Pemikiran Berorientasi Objek
  • Modul Ruby: Fitur OOP Utama dari Bahasa Pemrograman Ruby
  • Desain Berorientasi Objek Praktis di Ruby.

Smalltalk

Smalltalk mungkin adalah bahasa berorientasi objek yang paling berpengaruh, setelah memiliki efek mendalam pada bahasa yang datang kemudian. Sebagai hasilnya, itu baik untuk memiliki setidaknya beberapa keakraban dengannya. Sumber daya ini akan membantu Anda memulai:

  • Pemrograman Berorientasi Objek dengan Smalltalk (PDF)
  • Smalltalk dan Object-Orientation: An Introduction (PDF)
  • Smalltalk: Memulai dengan bahasa (video)
  • Pemrograman Smalltalk – Orientasi Objek dari Awal: Pengantar Prinsip-Prinsip Pemrograman.

Di samping itu…

Jika Anda ingin menjadi pengembang yang berpengetahuan luas, penting untuk memahami baik dan buruknya konsep apa pun. Meskipun orientasi objek telah menjadi cara dominan untuk memahami pemrograman, ada kritik yang sah untuk dibuat – baik dari ide itu sendiri, dan budaya hype di sekitarnya.

Berikut adalah beberapa sumber daya yang menghadirkan kontra-argumen kepada OOP:

  • Pemrograman Berorientasi Objek Adalah Bencana Mahal yang Harus Berakhir
  • Pemrograman Berorientasi Objek Sangat Berbahaya
  • Pemrograman Berorientasi Objek: Cerita Bencana.

Pemrograman Berorientasi Objek Hari Ini

Sementara pemrograman berorientasi objek tetap menjadi metodologi penting dalam pemrograman komputer, itu tidak lagi memegang tempatnya sebagai standar industri untuk “pengembangan perangkat lunak yang baik.” Paradigma lain, terutama pemrograman fungsional, datang ke garis depan, bersama dengan bahasa baru yang mendukungnya. Sementara itu kritik terhadap pemrograman berorientasi objek, serta gerakan pola desain, terus meningkat.

Namun, sejumlah besar perangkat lunak yang ditulis hari ini berorientasi objek. Jika Anda bekerja di salah satu bahasa berorientasi objek umum, Anda harus memiliki pemahaman yang baik tentang konsep dasar berorientasi objek.

Lebih Banyak Hal Menarik

Kami memiliki lebih banyak panduan pemrograman, tutorial, dan infografis yang berkaitan dengan pengkodean dan pengembangan:

  • Sumber Daya Pengembang C ++: selain informasi tentang C ++, ada lebih banyak informasi tentang pemrograman berorientasi objek.
  • Pengenalan dan Sumber Daya Pemrograman Linux: meskipun tidak secara khusus tentang pemrograman berorientasi objek, diskusi tentang banyak level pemrograman Linux ini pasti akan memberi Anda energi.
  • Pendahuluan dan Sumberdaya INTERCAL: jika Anda menemukan pemrograman berorientasi objek sulit, mempelajari INTERCAL akan membuatnya tampak mudah. Bahasa parodi (atau lelucon) ini begitu rumit dan mengerikan sehingga diskusi polimorfisme yang paling dalam pun akan terasa menyenangkan..

Kode apa yang harus Anda pelajari?

Bingung tentang bahasa pemrograman apa yang harus Anda pelajari kode? Lihat infografis kami, Apa Kode Yang Harus Anda Pelajari? Itu tidak hanya membahas berbagai aspek bahasa, itu menjawab pertanyaan-pertanyaan penting seperti, “Berapa banyak uang yang akan saya hasilkan untuk pemrograman Java sebagai mata pencaharian?”

Kode Apa Yang Harus Anda Pelajari?
Kode apa yang harus Anda pelajari?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me