“Materi UAS”
ABSTRACT DATA TYPE
·
Dalam bahasa pemrograman abstraksi adalah sebuah tools untuk
menghindari pemrograman yang kompleks dengan cara menyederhanakan proses
pemrograman.
·
Secara umum, ADT adalah sebuah tipe data yang memenuhi
kondisi berikut :
1.
Representasi, operasi, dan tupe objek didefinisikan dalam
single syntatic unit.
2.
Representasi dari objek disembunyikan dari unit program yang
menggunakan objek tersebut, sehingga operasi yang memungkinkan adalah operasi
yang disediakan didalam type’s definition.
(ADT tidak bisa terlepas dari attribute)
Keuntungan
ADT :
1.
Program terorganisasi, dapat dimodifikasi, dan kompilasi
terpisah.
2.
Dapat diandalkan dengan menyembunyikan representasi data,
pengguna (user) tidak dapat mengakses objek secara langsung.
Fitur
Utama ADT :
1.
Packaging of data with their associated operation
2.
Information hiding :
·
Private ( - )
·
Protected ( # )
·
Pubic ( + )
OOP
(Object-Oriented Program)
Mengapa
OOP?
·
OOP sangat mendukung abstraksi dari object (model) yang ada
di dunia nyata dimana manusia lebih familiar dengan object nyata sehingga
memudahkan dalam mengenali object tersebut. Contoh : manusia, mahasiswa, dll.
Pengenalan
OOP
1.
Istilah yang sering digunakan didalam OOP
a. Object merupakan sekumpulan
(set) yang terdiri dari attribute dan method.
Attribute : struktur data object.
Method : fungsi yang bisa digunakan object.
b. Object itu sendiri
direpresentasikan oleh sebuah nama yang mewakili object yang disebut sebagai
class sehingga dijelaskan bahwa instance of class adalah object.
c. Class mempunyai turunan class
yang disebut derived class (subclass), sementara induk dari class disebut
superclass.
d. ADT biasanya disebut class.
e. Sub-program yang
mendefinisikan operasi pada object disebut method.
f.
Panggilan kepada method disebut message.
g. Seluruh koleksi dari method
sebuah object disebut massage protocol dan method interface.
h. Ada 2 jenis variable didalam
sebuah class : Class variable dan Instance variable.
i.
Ada 2 jenis method pada class : Class method dan Instance
method.
2.
Karakteristik OOP :
·
ADT
·
Inheritance
·
Dynamic binding (Polymorphism)
INHERITANCE
·
Salah satu karakteristik class yang kegunaannya adalah
subclass yang merupakan turunan dari superclass dapat mengambil pewarisan baik
attribute maupun method dari superclass ditambah dengan apa yang dimiliki
subclass itu sendiri.
·
Dynamic binding berkaitan erat dengan polymorphism yang memungkinkan nama method yang sama dapat
diimplementasikan dengan cara berbeda.
·
Dalam C++, dynamic binding terjadi ketika sebuah virtual
function dipanggil menggunakan sebuah reference atau sebuah pointer ke sebuah
base class.
CONCURRENCY
Concurrent
programming mendasari dua sudut pandang utama sistem operasi modern, yaitu
multiprogramming dan pemrosesan terdistribusi, disamping merupakan dasar
teknologi perancangan sistem operasi, konkurensi dibutuhkan dalam banyak
konteks yang berbeda, antara lain aplikasi majemuk (multiple applications) pada
multiprogramming, aplikasi terstuktur pada perancangan dan pemrograman
terstuktur dan implementasi proses-proses pada stuktur sistem operasi.
Definisi
Concurrency : Sebuah sistem komputer harus menangani beberapa program (task)
uang harus dieksekusi bersama dalam sebuah lingkungan (baik mono/multi
processor). Pada pemrograman konkruen, kita tidak lagi berpikir sekuensial,
melainkan harus menangani komunikasi dan sinkronisasi antar program.
Concurrency
dapat terjadi pada 4 level, yaitu :
1.
Machine instruction level
2.
High level language statement level
3.
Unit level
4.
Program level
Kategori
Concurrency :
1.
Physical Concurrency
Dikatakan physical concurrency apabila lebih dari 1 processor tersedia,
beberapa unit program dari program yang sama dieksekusi secara simultan
(multiple threads of control)
2.
Logical Concurrency
Dikatakan logical concurrency apabila memiliki banyak processor menyediakan
Actual concurrecy, dimana pada keadaan sebenarnya actual execution dari program
berlangsung pada interleaved processor.
Introduction
to sub-programming level concurrency :
·
Task / proses adalah unit program yang dapat dieksekusi
secara konkruen dengan unit program lain.
·
Masing-masing task pada program dapat mendukung satu thread
of control.
Karakteristik
yang membedakan task dengan subprogram :
·
Implisit = tidak terlihat jelas.
·
Jika unit program mulai eksekusi task, tidak perlu menunggu
eksekusi selesai baru melanjutkan.
Task
dibagi menjadi 2 kategori umum :
1.
Heavy weight task
2.
Light weight task
Ada
2 jenis sinkronisasi sebagai fasilitas utama :
1.
Coorperation synchronization
2.
Competition synchronization
SEMAPHORES
·
Semaphores adalah stuktur data yang terdiri dari counter dan
antrian (queue) yang menyimpan task descriptor.
·
Task descriptor adalah struktur data yang menyimpan semua
informasi yang relevan terhadap state eksekusi dari sebuah task.
MONITOR
· Satu solusi untuk beberapa
permasalahan semaphore pada concurrency adalah dengan mengekapsulasi struktur
shared data dengan operasinya untuk membatasi akses.
· Monitor adalah tipe data
abstrak untuk shared data.
MESSAGE
PASSING
· Model umum untuk concurrency
· It can be model both
semaphores and monitors
· It is not just for
competition synchronization
EXECPTION
HANDLING
· Merupakan proses untuk
merespon suatu kejadian selama terjadi komputasi, pada saat terjadi kesalahan
atau anomali yang membutuhkan suatu proses khusus dimana sering terjadi
perubahan / kesalahan sdari alur pengeksekusian program.
· The event handler is a
segment of code that’s called in response to an event.
· The special processing that
may be required after detection of an exception is called exception handling.
· The exception handling code
unit is called an axception handler.
FUNCTIONAL
PROGRAMMING LANGUAGE
Comparing
functional and Imperative language
1.
Imperative language
·
Efficient execution
·
Complex semantics
·
Complex syntax
·
Concurrency is programmer designed
2.
Functional language
·
Simple semantics
·
Simple syntax
·
Inefficient execution
·
Programs can automatically be made concurrent
Functional
Programming Language
·
Primitive function
·
Lambda expression
Form is base on l notation
e.g., ( LAMBDA ( x )( * x x ) )
x is called variable
LOGIC
PROGRAMMING LANGUAGE
·
Berdasarkan pada deklarasi fakta atau aturan.
Tidak ada komentar:
Posting Komentar