PROGRAM
JAVA MENGHITUNG LUAS SEGITIGA
PEMROGRAMAN
BERBASIS OBJEK
DI
AJUKAN UNTUK MEMENUHI MATA KULIAH PEMROGRAMAN BERBASIS OBJEK PADA PROGRAM STRATA 1 (S1)
Disusun
Oleh :
KELOMPOK
4
KELAS
12.3A.01
Lukman
Nul Hakim 12150235
Ikhsan
Aria Putra 12150
Muhammad
Novianto 12150
Muhammad
Afrizal 12150
Serlyn
Febryanti 12150
JURUSAN
TEKNIK INFORMATIKA
SEKOLAH
TINGGI MANAJEMEN INFORMASI DAN KOMPUTER
KRAMAT
18
2016
BAB I
PENDAHULUAN
1.1. Latar
Belakang
Pemrograman
Berorientasi Objek (Object Oriented Programming atau OOP)
merupakan paradigma pemrograman yang
berorientasikan kepada objek. Objek adalah struktur data yang terdiri
dari bidang data dan metode bersama dengan interaksi
mereka untuk merancang aplikasi dan program komputer. Semua data dan fungsi di
dalam paradigma ini dibungkus
dalam kelas-kelas atau objek-objek. Bandingkan dengan
logika pemrograman terstruktur. Setiap objek
dapat menerima pesan,
memproses data, dan mengirim pesan ke objek lainnya. Pada jaman sekarang,
banyak bahasa pemrograman yang mendukung OOP.
OOP
adalah paradigma pemrograman yang cukup dominan saat ini, karena mampu
memberikan solusi kaidah pemrograman modern. Meskipun demikian, bukan berarti
bahwa pemrograman prosedural sudah tidak layak lagi. OOP diciptakan karena
dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep
dari OOP sendiri adalah semua pemecahan masalah dibagi ke dalam objek. Dalam
OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu
kesatuan yang dapat disebut sebagai objek. Proses perancangan atau desain dalam
suatu pemrograman merupakan proses yang tidak terpisah dari proses yang
mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai
orientasi objek tidak akan terlepas dari konsep objek
seperti inheritance atau penurunan, encapsulation atau
pembungkusan, dan polymorphismatau kebanyakrupaan. Konsep-konsep ini
merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta
digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.
Model
data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih,
kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala
besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah
dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan
OOP lebih mudah dikembangkan dan dirawat.
1.2. Rumusan
Masalah
1. Pengertian OOP (Object
Oriented Programming)?
2. Apa saja konsep
dasar dari pemrograman berorientasi objek (OOP)?
3. Bahasa yang mendukung
OOP meliputi apa saja?
4. Bagaimanakah desain
pola dalam OOP?
5. Bagaimanakah kritik
para ahli mengenai OOP?
1.3. Tujuan dan
Manfaat
1. Dapat mengetahui
pengertian OOP (Object Oriented Programming) secara umum.
2. Dapat mengetahui
konsep dasar dari pemrograman berorientasi objek (OOP).
3. Dapat mengetahui
bahasa yang mendukung OOP.
4. Dapat mengetahui
desain pola apa saja dalam OOP.
5. Dapat mengetahui
beberapa kritik para ahli mengenai OOP.
BAB II
PEMBAHASAN
2.1. Pengertian
OOP (Object Oriented Programming)
Banyak
orang pertama kali belajar program menggunakan bahasa yang tidak berorientasi
objek. Program non-OOP mungkin salah satu daftar panjang dari perintah. Lebih program
yang kompleks akan kelompok daftar perintah ke dalam fungsi atau subrutin masing-masing yang mungkin melakukan tugas
tertentu.Dengan desain semacam ini, biasanya untuk data program untuk dapat
diakses dari setiap bagian dari program tersebut. Sebagai program tumbuh dalam
ukuran, memungkinkan fungsi apapun untuk memodifikasi setiap bagian dari data
berarti bahwa bug dapat memiliki dampak yang luas jangkauannya.
Sebaliknya,
pendekatan berorientasi objek mendorong para programmer untuk tempat data di
mana tidak langsung dapat diakses oleh seluruh program. Sebaliknya data diakses
dengan memanggil tertulis fungsi khusus, yang biasa disebut metode, baik yang dibundel dengan data
atau warisan dari ”objek kelas” dan bertindak sebagai perantara untuk mengambil
atau memodifikasi data tersebut. Pemrograman yang membangun yang menggabungkan
data dengan satu set metode untuk mengakses dan mengelola data tersebut disebut
objek.
Sebuah
program berorientasi objek biasanya akan mengandung berbagai jenis objek,
masing-masing jenis yang sesuai untuk jenis tertentu dari data yang kompleks
untuk dikelola atau mungkin ke objek dunia nyata atau konsep seperti rekening
bank, pemain hoki, atau buldoser. Sebuah program mungkin berisi beberapa
salinan dari setiap jenis objek, satu untuk setiap objek dunia nyata program
ini berurusan dengan OOP. Sebagai contoh, ada bisa menjadi salah satu rekening
bank untuk setiap account objek dunia nyata di sebuah bank tertentu. Setiap
salinan dari objek rekening bank akan sama dalam metode ini menawarkan untuk
memanipulasi atau membaca data, tetapi data dalam setiap objek akan berbeda
mencerminkan sejarah yang berbeda dari setiap account.
Objek
dapat dianggap sebagai pembungkus data mereka dalam satu set fungsi yang
dirancang untuk memastikan bahwa data yang digunakan tepat, dan untuk membantu
dalam menggunakan. Metode ini objek biasanya akan mencakup pemeriksaan dan
perlindungan yang khusus untuk jenis data objek berisi. Sebuah objek juga dapat
menawarkan sederhana digunakan, metode standar untuk melakukan operasi tertentu
pada data, sementara menyembunyikan secara spesifik tentang bagaimana
tugas-tugas yang dicapai. Dengan cara ini perubahan dapat dibuat dengan
struktur internal atau metode obyek tanpa memerlukan bahwa sisa program
dimodifikasi. Pendekatan ini juga dapat digunakan untuk menawarkan metode
standar di berbagai jenis objek. Sebagai contoh, beberapa jenis benda mungkin
menawarkan metode cetak. Setiap jenis objek yang mungkin menerapkan metode
cetak dalam cara yang berbeda, yang mencerminkan jenis data yang berbeda
masing-masing berisi, tetapi semua metode cetak yang berbeda mungkin disebut
dengan cara standar yang sama dari tempat lain di program ini. Fitur-fitur ini
menjadi berguna terutama ketika lebih dari satu programmer berkontribusi kode
untuk proyek atau ketika tujuannya adalah untuk menggunakan kembali kode di
antara proyek.
Pemrograman
berorientasi obyek memiliki akar yang dapat ditelusuri ke tahun 1960-an.
Sebagai perangkat keras dan software menjadi semakin kompleks,
pengelolaan sering menjadi perhatian. Para peneliti mempelajari cara untuk
menjaga kualitas software dan pemrograman berorientasi objek yang dikembangkan
sebagian untuk mengatasi masalah-masalah umum dengan sangat menekankan diskrit,
unit dapat digunakan kembali logika. Teknologi ini berfokus pada data daripada proses,
dengan program yang terdiri dari modul mandiri (kelas), setiap contoh (objek)
yang berisi semua informasi yang dibutuhkan untuk memanipulasi data struktur
sendiri (anggota). Hal ini berbeda dengan yang ada pemrograman modular yang telah dominan
selama bertahun-tahun yang difokuskan pada fungsi dari sebuah modul,
bukan data spesifik, tetapi juga disediakan untukpenggunaan kembali kode, dan cukup dapat
digunakan kembali unit-diri dari logika pemrograman, memungkinka kolaborasi melalui
penggunaan modul terkait (subrutin). Pendekatan yang lebih konvensional, yang masih
tetap, cenderung untuk mempertimbangkan data dan perilaku secara terpisah.
Program
berorientasi objek dengan demikian dapat dilihat sebagai
kumpulan objek berinteraksi, yang bertentangan dengan model
konvensional, di mana program dipandang sebagai daftar tugas (subrutin) untuk melakukan. Dalam OOP, setiap objek dapat
menerima pesan, pengolahan data, dan mengirim pesan ke objek lainnya. Setiap
objek dapat dilihat sebagai ”mesin” independen dengan peran yang berbeda atau
tanggung jawab. Tindakan (metode) pada obyek-obyek yang terkait erat
dengan objek. Sebagai contoh, OOP struktur data cenderung ”membawa operator
sendiri main dengan mereka” (atau setidaknya ”mewarisi” mereka dari
obyek yang sama atau kelas).
2.2 Konsep Dasar
dari Pemrograman Berorientasi Objek (OOP)
Pemrograman Orientasi Objek (Object Oriented
Programming)menekankan konsep sebagai berikut :
1. Class
Class
merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk
suatu tujuan tertentu. Sebagai contoh “class of dog” adalah suatu unit yang
terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada
berbagai macam perilaku atau turunan dari anjing. Sebuah class adalah
dasar dari modularitas dan struktur dalam pemrograman berorientasi
objek. Sebuah classsecara tipikal sebaiknya dapat dikenali oleh
seorang non-programmer sekalipun terkait dengan domain permasalahan yang
ada, dan kode yang terdapat dalam sebuah class sebaiknya
(relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan
jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program
akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui
program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah
ke sebuah program ataupun sebaliknya.
2. Objek
Objek
berfungsi membungkus data dan fungsi bersama menjadi suatu unit dalam
sebuah program komputer. Objek merupakan
dasar dari modularitas danstruktur dalam
sebuah program komputer berorientasi objek.
3. Abstraksi
Abstraksi dapat
didefinisikan sebagai kemampuan sebuah program untuk melewati aspek informasi
yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek
dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan
kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya
dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses,
fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan
untuk mengembangkan sebuah pengabstrakan.
4. Enkapsulasi
Enkapsulasi berfungsi
memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah
objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang
diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang
menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya
tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
5. Polimorfisme
Polimorfisme dapat
berwujud melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin,
bahasa orientasi objek dapat mengirim pesan. Metode tertentu yang berhubungan
dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan
tersebut dikirim. Contohnya, bila sebuah burung menerima pesan “gerak cepat”,
dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan
yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah
pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut
polimorfisme karena sebuah variabel tunggal dalam program dapat memegang
berbagai jenis objek yang berbeda selagi program berjalan, dan teks program
yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda
dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang
mencapai polimorfisme melalui penggunaan fungsi kelas pertama.
6. Inheritas
Konsep inheritas
mempunyai fungsi mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek
didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada.
Objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru
mengimplementasi ulang perilaku tersebut (bahasa berbasis objek tidak
selalu memiliki inheritas).
Dengan
adanya konsep dasar tersebut di atas, maka dengan menggunakan OOP kita dapat
melakukan pemecahan suatu masalah tanpa melihat bagaimana cara menyelesaikan
suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat
melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki
sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data
dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian
administrasi, maka manager tersebut tidak harus mengambilnya langsung tetapi
dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus
tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data
tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas
administrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar
objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
Bahasa pemrograman yang mendukung Metode pendekatan Objek
Oriented Programing antara lain:
- Visual
Foxpro
- Java
- C++
- Pascal
- SIMULA
- Smaltalk
- Ruby
- Python
- PHP
- C#
- Delphi
- Eiffel
- Perl
- Adobe
Flash AS 3.0
2.3. Bahasa
Pendukung OOP
Bahasa
pertama yang memiliki fitur-fitur utama dari sebuah bahasa berorientasi objek
yaitu Simula (1967). Organisasi ini dibentuk untuk membuat program simulasi, di mana apa yang kemudian
disebut objek adalah informasi perwakilan paling penting. Smalltalk (1972-1980) ini bisa dibilang contoh kanonik,
dan yang satu dengan yang banyak teori pemrograman berorientasi objek adalah
dikembangkan. Mengenai derajat orientasi objek, berikut beberapa perbedaan
dapat dibuat:
1. Bahasa disebut “murni” bahasa OOP, karena segala isinya
diperlakukan secara konsisten sebagai
objek, dari primitif seperti karakter dan tanda baca, semua jalan sampai ke
seluruh kelas, prototipe, blok, modul, dan lain-lain. Mereka dirancang khusus
untuk memfasilitasi, bahkan menegakkan, metode OOP. Contoh : Scala, Smalltalk, Eiffel, Ruby, JADE, dan Emerald.
2. Bahasa pemrograman yang dirancang terutama untuk
OOP, tapi dengan beberapa elemen prosedural. Contoh
: C + + , C #, VB.NET,Java, dan Python. (Catatan : C # dan VB.NET eksklusif
bagian Microsoft's NET Framework adalah dan platform pengembangan. Kompilasi
keduanya sama (bahasa menengah IL). Meskipun ada beberapa perbedaan membangun,
mereka minimal dan dalam konteks pengelompokan ini, beberapa mungkin menganggap
mereka bagian dari satu bahasa dengan hanya dua mesin sintaks (terjemahan).
3. Bahasa yang secara historis bahasa prosedural, tetapi telah
diperpanjang dengan beberapa fitur OOP. Contoh : Visual Basic(berasal dari DASAR), Fortran 2003, Perl, COBOL 2002, PHP, danABAP .
4. Bahasa dengan sebagian besar fitur objek (kelas, metode,
warisan, usabilitas), tetapi dalam bentuk jelas asli. Contoh : Oberon (Oberon-1 atau Oberon-2).
5. Bahasa dengan tipe data abstrak dukungan, tetapi tidak
semua fitur-orientasi obyek, kadang-kadang disebut
bahasa berbasis objek. Contoh : Modula-2 (dengan enkapsulasi yang sangat baik dan
menyembunyikan informasi), liat, dan CLU .
Dalam
beberapa tahun terakhir, pemrograman berorientasi objek telah menjadi sangat
populer di bahasa pemrograman dinamis. Python, Ruby dan Groovy adalah bahasa dinamis dibangun
di atas prinsip-prinsip OOP, sedangkan Perl dan PHPtelah menambahkan fitur berorientasi objek sejak Perl 5 dan
PHP 4, danColdFusion sejak versi 6.
2.4. Desain Pola
OOP
Tantangan
desain berorientasi objek yang ditujukan oleh beberapa metodologi. Paling umum
dikenal sebagai pola desain dimodifikasikan oleh Gamma dkk. Lebih
luas lagi, istilah ”pola desain” dapat digunakan untuk mengacu
pada setiap diulang, solusi umum untuk masalah umum yang terjadi dalam desain
perangkat lunak. Beberapa masalah ini sering terjadi memiliki implikasi dan
solusi khusus pengembangan berorientasi objek. Beberapa Desain Pola OOP antara
lain
Warisan dan
Perilaku Subtyping
Hal ini
untuk menganggap warisan yang menciptakan semantik ”adalah sebuah” hubungan, dan dengan demikian untuk
menyimpulkan bahwa benda instansi dari subclass selalu dapat
dengan aman digunakan sebagai benda pengganti instansi
dari superclass. Intuisi ini sayangnya palsu dalam bahasa OOP kebanyakan,
khususnya di semua orang yang memungkinkan bisa berubah objek. Polimorfisme Subtipe sebagai ditegakkan oleh Checker dalam bahasa OOP (dengan objek
bisa berubah) tidak dapat menjamin subtyping perilaku dalam konteks
apapun. Perilaku subtyping ini diputuskan pada umumnya, sehingga
tidak dapat dilaksanakan oleh program (compiler). Kelas atau objek hierarki
perlu hati-hati dirancang mempertimbangkan kemungkinan menggunakan salah yang
tidak dapat dideteksi sintaktis. Masalah ini dikenal sebagai prinsip substitusi Liskov .
Pola Desain Gang
Empat
Design Patterns: Elements of Reusable Object-Oriented
Software adalah buku yang berpengaruh yang diterbitkan pada
tahun 1995 oleh Erich Gamma,Richard Helm, Ralph Johnson, dan John Vlissides, kadang-kadang santai disebut
“Gang Empat”. Seiring dengan mengeksplorasi kemampuan dan perangkap pemrograman
berorientasi obyek, itu menggambarkan 23 masalah pemrograman umum dan pola
untuk memecahkan masalah tersebut. Pada April 2007, buku itu dalam pencetakan
36 nya. Buku ini menjelaskan pola-pola sebagai berikut:
· Mencipta Pola : Pola Metode Pabrik, Pabrik Abstrak Pola, Pola Singleton, Builder Pola, dan Pola Prototype.
· Struktural Pola : Pola Adapter, Bridge Pola, Pola Komposit,dekorator Pola, Pola Facade, kelas Terbang Pola, dan Pola Proxy.
· Perilaku Pola : Rantai Tanggung Jawab Pola, Pola Command,Interpreter Pola, Pola Iterator, Mediator Pola, Pola Memento,Observer Pola, Pola Negara, Strategi Pola, Template Metode Pola, dan Pola Pengunjung.
Obyek Orientasi
dan Database
Kedua pemrograman
berorientasi obyek dan sistem manajemen database relasional (RDBMSs)
sangat umum dalam perangkat lunak saat ini. Karenadatabase relasional tidak menyimpan objek
langsung (meskipun beberapa RDBMSs memiliki fitur berorientasi objek untuk
perkiraan ini), ada kebutuhan umum untuk menjembatani dua dunia. Masalah
menjembatani pemrograman berorientasi objek mengakses dan pola data dengan
database relasional dikenal sebagai Relational Mismatch Impedansi Object.
Ada beberapa pendekatan untuk mengatasi masalah ini, tetapi tidak ada solusi
umum tanpa kelemahan. Salah satu pendekatan yang paling umum adalah objek relasional pemetaan, seperti yang
ditemukan di perpustakaan seperti Java Data Objects dan Ruby on Rails‘ActiveRecord.
Ada juga objek database yang dapat digunakan
untuk menggantikan RDBMSs, tetapi ini belum teknis dan komersial sukses sebagai
RDBMSs.
Pemodelan Dunia Nyata
dan Hubungan
OOP
dapat digunakan untuk objek dunia nyata asosiasi dan proses dengan mitra
digital. Namun, tidak semua orang setuju bahwa OOP memfasilitasi dunia nyata
pemetaan langsung (lihat Kritik Negatif bagian)
atau bahwa pemetaan dunia nyata bahkan tujuan yang layak. Bertrand Meyer berpendapat di Object-Oriented Software Konstruksi bahwa
program bukanlah model dunia tetapi model dari beberapa bagian dunia, “Realitas
adalah sepupu dua kali dihapus”. Pada saat yang sama, beberapa keterbatasan
utama dari OOP sudah diketahui. Sebagai contoh,masalah Elips Circle sulit untuk
ditangani dengan menggunakan konsep OOP’s dari warisan.
Namun, Niklaus Wirth (yang mempopulerkan pepatah
sekarang dikenal sebagai hukum di Wirth : “Software semakin
lambat lebih cepat dari perangkat keras menjadi lebih cepat”) kata dari OOP
dalam makalahnya, “Ide Bagus melalui Looking Glass”, paradigma ini erat
mencerminkan struktur sistem “di dunia nyata”, dan oleh karena itu cocok untuk
model sistem kompleks dengan perilaku kompleks (kontras KISS prinsip).
Steve Yegge, dkk. mencatat bahwa bahasa alami
merupakan kekurangan pendekatan OOP yang ketat
memprioritaskan hal (benda/kata benda) sebelum tindakan (metode/verba). Hal ini dapat menyebabkan masalah OOP menderita
berbelit-belit solusi lebih dari pemrograman prosedural.
Desain OOP dan Flow
Control
OOP
dikembangkan untuk meningkatkan reusabilitas dan maintainabilitydari source code.
Representasi transparan aliran kontrol tidak memiliki prioritas
dan dimaksudkan untuk ditangani oleh compiler. Dengan meningkatnya
relevansi paralel dan perangkat keras multithreaded coding, pengembang kontrol
aliran transparan menjadi lebih penting, sesuatu yang keras untuk mencapai
dengan OOP.
Desain Tanggung Jawab
dan Driven Desain Data
Desain Berbasis Tanggung Jawab mendefinisikan
kelas dalam hal kontrak, yaitu kelas harus didefinisikan sekitar tanggung jawab
dan informasi yang sama. Hal ini kontras dengan Wirfs-Brock dan Wilkerson
dengan desain data-driven, di mana kelas didefinisikan
di sekitar struktur data yang harus dipegang. Para penulis berpendapat bahwa
desain tanggung jawab-driven adalah lebih baik.
2.5. Kritik Para Ahli
Mengenai OOP
Sejumlah peneliti terkenal dan programmer telah
menganalisis utilitas dari OOP, antara lain :
Richard Stallman menulis pada tahun 1995,
dia menambahkan bahwa OOP untukEmacs tidak secara jelas, perbaikan OOP saya gunakan ketika
bekerja di Mesin Lisp sistem jendela, dan aku tidak setuju dengan
pandangan biasa bahwa itu adalah cara yang unggul untuk program”.
Sebuah
studi oleh Potok et al. telah menunjukkan tidak ada perbedaan yang
signifikan dalam produktivitas antara OOP dan pendekatan prosedural.
Christopher J. Tanggal menyatakan
bahwa perbandingan kritis OOP dengan teknologi lain, pada khususnya relasional
adalah sulit karena tidak adanya upon dan ketat definisi yang disepakati dari
OOP. Darwen mengusulkan landasan teoritis pada OOP yang menggunakan OOP sebagai
semacam disesuaikan sistem tipeuntuk mendukung RDBMS.
Alexander Stepanov menyarankan bahwa OOP
memberikan sudut pandang terbatas matematis dan menyebutnya “hampir sebanyak
tipuan sebagai Artificial Intelligence”. Dia belum
melihat bagian yang menarik dari kode yang berasal dari orang-orang OOP.
Paul Graham telah
menyarankan bahwa tujuan dari OOP adalah untuk bertindak sebagai ”mekanisme
menggiring” yang membuat programmer biasa-biasa saja dalam organisasi
biasa-biasa saja dari “melakukan banyak kerusakan yang terlalu”. Hal ini adalah
pengorbanan dengan memperlambat programmer produktif yang tahu bagaimana
menggunakan lebih kuat dan lebih kompak teknik.
Joe Armstrong, penemu utama Erlang, mengatakan “Masalah dengan bahasa
berorientasi objek yang mereka punya semua ini lingkungan implisit bahwa mereka
membawa sekitar dengan mereka inginkan. Anda punya pisang, tapi apa yang Anda
punya adalah gorila memegang pisang dan seluruh hutan”.
Richard
Mansfield, penulis dan mantan editor Hitung majalah, menyatakan bahwa “seperti tak terhitung
mode intelektual lainnya selama bertahun-tahun (“relevansi”, “komunisme”,
“modernisme”) sejarah penuh dengan mereka. OOP akan bersama kita sampai
akhirnya realitas menegaskan dirinya. Seluruh generasi programmer didoktrinasi
terus berbaris keluar dari akademi, berkomitmen untuk OOP dan hanya OOP untuk
sisanya hidup mereka”. Ia juga mengatakan “OOP adalah untuk menulis sebuah
program, apa yang akan melalui keamanan bandara adalah untuk terbang”.
Rich Hickey, pencipta Clojure, menjelaskan sistem objek sebagai atas model sederhana
dari dunia nyata. Dia menekankan ketidakmampuan OOP ke waktu model benar, yang
semakin semakin bermasalah sebagai sistem perangkat lunak menjadi lebih
bersamaan.
Carnegie-Mellon University Profesor Robert Harper Maret
2011 menulis: “Dan semester ini Licata dan aku mengajar kursus baru di pemrograman fungsionaluntuk tahun pertama
jurusan CS calon ... Pemrograman Berorientasi Obyek dihilangkan sepenuhnya dari
kurikulum pengantar, karena keduanya anti-modular dan anti-paralel sifatnya,
dan karenanya tidak cocok untuk suatu kurikulum CS modern. Sebuah program baru
yang diusulkan pada metodologi desain berorientasi objek akan ditawarkan di
tingkat sophomore bagi siswa yang ingin belajar topik ini”.
BAB III
PENUTUP
3.1. Kesimpulan
Dari makalah di atas penyusun dapat mengambil kesimpulan :
Pemrograman
Berorientasi Objek (Object Oriented Programming atau OOP)
merupakan paradigma pemrograman yang
berorientasikan kepada objek. OOP adalah paradigma pemrograman yang cukup
dominan saat ini, karena mampu memberikan solusi kaidah pemrograman modern.
Pemrograman Orientasi Objek (Object Oriented Programming) menekankan
beberapa konsep, yaitu kelas, objek, abstraksi, enkapsulasi, polimorfisme, dan
inheritas. Python, Ruby dan Groovyadalah bahasa dinamis dibangun di
atas prinsip-prinsip OOP, sedangkan Perl danPHP telah menambahkan fitur berorientasi objek sejak Perl
5 dan PHP 4, danColdFusion sejak versi 6. Desain pola OOP antara lain :
1) Warisan dan Perilaku Subtyping, 2) Pola Desain Gang Empat,
3) Obyek Orientasi dan Database, 4) Pemodelan Dunia Nyata dan
Hubungan, 5) Desain OOP dan Flow Control, 6) Desain Tanggung Jawab dan Driven
Desain Data. Beberapa ahli juga mengkritik OOP, antara lain : Richard Stallman, Potok et al., Christopher J. Tanggal,Alexander Stepanov, Paul Graham, Joe Armstrong, Richard Mansfield, Rich Hickey, dan Carnegie-Mellon University Profesor Robert Harper.
3.2 Saran
Setelah mengetahui pengertian dan seluk beluk semua tentang
OOP, kita dapat mengambil segi positif dari penggunaan OOP dalam pemrograman,
walaupun masih terdapat kelemahan-kelemahan OOP dalam pemrograman.
0 Response to "Makalah Pemrograman berbasis objek semester 3"
Post a Comment