Laporan Praktikum Bahasa Pemrograman 1 Modu 6 "Pemrograman Berorientasi Objek"
LAPORAN PRAKTIKUM
BAHASA PEMROGRAMAN 1
MODUL 6
“PEMROGRAMAN BERORIENTASI OBJEK”
Dosen :
Dede Irawan, M.Kom
Disusun Oleh:
Nama :
Meira Jamilah
NIM :
20180910026
Prodi
: Sistem Informasi 2018 A
SISTEM INFORMASI
FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN
2019
Kata Pengantar
Puji syukur kita panjatkan kehadirat
Allah SWT, karena atas rahmat dan karunia-Nya penulis dapat menyelesaikan
Laporan Praktikum Bahasa Pemrograman 1 “Pemrograman Berorientasi Objek”. Adapun
tujuan penulisan Laporan praktikum ini adalah untuk memenuhi tugas mata kuliah
bahasa pemrograman 1. Penulisan Laporan Praktikum ini dimaksudkan
sebagai penambah wawasan pembaca khususnya pada mata kuliah Bahasa pemograman 1 tentang pemrograman
berorientasi objek pada java.
Meskipun dalam penyusunan Laporan ini
penulis banyak menemukan kesulitan.Akan tetapi karena dorongan dan motivasi
dari berbagai pihak laporan praktikum ini dapat terselesaikan tepat pada
waktunya.
Penulis menyadari bahwa pada penulisan
laporan praktikum ini masih terdapat kekurangan.Oleh karena itu, penulis
mengharapkan kritik dan saran yang sifatnya membangun.
Dan semoga laporan praktikum ini dapat
bermanfaaat bagi semua pihak yang membacanya (aamiin).
Kuningan,17 Desember 2019
Penulis
DAFTAR
ISI
KATA PENGANTAR.............................................................................................................. i
DAFTAR ISI......................................................................................................................... ii
BAB I : PENDAHULUAN...................................................................................................... 1
A. Latar Belakang.......................................................................................................... 1
B. Rumusan Masalah.................................................................................................... 1
C. Tujuan....................................................................................................................... 1
BAB II : PEMBAHASAN....................................................................................................... 2
A. Pengertian PBO(Pemrograman
Berorientasi Objek)................................................ 2
B. Konsep Dasar dari
Pemrograman Berorientasi Objek (OOP)................................... 2
1. Kelas..................................................................................................................... 2
2. Object................................................................................................................... 2
3. Atribut.................................................................................................................. 2
4. Method................................................................................................................ 2
5. Enkapsulasi............................................................................................................ 3
6. Polimorfisme........................................................................................................ 3
7. Inheritance............................................................................................................ 3
C. Bahasa yang mendukung
OOP..................................................................................... 4
D. Desain
Pola OOP....................................................................................................... 6
E. Pre
Test..................................................................................................................... 6
F.
Pembahasan Hasil Praktikum................................................................................... 7
G. Post
Test................................................................................................................... 9
BAB III : PENUTUP............................................................................................................... 11
A. Kesimpulan............................................................................................................. 11
B. Saran....................................................................................................................... 11
DAFTAR PUSTAKA............................................................................................................ 12
BAB I
PENDAHULUAN
A.
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.
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?
C. Tujuan
1. Dapat mengetahui pengertian
OOP (Object Oriented Programming) secara umum.
2. Dapat memahami konsep dasar
dari pemrograman berorientasi objek (OOP).
BAB II
PEMBAHASAN
A.
Pengertian OOP (Object
Oriented Programming)
Pemrograman
berorientasi objek (Inggris: object-oriented programming disingkat OOP)
merupakan paradigma pemrograman yang berorientasikan kepada objek. 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,
Model data
berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan
mengubah program, dan digunakan luas dalam teknik peranti 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. 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
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.
Object
Object berfungsi membungkus data
dan fungsi bersama menjadi suatu unit dalam sebuah program komputer. Objek
merupakan 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 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 menggunakan OOP maka dalam
melakukan pemecahan suatu masalah kita tidak 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.
C. Bahasa Pemrograman Yang Mendukung OPP
Bahasa pemrograman yang mendukung OOP
antara lain:
1.
Visual Foxpro
2.
Java
3.
C++
4.
Pascal
5.
Simula
6.
Smalltalk
7.
Ruby
8.
Python
9.
PHP
10.
C#
11.
Delphi
12.
Eiffel
13.
Perl
14.
Adobe Flash AS 3.0
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 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 .
2.
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 men2.
ggambarkan 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 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.
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
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.
5.
Desain OOP dan Flow Control
OOP dikembangkan untuk
meningkatkan reusabilitas dan maintainability dari 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.
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. PRE TEST
1. Apa yang dimaksud dengan pemrograman
berorientasi objek ?
2. Buatkan contoh Class dan Objek
Jawab :
1. Pemrograman berorientasi objek (Inggris:
object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang
berorientasikan kepada objek. 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,
2. contoh Class dan Objek
package modul6;
class Mobil{
String Warna;
int TahunProduksi;
}
public class Latihan_01 {
public static void main(String[]
args) {
Mobil mobilku=new Mobil();
mobilku.Warna="Merah";
mobilku.TahunProduksi=2003;
System.out.println("Warna :
"+ mobilku.Warna);
System.out.println("Tahun : "+
mobilku.TahunProduksi); }
}
E. PRAKTIKUM
Latihan 1
1. Buat Project
Baru dengan nama Modul_05, tambahkan satu buah java class, beri nama
Latihan_01.java dan lengkapi kode programnya seperti berikut :
Hasil run :
Latihan 2
1. Tambahkan satu
buah java class, beri nama Latihan_02.java dan lengkapi kode programnya seperti
berikut :
Hasil run :
A. LATIHAN/POSTEST
1. Buatlah class yang
mengimplementasikan fungsi-fungsi statistic sederhana yaitu rata-rata dan
standar deviasi. Kelas ini mempunyai dua data yaitu jumlah (jumlah data) dan
data (Larik yang mempunyai data). Method yang dimiliki ada lima yaitu
konstruktor,BacaData,TulisData,RataRata, dan StandarDeviasi.
Kode program :
Hasil run :
BAB III
PENUTUP
A. Kesimpulan
Jadi OOP
(Object Oriented Programming) atau Pemrograman berorientasi objek adalah
paradigma pemrograman yang berorientasikan kepada objek. Dan semua data dan
fungsi di dalam paradigm ini di bungkus dalam kelas-kelas atau objek-objek. Dan
komponen-komponen penyusun OOP pada java yaitu : Kelas, Atribut, Method,
Enkapsulasi, Dan Inheritance.
B. Saran
Dalam
pembuatan makalah ini, saya merasa ada banyak kekurangan baik itu dari segi
penulisan, tata letak penyajian maupun kosa kata yang mungkin agak kurang
proporsional. Untuk itu bagi yang membaca makalah saya ini, bila anda menemui
suatu kejanggalan, kekurangan atau sesuatu hal yang kurang pas saya mohon untuk
memberi saran atau masukan yang membangun dan bermanfaat dari anda sekalian.
Saran dari anda yang membaca makalah ini sangat bermanfaat dan dapat membantu
menyempurnakan makalah yang kurang sempurna ini
DAFTAR
PUSTAKA
Modul Praktikum Bahasa Pemrograman 1 (2017), Kuningan,.
Kom-UNIKU.
https://medium.com/@wisnukurniawan/pengenalan-konsep-penyusun-oop-pada-java-programming-f3083522954c
Komentar
Posting Komentar