34
I Putu Arya Dharmaadi, S.T., M.T. Dosen Jurusan Teknologi Informasi Universitas Udayana http://aryadharmaadi.com

Pertemuan 1 konsep dasar pemrograman berorientasi objek

Embed Size (px)

Citation preview

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

Contoh: Alat Counter

5 February 2016 http://aryadharmaadi.com 4

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

Contoh Pembuatan Class pada Bahasa Pemrograman Java

5 February 2016 http://aryadharmaadi.com 14

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

Enkapsulasi (4)

5 February 2016 http://aryadharmaadi.com 24

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

Inheritance (Pewarisan) (4)

5 February 2016 http://aryadharmaadi.com 28

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

Contoh Overriding

5 February 2016 http://aryadharmaadi.com 30

Contoh Overloading

5 February 2016 http://aryadharmaadi.com 31

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

Next . . . Pengenalan bahasa pemrograman Java

5 February 2016 http://aryadharmaadi.com 33

Referensi Tjokorda Agung Budi Wirayuda. (2007) Slide

Kuliah: CS3123 Pemrograman Berorientasi Objek. Institut Teknologi Telkom, Bandung

Sierra, K., & Bates, B. (2005) “A Brain-Friendly Guide: Head First Java 2nd Edition”. O’Reilly

5 February 2016 http://aryadharmaadi.com 34