Project Overview - Asik

Download Report

Transcript Project Overview - Asik

Pemrograman Berorientasi Objek
OOP (Object Oriented Programming )
Budi Hartono
Sekolah Tinggi Elektronika dan Komputer
( STEKOM ) Semarang
Software Development and
Software Life Cycle




Para ahli telah mengembangkan banyak model
untuk proses pengembangan software.
Software
life
cycle
akan
membuat
pengembangan
software
menjadi
lebih
tersetruktur, mudah di komunikasikan , mudah
diawasi.
Suatu model waterfall ditunjukan oleh gambar
dibawah ini
Model ini di mulai dari Spesifikasi kebutuhan,
analisa dan perancangan sistem, deatiled
design, implementasi dan testing integrate and
testing , maintenace
Gambar Sofware Life Cycle
Keterangan

Requirements Spesification ( Kebutuhan spesifikasi )



System Analysis and Design



Menentukan kebutuhan dan hardware yang akan
digunakan untuk mengoperasikan
Peranan Manusia
Detailed Design


Layanan apa saja yang harus disediakan software
Dibawah atasan apa software dioperasikan
Pemecahan system ke dalam sub system dan modulmodul definisi yang lebih jelas
Implementation and Testing

Penulisan kode untuk menghasilkan suatu program yang
benar dan dapat dijalankan pada penerapan dan
percobaan dan memastikan program dapat bekerja
Lanjutan


Integretion and Testing
 Membawa suatu program ke dalam subsystem
dengan berbagai interface antar program
 Testing diperlukan untuk memastikan berjalan
dengan benar, jika ada kode program yang
salah rancangan diperlukan
Maintenance


Jika software sudah sempurna maka perlu diinstalasi
dan diadakan pelatihan bagi pemakai
Pada saat di instalasi kesalahan dapat muncul maka
perlu adanya perawatan
Langkah Membuat Suatu Program
1.
2.
3.
4.
Speisifikasi kebutuhan untuk aplikasi tertentu
Analisa masalah tersebut dan putusan bagaimana
untuk memecahkannya. Gunakan suatu metode
apa untuk memecahkanya ( algoritmanya )
Terjemahkan algoritma tersebut menjadi program
high level languasge, kode pgroam pada penulisan
ini disebut Source Program atau Source Code
Compile program tersebut menjadi Machine
language dan bahasa mesin yang dihasilkan disebut
objek code
Lanjutan
5.
6.
7.
Object code dihasilkan oleh compiler dan di link
dengan berbagai fuction library yang disediakan
system
Jalankan hasil link tersebut, periksa apakah ada
logical error atau run time error, Jika ada
kesalahan ulangi mulai dari tahap 3,4 dan 5
sampai hasil yang memuaskan
Setelah program selesai, perlu adanya
dokumentasi untuk keperluan perbaikan
Paradigma Beorientasi Objek


Faktor utama dari ditemukannya pendekatan berorientasi
objek adalah ditemukannya kekurangan – kekurangan
pada pendekatan terstruktur : biaya pengembangan
perangkat
lunak
berkembang
sesuai
dengan
berkembangnya
keinginan
/kebutuhan
pengguna,
pemeliharaan yang sukar, lamanya penyelesaian suatu
proyek, jangka waktu penyelesaian proyek yang hampir
selalu terlambat, biaya pengembangan perangkat lunak
yang sangat tinggi, dan sebagainya.
Pendekatan berorientasi objek membuat data terbungkus
pada setiap fungsi/ prosedur dan melindunginya terhadap
perubahan tidak dikehendaki dari fungsi yang berada di
luar
Structured Programing

Secara garis besar pemrograman terdiri dari
 Pemrograman tidak tersetruktur (
unstructured programing )
 Pemrograman Prosedural ( procedural
programing )
 Pemrograman Modular (modular programing )
 Pemrograman Tersetruktur ( structured
programing )
Unstructured Programing


Biasanya merupakan sebuah
program kecil dan sederhana yang
terdiri hanya satu program utama,
pada program utama ini rangkaian
perintah perintah yang secara
langsung melakukan modifikasi
data global dalam program
Kelemahan program ini terutama
ketika program tersebut
berkembang menjadi lebih besar
akan mengalami kesulitan dalam
pelacakan data yang error
Program
Main Program
Data
Main
Program
Procedure
Procedural Programing


Pada pemrograman prosedural
rangkaian perintah perintah dapat
dikelompokan yang sering
digunakan pada suatu tempat
menjadi suatu procedure,
kemudian suatu procedure call
dapat digunkan untuk
membangkitkan prosedure
tersebut
Salah satu keunggulan dari
pemrograman procedural ini
adalah program menjadi lebih
terstruktur dan tikat kesalahan
dapat ditekan
Program
Main Program
Data
Procedure
Procedure
Procedure
Modular Programing
Program
Pada pemrograman modular,
Procedure dengan fungsi yang
umum dikelompokan menjadi
suatu modul terpisah, sehinga
suatu program tidak hanya
terdiri dari satu bagian, tetapi
terpisah menjadi beberapa
bagian yang lebih kecil yang
berinteraksi satu sama lain
dengan melalui procedure call
yang membentuk keseluruhan
program
Main Program
Data
Module1
Data + Data1
Procedure
Module2
Data + Data2
Procedure
Procedure
Structured Programing





Pemrograman Tersetruktur ( structured programing ) dapat
dipandang sebagai bagian atau sub-disiplin dari procedural
programing
Satu pardigma paling besar dan populer untuk pemrograman
komputer
Bahasa pemrograman tersetruktur yang paling populer dan baik
adalah : pascal dan Ada
Pada pemrograman tersetruktur, programer harus memecahkan
kode yang besar ke dalam sub rutin yang lebih pendek sebagai
kesatuan logika yang lebih kecil ( procedure dan function) ,
sehingga dpt dimengerti scr mudah.
Pada pemrograman tersetruktur diusahakan menggunakan
variabel global sedikit mungkin dan sebagai gantinya subrutin
harus menggunakan variabel lokal
Apa Itu OOP ?



OOP adalah suatu cara baru dalam berpikir serta
berlogika dalam menghadapi masalah – masalah yang
akan dicoba diatasi dengan bantuan komputer
OOP, tidak seperti pendahulunya, mencoba melihat
permasalah lewat pengamatan dunia nyata dimana setiap
objek adalah entitas tunggal yang memiliki kombinasi
struktur data dan fungsi tertentu
Mengkombinasikan data dan fungsi untuk mengakses data
menjadi sebuah kesatuan unit merupakan ide dasar pada
bahasa berorientasi objek( PBO ). Unit tersebut dikenal
dengan nama objek( object ), yang sebenarnya
mencerminkan pola kerja manusia dalam kehidupan
sehari – hari
Definisi PBO


Sebuah sistem yang dibangun berdasarkan metoda
berorientasi objek adalah sebuah sistem yang
komponen di-enkapsulasi menjadi kelompok data dan
fungsi, yang dapat mewarisi atribut atau sifat dari
komponen lainnya, komponen- komponen tersebut
saling berinteraksi satu sama lainnya (Meyer, 1997)
Objek dapat digolongkan menjadi beberapa kategori (
Ali Bahrani, 1999 )
 Objek Konsep, Objek Event, Objek Organisasi
 Objek Mahasiswa, Objek Tempat, Sesuatu yang
terukur
 Peralatan
Gambar Pendekatan BO
Ciri Pendekatan BO







Pendekatan lebih pada data dan bukannya pada
prosedur/fungsi.
Program besar dibagi pada apa yang dinamakan objek –
objek.
Struktur data dirancang dan menjadi karakteristik dari
objek – objek.
Fungsi – fungsi yang mengoperasikan data tergabung
dalam suatu objek yang sama.
Data tersembunyi dan terlindung dari fungsi/prosedur
yang ada di luar.
Objek – objek dapat saling berkomunikasi dengan saling
mengirim message (pesan) satu sama lain.
Pendekatan adalah dari bawah ke atas (bottom up
approach).
Objek
Identitas adalah sesuatu yang membedakan suatu objek
dari objek yang lainnya. (Rumbaugh, 1995)
 Objek adalah abstraksi dari suatu yang mewakili sesuatu
pada dunia nyata
 Pada PBO, Objek adalah entitas pada saat run time. Objek
mempunyai siklus hidup : diciptakan, dimanipulasi,
dihancurkan. Sebuah objek dapat ditiru lewat namanya
atau lewat referensinya / alamat (Meyer-1997)
 Objek adalah konsep atau abstraksi tentang sesuatu yang
memiliki arti bagi aplikasi yang akan kita kembangkan.
Objek biasanya adalah kata benda, namun objek dalam
konteks Oop bukan hanya objek nyata yang bisa diraba
dan dilihat secara kasat mata seperti mobil, pesawat
terbang, sapi, dan sebagainya, namun juga menyangkut
entitas – entitas konseptual seperti rumus persamaan
kuadrat, leberalisme, marxisme, dan sebagainya.

Objek Model Eksekusi



Program menciptakan sejumlah objek menurut
pola yang tidak dapat diprediksi pada saat
kompilasi
Pada saat opersi, objek baru mungkin saja
diciptakan, reference sebuah objek diubah ke
objek yang lain atau tidak lagi mengacu ke
objek apapun
Nilai yang disimpan dalam sebuah field objek
diubah
Class ( Kelas )





Class adalah kumpulan objek yang mempunyai atribut
yang sama
Class adalah definisi statik dari entitas ( Meyer ’97)
Entitas merupakan salah satu dari yang berikut ini
 Atribut kelas
 Variabel lokal
 Parameter Formal
 Hasil Fungsi
Kelas membungkus (encapsulating) objek-objek.
Kelas mencakup sifat-sifat umum yang dimiliki objekobjek. Misalnya, dosen, rektor sebuah perguruan tinggi,
dekan, ketua jurusan, dan sebagainya, dapat digolongkan
pada suatu kelas yang dinamakan Staf Akademis.
Karakteristik

Karakteristik utama sistem berorientasi objek adalah :
 Abstraksi
 Enkapsulasi ( Pengkapsulan / pembungkusan
 Inheritance ( Pewarisan )
 Reuseability ( dapat digunakan kembali )
 Spesialisasi
 Generalisasi
 Komunikasi antar Objek
 Polymorphis ( banyak bentuk )
Abstraksi


Abstraksi, adalah menemukan hal-hal yang essensial
(dasar/pokok)pada suatu objek dan mengabaikan halhal yang sifatnya insidental. Maksud dari
pernyataan ini diantaranya adalah menangkap
sesuatu fakta yang ada.
Abstraksi menfokuskan pada apa itu objek, apa ciriciri yang dimiliki objek itu (atribut-atributnya) serta
apa yang objek lakukan sebelum memutuskan
bagaimana ia dapat diimplementasikan
Enkapsulasi



Prinsip menyembunyikan dengan menggunakan
struktur data dan hanya meyediakan opersi-operasi
untuk interface dengan luar
Keuntungan dari pembungkusan adalah kita dapat
mengharapkan suatu objek melakukan metoda apa
yang kita inginkan tanpa harus tahu bagaimana objek
itu melakukannya
Contoh : suatu objek dengan televisi. Kita tidak
perlu tahu bagaimana televisi melakukan suatu tugas
tertentu, misalnya menayangkan gambar tertentu.
Yang perlu kita ketahui adalah tombol mana pada
remote control yang harus ditekan, kemudian
televisi akan berfungsi
Pewarisan



Pewarisan ini pada dasarnya adalah berbagi atribut dan
operasi antar kelas berdasarkan hierarki kelas
Motivasi utama dari langkah pewarisan adalah untuk
menghemat upaya yang dilakukan pada suatu
pengembangan sistem yang baru dengan memanfaatkan
upaya-upaya yang dilakukan pada pengembangan sistem
sebelumnya
Pada pemrograman berorientasi objek
menggunakan
konsep pewarisan, pemrogram dapat menghemat waktu
dan biaya saat mengembangkan perangkat lunak dimana
sebagian komponennya sudah pernah dikerjakan pada
proyek-proyek yang telah lalu.
Reusaebility


Penstrukturan kelas menyediakan makna yang
bermanfaat dalam dekomposisi komponenkomponen sistem
Penggunaan ulang komponen (reusable component)
sangat dimungkinkan dengan konsep pewarisan
(inheritance)
yang
dikenal
pada
paradigma
pemrograman berorientasi objek.
Generalisasi / Spesialisasi


Generalisasi/spesialisasi memungkinkan objek-objek
berbagi data serta perilaku yang sama pada hierarki
pewarisan
Generalisasi juga meningkatkan keterpaduan dalam
suatu objek dan mengurangi derajat kesaling
bergantungan (meningkatkan koherensi) objek saat
implementasi kelak
Komunikasi Antar Objek

Objek-objek
dalam program
akan saling
berkomunikasi
antara satu
dengan yang
lainya lewat
pengiriman pesan
( message )
Polymorphisme

Polimorfisme yaitu konsep yang menyatakan
bahwa suatu fungsi yang sama dapat diterapkan
dan dapat dimiliki oleh kelas – kelas yang
berlainan.
Misalnya, fungsi makan, dapat
diterapkan pada baik kelas primata maupun
pada kelas burung. Burung dan primata sama –
sama
perlu
makan
meskipun
mereka
melakukannya dengan caranya masing –
masing.
Dinamika Kehidupan Objek




Lahir ( diciptakan )
Dimanipulasi / memanipulasi
Mati ( dihancurkan )
Objek Merupakan model Eksekusi



Program menciptakan sejumlah objek menurut pola yang
tidak mungkin diprediksi pada saat kompilasi
Pada saat operasi, objek baru mungkin saja diciptakan,
reference sebuah objek diubah ke objek yang lain tidak lagi
mengacu ke objek apapun
Nulai yang disimpan dalam sebuah field objek diubah
Perbedaan Objek dan Kelas



Objek adalah elemen pada saat run time yang akan
diciptakan, dimanipulasi dan dihancurkan saat
eksekusi
Kelas adalah deskripsi statik dari himpunan objek yang
mungkin lahir/diciptakan yang merupakan instansiasi
dari kelas
Pada saat runtime, yang dipunyai adalah objek, di
dalam teks program yang kita lihat hanyalah kelas
Definisi Statik Kelas





Pada lingkungan PBO, pemrograman mendefiniskan kelas
secara statik.
Pada saat run time, kelas akan diinstansiasi ( hal )
menjadi objek
Objek yang merupakan instansiasi dari suatu kelas selalu
dapat diacu lewat Current Objek ( objek sekarang).
Untuk menciptakan ( menghidupkan ) objek diperlukan
konstruktor
Untuk mematikan ( menghancurkan ) objek diperlukan
destruktor
Kelas Mempunyai :





Atribut (data, konstanta, properti ). Nilai atribut pada
saat run time menyatakan “keadaan” (state) dari objek
yang merupakan instance (contoh) dari kelas ybs.
Method ( service, procedure, fungsi). Pada saat run time
method akan dieksekusi sesuai dengan kode programnya,
atas permintaan ( lewat pesan , message ) objek lain
Fungsi dirancang untuk melahirkan sebuah objek baru
(range, hasil ) dari banyak input
Prosedur dirancang untuk mengubah state dari current
objek, tanpa melahirkan objek baru
Meyer’97 menyebut atribut dan method sebagai feature
Lingkungan Akses Feature



Public : dapat diakses / dipakai oleh kelas apapun
Friend : hanya kelas tertentu yang boleh mengakses
Private : hanya kelas yang bersangkutan yang boleh
memakai

Nb Sebaiknya dalam PBO friend tidak usah digunakan