Upload
nguyenliem
View
215
Download
0
Embed Size (px)
Citation preview
BAB 2
LANDASAN TEORI
2.1 Simulasi
2.1.1 Pengertian Simulasi
Simulasi merupakan salah satu cara untuk memecahkan berbagai persoalan yang
dihadapi di dunia nyata (real world). Banyak metode yang dibangun dalam Operations
Research dan System Analyst untuk kepentingan pengambilan keputusan dengan
menggunakan berbagai analisis data. Pendekatan yang digunakan untuk memecahkan
berbagai masalah yang tidak pasti dan kemungkinan jangka panjang yang tidak dapat
diperhitungkan dengan seksama adalah dengan simulasi.
Simulasi adalah suatu peniruan sesuatu yang nyata, keadaan sekelilingnya (state
of affairs), atau proses. Aksi melakukan simulasi sesuatu secara umum mewakilkan
suatu karakteristik kunci atau kelakuan dari sistem-sistem fisik atau abstrak.(Wikipedia,
2009).
2.1.2 Struktur Dasar Model Simulasi
Setiap model umumnya akan memiliki unsur-unsur berikut ini:
1. Komponen-komponen model, yakni entitas yang membentuk model,
didefinisikan sebagai objek sistem yang menjadi perhatian pokok.
2. Variabel, yakni nilai yang selalu berubah.
3. Parameter, yakni nilai yang tetap pada suatu saat, tapi bisa berubah pada
waktu yang berbeda.
7
4. Hubungan fungsional, yakni hubungan antar komponen-komponen model.
5. Konstrain, yakni batasan dari permasalahan yang dihadapi.
2.1.3 Langkah-langkah Simulasi
Dalam melakukan simulasi terdapat langkah-langkah yang perlu dilakukan:
1. Pendefinisian Sistem, menentukan batasan sistem dan identifikasi variabel
yang signifikan.
2. Formulasi Model, yakni merumuskan hubungan antar komponen model.
3. Pengambilan Data, yakni identifikasi data yang diperlukan model sesuai
tujuan pembuatannya.
4. Pembuatan Model, yakni menyesuaikan penyusunan model dengan jenis
bahasa simulasi yang digunakan.
5. Verifikasi Model, yakni proses pengecekan terhadap model apakah sudah
bebas dari kesalahan. Dalam tahap ini perlu disesuaikan dengan bahasa
simulasi yang digunakan.
6. Validasi Model, yakni proses pengujian terhadap model apakah sudah sesuai
dengan sistem nyatanya.
7. Skenariosasi
Penyusunan skenario terhadap model. Setelah model dianggap valid, maka
berikutnya adalah membuat beberapa skenario atau eksperimen untuk
memperbaiki kinerja sistem sesuai dengan keinginan.
8
Secara umum jenis-jenis skenario ini adalah:
a. Skenario parameter dilakukan dengan mengubah nilai parameter model.
Skenario jenis ini mudah dilakukan karena kita hanya melakukan
perubahan terhadap nilai parameter model dan melihat dampak terhadap
output.
b. Skenario struktur dilakukan dengan mengubah struktur model. Skenari
jenis ini memerlukan pengetahuan yang cukup tentang sistem agar
struktur baru yang diusulkan dan dieksperimenkan dapat memperbaiki
kinerja sistem.
8. Interpretasi Model, yakni proses penarikan kesimpulan dari hasil output
model simulasi.
9. Implementasi, yakni penerapan model pada sistem nyata.
10. Dokumentasi, yakni proses penyimpanan hasil output model.
2.1.4 Keuntungan dan Kerugian Simulasi
2.1.4.1 Keuntungan Simulasi
Keuntungan dari uji coba dengan menggunakan simulasi adalah sebagai berikut:
1. Mengantisipasi kemungkinan-kemungkinan adanya kesalahan atau kegagalan
sebelum dilakukan implementasi ke dalam sistem yang sesungguhnya.
2. Dengan simulasi kita dapat memberikan gambaran yang jelas tentang sistem
yang akan dibuat.
3. Dengan simulasi kita dapat melakukan evaluasi sistem dalam jangka waktu
yang singkat. Contohnya, jika dalam sistem yang sebenarnya diperlukan
waktu beberapa hari untuk mengetahui hasil dari sistem tersebut namun
9
dengan simulasi kita dapat mempercepatnya hanya dalam beberapa menit
saja.
2.1.4.2 Kerugian Simulasi
Kerugian dari uji coba dengan menggunakan simulasi adalah sebagai berikut:
1. Hasil dari simulasi kadang-kadang tidak sepenuhnya sesuai dengan keadaan yang
sebenarnya.
2. Untuk melakukan suatu simulasi kadang-kadang membutuhkan biaya yang
mahal dan waktu.
2.2 Traveling Salesman Problem
Traveling Salesman Problem (TSP) merupakan permasalahan optimasi yang
tergolong dalam NP-complete problem. TSP adalah permasalahan seorang sales dalam
menentukan urutan dari sejumlah kota yang harus dilalui, di mana setiap kota hanya
boleh dilalui sekali dan perjalanan berakhir pada kota awal di mana seorang sales
memulai perjalanan. Permasalahan matematik yang berkaitan dengan Traveling
Salesman Problem ini mulai muncul sekitar tahun 1800-an. Masalah ini dikemukakan
oleh dua orang matematikawan, yaitu Sir William Rowan Hamilton yang berasal dari
Irlandia dan Thomas Penyngton Kirkman yang berasal dari Inggris.
TSP adalah permasalahan dalam bidang diskrit dan optimasi kombinatorial
dengan kemungkinan penyelesaian yang sangat banyak. TSP dengan n kota
(1,2,3,4,5,…,n) mempunyai (n-1)!/2 kemungkinan. TSP dengan nilai n yang besar tidak
dapat diselesaikan dengan metode pencarian satu-satu karena membutuhkan waktu yang
sangat lama. Oleh karena itu, dibutuhkan komputer dengan algoritma yang dapat
10
melakukan perhitungan yang cepat dengan tingkat kesalahan yang lebih kecil daripada
dengan melakukan pencarian satu-satu.
2.3 Teori Graf
Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan
antara objek-objek tersebut. Graf (G) merupakan pasangan himpunan (V,E) dengan
V= himpunan tidak kosong dari titik (vertex), dan
E= himpunan sisi (edge) yang menghubungkan sepasang titik atau dapat ditulis dengan
notasi G= (V , E ).
Titik biasa digunakan untuk melambangkan objek, sedangkan sisi biasa
digunakan untuk melambangkan jalan penghubung antara dua objek. Definisi graf
menyatakan bahwa V tidak boleh kosong, sedangkan E boleh kosong. Jadi, sebuah graf
dimungkinkan tidak mempunyai sisi satu buah pun, tetapi titiknya harus ada minimal
satu. Graf dengan satu titik dan tidak mempunyai sisi disebut graf trivial.
Titik pada graf dapat dinomori dengan huruf, seperti a, b, c, … dengan bilangan
asli 1, 2, 3, ..., atau gabungan keduanya. Sedangkan E adalah sisi yang menghubungkan
titik Vi dengan titik Vj, maka E dapat ditulis sebagai E = ( V i , V j) atau E = ( V i V j).
Secara geometri graf dapat digambarkan sebagai sekumpulan titik di dalam bidang dua
dimensi yang dihubungkan dengan sekumpulan sisi.
11
Gambar di bawah ini merupakan contoh sebuah graf yang menyatakan peta yang
menghubungkan sejumlah kota di Provinsi Jawa Tengah.
Brebes Tegal
Slawi
Pemalang
Purwokerto
Cilacap
Banjarnegara
Wonosobo
Kebumen
Purworejo
KendalSemarang
Pekalongan
Purbalingga
Magelang
Salatiga
Klaten
Solo
Purwodadi
DemakKudus
Rembang
Blora
Sukoharjo
Wonogiri
SragenBoyolali
Kroya
Temanggung
Gambar 2.1 Peta di Provinsi Jawa Tengah
2.4 Algoritma
Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari
Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada
terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero
Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-
aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik
Arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah
ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah
yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.
Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah
untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara
bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan
12
untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum
menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal
yang memenuhi kriteria, dalam hal ini berbeda dengan heuristic. Algoritma sering
mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean
dan perbandingan) sampai tugasnya selesai.
Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak
komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara
informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang
singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan
waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Gambar 2.2 Diagram Alur Sebuah Algoritma
13
2.5 NP-Hard dan NP-Complete
Waktu yang dibutuhkan algoritma untuk menghasilkan solusi dari permasalahan
terbagi atas dua, yaitu:
1. Algoritma P (Polynomial Problem)
Polynomial Problem adalah suatu permasalahan di mana waktu yang
dibutuhkan utuk menghasilkan solusi terbatas pada waktu polynomial dalam
tingkat kecil, seperti permasalahan pengurutan (sorting) dengan kompleksitas
waktu O(n log n)
2. Algoritma NP (Non Polynomial Problem)
Algoritma dengan waktu polynomial tidak efisien untuk menyelesaikan
masalah non polynomial karena algoritma polynomial membutuhkan waktu
yang cukup lama untuk menyelesaikan permasalahan skala menengah.
Contoh permasalahan yang menggunakan NP adalah travelling salesman
problem dengan kompleksitas waktu O(n22n) dan permasalahan knapsack
dengan kompleksitas waktu O(2 n/2). NP terbagi menjadi dua, yaitu : NP-
Hard dan NP-Complete. Suatu masalah termasuk ke dalam Np-Complete
apabila dapat dipecahkan dalam waktu polynomial jika dan hanya jika
seluruh masalah NP-Complete juga dapat dipecahkan dalam waktu
polynomial. Jika sebuah masalah NP-Hard dapat dipecahkan dalam waktu
polynomial maka seluruh masalah NP-Complete dapat dipecahkan dalam
waktu polynomial. Seluruh masalah NP-Complete merupakan masalah NP-
Hard, tetapi sebagian masalah NP-Hard belum tentu menjadi masalah NP-
Complete (Horowitz, Sahni dan Rajasekaran, 1998, pp 495-553). Hubungan
14
antara P, NP, NP-Complete dan NP-Hard dapat dilihat dengan jelas dengan
gambar berikut.
Gambar 2.3 Relasi antara P, NP, NP-Complete dan NP-Hard
2.6 Pencarian (Searching)
Pencarian merupakan kegiatan mendefinisikan ruang masalah untuk masalah
yang dihadapai. Ruang masalah ini dapat digambarkan sebagai himpunan keadaan
(state) atau bisa juga sebagai himpunan rute dari keadaan awal (initial state) menuju
keadaan tujuan (goal state). Langkah kedua adalah mendefinisikan aturan produksi yang
digunakan untuk mengubah suatu state ke state lainnya. Langkah terakhir adalah
memilih metode pencarian yang tepat sehingga dapat menemukan solusi terbaik dengan
usaha yang minimal.
Ada dua metode searching, yaitu:
1. Blind atau un-informed search (pencarian buta atau tidak berbekal informasi)
2. Heuristic atau informed search (pencarian dengan berbekal informasi).
15
2.6.1 Metode Pencarian Heuristic
Kata Heuristic berasal dari sebuah kata kerja Yunani, heuriskein, yang berarti
‘mencari’ atau ‘menemukan’. Dalam dunia pemrograman, sebagian orang menggunakan
kata heuristic sebagai lawan kata dari algoritmik, di mana kata heuristic ini diartikan
sebagai suatu proses yang mungkin dapat menyelesaikan suatu masalah tetapi tidak ada
jaminan bahwa solusi yang dicari selalu dapat ditemukan.
Heuristic memperbaiki proses pencarian solusi walaupun tidak harus sampai
mengatasi kasus terburuk (worst case scenario). Heuristik ini mengembangkan efisiensi
dalam proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan
(completeness). Algoritma ini biasanya mencari solusi yang dekat dengan solusi terbaik
dan proses pencariannya cepat dan mudah. Terkadang algoritma ini dapat menjadi
akurat dan menemukan solusi terbaik, tetapi algoritma ini tetap disebut heuristic hingga
solusi terbaik itu terbukti untuk menjadi yang terbaik. Fungsi heuristic h(n) adalah
perkiraan biaya termurah dari node n ke node tujuan. Fungsi heuristic melambangkan
cost yang akan dikeluarkan agent jika memilih node tertentu.
2.6.2 Metode A* Heuristic
Metode A* tanpa fungsi heuristic yang baik akan memperlambat pencarian dan
dapat menghasilkan rute yang tidak tepat. Fungsi heuristic yang sempurna akan
membuat metode A* langsung menuju final node tanpa harus mencari kearah lain.
Sehingga jika fungsi heuristicnya terlalu underestimate akan menyebabkan algoritma ini
beranggapan bahwa ada rute lain yang lebih baik. Untuk fungsi heuristic yang
underestimate, bila nilainya terlalu rendah akan menyebabkan algoritma ini seperti
algortima Djikstra’s yang mencari ke segala arah yang mungkin. Hal ini dikarenakan
16
tidak ada informasi yang cukup mengenai masalah yang dihadapi, sehingga
menyebabkan metode A* melakukan pencarian lebih banyak dan lebih lama.
Dalam ilmu computer, A* (disebut “A star”) adalah sebuah graph atau metode
tree search yang digunakan untuk mencari jalan dari sebuah node awal ke node tujuan
(goal node) yang telah ditentukan, metode ini menggunakan “estimasi heuristic” h(x)
pada setiap node untuk mengurutkan setiap node x berdasarkan estimasi rute terbaik
yang melalu node tersebut. Dalam prosesnya metode ini akan mengunjungi setiap node
berdasarkan urutan yang dihasilkan dari estimasi heuristic ini. Metode A* adalah salah
satu contoh dari metode best-first search.
Metode A* dikembangkan oleh Peter Hart, Nils Nilsson, dan Bertram Raphael,
mereka juga menyebut metode tersebut dengan sebutan algoritma A, dengan
menggunakan metode ini dan dengan heuristic yang tepat menghasilkan sebuah hasil
yang optimal, yaitu A*. Secara umum, depth-first search (DFS) dan breadth-first search
(BFS) adalah dua kasus spesial dari metode A*. Algoritma Djikstra’s merupakan kasus
yang paling special dari A*, di mana h(x) = 0 untuk semua x.
Dalam masalah pencarian rute di mana metode A* sering digunakan, A* secara
bertahap membangun semua rute yang mengarah mulai dari titik awal sampai akhirnya
mencapai titik akhir. Metode A* hanya membangun rute yang mungkin digunakan untuk
mencapai tujuan. Untuk mengetahui rute mana yang memungkinkan mengarah ke titik
akhir, A* menggunakan estimasi heuristic jarak dari sembarang node ke node tujuan.
Dalam kasus pencarian rute, ini bisa jadi sama dengan jarak lurus antara dua titik, di
mana biasanya merupakan perkiraan dari jarak jalan.
17
Hubungan antara heuristic dengan algoritma A*:
• Apabila h(n) selalu bernilai 0, maka hanya g(n) yang akan berperan, dan A*
berubah menjadi Algoritma Dijkstra, yang menjamin selalu akan menemukan
jalur terpendek.
• Apabila h(n) selalu lebih rendah atau sama dengan ongkos perpindahan dari
titik n ke tujuan, maka A* dijamin akan selalu menemukan jalur terpendek.
Semakin rendah nilai h(n), semakin banyak titik-titik yang diperiksa A*,
membuatnya semakin lambat.
• Apabila h(n) tepat sama dengan ongkos perpindahan dari n ke tujuan, maka
A* hanya akan mengikuti jalur terbaik dan tidak pernah memeriksa satupun
titik lainnya, membuatnya sangat cepat. Walaupun hal ini belum tentu bisa
diaplikasikan ke semua kasus, ada beberapa kasus khusus yang dapat
menggunakannya.
• Apabila h(n) kadangkala lebih besar dari ongkos perpindahan dari n ke
tujuan, maka A* tidak menjamin ditemukannya jalur terpendek, tapi
prosesnya cepat.
• Apabila h(n) secara relatif jauh lebih besar dari g(n), maka hanya h(n) yang
memainkan peran, dan A* berubah menjadi BFS.
2.6.3 Metode Simplified Memory-Bounded A* (SMA*)
Simplified Memory-Bounded A* (SMA*) merupakan pengembangan dari
algoritma A*. Algoritma SMA* merupakan penggabungan dari greedy search yang
18
meminimalisir perkiraan pencarian harga dan uniform cost search yang meminimalisir
harga sampai selesai. Algoritma ini mempunyai fungsi sebagai berikut:
f(n) = h(n) + g(n)
g(n) = harga terjauh untuk mencapai node n dari state awal
h(n) = perkiraan harga mencapai state akhir dari node n
f(n) = perkiraan total harga untuk mencapai titik akhir
h(n) = Arc Cos { (Sin ( lat1 ) * Sin ( lat2 )) + (Cos ( lat1 ) * Cos ( lat2 ) *
Cos ( lon1 - lon2 )) } * 6378
lat1 = latitude node awal
lat2 = latitude node akhir
lon1 = longitude node awal
lon2 = longitude node akhir
Algoritma SMA* bersifat admissible. Ini berarti apabila solusi ada, solusi yang
ditemukan pertama adalah solusi yang optimal. SMA* bersifat admissible bila memenuhi
syarat-syarat, yaitu: di dalam graph state space setiap node memiliki successor yang
terbatas, setiap arc pada graph memiliki biaya yang lebih besar dari 0, dan heuristik
untuk setiap node n, h(n) < h*(n). SMA * dikatakan complete dan optimal dengan
mengasumsikan sebuah heuristic yang admissible dan konsisten.
Simplified Memory-Bounded A* ini dikembangkan karena algoritma A*
menggunakan banyak memory sehingga menghabiskan memory untuk pencarian.
Algoritma ini menjalankan best first search selama memory masih tersedia, apabila
memory penuh maka node dengan nilai terburuk dibuang, namun nilai terbaik disimpan
19
pada node atasnya. Jika ruang memory mencukupi untuk semua node pada tree dalam
jalur pencarian, maka repeated states tidak akan diulang sehingga pencarian akan
menjadi optimal.
Aturan-aturan SMA* :
• Jika mempunyai lebih dari satu simpul, maka pilih salah satu yang
mempunyai f-cost terkecil. Jangan hapus dulu simpul tersebut sebelum
mengeceknya terlebih dahulu, karena bisa jadi simpul tersebut akan dipakai
dulu oleh simpul yang lain.
• Jika hasil f-cost dari suksesor baru yang telah dibangkitkan hasilnya lebih
kecil, maka suksesor-suksesor sebelumnya dihapus. Tetapi jika lebih besar,
maka lanjutkan dulu pencarian ke suksesor yang lebih kecil, sebelum
menghapus suksesor yang lebih besar tersebut.
• Jika menemukan state di level yang lebih dangkal, dan mmpunyai f-cost
lebih besar, maka state tersebut juga harus dihapus.
Berikut ini adalah gambar pencarian jarak dengan metode SMA*
Gambar 2.4 Pencarian Jarak dengan Metode SMA*
20
2.7 Perancangan Basis Data
Basis data, dalam bahasa Inggris database, adalah kumpulan informasi yang
disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi dari basis data tersebut
(Wikipedia, 2009). Perangkat lunak yang digunakan untuk mengelola dan memanggil
query basis data disebut sistem manajemen basis data atau Database Management
System (DBMS). Contoh dari aplikasi manajemen basis data di antaranya, SQL Server
dan Ms Access yang dibuat oleh Microsoft, dan MySQL yang dibuat oleh MySQL AB.
Ada kalanya suatu program aplikasi memerlukan basis data untuk
mendukungnya. Basis data diperlukan bilamana data yang dimiliki terlalu banyak, atau
apabila pengguna ingin menambahkan, mengubah, atau menghapus data yang akan
digunakan dalam menjalankan program aplikasi.
2.8 Software Development Life Cycle
Menurut Turban, et. al. (2001, p477-486), Software Development Life Cycle
(SDLC) adalah kerangka terstruktur yang terdiri dari beberapa proses yang berurutan
yang diperlukan untuk membangun suatu sistem informasi. Pendekatan waterfall
digunakan untuk menggambarkan SDLC.
SDLC dirancang dengan tujuan untuk membangun alur pemrograman yang
terstruktur dan untuk membantu manajemen proyek dalam perhitungan estimasi waktu
dan sumber yang dibutuhkan suatu proyek.
21
Gambar 2.5 Eight Stage SDLC
Sumber: Turban, et. al. (2001, p477)
Tahap-tahap SDLC adalah sebagai berikut:
1. Systems Investigation
Systems Investigation adalah tahap yang mengutamakan pembelajaran
terhadap segala kemungkinan yang dapat terjadi. Dengan pembelajaran maka
suatu sistem dapat terhindar dari kesalahan yang dapat mengakibatkan
peningkatan usaha, waktu, dan jumlah pengeluaran.
2. Systems Analysis
Systems Analysis adalah tahap yang menganalisis masalah yang perlu
diselesaikan. Tahap ini mendefinisikan permasalahan, mengidentifikasikan
penyebab, menspesifikasikan solusi, serta mengidentifikasikan informasi-
informasi yang diperlukan.
22
3. Systems Design
Systems Design adalah tahap yang menjelaskan bagaimana suatu sistem akan
bekerja. Hasil dari tahap ini adalah output, input, dan user interface dari
sistem serta hardware, software, database, dan prosedur.
4. Programming
Programming adalah tahap yang menerjemahkan spesifikasi desain sistem
menjadi bahasa pemrograman yang dapat dimengerti oleh komputer.
5. Testing
Testing adalah tahap yang digunakan untuk memeriksa apakah pemrograman
telah menghasilkan hasil yang diinginkan dan diharapkan atas situasi
tertentu. Testing dirancang untuk mendeteksi adanya kesalahan coding.
6. Implementation
Implementation adalah proses perubahan dari penggunaan sistem lama
menjadi sistem yang baru.
7. Operation dan Maintenance
Operation dan Maintenance adalah tahap untuk memelihara sistem baru yang
akan dioperasikan dalam suatu periode waktu.
Metodologi waterfall ini dipilih karena urutan prosesnya yang memaksa
pengembang untuk terlebih dahulu memikirkan seperti apa sistem yang akan dibangun,
sebelum akhirnya dibuat perencanaan bagaimana sistem tersebut dibangun, karena akan
jauh lebih mudah untuk membangun sistem yang telah diketahui akan seperti apa sistem
itu.
23
2.9 Unified Modeling Language (UML)
Unified Modeling Language (UML) adalah bahasa grafis yang standar untuk
memodelkan software object oriented (Lethbridge, 2002, p151). UML bertujuan untuk
melakukan pemodelan terhadap pembuatan suatu sistem dengan menggunakan konsep
berorientasi objek (object oriented).
Dalam UML terdapat beberapa diagram yang dapat digunakan untuk pembuatan
desain pada sebuah aplikasi. Salah satunya adalah State Transition Diagram (STD).
2.9.1 State Transition Diagram (STD)
2.9.1.1 Pengertian STD
STD merupakan suatu modeling tool yang menggambarkan sifat ketergantungan
sistem. Pada mulanya hanya digunakan untuk menggambarkan suatu sistem yang
memiliki sifat real time seperti proses control, telephone switching system, dan control
system.
2.9.1.2 Simbol dan Sifat STD
State adalah kumpulan keadaan dan atribut yang mencirikan objek pada waktu
dan kondisi tertentu. Disimbolkan dengan segi empat.
Gambar 2.6 Notasi State
24
Transition adalah simbol perpindahan keaktifan dari sebuah objek menjadi objek
lain. Transition disimbolkan dengan anak panah.
Gambar 2.7 Notasi Transition
Condition adalah suatu keadaan pada lingkungan eksternal yang dapat dideteksi
oleh sistem. Condition menggambarkan syarat yang biasanya digunakan dalam
hubungan seleksi. Action adalah yang dilakukan sistem bila terjadi perubahan state atau
merupakan reaksi terhadap kondisi. Aksi akan menghasilkan keluaran atau output.
Display adalah hasil yang merupakan STD.
2.10 Delapan Aturan Emas Desain User Interface
Menurut Ben Shneiderman (2005, p74-75), ada 8 (delapan) aturan yang dapat
digunakan sebagai petunjuk dasar yang baik untuk merancang suatu user interface.
Delapan aturan ini disebut dengan Eight Golden Rules of Interface Design, yaitu:
1. Konsistensi
Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang
digunakan pada prompt, menu, serta layar bantuan.
2. Memungkinkan pengguna untuk menggunakan shortcut
Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan kecepatan
interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah tersembunyi,
dan fasilitas makro.
25
3. Memberikan umpan balik yang informatif
Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan
balik. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat
diberikan umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal
yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya
muncul suatu suara ketika salah menekan tombol pada waktu input data atau
muncul pesan kesalahannya.
4. Merancang dialog untuk menghasilkan suatu penutupan
Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian
awal, tengah, dan akhir. Umpan balik yang informatif akan meberikan indikasi
bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok
tindakan berikutnya.
5. Memberikan penanganan kesalahan yang sederhana
Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan
kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan
dengan cepat dan memberikan mekanisme yang sedehana dan mudah
dipahami untuk penanganan kesalahan.
6. Mudah kembali ke tindakan sebelumnya
Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui
kesalahan yang dilakukan dapat dibatalkan; sehingga pengguna tidak takut
untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan.
7. Mendukung tempat pengendali internal (internal locus of control)
Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan
yang dilakukan pengguna daripada pengguna merasa bahwa sistem
26
mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga
pengguna menjadi inisiator daripada responden.
8. Mengurangi beban ingatan jangka pendek
Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau
banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup
waktu pelatihan untuk kode, mnemonic, dan urutan tindakan.