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
&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 titiktitik 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
vektorV =
)
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
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.
|