BAB III ANALISIS DAN PERANCANGAN Bab ini memaparkan proses analisis dan perancangan perangkat lunak yang akan dikembangkan. Metode analisis dan perancangan yang digunakan berbasis aliran data dan kelas.
3.1
Metodologi Pembangunan Perangkat Lunak
Pembangunan perangkat lunak menggunakan metodologi unified modelling language. Metodologi ini berpusat pada tiga tipe kelas, yaitu kelas entity, boundary, dan control. Selain ketiga tipe kelas tersebut, terdapat kelas yang lain, yaitu kelas antar muka, yang berfungsi untuk menyimpan semua properti dari antar muka yang digunkan.
3.2
Analisis
Proses analisis perangkat lunak dilakukan dengan langkah-langkah sebagai berikut: 1. Mendeskripsikan secara global perangkat lunak dan interaksinya dengan entitasentitas luar. 2. Berdasarkan
kajian
teori
dan
penerapan
teori
yang
telah
dilakukan,
mendefinisikan fungsi-fungsi utama yang harus dimiliki oleh sistem. Fungsifungsi ini kemudian didekomposisi menjadi fungsi-fungsi yang lebih kecil dan sederhana. 3. Menentukan keterkaitan antar fungsi dengan membuat diagram aliran data (Data Flow Diagram) 4. Menentukan kebutuhan data, baik data masukan, keluaran, maupun data yang berperan pada setiap fungsi utama. 5. Menentukan kebutuhan antar muka pengguna sebagai fasilitas bagi pengguna untuk berinteraksi dengan perangkat lunak.
III-2
3.2.1 Deskripsi Global Sistem dalam Model Fungsional Sistem ini adalah sebuah aplikasi perangkat lunak yang menerapkan Image Preprocessing, jaringan saraf tiruan, dan algoritma genetik untuk menyelesaikan masalah OCR. Sistem menerima masukan dari pengguna berupa data angka MNIST melalui fasilitas antar muka yang disediakan. Secara iteratif, sistem akan membangkitkan solusi dan menampilkannya kepada pengguna. Output yang dihasilkan pada proses training adalah rules. Sedangkan output yang dihasilkan pada proses testing adalah nilai akurasi dan guess output.
Aspek sistem yang berkaitan dengan transformasi nilai, dengan suatu fungsi atau pemetaan tertentu
akan digambarkan oleh model fungsional. Model fungsional
menunjukkan apa yang dilakukan oleh suatu sistem, tanpa memperhatikan bagaimana ataupun kapan hal itu akan dilakukan. Model fungsional direpresentasikan dengan konteks diagram dan diagram aliran data (data flow diagram, disingkat DFD). Konteks diagram dan diagram aliran data menunjukkan ketergantungan antara nilai dan perhitungan nilai keluaran dengan menggunakan nilai masukan dan fungsi tertentu, tanpa mempedulikan kapan fungsi tersebut dieksekusi. Diagram Flowchart aplikasi dapat dilihat di LAMPIRAN A. Diagram konteks dapat dilihat pada Gambar III.11
Image
Rule
Data MNIST Parameter
Sistem
Guess output Akurasi
Gambar III.1 Diagram Konteks
Pada proses pelatihan, data training MNIST akan melalui proses image preprocessing yang akan menghasilkan data normal. Data normal tersebut akan menjadi masukan dari GA. GA akan membangkitkan populasi dengan menggunakan mini JST (1 epoch). GA akan menghasilkan sebuah rule / bobot awal yang akan digunakan oleh JST. Rule hasil GA dan data normal akan diproses oleh JST untuk menghasilkan rule akhir. Rule akhir
III-3
inilah yang akan digunakan untuk pengujian. Dapat dikatakan bahwa GA akan mengoptimasi bobot awal dari JST.
Pada proses pengujian, data testing MNIST akan melalui proses image preprocessing yang sama dengan training dan menghasilkan data normal. Data normal tersebut akan dimasukan pada rule akhir hasil training untuk menghasilkan guess output. Guess output akan dibandingkan dengan label dari data testing MNIST dalam proses pengujian. Proses tersebut akan menghasilkan akurasi dari rule hasil pelatihan tersebut.
3.2.1.1 Analisis Kebutuhan Fungsional
Mengacu kepada hasil kajian penerapan GA dan JST pada sistem dan teori OCR dan diagram konteks, maka sistem perlu mengimplementasi fungsi-fungsi utama sebagai berikut: 1. Sistem mampu menerima masukan parameter-parameter indikator dari pengguna dalam bentuk data MNIST. 2. Sistem mampu membangkitkan populasi awal valid GA atau JST secara acak. 3. Sistem mampu mengimplementasi operator-operator genetik (reproduksi, persilangan, dan mutasi). 4. Sistem mampu mengimplementasi operator evaluasi dan seleksi. 5. Sistem mampu mengimplementasi prosedur JST. 6. Sistem mampu menampilkan hasil eksekusi dan menampilkan solusi terbaik.
3.2.2 Analisis Kebutuhan Data Sistem bertugas untuk menghasilkan sebuah rule untuk masalah OCR, dan untuk itu dibutuhkan beberapa data masukan dari pengguna.
3.2.2.1 Data Masukan (Input)
Data masukan yang diperlukan oleh sistem adalah sebagai berikut: 1. Ukuran populasi, yaitu ukuran populasi yang dikehendaki.
III-4
2. Pc, yaitu nilai probabilitas terjadinya persilangan. 3. Pm, yaitu nilai probabilitas terjadinya mutasi. 4. Jumlah iterasi, yaitu jumlah iterasi yang akan dilakukan oleh sistem. 5. Jumlah hidden unit, yaitu jumlah unit tersembunyi antara input dan output JST. 6. Learning rate, yaitu kecepatan pembelajaran sistem JST. 7. Epoch, yaitu jumlah iterasi pada JST.
3.2.2.2 Data Keluaran (Output)
Output yang dihasilkan oleh sistem training adalah sebuah rule solusi terbaik terhadap masalah OCR. Sedangkan output yang dihasilkan oleh sistem testing adalah guess output dan nilai akurasi dari rule hasil training tersebut.
3.2.3 Analisis Kebutuhan Antarmuka Pangguna Antar muka pengguna dibutuhkan untuk menerima dan menampilkan hasil eksekusi program. Beberapa antar muka yang diperlukan adalah: 1. Antar muka training dan testing 2. Antar muka untuk pemilihan arsip set data 3. Antar muka image preprocessing 4. Antar muka parameter GA (Pm, Pc, jumlah iterasi, ukuran populasi) 5. Antar muka parameter JST (hidden unit, learning rate, epoch) 6. Antar muka keluaran sistem.
3.3
Perancangan
Perancangan akan berisi perancangan antar muka, perancangan use case, perancangan kelas dan realisasi use case.
III-5
3.3.1 Perancangan Antar Muka Tujuan dari perancangan antarmuka adalah agar pengguna bisa berinteraksi dengan perangkat lunak dengan baik. Aplikasi ini mempunyai dua antar muka utama. Antar muka pertama adalah antar muka training. Antar muka ini berguna untuk melakukan pelatihan pada sistem untuk dapat menghasilkan rule terbaik untuk masalah OCR. Antar muka kedua adalah antar muka testing. Antar muka ini berguna untuk melakukan pengujian terhadap rule yang telah didapat pada proses pelatihan.
Input Data
Tampilan Data Digit Input
Preprocessing Proses
Genetic Algorithm Run GA
Artificial Neural Network Run ANN
Gambar III.2 Rancangan Antar Muka
Tampilkan
III-6
3.3.2 Perancangan Use Case Tabel III.1 Use Case menggambarkan semua use case yang akan terdapat pada sistem. Tabel III.1 Use Case
No 1. 2.
3.
4. 5.
6. 7. 8.
Nama Use Keterangan Case Input data Untuk aktor memasukkan nama dari arsip yang berisi data MNIST. Input parameter Untuk aktor memasukkan nilai dari parameter. Terdapat empat GA parameter yang akan dimasukkan oleh aktor. Parameter Ukuran Populasi berguna untuk menentukan ukuran populasi yang akan dibuat oleh sistem. Parameter Jumlah Iterasi berguna untuk menentukan berapa kali sistem akan melakukan iterasi proses. Parameter Pc berguna untuk menentukan kemungkinan terjadinya persilangan dalam sistem. Parameter Pm berguna untuk menentukan kemungkinan terjadinya mutasi dalam sistem. Input parameter Untuk aktor memasukkan nilai dari parameter. Terdapat tiga JST parameter yang akan dimasukkan oleh aktor, yaitu jumlah hidden unit, lerning rate, dan jumlah epoch. Output hasil Untuk menampilkan hasil pengujian dan rule terbaiknyanya pada pengguna. Membangkitkan Untuk membangkitkan populasi secara acak dengan ukuran populasi populasi seperti yang dimasukkan oleh pengguna. Melakukan evaluasi Melakukan seleksi Melakukan persilangan
9.
Melakukan mutasi
10.
Melakukan proses JST Melakukan pengujian
10.
Untuk menghitung nilai fitness dari setiap kromosom yang terdapat pada populasi. Untuk memilih kromosom-kromosom terbaik dari populasi. Untuk melakukan persilangan antara kromosom-kromosom terbaik dan menghasilkan kromosom-kromosom turunan atau offspring dengan nilai Pc sesuai dengan yang dimasukkan oleh pengguna. Untuk melakukan mutasi terhadap kromosom-kromosom terbaik dan offspring dengan nilai Pm sesuai dengan yang dimasukkan oleh pengguna. Untuk melakukan proses JST dengan jumlah hidden unit, learning rate, dan jumlah epoch yang telah dimasukkan oleh pengguna. Untuk menentukan nilai akurasi rule hasil training pada data test.
3.3.3 Perancangan Kelas Sesuai dengan unified modelling language [BOG02], dalam aplikasi ini terdapat tiga tipe kelas. Yaitu kelas Boundary, Entity, dan Control. Diagram kelas dapat dilihat pada Gambar III.3.
III-7
MainProcess +InputData() +ImagePreprocessing() +InputDataHVD() +NormalisasiData() +InputImageSkeleton() +InputDataNormal() +RunGA() +InisialisasiBobotANN() +RunANN() +InputTestRule() +RunTest() -End9 +Tampilkan() * -End4 * -End1
*
-End3
InputData-End2 +GetnLabel() : Integer +GetnRow() : Integer +GetnCol() : Integer +GetDataLabel() : Integer +GetDataGambar() : Byte +InputDataLabel() +InputDataGambar() *
-End7
*
-End5 *
*
*
-End10
-End6
DataPreprocessing
GeneticAlgorithm
* ArtificialNeuralNetwork
+Binerisasi() +NoiseReduction() +Thinning() +Centering() +HitungDataHVD() +InputDataNormal() +GetDataNormal() : Double +Rata2() : Double +StdDev() : Double +Normalisasi() : Double +NormalisasiData() +TampilData()
+ANN2GA() +Inisialisasi() +Seleksi() +Crossover() +Mutasi() +Reproduksi() +Offspring2Populasi() +GA2ANN() +Evaluasi() +Proses()
+GetnInput() : Integer +GetnHidden() : Integer +GetnOutput() : Integer +GetNilaiOutput() : Double +GetBobotIH() : Double +GetBobotHO() : Double +SetBobotIH() +SetBobotHO() +InisialisasiBobotRandom() +InisialisasiInputData() +Inj() : Double +Ginj() : Double +HitungHidden() +HitungIni() +Gini() : Double +HitungOutput() +G1ini() : Double +Errori() : Double +HitungDeltai() +G1inj() : Double +HitungDeltaj() +UbahBobotHO() +BackProp() +UbahBobotIH() +HitungSSE() : Double +HitungRMSE() : Double +HitungSalah() : Integer +HitungAkurasi() : Double +Proses() +InputRule() +Test()
*
*
-End13 *
-End11
-End15
*
* -End8 *
-End12 -End14*
InitVar
-End16
+GetnLabel() : Integer +GetnRow() : Integer +GetnCol() : Integer +GetnHVD() : Integer +GetnInput() : Integer +GetnHidden() : Integer +GetnOutput() : Integer +GetnKromosom() : Integer
Gambar III.3 Diagram Kelas
III-8
3.3.4 Realisasi Use Case Rancangan realisasi dari use case yang terdapat dalam 3.3.3 Perancangan Use Case dapat dilihat dalam dua bentuk. Bentuk pertama adalah dalam diagram kelas yang menggambarkan hubungan dari kelas-kelas dalam merealisasikan suatu use case. Bentuk kedua adalah dalam sequence diagram yang menggambarkan aksi-aksi apa saja yang terdapat dalam use case tersebut. Diagram kelas use case dapat dilihat pada LAMPIRAN B.