Jumat, 30 April 2010 |
KECERDASAN BUTAN MENGENAI ACTIFICIAL INTELEGENT (AI) DAN VISUAL PROLOG

1. Pengertian Prolog
Sejarah Prolog
Prolog menggunakan teknik pencarian yang disebut heuristik (heuristic) dengan menggunakan pohon logika. prolog banyak dikembangkan di University of Melbourne oleh Lee Naish dan John Loyd. Prolog dalam perkembangannya telah dikombinasikan dengan berbagai bahasa pemrograman terutama functional programming. Bahasa prolog ini secara intensif digunakan pada proyek komputer generasi ke-5 di Jepang. Walaupun demikian sebetulnya penggunaannya tidak terbatas untuk AI saja.

Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural. Namanya diambil dari bahasa Perancis programmation en logique (Pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer.
Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritma konvensionl sebagai teknik pencariannya seperti pada Delphi, Pascal, BASIC, COBOL dan bahasa pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di sebut heuristik (heutistic) dengan menggunakan pohon logika.

Pendahuluan tentang Prolog :

a. Sejarah Prolog :

1. Prolog singkatan dari Programming in Logic.
2. Dikembangkan oleh Alain Colmenraurer dan P.Roussel di Universitas Marseilles Perancis,
tahun1972.
3. Prolog populer di Eropa untuk aplikasi artificial intelligence, sedangkan di Amerika peneliti
mengembangkan aplikasi yang sama, yaitu LISP.

b. Ciri-ciri bahasa prolog :

1. Bahasa pemrograman yang non sequential.
2. Bahasa pemrograman yang deklaratif.
3. Simbolik.
4. Berdasarkan first order logic.

  • Beda Bahasa Prolog dengan bahas lainnya
Bahasa Pemrograman yang Umum (Basic, Pascal, C, Fortran) :
1. Diperlukan algoritma/prosedur untuk memecahkan masalah (procedural languange)
2. Program menjalankan prosedur yang sama berulang-ulang dengan data masukan yang
berbeda-beda.
3. Prosedur dan pengendalian program ditentukan oleh programmer dan perhitungan dilakukan
sesuai dengan prosedur yang telah dibuat.

c. Bahasa Pemrograman Prolog :

1. Object oriented languange atau declarative languange.
2. Tidak terdapat prosedur, tetapi hanya kumpulan data-data objek (fakta) yang akan diolah,
dan relasi antar objek tersebut membentuk aturan yang diperlukan untuk mencari suatu
jawaban
3. Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai
tujuan tersebut serta mencari jawabannya.
4. Dilakukan pembuktian terhadap cocok-tidaknya tujuan dengan data-data yang telah ada dan
relasinya.
5. Prolog ideal untuk memecahkan masalah yang tidak terstruktur, dan prosedur pemecahannya
tidak diketahui, khususnya untuk memecahkan masalah non numerik.
6. Prolog bekerja seperti pikiran manusia, proses pemecahan masalah bergerak di dalam ruang
masalah menuju suatu tujuan (jawaban tertentu).
Contoh : Pembuatan program catur dengan Prolog

d. Beberapa Aplikasi Prolog :

1. Sistem Pakar (Expert System)
Program menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya
seorang ahli.
Contoh dalam mendiagnosa penyakit
2. Pengolahan Bahasa Alami (Natural Languange Processing)
Program dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia
sehari-hari, layaknya penterjemah.
3. Robotik
Prolog digunakan untuk mengolah data masukanyang berasal dari sensor dan mengambil
keputusan untuk menentukan gerakan yang harus dilakukan.
4. Pengenalan Pola (Pattern Recognition)
Banyak digunakan dalam image processing, dimana komputer dapat membedakan suatu objek
dengan objek yang lain.
5. Belajar (Learning)
Program belajar dari kesalahan yang pernah dilakukan, dari pengamataqn atau dari hal-hal
yang pernah diminta untuk dilakukan.

e. Program Visual Prolog :

Secara umum, program Visual Prolog terdiri dari empat section dasar, yaitu section clauses, section predicates, section domains, dan terakhir section goal. Berikut akan dijelaskan secara singkat masing-masing section tersebut.
  • Section Clauses
Section clauses merupakan section yang paling penting pada program Visual Prolog. Pada section inilah kita meletakkan fakta dan aturan. Ketika mencari jawaban, Visual Prolog akan mencari dari bagian paling atas dari section clauses, melihat setiap fakta dan aturan untuk mendapat jawaban benar, hingga ke bagian paling bawah dari section ini.

  • Section Predicates
Sebelum mendefinsikan predikat di section clauses, maka predikat tersebut harus dideklarasikan terlebih dahulu di section predicates. Kalau tidak, Visual Prolog tidak akan mengenal predikat yang kita tuliskan tersebut. Ketika mendeklarasikan suatu predikat, kita memberitahu Visual Prolog domain dari argumen yang dimiliki predikat tersebut. Visual Prolog mempunyai perpustakaan predikat yang kalau dipakai tidak perlu dideklarasikan, karena sudah built-in. Untuk melihat predikat apa saja serta manfaatnya yang ada di perpustakaan Visual Prolog dapat melihat help dari Visual Prolog (Help | Contents).

  • Deklarasi Predikat
Deklarasi predikat dimulai dengan nama predikat diikuti tanda kurung buka, kemudian diikuti nol atau lebih argumen dari predikat (setiap argumen dipisah dengan tanda koma) kemudian ditutup dengan tanda kurung tutup, seperti:

PredicatName(tipe_argumen1, tipe_argumen2,...,tipe_argumenN)
dan tidak seperti section clauses, deklarasi predikati tidak perlu diakhiri tanda titik
  • Nama Predikat
Nama predikat harus dimulai dengan huruf diikuti dengan serangkaian huruf, angka dan atau garis bawah (underscore). Walaupun bisa dimulai huruf besar, namun sangat direkomendasikan untuk memakai huruf kecil diawal nama predikat (beberapa versi Prolog yang lain tidak memperbolehkan nama predikat diawali huruf besar). Panjang nama predikat bisa sampai 250 karakter. Contoh penamaan predikat :

Nama predikat yang legal Nama predikat yang illegal
Fakta [fakta]
pemain_piano *pemain_piano*
milik_umum_atau_pribadi milik_umum/pribadi
polaTindakKriminal Pola-Tindak-Kriminal
pilih_Item_Menu pilih Item Menu
nama_predikat nama
rangking_10_besar #rangking_10_besar

  • Argumen predikat
Argumen predikat harus yang sudah dikenal oleh domain Visual Prolog. Suatu domain bisa merupakan domain standar atau bisa juga domain yang sudah dideklarasikan pada section domains. Contohnya, jika dideklarasikan suatu predikat predikat_ku(symbol, integer) pada section predicates seperti ini:

PREDICATES
predikat_ku(symbol, integer)

maka tidak perlu lagi mendeklarasikan domain dari argumen pada section domains, karena symbol dan integer adalah standar domain.

  • Section Domains
Section domains mempunyai 2 manfaat utama, yaitu pertama, kita dapat memberikan nama yang berarti untuk domain, walaupun secara internal domain tersebut sama tipenya dengan domain yang telah ada; yang kedua, kita dapat mendeklarasi domain khusus yang digunakan untuk mendeklarasikan struktur data yang tidak didefinisikan oleh standar domain. Dengan mendeklarasikan domain juga dapat mencegah kesalahan logika pada program. Contoh:

DOMAINS
nama, jender = symbol
umur = integer

PREDICATES
orang(nama, jender, umur)

  • Standar Domain Visual Prolog
Visual Prolog mempunyai standar domain built-in. Kita dapat menggunakan standar domain ketika mendeklarasikan tipe dari argumen suatu predikat. Standar domain sudah dikenal Visual Prolog dan tidak perlu didefinisikan lagi pada section domains.

f. Fakta

1. Prolog terdiri dari kumpulan data-data objek yang merupakan suatu fakta.
2. Fakta dibedakan 2 macam :
a.Menunjukkan relasi.
b. Menunjukkan milik/sifat.
3. Penulisannya diakhiri dengan tanda titik “.”

Contoh :
Fakta Prolog
Slamet adalah ayah Amin Ayah (Slamet, Amin).
Anita adalah seorang wanita Wanita (Anita).
Angga suka renang dan tenis Suka (angga, renang).dan suka (angga,tenis).
Jeruk berwarna jingga Jingga (jeruk).

g. Aturan

1. Aturan adalah suatu pernyataan yang menunjukkan bagaimana fakta-fakta berinteraksi satu
dengan yang lain untuk membentuk suatu kesimpulan.
2. Sebuah aturan dinyakatakan sebagai suatu kalimat bersyarat.
3. Kata “if” adalah kata yang dikenal Prolog untuk menyatakan kalimat bersyarat atau
disimbolkan dengan “:-“.

Contoh :
Fakta dan Aturan Prolog
F : Tino suka apel suka(tino, apel).
A : Yuli suka sesuatu yang disukai Tino suka(yuli,Sesuatu) :- suka(tino,Sesuatu).

4. Setiap aturan terdiri dari kesimpulan(kepala) dan tubuh.
5. Tubuh dapat terdiri dari 1 atau lebih pernyataan atau aturan yang lain, disebut subgoal dan
dihubungkan dengan logika “and”.
6. Aturan memiliki sifat then/if conditional

“Kepala(head) benar jika tubuh (body) benar”.

h. Pertanyaan

Setelah memberikan data-data berupa fakta dan aturan, selanjutnya kita dapat mengajukan pertanyaan berdasarkan fakta dan aturan yang ada.

a. Penulisannya diawali simbol “?-“ dan diakhiri tanda “.”.
contoh :

Pertanyaan Prolog dan Jawaban Program
Apakah Tini suka boneka ? ?- suka(tini,boneka).
Yes ……. (jika faktanya Tini suka boneka)
No……..…(jika tidak sesuai fakta).
Apakah yang disukai Tini ? ?- suka(tini,Apa).
Apa=boneka
Siapakah yang suka boneka ? ?- suka(Siapa,boneka).
Siapa=tini
Dari contoh silsilah keluarga di atas :
Siapakah kakek Budi ?
?- kakek(Siapa,budi).
Siapa=slamet
Siapakah cucu Slamet ?
?- kakek(slamet,Cucu).
Cucu=budi ;
Cucu=badu
(jika kemungkinan ada lebih dari satu jawaban gunakan tanda “;”
pada akhir setiap jawaban).

i. Predikat

1. Predikat adalah nama simbolik untuk relasi.
2. Contoh :ayah(slamet,amin).
Predikat dari fakta tersebut ditulis : ayah(simbol,simbol). dimana ayah adalah nama predikat, sedangkan slamet dan amin adalah menujukkan argumen.
Sebuah predikat dapat tidak memiliki atau memiliki argumen dengan jumlah bebas. Jumlah argumen suatu predikat disebut aritas (arity).
ayah(nama) …… aritas-nya 1
ayah(nama1,nama2) ….. aritasnya 2

3. Syarat-syarat penulisan nama predikat :

a. Harus diawali dengan huruf kecil dan dapat diikuti dengan huruf, bilangan atau garis bawah.
b. Panjang nama predikat maksimum 250 karakter.
c. Tidak diperbolehkan menggunakan spasi, tanda minus, tanda bintang dan garis miring.

j. Variabel

1. Varibel adalah besaran yang nilainya dapat berubah-ubah.
2. Tata cara penulisan variabel :
1. Nama varibel harus diawali huruf besar atau garis bawah(_)
2. Nama variabel dapat terdiri dari huruf, bilangan, atau simbol dan merupakan kesatuan
dengan panjang maksimum 250 karakter.
3. Nama variabel hendaknya mengandung makna yang berkaitan dengan data yang
dinyatakannya.

Contoh : dari silsilah di atas :

?- ayah(slamet,Anak).
Anak=budi ;
Anak=badu
No

Dari query di atas akan dicari siapakah anak dari ayah yang bernama Slamet. Karena mempunyai relasi yang sama (yaitu ayah), variabel Anak akan mencari nilai dari konstanta suatu fakta/aturan yang sepadan.

Tanda “;” digunakan bila terdapat kemungkinan ada lebih dari satu jawaban.
“No” berarti tidak ada lagi kemungkinan jawaban.

Pengertian kecerdasan Buatan Artificial Intelegence ( AI )

Pengertian kecerdasan buatan / Artificial Intelegence ( AI ) adalah salah satu ilmu pengetahuan yang berhubungan dengan pemanfaatan mesin untuk memecahkan persoalan yang rumit dengan cara yang lebih manusiawi. Hal ini biasanya dilakukan dengan mengikuti atau mencontoh karakteristik dan analogi berpikir dari kecerdasan atau intelegensi manusia. Ada pula penertian kecerdasan buatan yaitu, memiliki banyak arti diantaranya adalah :

a. Kecerdasan Buatan merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan
pemrograman computer untuk melakukan suatu hal yang dalam pandangan manusia adalah
cerdas. [ H.A. Simon – 1987 ]
b. Kecerdasan Buatan merupakan sebuah studi tentang bagaimana malakukan hal-hal yang pada
saat ini dapat dilakukan lebih baik oleh manusia. [ Rich & Knight – 1991 ]
c. Kecerdasan Buatan merupakan cabang dari ilmu computer yang dalam merepresentasikan
pengetahuan lebih banyak menggunakan bentuk symbol-simbol daripada bilangan dan
d. Keceradasan Buatan yaitu kecerdasan yang ditunjukkan oleh suatu entitas buatan.
Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin ( computer ) agar dapat
melakukan pekerjaan seperti yang dilakukan oleh manusia. [ Wikipedia ]
READ MORE -

UNIFIED MODELING LANGUAGE

Kamis, 18 Maret 2010 |

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.

Analisis dan Perancangan Sistem Halaman 16

READ MORE - UNIFIED MODELING LANGUAGE