• Tidak ada hasil yang ditemukan

Pemrograman Berorientasi Objek (PBO)

N/A
N/A
Protected

Academic year: 2022

Membagikan "Pemrograman Berorientasi Objek (PBO)"

Copied!
43
0
0

Teks penuh

(1)

Pemrograman Berorientasi Objek (PBO)

E. Rizal, S.Kom., M.Kom

Semester Genap 2021/2022

Program Studi Informatika – Fakultas Teknik

Universitas Muammadiyah Prof. DR. Hamka (UHAMKA

)

(2)

Konsep Dasar Pemrograman

Berorientasi Objek

(3)

REFERENSI :

• The JavaTM Tutorial, https://docs.oracle.com/javase/tutorial/

• Cay Horstmann. Big Java Early Objects 5

th

edition. Wiley. USA

• Paul Deitel, Harvey Deitel. Java How to Program 9

th

edition. Prentice Hall. USA

• Rosa AS., M. Shalahuddin, Pemrograman Berorientasi Objek, Modula. 2010

• Ade Rahmat Iskandar, Menguasai Pemrograman Berorientasi Objek, Informatika,

2019

(4)

Paradigma Pemrograman :

• PARADIGMA PROSEDURAL (Terstruktur)

• PARADIGMA BERORIENTASI OBJEK

(5)
(6)

Paradigma Prosedural (Imperatif)

• Paradigma Prosedural atau dikenal juga dengan paradigma imperatif menggunakan metode pemrograman dengan mengeluarkan perintah yang akan dieksekusi oleh komputer.

• Baris demi baris dieksekusi secara berurutan mulai dari baris atas hingga bawah, dimana semua data dan kode digabung menjadi satu bagian dalam satu program

• Kata kunci dalam paradigma pemrograman ini adalah:

Algoritma + Struktur Data = Program

(7)

Keuntungan dan Kekurangan paradigma Terstruktur:

Keuntungan :

• kesederhanaan, efisiensi, dan keefektifan eksekusi barisan perintah program, karena sangat dekat dengan bahasa mesin.

• penulisan program memiliki struktur logika yang benar dan mudah

dipahami karena hanya memiliki 3 struktur dasar, yaitu struktur berurutan, struktur seleksi dan struktur perulangan.

Kekurangan :

• cara penulisan programnya sangat jauh dari “kebiasaan manusia” dan tidak alamiah, karena programmer harus memikirkan sampai dengan mana

batasan-batasan yang bisa dikerjakan oleh komputer.

• program cukup sulit untuk dirawat karena susah untuk diubah tanpa harus

mempengaruhi fungsi sistem secara keseluruhan.

(8)

Paradigma Object Oriented Programming (OOP)

• Paradigma OOP berdasarkan pada kelas dan objek dengan cara memodelkan semua hal seperti dalam dunia nyata.

• Paradigma ini menawarkan konsep modular, kemudahan untuk

digunakan kembali, dan kemudahan modifikasi.

(9)

Kelebihan dan Kelemahan paradigma OOP:

Kelebihan:

• dalam mendefinisikan sebuah class cukup sekali tidak perlu ditulis berulang kali.

• dapat menambahkan fitur pada class tanpa harus mengedit class asal,

• dapat menggunakan sebuah objek tanpa harus tahu teknis yang ada didalamnya,

• data dapat diatur secara private sehingga tidak berpengaruh pada fungsi lainnya,

• serta dapat membangun library-library yang dapat memudahkan programmer dalam membangun sebuah sistem informasi.

Kelemahan :

• membutuhkan ruang memori yang lebih besar dibandingkan dengan pemrograman terstruktur,

• karena sangat responsive maka program dapat dengan mudah diurai sehingga sulit

disembunyikan untuk kepentingan security.

(10)

NO Prosedural OOP OOP 1 Fokus utama pada fungsi dan prosedur yg

beroperasi pada data 1 Menekankan pada data yang sedang

beroperasi dan tidak fungsi atau prosedur 2 Program besar terbagi dalam program unit

kecil yg disebut fungsi 2 Program dibagai ke dalam apa yg disebut objek 3 Data dan fungsi diperlakukan sebagai entitas

terpisah 3 Data dan fungsi diperlakukan sebagai entitas

tidak terpisah 4 Data bebas bergerak di sekitar sistem dari satu

fungsi lain 4 Data tersembunyi dan tidak dapat di akses oleh

funsi eksternal

5 Data bersifat pasif 5 Objek ojek dalam oop bersifat aktif

6 Program desain dengan pendekatan “Top Down” yaitu tugas tugas komplek dipecah menjadi bagian yg lebih kecil, sampai sub tugas tersebut mudah diimplementasikan

6 Program desaian dengan pendekatan “Buttom UP” yaitu memuat prosedur prosedur untuk menyelesaikan tugas tugas sederhana ,

kemudian menggabungkan prosedur prosedur tersebut dalam prosedur yg lebih komplek.

Sampai fugsionalitas yg ingin tercapai.

(11)
(12)

Perbedaan OOP dan Terstrukur (prosedur)

No. OOP Prosedural

Pemrograman berorientasi objek (Object-Oriented Programming atau OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek.

Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.

Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya

Konsep utama dari Pemrograman Berbasis Objek terletak pada kondisi kode/line pemrogramanannya dimana merupakan sebuah kesatuan modular

sedangkan untuk line lebih dari 100 atau bisa dikatakan rumit, maka digunakan pemrograman berorientasi

objek.

terdiri dari pengkelompokan kode dengan data yang mana setiap objek berfungsi secara independen

sehingga untuk setiap perubahan kode tidak tergantung pada kode yang lainnya, atau lebih dikenal dengan

modular.

secara spesifik antara Pemrograman Berorientasi Objek dengan Pemrograman Terstruktur, yaitu pada kelas dan objek

sebuah cara pemrosesan data yang terstruktur dalam analisa, cara dan penulisan

pemrograman. Dikarenakan harus terstruktur sehingga dalam pembuatannya antara satu line pemrograman dengan yang lainnya berhubungan.

Untuk program yang simpel/sederhana biasanya menggunakan pemrograman terstruktur karena masih mudah dan tidak banyak dilakukan perubahan yang berarti, terdiri dari pemecahan masalah yang besar menjadi masalah yang lebih kecil dan

seterusnya (modular).

tidak terdapat kelas dan objek.

(13)

Kelebihan dan kekurangan OOP dan Prosedural

OOP PROSEDUR

Maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyek mengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.

Pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang

dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program

misalnya.

Dapat digunakannya obyek-obyek sesering yang

diinginkan, kita dapat menyimpan obyek-obyek yang yang dirancang dengan baik ke dalam sebuah tolkit rutin yang bermanfaat yang dapat disisipkan kedalam kode yang baru dengan sedikit perubahan atau tanpa perubahan pada kode tersebut.

sangat cocok sekali digunakan dalam kasus

pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram

pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien dan lebih murah dalam hal perawatannya

tetapi permodelan ini lebih susah untuk dipahami

oleh orang – orang selain pembuat program itu sendiri (contohnya ketika dlakukan tracing program).

(14)

OOP atau Tersrukur ?

• tergantung dari kebutuhan dan dari sudut pandang mana anda melihatnya.

• Yang perlu anda ingat adalah tujuan dari pemodelan itu sendiri, yang mana agar pada akhir proyek sistem dapat diperoleh sistem informasi yang memenuhi kebutuhan pemakai, tepat waktu dan sesuai

anggaran, serta mudah digunakan, dimengerti dan dipelihara.

• Pemrograman Terstruktur fokus pada bagaimana cara komputer

menangani masalah, sedangkan Pemrograman Berorientasi Objek

fokus pada masalah yang ditangani dengan menggunakan komputer.

(15)

Perbedaan mendasar :

OOP PROSEDURAL

bentuk pemodelan programnya diorientasikan dalam bentuk objek – objek

Konsep dasar pemrograman berorientasi objek dikelompokkan kedalam kelas, objek, abstraksi, enkapulasi dan Polimorfisme melalui pengiriman pesan

UML (Unified Modeling Language ) adalah contoh salah satu bahasa pemrograman yang berkonsepkan OOPdalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut.

Object oriented menggunakan “method”

OOP sering didengar mengenai “objects”

“message” pada OO

“attribute” pada OO

pemodelan programnya diuraikan dan diorganisasikan secara lebih detail.

konsep dasar pemrograman terstruktur harus

mengandung teknik pemecahan masalah yang tepat dan benar, memiliki algoritma pemecahan masalah yang sederhana, standar dan efektif, penulisan

program memiliki struktur logika yang benar dan mudah dipahami,

program hanya memiliki 3 struktur dasar, yaitu : Struktur berurutan, struktur seleksi, dan struktur pengulangan, Menghindari penggunaan pernyataan GOTO, Memiliki dokumentasi yang baik.

DFD dan ERD adalah contoh bahasa pemrograman yang berkonsepkan pemrograman secara terstruktur.

Dalam memecahkan masalah : menggunakan

prosedur/tata cara yang teratur untuk mengoperasikan data struktur

terstruktur menggunakan “function”.

terstruktur kita mengenalnya dengan ” modules”

“variabel” pada pemrograman terstruktur.

(16)

Metode Perancangan OOP dan Terstruktur

OOP TERSTRUKTUR / PROSEDURAL

Perancangan Berbasis Objek (Object-oriented Analysis and Design / OOAD)

Metode OOAD melakukan pendekatan terhadap masalah dari perspektif obyek, tidak pada perspektif fungsional seperti pada pemrograman terstruktur.

Kelebihan:

Dibandingkan dengan metode SSAD, OOAD lebih mudah digunakan dalam pembangunan sistem

Dibandingkan dengan SSAD, waktu pengembangan, level organisasi, ketangguhan,dan penggunaan kembali (reuse) kode program lebih tinggi dibandingkan dengan metode OOAD (Sommerville, 2000).

Tidak ada pemisahan antara fase desain dan analisis, sehingga meningkatkan komunikasi antara user dan developer dari awal hingga akhir pembangunan sistem.

Analis dan programmer tidak dibatasi dengan batasan implementasi sistem, jadi desain dapat diformliasikan yang dapat dikonfirmasi dengan berbagai lingkungan eksekusi.

Relasi obyek dengan entitas (thing) umumnya dapat di mapping dengan baik seperti kondisi pada dunia nyata dan keterkaitan dalam sistem. Hal ini memudahkan dalam mehami desain

(Sommerville, 2000).

Memungkinkan adanya perubahan dan kepercayaan diri yang tinggi terhadap kebernaran software yang membantu untuk mengurangi resiko pada pembangunan sistem yang kompleks (Booch, 2007).

Encapsliation data dan method, memungkinkan penggunaan kembali pada proyek lain, hal ini akan memperingan proses desain, pemrograman dan reduksi harga.

OOAD memungkinkan adanya standarisasi obyek yang akan memudahkan memahami desain dan mengurangi resiko pelaksanaan proyek.

Dekomposisi obyek, memungkinkan seorang analis untuk memcah masalah menjadi pecahan-

pecahan masalah dan bagian-bagian yang dimanage secara terpisah. Kode program dapat dikerjakan bersama-sama. Metode ini memungkinkan pembangunan software dengan cepat, sehingga dapat segera masuk ke pasaran dan kompetitif. Sistem yang dihasilkan sangat fleksibel dan mudah dalam memelihara.

Perancangan Terstruktur (Structured Analisys and Design / SSAD)

Perancangan ini bertujuan untuk membuat model SOLUSI terhadap PROBLEM yang sudah dimodelkan secara lengkap pada tahap analisis terstruktur.

Kelebihan:

Milestone diperlihatkan dengan jelas yang memudahkan dalam manajemen proyek

SSAD merupakan pendekatan visual, ini membuat metode ini mudah dimengerti oleh pengguna atau programmer.

Penggunaan analisis grafis dan tool seperti DFD menjadikan SSAD

menjadikan bagus untuk digunakan.

SSAD merupakan metode yang diketahui secara umum pada berbagai industry.

SSAD sudah diterapkan begitu lama sehingga metode ini sudah matang dan layak untuk digunakan.

SSAD memungkinkan untuk melakukan validasi antara berbagai kebutuhan

SSAD relatif simpel dan mudah dimengerti.

(17)

Metode Perancangan OOP dan Terstruktur - NEXT

OOP TERSTRUKTUR / PROSEDURAL

Kekurangan:

Pada awal desain OOAD, sistem mungkin akan sangat simple.

• Pada OOAD lebih fockus pada coding dibandingkan dengan SSAD.

• Pada OOAD tidak menekankan pada kinerja team seperti pada SSAD.

• Pada OOAD tidak mudah untuk mendefinisikan class dan obyek yang dibutuhkan sistem.

• Sering kali pemrogramam berorientasi obyek digunakan untuk melakukan anlisisis terhadap fungsional siste, sementara

metode OOAD tidak berbasis pada fungsional sistem.

• OOAD merupakan jenis manajemen proyek yang tergolong baru, yang berbeda dengan metode analisis dengan metode

terstruktur. Konsekuensinya adalah, team developer butuh waktu yang lebih lama untuk berpindah ke OOAD, karena mereka sudah menggunakan SSAD dalam waktu yang lama ( Hantos, 2005).

• Metodologi pengembangan sistem dengan OOAD menggunakan konsep reuse. Reuse merupakan salah satu keuntungan utama yang menjadi alasan digunakannya OOAD. Namun demikian, tanpa prosedur yang emplisit terhadap reuse, akan sangat sliit untuk menerapkan konsep ini pada skala besar (Hantos, 2005).

Kekurangan:

SSAD berorientasi utama pada proses, sehingga mengabaikan kebutuhan non-fungsional.

• Sedikit sekali manajemen langsung terkait dengan SSAD

• Prinsip dasar SSAD merupakan pengembangan non- iterative (waterfall), akan tetapi kebutuhan akan berubah pada setiap proses.

• Interaksi antara analisis atau pengguna tidak

komprehensif, karena sistem telah didefinisikan dari awal, sehingga tidak adaptif terhadap perubahan (kebutuhan-kebutuhan baru).

• Selain dengan menggunakan desain logic dan DFD, tidak cukup tool yang digunakan untuk

mengkomunikasikan dengan pengguna, sehingga sangat sliit bagi pengguna untuk melakukan

evaluasi.

• Pada SAAD sliit sekali untuk memutuskan ketika ingin menghentikan dekomposisi dan mliai

membuat sistem.

• SSAD tidak selalu memenuhi kebutuhan pengguna.

(18)

Bahasa pemrograman yang mendukung OOP antara

lain: Bahasa pemrograman yang mendukung

pemrograman terstruktur:

• Visual Foxpro

• Java

• C++

• Pascal (bahasa pemrograman)

• Visual Basic.NET

• SIMULA

• Smalltalk

• Ruby

• Python

• PHP

• C#

• Delphi

• Eiffel

• Perl

• Adobe Flash AS 3.0

• Cobol Turbo Prolog

• C

• Pascal

• Delphi

• Borland Delphi

(19)

Pemrograman Terstruktur Pemrograman Berorientasi Objek

Memecah program dalam fungsi dan data Menggabungkan fungsi dan data dalam kelas – kelas atau objek - objek

Memiliki ciri Sequence (berurutan), Selection (pemilihan) dan Repetition (perulangan)

Memiliki ciri Encapsulation (pengemasan), Inheritance (penurunan sifat) dan Polymorphism (perbedaan bentuk dan perilaku)

Struktur program rumit karena berupa urutan proses dan fungsi-fungsi

Struktur program ringkas, cukup dengan membuat Objek dan class lalu bekerja berdasarkan object dan class tersebut.

Re-use kode program kurang Kode program sangat re-usable. object dan class dapat digunakan berkali-kali, sehingga dapat menghemat space memori.

Efektif digunakan untuk menyelesaikan masalah kecil dan tidak cocok untuk menyelesaikkan masalah yang rumit, karena nantinya akan kesulitan menemukan solusi permasalahan ketika terjadi error

Efektif digunakan untuk menyelesaikan masalah besar, karena OOP terdiri dari class-class yang memisahkan setiap kode program menjadi kelompok - kelompok kecil, sesuai dengan fungsinya

Mudah diawal, namun kompleks diproses selanjutnya Sulit diawal (karena harus membuat class) namun selanjutnya akan terasa mudah dan cepat

Eksekusi lebih lambat karena setiap perintah dikerjakan berurutan

Eksekusi lebih cepat karena dieksekusi bersamaan, program hanya mengatur Objek, properties dan method-nya saja

(20)
(21)

OOP (JAVA) PROSEDURAL (PASCAL)

public class segitigaDgnOOP {

private int alas;

private int tinggi;

public void setAlas(int alas) {this.alas = alas;}

public void setTinggi(int tinggi) {this.tinggi = tinggi;}

public int getAlas() {return alas;}

public int getTinggi() {return tinggi;}

public double hitungLuas() {

double luas;

luas=0.5*alas*tinggi;

return luas;

} }

Program HitungLuasSegitiga;

Uses wincrt;

Var

alas, tinggi : integer luas : Real;

Begin

Alas := 10;

Tinggi := 5;

Luas := 05. * alas * tinggi;

Writeln(luas);

End.

(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)

DEFINISI PBO:

• [Meyer98]: sebuah sistem dibangun berdasarkan metode berorientasi objek adalah sebuah sistem yg komponennya di-enkapsulasi menjadi kelompok data dan fungsi, yg dapat mewarisi atribut dan sifat dari komponen lainnya, dan komponen-komponen tersebut saling

berinteraksi satu sama lain.

(30)

DEFINISI PBO (Next)

• Pemrograman berorientasi objek adalah metode pemrograman

berdasarkan hirarki kelas, dimana kelas-kelas tersebut didefinisikan dengan baik dan bisa saling bekerja sama untuk memecahkan

masalah.

(31)
(32)
(33)
(34)
(35)
(36)
(37)

CLASS ( Kelas)

• Merupakan definisi statik (kerangka dasar) dari objek yg akan diciptakan.

• Berupa struktur yg mendefinisikan data (property) dan method dari objek.

• Bisa disebut cetak biru (blue print) dari objek

• Bisa disebut gambaran umum dari benda

• Contoh penamaan kelas : Mobil, Laptop, Anggota, Buku, dll.

(38)

PROPERTY

• Merupakan data atau state yg dimiliki oleh class

Contoh Pada class mobil, memiliki Property:

• Warna

• Model

• Produsen

Contoh lain, class anggota memiliki property: nomor anggota, nama,

alamat, telp, daftar buku yg dipinjam

(39)

METHOD

• Merupaka behavior (perilaku) sebuah class

• Bisa dikatakan sebagai aksi atau tidakan yg bisa dilakukan oleh suatu class

Contoh Pada class mobil, memiliki method:

• Start

• Stop

• Change Gear

• Turn

(40)

DISKUSI

• Deskripsikanlah objek objek yang terlibat beserta property dan

method-method nya pada sistem penerimaan mahasiswa baru.

(41)

Contoh pembuatan Class pada Bahasa Pemrograman Java

(42)

OBJEK

• Merupakan abstraksi dari sesuatu yg mewakili sesuatu pada dunia nyata

• Pada bahasa pemrograman, objek adalah komponen yg diciptakan dari class ( instance of class)

• Merupakan entitas pada saat Run Time

• Memiliki siklus creation, manipulation, dan destruction.

• Satu class bisa menghasilkan banyak objek

(43)

Contoh Objek pada Bahasa Java:

public class MainProgram {

public static void main (String[] args) {

} }

• Dua baris yg di highlight di atas merupakan contoh pembuatan objek

myCar dan objek yourCar dari class Car.

Referensi

Dokumen terkait

Plant Growth Promoting Rhizobacteria (PGPR) pertama kali didefinisikan oleh Kloepper dan Schroth (1978) untuk mendeskripsikan bakteri tanah yang berkumpul di akar setelah

Variasi polymer yang digunakan adalah 0%, 2%, 4% dan 6% dari berat semen, dan dari percobaan akan diperoleh data perubahan panjang (ΔL) kemudian dianalisis dan

Berdasarkan hasil analisis statistik jamur tiram yang ditambahkan dapat meningkatkan kadar protein pada es krim, tetapi pada es krim dengan penambahan jamur tiram

Ruangan yang cukup baik untuk digunakan sebagai tempat pengasapan ikan adalah ruangan yang mempunyai suhu dan kelembaban yang rendah.. Suhu dan kelembaban yang rendah

Penelitian ini bertujuan untuk menentukan sebaran lokasi penanaman bawang merah lokal Samosir berdasarkan ketinggian tempat di Daerah Tangkapan Air Danau Toba.. Penelitian

Pelelangan dilakukan melalui pemilihan penyedia barang/jasa dengan melihat kriteria dan subkriteria yang berdasarkan dari Peraturan Presiden No.54 Tahun 2010 tentang

abelii Lesson, 1827) DI STASIUN PENELITIAN HUTAN BATANG TORU BAGIAN BARAT TAPANULI UTARA” didedikasikan untuk Ayah dan Ibu tercinta yang selalu mendukung

Kebakaran-kebakaran yang sering terjadi digeneralisasi sebagai kebakaran hutan, padahal sebagian besar (99,9%) kebakaran tersebut adalah pembakaran yang sengaja