PEMROGRAMAN BERORIENTASI OBJEK

Slides:



Advertisements
Presentasi serupa
Pemrograman Berorientasi Objek
Advertisements

Konsep Dasar Pemrograman Berorientasi Obyek 1
PEMODELAN ANALISIS Kuliah - 5
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
By : Rizky Yuniar Hakun. Konsep Pemrograman Berorientasi Object.
OBJECT ORIENTED PROGRAMMING in JAVA
Pemrograman Lanjut Ratnokustiawan.wordpress.com.
DIKTAT PBO Oleh: Adam Mukharil B. S.Kom. BAB I – KONSEP PBO.
di OBJECT ORIENTED PROGRAMMING [OOP] Oleh H. SUMIJAN, Ir, M.Sc
Desain Berorientasi Obyek dan UML
BAB 1 KONSEP OOP.
Pemrograman Berorientasi Objek
Inheritance (Pewarisan)
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Pemrograman Berorientasi Obyek Oleh Tita Karlita
ALGORITMA DAN PEMROGRAMAN 2C MATERI MINGGU KE-2 Pengenalan Teknik-teknik Bahasa Pemrograman Henny Medyawati.
Inheritance Konsep Inheritance Protected Member
OOP Java - Tj Konsep Dasar OOP.
CLASS, OBJECT METHOD, PROPERTIES Object Oriented Programming
ANALISIS DAN PEMODELAN BERORIENTASI OBJEK DENGAN UML
Kelas A dapat memiliki referensi ke obyek dari kelas- kelas lain sebagai anggota. Kadang-kadang disebut sebagai hubungan “has-a”. Sebagai contoh, sebuah.
Universitas Respati Yogyakarta
Analisis dan Perancangan Berorientasi Objek (OOAD)
KONSEP DASAR PENDEKATAN OBJEK
Rekayasa Perangkat Lunak Konsep Orientasi Objek
BAB contoh penerapan inheritance dan encapsulation
Class & Object Disusun Oleh: Reza Budiawan Untuk:
11. Konsep Berbasis Object (Object-Oriented Concept)
OBJEK dan KELAS Sutrisno PTIIK-UB.
PEMROGRAMAN BERORIENTASI OBJEK
Inheritance dan Kata Kunci static
Pemograman Berorientasi Objek
Pemrograman Berorientasi Object
Object Oriented Programming
POLYMORPHISM (Overloading)
BAB 1 KONSEP OOP.
MODIFIER JAVA.
KEBUTUHAN & SPESIFIKASI SOFTWARE
Pengenalan UML.
D3 TKJ Teknik Elektro Unsoed 2007
Pemrograman Berorientasi Objek
Object Oriented Programming
Inheritance.
BPJ – Pertemuan 13 OOP.
Konsep Object Oriented
Inheritance (Turunan)
KEBUTUHAN & SPESIFIKASI SOFTWARE
Pertemuan 1 Definisi dan Karakteristik Objek
PEMROGRAMAN BERORIENTASI OBJECT 4 SKS 2 TEORI DAN 2 PRAKTEK
Array, Class, Obyek, Method danConstructor.
Dasar-dasar Pemrograman Objek dg Java
Pemrograman Berorientasi Objek
ANALISA & DESAIN BERORIENTASI OBJEK
Pemrograman Berorientasi Object
Pemrograman Berorientasi Objek
PEMROGRAMAN BERORIENTASI OBJEK
Testing Dan Implementasi Sistem
Pemrograman Berorientasi Object
ISTILAH-ISTILAH PENTING PEMROGRAMAN BERBASIS OBYEK
PEMODELAN ANALISIS RPL – PERTEMUAN 5&6.
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER (STMIK) PALANGKARAYA
Pemrograman Berorientasi Obyek
Pemrograman Berorientasi Objek
KEBUTUHAN & SPESIFIKASI SOFTWARE
Perkembangan Teknik Pemrograman
Dian Wahyuningsih, S.Kom., MMSI
Pemrograman Berorientasi Objek
DPH1C4 Pemrograman berorientasi Obyek
Bahasa Pemrograman (Pemrograman Visual)
Transcript presentasi:

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

Paradigma Pemrograman

PEMROGRAMAN 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.

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.

OOP VS PROSEDURAL

PERANGKAT LUNAK OBJEK Perangkat lunak yang dibangun dari kelas-kelas dan objek-objek yang saling berinteraksi satu sama lainnya. Kelas Deskripsi statis dari sesuatu. Objek Sesuatu yang diciptakan (instansiasi) dari kelas.

KELAS 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

KELAS DAN OBJEK Contoh Kelas Mahasiswa memiliki atribut NIM, Nama, Alamat, dan memiliki perilaku (behaviour/method) seperti melakukan registrasi, perkuliahan, ujian, praktikum, dll.

KELAS 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.

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

FITUR PEMROGRAMAN BERORIENTASI OBJEK

FITUR PEMROGRAMAN BERORIENTASI OBJEK ABSTRAKSI ENKAPSULASI PEWARISAN POLYMORPHISM

ABTSRAKSI 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

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

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.

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

CONTOH KASUS (ANALISIS MASALAH BERORIENTASI 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.

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” .

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.

Entitas Atribut Operasi Barang 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

SELEKSI ENTITAS Seleksi 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

Hasil Seleksi Entitas BARANG KOPERASI jumlah daftar stok barang daftar transaksi harga beli tanggal kedaluwarsa harga jual ID barang hitung tanggal kedaluwarsa modifikasi daftar transaksi hitung harga jual hitung diskon DAFTAR TRANSAKSI DAFTAR STOK BARANG data penjualan [ ] barang [] data pembelian [ ] jumlah barang [] tambah data penjualan tambah barang tambah data pembelian kurangi barang

Enkapsulasi 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

Enkapsulasi Contoh

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 !

DESAIN 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.

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

[modifier] class class_identifier Pada pemrograman Java, pendeklarasian kelas dilakukan dengan menggunakan syntax sebagai berikut : [modifier] class class_identifier Contoh: public class Barang { ……… }

Deklarasi variabel dilakukan di dalam kelas Deklarasi variabel dilakukan di dalam kelas. Variabel yang didefinisikan di kelas merupakan atribut dari kelas tersebut Sintaks deklarasi variabel: [modifiers] data_type identifier [ = value ] ;

[modifiers] return_type method_identifier ([arguments]){ 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; }

PEMBUATAN KELAS Diagram UML (Unified Modeling Language)

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);

KELAS DENGAN METHOD MAIN

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());

KELAS DENGAN KONSTRUKTOR

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){ public void setLebar(double 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 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()); }

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.

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

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

CONTOH PEWARISAN

JENIS-JENIS PEWARISAN Single inheritance, yaitu hanya terdapat satu superclass Multiple inheritance, yaitu terdapat lebih dari satu superclass. Bahasa Java tidak mengakomodasi multiple inheritance

POLYMORPHISM 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

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