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. 



Komentar

Postingan populer dari blog ini

Laporan Praktikum Bahasa Pemrograman 1 Modul 1 "Pengenalan Java"

Laporan Praktikum Bahasa Pemrograman 1 Modul 4 "Statement Perulangan"

Laporan Praktikum Bahasa Pemrograman 1 Modul 5 "Array"