BAB 2 TINJAUAN PUSTAKA
2.1
Artificial Intelligence Artificial Intelligence tidak dapat didefenisikan secara jelas dan universal. Namun menurut Russel dan Norvig (2010, p. 1-2) terdapat 8 definisi dari artificial Intelligence yang dapat dikategorikan berdasarkan 4 pendekatan, yaitu; 1. Thinking Humanly AI adalah sebuah mesin yang dapat berpikir layaknya seorang manusia yang dapat membuat keputusan, memecahkan permasalahan dan dapat belajar dari pengalaman. 2. Thinking Rationally AI adalah sebuah studi yang mempelajari bagaimana membuat komputer dapat mempersepsikan sesuatu dan bertindak sesuai nalar. 3. Acting Humanly AI adalah sebuah studi untuk merancang sebuah mesin yang dapat melakukan atau menyelesaikan fungsi-fungsi yang membutuhkan kemampuan intelijen jika dilakukan oleh manusia. 4. Acting Rationally AI adalah sebuah studi yang fokus pada perancangan agen yang memiliki kecerdasan.
2.2
Computer Vision Shapiro & Stockman (2001, p. 1) mendefinisikan computer vision sebagai konstruksi dari deskripsi objek dan scene pada sebuah gambar, sedangkan fungsi dari computer vision adalah membantu pengambilan keputusan berdasarkan deskripsi objek dan scene tersebut.
2.3
OCR (Optical Character Recognition) Menurut Charles, Harish, Swathi & Deepthi (2012: p. 659), Optical Character Recognition adalah sebuah sistem yang dapat mengenali karakter yang ditulis dengan tangan atau karakter yang dicetak dengan cepat dengan melakukan scanning pada dokumen. 9
10 2.4
RGB (Red, Green, Blue) Shapiro & Stockman (2001, p. 191-193) menjelaskan bahwa RGB(Red,
Green,
Blue)
adalah
sebuah
sistem
basis
pewarnaan
menggunakan tiga warna dasar yaitu merah(red), hijau(green) dan biru(blue). Setiap warna dasar tersebut pada umumnya di-encode kedalam satu byte (
data sehingga sistem RGB dapat membentuk
warna
berbeda. Warna-warna dibentuk dengan menggabungkan intensitas dari ketiga warna dasar tersebut.
2.5
Karakter Alfanumerik Merriam-Webster Inc (2004, p. 35) mendefinisikan alfanumerik sebagai kumpulan dari huruf dan angka.
2.6
Digital Image Shapiro & Stockman (2001, p. 29) mendefinisikan digital image sebagai sebuah 2D image yang direpresentasikan oleh sebuah array diskrit dua dimensi dengan fungsi I[r, c]. Array tersebut mewakili ruang dan intensitas piksel pada digital image. Pada umumnya, data intensitas piksel disimpan dalam bentuk angka 8-bit yang dapat menyimpan nilai intensitas 0 sampai 255. Data ruang dari digital image adalah fungsi spasial dari array dua dimensi tersebut.
2.6.1
Grayscale Image Menurut Shapiro & Stockman (2001, p. 30), grayscale image adalah sebuah monochrome digital image yang hanya memiliki satu nilai intensitas per piksel.
2.6.2
Binary Image Menurut Shapiro & Stockman (2001, p. 30), binary image adala sebuah digital image yang hanya memiliki nilai intensitas piksel 0 dan 1.
11
2.7
Image Processing Menurut Russel & Norvig (2010, p. 965), image processing adalah segala bentuk proses yang dilakukan untuk mengesktrak informasi visual pada image yang dibutuhkan untuk operasi manipulasi, navigasi dan pengenalan.
2.7.1 Binary Image Morphology Menurut Shapiro & Stockman (2001, p. 63-68), binary image morphology adalah operasi pemrosesan binary image menggunakan structuring element. Structuring element adalah sebuah binary image yang digunakan sebagai basis pada binary image morphology. Terdapat beberapa bentuk structuring element, akan tetapi yang paling umum adalah persegi dan bundar.
Gambar 2.1 Berbagai bentuk structuring element. (Sumber: Shapiro & Stockman, 2001, p. 64)
Terdapat
beberapa
operasi
dasar
pada
binary
image
morphology, yaitu dilation, erosion, closing dan opening. Operasi dilation dilakukan untuk memperbesar area pada binary image, sedangkan operasi erosion dilakukan untuk mengecilkan atau mengikis area pada binary image. Operasi dilation pada sebuah
12 binary image B menggunakan structuring element S dapat dirumuskan sebagai berikut:
Operasi erosion pada sebuah binary image B menggunakan structuring element S dapat dirumuskan sebagai berikut:
Operasi closing dilakukan untuk menutup area kosong didalam area tertutup pada binary image, sedangkan operasi opening dilakukan untuk mengeliminasi area-area kecil pada binary image. Operasi closing dapat dirumuskan sebagai berikut:
Operasi opening dapat dirumuskan sebagai berikut:
Berikut adalah contoh hasil dari operasi-operasi dasar binary image morphology:
13
Gambar 2.2 Operasi-operasi dasar pada binary image morphology. (Sumber: Shapiro & Stockman, 2001, p. 67)
2.7.2 Thresholding Shapiro
&
Stockman
(2001,
p.
83-85)
menyatakan
thresholding adalah operasi yang mengubah sebuah grayscale image menjadi binary image. Tujuan dari operasi thresholding adalah untuk memisahkan objects of interest atau foreground pixel dengan background pixel pada grayscale image. Operasi thresholding secara umum dilakukan dengan memilih sebuah threshold value t. Kemudian setiap piksel yang memiliki intensitas lebih besar atau sama dengan t diklasifikasikan sebagai foreground pixel, sedangkan piksel yang memiliki intensitas dibawah t diklasifikasikan sebagai background pixel. Operasi thresholding tersebut dinamakan operasi threshold above. Terdapat beberapa varian operasi thresholding, antara lain threshold below, threshold inside, thresholding outside.
14 2.7.2.1 Otsu Method Shapiro & Stockman (2001, p. 85-89) menjelaskan otsu method sebagai suatu metode untuk menemukan threshold value secara otomatis. Pada otsu method, threshold value dipilih berdasarkan minimalisasi variasi antar
grup
piksel
yang
dipisahkan
oleh
operator
thresholding. Rumus yang digunakan pada metode ini adalah sebagai berikut:
dimana,
adalah probabilitas grup piksel yang memiliki nilai intensitas dibawah t, sedangkan
adalah probabilitas grup
15 piksel yang memiliki nilai intensitas diatas t.
adalah
variasi pada grup piksel yang memiliki nilai intensitas dibawah t, sedangkan
adalah variasi pada grup piksel
yang memiliki nilai intensitas diatas t.
adalah rata-rata
dari grup piksel yang memiliki nilai intensitas dibawah t, sedangkan
adalah rata-rata dari grup piksel yang
memiliki nilai intenstas diatas t. P adalah probabilitas dari intensitas i yang didapat dari nilai i pada histogram dibagi dengan dimensi image. Pada metode ini, threshold value dapat ditemukan dengan melakukan sequential search pada t. Nilai t yang dapat meminimalisir fungsi
digunakan
sebagai threshold value.
2.7.3 Projections Menurut Jain, Kasturi & Schunk (1995, p. 35-36), projections adalah projeksi sebuah binary image kedalam garis-garis horizontal maupun vertikal dengan panjang sesuai jumlah piksel yang bernilai 1 yang berada tegak lurus dengan garis-garis tersebut. Projection horizontal H[i] pada baris dan projection vertikal V[j] pada kolom sebuah binary image diuraikan sebagai berikut:
H[i] = V[j] =
16
Gambar 2.3 Projection pada sebuah image. (Sumber: Jain, Kasturi & Schunk, 1995, p. 36)
2.7.4 Top-hat Transformation Menurut Gonzalez & Woods (2008, p. 694-695), top-hat transformation adalah operasi yang dilakukan untuk mengeliminasi objek yang tidak lebih besar dari structuring element pada sebuah gambar.
Top-hat
transformation
dilakukan
dengan
operasi
pengurangan sebuah grayscale image dengan opening dari grayscale image tersebut. Rumus top-hat transformation adalah sebagai berikut:
dengan f adalah grayscale image dan b adalah structuring element.
2.7.5 Konversi Grayscale Menurut Russ (2011, p. 51), konversi gambar berwarna ke gambar grayscale dapat dilakukan dengan menggunakan salah satu dari channel R, G, B, H, S, I a, b, atau dengan menggunakan filter warna.
2.7.6 Scaling
17 Menurut Kekre, Sarode & Thepade (2008, p. 95), scaling adalah proses resample sebuah image dengan fungsi dua dimensi ke dalam ukuran yang berbeda. Metode scaling yang sering digunakan adalah bilinear, nearest-neighbour dan bicubic interpolation.
2.7.7 Connected Components Labeling Menurut Shapiro & Stockman (2001, p. 56-63), connected component labelling adalah operasi yang dilakukan untuk memberi label pada setiap piksel didalam binary image yang saling terhubung satu sama lain. Area yang saling terkoneksi satu sama lain merepresentasikan sebuah objek pada binary image. Terdapat beberapa algoritma yang dapat digunakan pada operasi connected components labeling, antara lain adalah recursive labeling algorithm dan row-by-row labeling algorithm. Berikut adalah contoh sebuah binary image dan hasil dari proses connected componens labelling:
Gambar 2.4 (a) Sebuah binary image. (b) Hasil dari proses connected components labelling. (Sumber: Shapiro & Stockman, 2001, p. 57)
2.8
Noise Menurut Jain, Kasturi, Schunk (1995, p. 118-119), noise adalah variasi intensitas piksel yang muncul secara acak. Terdapat beberapa jenis noise, antara lain adalah salt and pepper noise, impulse noise dan gaussian noise. Salt and pepper noise berupa variasi piksel hitam dan putih yang muncul secara acak. Impulse noise berupa variasi piksel putih yang muncul
18 secara acak. Sedangkan gaussian noise adalah variasi intensitas piksel yang muncul dengan distribusi normal.
Gambar 2.5 (a) & (b) adalah gambar original. (c) contoh salt and pepper noise. (d) contoh impulse noise. (e) contoh gaussian noise. (Sumber: Jain, Kasturi & Schunk, 1995, p. 119)
2.9
Image Segmentation Menurut Shapiro & Stockman (2001, p. 56-63), image segmentation adalah operasi partisi sebuah image kedalam beberapa bagian yang merepresentasikan suatu objek atau bagian dari objek. Tujuan dari operasi image segmentation adalah untuk mendekomposisi image kedalam beberapa bagian untuk dianalisis lebih lanjut dan untuk melakukan change of representation sehingga bagian yang tersegmentasi memilki fungsi yang lebih spesifik dan lebih efisien untuk dianalisis lebih lanjut.
2.10
Feature Extraction Menurut Shin & Riaz (2014, p. 108-109), feature extraction adalah proses mendefinisikan sekumpulan fitur atau karakteristik image yang merepresentasikan informasi yang paling penting untuk proses analisis dan klasifikasi. Umumnya preprocessing dilakukan terlebih dahulu, seperti proses filtering, normalisasi, histogram equalization dan tone mapping untuk
19 menyesuaikan kontras lokal dan keseluruhan agar pengenalan dapat berjalan dengan baik. Fitur pada image dapat diklasifikasikan sebagai berikut: 1.
General Features General features adalah fitur-fitur independen seperti warna, tekstur dan bentuk. Berdasarkan abstraction level, General features dapat dibagi kedalam beberapa bagian berdasarkan abstraction level sebagai berikut: a. Pixel-level Features Fitur didapatkan dari kalkulasi pada level piksel, seperti intensitas, warna dan lokasi. b. Local Features Fitur didapatkan dari kalkulasi yang didapatkan pada bagian dari image lewat proses segmentasi, edge detection, gradient dan Local Binary Patterns. c. Global Features Fitur didapatkan dari kalkulasi dari image secara keseluruhan atau hanya sebagian dari image.
2.
Domain Specific Features Domain specific features adalah fitur-fitur yang bergantung pada domain penggunaan aplikasinya sepertinya wajah manusia, fingerprints dan fitur konseptual.
2.11
Artificial Neural Networks Fausett (1994, p. 3-19) mendefinisikan neural networks sebagai sebuah sistem pemrosesan informasi yang bekerja seperti neural networks biologis. Neural networks dikembangkan sebagai generalisasi dari model matematika pada sistem kognisi manusia dan saraf biologis dengan asumsi sebagai berikut: 1. Pemrosesan informasi terjadi pada neuron. 2. Sinyal pada neuron diteruskan lewat connection link. 3. Setiap connection link memiliki weight yang pada umumnya akan menjadi faktor pengalian pada sinyal yang ditransmisikan.
20 4. Setiap neuron memiliki fungsi aktivasi yang akan menentukan sinyal output pada neuron tersebut. Artificial neural networks memiliki karakter khusus yang dapat dibedakan melalui: 1. Pola(arsitektur) dari connection link antar neuron. Ada beberapa pola umum yang sering digunakan antara lain: a. Single-Layer Net Sebuah single-layer net hanya memiliki satu lapisan connection link. Karena hanya memiliki satu lapisan connection link, maka neuron-neuron yang dihubungkan oleh connection link adalah input neuron dan output neuron. Setiap input neuron terhubung dengan output neurons tetapi tidak terhubung pada input neuron lainnya dan output neuron tidak terhubung dengan input neuron.
Gambar 2.6 Ilustrasi Single-Layer Net. (Sumber: Fausett, 1994, p. 13)
b. Multilayer Net Multilayer net adalah artificial neural networks yang memiliki satu atau lebih lapisan hidden neuron diantara input neuron dan output neuron. Multilayer net dapat menyelesaikan
permasalahan
yang
lebih
kompleks
21 dibandingkan dengan single-layer net akan tetapi proses training pada multilayer net lebih rumit.
Gambar 2.7 Ilustrasi Multilayer Net. (Sumber: Fausett, 1994, p. 13)
c. Competitive Net Competitive net terdiri dari beberapa neural networks yang saling terhubung satu sama lain. Berbeda dengan 2 pola neural networks sebelumnya, pada competitive net setiap neuron dapat terhubung dengan dirinya sendiri dan neuron yang lain tanpa ada aturan khusus.
Gambar 2.8 Ilustrasi Competitive Net.
22 (Sumber: Fausett, 1994, p. 14)
2. Metode dalam menentukan weight pada connection link. Terdapat dua klasifikasi metode penentuan weight pada connection link antara lain: a. Supervised Training Pada supervised training, terdapat sekumpulan input berupa training vectors atau pattern beserta dengan output yang diinginkan. Setiap input akan diteruskan kepada neural networks lalu selisih antara output aktual dan output yang diinginkan dihitung sebagai nilai error. Nilai error kemudian digunakan untuk mengoreksi weight pada connection link. b. Unsupervised Training Unsupervised training memiliki mekanisme yang hampir sama dengan supervised training. Pada unsupervised training, data yang digunakan hanya kumpulan dari input vectors tanpa output yang diinginkan. Weight pada connection link akan dikoreksi sehingga kumpulan dari input vectors yang memiliki kesamaan akan memiliki output yang sama. c. Fixed-weight Nets Pada fixed-weight nets, weight ditetapkan sedemikian rupa sehingga dapat bekerja pada suatu permasalahan yang spesifik. 3. Fungsi aktivasi pada neuron. Salah satu fungsi dasar pada sebuah neuron adalah fungsi aktivasi. Terdapat beberapa fungsi aktivasi yang sering digunakan, antara lain: a. Fungsi Identitas Fungsi identitas terdapat pada input neuron, dimana sinyal input langsung diteruskan tanpa ada kalkulasi yang terjadi pada neuron. Fungsi identitas dapat dirumuskan sebagai berikut:
23
b. Fungsi Binary Step Fungsi binary step biasanya digunakan pada singlelayer net. Pada fungsi binary step, sinyal input dikonversi kedalam bilangan binary 0 atau 1 jika sinyal input tersebut melewati nilai batas tertentu. Fungsi binary step dapat dirumuskan sebagai berikut:
dimana
adalah sebuah nilai batas.
c. Fungsi Sigmoid Fungsi sigmoid adalah fungsi aktivasi yang paling sering digunakan. Fungsi ini dapat didiferensiasikan sehingga dapat digunakan pada multilayer net dan artificial neural
networks
yang
dilatih
menggunakan
metode
backpropagation. Terdapat dua jenis fungsi sigmoid yang dibedakan oleh rentang nilai outputnya, yaitu: 1. Binary Sigmoid Fungsi
binary
sigmoid
dirumuskan
sebagai berikut:
Untuk sebuah input vector x, fungsi tersebut akan memiliki output yang berada pada rentang 0 sampai 1. Variabel
adalah variabel
24 yang mempengaruhi kecuraman dari hyperplane pada fungsi tersebut.
Gambar 2.9 Binary Sigmoid. Ilustrasi
= 1 dan
= 3.
(Sumber: Fausett, 1994, p. 18)
2. Bipolar Sigmoid Fungsi bipolar sigmoid memiliki rentang output dari -1 sampai dengan 1. Fungsi bipolar sigmoid dapat dirumuskan sebagai berikut:
dengan x adalah input vector dan
adalah
variabel yang mempengaruhi kecuraman dari hyperplane pada fungsi tersebut.
Gambar 2.10 Bipolar Sigmoid. (Sumber: Fausett, 1994, p. 19)
25
2.12
Backpropagation Menurut Fausett (1994, p. 289-296), backpropagation adalah metode pelatihan pada multilayer neural networks. Backpropagation meminimalisir total squared error pada neural networks dengan cara menyesuaikan weight pada sinapsis. Backpropagation dapat dilakukan dengan 3 tahap yaitu: 1.
Proses feedforward data input.
2.
Kalkulasi error pada output dan kalkulasi backpropagation.
3.
Penyesuaian weight.
Algoritma dari ketiga tahap tersebut adalah sebagai berikut: 1.
Inisialisasi weight awal (menggunakan angka acak atau inisialisasi nguyen-widrow).
2.
Jika kondisi stop belum tercapai, ulangi langkah 3 sampai 10.
3.
Untuk setiap data pelatihan, lakukan langkah 4 sampai 9.
Fase feedforward: 4.
Setiap input unit (
) menerima sinyal masukan dan
meneruskan sinyal tersebut ke semua hidden unit. 5.
Setiap hidden unit (
) menjumlahkan semua sinyal
yang masuk ke dalam unit tersebut.
Hitung sinyal output menggunakan fungsi aktivasi.
Setiap hidden unit meneruskan sinyal output ke semua output unit. 6.
Setiap output unit (
) menjumlahkan semua
sinyal yang masuk ke dalam unit tersebut.
Hitung sinyal output menggunakan fungsi aktivasi.
26
Fase backpropagation: 7.
Hitung error pada setiap output unit (
).
Hitung nilai faktor penyesuaian weight.
8.
Hitung error pada setiap hidden unit (
).
Hitung nilai faktor penyesuaian weight.
Penyesuaian weight dan bias: 9.
Setiap output unit (
) memperbarui weight dan
bias yang terkoneksi dengan unit tersebut.
Setiap hidden unit (
) memperbarui weight dan
bias yang terkoneksi dengan unit tersebut.
10. Uji kondisi stop. Fungsi aktivasi pada algoritma diatas dapat disesuaikan dengan kebutuhan.
2.12.1
Momentum Menurut Fausett (1994, p. 305-306), gradient descent pada backpropagation dapat terganggu oleh data yang
27 berbeda jauh dengan data-data sebelumnya yang digunakan pada
proses
backpropagation.
Hal
tersebut
dapat
diminimalisir dengan menggunakan learning rate yang rendah, akan tetapi proses training menjadi jauh lebih lama. Backpropagation
dengan
momentum
menggunakan
kombinasi koreksi gradient pada proses pelatihan aktual dan
proses pelatihan
sebelumnya,
sehingga
dengan
menggunakan momentum, konvergensi dapat dicapai dengan cepat walaupun menggunakan data pelatihan yang bervariasi. Proses
pelatihan
backpropagation
menggunakan
momentum dapat dimodelkan sebagai berikut:
Maka, gradient pada backpropagation menggunakan momentum adalah sebagai berikut:
dimana π adalah konstanta momentum rate pada rentangan [0, 1].
2.12.2
Nguyen-widrow Initialization Nguyen-widrow initialization adalah salah satu metode dalam penentuan weight awal. Menurut Fausett (1994, p. 297-298), nguyen-widrow initialization dapat mempercepat proses training pada backpropagation neural networks. Nguyen-widrow initialization mengoptimalkan weight pada input layer dan hidden layer, sehingga kemampuan hidden neuron bertambah baik. Proses
penentuan
weight
dirumuskan sebagai berikut:
awal
nguyen-widrow
28
dimana
adalah scale factor, n adalah jumlah input
neuron dan p adalah jumlah hidden neuron.
2.13
Genetic Algorithm Menurut Eiben & Smith (2003, p. 1-7, p. 15-24, p. 37-66), genetic algorithm adalah implementasi teori evolusi darwin pada permasalahan optimasi. Proses optimasi pada genetic algorithm terjadi melalui proses recombination dan mutation pada sebuah sebuah populasi yang terdiri dari kandidat-kandidat solusi suatu permasalahan. Genetic algorithm memiliki beberapa komponen dasar, yaitu: 1.
Representation Representation adalah representasi dari sebuah solusi pada suatu permasalahan. Sebuah representation didalam genetic algorithm disebut dengan sebuah individu. Individu dibangun oleh satu atau beberapa phenotype. Phenotype adalah solusi didalam konteks sebuah permasalahan. Phenotype dapat berupa sebuah string, integer atau bentuk
lainnya
yang
merupakan
kandidat solusi pada
suatu
permasalahan. Agar dapat digunakan pada genetic algorithm, phenotype harus terlebih dahulu diubah kedalam bentuk genotype atau chromosome sehingga operasi recombination dan mutation dapat dilakukan. Genotype didalam ruang lingkup genetic algorithm adalah representasi dari phenotype yang dapat diolah oleh genetic algorithm. Terdapat beberapa jenis genotype, antara lain: a.
Binary Representations Binary representations adalah representasi dari individu yang paling sederhana. Genotype pada binary representations berupa sebuah kumpulan digit biner yang disebut bit-string.
29 b.
Integer Representations Integer representation adalah representasi dari individu yang berupa kumpulan dari digit integer. Setiap digit integer mewakili suatu sifat atau parameter dari suatu objek.
c.
Real-Valued Representation Real-valued representation adalah representasi dari individu yang berupa floating number.
d.
Permutation Representations Permutation representation adalah representasi dari individu berupa digit integer unik, sehingga sebuah digit integer hanya akan muncul tepat satu kali didalam string solusi. Phenotype dapat diubah kedalam bentuk genotype melalui proses
encode, sebaliknya genotype dapat diubah kedalam bentuk phenotype melalui proses decode. Penampung elemen pada genotype disebut dengan variabel, gene atau sebuah posisi. Elemen yang berada didalam sebuah variabel disebut dengan allele atau sebuah nilai. 2.
Populasi Populasi adalah sekumpulan dari representation atau individu. Populasi dari sekumpulan offspring disebut dengan mating pool. Berdasarkan rasio populasi dan jumlah offspring, genetic algorithm dapat dibagi menjadi dua model yaitu generational model dan steadystate model. Pada generation model, jumlah offspring dan individu pada populasi adalah sama dan seluruh offspring menggantikan individu pada populasi yang lama. Sedangkan pada steady-state model, jumlah offspring dapat berjumlah lebih sedikit dari jumlah individu pada populasi, sehingga ada proses parent selection dan survivor selection.
3.
Fitness Function Fitness function adalah sebuah fungsi matematis yang digunakan untuk mengetahui fitness dari suatu individu. Fitness function digunakan sebagai basis acuan pada proses seleksi parent dan survivor.
4.
Mekanisme Seleksi Parent Parent adalah individu-individu yang sudah diseleksi untuk selanjutnya dilakukan variation operation pada individu-individu
30 tersebut. Pada umumnya seleksi parent dilakukan secara probabilistik dengan harapan offspring yang dihasilkan dari parent tersebut lebih baik dari individu-individu yang ada pada generasi sebelumnya. Terdapat beberapa mekanisme seleksi parent, antara lain adalah: a.
Fitness Proportional Selection Pada mekanisme ini, parent dipilih berdasarkan nilai fitness yang dimiliki oleh individu. Probabilitas setiap individu untuk dipilih sebagai parent dapat dihitung dengan rumus sebagai berikut:
dimana µ adalah jumlah individu pada populasi. b.
Ranking Selection Pada mekanisme ini, parent dipilih berdasarkan nilai ranking yang didapatkan dari rumus sebagai berikut:
dimana s adalah sebuah angka acak pada rentang 1.0 < s < 2.0 dan i adalah ranking individu yang didapat dari fitness proportional selection. c.
Probabilistic Selection Probabilistic selection biasa disebut juga dengan roulette wheel selection. Probabilistic selection dapat dilakukan melalui tahap-tahap yang dijelaskan pada pseudocode berikut:
START SET current_member = 1, i = 0, mating_pool[] WHILE (current_member ≤ µ) DO r = angka acak pada rentang [0, 1] i=1
31 WHILE (
) DO i=i+1
END WHILE mating_pool[current_membet] = parents[i]; current_member = current_member + 1; END WHILE FINISH dengan µ adalah jumlah parent yang diinginkan dan
adalah
fitness proportional atau ranking dari individu. d.
Tournament Selection Pada
tournament
selection,
parent
diseleksi
tanpa
mempertimbangkan nilai fitness atau ranking individu terhadap fitness populasi secara keseluruhan. Tournament selection dilakukan melalui tahap-tahap yang dijelaskan pada pseudocode berikut: START SET current_member = 1, mating_pool[] WHILE (current_member ≤ µ) DO pilih sebanyak k individu dari dalam populasi secara acak pilih individu yang terbaik diantara k individu tersebut, jadikan sebagai individu i mating_pool[current_member] = i current_member = current_member + 1 END WHILE FINISH dengan µ adalah jumlah parent yang diinginkan. 5.
Mekanisme Seleksi Survivor Survivor adalah individu yang diseleksi untuk menjadi bagian dari populasi pada generasi selanjutnya. Terdapat beberapa mekanisme seleksi survivor antara lain adalah: a.
Seleksi Berdasarkan Umur Pada mekanisme seleksi ini, seleksi survivor dilakukan berdasarkan umur dari kandidat survivor. Survivor yang memiliki
32 umur paling tua akan dieliminasi dan digantikan oleh offspring dari proses recombination. b.
Seleksi Berdasarkan Fitness Pada mekanisme seleksi ini, seleksi survivor dilakukan berdasarkan fitness dari kandidat survivor. Seluruh individu pada populasi dan offspring-nya dikumpulkan dan dievaluasi fitness-nya. Individu sebanyak jumlah parent dengan fitness terendah akan dieliminasi.
c.
Replace Worst Pada mekanisme seleksi ini, seleksi survivor dilakukan berdasarkan fitness dari kandidat survivor. Individu sebanyak jumlah offspring yang memiliki fitness terendah dieliminasi dan digantikan oleh offspring dari proses recombination.
d.
Elitism Seleksi elitism biasa digunakan bersamaan dengan seleksi berdasarkan umur atau berdasarkan fitness. Pada mekanisme ini, sistem menyimpan data fitness dari semua individu didalam sebuah populasi. Jika pada suatu saat offspring dari hasil kombinasi tidak lebih baik daripada individu-individu yang terpilih untuk dieliminasi, maka offspring tersebut dieliminasi dan tidak disertakan pada generasi selanjutnya.
6.
Variation Operators Variation operators adalah operasi-operasi yang dilakukan pada genetic algorithm untuk menciptakan individu baru dari individu lama. Terdapat dua variation operators yaitu: a.
Mutation Mutation adalah operasi penciptaan individu baru yang dilakukan dengan melakukan perubahan secara acak pada genotype. Operasi mutation berbeda-beda pada setiap jenis representasi individu. Operasi-operasi tersebut adalah sebagai berikut: 1.
Mutation pada Binary Representations Mutation pada binary representation dilakukan dengan cara membalikan(flip) salah satu atau lebih gene pada
33 genotype. Setiap gene memiliki probabilitas mutation yang telah ditentukan.
Gambar 2.11 Operasi mutation pada Binary Representation. (Sumber: Eiben & Smith, 2003, p. 43)
2.
Mutation pada Integer Representations Terdapat dua bentuk operasi mutation pada integer representation, yaitu: i.
Random Resetting Random resetting adalah operasi mengubah nilai pada gene dengan angka acak pada rentang tertentu. Setiap gene memiliki probabilitas mutation
yang telah
ditentukan sebelumnya. ii. Creep Mutation Creep mutation adalah operasi penambahan nilai negatif atau positif tertentu pada beberapa gene dengan probabilitas
. Pengacakan angka dilakukan pada setiap
gene sehingga setiap gene memiliki nilai penambahan atau pengurangan yang berbeda-beda. 3.
Mutation pada Real-Valued Representation Mutation pada real-valued representation dilakukan dengan mengubah nilai pada gene didalam genotype dengan probabilitas
. Gene digantikan dengan angka acak pada
domain dengan batasan atas dan bawah tertentu, sehingga mutation pada real-valued representation dapat dirumuskan sebagai berikut:
34 ,
dimana
adalah batasan bawah dan
adalah batasan
atas angka acak pengganti gene. Terdapat dua operasi mutation berdasarkan distribusi probabilitasnya, yaitu: i.
Uniform Mutation Pada uniform mutation, nilai dari didapatkan secara acak dari
untuk setiap gene dengan probabilitas
yang sama. ii. Nonuniform Mutation Pada nonuniform mutation, gene tidak digantikan dengan sebuah nilai baru tetapi ditambahkan dengan sebuah nilai yang didapatkan secara acak dari dengan distribusi probabilitas Gaussian. 4.
Mutation pada Permutation Representations Terdapat
3
operasi
mutation
pada
permutation
representations, yaitu: i.
Swap Mutation Pada swap mutation, dua variabel dipilih secara acak dengan probabilitas
dan kemudian ditukar posisinya.
Gambar 2.12 Ilustrasi Swap Mutation. (Sumber: Eiben & Smith, 2003, p. 45)
ii. Insert Mutation Pada insert mutation, dua variabel dipilih secara acak dengan probabilitas
, kemudian variabel kedua digeser
35 tepat di sebelah variabel pertama dengan algoritma insert sort .
Gambar 2.13 Ilustrasi Insert Mutation. (Sumber: Eiben & Smith, 2003, p. 46)
iii. Scramble Mutation Pada scramble mutation, dua variabel dipilih dengan probabilitas
, kemudian variabel tersebut dan variabel
yang berada diantaranya ditukar posisinya satu sama lain secara acak.
Gambar 2.14 Ilustrasi Scramble Mutation. (Sumber: Eiben & Smith, 2003, p. 46)
iv. Inversion Mutation Pada inversion mutation, 2 variabel dipilih secara acak dengan probabilitas
, kemudian variabel tersebut
dan variabel yang berada diantaranya dibalik posisinya.
Gambar 2.15 Ilustrasi Inversion Mutation. (Sumber: Eiben & Smith, 2003, p. 47)
b.
Recombination Recombination atau crossover adalah operasi penciptaan individu baru melalui penggabungan dua atau lebih individu sebagai parent dengan harapan individu-individu yang baru
36 memiliki keunggulan yang ada pada masing-masing parent. Operasi
recombination
berbeda-beda
pada
setiap
jenis
representation. Operasi-operasi tersebut adalah sebagai berikut: 1.
Recombination pada Binary Representations Terdapat
3
operasi
recombination
pada
binary
dilakukan
dengan
representations yaitu: i.
One-Point Crossover Operasi
one-point
crossover
memecah parent pada posisi r yang didapatkan dari pengacakan angka pada rentang [1, L-1], dimana L adalah panjang dari genotype. Pecahan masing-masing parent tersebut ditukar satu sama lain dan digabungkan kembali membentuk individu-individu baru.
Gambar 2.16 Ilustrasi One-Point Crossover. (Sumber: Eiben & Smith, 2003, p. 48)
ii. N-Point Crossover Operasi n-point crossover adalah operasi crossover dengan menggabungkan dua atau lebih segmen dari pemecahan parent sebanyak n posisi. Setiap posisi pemecahan didapatkan secara acak pada rentang [1, L-1], kemudian individu baru dibentuk dari penggabungan segmen-segmen tersebut.
Gambar 2.17 Ilustrasi N-Point Crossover dengan n = 2. (Sumber: Eiben & Smith, 2003, p. 48)
37
iii. Uniform Crossover Operasi uniform crossover dilakukan dengan inverse mapping variabel i pada masing-masing parent dengan probabilitas p = 0.5.
Gambar 2.18 Ilustrasi Uniform Crossover. (Sumber: Eiben & Smith, 2003, p. 49)
2.
Recombination pada Integer Representations Operasi recombination pada integer representations tidak berbeda dengan operasi-operasi recombination pada binary representation.
3.
Recombination pada Real-Valued Representations i.
Arithmetic Recombination Operasi arithmetic recombination dilakukan dengan menggabungkan dua parent menjadi dua individu baru menggunakan rumus sebagai berikut:
38
dimana x dan y adalah parent, i dan acak,
&
adalah nilai
adalah individu baru dari proses
recombination. ii. Simple Recombination Operasi simple recombination dilakukan dengan menggabungkan dua parent menjadi dua individu baru menggunakan rumus sebagai berikut:
dimana
&
adalah individu baru dari proses
recombination.
Gambar 2.19 Ilustrasi Simple Recombination. (Sumber: Eiben & Smith, 2003, p. 51)
iii. Single Arithmetic Recombination Operasi single arithmetic recombination dilakukan dengan mengubah sebuah gene k pada kedua parent yang dipilih secara acak. Gene tersebut digantikan dengan sebuah
nilai
baru
yang
didapatkan
dengan
cara
menghitung rata-rata dari nilai yang ada pada gene k tersebut. Operasi ini dapat dirumuskan sebagai berikut:
39
dimana
adalah konstanta acak,
&
adalah
individu baru dari proses recombination.
Gambar 2.20 Ilustrasi Simple Arithmetic Combination. (Sumber: Eiben & Smith, 2003, p. 51)
iv. Whole Arithmetic Recombination Whole arithmetic recombination adalah operasi recombination yang paling sering digunakan pada realvalued representation. Operasi whole arithmetic recombination dilakukan dengan menghitung rata-rata tertimbang dari kedua gene pada masing-masing parent. Operasi ini dapat dirumuskan sebagai berikut:
dimana
adalah konstanta acak,
individu baru dari proses recombination.
&
adalah
40
Gambar 2.21 Ilustrasi Whole Arithmetic Combination. (Sumber: Eiben & Smith, 2003, p. 52)
4.
Recombination pada Permutation Representations Terdapat 4 operasi recombination pada permutation representations yaitu: i.
Crossover Parsial Operasi crossover parsial dilakukan dengan tahaptahap sebagai berikut: a. Pilih 2 gene pada genotype secara acak. Pindahkan gene diantara 2 gene pada parent pertama kedalam child pertama. b. Pada gene-gene tersebut, lihatlah gene yang hanya ada pada parent kedua. c. Untuk setiap gene yang hanya ada pada parent kedua tersebut, pindahkan gene tersebut kedalam child pertama pada gene n, dimana n adalah gene yang berada sejajar pada child pertama. d. Gene yang kosong pada child pertama diisi dengan gene pada parent kedua sesuai dengan posisinya.
41
Gambar 2.22 Ilustrasi Crossover Parsial. (Sumber: Eiben & Smith, 2003, p. 53)
ii. Edge Crossover Pada edge crossover, setiap gene memiliki edge, tabel edge dibentuk dari kumpulan gene yang bersebelahan dengan setiap gene pada parent pertama. Operasi edge crossover dilakukan dengan tahap-tahap sebagai berikut: a. Buat tabel edge. b. Pilih satu elemen secara acak dan masukan kedalam child. c. Untuk tahap selanjutnya, pilih elemen dari edge-edge elemen sebelumnya dengan aturan sebagai berikut: 1.
Jika terdapat common edge, pilih elemen tersebut sebagai elemen selanjutnya.
2.
Jika tidak ada common edge, pilih elemen yang memiliki edge paling sedikit.
3.
Jika tidak memenuhi kedua kondisi diatas, pilih elemen secara acak.
Elemen yang sudah terpilih dibuang dari kumpulan edge.
42 iii. Order Crossover Operasi order crossover dilakukan dengan tahaptahap sebagai berikut: a. Pilih 2 gene secara acak. Masukan gene diantara 2 gene tersebut pada parent pertama kedalam child pertama. b. Dari gene kedua, pindahkan gene yang yang tidak ada pada child pertama kedalam child pertama sesuai posisinya. c. Lakukan hal yang sama pada child kedua.
Gambar 2.23 Ilustrasi Order Crossover. (Sumber: Eiben & Smith, 2003, p. 56)
iv. Cycle Crossover Operasi cycle crossover dilakukan dengan tahaptahap sebagai berikut: a. Mulai dari gene pertama pada parent pertama, cari gene yang sama pada parent kedua. b. Dari gene pada parent kedua tersebut, lihat gene yang sejajar pada parent pertama. c. Ulangi langkah a dan b sampai bertemu kembali dengan bit pertama pada parent pertama (cycle). d. Lakukan inverse mapping pada cycle-cycle tersebut.
43
Gambar 2.24 Ilustrasi Cycle Crossover. (Sumber: Eiben & Smith, 2003, p. 57)
7.
Inisialisasi Inisialisasi adalah proses penciptaan populasi awal. Pada genetic algorithm, individu pada populasi awal diciptakan secara acak.
8.
Termination Condition Termination condition adalah kondisi dimana pencarian solusi berhenti dilakukan karena telah memenuhi kondisi tersebut. Pada umumnya, jika nilai optimal yang ingin dicapai pada permasalahan yang dipecahkan menggunakan genetic algorithm diketahui, maka termination condition adalah disaat fitness suatu individu mendekati atau sama dengan nilai optimal tersebut. Akan tetapi, operasi dalam genetic algorithm bersifat stochastic sehingga kemungkinan besar kondisi optimal tersebut tidak akan tercapai secara pasti. Oleh karena itu, dibutuhkan termination condition lainnya, antara lainnya: a. Pembatasan waktu proses pada CPU. b. Pengevaluasian fitness telah melebihi limit yang diberikan. c. Pemberian ambang batas pada evaluasi fitness dalam rentang waktu tertentu. d. Keragaman pada populasi melewati ambang batas tertentu.
44 2.14
Unified Modelling Language (UML) Menurut Whitten & Bentley (2007, p. 371), unified modelling language adalah sebuah standar dalam pemodelan software system yang digunakan dalam pengembangan perangkat lunak berorientasi objek. Pemodelan pada unified modelling language direpresentasikan dalam bentuk diagram.
2.14.1
Use Case Diagram Menurut Whitten & Bentley (2007, p. 246-250), use-case diagram adalah diagram yang menggambar interaksi antara system, external system dan users. Komponen-komponen use case diagram adalah sebagai berikut: 1. Use Case Fungsi use case pada use case diagram adalah sebagai penggambaran fungsi yang dapat dijalankan oleh sistem dari perspektif pengguna. Use case dilambangkan dengan bentuk elips horizontal dan nama dari use case tersebut dituliskan ditengah elips.
Gambar 2.25 Contoh Use Case Diagram. (Sumber: Whitten & Bentley, 2007, p. 246)
2.
Actor Actor pada use case diagram adalah segala sesuatu yang berinteraksi dengan sistem. Actor dapat berupa user, use case atau external system. Actor menginisialisasi use case dengan
45 tujuan untuk menyelesaikan business task terkait dengan use case tersebut.
Gambar 2.26 Simbol Actor pada Use case Diagram. (Sumber: Whitten & Bentley, 2007, p. 247)
3. Relationships Relationships pada use case diagram berfungsi sebagai penggambaran relasi antara use case dan actor. Relationships dilambangkan
dengan
sebuah
garis.
Terdapat
5
jenis
relationships, yaitu: a. Associations Hubungan ini terjadi jika terdapat interaksi antara use case dan actor. Hubungan ini dilambangkan dengan garis yang menghubungkan actor dan use case. Garis bertanda panah yang menunjuk ke use case menandakan sang actor menirukan fungsi yang ada pada use case tersebut. Sedangkan garis tanpa tanda panah menandakan interaksi antara use case dengan external server atau receiver actor.
Gambar 2.27 Association Relationship pada Use Case. (Sumber: Whitten & Bentley, 2007, p. 248)
b. Extends Sebuah use case bisa saja memiliki beberapa fungsi kompleks. Untuk menyederhanakan use case tersebut,
46 fungsi-fungsi tersebut dapat dikeluarkan dan dijadikan sebuah use case tersendiri. Use case tersebut dinamakan dengan
extension
use
case.
Relationships
yang
menghubungkan use case dengan extension use case dinamakan dengan extends. Sebuah use case dapat memiliki banyak extension use case, tetapi extension use case tersebut hanya dapat dipanggil oleh use case yang memiliki relationships
terhadap
Relationships
ini
extension
dilambangkan
use
case
dengan
tersebut.
garis
yang
menghubungkan extension use case dan use case. Garis ini juga memiliki tanda panah yang menunjuk kepada use case. Setiap extends relationships diberi label <<extends>>.
Gambar 2.28 Extends Relationship pada Use Case. (Sumber: Whitten & Bentley, 2007, p. 249)
c. Uses (or Includes) Seringkali ditemukan dua atau lebih use-case memiliki tahapan fungsionalitas yang identik. Tahapan fungsionalitas tersebut dapat dikeluarkan dan dijadikan sebuah use case yang dinamakan dengan abstract use case. Hal ini dilakukan untuk mengurangi pengulangan tahap didalam use case. Relationships antara use case dengan abstract use case disebut dengan uses atau includes relationship. Relationship ini dilambangkan dengan garis yang menghubungkan use case dengan abstract use case.
47 Garis ini juga memiliki tanda panah yang menunjuk kepada use case.
Setiap uses atau includes relationship diberi
label <<uses>>.
Gambar 2.29 Uses Relationship pada Use Case. (Sumber: Whitten & Bentley, 2007, p. 249)
d. Depends On Relationship depends on mengindikasikan salah satu use case yang terhubung tidak bisa dijalankan sebelum use case lainnya dijalankan terlebih dahulu. Relationship ini dilambangkan
dengan
garis
bertanda
panah
yang
menghubungkan dua use case. Tanda panah pada garis penghubung menunjuk kepada use case yang dijadikan use case dependent. Setiap depends on relationship diberi label <<depends on>>.
48
Gambar 2.30 Depends on Relationship pada Use Case. (Sumber: Whitten & Bentley, 2007, p. 249)
e. Inheritance Jika dua atau lebih actor dapat melakukan atau menggunakan use case yang sama, actor tersebut dapat dijadikan sebuah abstract actor. Hal ini dilakukan untuk mengurangi pengulangan komunikasi yang terjadi didalam use case diagram. Relationship ini dilambangkan dengan garis yang menghubungkan abstract actor dengan actor dan memiliki tanda panah yang menunjuk kepada abstract actor.
Gambar 2.31 Inheritance Relationship pada Use Case. (Sumber: Whitten & Bentley, 2007, p. 250)
49 2.14.2
Use Case Narrative Menurut Whitten & Bentley (2007, p. 246, p. 256-260, p. 385), use case narrative adalah sebuah deskripsi tekstual dari interaksi user dengan sistem dalam menyelesaikan sebuah tugas tertentu pada use case. Use case narrative memiliki beberapa komponen, antara lain adalah sebagai berikut: a. Use-Case Name Merupakan nama dari use case yang dideskripsikan oleh use case narrative. Use-case name harus merepresentasikan goal dari use case yang dideskripsikan oleh use-case narrative tersebut. b. Actor Merupakan stakeholder yang mendapatkan manfaat terukur dari eksekusi use case. c. Description Merupakan deskripsi singkat dari keseluruhan proses pada use case. d. Trigger Merupakan hal-hal yang menginisialisasi pengeksekusian use case. e. Precondition Merupakan kondisi sistem sebelum use case dijalankan. f. Course of Events Merupakan urutan-urutan dari aktivitas yang dilakukan oleh actor dan sistem dalam mencapai goal yang ingin dicapai oleh use case. g. Postcondition Merupakan kondisi sistem pada saat use case telah dijalankan.
2.14.3
Class Diagram Menurut Whitten & Bentley (2007, p. 371, p. 400-406), class diagram adalah representasi grafis dari objek-objek yang menjadi bagian dari suatu sistem beserta relationship yang ada diantara objek-objek tersebut. Class diagram memiliki 3 bagian utama, yaitu:
50 a. Class Name Class name merepresentasikan nama dari class tersebut. b. Class Attributes Class attributes adalah data-data yang merepresentasikan karakteristik dari class tersebut. c. Class Behaviours Class behaviours adalah kumpulan dari fungsi-fungsi yang dapat dilakukan oleh class tersebut.
Gambar 2.32 Sebuah class diagram. (Sumber: Whitten & Bentley, 2007, p. 374)
Terdapat beberapa hal penting yang menjadi bagian dari class diagram, yaitu:
a. Generalization Generalization
adalah
sebuah
teknik
yang
menggabungkan beberapa class yang memiliki attribute dan behaviour yang sama menjadi satu class, yaitu sebuah supertype class. Class yang memiliki attribute dan behaviour yang diwariskan dari supertype class disebut dengan subtype class.
51
Gambar 2.33 Generalization pada Class Diagram. (Sumber: Whitten & Bentley, 2007, p. 376)
b. Relationships Relationships adalah asosiasi yang terjadi diantara dua atau lebih class. Terdapat dua komponen penting pada relationship antar class, yaitu: 1. Multiplicity Multiplicity berfungsi untuk menentukan banyaknya class dapat muncul pada sebuah relationship.
Tabel 2.1 Tabel Multiplicity. Jenis Multiplicity
Notasi Multiplicity
Exactly 1
1 atau biarkan kosong
Zero or 1
0…1
Zero or more
0 … * atau *
1 or more
1…*
Specified range
7…9
52 2. Aggregation Aggregation
adalah
sebuah
relationship
yang
menandakan class adalah bagian dari class lain yang lebih besar. Pada UML 2.0, aggregation tidak digunakan karena relationship ini berambigu terhadap association.
Gambar 2.34 Contoh Aggregation Relationship pada Class Diagram. (Sumber: Whitten & Bentley, 2007, p. 379)
3. Composition Composition
adalah
sebuah
relationship
yang
menandakan sebuah class merupakan bagian inheren dari class lain.
53
Gambar 2.35 Contoh Composition Relationships pada Class Diagram. (Sumber: Whitten & Bentley, 2007, p. 379)
c. Visibility Visibility
berfungsi
untuk
menentukan
apakah
attribute dan method pada suatu class dapat diakses oleh class lain maupun class turunannya. Terdapat tiga parameter visibility, yaitu: 1. Private Parameter
private
pada
attribute
atau
method
menjadikan attribute atau method tersebut hanya dapat diakses oleh class itu sendiri. Parameter private dilambangkan dengan (-). 2. Protected Parameter protected pada attribute atau method menjadikan attribute atau method tersebut hanya dapat diakses oleh class itu sendiri dan class turunannya. Parameter protected dilambangkan dengan (#). 3. Public Parameter
public
pada
attribute
atau
method
menjadikan attribute atau method tersebut dapat
54 diakses oleh class itu sendiri, class turunannya dan class lainnya. Parameter public dilambangkan dengan (+).
2.14.4
Sequence Diagram Menurut Whitten & Bentley (2007, p. 394-395, p. 659-660), sequence diagram adalah diagram yang menunjukan interaksi antar objek pada sebuah use case terhadap waktu. Komponen-komponen pada sequence diagram adalah sebagai berikut:
Tabel 2.2 Tabel komponen Sequence Diagram. Nama Komponen
Gambar Komponen
Keterangan Actor adalah user
Actor
yang berinteraksi dengan sistem lewat user interface. Berbentuk kotak dan memiliki label <
>.
Interface Class
Berfungsi sebagai representasi interface class code. Berbentuk kotak dan memiliki label <>.
Controller Class
Berfungsi sebagai representasi controller class code.
Entity Class
Berbentuk kotak dan berfungsi
55 sebagai representasi entity class. Berbentuk garis bertanda panah. Messages
Tanda panah berfungsi sebagai penunjuk arah jalannya message. Activation bar berfungsi sebagai
Activation Bars
indikasi waktu eksisnya sebuah objek pada sequence diagram. Berbentuk garis putus-putus. Return message berfungsi
Return Messages
sebagai pengembalian atau respon dari sebuah behaviour. Berfungsi sebagai penanda bahwa
Self Call
sebuah objek memanggil method pada dirinya sendiri. Frame digunakan untuk menandakan
Frame
bahwa aktivitas yang berada didalam frame tersebut adalah
56 optional atau merupakan sebuah loop. (Sumber: Whitten & Bentley, 2007, p. 659)
2.15
Java Liang (2011, p. 32) menjelaskan bahwa java adalah bahasa pemrograman yang dibuat pada tahun 1991 oleh sekelompok insinyur di Sun Microsystems yang dipimpin oleh James Gosling.
Pada awalnya
bahasa pemrograman java diciptakan untuk digunakan pada embedded chips didalam alat-alat elektrik, namun kemudian pada tahun 1995 java dikembangkan untuk penggunaan aplikasi internet dan menjadi bahasa pemrograman
yang
populer.
Bahasa
pemrograman
java
memiliki
karakteristik simple, object oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high performance, multithreaded dan dynamic.
Bahasa
pemrograman
java
dapat
digunakan
untuk
mengembangkan aplikasi desktop, server dan juga handheld devices seperti blackberry dan android.
2.16
State-of-the-Art System Pada penelitian yang dilakukan oleh Nathanael, Dewi, Joandi (2007, p. 115-129) yang berjudul “Perancangan Aplikasi Pengenal Plat Nomor Kendaraan Bermotor Dengan Pendekatan Backpropagation”, peneliti melakukan proses trial-and-error dalam menemukan nilai learning rate yang optimal. Penggunaan metode trial-and-error dapat digunakan dalam menemukan nilai learning rate dan momentum rate akan tetapi output dari metode ini belum tentu optimal karena nilai-nilainya ditentukan secara acak oleh peneliti. Pada permasalahan ini Genetic Algorithm dapat digunakan untuk menemukan nilai learning rate dan momentum rate yang paling optimal diantara space yang ada. Genetic Algorithm tidak hanya dapat digunakan untuk menemukan nilai learning rate dan momentum rate yang paling optimal, tetapi juga dapat digunakan untuk menemukan topologi dari Neural Networks yang paling optimal. Selain itu, sistem hanya dapat
57 mengenali gambar yang telah diproses terlebih dahulu sehingga gambar tersebut hanya merupakan gambar dari plat nomor kendaraan bermotor. Peneliti menggunakan 135 sampel foto plat nomor yang terdiri dari 20 sampel berkualitas tinggi, 60 sampel berkualitas moderat, 30 sampel berkualitas rendah dan 20 sampel foto plat nomor motor. Akurasi pengenalan kombinasi pada penelitian ini adalah 78.75%. Pada penelitian yang dilakukan oleh Yeremia, Yuwono, Raymond & Budiharto (2013, p. 1435-1442) yang berjudul “Genetic Agorithm And Neural Network For Optical Character Recognition”, penggunaan algoritma Genetic Algorithm untuk mengoptimalkan Backpropagation Neural Networks menjadikan Backpropagation Neural Networks tersebut lebih akurat dan proses training-nya lebih cepat dibandingkan dengan Neural Networks tanpa optimasi Genetic Algorithm. Pada penelitian ini, pengenalan dilakukan pada karakter A-Z yang diberi kotak pembatas dan dicetak
pada
selembar
kertas.
Peneliti
menguji
hasil
penelitian
menggunakan sampel berupa 10 set karakter A-Z. Akurasi pengenalan backpropagation neural networks tanpa optimasi adalah 80%, sedangkan akurasi pengenalan backpropagation neural networks dengan optimasi genetic algorithm mencapai 90.77%. Pada penelitian yang dilakukan oleh Romadhon, Ilham, Munawar, Tan & Hedwig (2012, p. 15-18) yang berjudul Android-Based License Plate Recognition using Pre-trained Neural Network, aplikasi pengenalan karakter plat nomor kendaraan bermotor dikembangkan pada perangkat android. Backpropagation neural networks dan metode image processing digunakan pada pengembangan aplikasi tersebut. Aplikasi tersebut memiliki persentase akurasi pengenalan 71% dengan waktu proses antara 15 sampai 20 detik. Berikut adalah tabel data hasil penelitian yang telah dijabarkan diatas:
58 Tabel 2.3 Data evaluasi state-of-the-art systems. Kecepatan
Kecepatan
Proses
Proses
Pengenalan
Training
78.75%
-
-
90.77%
-
71%
15-20 Detik
Akurasi
Penelitian
Pengenalan
Nathanael, Dewi
&
Joandi. Yeremia, Yuwono, Raymond
&
58 Menit 14 Detik
Budiharto. Romadhon, Ilham, Munawar, Tan, & Hedwig.
-