Wecome


Click here for Myspace Layouts
Twitter Delicious Facebook Digg Stumbleupon Favorites More

Kamis, 24 Juni 2010

Pengenalan UML

Pengenalan "Unified Modeling Language/UML"

Dalam suatu proses pengembangan software, analisa dan rancangan telah merupakan terminologi yang sangat tua. Pada saat masalah ditelusuri dan spesifikasi dinegoisasikan, dapat dikatakan kita berada pada tahap rancangan. Merancang adalah menemukan suatu cara untuk menyelesaikan masalah, salah satu tool / model untuk merancang pengembangan software yang berbasis object oriented adalah UML.
Konsep Objek
Obyek dalam ‘software analysis & design’ adalah sesuatu berupa konsep (concept), benda (thing), dan sesuatu yang membedakannya dengan lingkungannya. Secara sederhana obyek adalah mobil, manusia, alarm dan lain¬lainnya. Tapi obyek dapat pula merupakan sesuatu yang abstrak yang hidup didalam sistem seperti tabel, database, event, system messages.
Obyek dikenali dari keadaannya dan juga operasinya. Sebagai contoh sebuah mobil dikenali dari warnanya, bentuknya, sedangkan manusia dari suaranya. Ciri¬ciri ini yang akan membedakan obyek tersebut dari obyek lainnya.
Alasan mengapa saat ini pendekatan dalam pengembangan software dengan object-oriented, pertama adalah scalability dimana obyek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua dynamic modeling, adalah dapat dipakai untuk permodelan sistem dinamis dan real time.
Tekn i k Dasar OOA/ D (Object-Oriented Analysis/Design)
Dalam dunia pemodelan, metodologi implementasi obyek walaupun terikat kaidah-kaidah standar, namun teknik pemilihan obyek tidak terlepas pada subyektifitas software analyst & designer. Beberapa obyek akan diabaikan dan beberapa obyek menjadi perhatian untuk diimplementasikan di dalam sistem. Hal ini sah-sah saja karena kenyataan bahwa suatu permasalahan sudah tentu memiliki lebih dari satu solusi. Ada 3 (tiga) teknik/konsep dasar dalam OOA/D, yaitu pemodulan (encapsulation), penurunan (inheritance) dan polymorphism.
a. Pemodulan (Encapsulation)
Pada dunia nyata, seorang ibu rumah tangga menanak nasi dengan menggunakan rice cooker, ibu tersebut menggunakannya hanya dengan menekan tombol. Tanpa harus tahu bagaimana proses itu sebenarnya terjadi. Disini terdapat penyembunyian informasi milik rice cooker, sehingga tidak perlu diketahui seorang ibu. Dengan demikian menanak nasi oleh si ibu menjadi sesuatu yang menjadi dasar bagi konsep information hiding.
b. Penurunan (Inheritance)
Obyek-obyek memiliki banyak persamaan, namun ada sedikit perbedan. Contoh dengan beberapa buah mobil yang mempunyai kegunaan yang berbeda-beda. Ada mobil bak terbuka seperti truk, bak tertutup seperti sedan dan minibus. Walaupun demikian obyek-obyek ini memiliki kesamaan yaitu teridentifikasi sebagai obyek mobil, obyek ini dapat dikatakan sebagai obyek induk (parent). Sedangkan minibus dikatakan sebagai obyek anak (child), hal ini juga berarti semua operasi yang berlaku pada mobil berlaku juga pada minibus.

c. Polymorphism
Pada obyek mobil, walaupun minibus dan truk merupakan jenis obyek mobil yang sama, namun memiliki juga perbedaan. Misalnya suara truk lebih keras dari pada minibus, hal ini juga berlaku pada obyek anak (child) melakukan metoda yang sama dengan algoritma berbeda dari obyek induknya. Hal ini yang disebut polymorphism, teknik atau konsep dasar lainnya adalah ruang lingkup / pembatasan. Artinya setiap obyek mempunyai ruang lingkup kelas, atribut, dan metoda yang dibatasi.
Sejarah Singkat UML
UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software (http://www.omg.org).
Pendekatan analisa & rancangan dengan menggunakan model OO mulai diperkenalkan sekitar pertengahan 1970 hingga akhir 1980 dikarenakan pada saat itu aplikasi software sudah meningkat dan mulai komplek. Jumlah yang menggunakaan metoda OO mulai diuji cobakandan diaplikasikan antara 1989 hingga 1994, seperti halnya oleh Grady Booch dari Rational Software Co., dikenal dengan OOSE (Object-Oriented Software Engineering), serta James Rumbaugh dari General Electric, dikenal dengan OMT (Object Modelling Technique).
Kelemahan saat itu disadari oleh Booch maupun Rumbaugh adalah tidak adanya standar penggunaan model yang berbasis OO, ketika mereka bertemu ditemani rekan lainnya Ivar Jacobson dari Objectory mulai mendiskusikan untuk mengadopsi masing-masing pendekatan metoda OO untuk membuat suatu model bahasa yang uniform / seragam yang disebut UML (Unified Modeling Language) dan dapat digunakan oleh seluruh dunia.
Secara resmi bahasa UML dimulai pada bulan oktober 1994, ketika Rumbaugh bergabung Booch untuk membuat sebuah project pendekatan metoda yang uniform/seragam dari masing-masing metoda mereka. Saat itu baru dikembangkan draft metoda UML version 0.8 dan diselesaikan serta di release pada bulan oktober 1995. Bersamaan dengan saat itu, Jacobson bergabung dan UML tersebut diperkaya ruang lingkupnya dengan metoda OOSE sehingga muncul release version 0.9 pada bulan Juni 1996. Hingga saat ini sejak Juni 1998 UML version 1.3 telah diperkaya dan direspons oleh OMG (Object Management Group), Anderson Consulting, Ericsson, Platinum Technology, ObjectTime Limited, dll serta di pelihara oleh OMG yang dipimpin oleh Cris Kobryn.
UML adalah standar dunia yang dibuat oleh Object Management Group (OMG), sebuah badan yang bertugas mengeluarkan standar-standar teknologi object- oriented dan software component.
3. Pengenalan UML
UML sebagai sebuah bahasa yang memberikan vocabulary dan tatanan penulisan kata-kata dalam ‘MS Word’ untuk kegunaan komunikasi. Sebuah bahasa model adalah sebuah bahasa yang mempunyai vocabulary dan konsep tatanan / aturan penulisan serta secara fisik mempresentasikan dari sebuah sistem. Seperti halnya UML adalah sebuah bahasa standard untuk pengembangan sebuah software yang dapat menyampaikan bagaimana membuat dan membentuk model-model, tetapi tidak menyampaikan apa dan kapan model yang seharusnya dibuat yang merupakan salah satu proses implementasi pengembangan software.

UML tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA, C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah object-oriented database. Begitu juga mengenai pendokumentasian dapat d ilakukan seperti; requirements, arsitektur, design, source code, project plan, tests, dan prototypes.
Untuk dapat memahami UML membutuhkan bentuk konsep dari sebuah bahasa model, dan mempelajari 3 (tiga) elemen utama dari UML seperti building block, aturan-aturan yang menyatakan bagaimana building block diletakkan secara bersamaan, dan beberapa mekanisme umum (common).
a. Building blocks
3 (tiga) macam yang terdapat dalam building block adalah katagori benda/Things, hubungan, dan diagram. Benda/things adalah abstraksi yang pertama dalam sebuah model, hubungan sebagai alat komunikasi dari benda-benda, dan diagram sebagai kumpulan / group dari benda-benda/things.
• Benda/Things
Adalah hal yang sangat mendasar dalam model UML, juga merupakan bagian paling statik dari sebuah model, serta menjelaskan elemen-elemen lainnya dari sebuah konsep dan atau fisik. Bentuk dari beberapa benda/thing adalah sebagai berikut:
Pertama, adalah sebuah kelas yang diuraikan sebagai sekelompok dari object yang mempunyai atribute, operasi, hubungan yang semantik. Sebuah kelas mengimplementasikan 1 atau lebih interfaces. Sebuah kelas dapat digambarkan sebagai sebuah persegi panjang, yang mempunyai sebuah nama, atribute, dan metoda pengoperasiannya, seperti terlihat dalam gambar 1.

Gambar 1. Sebuah Kelas dari model UML
Kedua, yang menggambarkan ‘interface’ merupakan sebuah antar-muka yang menghubungkan dan melayani antar kelas dan atau elemen. ‘Interface’ / antar¬muka mendefinisikan sebuah set / kelompok dari spesifikasi pengoperasian, umumnya digambarkan dengan sebuah lingkaran yang disertai dengan namanya. Sebuah antar-muka berdiri sendiri dan umumnya merupakan pelengkap dari kelas atau komponen, seperti dalam gambar 2.

ISpelling
Gambar 2. Sebuah interface/antar-muka
Ketiga, adalah collaboration yang didefinisikan dengan interaksi dan sebuah kumpulan / kelompok dari kelas-kelas/elemen-elemen yang bekerja secara bersama-sama. Collaborations mempunyai struktura dan dimensi. Pemberian sebuah kelas memungkinkan berpartisipasi didalam beberapa collaborations dan digambarkan dengan sebuah ‘elips’ dengan garis terpotong-potong.


Gambar 3. Collaborations
Keempat, sebuah ‘use case’ adalah rangkaian/uraian sekelompok yang saling terkait dan membentuk sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor. ‘use case’ digunakan untuk membentuk tingkah-laku benda/ things dalam sebuah model serta di realisasikan oleh sebuah collaboration. Umumnya ‘use case’ digambarkan dengan sebuah ‘elips’ dengan garis yang solid, biasanya mengandung nama, seperti terlihat dalam gambar 4.

Gambar 4. Use Case
Kelima, sebuah node merupakan fisik dari elemen-elemen yang ada pada saat dijalankannya sebuah sistem, contohnya adalaha sebuah komputer, umumnya mempunyai sedikitnya memory dan processor. Sekelompok komponen mungkin terletak pada sebuah node dan juga mungkin akan berpindah dari node satu ke node lainnya. Umumnya node ini digambarkan seperti kubus serta hanya mengandung namanya, seperti terlihat dalam gambar 5.

Gambar 5. Nodes
• Hubungan / Relationship
Ada 4 macam hubungan didalam penggunaan UML, yaitu; dependency, association, generalization, dan realization.
Pertama, sebuah dependency adalah hubungan semantik antara dua benda/things yang mana sebuah benda berubah mengakibatkan benda satunya akan berubah pula. Umumnya sebuah dependency digambarkan sebuah panah dengan garis terputus-putus seperti terlihat dalam gambar 6.
Gambar 6. Dependency

Kedua, sebuah association adalah hubungan antar benda struktural yang terhubung diantara obyek. Kesatuan obyek yang terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian. Umumnya assosiation digambarkan dengan sebuah garis yang dilengkapi dengan sebuah label, nama, dan status hubungannya seperti terliahat dalam gambar 7.
0..1 *
employer employee
Gambar 7. Association
Ketiga, sebuah generalization adalah menggambarkan hubungan khusus dalam obyek anak/child yang menggantikan obyek parent / induk . Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk. Digambarkan dengan garis panah seperti terlihat dalam gambar 8.

Gambar 8. Generalizations
Keempat, sebuah realization merupakan hubungan semantik antara pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations. Model dari sebuah hubungan realization seperti terlihat dalam gambar 9.

Gambar 9. Realizations
• Diagram
UML sendiri terdiri atas pengelompokkan diagram-diagram sistem menurut aspek atau sudut pandang tertentu. Diagram adalah yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. UML mempunyai 9 diagram, ya itu; use-case, class, object, state, sequence, collaboration, activity, component, dan deployment diagram.
Diagram pertama adalah use case menggambarkan sekelompok use cases dan aktor yang disertai dengan hubungan diantaranya. Diagram use cases ini menjelaskan dan menerangkan kebutuhan / requirement yang diinginkan/ dikehendaki user/pengguna, serta sangat berguna dalam menentukan struktur organisasi dan model dari pada sebuah sistem.

Pengenalan "Unified Modelling Language/UML"
(Bagian II)
Dalam suatu proses pengembangan software, analisa dan rancangan telah merupakan terminologu yang sangat tua. Pada saat masalah ditelusuri dan spesifikasi dinegosiasikan, dapat dikatakan bahwa kita berada pada tahap rancangan. merancang adalah menemukan suatu cara untuk menyelesaikan masalah, salah satu tool/model untuk merancang pengembangan software yang berbasis object-oriented adalah UML. Alasan mengapa UML digunakan adalah, pertama, scalability dimana objek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua, dynamic modeling, dapat dipakai untuk pemodelan sistem dinamis dan real time.
Sebagaimana dalam tulisan pertama, penulis menjelaskan konsep mengenai obyek, OOA&D (Obyek Oriented Analyst/ Design) dan pengenalan UML, maka dalam tulisan kedua ini lebih ditekankan pada cara bagaimana UML digunakan dalam merancang sebuah pengembangan software yang disertai gambar atau contoh dari sebuah aplikasi.
1. Use Case
Sebuah use case menggambarkan suatu urutan interaksi antara satu atau lebih aktor dan sistem. Dalam fase requirements, model use case mengambarkan sistem sebagai sebuah kotak hitam dan interaksi antara aktor dan sistem dalam suatu bentuk naratif, yang terdiri dari input user dan respon-respon sistem. Setiap use case menggambarkan perilaku sejumlah aspek sistem, tanpa mengurangi struktur internalnya. Selama pembuatan model use case secara pararel juga harus ditetapkan obyek-obyek yang terlibat dalam setiap use case.
Perhatikan satu contoh sederhana dari proses perbankan, yaitu mesin teller otomatis (Automated Teller Machine-ATM) yang memberikan kemudahan pada customernya untuk mengambil uang dari rekening bank secara langsung. Pada proses ini terdapat satu aktor, yaitu ATM Customer dan satu use case, yaitu Penarikan Dana. Proses ini dapat dilihat pada Gambar 1. Use case Penarikan Dana menggambarkan urutan interaksi antara customer dengan sistem, diawali ketika customer memasukan kartu ATM ke dalam mesin pembaca kartu dan akhirnya menerima pengeluaran uang yang dilakukan oleh mesin ATM.
2. Aktor
Sebuah aktor mencirikan suatu bagian outside user atau susunan yang berkaitan dengan user yang berinteraksi dengan sistem [Rumbaugh, Booch, dan Jacobson 1999]. Dalam model use case, aktor merupakan satu-satunya kesatuan eksternal yang berinteraksi dengan sistem.
Terdapat beberapa variasi bagaimana aktor dibentuk [Fowler dan Scott 1999]. Sebuah aktor sering kali merupakan manusia (human user). Pada sejumlah sistem informasi, manusia adalah satu-satunya aktor. Dan mungkin saja dalam sistem informasi, seorang aktor bisa saja menjadi suatu sistem eksternal. Pada aplikasi real-time dan distribusi, sebuah aktor bisa saja menjadi satu perangkat eksternal I/O atau sebuah alat pengatur waktu. Perangkat eksternal I/O dan pengatur waktu aktor secara khusus lazimnya berada dalam real-time yang tersimpan dalam sistem (real-time embedded systems), sistem berinteraksi dengan lingkungan eksternal melalui sensor dan aktuator.

Primary actor (aktor utama) memprakarsai sebuah use case. Jadi, suatu primary aktor memegang peran sebagai proaktif dan yang memulai aksi dalam sistem. Aktor lainnya yang berperan sebagai secondary aktor bisa saja terlibat dalam use case dengan menerima output dan memberikan input. Setidaknya satu aktor harus mendapatkan nilai dari use case. Biasanya adalah primary aktor (aktor utama). Bagaimanapun, dalam real-time embedded systems, primary aktor dapat berperan sebagai perangkat eksternal I/O atau pengatur waktu, penerima utama dari use case bisa menjadi secondary human aktor yang menerima sejumlah informasi dari sistem.

Gambar 1. Contoh aktifitas Aktor dan Use Case
Aktor manusia bisa saja menggunakan berbagai perangkat I/O untuk berinteraksi fisik dengan sistem. Aktor manusia dapat berinteraksi dengan sistem melalui perangkat standar I/O, seperti keyboard, display, atau mouse. Aktor manusia bisa juga berinteraksi dengan sistem melalui perangkat non-standar I/O seperti bermacam-macam sensor. Dalam keseluruhan hal tersebut, manusia merupakan aktor dan perangkat I/O adalah bukan aktor.
Perhatikan beberapa contoh human aktor (aktor manusia). Pada sistem perbankan, satu contoh aktor adalah manusia yang berperan sebagai teller yang berinteraksi dengan sistem melalui perangkat standar I/O, seperti keyboard, display, atau mouse. Contoh lainnya adalah manusia yang berperan sebagai customer yang berinteraksi dengan sistem melalui mesin teller otomatis (ATM). Dalam hal ini, customer berinteraksi dengan sistem dengan menggunakan beberapa perangkat I/O, termasuk perangkat pembaca kartu (card reader), pengeluar uang (cash dispenser), dan pencetak tanda terima (receipt printer), ditambah lagi keyboard dan display.
Pada beberapa kasus, bagaimana pun juga sebuah aktor bisa saja berupa perangkat I/O. Hal ini bisa terjadi ketika sebuah use case tidak melibatkan manusia, seperti yang sering terjadi pada aplikasi-aplikasi real-time. Dalam hal ini, I/O aktor berinteraksi dengan sistem melalui sebuah sensor. Contoh aktor yang merupakan perangkat input adalah Arrival Sensor pada Sistem Kontrol Elevator. Sensor ini mengidentifikasi elevator tersebut pada saat hendak mencapai lantai dan perlu dihentikan. Kemudian sensor tersebut menginisiasikan Stop Elevator at Floor use case. Aktor lain dalam Elevator Control System adalah orang yang berada dalam elevator (human passenger) yang berinteraksi dengan sistem melalui tombol-tombol nomor pada tingkat lantai dan tombol-tombol elevator. Input dari aktor secara aktual dideteksi melalui sensor-sensor tombol lantai dan sensor-sensor tombol elevator berturut-turut.
Aktor dapat pula menjadi sebuah alat pengukur waktu yang secara periodik
mengirimkan pengukuran waktu kejadian (timer events) pada sistem. Use case-

use case secara periodik diperlukan ketika beberapa informasi perlu di-output oleh sistem pada suatu basis reguler. Hal ini sangat penting dalam sistem-sistem real-time, dan juga sangat berguna dalam sistem informasi. Walaupun sejumlah metodologi menganggap pengukur waktu merupakan hal internal bagi sistem, dan akan lebih berguna dalam desain aplikasi real-time untuk memperhatikan pengukur-pengukur waktu sebagai eksternal logis bagi sistem dan menganggapnya sebagai primary aktor yang memulai aksi dalam sistem. Contohnya, pada sistem monitoring mobil, beberapa use case di-inisialisasi dengan suatu aktor pengukur waktu. Sebagai contoh dapat dilihat pada Gambar
2. Timer aktor mengawali Calculate Trip Speed use case, yang secara periodik menghitung rata-rata kecepatan melalui suatu jalan/ jejak dan menampilkan nilai ini ke driver. Dalam hal ini, pengukur waktu merupakan primary aktor (aktor utama) dan driver merupakan secondary aktor (aktor kedua).

Gambar 2. Contoh aktor pengukur waktu
Suatu aktor bisa juga menjadi sistem eksternal yang melakukan inisiatif (sebagai primary aktor) atau partisipan (sebagai secondary aktor) dalam use case. Satu contoh aktor sistem eksternal adalah pabrik robot dalam Automation System. Robot mengawali proses dengan use case Generate Alarm dan Notify, robot menggerakkan alarm conditions yang dikirim ke operator pabrik yang berkepentingan, yang telah terdaftar untuk menerima alarms. Dalam use case ini, robot merupakan primary aktor yang mengawali inisiatif use case, dan operator merupakan secondary aktor yang menerima alarms.
3. Identifikasi Use Case
Sebuah use case dimulai dengan masukan/input dari seorang aktor. Use case merupakan suatu urutan lengkap kejadian-kejadian yang diajukan oleh seorang aktor, dan spesifikasi interaksi antara aktor dengan sistem. Use case yang sederhana hanya melibatkan satu interaksi/hubungan dengan sebuah aktor, dan use case yang lebih kompleks melibatkan beberapa interaksi dengan aktor. Use cases yang lebih kompleks juga melibatkan lebih dari satu aktor.
Untuk menjabarkan use case dalam sistem, sangat baik bila dimulai dengan memperhatikan aktor dan actions/aksi yang mereka lakukan dalam sistem. Setiap use case menggambarkan suatu urutan interaksi antara aktor dengan sistem. Sebuah use case harus memberikan sejumlah nilai pada satu aktor.
Kemudian, kebutuhan fungsional sistem dijelaskan dalam use case yang merupakan suatu spesifikasi eksternal dari sebuah sistem. Bagaimanapun juga, ketika membuat use case, sangatlah penting menghindari suatu dekomposisi fungsional yang dalam beberapa use case kecil lebih menjelaskan fungsi-fungsi

individual sistem daripada menjelaskan urutan kejadian yang memberikan hasil yang berguna bagi aktor.
Perhatikan lagi contoh pada perbankan. Disamping penarikan melalui ATM, ATM Customer, aktor juga bisa menanyakan jumlah rekening atau mentransfer dana antar dua rekening. Karena terdapat fungsi-fungsi yang berbeda yang diajukan oleh customer dengan hasil-hasil guna yang berbeda, fungsi-fungsi pertanyaan dan pentransferan harus dibuat sebagai use case yang terpisah, daripada menjadi bagian dari original use case. Oleh karena itu, customer dapat mengajukan tiga use case seperti yang dapat dilihat di Gambar. 3; Withdraw Funds (Penarikan dana), Query Account, dan Transfer Funds (Pentransferan Dana).

Gambar 3: Aktor dan use case dalam sistem Bank
Urutan utama use case menjelaskan urutan interaksi yang paling umum antara aktor dan sistem. Dan mungkin saja terdapat cabang-cabang urutan use case utama, yang mengarah pada berkurangnya frekuensi interaksi antara aktor dengan sistem. Deviasi-deviasi dari urutan utama hanya dilaksanakan pada beberapa situasi, contohnya jika aktor melakukan kesalahan input pada sistem. Ketergantungan pada aplikasi kebutuhan, alternatif ini memecahkan use case dan kadang-kadang bersatu kembali dengan urutan utama. Cabang-cabang alternatif digambarkan juga dalam use case.
Dalam use case Withdraw Funds, urutan utama adalah urutan tahap-tahap dalam keberhasilan pelaksanaan penarikan (withdrawal). Cabang-cabang alternatif digunakan untuk mengarahkan berbagai error cases, seperti ketika kartu ATM tidak dikenali atau dilaporkan telah hilang dan lain sebagainya.
4. Pendokumentasian Model Use Case
Use case didokumentasi dalam use case model sebagai berikut:
• Use Case Name. Setiap use case diberi nama.
• Summary. Deskripsi singkat use case, biasanya satu atau dua kalimat.
• Dependency. Bagian ini menggambarkan apakah use case yang satu tergantung pada use case yang lain, dalam arti apakah use case tersebut termasuk pada use case yang lain atau malah memperluas use case lain.

• Actors. Bagian ini memberikan nama pada actor dalam use case. Selalu terdapat use case utama (primary use case) yang memulai use case. Disamping itu terdapat juga secondary use case yang terlibat dalam use case. Contohnya, dalam use case Withdraw Funds, ATM Customer adalah actor-nya.
• Preconditions. Satu atau lebih kondisi harus berjalan dengan baik pada permulaan use case; contohnya mesin ATM yang tidak jalan, menampilkan pesan Selamat Datang.
• Deskripsi. Bagian terbesar dari use case merupakan deskripsi naratif dari urutan utama use case yang merupakan urutan yang paling umum dari interaksi antara aktor dan sistem. Deskripsi tersebut dalam bentuk input dari aktor, diikuti oleh respon pada sistem. Sistem ditandai dengan sebuah kotak hitam (black box) yang berkaitan dengan apa yang sistem lakukan dalam merespon input aktor, bukan bagaimana internal melakukannya.
• Alternatif-alternatif. Deskripsi naratif dari alternatif merupakan cabang dari urutan utama. Terdapat beberapa cabang alternatif dari urutan utama. Contohnya, jika rekening customer terdapat dana yang tidak sesuai, akan tampil permohonan maaf dan menolak kartu.
• Postcondition. Kondisi yang selalu terjadi di akhir use case, jika urutan utama telah dilakukan; contohnya dana customer telah ditarik.
• Outstanding questions. Pertanyaan-pertanyaan tentang use case didokumentasikan untuk didiskusikan dengan para user.

BAB 3 Laporan PKL

BAB III
ANALISIS DAN PERANCANGAN


Pada bab ini, dibahas mengenai analisis dan perancangan dari program yang
dibuat.

3.1 Analisis Masalah
Program komputerisasi ini merupakan suatu aplikasi yang memiliki kemampuan sebagai berikut :
1. Dapat mengetahui jumlah obat yang di beli dalam kurun waktu tertentu (hari, bulan tahun).
2. Terdapat grafik yang menunjukan jumlah obat yang paling sering di beli oleh konsumen.

3.2 Jenis Perangkat Lunak Dan Perangkat Keras Yang Di Pakai
Untuk mengimplementasikan sistem yang telah dibuat dibutuhkan fasilitas dan peralatan yang mendukung beroperasinya sistem tersebut, karena sistem baru ini hanya berjalan jika didukung fasilitas dan peralatan seperangkat komputer, yaitu perangkat keras dan perangkat lunak komputer.


3.2.1 Jenis Perangkat Lunak Yang Dipakai
 Sistem operasi windows XP SP2 Profesional
 XAMPP 1.5.3
 Bahasa pemrograman PHP version 5.1.4
 Mozilla Firefox (2.0.0.11)

3.2.2 Jenis Perangkat Keras Yang Dipakai
 Personal Computer Processor : Intel(R) Pentium(R) 4 CPU 2.80GHz.
 Memory : 512 MB RAM.
 Harddisk : 80 GB.
 Monitor : Samsung 1024 x 768 (32 bit) (60Hz).
 VGA : 64 MB.









3.3 Strategi Pemecahan Masalah
Penulis merumuskan beberapa alternative pemecahan masalah untuk menyelesaikan masalah di atas, yaitu sebagai berikut :
1) Merancang prototype pelaporan yang dapat memudahkan pegawai bag pembelian (gudang).
2) Membangun sebuah aplikasi pelaporan yang menggunakan bahasa pemrograman open source sehingga bisa digunakan di berbagai sistem operasi (LINUX, UNIX, Macintosh, Windows).
3) Tidak semua orang bisa menggunakan aplikasi sistem pelaporan karena sistem hanya bisa di gunakan oleh pegawai bag pembelian yang sudah mempunyai hak akses.
Maka dengan adanya aplikasi ini diharapkan dapat meningkatkan efektifitas proses pembuatan laporan transaksi pada Apotek Otista.

3.4 Perancangan Berorientasi Objek
Perancangan ini dilakukan dengan menggunakan UML (Unified Modeling Language). UML adalah metode pemodelan secara visual sebagai sarana untuk merancang dan atau membuat software berorientasi objek. Karena UML ini merupakan bahasa visual untuk pemodelan bahasa berorientasi objek, maka semua elemen dan diagram berbasiskan pada paradigma object oriented.


3.5 Use Case Diagram
Use case diagram menentukan fungsionalitas yang diharapkan dari sebuah system. Sebuah use case mempresentasikan sebuah interaksi antara actor dengan system. Untuk membuat sebuah use case diagram terlebih dahulu tentukan actor yang terlibat dalam system.

1. Aktor
Untuk aktor yang terlibat dalam sistem ini , dapat dilihat pada tebel 3.1 berikut ini :
Tabel 3.1 Aktor yang ada pada use case
NO Aktor Definisi
1





Pegawai Bag Pembelian Pegawai bagian pembelian yang bertugas dapat melakukan :
1. Login
2. Pencatatan transaksi pembelian
3. Delete data
4. Pencarian data
5. Mencetak laporan
6. Logout
2 Distributor Yang melakukan pengiriman obat dan data obat yang di beli ke pihak apotek
2. Use case yang ada pada aplikasi ini adalah :
a. Pegawai Bag Pembelian : login, penginputan data, pengeditan data, cari data, mencetak data, logout.
b. Distributor : Melakukan pengiriman obat dan data obat yang di beli ke pihak apotek.

















3.6 Diagram Uce case





















3.6.1 Skenario
Skenario merupakan penjelasan lebih detail dari kasus (case) dari awal hingga akhirnya diperoleh sebuah output.
Tabel 3.2 use case login
Identifikasi Use Case Keterangan
Use case Name Login
Actor Admin
Brief Description Admin meng upload data informasi
Precondition Admin memasukan E-mail dan password yang telah ditntukan sebelumnya.
Main flow 1. Admin memasulan E-mail dan password kemudian menakan tombol Enter pada keyboad
Alternative flow Jika Admin Salah memasukan E-mail dan password salah atau tidak di isi maka akan muncul peringatan.
Post Condition Admin masuk kehalaman utama.




Tabel 3.3 use case Informasi Kecamatan
Identifikasi Use Case Keterangan
Use case Name Informasi Kecamatan
Actor Pegawai Admin
Brief Description Pegawai Admin meng Upload data Informasi
Precondition 1. Admin log in telah login
2. Halaman utama tampil dilayar
Main flow Admin memasukan ( upload ) data informasi dari bagian lain
Alternative flow Jika data telah selesai di Upload maka data sudah siap untuk di Publikasikan.




Tabel 3.4 use case delete Informasi
Identifikasi Use Case Keterangan
Use case Name Hapus Informasi
Actor Pegawai bag Admin
Brief Description Pegawai bag admin men delete data informasi yang ada dalam Web
Precondition 1. Pegawai bag admin telah login
2. Halaman utama tampil dilayar

Main flow Pegawai bag Admin menghapus informasi yang telah Upload
Alternative flow Jika data telah selesai di hapus maka akan tampil informasi bahwa data telah dihapus.


Tabel 3.5 use case cari data
Identifikasi Use Case Keterangan
Use case Name Cari data
Actor Pegawai bag pembelian
Brief Description Pegawai bag pembelian mencari data berdasarkan tanggal.
Precondition 1. Pegawai bag pembelian telah login
2. Halaman utama tampil dilayar
3.Jika tombol cari ditekan maka data dicari akan tampil.
Main flow Pegawai bag pembelian mencari data yang telah diinput.
Alternative flow Jika data dicari ada maka akan tampil,jika tidak tampil maka data tidak ada atau tidak ditemukan.
Post Condition Data yang dicari ditampilkan.







Tabel 3.6 use case cetak
Identifikasi Use Case Keterangan
Use case Name Cetak data
Actor Pegawai bag pembelian
Brief Description Pegawai bag pembelian mencetak laporan.
Precondition 1. Pegawai bag pembelian telah login
2.Halaman utama tampil dilayar
3.Jika tombol cetak ditekan maka akan langsung tampil perintah print dilayar.
Main flow Pegawai bag pembelian mencetak data yang telah diinput.
Alternative flow Jika data laporan yang akan dicetak maka akan otomatis print.
Post Condition Laporan dicetak.
Diagram use case menggambarkan aktor-aktor dan aktifitas-aktifitas yang terlibat dalam aplikasi yang ada pada Apotek Otista.

3.7 Diagram Kelas (class diagram)


















3.8 Diagram Statechart (Statechart Diagram)
Diagram statechart yang ada dapat dilihat pada gambar 3.3 sampai 3.7
1. Statechart diagram login



















2. Statechart diagram input data





















3. Statechart diagam hapus data





















4.Statechart diagram cari data





















5. Statechart diagram cetak laporan





















3.9 Diagram Aktifitas (Activity Diagram)
Diagram aktifitas yang ada dapat dilihat pada gambar 3.8 sampai gambar 3.12

1. Activity diagram login













Gambar 3.8 Activity diagram login



2. Activity diagram input data


















Gambar 3.9 Activity diagram input data


3. Activity diagram hapus data













Gambar 3.10 Activity diagram hapus data







4.Activty diagram cari data
















Gambar 3.11 Activity diagram cari data




2. Activity diagram cetak laporan















Gambar 3.12 Activity diagram cetak laporan





3.10 Diagram Sequence (Sequence Diagram)
Diagram sequence yang ada dapat dilihat pada gambar 3.13 sampai gambar 3.18

1. Sequence Diagram login















Gambar 3.13 Sequence diagram login

2. Sequence Diagram Input Data
















Gambar 3.14 Sequence diagram input data




3.Sequence Diagram hapus data
















Gambar 3.15 Sequence diagram hapus data




4.Sequence Diagram cari data

















Gambar 3.16 Sequence diagram cari data



5.Sequence Diagram cetak laporan

















Gambar 3.17 Sequence cetak laporan



6.Sequence Diagram Logout


















Gambar 3.18 Sequence diagram logout


3.11 Rancangan Antar Muka (User Interface)


1. Tampilan Login





Gambar 3.20 Perancangan Interface Login












2. Halaman Utama





















3. Halaman Data Transaksi


4. Halaman Data Transaksi


















4. Form Input Data Transaksi





















5. Form Cari Data Transaksi





















6. Halaman Data Obat





















7. Halaman Grafik

Materi 1 Teknik Simulasi

1.1 Tujuan Mempelajari Simulasi
• Melalui kuliah ini diharapkan kita dapat mempelajari suatu sistem dengan memanfaatkan komputer untuk meniru (to simulate) perilaku sistem tersebut.
1.2.Cara Mempelajari Sistem
• Sistem dapat dipelajari dengan pengamatan langsung atau pengamatan pada model dari sistem tersebut.
• Model dapat diklasifikasikan menjadi model fisik dan model matematik
• Model matematik ada yang dapat diselesaikan dengan solusi analitis, ada yang tidak. Bila solusi analitis sulit didapatkan maka digunakan SIMULASI



Eksperimen dengan model
Eksperimen
dengan sistem
sebenarnya



Model Fisik Model Matematik


Solusi Analitis SIMULASI

1.3. Manfaaat/Kelebihan Simulasi
Simulasi adalah satu-satunya cara yang dapat digunakan untuk mengatasi masalah, jika :
1. Sistem nyata sulit diamati secara langsung
Contoh : Jalur penerbangan pesawat ruang angkasa atau satelit.
2. Solusi Analitik tidak bisa dikembangkan, karena sistem sangat kompleks.
3. Pengamatan sistem secara langsung tidak dimungkinkan, karena : - sangat mahal

- memakan waktu yang terlalu lama
- akan merusak sistem yang sedang berjalan.
1.4. Kelemahan Simulasi
1. Simulasi tidak akurat.
Teknik ini bukan proses optimisasi dan tidak menghasilkan sebuah jawaban tetapi hanya menghasilkan sekumpulan output dari sistem pada berbagai kondisi yang berbeda. Dalam banyak kasus, ketelitiannya sulit diukur.
2. Model simulasi yang baik bisa jadi sangat mahal, bahkan sering dibutuhkan waktu bertahun-tahun untuk mengembangkan model yang sesuai.
3. Tidak semua situasi dapat dievaluasi dengan simulasi. Hanya situasi yang mengandung ketidak-pastian yang dapat dievaluasi dengan simulasi. Karena tanpa komponen acak semua eksperimen simulasi akan menghasilkan jawaban yang sama.
4. Simulasi menghasilkan cara untuk mengevaluasi solusi, bukan menghasilkan cara untuk memecahkan masalah.
Jadi sebelumnya perlu diketahui dulu solusi atau pendekatan solusi yang akan diuji.
1.5. Aplikasi Model Simulasi
• Design dan analisa sistem manufaktur
• Mengetahui kebutuhan sofware dan hardware untuk sebuah sistem komputer.
• Mengevaluasi sistem persenjataan baru, dalam bidaang militer
• Menentukan pengaturan dalam sistem inventory/persediaan.
• Mendesign sistem transportasi
• Mendesign sistem komunikasi
• Mengevaluasi sistem pelayanan dalam bidang perbankan.
• Mengevaluasi sistem ekonomi dan finansial.
Contoh : Simulasi Monte Carlo

Berikut merupakan tabel data umur server untuk komputer.
Umur (bln) Prob (%)
1 10
2 15
3 25
4 20
5 15
6 10
7 5

Buat simulasi yang menggambarkan penggantian server komputer selama 2 tahun
Solusi
> Buat tabel interval bil.random
Umur(bln) Prob Total Prob
1 0,10 0,10
2 0,15 0,25
3 0,25 0,50
4 0,20 0,70
5 0,15 0,85
6 0,10 0,95
7 0,05 1,00

> Buat simulasi :
Sampai dengan akhir thn ke 2 , terjadi pergantian server sebanyak 9 kali
i Xi Ui=Xi/m Umur(bln) Total
1 6 0,375 3 3
2 1 0,063 1 4
3 8 0,500 3 7
4 11 0,688 4 11
5 10 0,625 4 15
6 5 0,313 3 18
7 12 0,750 5 23
8 15 0,938 7 30
9 14 0,875 6 36

Sabtu, 19 Juni 2010

Bidang Pengembangan Sistem Pakar

Written by Mr. Endi on March 15, 2009 – 12:49 am -

Ada banyak area atau wilayah yang menjadi daerah kerja AI yaitu jaringan saraf sistem persepsi, robotik, bahasa ilmiah, sistem pendukung keputusan, sistem informasi berbasis manajemen dan sistem pakar. Tiap daerah kerja AI memiliki potensi dalam memecahkan masalah, tetapi keunggulan utama ada dalam bentuk pengetahuan dari pakar manusia secara heuristik dalam sistem pakar. Heuristik sendiri berasal dari bahasa Yunani yaitu Eureka yang berarti menemukan. Heuristik dalam sistem pakar tidak menjamin hasil semutlak sistem kecerdasan buatan lainnya, tetapi menawarkan hasil yang spesifik untuk dimanfaatkan karena sistem pakar berfungsi secara konsisten seperti seorang pakar manusia, menawarkan nasihat kepada para pemakai dan menemukan solusi terhadap berbagai permasalahan yang spefisik.

Ada berbagai kategori pengembangan sistem pakar, antara lain:

1. Kontrol. Contoh pengembangan banyak ditemukan dalam kasus pasien di rumah sakit, di mana dengan kemampuan sistem pakar dapat dilakukan kontoro terhadap cara pengobatan dan perawatan melalui sensor data atau kode alarm dan memberikan solusi terapi pengobatan yang tepat bagi si pasien yang sakit.

2. Desain. Contoh sistem pakar di bidang ini adalah PEACE yang dibuat oleh
Dincbas pada tahun 1980 untuk membantu disain pengembangan sirkuit elektronik. Contoh lain adalah sistem pakar untuk membantu desain komputer dengan komponen-komponennya.

3. Diagnosis. Pengembangan sistem pakar terbesar adalah di bidang diagnosis penyakit, diagnosis kerusakan mesin kendaraan bermotor, diagnosis kerusakan komponen komputer, dan lain-lain.

4. Intruksi. Intruksi merupakan pengembangan sistem pakar yang sangat berguna dalam bidang ilmu pengetahuan dan pendidikan, di mana sistem pakar dapat memberika instruksi dan pengajaran tertentu terhadap suatu topik permasalahan. Contoh pengembangan sistem pakar di bidang ini adalah sistem pakar untuk pengajaran bahasa Inggris, sistem pakar untuk pengajaran astronomi dan lain-lain.

5. Interpretasi. Sistem pakar yang dikembangkan dalam bidang interpretasi melakukan proses pemahaman akan suatu situasi dari beberapa informasi yang direkam. Contoh sistem yang dikembangkan dewasa ini adalah sistem untuk melakukan sensor gambar dan suara kemudian menganalisanya dan kemudian membuat suatu rekomendasi berdasarkan rekaman tersebut.

6. Monitor. Sistem pakar dibidang ini banyak digunakan militer, yaitu menggunakan sensor radar kemudian menganalisanya dan menentukan posisi obyek berdasarkan posisi radar tersebut.

7. Perencanaan. Perencanaan banyak digunakan dalam bidang bisnis dan keuangan suatu proyek, di mana sistem pakar dalam membuat perencanaan suatu pekerjaan berdasarkan jumlah tenaga kerja, biaya dan waktu sehingga pekerjaan lebih efisien dan lebih optimal.

8. Prediksi. Sistem pakar ini mampu memprediksi kejadian masa mendatang berdasarkan informasi dan model permasalahan yang dihadapi. Biasanya sistem memberikan simulasi kejadian masa mendatang tersebut, misalnya memprediksi tingkat kerusakan tanaman apabila terserang hama dalam jangka waktu tertentu. Program ini dibuat pada tahun 1983 oleh Boulanger dengan nama PLANT.

9. Seleksi. Sistem pakar dengan seleksi mengidentifikasikan pilihan kemungkinan solusi. Biasanya sistem mengidentifikasikan permasalahan secara spesifik, kemudian mencoba untuk menemukan solusi yang paling mendekati kebenaran.

10. Simulasi. Sistem ini memproses operasi dari beberapa variasi kondisi yang ada dan menampilkan dalam bentuk simulasi. Contoh adalah program PLANT yang sudah menggabungkan antara prediksi dan simulasi, di mana program tersebut mampu menganalisa hama dengan berbagai kondisi suhu dan cuaca.

Bahas pemrograman juga menentukan pengembangan sistem pakar di bidang-bidang yang disebutkan di atas. Pada tahun 1970-an di mana sistem operasi masih berbasis teks, pengembangan sistem pakar hanya memanfaatkan bahasa pemrograman seperti Prolog, LISP atau Shell sehingga pengembangan sistem pakar pada waktu itu menjadi sangat sulit. Faktor kesulitan tersebut juga dipengaruhi oleh kecepatan prosesor dan memori yang masih sangat terbatas sehingga sistem pakarhanya dapat dikembangkan pada komputer-komputer workstation.

Berbeda dengan pengembangan komputer pada tahun-tahun awal AI berkembang, dewasa ini komputer telah memiliki kecepatan GigaHertz dan didukung oleh perkembangan perangkat keras yang maupun perangkat lunak yang sangat canggih. Perkembangan yang sangat menarik adalah perkembangan pemrograman Visual berorientasi objek yang mampu mengolah database dalam jumlah data yang sangat besar. Perkembangan perangkat lunak ini tentunya sangat membantu pengembangan secara luas terhadap sistem-sistem berbasis kecerdasan buatan, termasuk sistem pakar.