TUGAS 1
Apa itu Metode Berorientasi Objek
Pemrograman
berorientasi objek atau object-oriented programming disingkat OOP merupakan
paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi
di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan
dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan,
memproses data, dan mengirim pesan ke objek lainnya,
Apa itu Objek
membungkus
data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer. objek
merupakan dasar dari modularitas dan struktur dalam sebuah program komputer
berorientasi objek.
Apa itu Kelas
kumpulan
atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan
tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas
definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam
perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan
struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal
sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan
domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class
sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut
digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah
program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan
melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari
masalah ke sebuah program ataupun sebaliknya.
Apa itu Enkapsulasi
Memastikan
pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek
dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi
izin untuk mengakses keadaannya. Setiap objek mengakses interface yang
menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya
tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
Apa
itu Inheritance (Pewarisan)
proses
pewarisan data dan method dari suatu kelas ke kelas lainnya.Pewarisan ini
bersifat menyeluruh.Semua data dan method milik kelas asalnya diturunkan ke
kelas lainnya atau kelas yang baru.
(a).Kelas yang mewariskan dinamakan:(super clas atau kelas induk)
(b).Kelas yang diwariskan dinamakan:(Sub class atau kelas anak)
Apa itu Generalisasi
pendefinisian
subclass-subclass yang disatukan menjadi entitas superclass
tunggal berdasarkan karakteristik umum. Disamping proses desain
top-down (dari inisial entitas ke level lebih rendah (subgrup)), desain juga
dapat dilakukan dengan proses bottom-up, yaitu banyak entitas disintesiskan
menjadi entity yang lebih tinggi berdasarkan kesamaan feature-nya.
Apa
itu Spesialisasi
proses yang
memperhatikan perbedaan setiap anggota dari sebuah entitas sehingga anggota
dari sebuah entitas bisa dikelompokkan ke dalam kelompok yang lebih kecil.
Apa itu Polimorfisme
Polimorfisme
melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa
orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan
sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut
dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat",
dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan
yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah
pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut
polimorfisme karena sebuah variabel tungal dalam program dapat memegang
berbagai jenis objek yang berbeda selagi program berjalan, dan teks program
yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda
dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang
mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
Apa itu UML
Unified
Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan
desain program berorientasi objek (OOP) serta aplikasinya. UML adalah
metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk
mendukung pengembangan sistem tersebut.
Jelaskan semua Diagram dan Notasi
UML
Use Case
Diagram
Use case
adalah abstraksi dari interaksi antara system dan actor. Use case bekerja
dengan cara mendeskripsikan tipe interaksi antara user sebuah system dengan
sistemnya sendiri melalui sebuah cerita bagaimana sebuah system
dipakai. Use case merupakan konstruksi untuk mendeskripsikan bagaimana
system akan terlihat di mata user. Sedangkan use case diagram memfasilitasi
komunikasi diantara analis dan pengguna serta antara analis dan client
Diagram Use
Case berguna dalam tiga hal :
- Menjelaskan
fasilitas yang ada (requirements)
Use Case baru selalu menghasilkan
fasilitas baru ketika sistem di analisa, dan design menjadi lebih jelas.
- Komunikas
dengan klien
Penggunaan notasi dan simbol dalam diagram Use
Case membuat pengembang lebih mudah berkomunikasi dengan klien-kliennya.
- Membuat
test dari kasus-kasus secara umum
Kumpulan dari kejadian-kejadian untuk Use Case bisa dilakukan
test kasus layak untuk kejadian-kejadian tersebut.
Activity
Diagram
Pada
dasarnya diagram Activity sering digunakan oleh flowchart. Diagram
ini berhubungan dengan diagram Statechart. Diagram Statechart berfokus padaobyek
yang dalam suatu proses (atau proses menjadi suatu obyek), diagram
Activity berfokus pada aktifitas-aktifitas yang terjadi yang terkait
dalam suatu proses tunggal. Jadi dengan kata lain, diagram ini menunjukkan
bagaimana aktifitas-aktifitas tersebut bergantung satu sama lain. Sebagai
contoh, perhatikan proses yang terjadi. “Pengambilan uang dari bank melalui
ATM.” Ada tiga aktifitas kelas (orang, dan lainnya) yang terkait yaitu :
Customer, ATM, and Bank. Proses berawal dari lingkaran start hitam pada bagian
atas dan berakhir di pusat lingkaran stop hitam/putih pada bagian bawah.
Aktivitas digambarkan dalam bentuk kotak persegi. Lihat gambar di bawah ini,
agar lebih jelas :
Contoh
Diagram Activity ‘Pengambilan Uang melalui ATM’.
Diagram
Activity dapat dibagi menjadi beberapa jalur kelompok yang menunjukkan obyek
mana yang bertanggung jawab untuk suatu aktifitas. Peralihan tunggal (single
transition) timbul dari setiap adanya activity (aktifitas),
yang saling menghubungi pada aktifitas berikutnya. Sebuah transition (transisi)
dapat membuat cabang ke dua atau lebih percabangan exclusive
transition (transisi eksklusif). Label Guard Expression(ada
didalam [ ]) yang menerangkan output (keluaran) dari percabangan. Percabangan
akan menghasilkan bentuk menyerupai bentuk intan. Transition bisa
bercabang menjadi beberapa aktifitas paralel yang disebut Fork. Fork beserta join (gabungan
dari hasil output fork) dalam diagram berbentuk solid
bar (batang penuh).
Sequence
Diagram
Diagram
Class dan diagram Object merupakan suatu gambaran model statis.
Namun ada juga yang bersifat dinamis, seperti Diagram
Interaction. Diagram sequence merupakan salah satu diagram Interaction yang
menjelaskan bagaimana suatu operasi itu dilakukan; message (pesan)
apa yang dikirim dan kapan pelaksanaannya. Diagram ini diatur berdasarkan
waktu. Obyek-obyek yang berkaitan dengan proses berjalannya operasi diurutkan
dari kiri ke kanan berdasarkan waktu terjadinya dalam pesan yang terurut. Di
bawah ini adalah diagram Sequence untuk pembuatan Hotel Reservation. Obyek yang
mengawali urutan message adalah ‘aReservation Window’.
Contoh
Diagram Sequence ‘Pemesanan kamar di Hotel’.
Reservation
window’ mengirim pesan makeReservation() ke ‘HotelChain’. Kemudian
‘HotelChain’ mengirim pesan yang sama ke ‘Hotel’. Bila ‘Hotel’ punya kamar
kosong, maka dibuat ‘Reservation’ dan ‘Confirmation’. Lifeline adalah
garis dot (putus-putus) vertikal pada gambar, menerangkan waktu terjadinya
suatu obyek. Setiap panah yang ada adalah pemanggilan suatu pesan. Panah
berasal dari pengirim ke bagian paling atas dari batang kegiatan (activation
bar) dari suatu pesan pada lifeline penerima.Activation
bar menerangkan lamanya suatu pesan diproses. Pada gambar diagram ,
terlihat bahwa ‘Hotel’ telah melakukan pemanggilan diri sendiri untuk
pemeriksaan jika ada kamar kosong. Bila benar, maka ‘Hotel’membuat
‘Reservation’ dan ‘Confirmation’. Pemanggilan diri sendiri disebut dengan iterasi. Expression yeng
dikurung dengan “[ ]”, adalah condition (keadaan kondisi).
Pada diagram dapat dibuat note (catatan). Pada gambar,
terlihat seperti selembar kertas yang berisikan teks. Note bisa
diletakan dimana saja pada diagram UML.
Communication
Diagram (Collaboration diagram in versi 1.x)
Collaboration
diagram menggambarkan interaksi antar objek seperti sequence diagram,
tetapi lebih menekankan pada peran masing-masing objek.
Setiap messagememiliki sequence number, di
mana message dari level tertinggi memiliki nomor 1. Messages dari
level yang sama memiliki prefiks yang sama. Diagram Collaboration juga
merupakan diagram interaction. Diagram membawa informasi yang sama
dengan diagram Sequence, tetapi lebih memusatkan atau memfokuskan pada kegiatan
obyek dari waktu pesan itu dikirimkan.
Contoh
Diagram Collaboration ‘Pemesanan kamar di Hotel’.
Kotak
kegiatan obyek diberi label dengan nama kelas atau obyek (atau keduanya). Nama
kelas dibatasi dengan colons / titik dua ( : ). Setiap pesan
pada diagram Collaboration mempunyai angka yang terurut. Pesan yang
tingkatannya tertinggi adalah angka 1. Pesan yang berada pada tingkat yang sama
memiliki prefix yang sama, namunsuffix berbeda
bergantung pada posisinya; hanya untuk angka 1, 2, dan seterusnya.
Class
Diagram
Class adalah
sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan
merupakan inti dari pengembangan dan desain berorientasi
objek. Classmenggambarkan keadaan (atribut/properti) suatu sistem,
sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut
(metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class,
package dan objek beserta hubungan satu sama lain
seperticontainment , pewarisan, asosiasi, dan lain-lain.
Class memiliki
tiga area pokok :
1. Nama (dan
stereotype)
2. Atribut
3. Metoda
Atribut dan
metoda dapat memiliki salah satu sifat berikut :
Private,
tidak dapat dipanggil dari luar class yang bersangkutan
Protected,
hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang
mewarisinya
Public,
dapat dipanggil oleh siapa saja
Class dapat
merupakan implementasi dari sebuah interface, yaitu class abstrak
yang hanya memiliki metoda. Interface tidak dapat langsung
diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi
sebuah class. Dengan demikian interface mendukung resolusi
metoda pada saat run-time. Sesuai dengan perkembangan class model, classdapat
dikelompokkan menjadi package. Kita juga dapat membuat diagram yang
terdiri atas package.
Hubungan
Antar Class
Asosiasi,
yaitu hubungan statis antar class . Umumnya
menggambarkan class yang memiliki atribut
berupa class lain, atau class yang harus mengetahui
eksistensi classlain. Panah navigability menunjukkan arah query antar class.
Agregasi, yaitu
hubungan yang menyatakan bagian (“terdiri atas..”).
Pewarisan,
yaitu hubungan hirarkis antar class . Class dapat
diturunkan dari classlain dan mewarisi semua atribut dan
metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia
disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah
generalisasi.
Hubungan
dinamis, yaitu rangkaian pesan ( message ) yang di-passing dari
satuclass kepada class lain. Hubungan dinamis dapat digambarkan
dengan menggunakan sequence diagram yang akan dijelaskan kemudian.
State
Machine Diagram (Statechart diagram in versi 1.x)
Statechart
diagram menggambarkan
transisi dan perubahan keadaan (dari satu state kestate lainnya)
suatu objek pada sistem sebagai akibat dari stimuli yang
diterima. Pada umumnya statechart diagram menggambarkan class tertentu
(satu class dapat memiliki lebih dari satu statechart
diagram ). Dalam UML, state digambarkan berbentuk
segiempat dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu.
Transisi antar stateumumnya memiliki kondisi guard yang
merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung
siku. Action yang dilakukan sebagai akibat dari eventtertentu
dituliskan dengan diawali garis miring. Titik awal dan akhir digambarkan
berbentuk lingkaran berwarna penuh dan berwarna setengah.
Component
Diagram
Component
diagram menggambarkan
struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan
( dependency ) di antaranya. Komponen piranti lunak adalah
modul berisi code , baik berisi source code maupun binary
code , baik library maupunexecutable ,
baik yang muncul pada compile time, link time , maupun run
time . Umumnya komponen terbentuk dari beberapa class dan/atau package ,
tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga
berupa interface , yaitu kumpulan layanan yang disediakan
sebuah komponen untuk komponen lain.
Deployment
Diagram
Deployment/physical
diagram menggambarkan
detail bagaimana komponen di-deploy dalam infrastruktur sistem, di
mana komponen akan terletak (pada mesin, server atau piranti keras apa),
bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan
hal-hal lain yang bersifat fisikal Sebuah node adalah
server, workstation , atau piranti keras lain yang digunakan
untuk men- deploy komponen dalam lingkungan sebenarnya.
Hubungan antar node (misalnya TCP/IP) dan requirement dapat
juga didefinisikan dalam diagram ini.
Composite
Structure Diagram
Diagram
struktur komposit adalah diagram yang menunjukkan struktur internal classifier,
termasuk poin interaksinya ke bagian lain dari sistem. Hal ini menunjukkan
konfigurasi dan hubungan bagian, yang bersama-sama melakukan perilaku
classifie. Diagram struktur komposit merupakan jenis diagram struktur statis
dalam Unified Modeling Language (UML),
yang menggambarkan struktur
internal kelas dankolaborasi.
Struktur
komposit dapat digunakan untuk menjelaskan :
- Struktur
dari bagian-bagian yang saling berkaitan
- Run-time
struktur yang saling berhubungan
Contoh :
Deskripsi dari bagian-bagian mesin yang saling berhubungan untuk melakukan
fungsi mesin.
Interaction
Overview Diagram
Interaction
Overview Diagram
adalah pencangkokan secara bersama antara activity diagram dengan sequence
diagram. Interaction Overview Diagram dapat dianggap
sebagai activity diagram dimana semua aktivitas diganti dengan
sedikit sequence diagram, atau bisa juga dianggap sebagai sequence diagram
yang dirincikan dengan notasi activitydiagram yang digunakan untuk
menunjukkan aliran pengawasan.
Object
Diagram
Object diagram merupakan sebuah gambaran
tentang objek-objek dalam sebuah sistem pada satu titik waktu. Karena lebih
menonjolkan perintah-perintah 29 daripada class,object diagram
lebih sering disebut sebagai sebuah diagram perintah.
Package
Diagram
Diagram
objek melengkapi notasi grafik untuk pemodelan objek, kelas dan relasinya
dengan yang lain. Diagram objek bermanfaat untuk pemodelan abstrak dan membuat
perancangan program. Untuk mengatur pengorganisasian diagram Class
yang kompleks, dapat dilakukan pengelompokan kelas-kelas
berupa package (paket-paket). Packageadalah kumpulan
elemen-elemen logika UML. Gambar di bawah ini mengenai model bisnis dengan
pengelompokan kelas-kelas dalam bentuk paket-paket :
Contoh
Diagram Package.
Ada jenis
khusus dari diagram Class yaitu diagram Object. Kegunaannya untuk penjelasan
yang sedikit dengan relasi yang sulit, khususnya relasi rekursif. Lihat gambar
dibawah, diagram Class kecil menunjukkan bahwa ‘department’ dapat mengandung
banyak ‘department’ yang lain.
Class yang
relasinya rekursif.
Setiap
tingkatan pada diagram berpengaruh pada single instance (bagian
tunggal). Nama bagian digarisbawahi dalam diagram UML. Untuk Class
name (nama kelas) maupuninstance name (nama bagian) bisa
mengambil dari diagram Object selama arti diagram tersebut masih jelas.
Instance
name memiliki
huruf yang digarisbawahi.
Timing
Diagram
Timing Diagram adalah bentuk lain
dari interaction diagram, dimana fokus utamanya lebih ke
waktu. Timing diagram sangat berdaya guna dalam menunjukkan faktor pembatas
waktu diantara perubahan state pada objek yang berbeda.