Perancangan Perangkat Lunak
Take Home Assignment: Mata Kuliah Dosen Program Fakultas Judul Dibuat oleh Web Blog
: Perancangan Perangkat Lunak : Khabib Mustofa, Dr.techn. : Pasca Sarjana Jurusan ILKOM : MIPA UNIVERSITAS GADJAH MADA JOGJAKARTA : Sistem Informasi Pariwisata Kota Palembang Sumatera Selatan : Rita Wiryasaputra (295402) : ritasaputra.web.ugm.ac.id : ritasaputra.blog.ugm.ac.id
Apaan sich yang namanya UML?? Saat ini aplikasi software semakin luas dan besar lingkupnya, sehingga tidak bisa lagi dibangun secara asal-asalan. Seyogyanya software dirancang dengan memperhatikan hal-hal seperti scalability , security , dan sebagainya. Selain itu arsitekturnya harus didefinisikan dengan jelas, agar bug mudah ditemukan dan diperbaiki, walaupun bukan oleh sang perekayasa aslinya. Keuntungan lain dari perencanaan arsitektur yang matang adalah dimungkinkannya penggunaan kembali modul atau komponen untuk aplikasi software berbeda yang membutuhkan fungsionalitas yang sama. Pemodelan ( modeling ) adalah proses merancang software sebelum melakukan pengkodean ( coding ). Membuat model perancangan dari sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem semacam secara menyeluruh. Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik. Dengan menggunakan model, diharapkan pengembangan piranti lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability, security , dan sebagainya. Kesuksesan suatu pemodelan software ditentukan oleh tiga unsur, yaitu metode pemodelan ( notation ), proses ( process ) dan tool yang digunakan. Sering mendengar istilah UML?? Unified Modelling Language (UML) adalah sebuah “bahasa” yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem software. Konsep dasar UML adalah penggunaan class dan operation lebih cocok untuk penulisan software dalam bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax /semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram software. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). Sejarah UML cukup panjang hingga era tahun 1990, puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
1
Perancangan Perangkat Lunak
metodologi coad metodologi OOSE metodologi OMT metodologi shlaer-mellor metodologi wirfs-brock
Dalam pendesainan berorientasi objek terjadi perang metodologi (method war) dimana masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbulnya ketidak kompatibilitas. Dimulai pada bulan Oktober 1994, Booch, Rumbaugh dan Jacobson, mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995 direlease draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org). Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Konsepsi Dasar UML Major Area
View static view
Diagrams class diagram
use case view
use case diagram
structural
dynamic
implementation view state machine view actifity view interaction view
component diagram statechart diagram state, event, transition, action activity state, activity, completion diagram transition, fork, join sequence interaction, object, message, diagram activation colaborating collaborating, interaction, diagram collaboration rule, message
model model management management view class diagram extensibility
Main Concepts class, association, generalization, dependency, realization, interface use case, actor, association, extend, include, use case generalization component, interface, dependency, realization
all
all
package, subsystem, model constraint, stereotype, tagged values
Abstraksi konsep dasar UML yang terdiri dari structural classification , dynamic behavior , dan model management , dapat dipahami dengan mudah apabila dilihat dari Diagrams . Main concepts dapat dipandang sebagai term yang akan tampil pada saat pembuatan diagram. Dan view adalah kategori dari diagram tersebut.
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
2
Perancangan Perangkat Lunak Untuk menguasai UML, sebenarnya cukup dua hal yang harus diperhatikan: 1. Menguasai pembuatan diagram UML 2. Menguasai langkah-langkah dalam analisa dan pengembangan dengan UML UML mendefinisikan diagram-diagram sebagai berikut: • use case diagram ⇒ dipergunakan untuk tugas Perancangan Perangkat Lunak • class diagram • statechart diagram • activity diagram • sequence diagram⇒ dipergunakan untuk tugas Perancangan Perangkat Lunak • collaboration diagram • component diagram • deployment diagram Use Case Diagram → menekankan pada ‘apa’ yang akan dikerjakan oleh sistem tanpa mempedulikan bagaimana sistem akan melakukannya secara rinci (penggambaran fungsionalitas sistem yang berinteraksi dengan aktor). Contohnya login ke sistem, meng- create sebuah daftar belanja, dan sebagainya. Dalam diagram sebuah objek aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Diagram ini membantu penyusunan requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat meng- include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Setiap kali use case yang meng- include dieksekusi secara normal maka use case yang di- include akan dipanggil. Sebuah use case dapat di- include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common . Sebuah use case juga dapat mengextend use case lain dengan behaviour -nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. Class Diagram Class merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem dan manipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment , pewarisan, asosiasi, dan lain-lain. Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
3
Perancangan Perangkat Lunak Class memiliki tiga area pokok : Nama (dan stereotype), Atribut, 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 karena tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package . Hubungan Antar Class 1. Asosiasi, yaitu hubungan statis antar class . Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability m enunjukkan arah query antar class . 2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”). 3. Pewarisan, yaitu hubungan hirarkis antar class . Class dapat diturunkan dari class lain 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. 4. Hubungan dinamis, yaitu rangkaian pesan ( message ) yang di- passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian. Statechart Diagram Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state 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 state umumnya memiliki kondisi guard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action yang dilakukan sebagai akibat dari event tertentu dituliskan dengan diawali garis miring. Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna setengah.
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
4
Perancangan Perangkat Lunak Activity Diagram Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di- trigger oleh selesainya state sebelumnya ( internal processing ). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan prosesproses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state , standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan prosesproses paralel ( fork dan join ) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu. Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men- trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class . Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message. Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity . Collaboration Diagram Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram , tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message . Setiap message memiliki sequence number , di mana message dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama.
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
5
Perancangan Perangkat Lunak 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 maupun executable , 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 dideploy 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. Tool Yang Mendukung UML Saat ini banyak sekali tool pendesainan yang mendukung UML, baik itu tool komersial maupun opensource. Beberapa diantaranya adalah: StarUML adalah salah satu aplikasi UML yang mendukung UML 2.0 dan MDA(Model Driven Architecture) dalam sistem operasi Windows. Kodenya dibangkitan dalam bahasa Java, C++ dan C#. Dokumentasi StarUML dapat dibangkitkan dalam program Microsoft Office seperti Word, Excel dan PowerPoint. Aplikasi UML ini juga dapat dikembangkan melalui modul dengan penggunaan COM-based plug in architecture dengan import kode dari Rational Rose ArgoUML ditulis dalam bahasa Java dan dapat digunakan pada platform apapun (windows, mac, linux unix). Didukung oleh UML standar 1.4 yang menyediakan pengembangan kode dalam bahasa Java, C++, C# dan PHP. ArgoUML mendukung permodelan keputusan, goals model dan sebagainya dimana diagramnya dapat diexport dalam format GIF, PNG, PS dan SVG Kivio 1.6.1 berada pada platform Linux unix yang merupakan bagian dari Koffice open source office. Dia 0.96 berada pada platform windows, linux unix. Menyerupai program Visio pada windows yang dapat menggambarkan berbagai macam diagram seperti entity relationship diagram, UML diagram, flowchart, network diagram, simple circuit.Dia juga mendukung bentuk-bentuk baru dengan menuliskan file XML yang sederhana sebagai bagian SVG. Sistem Informasi Pariwisata Kota Palembang Sumatera Selatan merupakan suatu fasilitas yang dapat dipergunakan pengguna untuk mencari informasi tentang daerah wisata kota Palembang Sumatera Selatan, hotel, transportasi, kuliner khas, oleh-oleh khas yang dapat dibeli sebagai buah tangan dari Palembang secara online. Rita Wiryasaputra-295402 6 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
Perancangan Perangkat Lunak Requirements dari perangkat lunak yang dibangun: Sistem Informasi Pariwisata Kota Palembang Sumatera Selatan akan memperkenankan user untuk mencari informasi wisata,fasilitas, transportasi User dapat melihat informasi yang berkenaan dengan kota Palembang baik fasilitas, pariwisata, transportasi User dapat melihat letak geografis tempat wisata dalam peta yang telah disediakan User dapat menentukan jenis kuliner, tipe, jarak, dari letak asal lokasi maka berdasarkan letak geografis yang dinamis dapat dicari dan diketahui lokasi tempat yang menarik untuk dikunjungi User dapat memberikan komentar dan saran dalam rubrik buku tamu dengan menginputkan nama, alamat email User dapat mengisi Pooling sebagai sarana untuk pengujian seberapa berkenankah sistem informasi pariwisata dan tempat wisata apakah yang paling menarik. User dapat melihat grafik hasil pooling Untuk melakukan proses penambahan data, perubahan, penghapus maka administrator harus melakukan verifikasi dan validasi pada login Untuk mendukung Sistem Informasi Pariwisata Kota Palembang Sumatera Selatan diperlukan data: Data hotel ⇒ alamat, jenis hotel, nomor telpon, kapasitas penyediaan kamar, jarak tempuh dari bandara, stasiun kereta api, terminal Data rumah makan ⇒ jenis makanan, alamat rumah makan, nomor telpon, sarana transportasi Data Makanan tradisional ⇒ jenis, bahan, alamat, jenis rumah makan Data oleh-oleh ⇒ alamat, jenis, bahan Data agen tiket ⇒ alamat, nomor telpon, jenis tiket Data tempat yang menyediakan money changer ⇒ alamat, nomor telpon Data transportasi pesawat udara ⇒ jadwal, jarak tempuh bandara,alamat bandara, nomor telpon Data kereta api ⇒ jadwal, alamat stasiun, nomor telpon Data bis ⇒ rute bis yang tersedia di kota Palembang, alamat terminal, alamat halte Data taksi ⇒ nomor telpon taksi, alamat pool Data wisata alam ⇒ alamat, informasi wisata alam Data wisata budaya ⇒ sejarah, alamat museum, sarana transportasi Data wisata bahari ⇒ informasi tempat wisata yang dapat dikunjungi, alternatif transportasi air Pendesainan Sistem Informasi Pariwisata Kota Palembang Sumatera Selatan menggunakan StarUML
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
7
Perancangan Perangkat Lunak Desain Sistem dengan Use Case Diagram Nama Aktor Pengguna
Admin
-
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
Nama Use Case Mencari data Melihat Informasi Mengisi pooling Mengisi buku tamu Memasukkan Login Menambah data Mengubah data Menghapus data
8
Perancangan Perangkat Lunak
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
9
Perancangan Perangkat Lunak Sequence Diagram : (*karena terbatasnya area kerja maka terbagi dalam beberapa kategori)
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
10
Perancangan Perangkat Lunak
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
11
Perancangan Perangkat Lunak Sistem Informasi Pariwisata Kota Palembang Sumatera Selatan didukung oleh google map API untuk peta dan google chart untuk penyampaian grafik hasil pooling. Karena pembahasan adalah pariwisata kota Palembang di Sumatera Selatan Indonesia maka yang akan tampak adalah peta wilayah Palembang. User dapat melihat secara interaktif lokasi-lokasi yang menjadi pusat perhatian user. Hasil pooling tentang bagaimana kesan mengenai wisata kota Palembang akan tampak dalam bentuk grafik pie. Pengujian yang akan dilakukan dengan: 1. metode Black Box ⇒ menekankan pada fungsionalitas dari software yang dibangun, contohnya ketika administrator memasukkan login apakah terjadi verifikasi dan validasi untuk username dan password yang telah disimpan dengan yang diinput 2. metode Beta testing ⇒ dimana user dapat mengisi pooling/angket sehingga dapat diketahui bagaimana kepuasan pengguna terhadap sistem informasi ini. Secara garis besar Sistem Informasi Pariwisata Kota Palembang akan menampilkan output : Menu Fasilitas
Sub Menu Hotel Makanan Tradisional Oleh-oleh
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
Keterangan
12
Perancangan Perangkat Lunak
Gambar 1. indexawal.html
Gambar 2. Peta Palembang Google Map API
Gambar 3. Grafik Pooling Google Chart API
Rita Wiryasaputra-295402 Program Pasca Sarjana Universitas Gadjah Mada Jogjakarta
13