Anda di halaman 1dari 28

Object Oriented

Programming
Introduction
Untuk semua peserta kelas PBO, harap
memunculkan video pada saat kelas
berlangsung dan mute microphone
(kecuali diijinkan dosen), yang tidak
memunculkan video akan dianggap tidak
hadir

Dosen Pengampu
Kontrak Kuliah
• Tugas & Quiz (Jawab Pertanyaan) = 60%
• Kehadiran = 10%
• Ujian = 30%

Kuliah berbasis skill, mahasiswa aktif mempelajari


materi dan ditunjukkan di dalam kelas saat
perkuliahan
Paradigma Pemrograman &
Model Komputasi
• Paradigma menurut KBBI : model dalam teori ilmu
pengetahuan; kerangka berpikir
• Paradigma pemrograman = paradigma model
komputasi.
• Paradigma pemrograman adalah bentuk
pemecahan masalah mengikuti aliran atau “genre”
tertentu dari program dan bahasa.
Paradigma Pemrograman &
Model Komputasi
Empat paradigma pemrograman yang sangat mendasar dan berbeda
pada tiga dekade
terakhir adalah:
• Imperative programming
• Object-oriented programming
• Functional programming
• Logic programming

Beberapa bahasa dirancang mendukung lebih dari satu paradigma.


Sebagai contoh, C++ merupakan campuran antara bahasa imperative dan
object- oriented, sedangkan Leda dirancang untuk mendukung paradigma
pemrograman imperative, object-oriented, functional, dan logic.
Imperative Programming
• Merupakan paradigma pemrograman paling tua
• Pada model ini, program dan variabelnya disimpan
bersama, dan program terdiri atas perintah-
perintah yang membentuk perhitungan,
penyimpanan nilai ke variabel, membaca input,
menghasilkan output, atau mengarahkan kontrol
dari deret instruksi dalam program.
Imperative Programming
• Abstraksi prosedural/terstruktur membentuk blok
untuk imperative programming, misalnya
penugasan (assignment), pengulangan (loop),
sekuensial, pernyataan kondisi, dan penanganan
pengecualian (exception handling).
• Bahasa Pemrograman yang masuk ke dalam
paradigma ini antara lain Cobol, Fortran, C, Ada,
dan Perl.
Object-Oriented Programming
(OOP)
• Menyediakan model dimana program merupakan
kumpulan obyek yang berinteraksi satu sama lain.
• Program dalam OOP membungkus (encapsulate)
data dan fungsi (atau prosedur) dalam suatu obyek
yang umumnya diimplementasikan sebagai suatu
kelas (class).
• Klasifikasi obyek, pewarisan, dan message passing
merupakan prinsip- prinsip dasar dalam OOP.
• Bahasa yang mendukung OOP antara lain Smalltalk,
C++, Java, dan C#.
Functional Programming
• Memodelkan suatu masalah komputasi sebagai kumpulan fungsi
matematiks, dimana setiap input merupakan domain atau
daerah fungsi, dan output berupa range atau wilayah fungsi.
• Hal ini menjadikan functional programming sebagai bagian dari
bahasa yang tidak membenarkan pernyataan penugasan, seperti
x = x + 1, yang tidak berlaku baik pada functional programming
maupun dalam matematika.
• Fungsi berinteraksi dengan yang lain menggunakan komposisi
fungsi, kondisional, dan rekursif.
• Bahasa pemrograman yang masuk dalam kelompok ini adalah
Lisp (List Programming), Scheme, Haskell, dan ML
(MetaLanguage).
Logic Programming
• Disebut sebagai declarative programming
memodelkan masalah dengan menggunakan
bahasa deklaratif, yang diimplementasikan dalam
bentuk fakta dan aturan.
• Maka dari itu, bahasa ini juga disebut sebagai rule-
based languages.
• Contoh bahasa pemrograman kelompok ini adalah
Prolog (Programming in Logic).
Pemrograman Terstruktur?
• Adalah suatu proses untuk mengimplementasikan urutan langkah
untuk menyelesaikan suatu masalah dalam bentuk program.
• Selain pengertian diatas Pemrograman Terstruktur adalah suatu
aktifitas pemrograman dengan memperhatikan urutan langkah-
langkah perintah secara sistematis, logis , dan tersusun berdasarkan
algoritma yang sederhana dan mudah dipahami.
• Prinsip dari pemrograman terstruktur adalah Apabila kita sudah
sampai pada langkah tertentu, kita tidak boleh mengeksekusi
langkah sebelumnya. Hal ini dikecualikan pada langkah-langkah
untuk proses berulang.
• Bahasa pemrograman yang mendukung pemrograman terstruktur:
Cobol, Prolog, C, Pascal, Delphi, Borland Delphi, dan lain-lain.
Prosedural VS OOP
Bahasa Prosedural
• Serangkaian tugas diselesaikan dalam bentuk fungsi
atau prosedur.
• Cara pandang  program adalah suatu urutan
instruksi.
• Programer harus me-break down suatu problem
menjadi sub problem yang lebih simple.
• Fungsi dan prosedur menjadi fokus utama.
• Fungsi dan prosedur digunakan untuk memanipulasi
data.
• Data bersifat pasif.
Pemrograman Prosedural

F(1)

A
F(2)
B

C
….
Pemrograman Berorientasi Obyek
• Fungsi dan data bukan menjadi dua hal yang
terpisah.
• Fungsi dan data menjadi satu kesatuan yang
disebut sebagai obyek aktif.
• Cara pandang  program adalah serangkaian
obyek yang bekerjasama untuk menyelesaikan
suatu problem.
Pemrograman berorientasi obyek

F(1)

F(2)
….
Konsep OOP
Apa itu Obyek (Object)
• Semua benda yang ada di dunia nyata dapat
dianggap sebagai obyek.
• Contoh : rumah, mobil, sepeda motor, gelas,
komputer, meja dll.
• Object dalam OOP juga dapat
merepresentasikan object dalam dunia
nyata.
Object
• Setiap obyek memiliki atribut / properti / state.
• Setiap obyek memiliki tingkah laku / method /
function
• Contoh: obyek sepeda
• Memiliki atribut : warna, jumlah roda, merk, dll.
• Memiliki method  : mempercepat, melambat,
perpindahan gigi sepeda, berhenti, dll
Object
• Penggambaran pemrograman
berorientasi obyek = penggambaran
pada dunia nyata.
• Pada pemrograman berorientasi obyek:
• Atribut (state) disimpan pada  variabel
• Tingkah laku disimpan pada  method
OOP Characteristics
Suatu program disebut pemrograman berbasis obyek
(OOP) karena diantaranya terdapat :
• Kelas
• Objek
• Encapsulation (pembungkusan)
• Inheritance (pewarisan)
• Polymorphism (polimorfisme –perbedaan bentuk)
Kelas (Class)
• Definisi class: merupakan template/ prototipe /
blue prints yang mendefinisikan variabel dan
method secara umum untuk membuat object.
• Obyek merupakan hasil instansiasi dari suatu kelas.
• Proses pembentukan obyek dari suatu class disebut
dengan instantiation.
• Obyek disebut juga instances di dalam OOP
Class and Object
Class in UML
Class in Java
Kelebihan OOP

• Reusabilitas
• Fleksibilitas lebih tinggi
• Ekstensibilitas
• Less maintenance
Istilah-istilah dalam OOP
• Enkapsulasi  menyembunyikan struktur
data dan implementasi suatu class.
• Inheritansi  merepresentasikan
keterhubungan struktural antar class
• Polymorphism  kemampuan untuk
merepresentasikan 2 bentuk obyek yang
berbeda
• And more..
Terima Kasih
• Next programming with Java SE…

Anda mungkin juga menyukai