BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI. statistik yang dikemukakan oleh ilmuwan Inggris Thomas Bayes, yaitu

BAB 2 LANDASAN TEORI

BAB 4 IMPLEMENTASI DAN EVALUASI. simulasi penyelesaian rubix cube ini adalah sebagai berikut. 1. Processor: Intel (R) Pentium (R) 4 CPU 1.

Eksplorasi Algoritma Brute Force, Greedy, dan Dynamic Programming untuk Persoalan Integer Knapsack

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Program Dinamis (Dynamic Programming)

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI. Penerapan Model Human Computer Interaction (HCI) dalam Analisis Sistem

BAB II LANDASAN TEORI. Ada tiga komponen dalam sistim antrian yaitu : 1. Kedatangan, populasi yang akan dilayani (calling population)

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 09

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

OPTIMASI PEMAKAIAN BAHAN BAKU DENGAN ALGORITMA PROGRAM DINAMIS SEKUENSIAL

MODUL I PROGRAM DINAMIS

BAB 4 PERANCANGAN DAN IMPLEMENTASI PROGRAM. Oriented Programming) atau secara procedural.

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

REKAYASA PERANGKAT LUNAK

BAB 2 LANDASAN TEORI. fakta mentah mengenai orang, tempat, kejadian, dan hal-hal yang penting dalam

Program Dinamis (dynamic programming):

Program Dinamis. Oleh: Fitri Yulianti

Jenis Metode Pengembangan Perangkat Lunak

BAB 2 LANDASAN TEORI. Menurut Dahlan Siamat ( Manajemen Lembaga Keuangan,1995, p343), Dana

TIN102 - Pengantar Teknik Industri Materi #10 Ganjil 2015/2016 TIN102 PENGANTAR TEKNIK INDUSTRI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB III PERANCANGAN PROGRAM

MAKALAH REKAYASA PERANGKAT LUNAK ( SIKLUS HIDUP PERANGKAT LUNAK )

Pengembangan Sistem Informasi

EKSPLORASI ALGORITMA BRUTE FORCE, GREEDY DAN PEMROGRAMAN DINAMIS PADA PENYELESAIAN MASALAH 0/1 KNAPSACK

BAB 2 LANDASAN TEORI

BAB III METODOLOGI PENELITIAN

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. Perancangan program aplikasi dalam skripsi ini menggunakan aturan linear sequential

BAB III METODOLOGI PENELITIAN

Tugas Softskill. Universitas Gundarma. : Sistem Informasi Manajemen. : Waldhi Supriono NPM : Kelas : 2 DB 12

Ratna Wardani. Department of Electronic Engineering Yogyakarta State University

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 3 ANALISIS DAN PERANCANGAN. Berbagai pembangunan terus dilaksanakan di setiap wilayah di Indonesia,

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI. tertentu yang menjadi perhatian. Jika ragam populasi σ 2 meningkat maka jumlah informasi yang

BAB IV HASIL DAN PEMBAHASAN

PENDAHULUAN PENGEMBANGAN SISTEM INFORMASI

Program Dinamis (Dynamic Programming)

BAB 2 LANDASAN TEORI. (housing)mengandung arti sebagai komoditi dan sebagai proses. Sebagai

METODE DAN TEKNIK PENGEMBANGAN SISTEM INFORMASI

4. BAB IV HASIL DAN PEMBAHASAN. menggunakan metode interview atau wawancara. Hasil dari tahap ini adalah

BAB I PENDAHULUAN. Badan Pusat Statistik ( BPS ) Provinsi Kepulauan riau adalah salah satu

BAB II LANDASAN TEORI. implementasi serta pasca implementasi.(rizky, 2011:21). performasi dan fungsi yang diinginkan.

BAB 2 LANDASAN TEORI

Hanif Fakhrurroja, MT

Tujuan 04/07/ :01

BAB 4 PERANCANGAN DAN IMPLEMENTASI PROGRAM. dengan struktur yang sederhana dengan algoritma yang rumit, sehingga

SIKLUS REKAYASA PERANGKAT LUNAK (SDLC)

BAB1. PENDAHULUAN Siklus hidup sistem (SLC) SDLC Systems Development Life Cycle Siklus Hidup Pengembangan Sistem Systems Life Cycle

Review Rekayasa Perangkat Lunak. Nisa ul Hafidhoh

BAB 3 METODOLOGI PENELITIAN. sekitar Kampus Anggrek dan Syahdan BINUS University.

PROSES DESAIN. 1. Metodologi Pengembangan Sistem

BAB 2 LANDASAN TEORI. sampel. Kecepatan ini dapat dihitung dengan rumus: di mana : = kecepatan. = jarak tempuh. = waktu tempuh

BAB III METODOLOGI PENELITIAN

BAB II TINJAUAN PUSTAKA. menerapkan metode UCD (User Centered Design) adalah untuk

Review of Process Model. SE 3773 Manajemen Proyek Teknologi Informasi *Imelda Atastina*

BAB 2 LANDASAN TEORI

Hanif Fakhrurroja, MT

DASAR-DASAR PERANCANGAN PERANGKAT LUNAK

BAB II LANDASAN TEORI

REKAYASA PERANGKAT LUNAK

Program Dinamis Sebagai Algoritma Dalam Link State Routing Protocol

BAB I PENDAHULUAN. 1.1 Latar Belakang

Penyelesaian Persoalan Penukaran Uang dengan Program Dinamis

BAB II LANDASAN TEORI

Teknik Informatika S1

BAB 6 METODOLOGI SIKLUS HIDUP SISTEM

Tujuan Perkuliahan. PENGANTAR RPL (Pert. 2 chapter 1 Pressman) Agenda. Definisi Software (Perangkat Lunak) Lunak) 23/09/2010

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

BAB III METODE PENELITIAN. Dalam penelitian ini, alat yang di gunakan adalah sebagai berikut: 1. Perangkat Keras (Hardware)

BAB II TINJAUAN PUSTAKA. yang ditandai dengan saling berhubungan dan mempunyai satu fungsi atau tujuan

BAB 4 HASIL DAN PEMBAHASAN. 2. Memori RAM 512 MB 3. VGA card 256 MB 4. CD-ROM Drive 5. Speaker 6. Keyboard 7. Mouse

BAB I PENDAHULUAN. 1.1.Latar Belakang

SOFTWARE PROCESS MODEL

BAB IV HASIL DAN PEMBAHASAN. Matching Profile adalah perlunya memasang atau meng-install aplikasi kedalam

BAB I PENDAHULUAN. yaitu sistematika penulisan yang merupakan indeks laporan tugas akhir, dimana. tiap sub bab berisi penjelasan ringkasan perbab.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM. Ada beberapa masalah dalam pengenalan tulisan tangan matematika yang dapat

BAB III LANDASAN TEORI

BAB 1 PENDAHULUAN 1.1 Latar Belakang 1.2 Rumusan Masalah

BAB 2 LANDASAN TEORI. komputer) yang ketika dieksekusi akan memberikan fungsi dan performa seperti yang

BAB I PENDAHULUAN. pada sektor masyarakat meluas dengan cepat[4]. menentukan tingkat kegiatan-kegiatan yang akan dilakukan, dimana masingmasing

BAB II LANDASAN TEORI. tenaga kerja pada perusahaan, fokus yang dipelajari MSDM ini hanya masalah yang. berhubungan dengan tenaga kerja manusia saja.

Pengembangan Sistem Informasi

REKAYASA PERANGKAT LUNAK I ALIF FINANDHITA, M.T. - TEKNIK INFORMATIKA UNIKOM 1

BAB III OBJEK DAN METODE PENELITIAN

Pendekatan-Pendekatan Pengembangan Sistem Hanif Al Fatta M.kom

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN I-1

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

Transkripsi:

8 BAB 2 LANDASAN TEORI 2.1 Model Cutting Stock Problem 2.1.1 Integer Knapsack Cutting-stock problem merupakan salah satu satu contoh persoalan dalam Integer Knapsack. Dalam persoalan integer knapsack, diberikan n buah objek yang masing-masing memiliki nilai bobot dan keuntungan. Akan dipilih objek-objek yang akan dimasukkan ke dalam knapsack (karung) yang memiliki bobot maksimum W sehingga didapat keuntungan yang maksimum. Persoalan ini disebut Integer Knapsack karena tiap objek hanya memiliki dua status, yaitu terpilih atau tidak. Permasalahan tersebut dapat dinyatakan dalam bentuk formal sebagai berikut. Diberikan n buah objek dengan bobot masing masing w 1, w 2,..., w n dan keuntungan p 1, p 2,..., p n. Lalu terdapat sebuah knapsack dengan bobot maksimum K. Solusi dari persoalan diatas dinyatakan dalam vektor n-tupel: X = {x 1, x 2,..., x n } di mana x i bernilai 1 jika objek ke-i dipilh dan bernilai 0 jika objek ke-i tidak dipilih. Misalnya X = {1, 0, 0} merupakan solusi di mana objek yang dipilih ialah objek ke-1, sedangkan objek ke-2 dan ke-3 tidak dipilih.

9 Solusi dihasilkan dengan batasan: maksimumkan Dengan kendala: 2.1.2 Knapsack 2D Masalah knapsack 2D merupakan masalah pengisian daerah berdimensi (L,W) dengan n buah persegi dengan ukuran (l i, w i ) di mana i = 1, 2,..., n. Profit adalah suatu nilai yang positif, π 1, π 1,..., π n yang berkaitan dengan tiap persegi. Dengan parameter ini, keuntungan maksimum dari π 1 z 1, π 1 z 2,..., π n z n dihitung. Adapun z i adalah suatu nilai positif di mana knapsack dibagi dalam z i bentuk persegi i, yang mempunyai ukuran (l i, w i ). Masalah pemotongan ini hanya mengijinkan terjadinya proses rekursi sisi per sisi, sehingga semua pemotongan dibuat tegak lurus dari satu sisi persegi terhadap yang lainnya. Objek benda dapat mempunyai orientasi yang sudah tepat atau dapat diputar 90 o. Tambahan n objek dengan dimensi (w i, l i ) dengan keuntungan π 1 ditambahkan ketika proses rotasi memungkinkan. Salah satu algoritma untuk menyelesaikan masalah ini adalah dengan menerapkan dynamic programming.

10 Fungsi knapsack F(x, y), didapatkan dari teknik dynamic programming, dengan proses perhitungan, sehingga untuk lokasi (x, y), F(x, y) adalah keuntungan terbesar yang diperoleh dari persegi yang dibuat dari sisi X dan Y dan titik (x, y). Hal ini memenuhi pertidaksamaan matematis berikut ini yang berhubungan dengan batasan pemotongan yang dapat dilakukan. 0 x L, 0 y W, F(x, y) 0, F(x 1 + x 2, y) F(x 1, y) + F(x 2, y), F(x, y 1 + y 2 ) F(x, y 1 ) + F(x, y 2 ), F(l i, w i ) π i, (i = 1, 2,, n) 2.1.3 Metode Sequential Dynamic Programming Sequential Dynamic Programming adalah suatu teknik matematis yang biasanya digunakan untuk membuat suatu keputusan dari serangkaian keputusan yang saling berkaitan. Tujuan utama model ini adalah untuk mempermudah penyelesaian persoalan optimasi yang mempunyai karakteristik tertentu. Ide dasar dynamic programming ini adalah membagi persoalan menjadi beberapa bagian yang lebih kecil sehingga memudahkan penyelesaiannya. Akan tetapi, berbeda dengan linear programming, pada persoalan dynamic programming ini tidak ada formulasi matematis yang standar.

11 Karena itu, persamaan-persamaan yang terpilih untuk digunakan harus dikembangkan agar dapat memenuhi masing-masing situasi yang dihadapi. Dengan demikian, antara persoalan yang satu dengan persoalan lainnya dapat mempunyai struktur penyelesaian persoalan yang berbeda. Keuntungan dari penggunaan dynamic programming adalah dapat memperoleh solusi dari suatu masalah tanpa adanya exponential running time. Setiap objek berbentuk kotak akan diatur posisinya, dan sebuah tabel akan mencatat pemotongan terbaik untuk tiap lokasi. Setelah itu, semua isi tabel akan dibaca untuk menghitung jumlah panjang dan lebar dari objek untuk membuat konfigurasi dari objek yang menghasilkan keuntungan maksimum. Algoritma dari sequential dynamic programming dapat dilihat pada diagram 2.1. Berikut ini adalah persamaan matematis relasi yang digunakan untuk mendapatkan algoritma sequential. F 0 (x, y) = max {0, π j l j x Λ w j y} F k (x, y) = max { F k-1 (x, y), F k-1 (x 1, y) + F k-1 (x 2, y), F k-1 (x, y 1 ) + F k-1 (x, y 2 ) } 0 < x 1 x 2, x 1 + x 2 x, 0 < y 1 y 2, y 1 + y 2 y. Pada step 1 algoritma, semua lokasi dalam knapsack diinisialisasi dengan nilai 0. Pada step 2, setiap objek mulai diperhatikan, nilai keuntungan tertinggi diletakkan pada semua lokasi yang memungkinkan. Pada step 3, dilakukan pembacaan isi tabel 2D dari baris yang paling rendah sampai ke baris yang paling tinggi, menjumlahkan semua kemungkinan kombinasi yang dapat dilakukan baik secara vertikal atau horisontal dan menyimpan dua objek yang mempunyai jumlah

12 keuntungan tertinggi. Pada diagram 2.1 ditunjukkan bagaimana nilai F(x, y) dihitung secara iterasi. Karena hanya potongan persegi yang digunakan, solusi parsial pada posisi (i, j) dipotong secara paralel menjadi dua bagian, x dan y. Karena simetris, hanya potongan x, mulai dari x = 0 sampai i/2, dan potongan y mulai dari 0 sampai j/2 yang dipertimbangkan untuk setiap (i, j). Algoritma sequential ini mempunyai waktu proses O(LW(n+L+W)), di mana n adalah jumlah objek, dan L, W menyatakan dimensi knapsack yaitu panjang dan lebar. for i = 0 to L // Step 1 for j = 0 to W Fi, j = 0 for i = 0 to n // Step 2 for j = 0 to L for j = 0 to W if (Ik i dan wk j dan πk > Fi, j) Fi, j = πk for i = 0 to L // Step 3 for j = 0 to W { for k = 0 to for k = 0 to { sum = Fk, j + Fi-k, j if (sum> Fi, j) Fi, j = sum} { sum = Fk, i + Fi, j-k if (sum> Fi, j) Fi, j = sum}} Diagram 2.1 Algoritma Sequential Dynamic Programming

13 Program Dinamis (dynamic programming) adalah pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage), sedemikian sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. Pada penyelesaian persoalan dengan metode ini: (1) terdapat sejumlah berhingga pilihan yang mungkin, (2) solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya, (3) menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap. Dua pendekatan yang digunakan dalam Dynamic Progamming adalah maju (forward atau up-down) dan mundur (backward atau bottom-up). Misalkan x 1, x 2,, x n menyatakan peubah (variable) keputusan yang harus dibuat masing-masing untuk tahap 1, 2,, n. Terdapat dua cara gerak dynamic programming: a. Program dinamis maju: program dinamis bergerak mulai dari tahap 1, terus maju ke tahap 2, 3, dan seterusnya sampai tahap n. Runtunan peubah keputusan adalah x 1, x 2,, x n. b. Program dinamis mundur: program dinamis bergerak mulai dari tahap n, terus mundur ke tahap n 1, n 2, dan seterusnya sampai tahap 1. Runtunan peubah keputusan adalah x n, x n-1,, x 1.

14 Secara umum, ada empat langkah yang dilakukan dalam mengembangkan algoritma program dinamis: 1. Karakteristikkan struktur solusi optimal. 2. Definisikan secara rekursif nilai solusi optimal. 3. Hitung nilai solusi optimal secara maju atau mundur. 4. Konstruksi solusi optimal. Pada penerapan algoritma Dynamic Programming maju (forward) untuk memecahkan persoalan Integer Knapsack, 1. Tahap (k) adalah proses memasukkan barang ke dalam karung (ada 3 tahap). 2. Status (y) menyatakan kapasitas muat karung yang tersisa setelah memasukkan barang pada tahap sebelumnya. Dari tahap ke-1, objek ke-1 dimasukkan ke dalam karung untuk setiap satuan kapasitas karung sampai batas kapasitas maksimumnya. Karena kapasitas karung adalah bilangan bulat, maka pendekatan ini praktis. Misalkan ketika memasukkan objek pada tahap k, kapasitas muat karung sekarang adalah kapasitas muat karung dikurangi bobot objek k yang dimasukkan: y w k. Untuk mengisi kapasitas sisanya, diterapkan prinsip optimalitas dengan mengacu pada nilai optimum dari tahap sebelumnya untuk kapasitas sisa y w k ( yaitu f k-1 (y w k )).

15 Selanjutnya, dibandingkan nilai keuntungan dari objek pada tahap k (yaitu p k ) plus nilai f k-1 (y w k ) dengan keuntungan pengisian hanya k 1 macam objek, f k-1 (y). Jika p k + f k-1 (y w k ) lebih kecil dari f k-1 (y), maka objek yang ke-k tidak dimasukkan ke dalam karung, tetapi jika lebih besar, maka objek yang ke-k dimasukkan. Relasi perulangan untuk persoalan ini adalah f 0 (y) = 0, y = 0, 1, 2,, M (basis) f k (y) = -, y < 0 (basis) f k (y) = max{f k-1 (y), p k + f k-1 (y w k )}, (perulangan) k = 1, 2,, n yang dalam hal ini, f k (y) adalah keuntungan optimum dari persoalan Integer Knapsack pada tahap k untuk kapasitas karung sebesar y. f 0 (y) = 0 adalah nilai dari persoalan knapsack kosong (tidak ada persoalan knapsack) dengan kapasitas y, f k (y) = - adalah nilai dari persoalan knapsack untuk kapasitas negatif. Solusi optimum dari persoalan Integer Knapsack adalah f n (M).

16 Contoh: n = 3 M = 5 Tabel 1. Bobot dan keuntungan barang (n=3) Sumber: http://fportfolio.petra.ac.id/user_files/03-023/optimasi.pdf Tahap 1: f 1 (y) = max{f 0 (y), p 1 + f 0 (y w 1 )} = max{f 0 (y), 65 + f 0 (y 2)} Tabel 2. Tahap 1 solusi Integer Knapsack secara Dynamic Programming Sumber: http://fportfolio.petra.ac.id/user_files/03-023/optimasi.pdf Tahap 2: f 2 (y) = max{f 1 (y), p 2 + f 1 (y w 2 )} = max{f 1 (y), 80 + f 1 (y 3)}

17 Tabel 3. Tahap 2 solusi Integer Knapsack secara Dynamic Programming Sumber: http://fportfolio.petra.ac.id/user_files/03-023/optimasi.pdf Tahap 3: f 3 (y) = max{f 2 (y), p 3 + f 2 (y w 3 )} = max{f 2 (y), 30 + f 2 (y 1)} Tabel 4. Tahap 3 solusi Integer Knapsack secara Dynamic Programming Sumber: http://fportfolio.petra.ac.id/user_files/03-023/optimasi.pdf Didapatkan solusi optimum X = (1, 1, 0) dengan Σp = f = 1

18 2.2 Perancangan Program Aplikasi 2.2.1 Bentuk Program Suatu program dapat dibuat dengan dua cara yaitu secara OOP (Object Oriented Programming) atau secara procedural. Object Oriented Programming adalah sebuah paradigma pemrograman yang menggunakan objek dan interaksinya untuk mendesain aplikasi dan program komputer. Keunggulan yang membuat OOP semakin banyak digunakan adalah karena sifatnya yang reusable, sehingga sangat cocok untuk membuat aplikasi atau program yang besar. Untuk aplikasi dengan struktur yang sederhana, OOP akan mempersulit pembuatan program karena programmer harus merancang objek satu per satu. Sedangkan procedural programming atau yang juga dikenal dengan imperative programming adalah pemrograman berdasarkan konsep pemanggilan procedures atau yang sering dikenal sebagai routines, subroutines, methods, dan functions. Setiap procedure mengandung sederetan langkah perhitungan yang harus dijalankan. Procedures dapat dipanggil kapan saja dalam program, termasuk di dalam procedure itu sendiri. Jika dibandingkan dengan OOP, procedural programming diperuntukkan bagi pembuatan program dengan struktur yang sederhana dengan algoritma yang juga sederhana maupun yang rumit.

19 2.2.2 Use Case Diagram Use Case menunjukkan hubungan interaksi antara aktor dengan use case di dalam suatu sistem (Mathiassen, 2000, p343) yang bertujuan untuk menentukan bagaimana aktor berinteraksi dengan sebuah sistem. Aktor adalah orang atau sistem lain yang berhubungan dengan sistem. Ada tiga simbol yang mewakili komponen sistem seperti terlihat pada gambar di bawah ini. Gambar 4.1 Notasi Use Case Diagram Sumber: Mathiassen (2000, p343) Menurut Schneider dan Winters, ada lima hal yang harus diperhatikan dalam pembuatan diagram use case (Schneider dan Winters, 1997, p26). 1. Aktor: segala sesuatu yang berhubungan dengan sistem dan melaksanakan use case yang terkait. 2. Precondition: kondisi awal yang harus dimiliki aktor untuk masuk ke dalam sistem untuk terlibat dalam suatu use case.

20 3. Postcondition: kondisi akhir atau hasil apa yang akan diterima oleh aktor setelah menjalankan suatu use case. 4. Flow of Events: kegiatan-kegiatan yang dilakukan pada sebuah proses use case. 5. Alternative Paths: kegiatan yang memberikan serangkaian kejadian berbeda yang digunakan dalam Flow of Events. 2.2.3 Sequence Diagram Sequence diagram adalah diagram yang menunjukkan urutan penukaran pesan oleh sejumlah objek (dan seorang aktor yang optional) di dalam melakukan tugas tertentu. Sequence diagram menggambarkan bagaimana objek berinteraksi satu sama lain melalui pesan pada pelaksanaan use case atau operasi. Diagram sequence mengilustrasikan bagaimana pesan dikirim dan diterima antar objek secara berurutan. (Whitten et. al., 2004, p441).

21 Beberapa notasi diagram sequence terlihat pada gambar di bawah ini. Gambar 4.3 Notasi Sequence Diagram Sumber: Whitten (2004, p441) 2.2.4 Rekayasa Piranti Lunak Rekayasa piranti lunak menurut Fritz Bauer (Pressman, 2005, p23) adalah penetapan dan pemakaian prinsip-prinsip rekayasa dalam rangka mendapatkan piranti lunak yang ekonomis yaitu terpecaya dan bekerja efisien pada mesin (komputer). Menurut Pressman (2005, p24), rekayasa piranti lunak mencakup 3 elemen yang mampu mengontrol proses pengembangan piranti lunak. 1. Metode-metode (methods), menyediakan cara-cara teknis untuk membangun piranti lunak 2. Alat-alat bantu (tools) mengadakan dukungan otomatis atau semi otomatis untuk metodemetode seperti CASE (Computer Aided Software Engineering) yang

22 mengkombinasikan software, hardware, dan software engineering database. 3. Prosedur-prosedur (procedurs) merupakan pengembangan metode dan alat bantu. Dalam perancangan software dikenal istilah software life cycle yaitu serangkaian kegiatan yang dilakukan selama masa perancangan software. Pemakaian jenis software life cycle yang cocok salah satunya ditentukan oleh jenis bahasa pemrograman yang cocok. Contohnya, Waterfall Model merupakan model yang paling umum dan paling dasar pada software life cycle pada umumnya, Rapid Application Development (RAD) dan Joint Application Development (JAD) cocok untuk software berbasis objek (OOP), sedangkan Sync+Stabilize dan Spiral Model yang merupakan pengembangan model waterfall dengan komponen prototyping cocok untuk sebuah aplikasi yang rumit dan cenderung mahal pembuatannya. Menurut Dix (1997, p180), berikut adalah visualisasi dari kegiatan pada software life cycle model waterfall. 1. Spesifikasi kebutuhan (Requirement specification) Pada tahap ini, pihak pengembang dan konsumen mengidentifikasi apa saja fungsi-fungsi yang diharapkan dari sistem dan bagaimana sistem memberikan layanan yang diminta. Pengembang berusaha mengumpulkan berbagai informasi dari konsumen.

23 2. Perancangan arsitektur (Architectural design) Pada tahap ini, terjadi pemisahan komponen-komponen sistem sesuai dengan fungsinya masing-masing. 3. Detailed design Setelah memasuki tahap ini, pengembang memperbaiki deskripsi dari komponen-komponen dari sistem yang telah dipisahpisah pada tahap sebelumnya. 4. Coding and unit testing Pada tahap ini, disain diterjemahkan ke dalam bahasa pemrograman untuk dieksekusi. Setelah itu komponen-komponen diuji apakah sesuai dengan fungsinya masing-masing. 5. Integration and testing Setelah tiap-tiap komponen diuji dan telah sesuai dengan fungsinya, komponen-komponen tersebut disatukan lagi. Lalu sistem diuji untuk memastikan sistem telah sesuai dengan kriteria yang diminta konsumen. 6. Pemeliharaan (maintenance) Setelah sistem diimplementasikan, maka perlu dilakukannya perawatan terhadap sistem itu sendiri. Perawatan yang dimaksud adalah perbaikan error yang ditemukan setelah sistem diimplementasikan.

24 Gambar 4.8 Software Life Cycle Model Waterfall Sumber: Dix (1997, p181) 2.2.5 Interaksi Manusia dan Komputer Menurut Shneiderman (2005, p4), Interaksi manusia dan komputer merupakan disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya. Pada interaksi manusia dan komputer ditekankan pada pembuatan antarmuka pemakai (user interface). User interface yang dibuat diusahakan sedemikian rupa sehingga seorang user dapat dengan baik dan nyaman menggunakan aplikasi perangkat lunak dibuat.

25 Antar muka pemakai (user interface) adalah bagian sistem komputer yang memungkinkan manusia berinteraksi dengan komputer. Tujuan antar muka pemakai adalah agar sistem komputer dapat digunakan oleh pemakai (user interface), istilah tersebut digunakan untuk menunjuk pada kemampuan yang dimiliki oleh piranti lunak atau program aplikasi yang mudah dioperasikan dan dapat membantu menyelesaikan suatu persoalan dengan hasil yang sesuai dengan keinginan pengguna, sehingga pengguna merasa nyaman mengoperasikan program tersebut. A. Program Interaktif Suatu program yang interaktif dan baik harus bersifat user friendly. (Scheiderman, p15) menjelaskan lima kriteria yang harus dipenuhi oleh suatu program yang user friendly. 1. Waktu belajar yang tidak lama 2. Kecepatan penyajian informasi yang tepat 3. Tingkat kesalahan pemakaian rendah 4. Penghafalan sesudah melampaui jangka waktu 5. Kepuasan pribadi

26 B. Pedoman Merancang User Interface Beberapa pedoman yang dianjurkan dalam merancang suatu program, guna mendapatkan suatu program yang user friendly adalah sebagai berikut. 1. Delapan aturan emas (Eight Golden Rules) Untuk merancang sistem interaksi manusia dan komputer yang baik, harus memperhatikan delapan aturan emas dalam perancangan antarmuka, seperti: strive for consistency (konsisten dalam merancang tampilan), enable frequent user to use shorcuts (memungkinkan pengguna menggunakan shortcuts secara berkala), offer informative feed back (memberikan umpan balik yang informatif), design dialogs to yield closure (merancang dialog untuk menghasilkan keadaan akhir), offer simple error handling (memberikan penanganan kesalahan), permit easy reversal of actions (mengijinkan pembalikan aksi dengan mudah), support internal locus of control (mendukung pengguna menguasai sistem), dan reduce short-term memory load (mengurangi beban jangka pendek pada pengguna). 2. Teori waktu respon Waktu respon dalam sistem komputer menurut (Scheiderman, p352) adalah jumlah detik dari saat pengguna program memulai aktifitas sampai menampilkan hasilnya di layar atau printer. Pemakai lebih menyukai waktu respon yang pendek, waktu respon yang panjang mengganggu, waktu respon yang pendek menyebabkan waktu

27 pengguna berpikir lebih pendek. Waktu respon harus sesuai dengan tugasnya, dan pemakai harus diberi tahu mengenai penundaan yang panjang.