10/30/2010
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
1
ABSTRAKSI Abstraksi dapat membantu kita untuk fokus pada halhal 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 kelaskelas yang ditinjau. Contoh : •Ban sepeda •Mobil
: sepeda balap, sepeda gunung : sedan, jeep, wagon, truk, dll 2
1
10/30/2010
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
3
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.
4
2
10/30/2010
Jenis-jenis binding • Collateral binding melakukan binding secara terpisah satu sama lainnya dan kemudian menggabungkan bindingbinding 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 5
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.
6
3
10/30/2010
ENKAPSULASI • Kita hanya membutuhkan pemahaman tentang interface (methode), tidak perlu paham tentang internalnya (implementation). • Pengapsulan merupakan kemampuan sebuah obyek kelas untuk membatasi akses client ke reprensentasi internal obyek (data dan fungsi)
7
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 8
4
10/30/2010
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 9
Generalisasi dan abstrak sering digunakan bersamasama. 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.
10
5
10/30/2010
Prinsip Generalisasi • 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 11
Substitusi • Penggunaan abstraksi dan generalisasi bergantung pada substitusi. Ikatan keduanya terkandung pada prinsip berikut: • Prinsip Korespondensi: Mekanisme binding parameter dan mekanisme definisi adalah setara
12
6
10/30/2010
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 13
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 14
7
10/30/2010
Struktur Block 1. Block merupakan suatu bagian dari scopedefining 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
15
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 --Statemen untuk subprog1; End Subprog1; Procedure Subprog2; --Deklarasi lokal Subprog2; Begin --Statemen untuk Subpro2; End Subprog2; Begin --Statemen untuk main; End main
16
8
10/30/2010
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 17
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
18
9
10/30/2010
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)
19
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 20
10
10/30/2010
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
21
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
22
11