bab 2 ga - library.binus.ac.idlibrary.binus.ac.id/ecolls/ethesisdoc/bab2/2011-2-00638- mtif bab...

23
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:

Upload: dophuc

Post on 19-Jul-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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:

Page 2: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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

Page 3: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 4: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 5: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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:

Page 6: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 7: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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 :

 

Page 8: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 9: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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

Page 10: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 11: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 12: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 13: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 14: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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

Page 15: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 16: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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

Page 17: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 18: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 19: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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

Page 20: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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

Page 21: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.

Page 22: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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:

Page 23: BAB 2 GA - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00638- MTIF Bab 2.pdfa. Definisi fungsi fitness b. ... bukan turunan dari suatu fungsi. d. Algoritma

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.