Wednesday, November 7, 2018
Abstraction and Generalization
A. KONSEP
DASAR ABSTRACTION AND GENERALIZATION
1. ABSTRACTION
Abstraction atau disebut juga composition merupakan
prinsip penyederhanaan dari sesuatu yang kompleks dengan cara memodelkan kelas
sesuai dengan masalahnya.. Pada
pemrograman berorientasi obyek
biasanya kalau kita menjumpai beberapa kelas atau obyek yang kalau
diidentifikasi memiliki banyak kesamaan atribut dan method maka kita akan
menggabungkan kelas-kelas tersebut menjadi satu super class.
Contoh
:
•
Monitoring : berbagai macam sistem monitoring
•
Ban sepeda : sepeda balap, sepeda gunung
•
Mobil : sedan, jeep, wagon, truk, dll
Tingkatan Abstraksi
• Abstraksi Fungsional
Tingkatan Abstraksi
• Abstraksi Fungsional
Komponen mengimplementasikan satu
fungsi, misalnya fungsi matematika. Pada
intinya interface merupakan fungsi itu sendiri.
• Pengelompokkan Kasual
• Pengelompokkan Kasual
Komponen merupakan sekumpulan
entitas yang berhubungan longgar (loosely
related) yang mungkin berupa deklarasi data, fungsi, dsb. Interface terdiri dari nama semua entitas pada
pengelompokan
tersebut.
• Abstraksi Data
• Abstraksi Data
Komponen merepresentasikan abstraksi
data atau kelas perangkat lunakbahasa berorientasi obyek. Interface terdiri
dari operasi untuk
membuat, memodifikasi dan mengakses abstraksi data.
• Abstraksi Cluster
• Abstraksi Cluster
Komponen merupakan sekumpulan kelas
yang berhubungan yang bekerja sama. Kelas-kelas ini
kadang-kadang dinamakan kerangka kerja. Interface
merupakan komposisi semua interface dari obyek-obyek yang membangun kerangka kerja tersebut.
• Abstraksi System
Komponen
merupakan system yang sepenuhnya berdiri sendiri. Pemakaian ulang abstraksi tingkat system kadangkala disebut
pemakaian ulang
produk cost. Interface adalah apa
yang disebut API (Aplication Programming Interface)
yang didefinisikan untuk memungkinkan program mengakses
command dan operasi.
2.
GENERALIZATION
Generalization/generalisasi adalah aplikasi
untuk menutupi ekstensi domain yang lebih besar dari objek yang sama atau yang
berbeda jenis. Parameter
adalah kuantitas yang nilainya bervariasi dengan keadaan aplikasi.
Abstraksi
dan generalisasi yang mendasar untuk matematika dan filsafat dan sangat penting
dalam ilmu komputer juga. Pentingnya abstraksi berasal dari kemampuannya untuk
menyembunyikan detail yang tidak relevan dan penggunaan dari nama-nama
referensi obyek. Bahasa pemrograman menyediakan abstraksi melalui prosedur,
fungsi, dan modul yang memungkinkan programmer untuk membedakan antara program
apa yang dilakukan dan bagaimana ini diterapkan.
B. JENIS-JENIS
BINDING
Ada dua tipe / jenis binding bila
dilihat dari kontrol yang digunakan untuk binding data, yaitu
a.
Simple Binding : Halaman kita dapat menggunakan single value data binding untk
menambahkan informasi di bagian mana saja didalam halaman ASP.Net ,
bahkan dapat menempatkan sebagian informasi ke dalam control atau plain
text dalam html tag, single value data binding sering disebut dengan
TextDinamis untuk sekedar mengubah sebagian data yang ada.
b. Complex Binding
Jika dilihat dari sisi waktu pengikatan
data (binding) dapat dibedakan lagi ke dalam dua jenis, yaitu :
a. Compile Time/ Early Binding : Pada saat compile-time Object mengenali dirisendiri.
Overloading adalah compile time polymrohism.
b. Run Time/Late
Binding : Object
tidak mengenali diri sendiri pada saat
compile-time. Object tersebut menugaskan properties dan method pada saat
run-time. Overriding atau inheritance-based polymorphism adalah bentuk dari
polymorphism.
• Language definition time binding
Dalam
banyak bahasa pemrograman (Fortran, ADA, C++), tipe “integer” di-binding-kan
pada waktu pendeteksian bahasa untuk operasi matematika yang sudah umum,
misalnya untuk operasi aljabar yang menghasilkan dan memanipulasi “integer”.
• Language implementation time binding
Dalam
banyak bahasa pemrograman (Fortran, ADA, C++) suatu kumpulan nilai di-binding
ke tipe integer pada waktu implementasi bahasa. Pada saat pendefinisian bahasa,
tipe integer harus didukung dan implementasi bahasa mem-binding-kan ke
representasi memori, yang kemudian menentukan sekumpulan nilai yang akan
diisikan ke dalam tipe tersebut.
• Compile-time (Translation-time) binding
Pascal
mempunyai fasilitas definisi predefine dari tipe “integer”, tetapi mengizinkan
programmer untuk mendefinisikan ulang tipe ini. Dengan demikian, tipe “integer”
di-binding-kan sebagai gambaran pada waktu impementasi bahasa, tetapi binding
ini dapat dimodifikasi pada saat translation time.
•
Execution-time (Run-time) binding
Pada
banyak bahasa pemrograman, variabel di-binding-kan ke suatu nilai pada saat
execution time, dan binding dapat dimodifikasi berulang-ulang selama eksekusi.
C. ENKAPSULASI
Enkapsulasi adalah suatu cara untuk
menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar
dalam enkapsulasi yakni : Information hiding , Interface to access data.
Sebelumnya kita dapat mengakses anggota
class baik berupa atribut maupun method secara langsung dengan menggunakan
objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan
kepada atribut maupun method yang ada di dalam class tersebut adalah ‘public’.
Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class
tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan
akses kontrol ‘private’ ketika mendeklarasikan atribut atau method. Proses ini
disebut dengan information hiding.
Jika kita telah melakukan information
hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan
perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan
membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai
dari suatu atribut tersebut yang dinamakan dengan interface to access data.
D.
PRINSIP
GENERALISASI
Prinsip generalisasi adalah suatu bentuk
umum dari suatu kesatuan yang khusus. Pola tunggal
untuk mewakili menggunakan notasi: lambda p.B' (Disebut abstraksi lambda) untuk menunjukkan B
generalisasi di mana p disebut parameter dan B 'adalah B .
Prinsip generalisasi tergantung pada
prinsip analogi. Generalisasi dan abstrak sering digunakan bersama-sama. Abstrak digeneralisasi dengan parameterisasi
untuk mendapatkan manfaat yang lebih besar. Di dalam parameterisasi atau lebih
bagian dari satu kesatuan dapat digantikan dengan suatu nama baru. Nama yang
digunakan sebagai suatu paramenter ketika abstrak yang telah diparamenterkan
dilibatkan dengan suatu binding parameter disebut argumentasi.
E.
PRINSIP ANALOGI
Prinsip analogi ada ketika suatu
penyelesaian pada pola diantara 2 obyek yang berbeda. Dimana obyek dapat
digantikan dengan obyek tunggal yang parameterized untuk melakukan rekonstruksi
yang menyangkut obyek yang asli.
F.
PRINSIP
PARAMETERISASI
Prinsip parameterisasi adalah suatu
parameter yang secara umum mungkin berasal dari beberapa domain. Istilah
parameter formal dan parameter nyata sering disebut dengan argumentasi.
G.
SUBSTITUSI
Penggunaan
abstraksi dan generalisasi bergantung pada substitusi. Ikatan keduanya
terkandung
pada prinsip tersebut.
H.
PRINSIP
KORESPONDENSI
Prinsip korespondensi adalah suatu
formalitas yang menyangkut aspek/pengarahan prinsip abstrak yang mengandung
substitusi dan definisi yang saling terkait.
I.
STRUKTUR BLOK
Block merupakan suatu bagian dari
scope-defining bahasa pemrograman. Artinya, Block merupakan suatu definisi
wilayah bagian bahasa pemrograman. Block merupakan
urutan dari statement yang executable yang diperlakukan sebagai suatu unit
Block disebut subprogram atau routine dikebanyakan bahasa pemrograman.
J.
ATURAN CAKUPAN
Tindakan mempartisi
sebuah program mengangkat masalah cakupan nama-nama
•Ada empat pilihan:
1.Semua nama tersedia secara global
2.Semua nama eksternal tersedia secara lokal
3.Hanya nama-nama yang diekspor secara eksplisit tersedia secara global
4.Hanya nama-nama eksternal yang diimpor secara eksplisit yang tersedia secara lokal
•Ada empat pilihan:
1.Semua nama tersedia secara global
2.Semua nama eksternal tersedia secara lokal
3.Hanya nama-nama yang diekspor secara eksplisit tersedia secara global
4.Hanya nama-nama eksternal yang diimpor secara eksplisit yang tersedia secara lokal
Aturan cakupan dinamis
à menentukan cakupan masing-masing asosiasi dalam hal dinamisasi
eksekusiprogram
•Aturan cakupan statis à disebut juga aturan cakupan leksikal
•Aturan cakupan statis à disebut juga aturan cakupan leksikal
K.
STATIK
Subprogram dipanggil dari lingkungan
tempat subprogram tersebut didefinisikan
L.
DIMANTIK
Suatu subprogram yang didefinisikan di
satu tempat dalam suatu program dan dapat dipanggil dari lingkungan yang
berbeda (lingkungan dimana subprogram tersebut tidak didefinisikan).
M.
LINGKUNGAN
Lingkungan lokal suatu subprogram Q
terdiri atas bermacam-macam identifier yang dideklarasikan di bagian atas dari
subprogram Q. Nama, variabel, nama parameter formal, dan nama subprogram
diperhatikan disini. Nama subprogram disini merupakan nama subprogram yang
didefinisikan secara lokal di dalam subprogram Q (nested subprogram).
Subscribe to:
Post Comments (Atom)
Permisi kak, penjelasan untuk Statik, apakah hanya itu saja atau ada lagi ya kak. Terimakasih.
ReplyDelete