47
STK372 KOMPUTASI STATISTIK II MATERI 3a Pemrograman Berorientasi Objek (S3) © Agus Mohamad Soleh

MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

STK372 KOMPUTASI STATISTIK II

MATERI 3a

Pemrograman Berorientasi Objek (S3)

© Agus Mohamad Soleh

Page 2: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

2 of 21

Outline Object dan Classes

Konsep pemrograman berorientasi object (OOP)

OOP dalam R: Sistem S3 dan Sistem S4

Ilustrasi

Page 3: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Objek dan Class

Objek:

KamusWebster:

Object: a visible or tangible thing of relative stable form; A thing that may be apprehended intellectually; A thing to which thought or action is directed

Pemrograman:

Objek memiliki state, behavior, and identity (Booch)

Objek:

KamusWebster:

Object: a visible or tangible thing of relative stable form; A thing that may be apprehended intellectually; A thing to which thought or action is directed

Pemrograman:

Objek memiliki state, behavior, and identity (Booch)

Page 4: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Objek dan Class Objek

The state of an object encompasses all of the (static) properties of the object plus the current (dynamic) values of each of these properties

Behavior is how an object acts and reacts, in terms of state changes and interactions with other objects.

Identity is the property of an object that distinguishes it from all other objects.

Class adalah kumpulan objek yang berbagi struktur dantingkah laku yg sama/umum

Class merupakan abstraksi dari objek

Page 5: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Konsep Pemrograman OO

Tidak semua konsep dari pemrograman berorientasi objek

diterapkan dalam R

Konsep yang diimplementasikan:

Encapsulation

Inheritance

Polymorphism

Page 6: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

EncapsulationEncapsulation means that a group of related properties, methods, and other members are treated as a single unit or object. Objects can control how properties are changed and methods are executed.

Why: Makes it easier to change your implementation at a later date by letting you hide implementation details of your objects, a practice called data hiding.

Page 7: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

InheritanceInheritance describes the ability to create new classes based on an existing class. The new class inherits all the properties and methods and events of the base class, and can be customized with additional properties and methods.

Why: Promotes code reuse since the code for the methods of the subclasses do not need to be rewritten.

Page 8: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

PolymorphismPolymorphism means that you can have multiple classes that can be used interchangeably, even though each class implements the same properties or methods in different ways. Polymorphism is essential to object-oriented programming because it allows you to use items with the same names, no matter what type of object is in use at the moment.

Why: Polymorphism becomes more flexible. Subclasses can keep some methods inherited from their super classes and override others.

Page 9: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

OOP dalam R

Semua dalam R adalah objek

Fungsi class digunakan untuk melihat tipe dari objek

numeric

logical

character

complex

List

Class yang lebih kompleks: matrix atau array

Page 10: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Ilustrasi Objek

Suatu objek untuk manipulasi data numerik yang

direpresentasikan dalam suatu lokasi koordinat x y.

Cara mudah untuk menyimpan vektor lokasi koordinat adalah

dalam list

pts <- list (x=round(rnorm(5),2),

y=round(rnorm(5),2))

Page 11: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Menambahkan sebagai Class

Untuk menjadikan sebagai objek gunakan fungsi class

Page 12: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Perhatian !!!!

Langkah sederhana dalam membuat objek sebelumnya sangat

tidak dianjurkan karena nilai-nilai instan-nya mungkin tidak

tepat

Sebuah fungsi konstruktor dibutuhkan untuk mengecek

instan sesuai dengan objek

Misal:

x dan y harus berupa numerik

vektor tidak boleh NA, NaN, Inf

Vektor harus memiliki panjang yang sama

Page 13: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Fungsi konstrukror

Page 14: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Menggunakan fungsi konstruktor

Page 15: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Menghilangkan informasi class

Kadang tidak dibutuhkan informasi dalam bentuk class

Gunakan fungsi unclass

Page 16: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Fungsi Aksesor

Walaupun objek coords dapat diperlakukan sebagai list untuk

akses data, tetapi akan lebih baik digunakan fungsi aksesor

sendiri

Akan membuat lebih modular dan mudah di modifikasi

Page 17: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Fungsi Generik dan Metode

Atribut Class adalah dasar dari mekanisme OO sederhana

sistem objek “S3”

Mekanisme menggunakan tipe fungsi yang disebut fungsi

generik

Fungsi generik bertindak untuk beralih memilih fungsi

tertentu atau metode tertentu yang dijalankan

Metode tertentu yang dipilih tergantung dalam class argumen

pertama

Contoh: Akan lebih baik jika fungsi print untuk class coords

memiliki metode yang berbeda dengan print list

Page 18: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Metode print

Page 19: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Metode length

Fungsi generik lain misal length yang bisa dibangkitkan untuk

kasus ini

Page 20: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Menciptakan fungsi generik

Metode hanya dapat didefinisikan untuk fungsi yang generik

Untuk menciptakan fungsi generik

Page 21: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Menciptakan Metode bbox

Page 22: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Menambahkan nilai dalam coords

Diinginkan sebuah objek yang berisi lokasi (coords) dan nilai

(value)

Diperlukan menciptakan objek baru dari class vcoords

Objek akan dilabeli dengan class baru atau yang lama

sehingga masih dapat menggunakan metode yang sudah

dibuat

Page 23: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Fungsi konstruktor

Page 24: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Menggunakan konstruktor

Page 25: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Mendefinisikan Metode print

Metode print pada class coords sudah tidak tepat lagi

Page 26: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Hasil

Metode print:

Metode bbox untuk kasus ini masih tepat, jadi tidak perlu

diubah

Page 27: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Transformasi Matematika

Objek vcoords berisi slot numerik yang dapat diubah dengan

transformasi matematika

Diinginkan:

fungsi matematika untuk nilai (tidak koordinat)

penambahan, pengurangan, perkalian dan pembagian dari dua

buah objek

Membandingkan nilai dua objek

dll

Page 28: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Fungsi Matematika

Misal fungsi cos atau sin untuk objek

Page 29: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Metode grup: Math

Hampir semua fungsi matematika membutuhkan identifikasi

yang sama

Langkah lebih cepat menggunakan fungsi get(.Generic)

Ekspresi get(.Generic) mengambil fungsi dengan nama

Math.vcoords yang dijalankan

Page 30: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Hasil

Page 31: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Metode grup: Ops

Mendefinisikan metode untuk Ops generik membuat

mungkin secara simultan mendefinisikan metode untuk

semua operasi biner:

Metode supaya berjalan secara tepat diperlukan untuk

menyakinkan lokasi dari vcoords adalah identik

Page 32: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Metode Grup: Ops

Page 33: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Hasil

Page 34: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Kompleksitas

Sesuatu mungkin lebih kompleks dibanding sebelumnya

Perbandingan (==, !=, <, <=, dll) mengembalikan nilai

logik sehingga menghasilkan hasil vcoords yang tidak perlu

dalam kasus ini

Hanya satu argumen operator biner yang dibutuhkan.

Dibutuhkan pemeriksaan tipe

Page 35: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Memeriksa Class objek

Untuk memeriksa class objek disarankan menggunakan fungsi

inherits:

Page 36: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Ilustrasi

Page 37: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan
Page 38: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Ilustrasi

Page 39: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Subset

Diinginkan untuk memiliki akses terhadap metode subset

Ekspresi berikut misal diinginkan:

Dapat ditangani dengan mendefiniskan metode untuk [

Page 40: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Metode Subset

Page 41: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Assign terhadap subset

Syntax yang diinginkan:

Ekspresi ini secara formal equivalen:

Fungsi [<- adalah generik dan mungkin mendefinisikan

metode untuk hal ini

Page 42: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Definisi Metode Assign Subset

Page 43: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Ilustrasi

Page 44: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Penggantian umum

Secara umum, mungkin untuk mendefinisikan untuk semua

bentuk ekspresi:

Menggunakan

sehingga efek tepat dapat diperoleh dengan mendefinisikan

secara tepat dari ‘fun<-’

Evaluator R juga dapat dipanggil secara nested sepeti

Page 45: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Ilustrasi

Page 46: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

Masalah dalam Sistem Objek S3

Sistem Objek S3 dalam R memberikan fasilitas object-

oriented, tetapi terlalu longgar

Ekspresi berikut diperbolehkan dalam R

Sistem objek S3 tidak secara lengkap dapat dipercaya

Masih banyak technical issue dalam sistem objek S3

Page 47: MATERI 3a Pemrograman Berorientasi Objek (S3) Statistik... · Fungsi Generik dan Metode Atribut Class adalah dasar dari mekanisme OO sederhana sistem objek “S3” Mekanisme menggunakan

AKHIR MATERI