pemrograman berorientasi objek

45
PEMROGRAMAN BERORIENTASI PEMROGRAMAN BERORIENTASI OBJEK OBJEK KONSEP PEMROGRAMAN BERORIENTASI OBJEK Rian F. Umbara, S.Si, M.Si

Upload: megan

Post on 05-Jan-2016

258 views

Category:

Documents


35 download

DESCRIPTION

PEMROGRAMAN BERORIENTASI OBJEK. KONSEP PEMROGRAMAN BERORIENTASI OBJEK. Rian F. Umbara, S.Si, M.Si. Paradigma Pemrograman. PEMROGRAMAN PROSEDURAL. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: PEMROGRAMAN BERORIENTASI OBJEK

PEMROGRAMAN BERORIENTASI PEMROGRAMAN BERORIENTASI OBJEKOBJEK

KONSEP PEMROGRAMAN BERORIENTASI OBJEK

Rian F. Umbara, S.Si, M.Si

Page 2: PEMROGRAMAN BERORIENTASI OBJEK

Paradigma PemrogramanParadigma Pemrograman

Page 3: PEMROGRAMAN BERORIENTASI OBJEK

PEMROGRAMAN PROSEDURALPEMROGRAMAN PROSEDURAL

Dalam pemrograman prosedural, sebuah program akan dibagi menjadi beberapa sub-program (modul) yang akan melakukan tugas-tugas tertentu. Modul bisa dibuat oleh user atau diambil dari library program lainnya. Dalam sebuah modul, bisa terdiri dari satu atau lebih prosedur.

Page 4: PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman yang didasarkan pada objek-objek, yaitu suatu unit terkecil dari program yang mengandung data dan fungsi yang bekerja atas objek tersebut.

Pemrograman yang dibangun dengan cara membungkus (enkapsulasi) komponennya menjadi kelompok data dan fungsi yang dapat mewarisi atribut dan sifat dari komponen lainnya, dan komponen-komponen tersebut dapat berinteraksi satu sama lainnya.

PEMROGRAMAN BERORIENTASI PEMROGRAMAN BERORIENTASI OBJEKOBJEK

Page 5: PEMROGRAMAN BERORIENTASI OBJEK

OOP VS PROSEDURALOOP VS PROSEDURAL

SistemAkademik

Dosen Jadwal Kuliah

MahasiswaKontrakKuliah

Konteks

PengambilanKuliah

Penjadwalan Penilaian

Dekomposisi berdasarkan objek atau konsep Dekomposisi berdasarkan fungsi atau proses

Metodologi Berorientasi Objek Metodologi Berorientasi Fungsi

Page 6: PEMROGRAMAN BERORIENTASI OBJEK

PERANGKAT LUNAK OBJEKPERANGKAT LUNAK OBJEK

Perangkat lunak yang dibangun dari kelas-kelas dan objek-objek yang saling berinteraksi satu sama lainnya.

• KelasDeskripsi statis dari sesuatu.

• ObjekSesuatu yang diciptakan (instansiasi) dari kelas.

Page 7: PEMROGRAMAN BERORIENTASI OBJEK

KELAS DAN OBJEKKELAS DAN OBJEK

Sebuah kelas menentukan struktur dan tingkah laku sebuah objek

Kelas adalah cetak biru dari objek, mendefinisikan atribut (state) dan perilaku (behaviour/method) dari objek

Objek adalah instans dari kelas

Page 8: PEMROGRAMAN BERORIENTASI OBJEK

KELAS DAN OBJEKKELAS DAN OBJEK

ContohKelas Mahasiswa memiliki atribut NIM, Nama, Alamat, dan memiliki perilaku (behaviour/method) seperti melakukan registrasi, perkuliahan, ujian, praktikum, dll.

Page 9: PEMROGRAMAN BERORIENTASI OBJEK

KELAS DAN OBJEKKELAS DAN OBJEK

Ani, Budi, dan Gunawan adalah objek (instans) dari kelas mahasiswa. Mereka masing-masing memiliki atribut-atribut nama, nim, alamat (yang nilainya masing-masing berbeda). Mereka juga memiliki behaviour yang sama yaitu melakukan registrasi, perkuliahan, ujian, praktikum.

Page 10: PEMROGRAMAN BERORIENTASI OBJEK

KELEBIHAN OOPKELEBIHAN OOP

Real world programming Reusability of code Resilience to change Information hiding Modularity of code

Page 11: PEMROGRAMAN BERORIENTASI OBJEK

FITUR PEMROGRAMAN BERORIENTASI OBJEK

Page 12: PEMROGRAMAN BERORIENTASI OBJEK

FITUR PEMROGRAMAN BERORIENTASI FITUR PEMROGRAMAN BERORIENTASI OBJEKOBJEK

ABSTRAKSI ENKAPSULASI PEWARISAN POLYMORPHISM

Page 13: PEMROGRAMAN BERORIENTASI OBJEK

ABTSRAKSIABTSRAKSI

Abstraksi adalah suatu proses mendaftarkan entitas-entitas (benda-benda) yang akan berinteraksi dalam suatu aplikasi

Entitas-entitas tersebut nantinya akan menjadi kelas, dan dari kelas lahirlah objek

Page 14: PEMROGRAMAN BERORIENTASI OBJEK

Setelah entitas-entitas didaftarkan, maka selanjutnya ditentukan sifat-sifat (state/atribut) dan hal yang dapat dilakukan oleh entitas tersebut (behaviour/method)

Page 15: PEMROGRAMAN BERORIENTASI OBJEK

Misalnya dalam sistem kepegawaian, dimana didalamnya terdapat banyak entitas di antaranya adalah pegawai. Didalam entitas pegawai terdapat atribut-atribut yang akan membedakan satu pegawai dengan pegawai lainnya, misalkan NIP, Nama, Alamat, Tanggal Lahir, dll.

Page 16: PEMROGRAMAN BERORIENTASI OBJEK

Dalam aplikasi yang akan dibuat, entitas-entitas tersebut akan menjadi kelas-kelas. Di dalam kelas-kelas inilah didefinisikan atribut-atribut dan method-method

Kelas adalah blue print dari objek. Dari kelas lahirlah objek

Kelas tidak memiliki data, tapi objeklah yang menyimpan data

Page 17: PEMROGRAMAN BERORIENTASI OBJEK

CONTOH KASUS (ANALISIS MASALAH CONTOH KASUS (ANALISIS MASALAH BERORIENTASI OBJEKBERORIENTASI OBJEK

Contoh masalah yang akan dibuat desain pemecahannya adalah sebagai berikut : sebuah koperasi menginginkan sebuah aplikasi pelaporan

rekapitulasi stok barang yang mencatat persediaan, pemasukan dan pengeluaran barang. Laporan ini dilakukan seminggu sekali;

aplikasi ini akan dijalankan oleh seorang petugas khusus logistik. Petugas tersebut akan mencatat Stok barang didapat dari supplier-supplier, baik dari dalam maupun luar kota. Penjualan barang dilakukan pada sebuah mini market, yang pembelinya berasal dari anggota koperasi maupun yang bukan anggota koperasi;

kemudian ada kebijakan kalau barang berupa makanan yang masa kedaluwarsanya sudah lewat, harus dibuang, dan yang masa kedaluwarsanya tinggal 6 bulan lagi, diberikan diskon 50% (asumsi makananya semuanya mempunyai masa kedaluwarsa > 1 tahun ). Kebijakan lainnya adalah : untuk item barang yang tinggal <= 40% dari seharusnya, harus segera ditambah stoknya.

Page 18: PEMROGRAMAN BERORIENTASI OBJEK

IDENTIFIKASI DOMAIN MASALAH Domain masalah didefinisikan sebagai ruang lingkup

permasalahan yang akan dipecahkan. Ruang lingkup ini membatasi permasalahan sehingga permasalahan tidak meluas, dan tetap pada fokusnya.

Domain masalah ini dapat ditentukan dari permintaan / requirements yang diberikan oleh pihak yang meminta aplikasi (customer). Setelah permintaan tersebut dikumpulkan, maka developer ( dalam hal ini programmer ) dapat membuat pernyataan tentang apa yang akan dibuatnya , misalnya : ”Membuat sistem pelaporan stok barang pada koperasi yang mengakomodasi kebijakan-kebijakan kedaluwarsa dan potongan harga” .

Page 19: PEMROGRAMAN BERORIENTASI OBJEK

IDENTIFIKASI ENTITAS Setelah domain masalah diidentifikasi, developer sudah

dapat melakukan identifikasi terhadap entitas-entitas (benda-benda) yang akan berinteraksi untuk memecahkan masalah.

Lakukan identifikasi atas beberapa sifat dari entitas tersebut, antara lain: entitas dapat bersifat konseptual atau berupa benda fisik, entitas memiliki atribut atau karakteristik, entitas memiliki operasi

Dalam fase ini, kegiatan utamanya adalah mengumpulkan entitas-entitas yang mungkin terlibat sebanyak-banyaknya. Kemudian daftarkan atribut dan operasi (method) yang dimiliki oleh setiap entitas.

Page 20: PEMROGRAMAN BERORIENTASI OBJEK

Entitas Atribut OperasiBarang – jumlah

– harga beli– tanggal kadaluwarsa– harga jual– ID barang– diskon

– hitung tanggal kedaluwarsa– hitung harga jual– hitung diskon

Supplier – nama– lokasi– ID supplier– jenis barang

– modifikasi nama supplier– modifikasi lokasi supplier

Koperasi – daftar transaksi– gudang

– modifikasi daftar transaksi

Pembeli – ID pembeli– nama pembeli

– .modifikasi ID pembeli– modifikasi nama pembeli

Gudang – daftar stok barang– koperasi

– modifikasi stok barang– set koperasi

Daftar Transaksi – data penjualan [ ]– data pembelian [ ]

– tambah data penjualan– tambah data pembelian

Daftar Stok Barang – Barang [ ]– jumlahBarang[]

– tambah barang– kurangi barang

Page 21: PEMROGRAMAN BERORIENTASI OBJEK

SELEKSI ENTITASSeleksi entitas dilakukan dengan mempertimbangkan hal-hal

berikut : Relevansi dengan permasalahan - Apakah entitas tersebut eksis pada batasan-batasan yang

ditentukan pada permasalahan ? - Apakah entitas tersebut dibutuhkan untuk menyelesaikan

masalah ?

Eksistensi entitas haruslah independent

Page 22: PEMROGRAMAN BERORIENTASI OBJEK

Hasil Seleksi Entitas

BARANG KOPERASIjumlah daftar stok barang

daftar transaksi

harga belitanggal kedaluwarsaharga jualID baranghitung tanggal kedaluwarsa modifikasi daftar

transaksi

hitung harga jualhitung diskon

DAFTAR TRANSAKSI DAFTAR STOK BARANGdata penjualan [ ] barang [] data pembelian [ ] jumlah barang []tambah data penjualan tambah barangtambah data pembelian kurangi barang

Page 23: PEMROGRAMAN BERORIENTASI OBJEK

EnkapsulasiEnkapsulasi

Enkapsulasi adalah suatu cara untuk menyembunyikan implementasi detil (berupa atribut atau method) dari suatu kelas.

Dalam OOP, kebutuhan akan enkapsulasi muncul karena adanya sharing data antar method

Page 24: PEMROGRAMAN BERORIENTASI OBJEK

Enkapsulasi Enkapsulasi

Contoh

Page 25: PEMROGRAMAN BERORIENTASI OBJEK

Latihan Latihan

Anda diminta untuk menjadi konsultan di suatu Badan Liga Sepak bola.

Badan Liga Sepakbola tersebut meminta Anda untuk membuat aplikasi

pencatatan pertandingan pada suatu liga sepakbola. Aplikasi harus

mencatat sebagai berikut : Daftar pemain sepak bola untuk setiap tim Jumlah goal yang berhasil dicetak oleh setiap pemain Pertandingan selama satu musim, termasuk di dalamnya jadwal

pertandingan, hasilnya (score, jumlah kartu yang dikeluarkan wasit, dan sebagainya).

Lakukan analisis berorientasi obyek dengan membuat daftar obyek yang

kemungkinan besar digunakan dalam aplikasi tersebut, beserta atribut

dan operasi yang dapat dilakukan oleh setiap obyek tersebut, dan buat

disain kelasnya secara lengkap !

Page 26: PEMROGRAMAN BERORIENTASI OBJEK

DESAIN KELAS DAN OBJEKDESAIN KELAS DAN OBJEK

Kelas adalah cetak-biru dari obyek. Seperti halnya semua cetak-biru dalam kehidupan sehari-hari, kelas merupakan acuan bagaimana obyek itu dibentuk, data apa saja yang disimpan oleh obyek, dan operasi-operasi apa saja yang dapat dilakukan oleh obyek.

Page 27: PEMROGRAMAN BERORIENTASI OBJEK

Struktur dasar sebuah kelas pada intinya ada 4 bagian, yaitu :•deklarasi kelas;•deklarasi dan inisialisasi atribut;•pendefinisian method;•komentar.

Page 28: PEMROGRAMAN BERORIENTASI OBJEK

Pada pemrograman Java, pendeklarasian kelas dilakukan dengan menggunakan syntax sebagai berikut :

[modifier] class class_identifier

Contoh:public class Barang {

………

}

Page 29: PEMROGRAMAN BERORIENTASI OBJEK

Deklarasi variabel dilakukan di dalam kelas. Variabel yang didefinisikan di kelas merupakan atribut dari kelas tersebut

Sintaks deklarasi variabel:[modifiers] data_type identifier [ = value ] ;

Page 30: PEMROGRAMAN BERORIENTASI OBJEK

Method merepresentasikan operasi-operasi yang dapat dilakukan oleh obyek. Dalam penulisan, yang membedakan method dan variabel adalah : method selalu diakhiri dengan ( ) atau (< nama argumen >). Pendeklarasiannya juga berbeda, yaitu dengan menambahkan blok { ... } dan mengisi blok tersebut dengan baris-baris program. Bentuk umum penulisan deklarasi method adalah sebagai berikut :

  [modifiers] return_type method_identifier ([arguments]){

method_code_block;}

Page 31: PEMROGRAMAN BERORIENTASI OBJEK

PEMBUATAN KELASPEMBUATAN KELAS

Diagram UML (Unified Modeling Language)

SegiEmpat

+panjang: double+lebar: double

+setPanjang(p: double)+setLebar(l: double)+hitungLuas(): double+hitungKeliling(): double

Page 32: PEMROGRAMAN BERORIENTASI OBJEK

public class SegiEmpat{

//deklarasi variabel (atribut)

public double panjang;

public double lebar;

//deklarasi method

public void setPanjang(double p){

panjang = p;

}

public void setLebar(double l){

lebar = l;

}

public double hitungLuas(){

return panjang*lebar;

}

public double hitungKeliling(){

return 2*(panjang + lebar);

}

}

Page 33: PEMROGRAMAN BERORIENTASI OBJEK

KELAS DENGAN METHOD MAINKELAS DENGAN METHOD MAIN

SegiEmpat

+panjang: double+lebar: double

+setPanjang(p: double)+setLebar(l: double)+hitungLuas(): double+hitungKeliling(): double+main(args: String[])

Page 34: PEMROGRAMAN BERORIENTASI OBJEK

public class SegiEmpat{

public double panjang;

public double lebar;

public void setPanjang(double p){

panjang = p;

}

public void setLebar(double l){

lebar = l;

}

public double hitungLuas(){

return panjang*lebar;

}

public double hitungKeliling(){

return 2*(panjang + lebar);

}

public static void main(String[] args){

SegiEmpat se1;

se1 = new SegiEmpat(); //pembentukan objek

SegiEmpat se2 = new SegiEmpat(); // pembentukan objek

se1.setPanjang(10);

se1.setLebar(5);

se2.setPanjang(5.5);

se2.setLebar(2.3);

System.out.println("Luas segi empat 1 ="+se1.hitungLuas());

System.out.println(“Keliling segi empat 2 ="+se2.hitungKeliling());

}

}

Page 35: PEMROGRAMAN BERORIENTASI OBJEK

KELAS DENGAN KONSTRUKTORKELAS DENGAN KONSTRUKTOR

SegiEmpat

+panjang: double+lebar: double

+SegiEmpat()+SegiEmpat(p: double, l: double)+setPanjang(p: double)+setLebar(l: double)+hitungLuas(): double+hitungKeliling(): double+main(args: String[])

Page 36: PEMROGRAMAN BERORIENTASI OBJEK

public class SegiEmpat{

public double panjang;

public double lebar;

//deklarasi konstruktor

public SegiEmpat(){

}

public SegiEmpat(double p, double l){

panjang = p;

lebar = l;

}

//deklarasi method

public void setPanjang(double p){

panjang = p;

}

public void setLebar(double l){

lebar = l;

}

public double hitungLuas(){

return panjang*lebar;

}

public double hitungKeliling(){

return 2*(panjang + lebar);

}

Page 37: PEMROGRAMAN BERORIENTASI OBJEK

public static void main(String[] args){

SegiEmpat se1;

se1 = new SegiEmpat(); //pembentukan objek

se1.setPanjang(10);

se1.setLebar(5);

SegiEmpat se2 = new SegiEmpat(5.5,2.3); // pembentukan objek

System.out.println("Luas segi empat 1 ="+se1.hitungLuas());

System.out.println(“Keliling segi empat 2 ="+se2.hitungKeliling());

}

}

Page 38: PEMROGRAMAN BERORIENTASI OBJEK

PEWARISAN (INHERITANCE)PEWARISAN (INHERITANCE)

Salah satu fitur yang paling kuat dalam OOP adalah penggunaan kode kembali (code reuse). Sekali sebuah prosedur dibuat, maka kita bisa menggunakannya berulang kali

Dalam OOP, kemampuan yang dimiliki tidak hanya itu. Kita juga bisa mendefinisikan hubungan antar kelas yang tidak hanya dimanfaatkan untuk code reuse, tapi juga dari segi pendesainannya yang jauh lebih baik, yaitu dengan cara mengelola kelas-kelas dan faktor kemiripan di antara kelas-kelas tersebut.

Page 39: PEMROGRAMAN BERORIENTASI OBJEK

Fitur pewarisan (inheritance) mengijinkan sebuah kelas, yang disebut superclass, untuk menurunkan atribut-atribut dan method-methodnya kepada kelas lainnya yang disebut subclass (child)

Page 40: PEMROGRAMAN BERORIENTASI OBJEK

Terdapat beberapa karakteristik dari subclass:- subclass adalah bentuk khusus dari sebuah

superclass- dalam sebuah subclass terdapat atribut dan

method yang diturunkan dari superclass- subclass bisa memiliki fitur tambahan yang

berbeda dari fitur-fitur yang diturunkan dari superclass-nya

Page 41: PEMROGRAMAN BERORIENTASI OBJEK

CONTOH PEWARISANCONTOH PEWARISAN

Page 42: PEMROGRAMAN BERORIENTASI OBJEK

JENIS-JENIS PEWARISANJENIS-JENIS PEWARISAN

Single inheritance, yaitu hanya terdapat satu superclass

Multiple inheritance, yaitu terdapat lebih dari satu superclass. Bahasa Java tidak mengakomodasi multiple inheritance

Page 43: PEMROGRAMAN BERORIENTASI OBJEK
Page 44: PEMROGRAMAN BERORIENTASI OBJEK

POLYMORPHISMPOLYMORPHISM

Polymorphisme artinya sesuatu yang memiliki banyak bentuk

Sebagai contoh, objek wanita memiliki beberapa peran:- bagi suami, ia adalah seorang istri- bagi anak, ia adalah seorang ibu- di tempat kerja, ia adalah seorang

karyawati

Page 45: PEMROGRAMAN BERORIENTASI OBJEK

Dalam OOP, polymorphism adalah sebuah fitur yang memungkinkan kita untuk memberikan arti atau penggunaan yang berbeda bagi sebuah entitas dalam konteks yang berbeda-beda.

Entitas tersebut bisa berupa variabel, method, atau sebuah objek