UNIFIED MODELING LANGUAGE (UML)

1. Pendahuluan

UML (Unified Modeling Language) 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.

UML adalah salah satu tool / model untuk merancang pengembangan software yang berbasis 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.

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.

UML adalah sebuah bahasa standar 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 dilakukan 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).

Building blocks

Tiga macam yang terdapat dalam building block adalah :

Benda/Things

Adalah abstraksi yang pertama dalam sebuah model

Hubungan/Relationships

Sebagai alat komunikasi dari benda-benda

Bagan/Diagrams

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 :

Classes, 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.

Interfaces, 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.

Collaboration, yang didefinisikan dengan interaksi dan sebuah kumpulan / kelompok dari kelas-kelas / elemen-elemen yang bekerja secara bersama-sama. Collaborations mempunyai struktur dan dimensi. Pemberian sebuah kelas memungkinkan berpartisipasi didalam beberapa collaborations dan digambarkan dengan sebuah elips dengan garis terpotong-potong.

Use cases, 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.

Nodes, 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.

Hubungan / Relationship

Ada 4 macam hubungan didalam penggunaan UML, yaitu;

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.

Association, 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.

Generalizations, 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.

Realizations, 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.

2. Diagram - Diagram Yang Terdapat Pada UML

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, yaitu;

Diagram Use Case

Diagram Class

Diagram Package

Diagram Sequence

Diagram Collaboration

Diagram StateChart

Diagram Activity

Diagram Deployment

Semakin kompleks bentukan sistem yang akan dibuat, maka semakin sulit komunikasi antara orang-orang yang saling terkait dalam pembuatan dan pengembangan software yang akan dibuat. Pada masa lalu, UML mempunyai peranan sebagai software blueprint (gambaran) language untuk analisis sistem, designer, dan programmer. Sedangkan pada saat ini, merupakan bagian dari software trade (bisnis


software). UML memberikan jalur komunikasi dari sistem analis kemudian designer, lalu programmer mengenai rancangan software yang akan dikerjakan.

Salah satu pemecahan masalah Object Oriented adalah dengan menggunakan UML. Oleh karena itu orang-orang yang berminat dalam mempelajari UML harus mengetahui dasar-dasar mengenai Object Oriented Solving (pemecahan masalah OO). Tahap pertama, pembentukan model.

Model adalah gambaran abstrak dari suatu dasar masalah. Dan dunia nyata atau tempat dimana masalah itu timbul bisa disebut dengan domain. Model mengandung obyek-obyek yang beraktifitas dengan saling mengirimkan messages (pesan-pesan). Obyek mempunyai sesuatu yang diketahui (atribut /attributes) dan sesuatu yang dil akukan (behaviors atau operations). Attributes hanya berlaku dalam ruang lingkup obyek itu sendiri (state). Lalu “blue print” dari suatu obyek adalah Classes (kelas). Obyek merupakan bagian-bagian dari kelas.

Diagram Use Case

Diagram Use Case menggambarkan apa saja aktifitas yang dilakukan oleh suatu sistem dari sudut pandang pengamatan luar. yang menjadi persoalan itu apa yang dilakukan bukan bagaimana melakukannya.

Diagram Use Case dekat kaitannya dengan kejadian-kejadian. Kejadian (scenario) merupakan contoh apa yang terjadi ketika seseorang berinteraksi dengan sistem. untuk lebih memperjelas lihat gambaran suatu peristiwa untuk sebuah klinik kesehatan di bawah ini :

“Pasien menghubungi klinik untuk membuat janji (appointment) dalam pemeriksaan tahunan. Receptionist mendapatkan waktu yang luang pada buku jadwal dan memasukkan janji tersebut ke dalam waktu luang itu.”

Gambar 1. Contoh kegiatan pasien yang membuat janji


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.

Diagram Class

Diagram Class memberikan pandangan secara luas dari suatu sistem dengan menunjukan kelas-kelasnya dan hubungan mereka. Diagram Class bersifat statis; menggambarkan hubungan apa yang terjadi bukan apa yang terjadi jika mereka berhubungan.

Diagram Class mempunyai 3 macam relationalships (hubungan), sebagai berikut :

Association

Suatu hubungan antara bagian dari dua kelas. Terjadi association antara dua kelas jika salah satu bagian dari kelas mengetahui yang lainnya dalam melakukan suatu kegiatan. Di dalam diagram, sebuah association adalah penghubung yang menghubungkan dua kelas.

Aggregation

Suatu association dimana salah satu kelasnya merupakan bagian dari suatu kumpulan. Aggregation memiliki titik pusat yang mencakup keseluruhan bagian. Sebagai contoh : OrderDetail merupakan kumpulan dari Order.


Generalization

Suatu hubungan turunan dengan mengasumsikan satu kelas merupakan suatu superClass (kelas super) dari kelas yang lain. Generalization memiliki tingkatan yang berpusat pada superClass.

Contoh :

Payment adalah superClass dari Cash, Check, dan Credit.

Untuk tambahan bahwa association mempunyai 2 titik. Salah satu titik bisa memiliki label untuk menjelaskan association tersebut.

Contoh :

OrderDetail adalah line Item untuk setiap permintaan.

Panah navigability (pengatur alur arah) dalam suatu association menggambarkan arah mana association dapat ditransfer atau disusun. Seperti dalam contoh : OrderDetail dapat disusun dari item-nya, namun tidak bisa sebaliknya. Panah ini juga menjelaskan siapa memiliki” implementasi dari association; dalam kasus ini OrderDetail memiliki Item. Association tanpa arah panah merupakan bidirectional (bolak-balik).

Multiplicity dari suatu titik association adalah angka kemungkinan bagian dari hubungan kelas dengan single instance (bagian) pada titik yang lain. Multiplicity berupa single number (angka tunggal) atau range number (angka batasan). Pada contoh, hanya bisa satu ‘Customer’ untuk setiap ‘Order’, tapi satu

‘Customer’ hanya bisa memiliki beberapa ‘Order’.

Multiplicities

Artinya

0..1

Nol atau satu bagian. Notasi n . . m menerangkan n sampai m

bagian.

0..* or *

Tak hingga pada jangkauan bagian (termasuk kosong).

1

Tepat satu bagian

1..*

Sedikitnya hanya satu bagian

Tabel di bawah mengenai multiplicity yang sering digunakan : Tabel Multiplicity






Setiap diagram Class memiliki Class (kelas), association, dan multiplicity. Sedangkan navigability (alur arah) dan role (kegiatan) merupakan optional (tidak diharuskan).

Gambar 2. Contoh Diagram Class transaksi Pembelian barang

Package dan Object

Untuk mengatur pengorganisasian diagram Class yang kompleks, dapat dilakukan pengelompokan kelas-kelas berupa package (paket- paket). Package adalah kumpulan elemen-elemen logika UML. Gambar di bawah ini mengenai model bisnis dengan pengelompokan kelas-kelas dalam bentuk paket-paket :

Gambar 3. 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.

Gambar 4. 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) maupun instance name (nama bagian) bisa mengambil dari diagram Object selama arti diagram tersebut masih jelas.

Gambar 5. Instance name memiliki huruf yang digarisbawahi

Diagram Sequence

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’.

Gambar 6. 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.

Diagram Collaboration

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.

Gambar 7. 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, namun


suffix berbeda bergantung pada posisinya; hanya untuk angka 1, 2, dan seterusnya.

Diagram StateChart

Behaviors dan state dimiliki oleh obyek. Keadaan dari suatu obyek bergantung pada kegiatan dan keadaan yang berlaku pada saat itu. Diagram StateChart menunjukan kemungkinan dari keadaan obyek dan proses yang menyebabkan perubahan pada keadaannya.

Untuk lebih jelas, contoh yang digunakan model diagram untuk login yang merupakan bagian dari Online Banking System. Logging in terdiri atas masukan input Social Security Number dan Personal Id Number yang berlaku, lalu memutuskan kesahan dari informasi tersebut.

Gambar 8. Contoh Diagram StateChart ‘Sistem Perbankkan secara

Online’

Logging in dapat dibagi menjadi empat tahapan proses, yaitu :

Getting SSN (masukkan SSN)

Getting PIN (masukkan PIN)

Validating (periksa kesahannya)

Rejecting (keluar)


Proses peralihan digambarkan dengan panah dari satu state ke yang lainnya. Event (peristiwa) atau condition (keadaan) yang menyebabkan perubahan dituliskan pada samping panah. Diagram ini mengandung dua self-transition (transisi sendiri), satu pada getting SSN dan lainnya pada getting PIN.

Keadaan awal Start (black circle /lingkar hitam) adalah dummy (model) untuk memulai action (kegiatan). Keadaan akhir juga keadaan model yang menghentikan kegiatan.

Aksi yang terjadi sebagai hasil dari suatu peristiwa atau keadaan ditandai dalam bentuk /action. Pada Validating State, obyek tidak menunggu peristiwa dari luar untuk menyebabkan suatu perubahan. Sebagai gantinya melakukan suatu activity (aktifitas). Hasil dari aktifitas tersebut menentukan keadaan berikutnya dari obyek tersebut.

Diagram Activity

Pada dasarnya diagram Activity sering digunakan oleh flowchart. Diagram ini berhubungan dengan diagram Statechart. Diagram Statechart berfokus pada obyek 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 :


Gambar 9. Contoh Diagram Activity Pengambilan Uang melalui ATM

Diagram Activity dapat dibagi menjadi beberapa jalur kelompok yang menunjukkan obyek yang 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 di dalam [ ]) 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).


Diagram Component dan Deployment

Component adalah sebuah code module (kode-kode module). Diagram Component merupakan fisik sebenarnya dari diagram Class. Diagram Deployment menerangkan bahwa konfigurasi fisik software dan hardware.

Gambar 10 menerangkan hubungan sekitar komponen software dan hardware yang berperan dalam ruang lingkup real estate.


Gambar 10. Contoh Diagram Deployment ‘Sistem Real Estate’

Fisik hardware berbentuk seperti node-node. Setiap komponen merupakan bagian dari node. Pada gambar komponen berbentuk dua kotak tersusun yang terletak di sebelah kiri atas.


RULE BASED SYSTEM


U menyanyikan satu set pernyataan, yang secara kolektif membentuk 'memori kerja', dan satu set aturan yang menentukan bagaimana bertindak pada set pernyataan, sebuah sistem berbasis aturan dapat dibuat. Berdasarkan aturan sistem yang cukup sederhana, terdiri dari sedikit lebih dari satu set pernyataan jika-maka, namun memberikan dasar untuk apa yang disebut "sistem pakar" yang banyak digunakan di berbagai bidang. Konsep sistem pakar adalah: pengetahuan tentang ahli dikodekan ke dalam menetapkan aturan. Ketika terkena data yang sama, sistem pakar AI akan melakukan dengan cara yang mirip dengan ahli.

R Ule berbasis sistem model yang relatif sederhana yang dapat disesuaikan dengan sejumlah masalah. Seperti halnya AI, sistem berbasis aturan memiliki kekuatan serta keterbatasan yang harus dipertimbangkan sebelum memutuskan apakah itu teknik yang tepat digunakan untuk suatu masalah. Secara keseluruhan, berdasarkan aturan sistem benar-benar hanya layak untuk masalah yang setiap dan semua pengetahuan di bidang masalah dapat ditulis dalam bentuk jika-maka aturan dan yang bidang masalah ini tidak besar. Jika ada terlalu banyak aturan, sistem dapat menjadi sulit untuk mempertahankan dan dapat menderita hit kinerja.

T o menciptakan sistem berbasis aturan untuk masalah tertentu, Anda harus memiliki (atau membuat) berikut:

  1. Satu set fakta untuk mewakili memori kerja awal. Ini harus sesuatu yang relevan dengan keadaan awal sistem.
  2. Satu set aturan. Ini harus mencakup setiap dan semua tindakan yang harus diambil dalam ruang lingkup masalah, tapi tidak relevan. Jumlah aturan dalam sistem dapat mempengaruhi kinerja, sehingga Anda tidak ingin apapun yang tidak diperlukan.
  3. Sebuah kondisi yang menentukan bahwa solusi telah ditemukan atau tidak ada yang ada. Hal ini diperlukan untuk mengakhiri beberapa aturan berbasis sistem yang menemukan diri mereka dalam loop tak terbatas sebaliknya.

Teori RULE BASED SYSTEM

T dia berdasarkan aturan sistem itu sendiri menggunakan teknik sederhana: Ini dimulai dengan dasar-aturan, yang berisi semua pengetahuan yang sesuai dikodekan ke dalam Jika-Maka aturan, dan memori kerja, yang mungkin atau tidak mungkin awalnya berisi data, pernyataan atau awalnya dikenal informasi. Sistem ini memeriksa semua kondisi aturan (IF) dan menentukan subset, set konflik, aturan yang kondisinya puas didasarkan pada memori kerja. Dari set konflik, salah satu dari aturan-aturan dipicu (dipecat). Mana yang dipilih didasarkan pada strategi resolusi konflik. Saat aturan dipecat, setiap tindakan yang ditentukan dalam ayat KEMUDIAN yang dilakukan. Tindakan ini bisa memodifikasi memori kerja, aturan-dasar sendiri, atau melakukan hal-hal lain programmer sistem memutuskan untuk memasukkan. Ini loop dari menembak aturan dan melakukan tindakan berlanjut sampai salah satu dari dua kondisi terpenuhi: tidak ada aturan yang lebih dengan kondisi puas atau sebuah aturan yang dipecat tindakan menentukan program harus mengakhiri.

W hich aturan dipilih untuk api adalah fungsi dari strategi resolusi konflik. Strategi mana yang dipilih dapat ditentukan oleh masalah atau mungkin masalah preferensi. Dalam kasus apapun, itu sangat penting karena kontrol yang aturan yang berlaku dipecat dan dengan demikian bagaimana seluruh sistem berperilaku. Ada beberapa strategi yang berbeda, tapi di sini adalah beberapa yang paling umum:

  • Pertama Berlaku: Jika aturan dalam urutan tertentu, yang berlaku menembakkan pertama memungkinkan kontrol atas agar api di mana aturan-aturan. Ini adalah strategi yang paling sederhana dan memiliki potensi untuk masalah besar: bahwa dari sebuah loop tak terbatas pada aturan yang sama. Jika memori kerja tetap sama, seperti halnya aturan-dasar, maka kondisi aturan pertama tidak berubah dan akan api lagi dan lagi. Untuk mengatasi ini, adalah praktek umum untuk menangguhkan aturan dipecat dan mencegah dari kembali-menembak sampai data dalam memori kerja, yang memenuhi kondisi aturan, telah berubah.
  • Random: Meskipun tidak menyediakan prediktabilitas atau kontrol dari strategi pertama diterapkan, itu memang memiliki keuntungan. Untuk satu hal, dapat diprediksi merupakan keuntungan dalam beberapa keadaan (seperti game misalnya). Sebuah strategi acak hanya memilih aturan acak tunggal untuk api dari set konflik. Kemungkinan lain untuk strategi acak adalah sistem berbasis aturan fuzzy dalam mana masing-masing aturan memiliki probabilitas seperti yang beberapa aturan yang lebih mungkin untuk api daripada yang lain.
  • Kebanyakan Khusus: Strategi ini didasarkan pada jumlah kondisi aturan. Dari mengatur konflik, aturan dengan kondisi yang paling dipilih. Hal ini didasarkan pada asumsi bahwa jika ia memiliki sebagian besar kondisi maka memiliki relevansi paling ke data yang ada.
  • Least Recently Used: Setiap aturan disertai dengan stempel waktu atau langkah, yang menandai terakhir kali itu digunakan. Hal ini memaksimalkan jumlah aturan individu yang dipecat setidaknya sekali. Jika semua aturan yang diperlukan untuk solusi dari masalah yang diberikan, ini adalah strategi yang sempurna.
  • "Terbaik" aturan: Untuk pekerjaan ini, setiap aturan diberi 'berat,' yang menentukan seberapa banyak harus dipertimbangkan atas alternatif. Aturan dengan hasil yang paling disukai adalah dipilih berdasarkan berat badan ini.
Basis Pengetahuan

Berisi pengetahuan-pengetahuan dalam penyelesaian masalah. Ada 2 bentuk pendekatan basis pengetahuan :

· Penalaran berbasis aturan

Pada penalaran berbasis aturan, pengetahuan direpresentasikan dengan menggunakan aturan berbentuk IF-THEN. Bentuk ini digunakan apabila kita memiliki sejumlah pengetahuan pakar pada suatu permasalahan tertentu, dan si pakar dapat menyelesaikan masalah tersebut secara berurutan. Disamping itu, bentuk ini juga digunakan apabila dibutuhkan penjelasan tentang jejak

(langkah-langkah) pencapaian solusi.

Contoh : aturan identifikasi hewan

- Rule 1 : IF hewan berambut dan menyusui THEN hewan mamalia

- Rule 2 : IF hewan mempunyai sayap dan bertelur THEN hewan jenis burung

- Rule 3 : IF hewan mamalia dan memakan daging THEN hewan karnivora

Dst…

· Penalaran berbasis kasus

Pada penalaran berbasis kasus, basis pengetahuan akan berisi solusi-solusi yang telah dicapai sebelumnya, kemudian akan diturunkan suatu solusi untuk keadaan yang terjadi sekarang (fakta yang ada). Bentuk ini digunakan apabila user menginginkan untuk tahu lebih banyak lagi pada kasus-kasus yang hampir sama (mirip). Selain itu bentuk ini juga digunakan bila kita telah memiliki sejumlah situasi atau kasus tertentu dalam basis pengetahuan.

Perancangan Sistem Informasi Berbabsis obyek

"The amateur Software engineer is always in search of magic, some sensational method or tool whose application proude to render (software developer)" -BOOCH-


kesalahan - kesalahan Software engineer

  1. BUG
  2. INTERFACE
  3. SECURITY
Perancangan sistem informasi berbasis obyek => menggunakan Framework OOP & design

Rekayasa Perangkat Lunak :







Sistem Pakar merupakan suatu program komputer yang mengandung pengetahuan dari satu atau lebih pakar manusia mengenai suatu bidang spesifik. Jenis program ini pertama kali dikembangkan oleh periset kecerdasan buatan pada dasawarsa 1960-an dan 1970-an dan diterapkan secara komersial selama 1980-an. Bentuk umum sistem pakar adalah suatu program yang dibuat berdasarkan suatu set aturan yang menganalisis informasi (biasanya diberikan oleh pengguna suatu sistem) mengenai suatu kelas masalah spesifik serta analisis matematis dari masalah tersebut. Tergantung dari desainnya, sistem pakar juga mampu merekomendasikan suatu rangkaian tindakan pengguna untuk dapat menerapkan koreksi. Sistem ini memanfaatkan kapabilitas penalaran untuk mencapai suatu simpulan.

Sistem pakar (expert system) adalah sistem yang berusaha mengapdosi pengetahuan manusia ke komputer, agar komputer dapat menyelesaikan masalah seperti yang biasa dilakukan oleh para ahli. Sistem pakar yang baik dirancang agar dapat menyelesaikan suatu permasalahan tertentu dengan meniru kerja dari para ahli. Jadi sistem pakar = kepakaran ditransfer dari seorang pakar (atau sumber kepakaran yang lain) ke komputer, pengetahuan yang ada disimpan dalam komputer, dan pengguna dapat berkonsultasi pada komputer itu untuk suatu nasehat, lalu komputer dapat mengambil inferensi (menyimpulkan, mendeduksi, dll.) seperti layaknya seorang pakar, kemudian menjelaskannya ke pengguna tersebut, bila perlu dengan alasan-alasannya. Sistem Pakar terkadang lebih baik unjuk kerjanya daripada seorang pakar manusia. Dengan sistem pakar, orang awam pun dapat menyelesaikan masalah yang cukup rumit yang sebenarnya hanya dapat diselesaikan dengan bantuan para ahli. Bagi para ahli, sistem pakar juga akan membantu aktivitasnya sebagai asisten yang sangat berpengalaman.

Ketika suatu sistem pakar akan dibangun, maka seorang pengembang software (software developer) bekerja bersama dengan seorang pakar, pengembang ini akan melakukan serangkaian tanya-jawab (knowledge acquisition) untuk mengumpulkan dasar-dasar pengetahuan (knowledge base) sang pakar. Dasar-dasar pengetahuan ini kemudian dialihkan menjadi basis-pengetahuan sistem pakar dalam bentuk fakta dan aturan. Kemudian pengembang membangun suatu mesin inferensi (inference engine) yang merupakan pembuat keputusan dalam sistem pakar, mengumpulkan informasi dari user melalui tanya jawab, dan membandingkan informasi ini dengan basis-pengetahuan, kemudian memutuskan apa yang harus di-informasikan ke pengguna berdasarkan data/informasi yang diberikannya.

Model Sistem Pakar

Model Sistem Pakar

Ketika seorang pengguna memerlukan informasi dari sistem pakar, maka mesin inferensi akan mengajukan serangkaian pertanyaan yang harus dijawab oleh pengguna melalui suatu user-interface (antarmuka pengguna). Jawaban yang dikumpulkan oleh mesin inferensi kemudian dipakai untuk menemukan informasi dari basis-pengetahuan, informasi ini kemudian diteruskan ke pengguna. Apabila pengguna ingin mengetahui lebih rinci tentang informasi yang diperolehnya maka dapat melakukan klarifikasi melalui fasilitas penjelas (explanation facility).

Contoh dialog sistem pakar dengan penggunanya adalah sebagai berikut:

Sistem : Halo, saya pakar buah, silahkan jawab pertanyaan saya, ya atau tidak.

Sistem : Apakah warnanya hijau?
User : Tidak

Sistem : Apakah warnanya ungu kemerahan?
User : Ya

Sistem : Apakah batangnya merambat?
User : Ya

Sistem : Apakah bentuknya bulat kecil?
User : Ya

Sistem : Buah yang anda maksud adalah ANGGUR

Agar tanya jawab ini bisa berlangsung dengan baik maka sistem pakar ini harus memiliki basis-pengetahuan sebagai berikut:

Apel : – warna kuning atau merah

- batangnya adalah pohon
- bentuknya bulat sedang

Anggur : – warna ungu kemerahan

- batangnya merambat
- bentuknya bulat kecil

Jeruk : – warna oranye

- batangnya adalah pohon
- bentuknya bulat sedang

Ketika Sistem melakukan tanya jawab dengan User maka jawaban Ya akan dijadikan basis untuk memeriksa knowledge-base, misalnya pada contoh diatas data masukan adalah (ungu kemerahan, merambat, bulat kecil) dan data ini cocok dengan karakteristik dari Anggur, maka jawaban dari sistem adalah: ANGGUR.



Sistem Pakar

Sebuah sistem komputer yang bekerja berdasarkan pengetahuan dan keahlian layaknya pakar dikenal dengan sebuah sistem pakar (expert system). Umumnya sebuah sistem pakar dibentuk dengan kumpulan aturan yang menganalisis informasi mengenai permasalahan yang ada dan merekomendasikan jalan keluar bagi pengguna.

Sistem pakar dapat diciptakan untuk membantu pekerjaan dalam bidang akunting, kedokteran, produksi, sumber daya manusia, keuangan, dan lain sebagainya.

Salah satu contoh sistem pakar yang telah lama diterapkan adalah Mycin, yang ditulis dengan bahasa pemrograman Lisp.

Dari namanya yang mengingatkan orang pada antibiotik (yang umumnya berakhiran “mycin”), sistem ini memang didesain untuk mendiagnosis penyakit infeksi darah dan merekomendasikan antibiotik dengan dosis yang disesuaikan dengan berat badan pasien.

Sebagaimana pengetahuan seorang pakar yang dapat berkembang, sistem pakar juga dirancang agar dapat terus dikembangkan dengan menanamkan pengetahuan pada sistem secara bertahap.

Sistem pakar sangat membantu untuk melakukan hal-hal yang tidak dapat dilakukan pakar sesungguhnya, misalnya ketersediaan waktu selama 24 jam non -stop, atau gabungan

pengetahuan para pakar dalam satu sistem, di mana pengguna seolah-olah sedang berkonsultasi dengan banyak pakar.

Tidak seperti pakar sesungguhnya, sebuah sistem tentunya lebih mudah untuk didistribusikan ke banyak tempat sekaligus. Hal ini juga menjadi sebuah keuntungan yang ditawarkan sistem pakar.

Yang menjadi pertanyaan besar adalah seberapa jauh sebuah sistem dapat menggantikan keahlian seorang (atau lebih) pakar yang sesungguhnya?

Keterbatasan Masalah

Mungkinkah di masa depan kecerdasan buatan sudah sedemikian maju sehingga dapat menggantikan semua tugas manusia? Ternyata tidak semudah itu, otak manusia memiliki kemampuan luar biasa yang cara kerjanya bisa jadi tidak dapat ditiru persis 100% oleh mesin hingga saat ini.

Contohnya, beberapa permasalahan dipecahkan oleh manusia secara intuisi. Bagaimana memprogram intuisi pada kecerdasan buatan? Mungkin belum terbayangkan hingga saat ini, karena berbicara mengenai intuisi, akan lebih mengarahkan cara kerja pengetahuan bawah sadar otak manusia.

Sementara kecerdasan buatan memetakan pemikiran yang dilakukan otak manusia secara logis dan sistematis.

Permasalahan lainnya adalah asumsi yang timbul pada otak manusia bisa jadi sangat luas dan tidak dapat dicapai oleh kecerdasan buatan, misalnya pada saat kata “burung” muncul pada sebuah percakapan, otak manusia dapat menggambarkan burung adalah seekor binatang kecil, bernyanyi, dan terbang.

Asumsi yang tampaknya sederhana bagi otak manusia ini tidak dengan mudah ditemukan oleh kecerdasan buatan saat menangkap kata “burung”. Karena tidak satupun asumsi di atasbenar untuk mendefi nisikan burung secara umum. Mengapa?

Karena kecerdasan buatan tidak akan diberikan aturan bahwa burung adalah binatang kecil (ada burung yang besar), atau burung bisa bernyanyi (ada burung yang tidak bernyanyi), maupun burung bisa terbang (ada burung yang tidak dapat terbang seperti burung unta dan penguin).

Otak manusia juga memiliki informasi di atas, tetapi hal tersebut tidak membatasi asumsi yang dapat timbul dalam otak manusia.

Algoritma Pencarian


Salah satu unsur penting kecerdasan buatan adalah menyangkut algoritma pencariannya. Beberapa algoritma pencarian yang dikenal, antara lain:

1. Naive.
Contoh algoritma pencarian ini dapat dilihat pada Breadth First Search (BFS), yang dapat Anda bayangkan sebagai sebuah pohon node seperti pada Gambar 1.

Node teratas (node nomor 1) akan mulai mencari pada node terdekat (node nomor 2, 3, dan 4), proses pencarian berulang dengan cara yang sama pada masing-masing node tersebut, dan dilakukan hingga ditemukannya tujuan pencarian.

Algoritma pencarian naive yang lain adalah Depth First Search dan Best First Search (yang merupakan kombinasi dari Breadth First Search dan Depth First Search).

2. Heuristic.
Proses pencarian heuristic bekerja untuk menemukan jawaban yang paling cocok, ditujukan untuk mendapatkan performa pencarian yang baik dan mudah, dengan konsekuensi tingkat akurasi yang tidak terjamin.

Algoritma heuristic mencoba untuk meniru otak manusia saat menebak, dengan alasan yang masuk akal.

Heuristic umumnya digunakan saat menghadapi masalah yang kompleks atau memiliki informasi yang kurang memadai.

Misalnya pada saat dihadapkan pada pilihan untuk menentukan minuman yang paling enak di antara beberapa jenis minuman, sementara informasi yang adalah harga minuman,maka dapat diciptakan sebuah rule agar secara heuristic akan dipilih minuman dengan harga termahal sebagai minuman yang paling enak.

Tentu saja hal tersebut tidak menjamin bahwa pilihan itu benar, tetapi pilihan tersebut adalah pilihan yang paling masuk akal dan sederhana oleh otak manusia dengan keterbatasan informasi yang tersedia pada kasus tersebut.

3. Local.
Pencarian lokal berusaha untuk melakukan optimasi, misalnya dengan teknik Hill Climbing.

Teknik Hill Climbing dapat digunakan untuk memecahkan persoalan yang memiliki banyak alternatif solusi untuk kemudian memilih solusi yang terbaik. Cara kerjanya dimulai dengan memilih solusi acak, kemudian dilakukan perubahan sedikit demi sedikit, setiap perubahan menghasilkan solusi yang lebih baik.

Saat perubahan yang dilakukan tidak lagi mendapatkan solusi yang lebih baik, algoritma Hill Climbing akan berhenti mencari dan menentukan solusi terakhir sebagai solusi yang optimal.

Contoh penggunaan Hill Climbing pada kecerdasan buatan adalah pencarian rute terbaik, dari berbagai kemungkinan rute yang ada.

Contoh lain dari pencarian local adalah teknik pencarian Beam (Beam Search) dan Simulated Annealing (SA).

4. Genetic.
Pencarian dengan algoritma genetic meniru proses seleksi alam atau proses evolusi seperti inheritance, mutasi, seleksi, dan kombinasi ulang (crossover).

Dengan algoritma genetic, diharapkan mesin dapat menghasilkan kreativitas, hal ini melahirkan cabang kecerdasanbuatan yang dinamakan kreativitas buatan (Artifi cial Creativity). Aplikasinya bisa jadi mengarahkan mesin untuk dapat menciptakan musik, desain, dan lain sebagainya.

Walaupun pada dasarnya bahasa pemrograman yang umum digunakan seperti Visual Basic, C++, Delphi, FoxPro, dan sebagainya memungkinkan untuk menciptakan sebuah aplikasi kecerdasan buatan, tetapi para pengembang kecerdasan buatan telah membuat bahasa pemrograman yang khusus untuk keperluan tersebut.

Beberapa bahasa pemrograman untuk kecerdasan buatan yang dikenal adalah IPL, Lisp, Prolog, STRIPS, dan Planner.

Aplikasi Kecerdasan Buatan

Kecerdasan buatan juga telah digunakan dalam bidang bisnis, bahkan pada sebuah kompetisi trading fi nansial tahun 2001, robot bernama Bots ciptaan IBM telah dapat mengalahkan team manusia dengan mengumpulkan keuntungan 7% lebih banyak.

Walaupun tidak diikuti oleh trader profesional, hasil kompetisi tersebut membuat aplikasi kecerdasan buatan semakin diperhitungkan penggunaannya di dalam pasar finansial.

Penggunaan robot telah menjadi hal yang umum pada saat ini pada berbagai industri, terutama untuk menggantikan pekerjaan yang dapat berbahaya bagi manusia. Juga terbukti bahwa robot dapat melakukan pekerjaan yang memerlukan pengulangan dengan lebih efektif dan mengurangi human error.

Perusahaan General Motor menggunakan sekitar 16.000 robot untuk tugas mengecat, las, dan perakitan produknya. Jepang merupakan leader dalam menggunakan dan memproduksi robot.

Kecerdasan buatan juga telah diaplikasikan pada mainan elektronik, misalnya Furby, robot berbentuk burung hantu yang dapat berbicara. Furby tergolong dalam kategori robot otonomi, yaitu robot yang dapat melakukan suatu tindakan didalam sebuah lingkungan tanpa pengarahan dari manusia.

Akankah Ciptaan Menjajah Pencipta?

Kecerdasan buatan merupakan salah satu topik yang disukai penggemar science-fiction, pada film Terminator digambarkan perang manusia melawan mesin, bahkan dalam novel berjudul With Folded Hands karangan Jack Williamson, digambarkan bangsa Humanoids (robot mesin ciptaan manusia) menjajah bangsa manusia dan menggantikan semua peranan manusia.

Walaupun masih merupakan khayalan, tetapi kontroversi apakah hal tersebut dapat terjadi merupakan hal yang menarik untuk diperdebatkan. Apakah ratusan atau ribuan tahun mendatang mesin dapat mencapai kemampuan untuk menguasai manusia, ataukah sampai di satu titik saat kecerdasan buatan tidak dapat menjadi lebih cerdas lagi?

Satu hal yang jelas, kecerdasan buatan tentunya diarahkan untuk membantu manusia. Kecerdasan buatan dapat membantu memberikan diagnosis, prediksi, rekomendasi, simulasi, dan lain sebagainya, tetapi keputusan akhir tetaplah pada pengontrolan manusia.

LEBIH LANJUT

http://en.wikipedia.org/wiki/Artificial_intelligence
http://en.wikipedia.org/wiki/Hill_climbing

Sumber : majalah PC Media