350 likes | 576 Vues
5 Rekayasa Sistem. Konsep D asar Disain Berorientasi Obyek. Dedy Alamsyah , S.Kom . Tentang Mata Kuliah. Rekayasa Sistem Kredit : 3 SKS Kelas : Senin , 19.20-21.00 WIB. The Big Picture. Tidak ada Metode yang secara seratus persen mampu menjawab suatu permasalahan .
E N D
5RekayasaSistem KonsepDasarDisainBerorientasiObyek DedyAlamsyah, S.Kom.
Tentang Mata Kuliah • RekayasaSistem • Kredit: 3 SKS • Kelas: Senin, 19.20-21.00 WIB
The Big Picture TidakadaMetode yang secaraseratuspersenmampumenjawabsuatupermasalahan. PendekatanBerbasisObyeksaatinimenjadimetode yang banyakdipakaidalamdisainSistemInformasi.
Terminologi • Object Oriented Analaysisadalahmetodeanalisis yang memeriksarequirements (syarat/keperluan yang harusdipenuhisuatusistem) darisudutpandangkelas-kelasdanobjek-objek yang ditemuidalamruanglingkuppermasalahan. • Object Oriented Design adalahmetodeuntukmengarahkanarsitektur software yang didasarkanpadamanipulasiobjek-objeksistematausubsistem.
PrinsipDasarMembangunAnalisis Model • Domain informasidimodelkan • FungsiModuldigambarkan • Tingkahlaku model direpresentasikan • Model dipartisiuntukmengeksposdetil yang lebihluas • Model awalmerepresentasikanintimasalahsementara model selanjutnyamembderikandetilimplementasi
Change Address Change Name Change Phone No Create Customer Name Jo Address Here Phone No 555 Balance $1.49 Update Balance Delete Customer Print Balance List all Customer Pengenalan Objek Seperti ditunjukkan pada Taylor Donut Diagram:
A. KarakteristikdariObjek 1. Objek • Objekadalahbendasecarafisikdankonseptual yang ada di sekitarkita. Sebuahobjekmemilikikeadaansesaat yang disebut state. • Objekdapatkongkrit, sepertihalnyaarsipdalamsistem, ataukonseptualsepertikebijakanpenjadwalandalam multiprocessing padasistemoperasi. • Duaobjekdapatberbedawalaupunbilasemuanilaiatributnyaidentik.
I. PengertiandanKonsepOOAD Analisisdandisainberorientasiobjekadalahcarabarudalammemikirkansuatumasalahdenganmenggunakan model yang dibuatmenurutkonsepsekitardunianyata. Dasarpembuatanadalahobjek, yang merupakankombinasiantarastruktur data danperilakudalamsatuentitas. Pengertian “berorientasiobjek” berartibahwakitamengorganisasiperangkatlunaksebagaikumpulandariobjektertentu yang memilikistruktur data danperilakunya. Konsep OOAD mencakupanalisisdandesainsebuahsistemdenganpendekatanobjek, yaiutanalisisberorientasiobjek (OOA) dandesainberorientasiobjek (OOD). OOA adalahmetodeanalisis yang memerika requirement (syarat/keperluan) yang harusdipenuhisebuahsistem) darisudutpandangkelas-kelasdanobjek-objek yang ditemuidalamruanglingkupperusahaan. Sedangkan OOD adalahmetodeuntukmengarahkanarsitektur software yang didasarkanpadamanipulasiobjek-objeksistematausubsistem.
OOA (Object Oriented Analysis) OOA mempelajaripermasalahandenganmenspesifikasikannyaataumengobservasipermasalahntersebutdenganmenggunakanmetodeberorientasiobjek. Biasanyaanalisasistemdimulaidenganadanyadokumenpermintaan (requirement) yang diperolehdarisemuapihak yang berkepentingan. (Misal: klien,developer, pakar, dan lain-lain).
Dokumenpermintaanmemiliki 2 fungsiyaitu : Memformulasikankebutuhanklien Membuatsuatudaftartugas. Analisisberorientasiobyek (OOA) melihatpada domain masalah, dengantujuanuntukmemproduksisebuah model konseptualinformasi yang ada di daerah yang sedangdianalisis. Model analisistidakmempertimbangkankendala-kendalapelaksanaanapapun yang mungkinada, sepertikonkurensi, distribusi, ketekunan, ataubagaimanasistemharusdibangun. Kendalapelaksanaanditanganiselamadesainberorientasiobjek (OOD).
Sumber-sumberuntukanalisisdapatpersyaratantertulispernyataan, dokumenvisi yang formal, wawancaradengan stakeholder ataupihak yang berkepentinganlainnya. Sebuahsistemdapatdibagimenjadibeberapa domain, yang mewakilibisnis yang berbeda, teknologi, ataubidang yang diminati, masing-masingdianalisissecaraterpisah. Hasilanalisisberorientasiobjekadalahdeskripsidariapasistemsecarafungsionaldiperlukanuntukmelakukan, dalambentuksebuah model konseptual. Itubiasanyaakandisajikansebagaiseperangkatmenggunakankasus, satuataulebih UML diagram kelas, dansejumlah diagram interaksi. Tujuandarianalisisberorientasiobjekadalahuntukmengembangkan model yang menggambarkanperangkatlunakkomputerkarenabekerjauntukmemenuhiseperangkatpersyaratan yang ditentukanpelanggan.
UML (Unified Modeling Language) Adalahsebuahbahasa yang berdasarkangrafik/gambaruntukmemvisualisasi, menspesifikasikan, membangun, danpendokumentasiandarisebuahsistempengembangan software berbasis OO (Object-Oriented). UML sendirijugamemberikanstandarpenulisansebuahsistem blue print, yang meliputikonsepbisnis proses, penulisankelas-kelasdalambahasa program yang spesifik, skema database, dankomponen-komponen yang diperlukandalamsistem software.
Unified Model Language (UML) adalahbahasa universal untuk : • Memvisualisasikangrafis model yang tepat. • Menetapkan model yang tepat, lengkap, dantidakambiguuntukmengambilsemuakeputusanpentingdalamanalisis, desaindanimplementasi. • Membangun model yang dapatdihubungkanlangsungdenganbahasapemrograman. • Mendokumentasikansemuainformasi yang dikumpulkanolehtimsehinggamemungkinkanuntukberbagiinformasi.
II. PemodelanBerorientasiObjek A. PemodelanSebagaiTeknikDesain Teknikpemodelanobjekmenggunakantigamacam model untukmenggambarkansistem, diantaranyaadalahsebagaiberikut : • Model Objek • Model Dinamik • Model Fungsional
1. Model Objek Model objekmenggambarkanstrukturstatisdarisuatuobjekdalamsistemdanrelasinya. Model objekberisi diagram objek. Diagram objekadalah graph dimananodenyaadalahkelas yang mempunyairelasiantarkelas.
2. Model Dinamik Model dinamikmenggambarkanaspekdarisistem yang berubahsetiapsaat. Model dinamikdipergunakanuntukmenyatakanaspekkontroldarisistem. Model dinamikberisi state diagram. State diagram adalah graph dimananodenyaadalah state dan arc adalahtarnsisiantara state yang disebabkanoleh event.
3. Model Fungsional Model fungsionalmenggambrakantransformasinilai data di dalamsistem. Model fungsionalberisi data flow diagram. DFD adalahsuatu graph dimananodenyamenyatakan proses danarcnyaadalahaliran data.
B. Model BerorientasiObjek Sebuahmodel objekmenangkapstrukturstatisdarisistemdenganmenggambarkanobjekdalamsistem, hubunganantaraobjek, sertaatributdanoperasi yang merupakankarakteristiksetiapkelasdanobjek. Model berorientasiobjeklebihmendekatikeadaannyata, dandilengkapidenganpenyajiangrafisdarisistem yang sangatbermanfaatuntukkomunikasidengan user danpembuatandokumentasistrukturdarisistem.
1. ObjekdanKelas Objek Objekdidefinisikansebagaikonsep, abstraksiataubendadenganbatasandanartiuntuksuatumasalah. Semuaobjekmempunyaiidentitas yang berbedadenganlainnya. Istilahidentitasberartibahwaobjekdibedakanolehsifat yang melekatdanbukandenganuraiansifat yang dimilikinya. Contohnya : kembaridentik, walaupunmerekanampaksepertisama, tetapimerupakandua orang yang berbeda. Kadang-kadangobjekberartisuatubarang, makadigunakanistilah object instance, dan object class untukmenunjukkansatugrupdaribarang yang sama.
1. ObjekdanKelas (Count) Kelas Suatu object class menggambarkankumpulandariobjek yang mempunyaisifat (atribut), perilakuumum (operasi), relasiumumdenganobjek lain dansemantikumum. Contoh : Orang, perusahaan , binatang, proses adalahobjek. Setiap orang mempunyaiumur, IQ, danmungkinpekerjaan. Setiap proses mempunyaipemilik, prioritas, list darisumberdaya yang dibutuhkan. Objekdan object class seringsamasebagaibendadalamdeskripsimasalah.
2. Diagram Objek Diagram objekmelengkapinotasigrafikuntukpemodelanobjek, kelasdanrelasinyadengan yang lain. Diagram objekbermanfaatuntukpemodelanabstrakdanmembuatperancangan program.
KelasdanObjek Konsepfundamental dalamanalisisberorientasiobjekadalahobjekitusendiri. Sebuahobjekadalahsebuahentitas yang mencakup data danmetode. Kelasmerupakansatuataulebihobjekdenganpersamaanatributdanmetode, sedangkankelas-&-objekadalahkelasdengansatuataulebihobjek di dalamnya. Namakelasadalah kata bendatunggal, atau kata sifatdan kata benda. Namadarikelas-&-objekharusdapatmenjelaskanobjektunggaldarisuatukelas.
StrukturObjekdanHirarkiKelas • Strukturkelasdibagiduamacam, yaitu Whole-Part Structure dan Gen-Spec Structure. 1. Whole-Part Structure Whole-Part Structure memperlihatkanhirarkidarisuatukelassebagaikomponendarikelas lain yang disebutjuga sub objek. Contohnya, kelas Mobil adalah Whole dankomponennyaMesin, Rangka, dan lain-lain, merupakan Part1, Part 2, …, Part n.
2. Gen-Spec Structure Gen-Spec Structure memperlihatkankelassebagaispesialisasidarikelas di atasnya. Kelas yang mempunyaisifatumumdisebut Generalization, Superclass atauTopclass, sedangkankelas yang mempunyaisifatkhususdisebutSpecialization Contohnya, kelas Mobil adalah Generalization, sedangkan Sedan, Truk, Minibus, dan lain-lain merupakan Specizlization1, Specialization2, …, Specialization n, yaitukelas yang mempunyaisifatkhusus
- Atribut Atributmenggambarkan data yang dapatmemberikaninformasimengenaikelasatauobjekdimanaatributtersebutberada.
- Metode Metode(method) disebutjuga service atau operator adalahprosedurataufungsiseperti yang terdapatdalambahasa Pascal padaumumnya, tetapicarakerjanyaagakberlainan. Metodeadalah subprogram yang tergabungdalamobjekbersama-samadenganatribut. Metodedipergunakanuntukpengaksesanterhadap data yang terdapatdalamobjektersebut.
- Pesan (Message) Message merupakancarauntukberhubunganantarasatuobjekdenganobjek lain. Suatupesandikirimkanolehsuatuobjekkepadaobjektertentudapatdigambarkandengananakpanah.
MetodeTerstruktur Kelebihan • Milestone diperlihatkandenganjelas yang memudahkandalammanajemenproyek • SSAD merupakanpendekatan visual, inimembuatmetodeinimudahdimengertiolehpenggunaatau programmer. • Penggunaananalisisgrafisdan tool seperti DFD menjadikan SSAD menjadikanbagusuntukdigunakan. • SSAD merupakanmetode yang diketahuisecaraumumpadaberbagai industry. • SSAD sudahditerapkanbegitu lama sehinggametodeinisudahmatangdanlayakuntukdigunakan.SSADmemungkinkanuntukmelakukanvalidasiantaraberbagaikebutuhanSSADrelatifsimpeldanmudahdimengerti.
MetodeTerstruktur Kekurangan • SSAD berorientasiutamapada proses, sehinggamengabaikankebutuhan non-fungsional. • SedikitsekalimanajemenlangsungterkaitdenganSSAD • Prinsipdasar SSAD merupakanpengembangan non-iterative (waterfall), akantetapikebutuhanakanberubahpadasetiap proses. • Interaksiantaraanalisisataupenggunatidakkomprehensif, karenasistemtelahdidefinisikandariawal, sehinggatidakadaptifterhadapperubahan (kebutuhan-kebutuhanbaru). • Selaindenganmenggunakandesain logic dan DFD, tidakcukup tool yang digunakanuntukmengkomunikasikandenganpengguna, sehinggasangatsliitbagipenggunauntukmelakukanevaluasi. • PadaSAAD sulitsekaliuntukmemutuskanketikainginmenghentikandekomposisidanmliaimembuatsistem.SSADtidakselalumemenuhikebutuhanpengguna. • SSAD tidakdapatmemenuhikebutuhanterkaitbahasapemrogramanberorientasiobyek, karenametodeinimemangdidesainuntukmendukungbahasapemrogramanterstruktur, tidakberorientasipadaobyek (Jadalowen, 2002).
MetodeBerorientasiObyek Kelebihan Dibandingkandenganmetode SSAD, OOAD lebihmudahdigunakandalampembangunansistem Dibandingkandengan SSAD, waktupengembangan, level organisasi, ketangguhan,danpenggunaankembali (reuse) kode program lebihtinggidibandingkandenganmetode OOAD (Sommerville, 2000). Tidakadapemisahanantarafasedesaindananalisis, sehinggameningkatkankomunikasiantara user dan developer dariawalhinggaakhirpembangunansistem. Analisdan programmer tidakdibatasidenganbatasanimplementasisistem, jadidesaindapatdiformliasikan yang dapatdikonfirmasidenganberbagailingkunganeksekusi.
Kelebihan (Count) Relasiobyekdenganentitas (thing) umumnyadapat di mapping denganbaiksepertikondisipadadunianyatadanketerkaitandalamsistem. Hal inimemudahkandalammehamidesain (Sommerville, 2000). Memungkinkanadanyaperubahandankepercayaandiri yang tinggiterhadapkebernaran software yang membantuuntukmengurangiresikopadapembangunansistem yang kompleks (Booch, 2007). Encapsliation data dan method, memungkinkanpenggunaankembalipadaproyek lain, haliniakanmemperingan proses desain, pemrogramandanreduksiharga. OOAD memungkinkanadanyastandarisasiobyek yang akanmemudahkanmemahamidesaindanmengurangiresikopelaksanaanproyek. Dekomposisiobyek, memungkinkanseoranganalisuntukmemcahmasalahmenjadipecahan-pecahanmasalahdanbagian-bagian yang dimanagesecaraterpisah. Kode program dapatdikerjakanbersama-sama. Metodeinimemungkinkanpembangunan software dengancepat, sehinggadapatsegeramasukkepasarandankompetitif. Sistem yang dihasilkansangatfleksibeldanmudahdalammemelihara.
MetodeBerorientasiObyek Kekurangan Padaawaldesain OOAD, sistemmungkinakansangat simple. PadaOOAD lebihfockuspada coding dibandingkandenganSSAD.Pada OOAD tidakmenekankanpadakinerja team sepertipada SSAD. PadaOOAD tidakmudahuntukmendefinisikan class danobyek yang dibutuhkansistem. Seringkali pemrogramamberorientasiobyekdigunakanuntukmelakukananlisisisterhadapfungsionalsiste, sementarametode OOAD tidakberbasispadafungsionalsistem. OOAD merupakanjenismanajemenproyek yang tergolongbaru, yang berbedadenganmetodeanalisisdenganmetodeterstruktur. Konsekuensinyaadalah, team developer butuhwaktu yang lebih lama untukberpindahke OOAD, karenamerekasudahmenggunakan SSAD dalamwaktu yang lama ( Hantos, 2005) Metodologipengembangansistemdengan OOAD menggunakankonsep reuse. Reuse merupakansalahsatukeuntunganutama yang menjadialasandigunakannya OOAD. Namundemikian, tanpaprosedur yang emplisitterhadap reuse, akansangatsliituntukmenerapkankonsepinipadaskalabesar (Hantos, 2005).
PerbedaanAnalisaBerbasisObjekdan Yang Terstruktur PerancanganTerstruktur : Modulmerupakan unit darikode software yang menjalankanfungsi. PerancanganBerorientasiObjek : Modulobjek yang mengenkapsulasiatributdankode program untukberjalan.