Abstraksi
dan Generalisasi
Abstraksi
Abstraksi adalah deskripsi
dari suatu masalah pada level generalisasi tertentu, sehingga memungkinkan kita
untuk berkonsentrasi pada aspek kunci dari masalah tersebut tanpa memperhatikan
hal-hal detail.
Abstraksi dapat membantu
kita untuk fokus pada hal-hal penting dari suatu masalah.
Abstraksi melibatkan
pengidentifikasian kelas-kelas (classes) dari suatu object, sehingga
memungkinkan kita menggroupkannya. Dengan cara tersebut kita bekerja dengan
sedikit parameter/variabel dari kelas-kelas yang ditinjau.
Contoh :
- Monitoring : berbagai macam sistem monitoring
- Ban sepeda : sepeda balap, sepeda gunung
- Mobil : sedan, jeep, wagon, truk, dll
- perbedaan jumlah entitas yang dapat ditangani
- jumlah attribute yang dapat ditempelkan ke entitas yang dapat ditangani
- waktu kemunculan binding (binding time)
- stabilitas binding (binding yang sudah terbentuk bersifat tetap atau dapat dimodifikasi)
- Simple Binding
- Complex Binding
- Early Binding
- Late Binding
- Language definition time binding
- Language implementation time binding
- Compile-time (Translation-time) binding
- Execution-time (Run-time) binding
- Pengkapsulan berarti mengemas beberapa item bersama-sama menjadi satu unit yang tertutup dalam rangka menyembunyikan struktur internal suatu obyek dari lingkungan/dunia luar
- Pengkapsulan sering dianggap sebagai “penyembunyian informasi”
- Setiap kelas hanya menampakkan interface yang diperlukan untuk berkomunikasi dengan dunia luar melalui message dan menyembunyikan (encapsulating)/implementasi aktual di dalam kelas.
- Kita hanya membutuhkan pemahaman tentang interface (method), tidak perlu paham tentang internalnya(implementation)
- Pengkapsulan merupakan kemampuan sebuah obyek kelas untuk membatasi akses client ke representasi internal obyek (data dan fungsi)
- 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
- Dynamic Scope
- Static Scope
Tingkatan Abstraksi
·
Abstraksi Fungsional
Komponen
mengimplementasikan satu fungsi, misalnya fungsi matematika. Pada intinya
interface merupakan fungsi itu sendiri.
·
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
Komponen
merepresentasikan abstraksi data atau kelas perangkat lunak bahasa berorientasi
obyek. Interface
terdiri dari operasi untuk membuat, memodifikasi dan mengakses abstraksi data.
·
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.
Generalisasi
Generalisasi adalah
perluasan suatu aplikasi yang meliputi suatu daerah obyek yang lebih besar
dengan jenis yang berbeda atau jenis yang sama.
Binding
·
Attribute : nilai internal atau data terkait pada
suatu obyek yang menunjukkan ciri-ciri atau sifat-sifat dari obyek serta
penggambaran keadaan (state) obyek
Contoh :
Nama obyek : mobil
Attribute :
Merek : Toyota
Silinder : 2000 cc
Warna : merah
Status : baru / jalan
Tahun : 2006
·
Binding : Pengaturan nilai attribute
·
Descriptor : informasi attribute yang diisikan dalam
tempat penyimpanan untuk setiap entitas
Binding merupakan pusat dari
konsep definisi semantik bahasa pemrograman.
Bahasa pemrograman berbeda
satu dengan yang lainnya karena :
Jenis Binding
Ada dua tipe / jenis binding
bila dilihat dari kontrol yang digunakan untuk binding data, yaitu :
Jika dilihat dari sisi waktu
pengikatan data (binding) dapat dibedakan lagi ke dalam dua jenis, yaitu :
Contoh 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”.
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.
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.
Pada banyak
bahasa pemrograman, variabel di-binding-kan ke suatu nilai pada saat execution
time, dan binding dapat dimodifikasi berulang-ulang selama eksekusi.
Enkapsulasi
Prinsip Generalisasi
Prinsip generalisasi
adalah suatu bentuk umum dari suatu kesatuan yang khusus.
Contoh :
Lamda p.B’
Dimana lambda menyatakan suatu abstrak yang menandakan
generalisasi B jika p dipanggil oleh suatu parameter B’
Prinsip generalisasi
tergantung pada prinsip analogi.
Generalisasi dan abstrak
sering digunakan bersam-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 disebt argumentasi.
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.
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.
Substitusi
Kegunaan abstraksi dan
generalisasi tergantung pada substitusi
Prinsip Korespondensi
Prinsip korespondensi adalah
suatu formalitas yang menyangkut aspek/pengarahan prinsip abstrak yang
mengandung substitusi dan definisi yang saling terkait.
Struktur Block
Block disebut subprogram
atau routine dikebanyakan bahasa pemrograman.
Struktur Block dari suatu
bahasa pemrograman :
Program main;
--deklarasi lokal Main;
Procedure Subpro1;
---deklarasi lokal Subpro1;
Procedure Subpro3;
---deklarasi lokal
Subpro3;
Procedure Subpro4;
---deklarasi lokal Subpro4;
Begin
--Statement untuk Subprog1;
End Subprog1;
Procedure Subprog2;
--Deklarasi lokal Subprog2;
Begin
--statemen untuk Subpro2;
End Subprog2;
Begin
--statemen untuk main;
End main
Aturan Cakupan :
Suatu subprogram
yang didefinisikan di satu tempat dalam suatu program dan dapat dipanggil dari
lingkungan yang berbeda (lingkungan dimana subprogram tersebut tidak
didefinisikan)
Subprogram
dipanggil dari lingkungan tempat subprogram tersebut didefinisikan
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).
Tidak ada komentar:
Posting Komentar