ALGORITMA PEMROGRAMAN 1C ABSTRAKSI DAN GENERALISASI Indah Wahyuni
ABSTRAKSI & 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 2
ABSTRAKSI Membantu untuk fokus pada hal-hal penting dari suatu masalah Melibatkan pengindentifikasian kelas-kelas (classes) dari suatu object, sehingga memungkinkan utk menggroupkannya. Bekerja dengan sedikit parameter/variabel dari kelas-kelas yang ditinjau. Contoh : Ban sepeda Mobil : sepeda balap, sepeda gunung : sedan, jeep, wagon, truk, dll 3
TINGKATAN ABSTRAKSI Abstraksi Fungsional Komponen mengimplementasikan satu fungsi, misalnya fungsi matematika. Pengelompokkan Kasual Komponen merupakan sekumpula entitas yang berhubungan longgar (loossly related) yang mungkin berupa deklarasi data, fungsi, dsb. Abstraksi Data Komponen merepresentasikan abstraksi data atau kelas perangkat lunak berorientasi objek. 4
TINGKATAN ABSTRAKSI Abstraksi Kluster Komponen merupakan sekumpulan kelas yang berhubungan yang bekerja sama. Abstraksi Sistem Komponen merupakan sistem yang berdiri sendiri. Eg. API (application programming interface) yg dpt mengakses command dan operasi. 5
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 6
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. 7
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 : binding di mana namanama yang di dalamnya terikat dipergunakan (langsung atau tidak langsung) di bindingnya itu sendiri 8
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 9
ENKAPSULASI Setiap kelas hanya menampakkan interface yang diperlukan untuk berkomunikasi dengan dunia luar melalui message dan menyembunyikan (encapsulating)/implementasi aktual di dalam kelas. Pengapsulan merupakan kemampuan sebuah obyek kelas untuk membatasi akses client ke reprensentasi internal obyek (data dan fungsi) 10
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 Deklarasi modul yang memberikan simbol dari modul lain yang tersedia untuk digunakan dalam bagian modul dan dalam modul lain yang mengimpornya 11
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 12
PRINSIP GENERALISASI 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. 13
PRINSIP ANALOG 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 14
PRINSIP PARAMETERISASI Adalah sebuah parameter dari sebuah generik bisa terbentuk dari domain 15
SUBSTITUSI Penggunaan abstraksi dan generalisasi bergantung pada substitusi. Ikatan keduanya terkandung pada prinsip berikut: Prinsip Korespondensi: Mekanisme binding parameter dan mekanisme definisi adalah setara 16
PRINSIP KORESPONDENSI Adalah suatu formalitas yang menyangkut aspek / pengarahan prinsip abstrak yang mengandung subtitusi dan definisi yang saling terkait. 17
STRUKTUR BLOK Sebuah blok adalah sebuah konstruksi yang membatasi cakupan definisi yang terkandung di dalamnya Syntax blok: let Definitionsin Body end Body where Definitions Syntax di atas menyatakan dua tipe blok, yang pertama membutuhkan definisi sebelum body dan yang kedua membutuhkan definisi sesudah body 18
STRUKTUR BLOK Block merupakan suatu definisi wilayah bagian bahasa pemrograman. Urutan dari statemen yang executable yang diperlakukan sebagai suatu unit Block disebut subprogram atau routine di kebanyakan bahasa pemrograman 19
STRUKTUR BLOK Ada tiga dasar struktur blok: monolitik, flat dan nested 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 20
ATURAN CAKUPAN (SCOPE) Tindakan mempartisi sebuah program mengangkat masalah cakupan namanama 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 21
ATURAN CAKUPAN (SCOPE) Dynamic Scope Suatu subprogram yang didefinisikan di satu tempat dalam suatu program dan dapat dipanggil dari lingkungan yang berbeda Static Scope Subprogram dipanggil dari lingkungan tempat subprogram tersebut didefinisikan 22
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 di sini merupakan nama subprogram yang didefinisikan secara lokal di dalam suprogram Q (nested subprogram) 23
24