bab 2 ga - library.binus.ac.idlibrary.binus.ac.id/ecolls/ethesisdoc/bab2/2011-2-00638- mtif bab...
TRANSCRIPT
BAB 2
LANDASAN TEORI
Bab ini menguraikan konsep dan teori-teori yang akan dipakai dalam pembuatan
aplikasi optimasi pola penempatan barang pada bidang dua dimensi dengan
menggunakan metode Algoritma Genetik.
2.1 Algoritma Genetik
2.1.1 Pengertian Algoritma Genetik
Algoritma ini ditemukan di Universitas Michigan, Amerika Serikat oleh John
Holland (1975) melalui sebuah penelitian dan dipopulerkan oleh salah satu muridnya,
David Goldberg (1989). Dimana mendefenisikan algoritma genetik ini sebagai metode
algoritma pencarian berdasarkan pada mekanisme seleksi alam dan genetik alam.
Algoritma Genetik adalah algoritma yang berusaha menerapkan pemahaman
mengenai evolusi alamiah pada tugas-tugas pemecahan masalah (problem solving).
Pendekatan yang diambil oleh algoritma ini adalah dengan menggabungkan secara acak
berbagai pilihan solusi terbaik di dalam suatu kumpulan untuk mendapatkan generasi
solusi terbaik berikutnya yaitu pada suatu kondisi yang memaksimalkan kecocokannya
atau lazim disebut fitness. Generasi ini akan merepresentasikan perbaikan-perbaikan
pada populasi awalnya. Dengan melakukan proses ini secara berulang, algoritma ini
diharapkan dapat mensimulasikan proses evolusioner.
Pada akhirnya, akan didapatkan solusi-solusi yang paling tepat bagi
permasalahan yang dihadapi. Berikut adalah tiga aspek yang penting untuk penggunaan
Algoritma Genetik:
7
a. Definisi fungsi fitness
b. Definisi dan implementasi representasi genetik
c. Definisi dan implementasi operasi genetik
2.1.2 Struktur Umum Algoritma Genetik
Algoritma Genetik memberikan suatu pilihan bagi penentuan nilai parameter
dengan meniru cara reproduksi genetik, pembentukan kromosom baru serta seleksi alami
seperti yang terjadi pada makhluk hidup. Algoritma Genetik secara umum dapat
diilustrasikan dalam diagram alir berikut ini:
Gambar 2.1 Diagram Alir Algoritma Genetik Secara Umum
8
Sumber:http://digilib.petra.ac.id/viewer.php?page=9&submit.x=11&submit.y=26
&submit=next&qual=high&submitval=next&fname=%2Fjiunkpe%2Fs1%2Finfo%2F20
06%2Fjiunkpe-ns-s1-2006-26401048-9199-hopfield-chapter3.pdf.
Menurut Golberg (1989) mengemukakan bahwa Algoritma Genetik mempunyai
karakteristik-karakteristik yang perlu diketahui sehingga dapat terbedakan dari prosedur
pencarian atau optimasi yang lain, yaitu:
a. Algoritma Genetik dengan pengkodean dari himpunan solusi permasalahan
berdasarkan parameter yang telah ditetapkan dan bukan parameter itu sendiri.
b. Algoritma Genetik pencarian pada sebuah solusi dari sejumlah individu-individu
yang merupakan solusi permasalahan bukan hanya dari sebuah individu.
c. Algoritma Genetik informasi fungsi objektif (fitness), sebagai cara untuk
mengevaluasi individu yang mempunyai solusi terbaik, bukan turunan dari suatu
fungsi.
d. Algoritma Genetik menggunakan aturan-aturan transisi peluang, bukan aturan-aturan
deterministik.
Variabel dan parameter yang digunakan pada Algoritma Genetik adalah:
a. Fungsi fitness (fungsi tujuan) yang dimiliki oleh masing-masing individu untuk
menentukan tingkat kesesuaian individu tersebut dengan kriteria yang ingin dicapai.
b. Populasi jumlah individu yang dilibatkan pada setiap generasi.
c. Probabilitas terjadinya crossover (persilangan) pada suatu generasi.
d. Probabilitas terjadinya mutasi pada setiap individu.
9
e. Jumlah generasi yang akan dibentuk yang menentukan lama penerapan Algoritma
Genetik.
Secara umum struktur dari suatu Algoritma Genetik dapat mendefenisikan
dengan langkah-langkah sebagai berikut:
a. Membangkitkan populasi awal
Populasi awal ini dibangkitkan secara random sehingga didapatkan solusi awal.
Populasi itu sendiri terdiri atas sejumlah kromosom yang merepresentasikan solusi
yang diinginkan.
b. Membentuk generasi baru
Untuk membentuk generasi baru, digunakan operator reproduksi atau seleksi,
crossover dan mutasi. Proses ini dilakukan berulang-ulang sehingga didapatkan
jumlah kromosom yang cukup untuk membentuk generasi baru dimana generasi baru
ini merupakan representasi dari solusi baru. Generasi baru ini dikenal dengan istilah
anak (offspring).
c. Evaluasi solusi
Pada tiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan
alat ukur yang dinamakan fitness. Nilai fitness suatu kromosom menggambarkan
kualitas kromosom dalam populasi tersebut. Proses ini akan mengevaluasi setiap
populasi dengan menghitung nilai fitness setiap kromosom dan mengevaluasinya
sampai terpenuhi kriteria berhenti. Bila kriteria berhenti belum terpenuhi maka akan
dibentuk lagi generasi baru dengan mengulangi langkah b. Beberapa kriteria berhenti
yang sering digunakan antara lain: berhenti pada generasi tertentu, berhenti setelah
dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi tidak
berubah, berhenti dalam n generasi tidak didapatkan nilai fitness yang lebih tinggi.
10
Fungsi fitness tersebut adalah sebagai berikut:
Dimana :
Dari persamaan diatas nilai fitness ditentukan oleh nilai penalty. Penalty tersebut
menunjukkan jumlah pelanggaran kendala pada suatu kromosom. Semakin tinggi
nilai fitness akan semakin besar kemungkinan kromosom tersebut terpilih ke
generasi berikutnya. Jadi nilai penalty berbanding terbalik dengan nilai fitness,
semakin kecil nilai penalty (jumlah pelanggaran) semakin besar nilai fitness-nya.
Jadi fungsi fitness adalah sebagai berikut:
Keterangan:
Bp : Bobot Pelanggaran
Np : Indikator Pelanggaran
2.1.3 Cara Kerja Algoritma Genetik
Gambaran umum cara kerja Algoritma Genetik sebagai berikut [OBI98]:
a. [Start] Pilih secara acak sekumpulan kromosom sebagai populasi awal. Kromosom
ini harus sesuai dengan masalah yang hendak dicari solusinya.
b. [Fitness] Evaluasi nilai fitness dari tiap kromosom pada populasi.
c. [New population] Buat populasi baru dari populasi lama dengan cara:
11
1) [Selection] Pilih dua kromosom induk dari populasi lama berdasarkan nilai
fitness-nya (semakin baik suatu kromosom, semakin besar kemungkinan
terpilihnya).
2) [Crossover] Pertimbangkan kemungkinan pindah silang untuk memutuskan
apakah terjadi pindah silang. Jika ya, bentuk kromosom baru dengan
melakukan pindah silang pada kedua kromosom induk. Jika tidak, salin ulang
kedua kromosom induk.
3) [Mutation] Pertimbangkan kemungkinan mutasi untuk memutuskan apakah
terjadi mutasi. Jika ya, mutasikan kromosom yang dihasilkan proses 3.b
[Crossover]. Jika tidak, salin ulang kromosom yang dihasilkan proses 3.b
[Crossover].
4) [Accepting] Masukkan kromosom, yang dihasilkan proses 3.c [Mutation] ke
dalam populasi offspring.
d. [Replace] Buang populasi lama, gunakan populasi offspring untuk proses
selanjutnya.
e. [Test] Cek kondisi berhenti (pertimbangkan banyak populasi baru yang sudah
terbentuk dan/atau pertimbangkan isi populasi baru). Jika terpenuhi, proses
pencarian solusi dapat diakhiri. Beberapa kromosom terbaik dari populasi terakhir
dapat dianggap sebagai solusi.
f. [Loop] Jika kondisi berhenti tidak terpenuhi, lanjutkan proses ke langkah 2
[Fitness].
Seperti yang dapat dilihat di atas, pencarian solusi dilakukan secara iteratif. Satu siklus
iterasinya mewakili satu generasi tertentu.
12
2.2 Transformasi Geometri
Transformasi digunakan untuk untuk memindahkan suatu titik atau bangun pada
suatu bidang. Transformasi geometri adalah bagian dari geometri yang membahas
tentang perubahan (letak, bentuk, penyajian) yang didasarkan dengan gambar dan
matriks.
a. Translasi
Perpindahan titik–titik pada bidang dengan jarak dan arah tertentu yang diwakili
oleh ruas garis berarah (vector) atau dengan suatu pasangan bilangan misal
.
Translasi T = memetakan titik P ke titik yang
dinotasikan dengan :
Persamaan matriksnya :
b. Rotasi Terhadap Titik Pusat O (0,0)
Jika titik P (x,y) diputar sebesar berlawanan arah jarum jam terhadap titik pusat
0(0,0), maka diperoleh bayangan .
Persamaan matriksnya :
13
c. Vektor
Vektor merepresentasikan dua hal sekaligus dalam ruangnya: panjang dan arah
[SUN08d]. Vektor dituliskan sebagai tupple n-dimensi V = ( ) dimana
tiap elemennya ) merupakan suatu besaran skalar (tanpa arah).
Vektor V = ) dapat dilihat sebagai segmen garis berarah (memiliki
panjang dan arah) pada ruang n-dimensi, yang dimulai titik (0, 0, ..., 0) dan
diakhiri titik ). Disini, titik tidak diartikan semata-mata titik pada
ruang dua dimensi atau tiga dimensi, melainkan titik pada ruang berdimensi n.
Secara umum, vektor V = ) dapat dilihat sebagai garis berarah pada
ruang n-dimensi, yang dimulai titik ) dan diakhiri titik ),
sedemikian rupa sehingga V = Q-P dan V = ) =
). Karena itu, vektor tidak memiliki posisi tertentu dalam
ruang, vektor dapat memiliki titik awal dimanapun dalam ruang.
Sebagai catatan, untuk membedakan besaran vektor dengan besaran skalar:
besaran vektor akan ditebalkan penulisan atau diberi panah di atasnya.
Panjang vektor merupakan panjang garis pada ruangnya (n dimensi) dan
perhitungannya dapat dilihat pada rumus berikut.
Panjang vektor merupakan jarak euclidean antara titik awal vektor dengan titik
akhir vektor.
14
Ada 2 jenis pengoperasian dalam vektor yang akan dibahas lebih lanjut pada bab
ini yaitu sebagai berikut.
1) Penjumlahan vektor
Penjumlahan vektor dilakukan dengan menjumlahkan tiap-tiap
elemennya ) [SUN08d]. Penjumlahan vektor V =
) dan vektor W = ( ) akan menghasilkan vektor
( ). Penjumlahan ini dapat dilihat pada gambar
berikut.
Gambar 2.2 Penjumlahan Vektor
Penjumlahan vektor memiliki sifat berikut ini :
(a). U+(V+W) = (U+V)+W ……………..[asosiatif]
(b). V+W = W+V …………………………..[komutatif]
2) Perkalian vektor
Pada perkalian vektor ini memiliki 3 jenis perkalian vektor yang akan
dibahas pada bab ini yaitu :
(a). Perkalian vektor dengan skalar
Perkalian vektor dengan skalar dilakukan dengan mengalikan tiap-tiap
elemennya (yang merupakan suatu besaran skalar) dengan nilai skalar
yang dimaksud[SUN08d]. Vektor hasil perkalian ini, dapat dilihat
15
sebagai hasil penskalaan dengan nilai skalar pengali sebagai faktor
penskalaan.
(b). Perkalian titik antara vektor
Perkalian titik (disebut perkalian dalam atau perkalian skalar karena hasil
perkaliannya berupa skalar) dilakukan dengan menjumlahkan hasil kali
tiap elemen vektor pertama dengan elemen vektor kedua yang
bersesuaian[SUN08d] dan dapat dilihat pada rumus berikut.
Ada sebuah rumus yang dipakai untuk menghubungkan perkalian titik
dengan sudut antara dua vektor (θ) yang dapat dilihat pada rumus berikut.
(c). Perkalian silang antara vektor
Perkalian silang (disebut perkalian luar atau perkalian vektor karena hasil
perkaliannya berupa vektor) dilakukan dengan menghitung secara
terpisah tiap-tiap elemen vektor hasil perkalian[SUN08d]. Untuk
mudahnya, perkalian silang antara vektor tiga dimensi dapat dilihat pada
rumus berikut.
16
Untuk vektor dua dimensi, elemen ketiga dari vektor V dan W dapat
dianggap bernilai nol. Sehingga rumus di atas berubah menjadi rumus
berikut.
dengan besar hasil kali silang pada rumus berikut.
Ada sebuah rumus yang dipakai untuk menghubungkan perkalian silang
dengan sudut antara dua vektor (θ). Rumus ini dapat dilihat pada rumus
berikut.
2.3 Pengertian JPEG (Joint Photographic Expert Group)
Format file ini mampu mengkompres objek dengan tingkat kualitas sesuai dengan
pilihan yang disediakan. Format file sering dimanfaatkan untuk menyimpan gambar
yang akan digunakan untuk keperluan halaman web, multimedia, dan publikasi
elektronik lainnya. Format file ini mampu menyimpan gambar dengan mode warna
RGB (Red Green Blue), CMYK (Cyan Magenta Yellow Black), dan Grayscale.
17
2.4 Pengertian PNG (Portable Network Graphic)
PNG atau Portable Network Graphics adalah salah satu format penyimpanan citra
yang menggunakan metode pemadatan yang tidak menghilangkan bagian dari citra
tersebut. Secara umum PNG dipakai untuk Citra Web. Citra dengan format PNG
mempunyai faktor kompresi yang lebih baik dibandingkan dengan GIF (5% - 25%
lebih baik dibanding format GIF).
File PNG bisa bekerja baik pada gambar dengan pemisahan warna jelas maupun
bergradasi. File PNG terbagi atas PNG-8 dan PNG-24. Untuk PNG-8 dapat
mengkompresi gambar dengan ukuran file lebih kecil besar daripada GIF.
Sementara PNG-24 menyimpan file dengan ukuran yang lebih PNG-24 biasa
digunakan untuk gambar foto ataupun bergradasi, karena gambar yang dihasilkan
akan lebih tajam. Kelebihan lainnya, PNG mendukung gambar transparansi.
Untuk Web, format PNG mempunyai 3 keuntungan dibandingkan format GIF:
a. Channel Alpha (transparansi)
b. Gamma (pengaturan terang-gelapnya citra en:”brightness”)
c. Penayangan citra secara progresif (progressive display)
Untuk keperluan pengolahan citra, meskipun format PNG bisa dijadikan alternatif
selama proses pengolahan citra namun format JPEG masih menjadi pilihan yang
lebih baik.
18
2.5 Pengertian GIF (Graphic Interchange Format)
Jenis file gambar ini sering kita jumpai dan sering kita pakai, salah satu ciri khas tipe
gambar berekstensi GIF adalah bisa memainkan animasi gambar sederhana.
Beberapa karakteristik lain format gambar GIF adalah mampu menayangkan
maksimum sebanyak 256 warna karena format GIF menggunakan 8-bit untuk setiap
pixel-nya. Selain itu GIF juga mampu mengkompresi gambar dengan sifat lossless
dan mendukung warna transparan. File GIF digunakan untuk mengkompresi file asli
sampai dengan 256 warna. Karena sangat tidak mungkin menggunakan file asli
untuk ditampilkan ke web mengingat ukuran file asli luar biasa besarnya.
File GIF bisa menghasilkan baik gambar statis maupun dinamis (animasi). Sangat
cocok untuk gambar dengan pemisahaan warna yang jelas (tidak bergradasi) seperti
logo dan teks.
2.6 Warna RGB (Red Green Blue)
RGB adalah salah satu representasi warna pada monitor. Karena pada dasarnya
tabung katoda pada monitor menggunakan representasi warna dasar cahaya (Red),
Hijau (Green) dan Biru (Blue) atau biasa dikenal dengan RGB screen. RGB dikenal
juga dengan sistem pewarnaan additif, yaitu warna dihasilkan dengan
menggabungkan intensitas warna dasar. Sebagai contoh yang ekstrim: warna hitam
pada monitor dihasilkan oleh pencampuran intensitas minimum semua warna dan
warna putih adalah pencampuran maksimum intensitas seluruh warna dasar RGB.
19
2.7 Warna CMYK (Cyan Magenta Yellow Black)
Warna-warna pada CMYK pada dasarnya adalah warna substraksi kebalikan dari
sistem warna RGB.
[C, M, Y] = 1 - [R, G, B]
Sebagai contoh ekstrim: warna hitam yang akan ditampilkan ke dalam kertas dengan
printer adalah campuran maksimum dari cyan, magenta dan yellow, sedangkan
warna putih pada kertas adalah pengurangan ke tiga campuran warna tersebut, atau
dengan tidak mencetaknya sama sekali (pada kertas berwarna putih).
2.8 Java Netbeans
2.8.1 Sejarah Java
Bahasa pemrograman Java pertama lahir dari The Green Project, yang berjalan
selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut
belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick
Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram
lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang
dibuat oleh Joe Palrang.
Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di
Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan
sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah
peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang
ini. Teknologi baru ini dinamai "*7" (Star Seven).
Setelah era Star Seven selesai, sebuah anak perusahaan Tv kabel tertarik
ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan
20
kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto.
Perusahaan baru ini bertambah maju jumlah karyawan meningkat dalam waktu
singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian
internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada
awal tahun 1990-an, internet masih merupakan rintisan, yang dipakai hanya di
kalangan akademisi dan militer.
Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk
membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film
1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti
nama menjadi Hot Java.
Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2
dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada
surat kabar San Jose Mercury News pada tanggal 23 Mei 1995.
Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah
ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan
George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk
Netscape.
Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja
"bapak java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java
karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut,
sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi
murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling. Konon kopi
ini berasal dari Pulau Jawa. Jadi nama bahasa pemrograman Java tidak lain berasal
dari kata Jawa.
21
2.8.2 Sejarah Netbeans
Pengembangan NetBeans diawali dari Xelfi, sebuah proyek mahasiswa tahun
1997 di bawah bimbingan Fakultas Matematika dan Fisika Universitas Charles,
Praha. Sebuah perusahaan kemudian dibentuk untuk proyek tersebut dan
menghasilkan versi komersial NetBeans IDE hingga kemudian dibeli oleh Sun
Microsystem pada tahun 1999. Sun kemudian menjadikan NetBeans open source
pada bulan Juni tahun 2000. Sejak itu komunitas NetBeans terus berkembang.
NetBeans mengacu pada dua hal, yakni platform untuk pengembangan aplikasi
desktop java, dan sebuah Integrated Development Environment (IDE) yang dibangun
menggunakan platform NetBeans.
Platform NetBeans memungkinkan aplikasi dibangun dari sekumpulan
komponen perangkat lunak moduler yang disebut ‘modul’. Sebuah modul adalah
suatu arsip Java (Java archive) yang memuat kelas-kelas Java untuk berinetraksi
dengan NetBeans Open API dan file manifestasi yang mengidentifikasinya sebagai
modul. Aplikasi yang dibangun dengan modul-modul dapat dikembangkan dengan
menambahkan modul-modul baru. Karena modul dapat dikembangkan secara
independen, aplikasi berbasis platform NetBeans dapat dengan mudah
dikembangkan oleh pihak ketiga secara mudah dan powerful.
Netbeans merupakan project yang membangun aplikasi IDE open-source dan
platform aplikasi yang membantu developer untuk membangun web, enterprise,
desktop, dan aplikasi mobile menggunakan platform Java, PHP, JavaScript dan
Ajax, Ruby and Ruby on Rails, Groovy, dan C/C++.
Keuntungan pemakaian NetBeans adalah gratis, dapat dipakai untuk membangun
aplikasi standar Java (SE, termasuk aplikasi database), aplikasi web, aplikasi
22
enterprise dan aplikasi mobile (ME), memiliki compilter, builder internal, debugger
internal, version control system, database explorer, server manager, dan berbagai
fitur lain serta berbagai macam monitor untuk sesi debugging dan HTTP monitor,
dapat mengakses berbagai server database (melalui koneksi JDBC/EJB) serta server
web Java (Apache Tomcat, Sun Java System Application Server, JBoss, BEA
Weblogic, serta dapat dikonfigurasi untuk server lain). Koneksi dapat dilakukan baik
saat desain maupun saat debugging dan running serta berbagai kelebihan lainnya.
Netbeans punya fasilitas codecompletion (full wizard) artinya sedikit mengetik
banyak program yang kita hasilkan (cukup dengan drag n drop). Netbeans sangat
cocok untuk fast development dan bagus untuk edukasi.
2.9 Teori Perancangan Software
Perancangan program aplikasi merupakan salah satu yang berperan penting
dalam pembuatan aplikasi optimasi ini. Software merupakan beberapa perintah yang
dieksekusi oleh mesin komputer dalam menjalankan pekerjaannya. Software berbeda
dengan hardware, software atau peranti lunak tidak dapat disentuh secara fisik dan
tidak berwujud benda tetapi dapat dioperasikan. Dapat dikatakan software komputer
adalah sekumpulan data elektronik yang disimpan dan diatur oleh komputer, data
elektronik yang disimpan oleh komputer itu dapat berupa program atau instruksi
yang akan menjalankan suatu perintah. Melalui software atau peranti lunak inilah
suatu computer dapat menjalankan perintah.
Rekayasa peranti lunak mencakup 3 elemen yang mampu mengontrol proses
pengembangan piranti lunak.
23
a. Metode-metode (methods)
Menyediakan cara-cara teknis untuk membangun piranti lunak. Metode ini
meliputi:
1) Perencanaan & estimasi proyek
2) Analisis kebutuhan sistem dan software
3) Desain struktur data
4) Arsitektur program dan prosedur algoritma
5) Coding, Testing dan pemeliharaan
b. Alat-alat bantu (tools)
Mengadakan dukungan otomatis atau semi otomatis untuk metode-metode
seperti CASE (Computer Aided Software Engineering) yang
mengkobinasikan software, hardware dan software engineering database.
c. Prosedur-Prosedur (Procedures)
Pengembangan metode dan alat bantu terdiri dari :
1) Urutan-urutan di mana metode tersebut diterapkan
2) Dokumen, laporan-laporan, formulir-formulir yang diperlukan
3) Mengontrol kualitas software
4) Mengkoordinasi perubahan yang terjadi pada software
Dalam perancangan software ini, digunakan metode siklus hidup pengembangan
sistem. Metode siklus hidup pengembangan sistem atau sering disebut dengan Software
Development Life Cycle (SDLC) merupakan suatu tahapan-tahapan metode untuk
merancang sebuah program aplikasi perangkat lunak. Ada beberapa model pada
Software Development Life Cycle (SDLC), dalam pembuatan aplikasi ini SDLC yang
digunakan adalah model Waterfall.
24
Nama model Waterfall sebenarnya adalah “Linear Sequential Model”. Model ini
sering disebut dengan “classic life cycle”. Model ini adalah model yang muncul pertama
kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model
yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan
pendekatan secara sistematis. Perancangan aplikasi perangkat lunak dengan metode
waterfall dilakukan dengan 6 tahap. Tahapan-tahapan itu terdiri dari system engineering
(perencanaan), analysis, design atau modeling, coding (pengkodean program), testing
(pengujian) dan Maintence (pemeliharaan). Berikut ini penjelasan dari setiap tahapan
dari waterfall tersebut.
Gambar 2.3 Gambar Alur Sistem Perancangan Waterfall Sumber : http://hansiaditya.wordpress.com/2007/09/25/waterfall-process-model/.
a. System Engineering
Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai
dengan cara menerapkan kebutuhan semua elemen sistem dan mengalokasikan
25
sebagian kebutuhan tersebut ke software. Pandangan terhadap sistem adalah penting,
terutama pada saat software harus berhubungan dengan elemen lain, seperti :
1) Hardware
2) Software
3) Database
b. Analisis kebutuhan software
Suatu proses pengumpulan kebutuhan software untuk mengerti sifat - sifat
program yang dibentuk software engineering, atau analis harus mengerti fungsi
software yang diinginkan, performance dan interface terhadap elemen lainnya. Hasil
dari analisis ini didokumentasikan dan direview / dibahas / ditinjau bersama - sama
customer.
c. Design
Desain software sesungguhnya adalah proses multi step (proses yang terdiri dari
banyak langkah) yang memfokuskan pada 3 atribut program yang berbeda, yaitu :
1) Struktur data
2) Arsitektur software
3) Rincian prosedur
Proses desain menterjemahkan kebutuhan ke dalam representasi software yang
dapat diukur kualitasnya sebelum mulai coding. Hasil dari desain ini
didokumentasikan dan menjadi bagian dari konfigurasi software.
d. Coding
Desain harus diterjemahkan ke dalam bentuk yang dapat dibaca oleh mesin.
e. Testing
26
Segera sesudah objek program dihasilkan, pengetesan program dimulai. Proses
testing difokuskan pada logika internal software. Jaminan bahwa semua
pernyataan atau statements sudah dites dan lingkungan eksternal menjamin
bahwa definisi input akan menghasilkan output yang diinginkan. Metode testing
ada dua yaitu:
1) White box method
Pada white box method, uji dilakukan terhadap strukutur dan prosedur program
seperti flowchart (urutan). Metode ini disebut juga metode low level.
2) Black box method
Pada black box method, uji dilakukan terhadap kesesuaian antara input dan
output. Metode ini disebut juga metode high level.
f. Maintenance
Software yang sudah dikirim ke customer data berubah karena:
1) Software mengalami error.
2) Software harus diadaptasi untuk menyesuaikan dengan lingkungan external,
misalnya adanya sistem operasi baru atau peripheral baru.
3) Software yang lebih disempurnakan karena adanya permintaan dari customer.
Model Waterfall memiliki kekurangan dan kelebihannya dibanding dengan model yang
lain. Kelebihan dari model waterfall adalah sebagai berikut.
a. Merupakan model pengembangan paling handal dan paling lama digunakan.
b. Cocok untuk sistem software berskala besar.
c. Cocok untuk sistem software yang bersifat generik.
d. Pekerjaan project system akan terjadwal dengan baik dan mudah dikontrol.
27
sedangkan kekurangannya adalah sebagai berikut.
a. Persyaratan system harus digambarkan dengan jelas.
b. Rincian proses harus benar-benar jelas dan tidak boleh berubah-ubah.
Sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan
pengembangan.
2. 10 Teori Interaksi Manusia dan Komputer
Suatu software dibuat sedemikian rupa sehingga manusia yang memakainya
(user) merasa nyaman. Hal-hal yang perlu diperhatikan adalah letak dan kalimat,
kombinasi warna, juga menu-menu pada software tersebut. Tampilan gambar - gambar
yang berhubungan dapat menjadi nilai tambah bagi suatu program aplikasi.
Software yang baik tentunya harus user friendly, yang dimaksud dengan user
friendly berdasarkan shneiderman (Designing the User Interface, 1998, halaman 15)
adalah:
a. Waktu belajar tidak lama
b. Kepuasan pribadi
c. Penghafalan sesudah melampaui jangka waktu
d. Kecepatan penyajian informasi tepat
e. Tingkat kesalahan user rendah
Juga menurut Shneiderman (Designing the User Interface, 1998, halaman 74-75)
terdapat 8 hal penting yang harus diperhatikan dalam merancangan software dilihat dari
segi user:
28
a. Konsistensi
b. User dapat menggunakan shortcut
c. Dapat memberi umpan balik yang membantu
d. Merancangan dialog yang memberikan penutup
e. Mempunyai pencegahan kesalahan
f. Memungkinkan undo dan redo
g. Berusaha supaya user memegang kendali
h. Mengurangi beban ingatan jangka pendek
Pada bab 2 ini telah dibahas mengenai berbagai metode dan teori yang akan
digunakan sebagai dasar untuk membuat aplikasi optimasi pola penempatan barang.
Metode dan teori tersebut dijelaskan sesuai dengan batasan dalam pembuatan aplikasi
ini.