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. Rembang Brebes
Tegal
Demak
Kendal
Pemalang
Semarang
Pekalongan
Slawi
Blora
Temanggung Wonosobo Purwokerto
Kudus
Purwodadi
Salatiga
Purbalingga Sragen Banjarnegara
Kroya Cilacap
Boyolali
Solo Sukoharjo
Kebumen
Magelang Klaten Purworejo Wonogiri
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 aturanaturan 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 NPHard, tetapi sebagian masalah NP-Hard belum tentu menjadi masalah NPComplete (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 informasiinformasi 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.