Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Paradigma berbasis obyek (object- oriented/OO) Mengapa OO ? Pemrograman OO Konsep-konsep dalam OOP ◦ Kelas dan obyek ◦ Mekanisme OO: encapsulation, inheritance,

Presentasi serupa


Presentasi berjudul: "Paradigma berbasis obyek (object- oriented/OO) Mengapa OO ? Pemrograman OO Konsep-konsep dalam OOP ◦ Kelas dan obyek ◦ Mekanisme OO: encapsulation, inheritance,"— Transcript presentasi:

1

2 Paradigma berbasis obyek (object- oriented/OO) Mengapa OO ? Pemrograman OO Konsep-konsep dalam OOP ◦ Kelas dan obyek ◦ Mekanisme OO: encapsulation, inheritance, dan polymorphism OO dan interoperabilitas Tools OO dalam komputasi terdistribusi

3  Pemrograman Berorientasi Objek (OOP) : menyelesaikan persoalan pemrograman dengan membagi persoalan ke dalam unit- unit kecil.  Unit terkecil ini selanjutnya disebut dengan OBJEK.

4 Paradigma pemrograman: pandangan mendasar terkait tentang formulasi sebuah solusi dalam bahasa pemrograman Paradigma pemrograman menjelaskan tentang perspektif/pandangan pemrogram tentang program yang akan dibuatnya Pemrograman berbasis obyek (OOP) mendasarkan pada konsep object dan interaksinya

5 Dalam paradigma berbasis object, “object” adalah representasi sebuah entitas yang memiliki makna tertentu yang menjadi perhatian si pemandang  object memiliki abstraksi tertentu bagi si pemandang ◦ Contoh: dalam sistem akademik di kampus, beberapa kandidat object adalah: mahasiswa, dosen, kelas, mata kuliah, kurikulum, praktikum, laboratorium, perpustakaan, KRS, KHS, … Object dapat menerima pesan (message), mengolah data, dan mengirimkan pesan ke object lain  membentuk interaksi antar object Object bersifat independen: tiap object dapat dipandang sebagai sebuah entitas mandiri yang memiliki peran atau tanggung jawab tertentu

6

7 pembelikasirpelayan pesan & bayar siapkan burger siapkan kentang siapkan minum sajikan Skenario: restoran cepat-saji

8  Object dan interaksinya dapat digunakan untuk merepresentasikan lingkup permasalahan ◦ Object merepresentasikan entitas-entitas yang dianggap penting dalam skenario permasalahan ◦ Interaksi antar object menggambarkan bentuk-bentuk relasi antar entitas di dalam skenario permasalahan  OO sebagai tool untuk memodelkan sistem di dunia nyata (tujuan bahasa Simula-67)  setiap sistem selalu dapat digambarkan melalui object- object penyusunnya dan bagaimana object-object tersebut saling berinteraksi  Dalam software engineering: OO analysis  OO design  OO programming

9  Natural: mengikuti cara berpikir manusia (manusia memandang dunianya sebagai kumpulan object yang berinteraksi)  Abstraksi: menjelaskan makna sebuah entitas secara cepat dan mudah  Enkapsulasi: dapat menyembunyikan detil yang tidak perlu  Modular: object adalah entitas yang independen

10  Enkapsulasi  suatu cara untuk menyembunyikan implementasi detail dari suatu class dalam rangka menghindari akses yang ilegal  Inheritansi  dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan  Polymorphism  kemampuan untuk merepresentasikan 2 bentuk yang berbeda

11  Merealisasikan entitas-entitas object dalam desain software (OOD) dalam bahasa pemrograman  Bahasa pemrograman berbasis object menyediakan mekanisme untuk bekerja dengan: ◦ kelas dan object ◦ methods ◦ inheritance ◦ polymorphism ◦ reusability

12  Ragam bahasa pemrograman berbasis OO ◦ Bahasa OO “murni”  semua diperlakukan secara konsisten mengikuti teori OO dan “memaksa” pemrogram mengikutinya. Contoh: Smalltalk, Eiffel, Ruby ◦ Bahasa yang dirancang untuk OOP, tetapi dengan beberapa elemen prosedural. Contoh: Java (program utama/entry point) ◦ Bahasa yang aslinya prosedural, tetapi kemudian ditambah fitur-fitur OO. Contoh: C++, Perl, PHP

13  OBJEK & KELAS (CLASS) ◦ Objek : unit yang mewakili entitas di dunia nyata ◦ Kelas : penghasil objek  ATRIBUT/DATA/PROPERTY/VARIABEL ◦ Menyimpan informasi/karakteristik setiap objek  METODE (METHOD)/BEHAVIOUR ◦ Menyatakan proses-proses apa saja yang dapat dilakukan oleh sebuah objek.

14  Berbagai benda di sekitar kita adalah objek nyata yang dapat dilihat, seperti : kucing, meja, rumah, orang, dll  Persoalannya, bagaimana memindahkan pemikiran objek di dunia nyata menjadi objek di dunia software atau pemrograman, khususnya Java?  Ambil contoh objek nyata yang akan dipindahkan adalah objek orang.

15  Setiap objek yang dinamakan ‘orang’ pasti memiliki : nama, tinggi badan, berat badan, warna rambut, warna kulit, jenis kelamin, menggunakan kacamata, dll  Ciri-ciri tersebut dapat dipindahkan menjadi variabel-variabel dari class yang sering disebut sebagai : ATRIBUT atau DATA

16  Sebutkan objek-objek yg ada di sekeliling kita !  Apakah Objek itu ? ◦ Objek : benda-benda mati ? ◦ Objek : makhluk hidup ? ◦ Objek : barang abstrak ?

17 Sebuah instance (perwujudan nyata) dari suatu kelas tertentu public class SegiEmpat { int panjang; int lebar; string warna; public SegiEmpat(string w, int p, int l) { panjang = p; lebar = l; warna = w; } public setWarna (string w) { warna = w; } SegiEmpat sPink = new SegiEmpat(“pink”, 20,10); SegiEmpat sPutih = new SegiEmpat(“putih”, 15,10); SegiEmpat sOrange = new SegiEmpat(“orange”, 30,15);

18  Objek dalam OOP, memiliki pengertian yg sama dengan objek-objek yg ada di sekeliling kita !  Objek bisa berupa : ◦ Benda benda mati ◦ Makhluk hidup ◦ Barang/ sesuatu yg abstrak  Objek : entitas yg ada disekeliling kita.  Mirip seperti Entitas yg anda tentukan ketika membuat ER diagram.

19  Sebutkan apa saja yg biasanya dimiliki oleh suatu objek ?

20  Objek memiliki : ◦ Nama : identifikasi dari objek ◦ State : status / ciri / atribut yg terdapat pd objek ◦ Behavior : apa yg dapat dilakukan oleh objek tsb  Dalam OOP : ◦ State = atribut ◦ Behavior = method  Ekivalensinya dalam bhs non-OOP : ◦ State = variabel ◦ Behavior = fungsi / prosedur

21  Sebutkan dari objek-objek disekitar kita : ◦ Nama objek ◦ State / atribut ◦ Behavior  Any question, please… ?

22  Objek monitor komputer di meja anda apakah sama dengan objek monitor di meja teman sebelah kiri/kanan anda ?  Karakteristiknya (state & behavior) sama, tetapi merupakan 2 benda yg berbeda.

23  Mendefinisikan karakteristik abstrak dari sebuah entitas ◦ Property (statis) – fields, atribut ◦ Behaviour (dinamika) – fitur, methods ◦ Contoh: abstraksi “sepeda” memiliki property “punya roda”, “punya rantai”, dsb., dan behaviour “bisa berjalan”, “bisa berbelok”, dsb.  Sebagai abstraksi dari sebuah entitas, definisi kelas harus mencerminkan karakteristik sebenarnya dari entitas tsb.

24  Kelas merupakan “cetakan” (template) untuk instance (wujud nyata) entitas-entitas yang direpresentasikannya ◦ Sebuah kelas dapat melahirkan lebih dari satu instance satu template banyak instance (wujud nyata)

25  Kelas : kelompok objek-objek yg memiliki karakteristik yg sama (yg sejenis)  Kelas : definisi /spesifikasi dari objek- objek  Lebih tepatnya kelas di-analogi-kan sebagai :  Cetakan kue  Blueprint / denah bangunan  Resep masakan  dll  Dari satu cetakan bisa dibuat banyak kue yg bentuknya sama.  Dari satu blueprint rumah bisa dibuat banyak rumah yg bentuk, ukuran, bahannya sama.

26  Misalkan sebuah kelas : ◦ Nama kelas : Orang ◦ Atribut :  Nama : String  Umur : integer ◦ Method :  makan() Orang + nama : String + umur : int + makan() : void

27 ◦ Contoh pemisalan objek orang nyata menjadi kode program dalam class Orang : class Orang { String nama;//nama orang int tinggiBadan;//dalam cm int beratBadan;//dlm kg String warnaRambut;//hitam, pirang, coklat String warnaKulit;//sawoMatang, hitam, putih String jenisKelamin;//pria atau wanita boolean berkacamata;//bila berkacamata berarti true }

28 A. Buatlah kelas-kelas berikut : Mobil warna tahun merek Mahasiswa nim nama jurusan

29  Method ◦ Selain memiliki atribut(STATE) yang diimplementasikan sebagai data, orang/manusia juga dapat melakukan suatu aksi atau pekerjaan tertentu (BEHAVIOR). ◦ Contoh aksi/behavior yang umum adalah menangis dan tertawa ◦ Kedua behavior tsb bisa dipindahkan ke dalam bahasa pemrograman menjadi method sbb : void menangsi() { System.out.println(“hik..hikk..hik…”); } void tertawa() { System.out.println(“ha..ha..ha..ha..”); }

30  Method merupakan perwujudan aksi atau tindakan dari dunia nyata di dalam pemrograman komputer.  Method dalam dunia pemrograman juga “pasti melakukan sesuatu aksi”, misalnya menampilkan String di konsol atau melakukan operasi tertentu.

31  Kelas Mobil  Kelas Mahasiwa Mobil warna merk tipe kapasitas tangki start stop dipercepat Mahasiswa nim nama jurusan ipk cek nilai ipk lihat biodata registrasi data/atribut perilaku/ method

32  Adalah cetak biru (blueprint) atau prototipe yang mendefinisikan variabel-variabel (data) dan method-method (perilaku) umum dari sebuah objek.  Membuat kelas baru == membuat tipe data baru.  Membuat class != membuat objek.  Membuat objek == membuat instance dari class (perwujudan dari class)  Sedangkan Proses pembuatan object disebut dengan instansiasi class.

33 Ilustrasi perbedaan antara class dan objek

34  Dari gambar di atas dapat dipahami bahwa suatu class dapat memiliki banyak objek, dan setiap objek akan mewarisi data member dan method yang sama dari class  Untuk membuat objek Orang dari class Orang, gunakan keyword new sbb : Orang orang1 = new Orang(); Orang orang2 = new Orang();  setiap objek dapat memiliki state atau nilai data member yang berbeda (hanya nama dan tipe variabel yang sama)

35  Objek-objek yang dibuat perlu disimpan dalam variabel yang akan menyimpan referensi/address dari objek yang dibuat.  Variabel yang tipe datanya berupa class inilah yang disebut sebagai variabel reference.

36 Memindahkan orang dari dunia nyata menjadi class Orang

37 public class SegiEmpat { int panjang; int lebar; string warna; public SegiEmpat(string w, int p, int l) { panjang = p; lebar = l; warna = w; } public setWarna (string w) { warna = w; } SegiEmpat sPink = new SegiEmpat(“pink”, 20,10); field, menunjukkan atribut/property constructor, untuk menciptakan object (instance) baru dengan property tertentu methods atau member functions, mendeskripsikan behaviour atau aktivitas yang bisa dijalankan memanggil constructor untuk membentuk object baru

38 Ilustrasi pembuatan objek dari class

39  Lakukan instansiasi dari class Mobil, dimana masing-masing objek memiliki data sbb : AtributMobil1Mobil2Mobil3 WarnaMerahHijaukuning MerkAlphardyarispanther TipeXV-2Sportyadventure Kapasitas tangki 1075

40  Lakukan instansiasi dari class Mahasiswa, dimana masing-masing objek memiliki data sbb : AtributMahasiswa1Mahasiswa2Mahasiswa3 nim namaAlfaBethaGamma jurusanInformatikaElektronikaSipil ipk

41  Enkapsulasi: lokalisasi fitur-fitur sebuah object (fields dan methods) dalam definisi object tersebut  Enkapsulasi menyembunyikan property dan behaviour object dari pihak luar (object yang lain)  object lain melihat object ini sebagai “black box” saja  Enkapsulasi memisahkan antara bagian publik (yang bisa dilihat oleh pihak luar (object lain) dan bagian privat (internal object itu sendiri) dengan tegas  fitur ini memberi keleluasaan/independensi untuk bekerja dengan aspek internal tanpa harus bergantung pada aspek publik/eksternal  berguna untuk menangani berbagai persoalan interoperabilitas

42  Objek & kelas : perwujudan dari konsep encapsulation  Dua pengertian dari konsep encapsulation : ◦ Atribut & method dibungkus jadi satu ◦ Atribut (& method) dapat dilindungi sehingga tidak dapat diakses dari luar secara langsung  Bisa dilakukan pada bahasa non-OOP ? ◦ Bhs C : bisa memasukkan fungsi kedalam struct ? ◦ Bhs Pascal : bisa memasukkan procedure / function kedalam record ?

43  Penjelasan pengertian kedua (akan dijelaskan lebih jauh pada pertemuan kuliah mengenai Get & Set method)

44 public class SegiEmpat { int panjang; int lebar; string warna; public SegiEmpat(string w, int p, int l) { panjang = p; lebar = l; warna = w; } public setWarna (string w) { warna = w; } sPink SegiEmpat sPink = new SegiEmpat(“pink”, 20,10); setWarna(string w) Pihak luar (object lain) melihat sPink sebagai sebuah “kotak hitam” yang tidak terlihat isinya, kecuali fields dan methods yang memang dideklarasikan secara publik Object lain tidak bisa melihat apa yang dilakukan sPink secara internal

45  Dalam dunia OO, beberapa object memiliki sifat/ciri yang mirip dengan yang lain  sebuah kelas object dapat didefinisikan dari kelas yang lain ◦ Kemiripan ini membentuk hubungan sifat yang bersifat hirarkis ◦ “pesawat penyergap adalah sebuah pesawat terbang yang dilengkapi dengan persenjataan dan dapat terbang melebihi kecepatan suara”  “pesawat penyergap” memiliki ciri yang sama dengan “pesawat terbang”  “pesawat penyergap” mewarisi sifat “pesawat terbang”  “pesawat penyergap” memiliki ciri yang lebih khusus dibandingkan “pesawat terbang”  “pesawat penyergap” adalah subclass dari “pesawat terbang” ◦ Dalam OOP, hubungan inheritance (pewarisan sifat) ini diimplementasikan melalui definisi kelas: sebuah kelas dapat didefinisikan dari kelas yang lain

46 “bentuk” poligon ellips lingkaran persegi panjang segitiga bujur sangkar

47  Dalam pohon hirarki inheritance, sebuah subclass mewujudkan abstraksi yang lebih spesifik dari superclassnya: subclass = superclass + (fitur-fitur baru) ◦ Subclass dapat menambahkan fields dan methods baru ◦ Subclass dapat mengambil alih (override) method milik superclass dan mengubah implementasi method tersebut  Manfaat inheritance: ◦ Pemanfaatan kembali (reuse) kelas ◦ Menyediakan model yang bersifat generik (abstract class); implementasi spesifiknya bisa dilakukan kemudian (mungkin oleh pemrogram yang berbeda)

48  Menggunakan kata kunci : extends  Kelas induk : parent, superclass, ancestor  Kelas anak : child, subclass, descendant  Kita akan membuat turunan dari kelas Orang : Orang + nama : String + umur : int + makan() : void Mahasiswa + nrp : String + belajar() : void

49  Kodenya sbb : public class Mahasiswa extends Orang { public String nrp; public void belajar() { System.out.println(“Mhs “ + nama + “ sedang belajar”); }

50  Kelas testnya sbb : public class TestMahasiswa { public static void main(String[] args) { Mahasiswa mhs; mhs.nama = “Deden”; mhs.umur = 20; mhs.nrp = “ ”; mhs.makan(); mhs.belajar(); }

51  Tiga Konsep inheritance : ◦ Semua atribut & method dari kelas induk diturunkan ke kelas anak ◦ Pada kelas anak dapat menambahkan atribut & method yang tidak ada pada kelas induk ◦ Pada kelas anak dapat memodifikasi method (behavior) yang sudah ada di kelas induk

52  Poly: banyak; morphism: bentuk  sebuah fitur (generik) bisa diimplementasikan dengan berbagai cara  Polymorphism diimplementasikan dengan mekanisme inheritance dan overriding hewan anjing “menggonggong” kucing “mengeong” kuda “meringkik” “bersuara”

53  Polymorphism : mengambil banyak bentuk  Kelakuan bisa berubah-ubah tergantung dari objek yang memanggilnya.  Akan dijelaskan lebih jauh pada pertemuan tentang Polymorphism

54  Konsep abstraksi dan enkapsulasi membuat “batas” yang tegas antara bagian yang bersifat publik dan bagian yang bersifat privat ◦ Abstraksi menjelaskan hal-hal yang terlihat dari luar (bersifat publik) ◦ Enkapsulasi menyembunyikan detil-detil yang tidak perlu terlihat dari luar (bersifat privat)  Independensi antara aspek publik dan privat dieksploitasi untuk menangani isu interoperabilitas: implementasi layanan dapat dilakukan tanpa harus tergantung pada siapa yang mengaksesnya

55 Nasi goreng Mie goreng Mie bakso “pesan nasi goreng” “memasak nasi goreng” publik privat Pemilik warung (server) dapat memasak nasi goreng (implementasi layanan) dengan berbagai cara tanpa harus tergantung pada siapa yang memesannya (client).

56 Aplikasi #1Aplikasi #2 Bahasa A Sistem operasi B Database C Bahasa X Sistem operasi Y Database Z Network PNetwork Q Hardware MHardware N

57 X Y Z interface implementasi PublikPrivat server (object implementation) client

58  Remote Procedure Calling (RPC) – tidak berbasis OO, tetapi telah menggunakan konsep pemisahan dengan interface  Remote Method Invocation (RMI) – RPC versi Java  Common Object Request Broker Architecture (CORBA) – arsitektur sistem terdistribusi berbasis OO  OLE/COM, DCOM,.NET – solusi interoperabilitas dari Microsoft  J2EE – suite pengembangan aplikasi enterprise berbasis Java

59 ANALISIS MASALAH MENGGUNAKAN KONSEP OBJECT-ORIENTED ANALYSIS

60  User : Petugas logistik pada sebuah koperasi  Aplikasi Diminta : Sistem pelaporan stok barang yang mencatat persediaan, pemasukan, dan pengeluaran barang  Kebijakan Koperasi : ◦Untuk barang berupa makanan :  Jika kedaluwarsa sudah lewat, barang dibuang  Jika kedaluwarsa tinggal 6 bulan lagi (asumsi ketika dibeli, masa kedaluwarsa makanan > 1 tahun ), diskon harga 50% ◦Untuk semua barang :  Jika stok suatu item tinggal 40% dari seharusnya, harus ditambah stoknya.

61

62  Domain masalah : ruang lingkup permasalahan yang akan dipecahkan.  Tujuan : fokus pada masalah  Domain masalah dapat ditentukan dari permintaan user (User Requirement Gathering )

63  Identifikasi sifat-sifat dasar dari obyek yang diperkirakan akan terlibat dalam aplikasi : ◦Obyek : fisik / konseptual ◦Identifikasi atribut / karakteristik ◦Identifikasi operasi  Membuat perkiraan obyek apa saja yang akan digunakan : ◦Barang ◦Supplier ◦Koperasi ◦Pembeli ◦Gudang ◦Daftar Transaksi ◦Daftar Stok Barang

64  Pertimbangan-pertimbangan : ◦Relevansi dengan masalah :  Obyek eksis pada batasan masalah ?  Obyek dibutuhkan dalam menyelesaikan masalah ?  User dibutuhkan sebagai bagian dari interaksi antara user dan solusi ? ◦Eksistensi independen : sebaiknya obyek yang dibuat tidak saling tergantung dengan obyek lainnya

65  Memilik Obyek : ◦Barang  OK ◦Supplier  Not OK, sebab tidak terlalu berperan dalam permasalahan ◦Koperasi  OK, menjadi obyek utama ◦Pembeli  Not OK, sebab tidak terlalu berperan dalam permasalahan ◦Daftar Transaksi  OK ◦Daftar Stok Barang  OK

66


Download ppt "Paradigma berbasis obyek (object- oriented/OO) Mengapa OO ? Pemrograman OO Konsep-konsep dalam OOP ◦ Kelas dan obyek ◦ Mekanisme OO: encapsulation, inheritance,"

Presentasi serupa


Iklan oleh Google