Pengertian Object Oriented Programming
MAKALAH
KONSEP PENERAPAN OOP (OBJECT ORIENTED PROGRAMMING)
Materi ini disusun oleh
Listiana Mariaty NIM : 11151200
Suriani Bangun NIM : 11151824
Kelas : 11.B1.015
BAB I
PENDAHULUAN
A. Latar Belakang
Pemrograman Berorientasi Objek (Object Oriented
Programmingatau OOP) merupakan paradigma pemrograman yang
berorientasikan kepada objek. Objek adalah struktur data yang terdiri dari bidang data danmetode 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 logikapemrograman 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 polymorphism atau 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 dalamteknik 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.
B. 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?
C. Tujuan dan Manfaat
1. Dapat mengetahui pengertian OOP (Object Oriented Programming)
secara umum.
2. Dapat mengetahui konsep dasar dari pemrograman
berorientasiobjek (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
A. 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 softwaremenjadi semakin kompleks, pengelolaan
sering menjadi perhatian. Para peneliti mempelajari cara untuk menjaga
kualitas software danpemrograman 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 untuk penggunaan
kembali kode, dan cukup dapat digunakan kembali unit-diri dari
logika pemrograman, memungkinkan 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).
B. Konsep Dasar dari Pemrograman Berorientasi Objek
(OOP)
Pemrograman Orientasi Objek (Object
Oriented Programming)menekankan konsep sebagai berikut :
1. Kelas
Kelas 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 class secara
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. Objekmerupakan
dasar dari modularitas dan struktur 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 interfaceyang
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.
C. 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 teoripemrograman 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 PHP telah menambahkan fitur berorientasi objek sejak
Perl 5 dan PHP 4, dan ColdFusion sejak versi 6.
D. 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 :
1.
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 darisuperclass. Intuisi
ini sayangnya palsu dalam bahasa OOP kebanyakan, khususnya di semua orang yang
memungkinkan bisa berubah objek.
Polimorfisme Subtipe sebagai
ditegakkan olehChecker dalam bahasa
OOP (dengan objek bisa berubah) tidak dapat menjamin subtyping perilaku dalam konteks
apapun. Perilakusubtyping 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 sebagaiprinsip substitusi Liskov .
2.
Pola Desain Gang Empat
Design Patterns: Elements of Reusable Object-OrientedSoftware 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:
a. Mencipta
Pola : Pola
Metode Pabrik, Pabrik
Abstrak Pola, Pola
Singleton, Builder Pola, dan Pola
Prototype.
b. Struktural
Pola : Pola Adapter, Bridge Pola, Pola Komposit,dekorator Pola, Pola Facade, kelas
Terbang Pola, dan Pola Proxy.
c. 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.
3.
Obyek Orientasi dan Database
Kedua pemrograman
berorientasi obyek dan sistem manajemen database relasional (RDBMSs) sangat
umum dalam perangkat lunak saat ini. Karena database
relasional tidak menyimpan objek langsung (meskipun
beberapa RDBMSs memiliki fiturberorientasi 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.
4.
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 Negatifbagian) atau bahwa
pemetaan dunia nyata bahkan tujuan yang layak.Bertrand Meyer berpendapat di Object-Oriented Software
Konstruksibahwa 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.
5.
Desain OOP dan Flow Control
OOP dikembangkan untuk meningkatkan reusabilitas danmaintainability dari source
code. Representasi transparan aliran kontrol tidak memiliki prioritas dan
dimaksudkan untuk ditangani olehcompiler. Dengan meningkatnya
relevansi paralel dan perangkat kerasmultithreaded coding, pengembang kontrol
aliran transparan menjadi lebih penting, sesuatu yang keras untuk mencapai
dengan OOP.
6.
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.
E. Kritik Para Ahli
Mengenai OOP
Sejumlah peneliti terkenal dan
programmer telah menganalisisutilitas dari OOP, antara lain :
1. Richard Stallman menulis pada tahun 1995, dia
menambahkan bahwa OOP untuk Emacs 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”.
2. Sebuah studi oleh
Potok et al. telah menunjukkan tidak ada perbedaan yang
signifikan dalam produktivitas antara OOP dan pendekatan prosedural.
3. 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 tipe untuk mendukung RDBMS.
4. 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.
5. 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.
6. 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”.
7. 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”.
8. 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.
9. Carnegie-Mellon University Profesor Robert Harper Maret 2011
menulis: “Dan semester ini Licata dan aku mengajar kursus baru dipemrograman fungsional untuk 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
A. Kesimpulan
Dari makalah di atas penyusun dapat
mengambil kesimpulan :
Pemrograman Berorientasi Objek (Object
Oriented Programmingatau 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 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. Desain pola OOP antara lain
: 1) Warisan dan Perilaku Subtyping, 2) Pola Desain Gang
Empat, 3) Obyek Orientasi danDatabase, 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, Potoket al., Christopher J. Tanggal, Alexander Stepanov, Paul Graham, Joe Armstrong, Richard Mansfield, Rich Hickey, dan Carnegie-Mellon University Profesor Robert Harper.
B. 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.
Dalam OOP ada bagian2 yang harus kita pahami terlebih dahulu yaitu,
1. Class
2.Constructor
3. Method
Nah, Apaan tuh? haha mari kita bahas bersama-sama..
Class merupakan tahap awal kita dalam pengerjaan untuk membuat suatu program. Sebenarnya dala Java setiap kita membuat program pasti sudah ada Class Utama yang otomatis tergenerate. Akan tetapi kita butuh membuat class baru untuk membuat suatu program berorientasi objek, sehingga kita hanya melakukan pemanggilan objek dari class yang kita panggil.
nah, sekarang kita sudah tau apa kelas utama itu. Sekarang kita lanjut ke pembuatan class yang nantinya class ini akan di panggil di class Utama. Berikut Contoh class sedrhana dari class Persegi.
Class persegi diatas memiliki atribut p dan l yang merupakan Panjang dan Lebar, sehingga class bisa disebut juga sebagai Entitas Program.
Class sudah , sekarang kita lanjut ke Constructor
Constructor merupakan method yang secara khusus didefinisikan pada class dan akan dipanggil secara otomatis setiap ada instansiasi objek. Loh? maksudnya? hahaha atau lebih mudahnya fungsi dari constructor adalah untuk menginisialisasikan nilai yang terdapat pada kelas bersangkutan. Ada 2 jenis constructor, berparameter dan tidak berparameter. Dalam pembuatan constructor penamaanya harus sama dengan nama class yang kita buat.
Gambar diatas merupakan constructor tanpa parameter yangmenginisialisasikan nilai dari variabel p dan l. lalu ada lagi jenis constructor yang lain yakni berparameter.
Gambar diatas merupakan constructor yang berparameter. Nah pasti rejan2 semua melihat kata this? jika masih belum tau ,itu merupakan kata kunci untuk menyamakan variabel yang ada dalam parameter maupun yang global.
Sekarang Kita Lanjut Ke Method
Method merupakan Tempat dimana listing program disimpan. Ada 2 macam method dalam java yaitu,
1. Void
2. Non – Void
Void merupakan method yang tidak mengembalikan nilai, bagi Developer Delphi/Pascal ini sama saja seperti prosedure. sama seperti constructor, void juga bisa mengandung parameter.
Non – Void merupakan method yang mengembalikan nilai / Return By Value . ini sama saja seperti function dalam bahasa pemrogramanlain seperti delphi/pascal/vb.
Nah sekarang tinggal buat deh contoh program nya ! kita belajarnya
saya akan coba kasih contoh program sederhana berbasis OOP agar lebih poll
Berikut Contoh Program Luas Persegi Panjang Berbasis OOP :
Hasilnya :
Semoga Bermanfaat ^_^
Daftar Pustaka
kembangkan lagi contoh programnya
BalasHapusTEN ATIT NAMCO - Titanium Wedding Bags | TheTitan Arts
BalasHapusTEN 2020 edge titanium ATIT titanium bar NAMCO. Contact details for 바카라 사이트 위너바카라 TEN titanium watch band ATIT NAMCO. 2016 ford fusion energi titanium