ABSTRAKSI DAN GENERALISASI

ABSTRAKSI DAN GENERALISASI

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 pengindentifikasian 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

TINGKATAN ABSTRAKSI
• Abstraksi Fungsional
• Pengelompokan kasual
• Abstraksi data
• Abstraksi cluster
• Abstraksi sistem

GENERALISASI
Generalisasi adalah perluasan suatu aplikasi yang meliputi suatu daerah object yang lebih besar dengan jenis yang berbeda atau jenis yang sama.

BINDING
• Attribute : nilai internal atau data terkait pada suatu objek yang menunjukkan ciri-ciri atau sifat-sifat dari obyek serta penggambaran keadaan (state) obyek
Contoh :
Nama objek : mobil
Attribute :
Merek : toyota
Silinder : 2000cc
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 semantic bahasa pemrograman
Bahasa pemrograman berbeda satu dengan yang lainnya karena:
• 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)

JENIS BINDING
Ada dua tipe / jenis binding bila dilihat dari control yang digunakan untuk binding data, yaitu :
1. Simple Binding
2. Complex Binding
Kalau dilihat dari sisi waktu pengikatan data (binding) bisa dibedakan lagi ke dalam dua jenis, yaitu :
1. Early Binding
2. Late Binding

Contoh Binding
• Language definition time binding
• Language implementation time binding
• Compile-time (translation-time) binding
• Execution-time (Run-time) binding

ENKAPSULASI
• Pengkapsulan berarti mengemas beberapa item bersama-sama menjadi satu unit yang tertutup dalam rangka menyembunyikan struktur internal suatu obyek dari lingkungan/dunia luar
• Pengkapsulasan 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 (methode), tidak perlu paham tentang internalnya (implementation).
• Pengapsulan merupakan kemamupan sebuah obyek kelas untuk membatasi akses client ke reprensentasi internal obyek (data dan fungsi)

PRINSIP GENERALISASI
Prisip generalisasi adalah suatu bentuk umum dari suatu kesatuan yang khusus.
Contoh : lamda p.B’
Dimana lamda 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 bersama-sama. Abstrak digeneralisasi dengan parameterisasi untuk mendapatkan manfaat yang lebih besar. Di dalam parameterisasi satu atau lebih bagian dari suatu kesatuan dapat digantikan dengan suatu nama baru. Nama yang digunakan sebagai suatu parameter ketika abstrak yang telah diparameterkan dilibatkan dengan suatu binding parameter disebut argumentasi.

Prinsip Analogi
Prinsip analogi ada ketika suatu penyesuaian pada pola di antara 2 object yang berbeda. Dimana object dapat digantikan dengan object tunggal yang parameterized untuk melakukan rekonstruksi yang menyangkut object 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 korenpondensi
Prinsip korespondensi adalah suatu formalitas yang menyangkut aspek /pengarahan prinsip abstrak yang mengandung substitusi dan definisi saling terkait.
Struktur Block
1. Block merupakan suatu bagian dari scope-defining bahasa pemrograman. Artinya, Block merupakan suatu definisi wilayah bagian bahasa pemrograman.
2. Block merupakan urutan dari statemen yang executable yang diperlakukan sebagai suatu unit
Block disebut subprogram atau routine di kebanyakan bahasa pemrograman
Struktur Block dari suatu bahasa pemrograman

Aturan Cakupan
• Dynamic Scope
Suatu subprogram yang didefinisikan di satu tempat dalam suatu program dan dapat dipanggil dari lingkungan yang berbeda (lingkungan dimana subprogram tersebut tidak didefinisikan)
• Static Scope
Subprogram dipanggil dari lingkungan tempat subprogram tersebut didefinisikan

Abstraksi dan Generalisasi
•Abstraksi adalah penekanan pada gagasan, kualitas dan properti, bukan pada detail tertentu (penekanan pada detail)
•Generalisasi adalah perluasan dari aplikasi yang mengarah pada domain yang lebih besar dari obyek yang sama atau tipe yang berbeda

Binding
•Obyek yang terikat pada nama disebut bindables (terikat) pada bahasa
•Yang termasuk bindable adalah: data primitif, nilai kumpulan, referensi ke variabel, tipe-tipe, dan abstraksi yang executable

Jenis-jenis binding
•Collateral binding à melakukan binding secara terpisah satu sama lainnya dan kemudian menggabungkan binding-binding itu untuk menghasilkan sekumpulan lengkap binding
•Sequential binding à melakukan binding dalam urutan kemunculan mereka
•Recursive binding à adalah binding di mana nama-nama yang di dalamnya terikat dipergunakan (langsung atau tidak langsung) di bindingnya itu sendiri

Enkapsulasi
•Sebuah modul umumnya terdiri dari dua bagian: bagian ekspor dan bagian lokal
•Bagian ekspor dari sebuah modul terdiri dari deklarasi bahasa untuk simbol-simbol yang tersedia untuk digunakan dalam bagian modul dan modul lain yang mengimpornya dan deklarasi modul yang memberikan simbol dari modul lain yang tersedia untuk digunakan dalam bagian modul dan dalam modul lain yang mengimpornya


Prinsip Generalisasi
•Sebuah generik adalah sebuah entitas yang bisa dikhususkan (dijabarkan lebih jauh) terhadap invokasi
•Prinsip analogi: Ketika ada kecocokan pola antara dua obyek berbeda, obyek-obyek ini bisa digantikan oleh sebuah obyek yang diberikan parameter untuk memungkinkan rekonstruksi obyek-obyek aslinya
•Prinsip parameterisasi à sebuah parameter dari sebuah generik bisa terbentuk dari domain•

Substitusi
•Penggunaan abstraksi dan generalisasi bergantung pada substitusi. Ikatan keduanya terkandung pada prinsip berikut:
•Prinsip Korespondensi: Mekanisme binding parameter dan mekanisme definisi adalah setara

Struktur Blok
•Sebuah blok adalah sebuah konstruksi yang membatasi cakupan definisi yang terkandung di dalamnya
•Ada tiga dasar struktur blok: monolitik, flat dan nested
•Syntax blok:
let Definitions in Body end
Body where Definitions

Struktur Blok
•Syntax di atas menyatakan dua tipe blok, yang pertama membutuhkan definisi sebelum body dan yang kedua membutuhkan definisi sesudah body
•Monolitik à hanya terdiri dari satu blok saja
•Flat à body nya bisa saja mengandung blok-blok tambahan tetapi blok bagian dalam tidak mengandung blok
•Nested à jika blok-blok dimungkinkan untuk bersarang (nested) di dalam blok lain

Aturan Cakupan (Scope)
•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

Aturan Cakupan (Scope)
•Aturan cakupan dinamis à menentukan cakupan masing-masing asosiasi dalam hal dinamisasi eksekusi program
•Aturan cakupan statis à disebut juga aturan cakupan leksikal

Prosedur dan Fungsi
•Sebuah program bisa saja terdiri dari sebuah program utama yang pada saat eksekusi memanggil subprogram yang pada gilirannya bisa saja memanggil subprogram lain, dan seterusnya.
•Setiap subprogram bisa memiliki data lokalnya sendiri yang bisa ditemukan dalam record aktivasi

Parameter dan Argumen
•Sebuah generik dikatakan strict dalam sebuah parameter jika dia membutuhkan nilai parameter dan non-strict dalam sebuah parameter jika dia tidak membutuhkan nilai dari parameter
•Evaluasi lazy à adalah sebuah skema evaluasi di mana argumennya dievaluasi hanya pada saat dibutuhkan

Mekanisme Pemasukkan Argumen
•Mekanisme penggandaan mengharuskan nilai-nilai dikopi ke sebuah generik ketika dia dimasukkan dan dikopi keluar dari generik ketika generik dihentikan. Bentuk pemasukkan parameter ini sering disebut passing by value.

Mekanisme Pemasukkan Argumen
•Mekanisme definisi seakan-akan abstrak itu dikelilingi oleh sebuah blok di mana di dalamnya ada sebuah definisi yang mengikat parameter ke argumen itu. Sebuah parameter dikatakan passed by reference jika argumennya adalah sebuah address

Cakupan dan Blok
•Sebuah variabel yang dideklarasikan dalam sebuah blok memiliki jangka waktu hidup (lifetime) dimulai dari sebuah record aktivasi diciptakan untuk blok itu hingga record aktivasi itu dihapus

Tidak ada komentar:

Posting Komentar