Post on 15-Apr-2017
I Putu Arya Dharmaadi, S.T., M.T.
Dosen Jurusan Teknologi Informasi
Universitas Udayana
http://aryadharmaadi.com
Pendahuluan: Pemrograman Prosedural Pada kuliah pemrograman dengan menggunakan
bahasa C, telah diajarkan pembuatan program secara prosedural
Pemrograman prosedural adalah pembuatan program dengan memberikan serangkaian instruksi yang berurutan secara top-down.
Pada pemrograman procedural, program dibedakan antara bagian data dengan bagian instruksi.
5 February 2016 http://aryadharmaadi.com 2
Prinsip Pemrograman Prosedural Penekanan utama pada sesuatu yang harus dikerjakan
secara berurutan
Jika program cukup besar, maka dibagi-bagi menjadi sub-sub program (fungsi atau prosedur) yang lebih kecil
Sebagian besar fungsi atau prosedur mengakses variabel global
5 February 2016 http://aryadharmaadi.com 3
Paradigma PBO Pemrograman Berorientasi Objek (PBO) BUKAN
merupakan bahasa pemrograman, tetapi merupakan sebuah paradigma (cara berpikir) baru dalam pembuatan sebuah program.
PBO menitikberatkan pada identifikasi objek-objek yang terlibat dalam sebuah program dan bagaimana objek-objek tersebut berinteraksi
5 February 2016 http://aryadharmaadi.com 5
Paradigma PBO (2) Pada PBO, program yang dibangun akan dibagi-bagi
menjadi objek-objek.
Perlu diidentifikasi tentang:
Objek yang apa yang akan digunakan,
Data apa saja yang dibutuhkan oleh objek tersebut,
Bagaimana perilaku dari objek tersebut,
Bagaimana komunikasi objek satu dengan objek yang lainnya sehingga bisa memecahkan masalah yang diinginkan
5 February 2016 http://aryadharmaadi.com 6
Contoh: Sistem Perpustakaan Class Diagram
5 February 2016 http://aryadharmaadi.com 7
Anggota
+Nomor_Anggota +Nama +Alamat +Telp +Daftar_Peminjaman Meminjam(Buku b) Mengembalikan(Buku b)
Buku
+Nomor_Buku +Judul +Penerbit +Kategori
Definisi PBO [Meyer98]: Sebuah sistem yang dibangun
berdasarkan metoda berorientasi objek adalah sebuah sistem yang komponennya di-enkapsulasi menjadi kelompok data dan fungsi, yang dapat mewarisi atribut dan sifat dari komponen lainnya, dan komponen-komponen tersebut saling berinteraksi satu sama lain.
5 February 2016 http://aryadharmaadi.com 8
Definisi PBO (2) Pemrograman berorientasi objek adalah metode
pemrograman berdasarkan hirarki kelas, dimana kelas-kelas tersebut didefinisikan dengan baik dan bisa saling bekerja sama untuk memecahkan masalah.
5 February 2016 http://aryadharmaadi.com 9
Class (Kelas) Merupakan definisi statik (kerangka dasar) dari objek
yang akan diciptakan.
Berupa struktur yang mendefinisikan data (property) dan method dari objek.
Bisa disebut cetak biru dari objek.
Bisa disebut gambaran umum dari benda
Contoh penamaan kelas: Mobil, Laptop, Anggota, Buku, dll
5 February 2016 http://aryadharmaadi.com 10
Property Merupakan data atau state yang 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 yang dipinjam
5 February 2016 http://aryadharmaadi.com 11
Method Merupakan behavior (perilaku) sebuah class
Bisa dikatakan sebagai aksi atau tindakan yang bisa dilakukan oleh suatu class
Contoh pada class Mobil, memiliki method:
Start
Stop
Change Gear
Turn
5 February 2016 http://aryadharmaadi.com 12
Diskusi Deskripsikanlah objek-objek yang terlibat beserta
property dan method-method-nya pada Sistem
Penerimaan Mahasiswa Baru
5 February 2016 http://aryadharmaadi.com 13
Object Merupakan abstraksi dari sesuatu yang mewakili
sesuatu pada dunia nyata
Pada bahasa pemrograman, object adalah komponen yang diciptakan dari class (instance of class)
Merupakan entitas pada saat RUN TIME
Memiliki siklus creation, manipulation, dan destruction
Satu class bisa menghasil banyak object
5 February 2016 http://aryadharmaadi.com 15
Contoh Object pada Bahasa Java
5 February 2016 http://aryadharmaadi.com 16
• Dua baris yang diarsir di atas merupakan contoh pembuatan object myCar dan yourCar dari kelas Car
Karakteristik Utama PBO Abstraksi
Enkapsulasi
Inheritance (pewarisan)
Polymorphism
5 February 2016 http://aryadharmaadi.com 17
Abstraksi Menunjukkan karakteristik atau sesuatu yang khas
dari sebuah objek yang bisa membedakannya dengan objek yang lain.
Dengan demikian akan terlihat batasan konseptual dari sebuah objek dari sudut pandang tertentu.
Contoh:
Pada sistem informasi perpustakaan, apakah membuat class Mahasiswa dan class Dosen atau membuat class Member saja?
Kasus toko sepeda, apakah membuat Class Sepeda atau Class Sepeda Balap dan Class Sepeda Gunung?
5 February 2016 http://aryadharmaadi.com 18
Abstraksi (2)
5 February 2016 http://aryadharmaadi.com 19
Sumber: https://programmingtutor4u.files.wordpress.com
Abstraksi (3) Dalam pengembangan aplikasi, abstraksi difokuskan
pada:
Hal atau sesuatu yang mana saja yang akan menjadi object?
Apa ciri-ciri pembeda (property) yang dimiliki object tersebut?
Bagaimana kelakuan (method) dari object tersebut?
5 February 2016 http://aryadharmaadi.com 20
Enkapsulasi Merupakan proses untuk menutupi semua detail dari
sebuah object yang tidak menyokong karakteristik khas dari object
Artinya, data property dan method-method dari object hasil abstraksi dibungkus oleh struktur class agar terlindungi
5 February 2016 http://aryadharmaadi.com 21
Enkapsulasi (2) Rincian implementasi internal suatu object dibuat
tersembunyi sehingga tidak bisa diketahui dan diakses oleh object lain
Object lain hanya bisa berkomunikasi dengan object tersebut melalui antarmuka (interface) yang disediakan oleh object tersebut
5 February 2016 http://aryadharmaadi.com 22
Enkapsulasi (3) Misal pada class Car, data variabel current_gear dibuat
private sehingga object lain tidak bisa mengakses variabel tersebut.
Object lain hanya bisa menjalankan method changeGear(int gear) tanpa mengetahui posisi gear saat sebelum diganti.
5 February 2016 http://aryadharmaadi.com 23
Inheritance (Pewarisan) Sebuah class bisa mewariskan atribut property-nya
dan method-nya ke class yang lain
Class yang mewarisi disebut superclass (kelas induk)
Class yang diberi warisan disebut subclass (kelas turunan)
Pewarisan memungkinkan kita untuk menciptakan kelas baru (kelas turunan) yang merupakan perluasan atau spesialisasi dari kelas lain yang telah ada (kelas induk)
5 February 2016 http://aryadharmaadi.com 25
Inheritance (Pewarisan) (2) Kelas turunan akan memiliki property dan method
yang sama dengan kelas induk, dimana pada kelas turunan memungkinkan untuk menambahkan property atau method-method baru
Kelas turunan bisa melakukan definisi ulang terhadap method-method yang sudah ada di kelas induknya (overriding)
5 February 2016 http://aryadharmaadi.com 26
Inheritance (Pewarisan) (3) Contoh: anda bisa membuat class ModernCar yang
merupakan turunan dari class Car
Artinya, class ModernCar memiliki property dan method yang sama dengan induknya tanpa perlu dideklarasikan ulang
Agar menjadi unik, class ModernCar menambahkan method retreat() pada definisi class-nya
5 February 2016 http://aryadharmaadi.com 27
Polymorphism Merupakan kemampuan suatu object untuk
melakukan hal yang berbeda-beda dengan menggunakan interface yang sama
Hal ini tercermin dengan menggunakan teknik overriding dan overloading
Overriding adalah penulisan ulang method warisan dari kelas induk
Overloading adalah penulisan method yang sama dengan parameter input yang berbeda
5 February 2016 http://aryadharmaadi.com 29
Penutup Pemrograman Berorientasi Objek merupakan
paradigma pemrograman yang sangat berbeda dengan Pemrograman Prosedural
Disamping fokus pada pemecahan masalah, Pemrograman Berorientasi Objek menitikberatkan pada identifikasi objek-objek yang terlibat dan bagaimana interaksi antar objek tersebut
5 February 2016 http://aryadharmaadi.com 32