23 BAB 3
PERANCANGAN SISTEM
3.1
Rancangan Perangkat Keras
Perangkat keras yang digunakan dalam sistem kali ini berupa rancangan untuk mendapatkan input, melakukan proses, dan menghasilkan output yang diinginkan oleh user. Untuk melakukan proses input, kita menggunakan computer vision untuk melakukan scan terhadap citra yang akan diambil dan mnegubahnya menjadi citra yang lebih mudah untuk diproses. Setelah itu, citra yang telah diubah akan diproses agar nantinya citra tersebut akan menjadi input pada proses selanjutnya. Input dari hasil proses computer vision akan dimasukkan pada proses neuro-fuzzy agar komputer mampu mempelajari pola pengisian dan toleransi kesalahan yang dilakukan. Penggunaan neuro-fuzzy juga akan mampu memberikan hasil yang lebih mengikuti nalar manusia. Dengan neuro-fuzzy, input yang didapat juga dapat diproses sehingga menghasilkan output yang diinginkan oleh user. Dalam sisi hardware, untu mendapatkan input melalui proses computer vision, diperlukan sebuah alat scanner untuk mengambil sebuah citra, kemudian diperlukan sebuah alat yang mampu memproses citra tersebut kemudian mampu mengenali pola yang diberikan. Saat citra tersebut selesai diproses, maka citra tersebut akan menjadi sebuah input untuk neuro computing mengenali pola pengisian dan menentukan toleransi kesalahannya. Dengan menggunakan fuzzy logic, input tersebut akan menghasilkan output berupa penilaian terhadap questioner yang telah diberikan. Output
24 yang dikeluarkan berupa hasil penilaian yang dapat disimpan dalam database. Jadi secara hardware, kita memerlukan alat scanner, alat proses, dan alat penghasil output (berupa tampilan pada monitor, atau printout).
Gambar 3.1 3.1.1
-
Rancangan hardware
-
Diagram Blok Sistem
Diagram blok sistem
Gambar 3.2
25 3.1.2
Modul-modul sistem dan cara kerjanya Aplikasi ini terdiri dari 3 modul utama yaitu :
a. Modul Input b. Modul Proses c. Modul Output
Fungsi-fungsi modul diatas memiliki keterkaitan satu dan lainnya. Masingmasing modul akan memliki prosesnya sendir-sendiri yang hasil dari proses akan diteruskan pada modul berikutnya untuk diproses lebih lanjut. Keseluruhan modul ini akan dijelaskan pada subba dibawah ini.
Modul Input
Modul ini berfungsi mengkonversikan formulir yang sudah di scan ke dalam bentuk bitmap menjadi input untuk diproses selanjutnya ke dalam neural network. Beberapa tahapan proses dari modul input ini adalah sebagai berikut : 1.
Memilih formulir yang akan dibaca dengan open formulir dialog untuk mode pembacaan formulir satuan atau open directory dialog untuk mode pembacaan multi-formulir.
2.
Formulir yang sudah dipilih selanjutnya dimasukkan ke dalam picture box yang berfungsi sebagai buffer sementara.
3.
Formulir yang sudah berada dalam buffer akan diubah menjadi citra hitam putih dan dilakukan reducing noise (penghilangan noda-noda hitam disekitar lembar formulir) supaya tidak mengganggu proses pembacaan nantinya.
26 4.
Pada tahap ini aplikasi akan membaca baris jawaban pada formulir satu-persatu. Aplikasi akan menentukan 5 koordinasi lingkaran pada setiap baris jawaban pada formulir dan mengkalkulasikan jumlah pixel hitam pada koordinat tersebut. Jumlah pixel hitam akan dibagi dengan jumlah pixel keseluruhan pada koordinat yang dipilih.
Gambar 3.3
5.
-
Contoh baris jawaban yang akan diproses
Hasil perbandingan pixel ini akan menjadi input bagi neural network.
Modul Proses
Modul ini melakukan serangkaian prosedur yang mengolah hasil input dari tahap sebelumnya sampai menjadi output. Setiap baris jawaban yang di input pada neural network akan dikenali sebagai range nilai dari 0 sampai 5. Nilai ini mewakili lingkaran yang dihitamkan pada baris jawaban. 0 berarti tidak ada lingkaran yang dihitamkan atau lebih dari dua lingkaran yang dihitamkan sehingga dianulir atau dianggap salah. Kemudian nilai-nilai ini sementara disimpan ke dalam array. Proses selanjutnya adalah memroses hasil output dari neural network ke dalam 27 rule fuzzy yang sudah dibuat. Fuzzy inference engine ini menggunakan 3 membership function yang nantinya akan dieksekusi sesuai rule yang diproses. 3 membership function ini mewakili 3 penilaian yaitu penilaian lingkungan kampus, sistem pembelajaran dan fasilitas kampus. Jumlah nilai formulir dari nomor 1-5 akan
27 menjadi input bagi membership function pertama, jumlah nilai formulir nomor 6-10 akan menjadi input bagi membership function kedua, dan jumlah nilai 11-15 akan menjadi input bagi membership function ketiga. Hasil defuzzifikasi akan ditampung ke dalam objek memo.
Modul Output
Modul ini menggenerate hasil defuzzifikasi ke dalam report berbentuk html atau teks file. Format ini dipilih karena dapat dibaca dengan berbagai jenis platform aplikasi. Jika mode pembacaan yang dipilih adalah satuan maka report yang dihasilkan berbentuk html tetapi jika yang dipilih adalah mode pembacaan multi-formulir maka report yang dihasilkan berbentuk file teks.
3.2
Rancangan Peranti Lunak
Program yang kami kembangkan ini menggunakan tiga segmentasi utama dalam melakukan proses, diantaranya adalah computer vision, neuro computing, dan fuzzylogic. Dalam perancangan pirantin lunak, kami akan mendeskripsikan proses kerja dari porgram ini menggunakan flowchart seperti yang terlihat dibawah ini :
28
Gambar 3.4
-
Flowchart rancangan piranti lunak
Yang kami taruh dalam diagram flowchart diatas merupakan proses dasar yang akan dilakukan sistem pada saat menerima input, memprosesnya, dan menghasilkan output. Namun ada beberapa aplikasi pendukung dimana sistem ini mampu me-Load data training, kemudian melakukan penyimpanan data ke dalam database. Ada juga
29 output yang dihasilkan akan mampu dicetak pada layar monitor atau dilakukan printout sehingga nantinya berupa data hardcopy. Dalam rancangan program ini, arsitektur neural Network yangb kami kembangkan berupa 5 layer input, 77 hidden layer, dan 5 layer output. Dengan ini kami mengharapkan perhitungan sistem akan semakin akurat dengan nilai alfa = 0.01 dan target error = 0,00001 . Diagram layer neural Network dapat dilihat sebagai berikut:
Gambar 3.5
-
Arsitektur neural Network
30 Arsitektur fuzzy yang kami kembangkan juga menggunakan 3 membership function dengan menggunakan 2 kurva S dan 1 kurva bahu. Fungsi ini dikembangkan dengan metode Sugeno, dan memiliki range nilai dari 0 sampai 25 untuk setiap membership function. Arsitektur fuzzy yang digunakan dapat dilihat pada gambar dibawah:
Gambar 3.6
-
Arsitektur utama fuzzy logic
Adapun 3 membership function yang kami kembangkan dapat dilihat pada gambar di bawah ini :
Gambar 3.7
-
Membership Function (Fasilitas)
31
Gambar 3.8
-
Membership Function (Kurikulum)
Gambar 3.9
-
Membership Function (Lingkungan)
32 Kemudian rule-rule yang digunakan dalam sistem fuzzy ini :
No R-1 R-2 R-3 R-4 R-5 R-6 R-7 R-8 R-9 R-10 R-11 R-12 R-13 R-14 R-15 R-16 R-17 R-18 R-19 R-20 R-21 R-22 R-23 R-24 R-25 R-26 R-27
Aturan ( AND ) Fasilitas Kurikulum Lingkungan Buruk Buruk Buruk Buruk Buruk Sedang Buruk Buruk Baik Buruk Sedang Buruk Buruk Sedang Sedang Buruk Sedang Baik Buruk Baik Buruk Buruk Baik Sedang Buruk Baik Baik Sedang Buruk Buruk Sedang Buruk Sedang Sedang Buruk Baik Sedang Sedang Buruk Sedang Sedang Sedang Sedang Sedang Baik Sedang Baik Buruk Sedang Baik Sedang Sedang Baik Baik Baik Buruk Buruk Baik Buruk Sedang Baik Buruk Baik Baik Sedang Buruk Baik Sedang Sedang Baik Sedang Baik Baik Baik Buruk Baik Baik Sedang Baik Baik Baik Total :
Tabel 3.1
-
Result 10 20 30 43 51 60 44 70 72 30 54 67 50 54 67 72 80 85 30 54 67 65 76 90 82 93 100 1616
Fuzzy Rule
3.2.1 Diagram Alir Program utama Dalam program utama, kami akan menampilkan secara garis besar apa yang program ini akan lakukan baik dari proses pengambilan gambar yang menjadi input, sampai akhirnya dihasilkanoutput. Dalam prosesnya, neuro computing perlu melakukan training agar data yang dimasukkan dapat dikenali dan dapat diprediksi toleransi
33 kesalahannya. Namun jika data training telah didapatkan maka tidak perlu lagi dilakukan training, sehingga data dapat langsung dibaca oleh sistem komputer.
Gambar 3.10 -
Diagram sequence alir program utama
Dalam program ini, user pertama-tama akan memasukkan form questioner yang telah di-scan dengan cara Load dari image file yang ada. Formulir yang telah dimasukkan user akan dibaca dan kemudian akan ditampilkan dalam form pada layar monitor. Formulir yang telah di-upLoad akan diubah (convert) menjadi formulir dengan format black and white. Hal ini dilakukan untuk mempermudah proses komputer untuk membaca file yang ada. Formulir yang telah di-convert kemudian di-enhance. Gunanya untuk menghilangkan noise atau gangguan dari image file yang baru saja di-convert. Formulir tersebut kemudian dimasukkan dalam proses neuro computing. Disini data akan di training agar data-data berupa citra hitam putih itu mampu dikenali oleh
34 sistem komputer. Data yang di training kemudian akan mampu mendapatkan input dari questioner dan toleransi kesalahan pada citra tersebut. Hasil dari proses training dan forward akan diteruskan pada proses fuzzy logic. Setelah melakukan training dan forward, user kemudian membuka menu read form. Disini sebenarnya terjadi proses fuzzy logic, karena penilaian kepuasan ini menggunakan fungsi pada aplikasi fuzzy. Dengan aplikasi ini, hasil yang diterima oleh user bukan lagi hasil yang memiliki nilai konstan, melainkan berupa presentase yang mampu digunakan dalam pengambilan keputusan nantinya.
3.2.2
Diagram-diagram Alir Rutin pendukung
Disini kami menjelaskan sequence dari masing-masing aplikasi yang dijalankan. Karena masing-masing proses memiliki kerja yang saling berkaitan namun dapat berdiri sendiri. Disini kami memfokuskan pada proses yang dilakukan pada saat sistem telah menerima input. Sehingga disini kami tidak akan banyak membahas penggunaan computer vision, melainkan lebih memfokuskan penggunaan neuro fuzzy pada sistem. Dalam proses neuro computing yang pertama kali adalah dilakukannya training. Dalam training ini, hasilnya dapat disimpan (Save) atau diambil (Load) tergantung dari keinginan user. Untuk dapat menyimpan hasil data training, proses yang dilakukan menurut diagram sequence dibawah adalah:
35
Gambar 3.11 -
Diagram sequence Save data training
36
Gambar 3.12 -
Flowchart Save data training
Hasil training yang disimpan dapat juga diambil oleh user, jika user tidak mengharapkan untuk melakukan training setiap kali user megirimkan sebuah input ke dalam sistem. Namun dalam melakukan Load Network, harus setidaknya dilakukan satu
37 kali training yang telah disimpan. Oleh karena itu, proses Load Network dapat dilihat dalam diagram sequence dibawah ini:
Gambar 3.13 -
Diagram sequence Load data training
38
Gambar 3.14 -
Flowchart Load data training
Setelah data selesai di-training, proses neuro computing selanjutnya adalah melakukan proses forward approach untuk mencari nilai output dari hasil training. Dengan menjalankan proses ini, akan diketahui nilai dari weight yang telah disesuaikan sehingga toleransi kesalahan dan hasil output akan semakin mendekati pola yang diinginkan user. Berikut adalah gambaran diagram sequence-nya:
39
Gambar 3.15 -
Diagram sequence forward approach
40
Gambar 3.16 -
Flowchart forward approach
Proses selanjutnya setelah melakukan proses neuro computing adalah proses fuzzy logic. Proses ini merupakan menghasilkan output presentase yang sesuai dengan input yang telah diberikan untuk nantinya disimpan dan dipakai untuk proses pengambilan keputusan. Proses fuzzy logic ini tidak akan ditampilkan menurut detail spesifikasi fuzzy logic, melainkan menampilkan bagaimana input tersebut dapat diproses
41 menjadi output kemudian disimpan untuk nantinya kembali ditampilkan. Berikut diagram sequence-nya:
Gambar 3.17 -
Diagram sequence proses fuzzy
Dalam program ini, pemanggilan fungsi fuzzy logic dilakukan pada saat kita ingin system untuk membaca formulir tersebut. Read form yang kami masukkan dalam pilihan menu juga menjadi suatu fungsi pemanggilan proses fuzzy. Untuk lebih jelasnya, silahkan melihat diagram flowchart dibawah:
42
Gambar 3.18 -
Flowchart read form dan proses fuzzifikasi
Setelah dilakukannya seluruh proses sampai ke proses fuzzifikasi, user telah dapat melihat bagaimana hasil penilaian seperti yang dikeluarkan oleh sistem. Disini kami menambahkan hasil report dapat di generate agar nantinya dapat dicetak melalui media printer dengan konversi ke HTML. Disini kami menambahkan sebuah flowchart yang mengubah output dari proses fuzzy menjadi sebuah file dokumen yang mampu dilihat pada browser maupun dicetak, seperti flowchart dibawah ini:
43
Gambar 3.19 -
Flowchart generate report
Kami menambahkan satu fasilitas tambahan untuk membaca beberapa formulir sekaligus, yaitu modul read directory. Modul ini digunakan untuk membaca beberapa formulir dalam satu direktori. Output yang dihasilkan berupa report berbasis teks file. Laporan ini berisi hasil kalkulasi dari formulir-formulir yang dibaca pada direktori yang
44 dipilih ditambah hasil kalkulasi rata-rata penilaian. Diagram alirnya dapat dilihat pada gambar dibawah ini :
Gambar 3.20 -
Flowchart Read Directory
45 3.3
Rancang Bangun
Program ini dibangun dengan menggunakan bahasa pemrograman Delphi dengan tampilan visual. Rancangan output disini kami rancang dalam mengembangkan layar menu utama dan input dari scanner pada questioner. Rancangan menu utama dapat dilihat seperti berikut:
Gambar 3.21 -
Rancangan layar menu utama
46 Sedangkan pada menu bar berisi perintah-perintah seperti berikut:
Gambar 3.22 -
Gambar 3.23 -
Gambar 3.24 -
Gambar 3.25 -
Rancangan Menu Bar
Menu Bar (Menu)
Menu Bar (AIEngine)
Menu Bar (Neuro System)
Gambar 3.26 -
Menu Bar (View)
Gambar 3.27 -
Menu Bar (Help)
47 Rancangan formulir questioner pun tidak bisa hanya memakai formulir yang kacau.Formulir questioner yang dipakai harus mampu untuk dideteksi menggunakan computer vision agar nantinya dapat diproses lebih lanjut. Setidaknya rancangan formulir isian memiliki format input seperti yang kami rancang dibawah ini:
Gambar 3.28 -
Rancangan formulir isian
Format rancangan formulir isian ini sebenarnya masuk ke dalam perangkat keras karena berupa objek nyata yang dapat dipegang. Akan tetapi disini kami memasukkan rancangan setelah formulir tersebut telah di-scan dan masuk sebagai image file.\
48 Rancangan ini nantinya dapat dikembangkan sesuai keinginan user yang melakukan penilaian. Fill dot yang disediakan memang hanya lima, akan tetapi masih dapat dikembangkan sesuai dengan keadaan yang diinginkan, dan melalui beberapa modifikasi pemrograman.