INFORMATION SYSTEM DESIGN USING UML YUDHO
SESI PERTAMA Dalam sesi pertama ini anda akan mempelajari tentang : UML, sejarah dan latar belakang ? prinsip Object Oriented ? memahami UML ?
UML menjadi sebuah trend baru dalam dunia pengembangan software, hampir seluruh industry software menggunakan UML sebagai basis untuk pengembangan produk software mereka, paradigma ini sangat menarik untuk di gali lebih dalam. Dalam subbab disini akan diulas mengenai seluk beluk UML dari awal hingga akhir.
1.1 UML sebagai standarisasi Evolusi dari software selalu berkaitan dengan evolusi dari organisasi dalam konteks proses bisnis, kondisi yng sebenarnya adalah bahwa proses bisnis selalu lebih dahulu ada dan terus berganti, sehingga hal ini menjadi tantangan bagi setiap pengembang software dan semua pihak yang terlibat di dalamnya untuk dapat memberikan solusi bagi customer's. Tentu saja dalam proses pembuatan software memerlukan framework dan teknik yang sudah terbukti baik. Dan UML merupakan teknik yang benar, dalam kursus ini anda akan belajar seperti apa UML dapat memberikan solusi terbaik dalam pengembangan software berstandar internasional.
1.2 UML , asal usul Unified Modelling Language atau lebih dikenal dengan singkatan UML merupakan sekumpulan notasi grafis, di latarbelakangi oleh meta model, yang berfungsi untuk menggambarkan dan mendefinisikan software berbasis object oriented. Sejarah UML sendiri dimulai pada tahun 1994, Grady Booch dan James Rumbaugh berkolaborasi untuk mengembangkan standar notasi untuk object oriented software methods. Setahun kemudian merekan mempublikasikan UML versi 0.8 dan tidak lama kemudian Ivar Jacobson bergabung dalam tim object oriented developmnet mereka. Sehingga mereka dikenal sebagai “three amigos” dalam dunia Object Oriented Software development. Pada saat yang bersamaan ketika mereka sedang menggarap notasi tersebut, OMG (object management group) menetapkan Object oriented analysis and design. OMG merupakan sebuah organisasi yang juga mengelola standar CORBA. Diagram yang digunakan pada UML memiliki hirarki yang masing masing juga memiliki arti, hirarki dari diagram tersebut adalah sebagai berikut :
INFORMATION SYSTEM DESIGN USING UML YUDHO
UML dalam konteks pengembangan software menjadi sangat erat dengan pengembangan software berbasis Object Oriented. Sehingga jika anda mendengar istilah OOAD atau OOP selalu identik dengan penggunaan UML sebagai standar dokumentasi.
1.3 Cara memahami uml
UML terdiri dari spesifikasi untuk sembilan diagram yang berbeda yang digunakan untuk mendokumentasikan berbagai persfektif dari solusi pengembangan software dari awal project hingga instalasi dan perawatan. Sehingga sangat ditekankan untuk memahami pendekatan yang akan digunakan untuk menguasai UML.
INFORMATION SYSTEM DESIGN USING UML YUDHO
1.3.1 Views salah satu cara untuk mengatur diagram adalan dengan menggunakan views. Sebuah view merupakan sekumpulan diagram yang menggambarkan aspek dalam project. Umumnya terdapat tiga jenis view yaitu Static view, dynamic view dan functional view. Korelasi antara ketiga view ini dapat dilihat pada diagram berikut :
memahami pendekatan ini akan lebih mudah dengan memberikan contoh: seperti dalam kehidupan sehari hari, anda dapat perhatikan. Pada pekerjaan anda, apa yang anda ketahui tentang pekerjaan anda sudah tertulis dalam perjanjian awal ketika anda melamar pekerjaan. Deskripsi pekerjaan anda adalah sejenis dengan static, yang menyatakan apa jenis pekerjaan anda. Kemudian biasanya dalam pekerjaan anda dituntut untuk melakukan sesuai dengan apa yang diharapkan berdasarkan detil dari setiap pekerjaan yang menjadi indikator dari performa anda, hal semacam ini sama dengan dynamic view. Kemudiandalam pekerjaan biasanya anda memperoleh instruksi khusus atau spesifik tentang bagaimana cara melakukan pekerjaan (seperti prosedur,kebijakan yang harus diikuti),hal semacam ini merupakan fungsional pekerjaan anda, contohnya seperti bagaimana cara melakukan ketimbang apa yang harus dilakukan.
1.3.2 Functional View dalam Functional view, terdapat duan diagram yakni use case dan activity diagram. Use case diagram memberikan definsi tentang fungsi yang harus disediakan oleh sistem. Fungsi harus terlebih dahulu dinyatakan sebagai goals. Kemudian goals tersebut di uraikan secara naratif untuk menjelaskan apa yang yang harus dilakukan untuk mencapai setiap goals.
INFORMATION SYSTEM DESIGN USING UML YUDHO
diagram diatas merupakan bentuk dari use case dan activity diagram. Jika use case menjelaskan tentang apa saja yang harus disediakan oleh sistem, activity berguna untuk memodelkan workflow atau proses bisnis. Akan sangat berguna untuk melakukan prakiraan tentang kompleksitas sistem atau media komunikasi terhadap user tentang proses apa yang harus dilakukan dan diselesaikan. Sehingga saat detail dari sistem mulai mengarah pada kesulitan yang cukup tinggi, gunakanlan activity diagram, karena secara logika akan mudah untuk dimengerti. Sebagai tahapan awal, ringkasan dari dua diagram tersebut adalah sebagai berikut : ● use case diagram menggambarkan fitur fitur yang user inginkan dari sistem dan tersedia. ● Activity diagram menggambarkan proses seperti sequential tasks, kondisi logik, dan konkurensi. Diagram ini mirip dengan flowchart, namun sudah mengalami perubahan untuk tujuan pemodelan object. 1.3.3 Static View static view memiliki diagram yang menyediakan snapshot dari element yang ada pada sistem, namun tidak memberitahukan anda bagaimana perilaku dari setiap elemen tersebut. Static view lebih mengarah kepada blueprint, namun blueprint sendiri bersifat komprehensif, sementara static view hanya menunjukkan hal yang paling sederhana. Terdapat dua diagram dalam static view yakni class diagram dan object diagram. class diagram merupakan tools primer dalam static view. Ia menyediakan bentuk tetap dari seluruh resource (class) dan fitur fiturnya. Dan merupakan diagram yang selalu digunakan untuk men generate code. Berikut adalah contoh dari class diagram :
INFORMATION SYSTEM DESIGN USING UML YUDHO
untuk dapat memahami class diagram, anda dapat menggunakan object diagram. Sangat berguna untuk menjelaskan apa yang akan terjadi berdasarkan sample data. Object diagram juga biasa digunakan sebagai alat uji class diagram. Dalama object diagram proses lojik membuat object dan relationship diantara mereka. Berikut ada ringkasan dari contoh diatas : ● class diagram adalah diagram static primer. Merupakan awal untuk pemodelan object dan class, juga merupakan bahan untuk generate code. ● Object diagram memberikan ilustrasi dalam bentuk objek untuk memodelkan contoh dan test data. Juga digunakan sebagai test untuk memahami class diagram. 1.3.4 Dynamic View pada bagian sebelumnya telah disebutkan bahwa static view mirip seperti blueprint. Contoh dalam blueprint rumah kita dapat melihat pintu depan, perapian di bawah tangga, ruang tamu dan sebagainya. Namun kita tidak dapat melihat bagaimana seluruh bagian dapat bekerja sama. Seperti jika pintu dalam keadaan terbuka sementara angin bertiup kencang dan apa yang terjadi dengan perapian atau ruangan lain ?, kita tidak pernah bisa melihatnya pada blueprint. Jika saja kita dapat melihat model dari interaksi antara seluruh bagian dalam blueprint tersebut kita dapat mengetahui apa yang terjadi dalam rumah pada setiap kondisi yang ada. Contoh dari komponen dynamic view dapat anda lihat sebagai berikut :
INFORMATION SYSTEM DESIGN USING UML YUDHO
terdapat tiga buah diagram yaitu sequence diagram, statechart diagram dan collaboration diagram. Sequence diagram dan collaboration diagram menggambarkan interaksi antara object. Statechart diagram menggambarkan bagaimana object memberikan reaksi terhadap respon external dan perubahan internal.
1.4 prinsip object oriented seperti yang sudah dijelaskan pada bagian sebelumnya bahwa object oriented sangat berkaitan erat dengan UML, notasi yang digunakan pada UML mendukung pembentukan object oriented design. Sehingga akan sangat sulit sekali untuk kita bisa memahami UML jika tidak memahami prinsip OOAD dan OOP. Namun pada tahapan ini kita tidak akan berbelit belit sehingga anda kesulitan dan kehilangan arah memahami UML, lets get to to the point, apa itu object? Jawabanya adalah seluruh benda yang dapat anda amati contoh: mobil,buku,orang,lampu dan sebagainya, namun tidak hanya itu object juga dapat berupa sesuatu yang intangible seperti jenis penyakit, kehadiran bahkan pekerjaan. Prinsip object orinted dapat dipahami dengan mudah dari konsep utama dahulu, biasakanlah untuk mengenal istilah dan definisi berikut : Abstraction sebuah object dalam software merupakan abstraction, yang merupakan representatif dari sesuatu di dunia nyata. Abstraction merupakan cara untuk menggambarkan sesuatu yang kita hanya anggap penting dan dapat menyimpan informasi. Contoh ketika kita ingin menghubungi seseorang ,mungkin kita tidak ingin informasi selain nomor telepon atau alamat email. Untuk lebih jelasnya silahkan lihat contoh berikut :
INFORMATION SYSTEM DESIGN USING UML YUDHO
gambar seseorang di sebelah kiri merupakan object nyata pada dunia sebenarnya dan gambar di sebelah kanan merupakan abstraksi dari object. Dengan menggambarkan abstraksi dari object kita akan melihat kebutuhan informasi apa yang diperlukan dan memberikan solusi apa yang kita akan buat. Apa yang harus dimiliki object. Untuk dapat berfungsi dengan baik setiap object harus memiliki dua jenis informasi dan dua jenis behaviour. Masing masing akan dijelaskan sebagai berikut : information pertama, dapat kita asumsikan bahwa object dapat diketahui keadaan dirinya sendiri. Atau dengan kata lain terdapat informasi yang menjelaskan object. Contohnya adalah sebuah buku memliki halaman ,cover, pengarang dan sebagainya. Ini merupakan jenis informasi yang nantinya akan diambil dan dimanipulasi dalam file atau database. Kedua, dapat kita asmumsikan bahwa object diketahui dari kondisi saat ini, biasanya di sebut state dari object. Sehingga jika pada jangka waktu tertentu ada perobahan dari properti object maka statusnya pun akan berubah. Behavior behaviour merupakan penggambaran tentang apa yang object dapat lakukan , contoh paling mudah adalah jika anda perhatikan lingkungan kerja anda, mungkin teman anda satu sama lain berbeda tugas/fungsi, namun mereka memiliki kesamaan tentang bagaimana dan apa yang mereka lakukan untuk menyelesaikan pekerjaan. Encapsulation encapsulation adalah proses pemilahan elemen elemen dari abstraksi yang berkaitan dengan struktur dan behavior; encapsulation memisahkan antara interface dari abstraksi dan implementasi. Pada enkapsulasi object diperlukan : tujuan, untuk kita dapat memilih object yang benar untuk aplikasi yang diinginkan. Interface, untuk dapat mengetahui bagaimana cara menggunakan object.
INFORMATION SYSTEM DESIGN USING UML YUDHO
Quiz. 1. sebutkan definisi dari UML 2. sebutkan apa yang dimaksud dengan staticview,functional view dan dynamic view? 3. Berikan contoh object dan abstraction?