Mata kuliah : PSBO Semester : V
Jurusan : Manajemen Informatika Sks : 2 sks
CAPAIAN PEMBELAJARAN :
Mahasiswa mengenal dan memahami serta dapat membuat beberapa diagram UML
KONTRAK PERKULIAHAN
• Pertemuan 1-6 dilakukan dengan penyampaian materi kepada mahasiswa
• Pertemuan 7 diadakan QUIZ / review materi
• Pertemuan 8 diadakan UTS dimana materi diambil dari pertemuan 1-6
• Setelah UTS Penyampaian materi tetap dilakukan sebagaimana biasa sampai pertemuan 13.
• Di pertemuan 14 pengumpulan tugas yang dibuat oleh mahasiswa secara berkelompok. Dimana tugas tersebut berbentuk makalah yang sesuai dengan kasus yang dibahas.
Pembahasan
1. Sejarah Object Oriented
2. Konsep Pemodelan
3. Metodologi Object Oriented
4. Karakteristik Object
5. Perbedaan Metode Object Oriented dan Non
Object
1. Sejarah Object Oriented
Berorientasi objek berarti bahwa kita mengorganisasi
perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data dan perilakunya.
Konsep awal programming (Basic) dengan kekuatan GOTO
statement, ini merupakan Non Procedural Language
Procedural Language / Bahasa pemograman terstruktur
menghilangkan kelemahan GOTO konsep non procedural language
Object Oriented Programming, mengarah pada konsep object. Akhir tahun 1960 diperkenalkan pertama kali dengan bahasa SIMULA. Tahun 1970 dikembangkan Smaltalk.
Bahasa pemrograman lainnya : Clipper 5.2 Java, Prolog dll
Visual Object Oriented Programming, tahun 1991
diperkenalkan pertama kali dengan bahasa Visual Basic oleh Microsoft
Bahasa pemograman lainnya : Visual C++, Visual Foxpro
3.0, CORBA (Common Object Request Broker
Sejarah Object Oriented (cont)
Pengembangan berorientasi objek merupakan cara berpikir baru tentang perangkat lunak berdasarkan abstraksi yang terdapat dalam dunia nyata. Dalam konteks pengembangan menunjuk pada bagian awal dari siklus hidup pengembangan sistem, yaitu survei, analis, desain, implementasi dan pemeliharaan sistem.
Hal yang lebih penting dalam pengembangan berorientasi
objek adalah konsep mengidentifikasi dan mengorganisasi domain aplikasi dari pada penggunaan bahasa pemrograman, berorientasi objek atau tidak.
2. Konsep Pemodelan
Berorientasi objek dalam proses konseptual terpisah
dengan bahasa pemrograman sampai tahap terakhir.
Pengembangan berorientasi objek secara mendasar
merupakan cara berpikir baru dan bukan suatu teknik pemrograman.
Dapat melayani sebagai media spesifikasi, analisa,
dokumentasi dan interface seperti halnya pemrograman.
Bahkan sebagai alat pemrograman, dapat memiliki
berbagai sasaran, termasuk bahasa pemrograman dan basis data sebaik dengan bahasa pemrograman berorientasi obyek.
3. Metodologi Object Oriented
Diperkenalkan tahun 1980 menggunakan perangkat kerja
dan teknik-teknik yang dibutuhkan dalam pengembangan
sistem, yaitu dynamic dan static object oriented model,
state transition diagram dan case scenario.
Fokus utama metodologi ini pada objek, dapat
digambarkan sebagai benda, orang, tempat dan sebagainya yang memiliki atribut dan metode.
Tahap-tahap metodologi berdasarkan Sistem Development Life Cycle (SDLC), dengan berorientasi objek dapat dijelaskan sebagai berikut :
Dimulai dengan menyatakan suatu masalah, analis membuat model
situasi dari dunia nyata, menggambarkan sifat yang penting.
Model analisa adalah abstraksi yang ringkas dan tepat dari apa
yang harus dilakukan oleh sistem, dan bagaimana melakukannya. Objek dalam model harus merupakan konsep domain dari aplikasi, bukan merupakan implementasi komputer seperti struktur data.
Empat kesulitan yang merupakan gangguan utama sistem adalah
memahami problem domain, komunikasi antara pihak yang berkaitan, perubahan kontinyu, dan penggunaan kembali.
Pengorganisasian sistem ke dalam sub-sistem berdasarkan struktur analisa dan arsitektur yang dibutuhkan.
Desain model berdasarkan model analisa tetapi berisi detail
implementasi.
Fokus object design adalah perencanaan struktur data dan algoritma
yang diperlukan untuk implementasi setiap kelas. Objek domain aplikasi dan objek domain komputer dijelaskan dengan menggunakan konsep dan notasi berorientasi objek yang sama.
System designer menentukan karakteristik penampilan secara
optimal, strategi memecahkan masalah, dan pilihan alokasi sumber daya.
Contoh: system designer mungkin menentukan perubahan pada screen untuk workstation yang memerlukan kecepatan serta resolusi lebih tinggi.
Kelas, objek dan relasinya dikembangkan dalam tahap object design, akhirnya diterjemahkan ke dalam bahasa pemrograman, basis data, dan mplementasi perangkat keras.
Dalam tahap implementasi hal yang penting adalah
mengikuti penggunaan perangkat lunak yang baik.
Karakteristik Metodologi Berorientasi Objek
1. Encapsulation
Pengkapsulan merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses. Dengan demikian objek atau prosedur dari luar tidak dapat mengaksesnya. Data terlindung dari prosedur atau objek lain kecuali prosedur yang berada dalam objek itu sendiri.
Metodologi berorientasi objek mempunyai karakteristik sebagai berikut:
2. Inheritance
Inheritance (pewarisan) adalah teknik yang menyatakan
bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung. Bila inheritance dipergunakan, kita tidak perlu membuat atribut dan metode lagi pada anaknya, karena telah diwarisi oleh induknya. Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki bersama di antara kelas yang mempunyai hubungan secara hirarki.
3. Polymorphisme
Polymorphisme yaitu aksi yang sama yang dapat dilakukan
terhadap beberapa objek. Polimorfisme berarti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda.
Suatu implementasi yang spesifik dari suatu operasi dari kelas
tertentu disebut metode.
4. Karakteristik Object
Memiliki Identity (identitas)
Memiliki klasisfikasi
Memiliki state (kondisi/keadaan)
State sebuah objek dinyatakan dalam attribute/properties
Memiliki behavior (perilaku/method)
Perilaku suatu objek dinyatakan dalam operation.
Perilaku suatu objek adalah mendefinisikan bagaimana objek tersebut bertindak dan memberikan reaksi.
Objek adalah kombinasi antara struktur data dan perilaku dalam satu entitas dan mempunyai nilai tertentu yang membedakan entitas tersebut.
5. Perbedaan Object Oriented
dengan Non Object
Perbedaan yang spesifik dengan metodologi non objek adalah: a. Penggunaan alat
Metodologi non objek menggunakan beberapa alat untuk
menggambarkan model seperti data flow diagram, entity relationship diagram dan structure chart.
Sedangkan metodologi berorientasi objek menggunakan
satu jenis model dari tahap analisa sampai implementasi, yaitu diagram objek.
b.Data dan proses
Pada metodologi non objek, data dan proses dianggap
sebagai dua komponen yang berlainan
Sedangkan pada metodologi berorientasi objek, data dan
proses merupakan satu kesatuan, yaitu bagian dari objek.
c.Bahasa pemrograman
Metodologi non objek dipergunakan untuk melengkapi
pemrograman terstruktur pada bahasa generasi ketiga.
Sedangkan metodologi berorientasi objek dipergunakan
untuk pemrograman berorientasi objek dan bahasa generasi keempat.
Class Diagram
Class Diagram mendeskripsikan jenis-jenis objek dalam sistem dan berbagai macam hubungan statis yang terdapat diantara mereka. Class diagram juga menunjukkan properti dan operasi sebuah class dan batasan-batasan yang terdapat dalam hubungan-hubungan objek tersebut. UML menggunakan istilah fitur sebagai istilah umum yang meliputi properti dan operasi sebuah class.
Properti, Atribut dan Asosiasi
Properti mewakili fitur-fitur struktural dari sebuah class. Properti merupakan sebuah konsep tunggal, tetapi tampak seperti dua notasi yang sedikit berbeda : atribut dan asosiasi. Meskipun tampak berbeda dalam sebuah diagram tetapi sebenarnya adalah hal yang sama.
Notasi atribut mendeskripsikan properti dengan sebaris teks didalam kotak class tersebut
Contoh:
Properti, Atribut dan Asosiasi (lanjutan)
Keterangan :
+/- = tanda visibility, + public / - private
name = atribut, bagaimana class tersebut mengacu pada atribut
string = tipe dari atribut, menunjukkan sebuah batasan tentang objek apa yang dapat diletakkan dalam atribut tersebut
[1] = multiplicity
untitled = devault value, nilai objek yang baru dibuat jika atribut tidak dispesifikasi selama pembuatannya
{property string}, memungkinkan untuk menunjuk properti tambahan, misalnya read only yang berarti bahwa klien tidak dapat mengubah properti tersebut.
Properti, Atribut dan Asosiasi
(lanjutan)Asosiasi merupakan sebuah garis solid antara dua class, ditarik dari class sumber ke class target. Nama properti bergerak sampai tujuan akhir sebuah asosiasi bersama dengan multiplicity. Tujuan akhir sebuah asosiasi menghubungkan dengan class yang merupakan jenis properti.
Properti dalam susunan atribut dapat digambarkan sebagai berikut:
Multiplicity
Multiplicity merupakan indikasi tentang berapa banyak objek yang akan mengisi properti. Multiplicity yang sering digunakan adalah:
1 (contoh: satu pesanan hanya bisa untuk seorang pelanggan)
0..1 (contoh: pelanggan perusahaan dapat memiliki seorang sales rep)
* (contoh: tidak ada jumlah maksimal / tidak terbatas berapa jumlah pesanan yang dapat dibuat oleh pelanggan)
Indikator/Gambar Arti
0..1 Kosong atau satu
0..* Lebih dari sama dengan kosong
0..n Lebih dari sama dengan n, dimana n lebih dari 1
1 Hanya satu
1..* Lebih dari sama dengan satu
1..n Lebih dari sama dengan satu dimana n lebih dari satu
* Banyak atau Many
N Hanya N, dimana N lebih dari satu
n..* Lebih dari sama dengan N dimana N lebih dari satu
n..m Lebih dari sama dengan N dan kurang dari sama dengan M. Dimana M dan N lebih dari satu.
Multiplicity
(lanjutan)
Beberapa macam istilah yang mengacu pada multiplicity:
Optional
Menunjukkan sebuah batas bawah yang bernilai nol (0)
Mandatory
Menunjukkan sebuah batas bawah yang bernilai satu (1) atau mungkin lebih
Single-valued
Menunjukkan sebuah batas atas yang bernilai satu (1)
Multivalued
Menunjukkan sebuah batas atas yang bernilai lebih dari satu (1) dan biasanya ditulis dengan tanda *
Asosiasi Bidireksional
Asosiasi bidireksional adalah sepasang properti yang saling berhubungan satu sama lain.
Sifat bidireksional ditunjukkan secara jelas dengan adanya panah navigasi pada kedua ujung asosiasi.
Orang Mobil
pemilik
Operasi
Operasi merupakan suatu kegiatan yang dimengerti sebuah class untuk dilakukan. Operasi secara jelas berhubungan dengan metode dalam sebuah class.
Istilah lain yang sering digunakan pada operasi adalah metode tetapi sebenarnya tidak sama. Perbedaannya adalah operasi adalah hal yang diharapkan pada sebuah objek (deklarasi prosedur), sedangkan sebuah metode adalah bentuk prosedur.
Dalam metode ada istilah getting dan setting. Metode getting akan mengembalikan nilai dari sebuh bidang (dan tidak melakukan hal lain selain itu) sedangkan metode setting meletakkan nilai kedalam sebuah bidang (dan tidak melakukan hal lain selain itu)
Generalisasi
Contoh dari gambar class sebelumnya yang merupakan generalisasi melibatkan pelanggan perorangan dan pelanggan perusahaan. Keduanya mempunyai persamaan dan perbedaan. Persamaan tersebut dapat dimasukkan kedalam class pelanggan umum (supertype) dengan pelanggan perorangan dan pelanggan perusahaan sebagai subtype.
Dengan menggunakan perspektif perangkat lunak, interpretasi tersebut sudah termasuk: pelanggan perusahaan merupakan subclass dari pelanggan. Dalam object oriented subclass mewarisi semua fitur superclass dan dapat melakukan semua metode superclass.
Catatan dan Komentar
Catatan merupakan komentar didalam diagram. Catatan-catatan dapat berdiri sendiri atau dihubungkan dengan garis hubung dengan elemen yang dikomentari.
Ketergantungan
Sebuah ketergantungan muncul antara dua elemen jika perubahan definisi sebuah elemen dapat menyebabkan perubahan pada elemen lainnya. Dalam class ketergantungan muncul karena banyak hal, antara lain : salah satu class mengirim pesan ke class lain, salah satu class memiliki sebagian data, salah satu class menyebut class lain sebagai parameter sebuah operasi. Jika sebuah class mengubah antarmukanya, setiap pesan yang dikirim ke class tersebut dapat menjadi tidak valid.
Ketergantungan
(lanjutan) Banyak hubungan-hubungan UML menunjukkan ketergantungan. Asosiasi dengan kemampuan navigasi dari pesanan sampai ke pelanggan dalam gambar sebelumnya, berarti pesanan tersebut tidak tergantung pelanggan. Sebuah subclass tidak tergantung pada superclass-nya tetapi tidak sebaliknya.Kata kunci dalam ketergantungan dapat dijelaskan sebagai berikut:
Kata Kunci Arti
<<call>> Sumber memanggil sebuah operasi pada target <<create>> Sumber membuat perintah pada target
Ketergantungan
(lanjutan)Kata Kunci Arti
<<derive>> Sumber diambil dari target
<<instantiate>> Sumber merupakan perintah target
<<permit>> Target memungkinkan sumber untuk mengakses fitur private target
<<realize>> Sumber merupakan implementasi sebuah spesifikasi atau antarmuka yang ditentukan oleh target
<<refine>> Perbaikan menunjukkan sebuah hubungan antara tingkat semantik yang berbeda, contohnya, sumber merupakan sebuah class desain dan targetnya adalah class analisis yang terkait
<<substitute>> Sumber merupakan pengganti dari target
<<trace>> Digunakan untuk mencari sesuatu seperti persyaratan class atau bagaimana perubahan dalam sebuah model
berhubungan dengan perubahan di lain tempat
Sequence Diagram
Sequence diagram digunakan untuk menggambarkan perilaku pada sebuah skenario.
Diagram ini diatas menunjukkan
1. Sejumlah contoh objek dan message yang diletakkan diantara objek- objek ini didalam use case.
2. Komponen utama sequence diagram terdiri atas objek yang dituliskan dengan kotak segiempat bernama.
3. Message diwakili oleh garis dengan tanda panah dan waktu yang ditunjukkan dengan progress vertikal.
Sequence Diagram (lanjutan)
Sequence diagram digunakan ketika ingin mengetahui perilaku beberapa objek pada use case tunggal. Sequence diagram bagus dalam menunjukkan kolaborasi diantara obyek, namun tidak begitu bagus dalam memberikan definisi yang pasti tentang perilaku tersebut.
Untuk melihat perilaku suatu objek pada banyak use case lebih baik jika menggunakan state machine diagram dan untuk melihat perilaku terhadap banyak use case lebih baik menggunakan activity diagram.
Objek/Participant
Objek diletakkan dibagian atas diagram dengan urutan dari kiri ke kanan. Objek diatur dalam urutan untuk menyederhanakan diagram. Dalam UML 2 istilah objek diganti dengan participant.
Setiap participant terhubung dengan garis titik-titik yang disebut lifeline. Sepanjang lifeline ada kotak yang disebut activation yang mewakili sebuah eksekusi operasi dari participant. Panjang kotak ini berbanding lurus dengan durasi activation.
Message
Sebuah message bergerak dari satu participant ke participant yang lain dan dari satu lifeline ke lifeline yang lain. Participant bisa mengirim sebuah message kepada dirinya sendiri.
Sebuah message bisa jadi simple, synchronous atau asynchronous. Message yang simple adalah sebuah perpindahan (transfer) control dari participant ke participant yang lainnya. Jika sebuah participant mengirimkan sebuah message synchronous, maka jawaban atas message tersebut akan ditunggu sebelum diproses dengan urusannya.
Message
(lanjutan) Namun jika message asynchronous yang dikirimkan, maka jawaban atas message tersebut tidak perlu ditunggu.Simbol message pada sequence diagram adalah:
Time
Time adalah diagram yang mewakili waktu pada arah vertikal. Waktu dimulai dari atas kebawah. Message yang lebih dekat dari atas akan dijalankan terlebih dahulu dibanding message yang lebih dekat ke bawah.
Dari penjelasan tersebut terlihat bahwa sequence diagram menunjukkan dua dimensi. Dimensi dari kiri ke kanan menunjukkan tata letak objek/participant dan dimensi dari atas ke bawah menunjukkan lintasan waktunya.
Recursive
Recursive artinya sebuah objek mempunyai sebuah operation kepada dirinya sendiri.
Contoh dari recursive ini dapat diasumsikan sebuah objek pada sistem kalkulator dengan operasi menghitung bunga. Untuk menghitung bunga berbunga selama periode tertentu maka objek tersebut perlu melakukan operation terhadap dirinya sendiri untuk menghitung bunga.
Looping, Syarat dan Like (lanjutan)
Loop dan conditional menggunakan kerangka interaksi
(interaction frame), yaitu frame untuk memberi tanda pada
sequence diagram (lihat gambar pada slide berikutnya). Umumnya frame terdiri dari beberapa region pada sequence diagram, yang dibagi menjadi satu atau lebih fragmen. Setiap frame mempunyai sebuah operator. Sebuah fragmen mungkin mempunyai satu guard.
Operator Keterangan
alt Alternatif dari banyak fragmen. Hanya yang kondisinya
true yang akan dijalankan
opt Optional; fragmen akan dijalankan jika kondisi yang
Looping, Syarat dan Like
(lanjutan)
Operator Keterangan
par Paralel; setiap fragmen dijalankan secara paralel
loop Looping, fragmen mungkin dijalankan berulang kali dan
guard menunjukkan basis iterasi
region Critical region; fragmen hanya dapat mempunyai satu
thread untuk menjalankannya
neg Negatif; fragmen menunjukkan interaction yang salah
ref Reference; menunjukkan ke sebuah interaction yang
didefinisikan pada diagram yang lain
Looping, Syarat dan Like
(lanjutan)
guard
frame
Studi Kasus
lanjutan
PT. Bendi Car adalah sebuah perusahaan yang bergerak dibidang penyewaan mobil Semua transaksi di perusahaan masih dilakukan secara manual. Berikut ini adalah kegiatan kegiatan yang dilakukan oleh petugas dalam melaksanakan transaksi penyewaan mobil di dalam perusahaan.
1. Prosedure peminjaman
Penyewa mobil yang ingin melakukan peminjaman dapat melihat harga penyewaan mobil pada daftar harga sewa mobil. Penyewa dapat menggunakan jasa supir atau tidak sesuai dengan kebutuhan penyewa sendiri. Setiap jenis kendaraan memiliki harga sewa yang berbeda-beda begitu juga harga sewa jasa sopir untuk daerah Jabodetabek dan diluar jabodetabek pun berbeda. Setelah itu penyewa mengisi Formulir Penyewaan (FS) disertai fotocopy identitas diri. Kemudian Formulir penyewaan yang telah diisi beserta pelunasan pembayaran diserahkan kepada petugas kemudian petugas membuatkan kwitansi pembayaran sebagai bukti pembayaran.
2. Prosedure pengembalian
Pada saat pengembalian kendaraan oleh penyewa, petugas
membawa Formulir Pengembalian dan memeriksa kondisi
kendaraan apakah terdapat kerusakan atau tidak. Bila ada
(misalnya spion pecah, body penyok, cat tergores, dll), maka
diperhitungkan penggantiannya dan dibebankan kepada
penyewa. Bila tidak rusak/terlambat maka tidak perlu
mengisi Formulir pengembalian. Namun Bila penyewa
terlambat dalam pengembalian, maka jumlah keterlambatan
mobil dan sopir akan dibebankan kepada penyewa. Setelah
membayar kerusakan dan keterlambatan, maka petugas
membuatkan kwitansi sebagai tanda bukti pembayaran
denda
3. Prosedure laporan
Diakhir bulan petugas membuat laporan
penyewaan berikut denda atas kerusakan atau
keterlambatan yang terjadi dan laporan
kendaraan. Laporan tersebut diserahkan ke
pemilik penyewaan Bendi car
Buatlah Sequence diagram dari
sistem diatas
State Machine Diagram
State Machine Diagram adalah teknik yang umum digunakan untuk menggambarkan behaviour sebuah sistem. Hal ini digunakan untuk membantu analis, perancang dan pengembang untuk memahami perilaku obyek pada sistem.
Tidak cukup hanya mengimplementasikan sebuah obyek, pengembang juga harus membuat obyek tersebut melakukan sesuatu. State diagram memastikan bahwa obyek-obyek tersebut akan menebak apa yang seharusnya dilakukan. Dengan gambaran yang jelas tentang perilaku obyek, kemungkinan tim pengembang akan memproduksi sebuah sistem yang sesuai dengan requirement.
Simbol
Simbol UML untuk state chart diagram adalah segiempat yang tiap pojoknya dibuat rounded. Titik awalnya menggunakan lingkaran solid yang diarsir dan diakhiri dengan mata.
Simbol
(lanjutan)UML juga memberi pilihan untuk menambahkan detil ke dalam simbol tersebut dengan membagi tiga area yaitu nama state, variabel dan aktivitas.
State variabel seperti timer dan counter yang kadangkala sangat membantu.
NState Name
Variabel Name
Simbol
(lanjutan)Activity terdiri atas events dan action, tiga hal yang sering digunakan dalam activity adalah:
1.Entry
Apa yang terjadi ketika sistem masuk ke state 2.Exit
Apa yang terjadi ketika sistem meninggalkan state 3.Do
State, Event
dan
Transition
Statechart diagram menampilkan state-state yang mungkin dari sebuah obyek, event yang bisa dideteksi dan respon atas event-event tersebut. Secara umum, pendeteksian sebuah event-event dapat menyebabkan sebuah obyek bergerak dari satu state ke state yang lain yang disebut dengan transition. Sebagai contoh jika sebuah CD Player dalam keadaan terbuka, penekanan tombol load akan menyebabkan drawer CD Player berpindah ke state close, sebagaimana digambarkan sebagai berikut:
State, Event
dan
Transition
Closed Playing Open Play Load Stop StopStop Play Load
Stop
Initial
dan Final State
Gambar pada slide sebelumnya menjelaskan bagaimana ketika CD Player sedang dipakai, tetapi tidak menjelaskan apa yang terjadi ketika mesin di matikan atau dihidupkan.
Untuk menunjukkan perilaku ini kita bisa menambahkan initial state diagram. Gambar berikut ini menunjukkan bahwa initial state untuk CD Player selalu diposisi close setelah mesin dihidupkan. Tidak ada event yang harus dituliskan pada initial state.
Event yang menyebabkan final state bisa tercapai adalah saat CD Player dimatikan (event = off)
Initial
dan Final State
Closed Playing Open Play Load Stop StopStop Play Load
Stop
Load
Off
Guard Condition
Dalam gambar sebelumnya salah satu masalah adalah CD player tidak selalu pada state playing ketika tombol play ditekan. Seharusnya state playing dilakukan jika ada CD di drawer atau tetap dalam kondisi close jika tidak ada CD di drawer.
Untuk menampilkan informasi tersebut dengan statechart bisa ditambahkan guard condition untuk transition play. Guard condition adalah bagian spesifikasi dari transition dan ditulis dengan sepasang kurung kotak/[] sesudah nama event yang memberi label transition
Guard Condition
(lanjutan) Closed Playing Open Play[ CD present] Stop Stop Stop Play[no CD] Play [no CD] Load Load Play Load Play[ CD present]Guard Condition
(lanjutan)Jika ada lebih dari satu transition yang mempunyai hasil guard condition true, maka hanya ada satu saja yang akan dijalankan. Sebagai contoh anggaplah CD player pada posisi state open dan tombol play ditekan, yang pertama kali terjadi adalah drawer akan ditutup. Hal ini penting karena mesin akan bisa mendeteksi apakah ada CD atau tidak di drawer bila drawer dalam posisi tertutup. Dalam kondisi masih state open, guard condition dievaluasi pada transition play untuk melihat transition mana yang harus dijalankan. Jika CD ada, transition akan berubah dari open menjadi playing.
Action
Action ditulis setelah nama event dengan diawali tanda slash (/). Action bisa dideskripsikan dalam pseudo-code atau dengan menggunakan notasi bahasa pemrograman yang akan dipakai. Transition dapat membawa condition dan action sekaligus.
Action dibuat dalam bentuk pendek, mengandung bagian kecil dari proses yang tidak butuh waktu lama. Karakteristik action harus bisa selesai sebelum transition mencapai state yang baru. Hal tersebut mengindikasikan bahwa action tidak dapat diinterupsi oleh event yang lain yang mungkin dideteksi oleh obyek, namun tetap harus bisa selesai dilakukan.
Action
(lanjutan) Closed Playing Open Play[ CD present] Stop Stop Stop Play[no CD] Play [no CD] / close drawerLoad / Open drawer
Load/ open drawer
Play
Load/ close drawer
Entry dan Exit Action
Entry action dijalankan setiap saat jika state menjadi aktif, segera setelah action transition selesai. Sebagai contoh jika CD player dalam state open dan tombol play ditekan, drawer akan menutup dan transition play akan dijalankan. Hasilnya state playing menjadi aktif dan entry action pada state playing segera dilakukan. Exit action akan dijalankan kapanpun saat sebuah action ditinggalkan.
Playing
Entry/find start of track Entry/lower head
Entry/raise head
Open
Play Stop
Play[CD present]/close drawer
Activity
Saat posisi state playing, melakukan sesuatu yang disebut memainkan current track dari CD, operasi ini yang disebut activity. Seperti pada action maka activity ditulis dalam state yang diawali dengan do.
Beda antara action dan activity adalah action lebih merupakan instance sedangkan activity merupakan perluasan dari waktu.
Ketika state menjadi aktif, entry action dijalankan dan activitynya dimulai. Activity berjalan secara kontinyu sepanjang periode dimana state tersebut aktif.
Activity
(lanjutan) Entry action harus dijalankan sampai selesai sebelum obyek dapat merespon event apapun. Akan tetapi activity bisa diinterupsi oleh event apapun yang mengakibatkan transition keluar.Playing
Entry/find start of track Entry/lower head
Entry/raise head Do/play track
Completion Transition
Completion transition adalah transition yang tidak mempunyai nama event. Ini bisa ditrigger ketika sebuah state activity internal berhenti secara normal tanpa interupsi oleh event dari luar. Ketika CD player dimainkan user bisa menekan tombol play atau stop untuk interupsi. Jika salah satu dari event ini terdeteksi maka track akan berakhir. Dengan demikian calon transition yang harus dijalankan tinggal completion transition. Yang terjadi berikutnya tergantung pada apakah track yang baru saja selesai adalah track terakhir atau bukan.
Completion Transition
(lanjutan)Completion transition mempunyai guard condition untuk membedakan diantara dua kasus. Jika yang baru selesai adalah track terakhir, transition pada state closed akan dijalankan dan CD berhenti, tetapi jika tidak transition ke dirinya sendiri akan dijalankan dan penhitung track akan naik, state playing akan masuk kembali dan CD player akan menjalankan track berikutnya.
Playing
Entry/find start of track Entry/lower head
Entry/raise head Do/play track
Play [no last track] /
increment track count Closed
Last track played
Internal Transition
Internal transition ditulis didalam state yang diberi nama dengan event yang menyebabkannya. Sebagai contoh adalah informasi yang ditampilkan dalam CD player.
Playing
Entry/find start of track Entry/lower head
Entry/raise head Do/play track Info/display time
Composite State
Composite state mempunyai properties sebagai berikut:
1.Jika composite state active, salah satu dari sub state harus aktif.
1.Jika sebuah event terdeteksi ketika sebuah obyek ada didalam composite state, maka akan bisa mentrigger transition keluar dari composite state itu sendiri maupun dari sub state aktif saat itu.
Sebagai contoh, asumsikan CD player dalam state closed, jika event load terdeteksi transition state open akan dijalankan dan state open menjadi aktif. Ini adalah transition internal dari state not playing dan masih aktif tetapi dengan sub state aktif yang lain.
Composite State
(lanjutan) Sebaliknya jika event play terdeteksi, tidak ada transition bernama “play” yang meninggalkan state closed. Namun ada beberapa transition yang meninggalkan state no play. Jika state ini aktif, transition akan menjadi enable, tergantung apakah ada CD didrawer atau tidak. Jika CD ada, state play menjadi aktif, jika tidak state closed menjadi aktif. Hal ini berarti self-transition meninggalkan state not play.History State
Ketika tombol pause ditekan, maka saat tombol play ditekan lagi CD player otomatis akan melanjtkan jalannya CD dari kondisi terakhir pada saat tombol pause ditekan dan tidak memulai dari awal lagi.
UML menangkap ide ini dengan mengunakan history state yang dinyatakan dengan huruf H dalam lingkaran. Cara kerja history state dilakukan dengan cara composite state mengingat sub state yang aktif saat obyek keluar dari transition composite state. Dengan adanya transition ke history state akan mengakibatkan substate yang saat ini aktif akan menjadi aktif lagi
History State
(lanjutan)Busy
Entry/find start of track
[no last track]/increment track
play Not playing
Last track played Stop Play [CD present] Paused H Playing Do/play track
Langkah terakhir sebelum perangkat lunak kita serahkan kepada pengguna adalah melakukan pengujian (testing)
yang bertujuan menemukan serta menghilangkan “bug” (kesalahan-kesalahan) yang ada dalam sistem.
Kesalahan tersebut diakibatkan beberapa hal, antara lain: 1.Kesalahan saat penentuan spesifikasi sistem/perangkat lunak
2. Kesalahan saat melakukan analisis permasalahan 3. Kesalahan saat perancangan
Strategi Pengujian
[Ali Bahrawi, 1999]•
Black-Box Testing
•
White-Box Testing
•
Top-Down Testing
•
Bottom-Up Testing
Strategi Pengujian
(lanjutan) • Black-Box Testing
Pada pengujian ini kita tidak perlu tahu apa yang sesungguhnya terjadi dalam sistem/perangkat lunak. Yang kita uji adalah masukan serta keluarannya. Artinya dengan berbagai masukan yang kita berikan, apakah sistem/perangkat lunak memberikan keluaran seperti yang kita harapkan.
Dalam pengujian ini kita dapat menggunakan use case
Contoh Black-Box Testing
Input/event Proses Output Hasil
Klik Menu Beranda link beranda.html Tampil beranda diframe utama Sesuai
Strategi Pengujian
(lanjutan) • White-Box Testing
Pengujian jenis ini mengasumsikan bahwa spesifikasi logika adalah penting dan perlu dilakukan pengujian untuk menjamin apakah sistem/perangkat lunak berfungsi dengan baik. Tujuan utama dari strategi pengujian ini adalah pengujian berbasis kesalahan.
Beberapa cara yang dapat dilakukan untuk pengujian white-box:
1. Memeriksa semua fungsi dalam setiap objek dengan cara mengeksekusi satu persatu
White-Box Testing
Gambar disamping menunjukkan contoh simpul yang di ujikan dari sebuah coding program.
Kompleksitas Siklomatis (pengukuran kuantitatif terhadap kompleksitas logis suatu program) dari grafik alir dapat diperoleh dengan perhitungan:
V(G) = E – N + 2 Dimana:
E = Jumlah edge grafik alir yang ditandakan dengan gambar panah
N = Jumlah simpul grafik alir yang ditandakan dengan gambar lingkaran
1 2 3 4 5 6
White-Box Testing
Sehingga kompleksitas siklomatisnyaV(G) = 6 – 6 + 2 = 2
Basis set yang dihasilkan dari jalur independent secara linier adalah jalur sebagai
berikut:
1 – 2 – 3 – 4 – 5 – 6
1 – 2 – 1 – 2 – 3 – 4 – 5 – 6
Ketika aplikasi dijalankan, maka terlihat bahwa salah satu basis set yang dihasilkan adalah 1 – 2 – 3 – 4 – 5 – 6 dan terlihat bahwa simpul telah dieksekusi satu kali.
Berdasarkan ketentuan tersebut dari segi kelayakan
Strategi Pengujian
(lanjutan) • Top-Down Testing
Pengujian ini berasumsi bahwa logika utama atau interaksi antarobjek perlu diuji lebih lanjut. Strategi ini seringkali dapat mendeteksi kesalahan yang serius. Pendekatan ini sesuai dengan strategi pengujian berbasis skenario. Misalnya, pengujian antarmuka pengguna dengan strategi atas-bawah berarti menguji dari layar utama hingga layar dengan peringkat tingkat rendah dan memastikan semuanya berfungsi dengan baik serta sesuai dengan harapan dan kebutuhan pengguna.
Strategi Pegujian
(lanjutan) • Bottom-Up Testing
Strategi pengujian ini dimulai dengan rincian sistem kemudian beranjak keperingkat yang lebih tinggi.
Dalam metodologi berorientasi objek, kita mulai dengan menguji metode-metode dalam kelas, menguji kelas-kelas serta interaksi antar kelas-kelas dan selanjutnya hingga pada peringkat yang paling tinggi.
Kualitas
American Heritage Dictionary (dikutip dari buku Software
Engineering : A Practitioner’s Approach karya Roger Pressman, 1997) mendefinisikan kata kualitas sebagai “sebuah karakteristik atau atribut dari sesuatu”. Sebagai atribut dari sesuatu, kualitas mengacu pada karakteristik yang terukur, sesuatu yang dapat kita bandingkan dengan standar lain yang sudah kita ketahui seperti panjang, warna, volume dll.
Kualitas (lanjutan)
Steve McConnell dalam buku yang berjudul CODE COMPLETE : A Practical Handbook of Software
Construction, 1944 mengusulkan bahwa sistem/perangkat
lunak seharusnya memiliki karakteristik-karakteristik luar dan dalam sebagai berikut:
1.Karakteristik Luar
Meliputi karakteristik-karakteristik yang dapat diamati secara langsung oleh pengguna, seperti:
Ketepatan
Tingkat kebebasan sistem dari kesalahan analisis, perancangan serta implementasi. Ketepatan disini maksudnya adalah sejauh mana sistem yang kita kembangkan memenuhi harapan dan kebutuhan pengguna
Kualitas
(lanjutan) Daya Guna
Tingkat kemudahan pengguna untuk belajar serta menggunakan sistem. Karena pengguna bukanlah orang yang mau belajar tentang komputer tetapi hanya menggunakan sistem untuk keperluan tertentu, maka sistem/perangkat lunak yang dikembangkan harus bisa digunakan oleh semua pengguna.
Efisiensi
Pemanfaatan seminimal mungkin dari sumberdaya yang ada baik penggunaan memori, sumber daya CPU, ruang harddisk termasuk juga spesifikasi hardware yang tidak terlalu tinggi.
Kualitas
(lanjutan) Keandalan
Mencakup kemampuan sistem/perangkat lunak untuk menjalankan semua fungsi yang dibutuhkan dan diharapkan
Integritas
Tingkat kemampuan sistem/perangkat lunak dalam mencegah akses yang tidak sah atau tidak pada tempatnya ke program atau data didalamnya.
Kemampuan Adaptasi
Bagaimana sistem/perangkat lunak dapat dipakai dalam aplikasi atau lingkungan yang lain dari lingkungan saat sistem/perangkat lunak itu diciptakan
Kualitas
(lanjutan) Keakuratan
Tingkat kebebasan sistem/perangkat lunak dari kesalahan-kesalahan (bugs), khususnya ditinjau dari keluaran yang dihasilkan.
Kekuatan
Tingkat kemampuan sistem/perangkat lunak dalam melanjutkan fungsinya bila terdapat masukan yang tidak sah.
Kualitas
(lanjutan) 2. Karakteristik DalamMencakup karakteristik-karakteristik yang dipikirkan oleh pengembang baik itu analis, perancang atau pemrogram yang meliputi:
Daya Tahan
Kemudahan mengubah sistem/perangkat lunak untuk mengubah atau menambah kemampuan, memperbaiki unjuk kerja, atau memperbaiki kerusakan. Ini dapat dicapai dengan dokumentasi yang baik saat perencanaan, analisis, perancangan serta implementasi.
Kualitas
(lanjutan) Keluwesan
Seberapa jauh kita dapat menempatkan sistem/ perangkat lunak dalam lingkungan yang berlainan dengan lingkungan saat sistem/perangkat lunak diciptakan.
Kemudahan di Install
Sejauh mana sistem/perangkat lunak yang dikembangkan mudah diterapkan dilingkungan pengguna.
Kualitas
(lanjutan) Daya Guna Ulang
Kemudahan dalam menggunakan bagian (komponen) sebuah sistem dalam sistem-sistem yang lain. Modularisasi serta karakteristik-karakteristik yang dijanjikan bahasa-bahasa pemrograman berorientasi objek memungkinkan penggunaan ulang bagian dari sistem/perangkat lunak yang diciptakan pada suatu sistem dalam sistem yang lain
Kemudahan Dipahami
Kemudahan kita sebagai pengembang untuk memahami keseluruhan sistem
Kualitas
(lanjutan) Kemudahan Dibaca
Jika kemudahan dipahami membahas yang bersifat makro, maka kemudahan dibaca lebih bersifat mikro, yaitu kemudahan membaca serta memahami kode sumber sebuah sistem/perangkat lunak, khususnya pada tingkat pernyataan yang dirinci
Daya Uji
Tingkat dimana kita sebagai pengembang dapat memeriksa setiap unit dan sistem secara keseluruhan atau sesuai dengan spesifikasi yang ditentukan dalam Software Requirement Specification
Studi Kasus Penjualan Online
Sebuah toko komputer menawarkan pemesanan komputer lewat internet. Pelanggan dapat memilih komputer lewat halaman web toko tersebut. Komputer yang dijual diklasifikasikan menjadi server, PC dan notebook.
Untuk melakukan pemesanan, pelanggan harus mengisi informasi pengiriman dan pembayaran. Pembayaran yang diperbolehkan adalah menggunakan kartu kredit atau tunai (cash). Setiap kali sebuah pemesanan dimasukkan, sistem akan mengirimkan email konfirmasi kepelanggan dengan rincian pemesanan. Sambil menunggu barang dikirim, pelanggan bisa memantau status pemesanannya secara online setiap waktu.
Requirement actor dan use case pada belanja online
No Requirement Actor Use case
1 Pelanggan menggunakan halaman web belanja
online untuk melihat konfigurasi standart dari server, PC dan notebook serta harganya
Pelanggan Display
konfigurasi standart
2 Pelanggan bisa melihat detail konfigurasi. Harga
tiap konfigurasi bisa dihitung berdasarkan permintaan pelanggan
Pelanggan Buat
konfigurasi komputer
3 Pelanggan boleh memilih untuk memesan
komputer secara online atau meminta bagian penjualan untuk menghubunginya untuk memberikan penjelasan lebih rinci mengenai detail pemesanan, negosiasi harga dll sebelum melakukan pesanan yang sebenarnya
Pelanggan & Bagian penjualan Memesan komputer yg dikonfigurasi, minta dihubungi bag. penjualan
4 Untuk melakukan pemesanan, pelanggan harus
mengisi form online dengan info pengiriman, alamat tagihan dan detail pembayaran (dengan kartu kredit atau tunai)
Pelanggan Pemesanan, verivikasi dan terima
Requirement actor dan use case pada belanja online
No Requirement Actor Use case
5 Sesudah pesanan masuk kesistem, bagian
penjualan akan mengirimkan permintaan kepada gudang secara elektronis lengkap dengan rincian konfigurasinya
Bagian penjualan & Gudang Informasikan pesanan ke gudang
6 Rincian transaksi termasuk no order dan kode
pelanggan dikirim via email kepada pelanggan sehingga pelanggan bisa melakukan pengecekan atas status pesanan secara online
Bagian penjualan & Pelanggan Memesan komputer yg dikonfigurasi, update status pesanan
7 Atas dasar tembuasan faktur dari bagian
penjualan, bagian gudang melakukan pengiriman kepada pelanggan
Bagian penjualan &
Gudang
Pemodelan Aktivitas
No Use Case Activity State
1 Use case dimulai ketika pelanggan memutuskan untuk
memesan komputer yang dikonfigurasi dengan memilih
fungsi lanjut ketika detail pemesanan ditampilkan dilayar
Display Current Configuration; Get Order Request
2 Sistem meminta kepada pelanggan untuk memasukkan
detail pesanan yang meliputi nama bag. Panjualan (jika tahu), rincian alamat pengiriman, rincian faktur, metode pembayaran dan beberapa komentar
Display Form PO
3 Pelanggan memilih fungsi PO untuk mengirimlan pesanan
ke Toko
Get PO Detail
4 Sistem secara otomatis akan memberikan nomor pesanan
yang unik dan kode pelanggan ke form PO dan menyimpan informasi ini ke database
Pemodelan Aktivitas
No Use Case Activity State
5 Sistem akan mengirimkan nomor pesanan dan kode
pelanggan via email kepada pelanggan bersama dengan detail pesanan sebagai konfirmasi atas diterimanya
pesanan pelanggan oleh toko
Email Order Detail
6 Jika pelanggan menjalankan fungsi PO sebelum semua
informasi penting diisi, sistem otomatis akan menampilkan pesan kesalahan dan meminta kepada pelanggan untuk melengkapinya
Get PO Detail; Display Form PO
7 Pelanggan bisa memilih Reset untuk mengosongkan Form
PO dan sistem mengijinkan pelanggan untuk memasukkan informasi lagi
Pemodelan Class
No Requirement Class Entity
1 Pelanggan menggunakan halaman web untuk melihat
konfigurasi standard dari server, PC dan notebook serta harganya
Pelanggan, Komputer (konfigurasi standard)
2 Pelanggan bisa melihat detail konfigurasi. Harga tiap
konfigurasi bisa dihitung berdasarkan permintaan pelanggan
Pelanggan,
ConfiguredComputer, KonfigurasiItem
3 Pelanggan boleh memilih untuk memesan komputer
secara online atau meminta kepada bagian penjualan untuk menghubunginya untuk memberikan penjelasan lebih rinci mengenai detail pemesanan, negosiasi harga dll, sebelum melakukan pemesanan yang sebenarnya
Pelanggan,
ConfiguredComputer, Order, SalesPeople
4 Untuk melakukan pemesanan, pelanggan harus mengisi
form online dengan info pengiriman, alamat tagihan dan detail pembayaran (kartu kredit / cash)
Pelanggan, Order, Pengiriman, Faktur, Pembayaran
Pemodelan Class
No Requirement Class Entity
5 Sesudah pesanan masuk ke sistem, bagian penjualan
akan mengirimkan permintaan kepada gudang secara elektronis lengkap dengan rincian konfigurasinya
Pelanggan, Order, SalesPeople,
ConfiguredComputer, KonfigurasiItem
6 Rincian transaksi termasuk nomor order dan kode
pelanggan dikirim via email kepada pelanggan sehingga pelanggan bisa melakukan pengecekan atas status
pesanan secara online
Order, Pelanggan, OrderStatus
7 Atas dasar tembusan faktur dari bagian penjualan,
bagian gudang melakukan pengiriman kepada pelanggan
Sequence Diagram
Sequence diagram adalah grafik dua dimensi dimana objek ditunjukkan dalam dimensi horisontal sedangkan lifeline ditunjukkan dalam dimensi vertikal. Urutan message ditunjukkan dari atas ke bawah. Biasanya sequence diagram dibuat untuk setiap use case.
Message dapat ditambahkan pada argumen. Argumen dapat berupa input argumen (dari pengirim ke target) atau output argumen (dari target kembali ke pengirim). Input argumen menggunakan kata kunci “in” dan output argumen menggunakan kata kunci “out”
Sequence Diagram
(lanjutan)Gambar pada slide berikut adalah sequence diagram untuk ‘DisplayCurrentConfiguration’. Saat pelanggan memilih menu
Display Current Configuration sebuah message OpenNew dikirim
ke boundary class:ConfigurationWindow. Hasilnya adalah membuat (instantiate) objek:ConfigurationWindow yang baru. Objek:ConfigurationWindow perlu untuk menampilkan dirinya sendiri dengan data-data konfigurasi. Oleh karena itulah sebuah message dikirim ke objek:Komputer. Faktanya:komputer adalah objek dari class StandardComputer atau ConfiguredComputer. Jadi Komputer adalah abstrak class.
Sequence Diagram
(lanjutan) Objek :Komputer menggunakan output argumen item_rec untuk mengkomposisi dirinya sendiri dari objek:KonfigurasiItem.Hasilnya adalah konfigurasi item yang dikirimkan ke:ConfigurationWindow sebagai argumen input item dari message DisplayComputer. Objek:ConfigurationWindow sekarang bisa menampilkan dirinya sendiri.
Sequence Diagram
(lanjutan)Sequence diagram untuk ‘Display Current Configuration’
Buatlah sequence diagram untuk masing-masing use case lainnya!
Statechart Diagram
Jika pada pemodelan interaksi menyiapkan detail spesifikasi dari use case, pada statechart akan diberikan detail deskripsi dari class yaitu perubahan state dari class menjadi lebih tepat. Perubahan dinamis inilah yang akan menjadi perilaku dari suatu objek. Biasanya statechart ini memodelkan aturan main suatu proses bisnis.
Contoh:
Dari model use case dapat diketahui bahwa pelanggan menentukan cara pembayaran dengan cash atau kredit, akan tetapi use case tidak menjelaskan kapan pembayaran tersebut akan diterima.
Statechart Diagram
(lanjutan) Dari class diagram dapat diketahui bahwa faktur atas pesanan dibuat oleh bagian penjualan dan selanjutnya dikirimkan ke bagian gudang dan bagian gudang akan mengirimkan faktur tersebut bersama dengan komputer pesanannya.Statechart diagram biasanya disambungkan dengan class meski tidak menutup kemungkinan untuk disambungkan dengan use case. Ketika disambungkan ke class, diagram tersebut menentukan bagaimana objek tersebut bereaksi terhadap event. Lebih tepatnya action apa yang akan dilakukan oleh objek ketika menerima sebuah event. Bisa jadi objek yang sama akan melakukan action yang berbeda tergantung pada state objek tersebut.
Statechart Diagram
(lanjutan)Statechart diagram untuk class ‘Faktur’
Pembahasan
1. Tehnik Pemodelan Object
2. Konsep Object Oriented
3. Tema Object Oriented
1.Tehnik Pemodelan Object
A. Model Objek
Model objek menggambarkan struktur statis dari suatu
objek dalam sistem dan relasinya
Model objek berisi diagram objek. Diagram objek adalah
graph dimana nodenya adalah kelas yang mempunyai relasi antar kelas.
Teknik pemodelan objek menggunakan tiga macam model untuk menggambarkan sistem :
B. Model Dinamik
Model dinamik menggambarkan aspek dari sistem yang
berubah setiap saat.
Model dinamik dipergunakan untuk menyatakan aspek
kontrol dari sistem.
Model dinamik berisi state diagram. State diagram adalah
graph dimana nodenya adalah state dan arc adalah transisi
antara state yang disebabkan oleh event.
C. Model Fungsional
Model fungsional menggambarkan transformasi nilai data di dalam sistem.
Model fungsional berisi data flow diagram. DFD adalah suatu graph dimana nodenya menyatakan proses dan arcnya adalah aliran data.
2.Konsep Obejct Oriented
Encapsulation merupakan dasar untuk pembatasan ruang lingkup
program terhadap data yang diproses.
Data dan prosedur atau fungsi dikemas bersama-sama dalam suatu
objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya.
Data terlindung dari prosedur atau objek lain, kecuali prosedur yang berada dalam objek itu sendiri.
Inheritance adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung. Atribut dan metode dari objek dari objek induk diturunkan kepada anak objek, demikian seterusnya.
Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki bersama di antara kelas yang mempunyai hubungan secara hirarki.
Suatu kelas dapat ditentukan secara umum, kemudian ditentukan spesifik menjadi subkelas. Setiap subkelas mempunyai hubungan atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan ditambah dengan sifat unik yang dimilikinya.
Kelas Objek dapat didefinisikan atribut dan service dari kelas Objek lainnya.
Inheritance menggambarkan generalisasi sebuah kelas B. INHERITANCE (PEWARISAN)
Merupakan konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda.
Contoh : kembar identik Polimorfisme
3.Tema Object Oriented
Terdapat beberapa tema sebagai dasar teknologi berorientasi objek sebagai penunjang sistem berorientasi objek
1. Abstraksi
Abstraksi berarti fokus pada aspek yang melekat dari entitas dan
mengabaikan sifat yang sementara.
Dalam pengembangan sistem, fokus pada apakah suatu objek
dan apa yang dikerjakan oleh objek tersebut, sebelum menentukan implementasinya.
Penggunaan abstraksi yang sesuai memungkinkan model yang sama digunakan untuk analisa perancangan tingkat tinggi, struktur program, struktur basis data, dan dokumentasi.
Menggunakan abstraksi dalam analisa berarti hanya melakukan
konsep domain aplikasi, tidak menentukan desain dan implementasi sebelum masalah dipahami.
2. Pengkapsulan
Pengkapsulan (information hiding) terdiri dari pemisahan
aspek eksternal dari suatu objek, di mana dapat diakses oleh objek lain.
Pengkapsulan melindungi program dari saling keterkaitan
sehingga kesempatan kecil mempunyai akibat
3. Menggabungkan Data dengan Perilaku
Pemanggilan dari operasi tidak perlu dipikirkan berapa banyak implementasi yang diberikan oleh operasi yang ada.
Contoh, code yang bukan berorientasi pada objek menampilkan isi dari window harus membedakan tipe dari setiap bentuk, seperti poligon, lingkaran atau teks dan memanggil prosedur yang tepat untuk menampilkannya. Program berorientasi objek lebih sederhana memohon operasi draw pada setiap bentuk, penentuan di mana prosedur digunakan dibuat implisit oleh setiap objek berdasarkan kelasnya sehingga Tidak perlu mengulang pilihan prosedur setiap saat operasi dilakukan dalam program aplikasi. Pemeliharaan lebih mudah, karena prosedur yang dipanggil tidak perlu dimodifikasi setiap kelas baru ditambahkan. Dalam sistem berorientasi objek hirarki struktur data identik dengan pewarisan hirarki operasi.
4. Penggunaan Bersama (sharing)
Teknik berorientasi objek menawarkan penggunaan bersama untuk beberapa tingkat yang berbeda. Pewarisan struktur data dan perilaku memungkinkan penggunaan bersama antara beberapa subkelas yang sama tanpa redundancy. Pemakaian bersama code adalah keuntungan utama dari bahasa berorientasi objek.
Pengembangan berorientasi objek tidak hanya mengizinkan informasi dipergunakan bersama dalam aplikasi, tatapi memberikan prospek untuk menggunakan desain dan code bersama pada prospek mendatang.
Pembahasan
1. Model Object Oriented
1. Model Object Oriented
Objek dan Kelas Objek
Objek didefinisikan sebagai konsep, abstraksi atau benda dengan batasan dan arti untuk suatu masalah.
Semua objek mempunyai identitas yang berbeda dengan lainnya. Istilah identitas berarti bahwa objek dibedakan oleh sifat yang melekat dan bukan dengan uraian sifat yang dimilikinya. Contohnya, kembar identik, walaupun tampak sama, tetapi merupakan dua orang yang berbeda.
Kadang-kadang objek berarti suatu barang, maka digunakan istilah object instance, dan object class untuk menunjukkan satu grup dari barang yang sama.
Kelas
Suatu object class menggambarkan kumpulan dari objek yang
mempunyai sifat (atribut), perilaku umum (operasi), relasi umum dengan objek lain dan semantik umum.
Contoh: Orang, perusahaan, binatang, proses adalah objek. Setiap orang mempunyai umur, IQ, dan mungkin pekerjaan. Setiap proses mempunyai pemilik, prioritas, list dari sumber daya yang dibutuhkan.
Objek dan object class sering sama sebagai benda dalam deskripsi masalah.
Suatu kegiatan mengumpulkan data (atribut) dan perilaku
(operasi) yang mempunyai struktur data sama ke dalam satu grup.
Kelas Objek merupakan wadah bagi Objek. Dapat digunakan
untuk menciptakan Objek.
Istilah-istilah Objek
Atribut : Data item yang menegaskan Objek
Operasi : Fungsi di dalam kelas yang dikombinasikan ke bentuk tingkah laku kelas
Metode : Pelaksanaan prosedur (badan dari kode yang mengeksekusi respon terhadap permintaan objek lain di dalam sistem).
Diagram Objek
1. Kelas dan Objek
Sebuah objek merupakan sebuah entitas yang mencakup data dan metode.
Kelas merupakan satu atau lebih objek dengan persamaan atribut dan metode, sedangkan kelas-&-objek adalah kelas dengan satu atau lebih objek di dalamnya.
Nama kelas adalah kata benda tunggal, atau kata sifat dan kata benda.
Nama dari kelas-&-objek harus dapat menjelaskan objek tunggal dari suatu kelas.
2. Struktur Objek dan Hirarki Kelas
a. Whole-Part Structure memperlihatkan hirarki dari suatu kelas sebagai komponen dari kelas lain yang disebut juga sub objek.
Contohnya, kelas Mobil adalah Whole dan komponennya Mesin,
b. Gen-Spec Structure memperlihatkan kelas sebagai spesialisasi dari kelas di atasnya.
Kelas yang mempunyai sifat umum disebut Generalization,
Superclass atau Topclass.
Kelas yang mempunyai sifat khusus disebut Specialization.
Contohnya, kelas Mobil adalah Generalization, sedangkan Sedan, Truk, Minibus, dll merupakan Specizlization1, Specialization2, dst
UML (Unified Modeling Language) adalah metode pemodelan
(tools/model) secara visual sebagai sarana untuk merancang dan atau membuat software berorientasi objek dan memberikan standar
penulisan sebuah sistem untuk pengembangan sebuah software yang dapat menyampaikan beberapa informasi untuk proses implementasi pengembangan software.
UML
a. Sejarah UML
Pada Oktober 1994, Dr. James Rumbaugh bergabung dengan Perusahaan Rational sotware, dimana Grady Booch sudah bekerja disana sebelumnya. Grady Booch mengembangkan Object Oriented Design (OOD) dan Dr. James Rumbaugh mengembangkan Object Modeling Technique (OMT). Duet Mereka pada Oktober 1995 menghasilkan Unified Method versi 0.8.
Musim gugur 1995 Dr. Ivar Jacobson ikut pula bergabung dengan duet Rumbaugh-Booch, dengan memperkenalkan tool use case. Trio tersebut pada bulan Juni 1996 menghasilkan Unified Modeling Language (UML) versi 0.9. Sebelumnya Dr. Ivar Jacobson mengembangkan Object Oriented Software Engineering (OOSE) • Trio ini mengembangkan Ratinal Unified Process (RUP)
• Banyak perusahaan software merasakan bagaimana pentingnya UML dalam tujuan strategis mereka, sehingga beberapa perusahaan membentuk sebuah konsorsium yang terdiri dari perusahaan-perusahaan seperti Microsoft, Oracle, IBM, Hewlett-Packard, Intellicorp, I-Logix, DEC, Digital Equipment Corp. texas instrument
Konsep Dasar UML
Untuk dapat mememahami UML diperlukan pemahaman entang konsep bahasa pemodelan dan tiga eleman utama UML.Tiga elemen utama
UML antara lain:
a. Benda / Things / Objek
Objek merupakan bagian paling statik dari sebuah model, yang menjelaskan elemen–elemen lainnya dari sebuah konsep. Bentuk dari beberapa objek :
1. Classes, sekelompok dari object yang mempunyai atribute, operasi, dan hubungan yang semantik
2. Interfaces, antar-muka yang menghubungkan dan melayani antarkelas dan atau elemen dan mendefinisikan sebuah kelompok dari spesifikasi pengoperasian.
3. Collaboration, interaksi dari sebuah kumpulan kelas–kelas atau elemen–elemen yang bekerja secara bersama–sama.
4. Use cases, pembentuk tingkah laku objek dalam sebuah model serta di realisasikan oleh sebuah collaboration.
5. Nodes, bentuk fisik dari elemen–elemen yang ada pada saat dijalankannya sebuah system
b. Hubungan / Relationship
Ada 4 macam hubungan dalam penggunaan UML, yaitu :
1. Dependency, hubungan semantik antara dua objek yang mana sebuah objek berubah mengakibatkan objek satunya akan berubah pula.
2. Association, hubungan antar benda secara struktural yang terhubung diantara objek dalam kesatuan objek.
3. Generalizations, hubungan khusus dalam objek anak yang menggantikan objek induk dan memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada objek induk
4. Realizations, hubungan semantik antarpengelompokkan yang menjamin adanya ikatan diantaranya yang diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations.
c. Bagan atau Diagrams
Diagram adalah yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. UML mempunyai 9 diagram, yaitu:
1) Diagram Use Case, menggambarkan apa saja aktifitas yang dilakukan oleh suatu sistem dari sudut pandang pengamatan luar. Diagram Use Case berguna dalam tiga hal :
a. Menjelaskan fasilitas yang ada (requirements) b. Komunikas dengan klien
Contoh Use Case Diagram
Staff HRD
Entry Data Pegawai
Entry Data Jabatan
Staff PayRoll Entry Data Lokasi Kerja