BAB 2 LANDASAN TEORI 2.1 Kamera PC 2.1.1
Definisi Kamera PC Kamera PC adalah suatu perangkat keras yang terhubung dengan komputer dan
mempunyai kemampuan menangkap atau mengambil citra baik citra statis maupun citra bergerak (video) tergantung pada program yang digunakan.
2.1.2
Cara Kerja Kamera PC Kamera digital atau kamera PC mempunyai kemiripan cara kerja dengan sebuah
kamera konvesional atau yang sering disebut kamera 35 mm. Kamera digital mempunyai lensa selayaknya kamera biasa di mana lensa ini berfungsi untuk memfokuskan dan mendiafragma
tempat masuknya cahaya atau citra yang akan
ditangkap. Untuk kamera PC, penangkapan berkas cahaya dilakukan oleh CCD atau CMOS yang berfungsi sebagai sensor elektronik. CCD atau sering disebut charged couple device terdiri dari ribuan bahkan jutaan sensor kecil yang sering disebut dari jumlah pixelnya. CCD ini menerima banyaknya jumlah cahaya yang masuk pada tiap sensor CCD. Nilai cahaya yang masuk pada CCD akan secara elektronik diproses dan dikirim pada internal memory atau buffer yang bila ditentukan disimpan dalam jenis seperti bitmap, jpeg, gif, mpeg dan lain-lain.
2.2 Operasi Pengolahan Citra
6
7 Ada beberapa operasi pada pengolahan cira yang memiliki tujuan yang sama, yaitu memperoleh kualitas citra agar sesuai dengan yang diharapkan. Operasi-operasi itu antara lain adalah : •
Pengambilan Citra (Image Acquisition)
•
Peningkatan Kualitas Citra (Image Enhancement)
•
Pemilihan Citra (Image Segmentation)
•
Deteksi Tepi (Edge Detection)
2.2.1
Pengambilan Citra (Image Acquisition) Image Acquisition merupakan suatu proses pengambilan citra yang dilakukan
dengan pengambilan data acquisition. Yang dimaksud dengan data acquisition di sini adalah data analog yang sudah dikumpulkan kemudian data tersebut diproses di transducer dan dikonversi menjadi format digital sehingga dapat diproses lebih lanjut oleh komputer. Image Acquisition dapat dilakukan dengan menggunakan kamera CCD (Charge Couple Device) 2.2.2
Peningkatan Kualitas Citra (Image Enhancement) Image Enhancement merupakan sutau proses awal yang bertujuan untuk
meningkatkan atau memperbaiki mutu citra baik untuk menghilangkan gangguan untuk interpretasi maupun untuk keindahan. Pada proses ini biasanya baik masukan maupun keluaran berbentuk citra. Kontras dari suatu citra adalah perbedaan antara setiap warna pada citra. Jika semua warna dalam citra adalah gelap maka perbedaan antara setiap warnanya adalah kecil sebagai hasilnya maka citra akan memiliki kontras yang rendah dan sebaliknya.
8 Proses perbaikan kontras suatu citra dapat dilakukan dengan teknik pergeseran histogram dan atau dengan teknik pelebaran histogram. Teknik pergeseran histrogram dilakukan dengan cara penambahan atau pengurangan nilai intensitas setiap pixel citra dengan suatu harga konstanta integer. Sedangkan teknik pelebaran histogram dilakukan dengan cara pengalihan atau pembagian nilai intensitas setiap pixel dengan suatu harga konstanta integer tertentu. Pada proses ini, pemilihan harga konstanta penambahan atau pengurangan harus dilakukan berdasarkan pengamatan histogram frekuensi dari citra yang asli.
2.2.3
Pemilahan Citra (Image Segmentation) Segmentasi adalah suatu proses yang membagi-bagi sebuah citra menjadi unsur-
unsur pokok dari citra itu sendiri. Segmentasi merupakan salah satu bagian terpenting dari proses analisa citra secara otomatis. Konsep dari segmentasi sebuah citra berdasarkan pada discontinuity atau similarity dari tingkatan nilai keabuan pixel-pixel nya dapat diterapkan pada citra statik dan citra dinamik (time-varying).
2.2.4
Deteksi Tepi (Edge Detection) Edge Detection adalah algoritma yang digunakan untuk mengenali tepi-tepi dari
sebuah citra yang digunakan pada langkah pertama dalam pengenalan sebuah obyek. Untuk mengenali tepi-tepi dari sebuah citra , algoritma ini bekerja dengan mencari tempat-tempat yang memilki perubahan intensitas warna yang drastis. Untuk itu terdapat 2 kriteria yang bisa dijadikan patokan. Pertama : tempat-tempat itu memiliki turunan pertama dari intensitasnya yang magnitude-nya lebih besar dari nilai ambang. Kedua : tempat-tempat yang turunan kedua dari intensitasnya adalah 0(nol).
9 Untuk mengenali sebuah citra tidak cukup bila hanya menggunakan algoritma edge detection karena algoritma ini hanya mengenali ada atau tidaknya sebuah citra, sehingga diperlukan algoritma tambahan lainnya. Dalam algoritma edge detection terdapat 2 metode yang digunakan ,yaitu : Template Maching (TM) dan Differential Gradient (DG). Pada kedua metode ini tujuan utamanya adalah mencari magnitude gradient intensitas yang cukup besar untuk dianggap sebagai indikator yang sah sebagai tepi sebuah obyek.
2.3 Program Pengambil Gambar Dari Kamera PC (Peephole Video Capture v3.0) Untuk menangkap citra dari kamera PC, digunakan suatu program yaitu program Peephole Video Capture v3.0 yang berasal dari Specware Inc, 218 louisiana ave, Perrysburg.OH 43551. Copyright © 1998,1999,2000. Program ini terdiri dari 5 tab yaitu preview and capture, FTP, camera setup, still image dan AVI. Tiap tab mempunyai mempunyai fungsi yang berbeda yaitu: Tab Preview and Capture yang mempunyai fungsi utama menjalankan dan mengaktifkan jendela preview dan waktu sekuensial waktu capture citra. Tab FTP berfungsi untuk mengetahui dan mengirimkan hasil citra pada komputer lain melalui jaringan internet. Tab camera setup mempunyai fungsi utama untuk mengetahui perangkat keras yang akan digunakan dan pengaturan fungsifungsi hardware itu sendiri seperti resolusi dan kompresi. Tab still image mempunyai fungsi tempat menyimpan hasil citra, menentukan jenis citra dan pengaturan dasar dari fungsi program timer. Tap AVI mempuyai fungsi pengambilan sebuah file video.
2.4. Modul Sabuk Berjalan (conveyor) 2.4.1. Pengertian dan Fungsi Modul Sabuk Berjalan
10 Modul sabuk berjalan adalah sebuah perangkat yang terdiri dari sabuk, kerangka, roller dan motor yang mempunyai fungsi sebagai pemindah benda dari tempat yang satu ke tempat yang lain dengan cara benda tersebut diletakkan di atas sabuk yang berputar searah jarum jam. (lihat gambar 2.1.) 2.4.2. Komponen Modul Sabuk Berjalan dan Fungsinya
Gambar 2.1. Komponen Sabuk Berjalan •
Motor Berfungsi sebagai pengerak dari roller dan sabuk, jenis motor yang dipakai
tergantung dari kebutuhan. Tenaga yang dihasilkan motor harus dapat menggerakan beban maksimum yang diperkirakan. •
Kerangka Merupakan kerangka bentuk dari sabuk berjalan yang berfungsi menyatukan
beberapa komponen. •
Sabuk
11 Sabuk yang digunakan dapat terbuat dari fiber, karet dan plastik . •
Roller Adalah sebuah benda yang mempunyai bentuk seperti pipa dan mempunyai poros
untuk berputar yang terhubung dengan motor dan fungsinya memutarkan sabuk.
2.5.
Motor Stepper
2.5.1. Pengertian Motor Stepper adalah salah satu jenis motor DC (dirrect current) yang komponennya terdiri dari sebuah magnet permanen yang dapat berputar yang disebut rotor dan sebuah komponen elektromagnet yang mengelilingi magnet yang disebut stator. Motor stepper akan mengubah tegangan DC menjadi sebuah medan magnetis yang akan menggerakan putaran dari rotor dalam jumlah derajat tertentu. Keuntungan utama motor langkah adalah ketepatan putaran yang dapat diatur dan sangat presisi. Jenis-jenis motor langkah: Motor stepper dengan magnet yang permanen Karaketeristik Motor stepper ini memiliki sebuah rotor magnet yang permanen, konsumsi tenaga yang relatif kecil dan tidak memerlukan sebuah umpan balik bila ingin mengetahui posisi dari rotor. Motor stepper dengan variabel reluktansi Karakteristik dari motor stepper jenis ini adalah jenis motor bersifat ferromagnetic dan memiliki banyak katup. Motor stepper dengan hibrida
12 Karakteristik utama dari motor stepper jenis ini adalah perputaran sudut yang dihasilkan sebesar 0,36 derajat sampai 1,8 derajat. Perputaran ini sangat kecil dan cukup presisi.
2.5.2. Prinsip Kerja Motor Stepper Prinsip kerja dari motor stepper mengunakan prinsip dari magnet. Rotor yang berfungsi sebagai magnet permanen akan berinteraksi dengan medan magnet yang dihasilkan oleh kumparan pada stator. Apabila kutub magnet antara rotor dan stator sama maka akan tolak-menolak dan rotor akan berputar. Besarnya derajat putaran rotor tergantung banyaknya stator yang memberikan medan magnet. (lihat gambar 2.2.)
Gambar 2.2. Proses Perputaran Rotor Motor Stepper Pergerakan rotor pada motor stepper dapat dilakukan pada berbagai cara: (lihat gambar 2.3.)
13
Gambar 2.3. Jenis Perputaran Rotor Motor Stepper o Eksitasi koil tunggal Prosesnya adalah sebagai berikut : A, B, C, D. o Eksitasi koil ganda Prosesnya adalah sebagai berikut AB, BC, CD, DA. o Eksitasi koil ganda dengan half step Prosesnya adalah sebagai berikut A, AB, B, BC, C, CD, D, DA.
2.5.3. IC ULN 2003 IC ULN 2003 adalah array darlington yang mempunyai arus dan tegangan yang tinggi dan terdiri dari 7 kolektor terbuka darlington dengan common emitters. (lihat gambar 2.4.). Setiap saluran berkisar 500mA dan dapat bertahan pada arus puncak sekitar 600mA.
14
Gambar 2.4. Skematik IC ULN 2003 Tabel 2.1. Jenis IC ULN dan Kegunaannya
Kegunaan dari IC ULN 2003 ini adalah sebagai alat serba guna yang sangat bermanfaat untuk mengendalikan beban termasuk solenoid, motor DC relay, tampilan LED, thermal printheadsand high power buffers dan penguat daya untuk pengendali motor stepper.
2.6. Jaringan Syaraf Tiruan 2.6.1. Jaringan Syaraf Manusia
15 Jaringan syaraf manusia adalah organ yang mengatur, mengkoordinir dan mengintegrasikan segala fungsi & aktivitas tubuh, serta menyesuaikannya dengan perubahan-perubahan yang terjadi baik di luar tubuh (lingkungannya) maupun di dalam tubuhnya sendiri. Jaringan syaraf manusia terdiri dari susunan dan gabungan dari sel-sel syaraf yang membentuk jaringan dan mampu untuk mengolah berbagai sumber informasi. Selsel syaraf manusia diperkirakan berjumlah 1010 sampai dengan 1012 buah neuron dalam jaringan syaraf manusia. Bobot otak manusia diperkirakan 1,5 kg sehingga rata-rata bobot satu buah neuron sekitar 1,5 x 10-9 g. Jaringan syaraf manusia yang sangat spesifik dan kompleks ini disusun oleh 2 macam sel yaitu neuron dan neuroglia. Neuron adalah sel syaraf yang terdiri dari badan sel (cell body) dengan strukturstruktur yang ada di dalamnya dan tonjolan-tonjolan protoplasmanya yang berupa dendrit dan akson. (lihat gambar 2.5.). Komponen dari neuron yaitu; 1.
Badan sel (cell body) Badan sel merupakan pusat metabolik dan genetik dari neuron.
2.
Dendrit Dendrit adalah tonjolan yang keluar dari sitoplasma badan sel. Fungsi dendrit adalah menerima impuls rangsang dan meneruskan impuls itu ke badan sel.
3.
Akson Setiap neuron mempunyai satu akson yang merupakan suatu tabung silindris sitoplasma yang dibungkus oleh membran yaitu axolemma. Akson relatif panjang, merupakan saluran silindris yang menghantarkan rangsang menjauhi badan sel.
4.
Sinaps
16 Hubungan antara neuron-neuron yang biasanya terdapat di ujung terminal neuron penghantar (transmitting neuron = presynaptic side) dengan bagian penerimaan dari neuron penerima (postsynaptic side) adalah merupakan kompleks interneuronal yang spesifik, yang disebut sinaps atau synaptic junction.
Gambar 2.5. Komponen Sebuah Neuron Dalam otak manusia sebuah neuron menerima sinyal dari tonjolan-tonjolan struktur badan sel yang dinamakan dendrit. Kemudian neuron meneruskan sejumlah sinyal elektrik melalui tabung silindris yang panjang yang dikenal sebagai akson yang menyebar ke sejumlah besar branch. Pada akhir setiap branch sebuah struktur yang dinamakan sinaps mengkonversikan aktivitas dari akson menjadi efek-efek elektrik yang sesuai dengan aktivitas dari koneksi-koneksi neuron-neuron. Ketika sebuah neuron menerima masukan yang sesuai perbandingannya dengan sifat masukannya maka neuron mengirimkan sejumlah aktivitas elektrik pada aksonnya. Pembelajaran terjadi dengan mengubah keefektifan dari sinapsis yang mempengaruhi satu neuron pada perubahan berikutnya.
17 2.6.2. Artificial Neuron Neuron dan interkoneksi dari sinapsis menentukan elemen kunci dari pemrosesan informasi secara neural. Interaksi antar neuron berbeda sesuai dengan neuron-neuron yang berbeda pula. Sebuah neuron mengirimkan sinyal output pada neuron lain melalui aksonnya. Sebuah akson membawa informasi melalui sejumlah aksi potensial yang bergantung pada potensial dari neuron itu sendiri. Proses ini seringkali dimodelkan sebagai aturan propagasi (propagation rule). Sebuah neuron menerima sinyal dari setiap sinapsis dengan menjumlahkan semua aktivitasnya. Kemudian neuron akan melepaskan sinyal dan mengirimkan pesan pada setiap neuron melalui keluaran sinapsis. Fungsi dari neuron dapat dimodelkan sebagai suatu fungsi sederhana threshold f(x) yang lebih dikenal sebagai fungsi aktivasi (activation function). (lihat gambar 2.6.)
Gambar 2.6. Artificial Neuron
2.6.3. Pengertian Jaringan Syaraf Tiruan Jaringan syaraf tiruan adalah suatu paradigma dari proses informasi yang terinspirasi oleh sistem biologis manusia contohnya seperti otak manusia yang fungsinya memroses informasi. Kunci utama dari paradigma pemrosesan informasi terletak pada
18 struktur dari sistem pemrosesan informasi. Struktur pemrosesan informasi dibangun dari sejumlah besar elemen-elemen pemrosesan yang saling terkoneksi yang dinamakan neuron yang bekerja dalam satu kesatuan untuk memecahkan masalah-masalah yang spesifik. Jaringan syaraf tiruan seperti halnya manusia, belajar dari pengalaman dalam memecahkan masalah. Suatu jaringan syaraf tiruan dikonfigurasikan untuk sebuah aplikasi yang spesifik, contohnya dalam pengenalan pola (Pattern recognition) atau pengelompokan data (Data classification) melalui suatu proses pembelajaran (Learning process). Beberapa definisi yang dikemukakan oleh beberapa pakar mengenai jaringan syaraf tiruan. a.
DARPA Neural Network Study (1988, AFCEA International Press, p.60) Jaringan syaraf tiruan adalah suatu sistem yang dibentuk dari elemen-elemen
pemrosesan yang sederhana yang bekerja dalam sistem paralel di mana fungsinya diarahkan oleh struktur dari jaringan, kekuatan koneksi jaringan, dan pemrosesan terjadi pada elemen atau node yang terkomputasi. b.
Menurut Haykin, S. (1994), Neural Networks : A Comprehensive Foundation, NY: Macmillan, p.2 Suatu jaringan syaraf tiruan adalah processor yang terdistribusi paralel yang
mempunyai kemampuan alamiah untuk penyimpanan pengetahuan eksperimental dan membuatnya dapat digunakan. Hal ini menyerupai otak manusia dalam : 1.
Pengetahuan diperlukan oleh jaringan melalui sekumpulan proses pembelajaran.
2.
Kekuatan koneksi antar neuron yang dikenal sebagai bobot sinapsis digunakan untuk penyimpanan pengetahuan.
19 2.6.4. Sejarah Jaringan Saraf Tiruan Perkembangan ilmu jaringan syaraf tiruan ini, dimulai sekitar 50 tahun yang lalu, dimotivasi oleh usaha untuk mengetahui susunan jaringan syaraf otak manusia dan bagaimana kemampuan dari jaringan syaraf ini bekerja. Sejarah perkembangan jaringan syaraf tiruan dapat dilihat di bawah ini : •
Warren McCulloch dan Walter Pitts (1943) Mengembangkan model suatu jaringan syaraf tiruan yang didasari pengetahuannya tentang ilmu syaraf (neurology). Model-model ini menghasilkan beberapa asumsi mengenai bagaimana cara kerja neuron-neuron bekerja. Jaringan syaraf tiruan yang dibuat dengan dasar neuron yang sederhana yang dikenal binary devices.
•
Donald Hebb (1949) Mengusulkan mekanisme untuk pembelajaran (learning) pada biological neuron.
•
Farley dan Clark (1954); Rochester, Holland, Haibit dan Duda (1956) Grup pertama dalam peneliti IBM mengemukakan bahwa ilmu syaraf (neuroscience) tidak terlalu berperan dalam pengembangan jaringan syaraf tiruan, akan tetapi psychologists dan engineers juga berpengaruh pada simulasi jaringan syaraf tiruan.
•
Frank Rosenblatt (1958) Penemuan jaringan perceptron dan aturan pembelajaran (learning rule). Perceptron yang dikembangkan mempunyai 3 layer dengan layer tengah (middle layer) yang dikenal sebagai lapisan asosiatif (association layer). Sistem ini dapat belajar untuk berhubungan atau asosiatif input yang diberikan pada suatu unit output yang acak.
•
Bernard Widrow dan Ted Hoff (1960)
20 Memperkenalkan sistem ADALINE (Adaptive Linear Element) yaitu peralatan elektronik analog yang dibangun dari komponen-komponen sederhana. Metode yang digunakan untuk pembelajaran berbeda dengan perceptron, akan tetapi diterapkan aturan pembelajaran Least-Mean-Squares (LMS). •
Marvin Minsky dan Seymour Papert (1969) Mengemukakan batasan-batasan pada jaringan yang diusulkan Rosenblatt dan Widrow yaitu pada kemampuan terbatas dari perceptron lapis tunggal pada sistemsistem yang banyak lapisan (multilateres systems).
•
Teuvo Kohonen dan James Anderson (1972) Secara terpisah keduanya mengembangkan jaringan syaraf yang dapat berfungsi sebagai memori.
•
A. Henry Klopf (1972) Mengembangkan dasar pembelajaran dalam artigicial neurons yang berbasiskan pada prinsip biologi untuk pembelajaran neuronal yang dinamakan heterostatis.
•
Paul Werbos (1974) Mengembangkan dan menggunakan metode pembelajaran back propagation yang menggunakan perceptron dengan lapisan multilayer.
•
John Hopfield (1982) Penggunaan statistical mechanic untuk menjelaskan operasi kelas tertentu dari recurrent network yang digunakan sebagai associative network.
•
David Rumelhart dan James McClelland (1986) Penemuan algoritma back propagation untuk melatih jaringan perceptron multilayer.
•
Stephen Grossberg dan Gail Carpenter (1988)
21 Mengembangkan jaringan ART (Adaptive Resonance Theory) dalam penelitian self organizing network. •
Herman von Helmholtz, Ernst Mach dan Ivan Pavlov (akhir abad 19 dan awal abad 20) Mengenalkan teori umum mengenai learning, vision, conditioning dan lain-lain. Akan tetapi belum ada model matematis dari model neuron.
2.6.5. Kemampuan Jaringan Saraf Tiruan Jaringan syaraf tiruan dengan kemampuannya untuk mengartikan data-data yang kompleks dapat juga digunakan untuk mengekstraksi pola dan mendeteksi bagian yang sangat kompleks yang tidak mungkin terdeteksi oleh manusia ataupun teknik-teknik komputer lainnya. Jaringan syaraf tiruan yang telah dilatih dapat disebut sebagai suatu “expert” dalam kategori informasi yang diberikan untuk dianalisis. Sistem expert ini kemudian dapat digunakan pula untuk menyediakan perkiraan-perkiraan pemecahan masalah menurut situasi dan input masalah yang diberikan. Jaringan syaraf tiruan melakukan proses informasi dalam cara yang sama yang dilakukan oleh otak manusia. Jaringan mengkomposisikan sejumlah besar elemenelemen pemroses yang terinterkoneksi tinggi (neuron) bekerja secara paralel untuk memecahkan masalah yang spesifik. Jaringan syaraf tiruan belajar dari contoh-contoh. Mereka tidak dapat diprogram untuk menyelesaikan task yang spesifik. Contoh-contoh harus diseleksi secara hati-hati sehingga menyebabkan ketidakefisienan waktu ataupun jaringan tidak berfungsi secara benar. Kekurangan dari jaringan ini yaitu jika jaringan tidak menemukan pemecahan masalah maka operasinya akan tidak dapat terprediksikan. Sifat – sifat dasar dari jaringan syaraf tiruan antara lain :
22 a. Memiliki masukan yang dapat lebih dari satu, akan tetapi dapat memiliki keluaran satu dari setiap elemen. b. Dapat menyesuaikan diri terhadap perubahan-perubahan yang terjadi baik input, output, jenis jaringan, jumlah lapisan, jumlah neuron dan lainnya. c. Memiliki kemampuan yang dapat melakukan proses pembelajaran berdasarkan contoh-contoh yang diberikan. Kemampuan dari jaringan syaraf tiruan lainnya meliputi : 1. Adaptive learning : Suatu kemampuan untuk belajar bagaimana mengerjakan suatu task berdasarkan data-data yang diberikan untuk pelatihan atau pengalaman initial. 2. Self-Organisation : Suatu jaringan syaraf tiruan dapat membuat organisasinya sendiri atau merepresentasikan informasi yang diterima seiring dengan waktu pembelajarannya. 3. Real Time Operation : Komputasi dari jaringan syaraf tiruan dapat dijalankan secara paralel dan peralatan hardware spesial telah didisain dan dimanufaktur dengan mengambil keuntungan dari kemampuan ini. 4. Fault Tolerance via Redundant Information Coding : Destruksi parsial dari suatu jaringan menentukan degradasi dari performance. Bagaimanapun kemampuan beberapa jaringan mungkin dijaga meskipun dengan kerusakan jaringan utama.
2.6.6. Arsitektur Jaringan Syaraf Tiruan a.
Feed-Forward (associative) Networks Jaringan syaraf tiruan feed-forward mengijinkan sinyal untuk berjalan pada satu
jalur saja yaitu dari input ke output. Tidak ada feedback atau loop sehingga output dari
23 layer lain tidak mempengaruhi layer yang sama. Feed forward jaringan syaraf tiruan hanya memungkinkan jaringan forward dari input ke output. Biasanya jaringan ini digunakan pada pengenalan pola (pattern recognition). (lihat gambar 2.7.)
Gambar 2.7. Simple Feed forward Network b.
Feedback (autoassociative) Networks Jaringan syaraf tiruan jenis feedback dapat mempunyai sinyal-sinyal yang
berjalan dalam 2 arah dengan mengenalkan adanya perulangan (loops) pada jaringan. Jaringan syaraf tiruan jenis feedback mempunyai kemampuan yang besar dan dapat menjadi jaringan yang kompleks. Jaringan syaraf tiruan jenis feedback bersifat dinamis karena ‘state’ pada jaringan akan berubah secara berkelanjutan sampai jaringan tersebut mencapai suatu target/ nilai yang diinginkan. Suatu state akan berada pada nilai yang diinginkan sampai masukan (input) pada jaringan berubah maka suatu nilai yang baru harus ditemukan. (lihat gambar 2.8.)
24
Gambar 2.8. Complicated Network
2.6.7. Network layer Tipe yang paling umum dari jaringan syaraf tiruan terdiri dari 3 grup atau layer atau unit : sebuah layer dari unit “Input” terkoneksi dengan sebuah layer dari unit “Hidden” di mana terkoneksi pada sebuah layer dari unit “Output”. (lihat gambar 2.8.) Aktivitas pada input unit merepresentasikan informasi yang masih mentah yang dimasukkan pada jaringan. Aktivitas dari setiap hidden unit ditentukan oleh aktivitas dari input unit dan bobot dari koneksi antara input unit dengan hidden unit. Sedangkan sifat dari output unit bergantung pada aktivitas dari hidden unit dan bobot dari koneksi antara hidden unit dengan output unit. Tipe sederhana dari jaringan syaraf tiruan sangat menarik karena hidden unit mempunyai kewenangan bebas untuk merekonstruksi suatu representasi terhadap masukan (input) pada jaringan. Bobot antara input unit dengan hidden unit ditentukan ketika setiap hidden unit tersebut aktif dan kemudian dengan memodifikasi bobot tersebut maka sebuah hidden unit dapat memilih bagaimana unit tersebut direpresentasikan pada jaringan syaraf tiruan.
25 Pada organisasi layer tunggal di mana semua unit-unitnya terkoneksi satu dengan yang lain dapat diaplikasikan pada kasus-kasus umum dan lebih mempunyai kekuatan komputasi yang potensial dibandingkan dengan organisasi multi-layer yang terstruktur hirarki. Pada jaringan yang multi-layer unit-unit seringkali diberi nomor sesuai dengan layernya yang dapat diikuti sebagai global numbering.
2.6.8. Metode Pelatihan Jaringan Syaraf Tiruan Salah satu karakteristik paling penting yang dapat membedakan jaringan syaraf yang satu dengan yang lainnya adalah metode dari penentuan nilai bobot (pelatihan). Metode pelatihan jaringan dibagi menjadi 2 ,yaitu: a.
Metode pelatihan dengan pengawasan (Supervised Learning) Metode pembelajaran atau pelatihan yang dilakukan dengan menghadirkan
sejumlah vektor pelatihan atau pola. Metode pelatihan ini dilakukan dengan memberikan pasangan nilai masukan dan nilai keluaran atau target yang ingin dicapai. Bobot koneksi akan disesuaikan berdasarkan algoritma pembelajaran sampai jaringan mampu menghasilkan nilai keluaran yang mendekati atau sama dengan nilai keluaran yang dinginkan. Bobot koneksi ini dapat disesuaikan dengan mengatur algoritma pelatihannya. Tujuan dari penyesuaian bobot koneksi ini untuk membantu jaringan syaraf tiruan yang dibuat mampu menghasilkan nilai keluaran yang sesuai dengan nilai keluaran yang diharapkan sehingga perbedaan menjadi seminimal mungkin. b.
Metode pelatihan dengan tanpa pengawasan (Unsupervised Learning) Pada metode unsupervised learning, jaringan syaraf tiruan akan mengelompokan
input vektor yang mempunyai kemiripan tanpa menggunakan data pelatihan untuk menspesifikasikan seperti apa tipe anggota dari setiap kelompok atau ke kelompok
26 manakah setiap vektor sesuai. Sejumlah vektor input pola diberikan tetapi tanpa menyertakan vektor output target yang ingin dicapai. Jaringan akan memodifikasi bobot sehingga hanya ada vektor input yang paling banyak memiliki kemiripan saja yang dipasangkan dengan pola vektor output yang sama. Jaringan syaraf tiruan akan menghasilkan representasi vektor untuk setiap cluster yang terbentuk. Contoh dari model pembelajaran unsupervised learning ini adalah Kohonen self organizing maps dan Adaptive Resonance Theory. Unsupervised learning juga dapat digunakan untuk melakukan clustering. c.
Fixed-weight Nets Tipe pembelajaran lainnya dapat dipergunakan untuk menyelesaikan masalah
optimasi constraint. Tetapi metode Fixed-weight Nets dapat bekerja lebih baik dalam menyelesaikan masalah yang menyebabkan terjadinya kesukaran jika dikerjakan dengan teknik tradisional, seperti masalah constraint yang konflik (dengan kata lain, tidak semua constraint dapat dipenuhi secara bersamaan). Ketika jaringan tersebut didesain, bobot-bobot disiapkan agar dapat mempresentasikan constraint dan kualitas untuk dimaksimalkan atau diminimalkan. Contoh dari metode pembelajaran Fixed-weight Nets ini adalah Boltzman machine dan Continous Hopfield Net, Keduanya dapat dipergunakan dalam menyelesaikan masalah optimasi constraint. Selain itu metode ini dipergunakan juga dalam jaringan contrast-enhancing.
2.6.9. Fungsi aktivasi (Transfer Funtion) Operasi dasar dari suatu neuron artificial menyangkut masalah penjumlahan setiap input yang telah diberi bobot dan menghasilkan output dengan menerapkan suatu
27 fungsi pengaktifan atau transfer function. Pada umumnya, setiap neuron dalam jaringan syaraf tiruan menggunakan transfer function yang sama. Dengan tujuan untuk memperoleh keuntungan yang dimiliki oleh jaringan multilayer jika dibandingkan dengan jaringan single-layer, fungsi nonlinier dibutuhkan. Hal ini disebabkan karena hasil dari feeding signal melalui satu atau lebih layer dengan elemen pengolah linier, tidak akan berbeda dengan apa yang dapat diperoleh jika menggunakan single layer. Beberapa contoh fungsi aktivasi (transfer function) : a.
Identity Function f(x) = x , untuk semua x
b.
…………………………………….. (2.1)
Binary Step Function (dengan threshold θ) Jaringan single-layer sering menggunakan step function untuk memodifikasi input
yang masuk (yang merupakan variabel bernilai kontiniu) ke unit output yang merupakan sinyal biner (1 atau 0) atau bipolar (1 atau -1). Binary step function dikenal juga dengan sebutan fungsi threshold atau fungsi heavyside. 1, x ≥ 0 f ( x) = 0, x < 0 c.
…………………………………….. (2.2)
Binary Sigmoid Fungsi binary sigmoid merupakan fungsi aktifasi yang sangat berguna. Fungsi
logaritma dan fungsi tangen hiperbola adalah fungsi yang paling sering dipergunakan. Kedua fungsi tersebut sangat berguna jika dipergunakan dalam melatih jaringan syaraf tiruan dengan teknik backpropagation, karena hubungan sederhana antara nilai dari fungsi pada sutau titik dan nilai dari turunan fungsi pada titik tersebut akan mengurangi halangan komputasi selama pelatihan.
28 Fungsi logaritma adalah fungsi sigmoid dengan nilai 0 dan 1, sering dipergunakan sebagai fungsi aktifasi untuk jaringan syaraf tiruan di mana nilai output yang diinginkan berupa biner atau dalam interval 0 dan 1. Fungsi tersebut juga dikenal dengan nama binary sigmoid atau juga logistic sigmoid. 1 1 + e ( −σ . x ) f ' ( x) = σ . f ( x)[1 − f ( x)] f ( x) =
d.
…………………………………….. (2.3)
Bipolar Sigmoid Fungsi binary sigmoid dapat diskalakan agar memiliki range nilai yang sesuai
dengan masalah tertentu. Range yang paling sering dipergunakan antara -1 dan 1. Sigmoid jenis ini disebut dengan nama bipolar sigmoid. 2 1 − e ( −σ . x ) g ( x) = 2. f ( x) − 1 = −1 = 1 + e ( −σ . x ) 1 + e ( −σ . x ) g ' ( x) =
σ
2
.[1 + g ( x)][ . 1 − g ( x)]
…………………..… (2.4)
Fungsi bipolar sigmoid terkait erat dengan fungsi tangen hiperbola yang sering dipergunakan sebagai fungsi aktifasi ketika range nilai output yang diinginkan antara -1 dan 1. Fungsi tangen hiperbola tersebut adalah : h( x ) =
e ( x ) − e ( − x ) 1 − e ( −2 x ) = e ( x ) + e ( − x ) 1 + e ( −2 x )
…………………………………….. (2.5)
Turunan dari tangen hiperbola adalah : h' ( x) = [1 + h( x)][ . 1 − h( x ) ]
…………………………………….. (2.6)
Untuk data biner biasanya akan lebih baik jika dikonversi ke dalam bentuk bipolar kemudian menggunakan fungsi bipolar sigmoid dan tangen hiperbola.
2.6.10. Algoritma Propagasi Balik (Backpropagation Algorithm)
29 Menurut Fausett (1994, pp 289-330), pelatihan jaringan syaraf tiruan dengan mempergunakan backpropagation melibatkan 3 tahap : feedforward dari setiap pola untuk input pelatihan, perhitungan dan backpropagation terhadap error (kesalahan) yang terjadi dan perbaikan bobot (weight). Setelah pelatihan, jaringan syaraf tiruan dalam suatu aplikasi hanya memerlukan tahapan feedforward. Jaringan propagasi balik mempunyai ciri tersendiri dengan tiga bagian layer yang dimilikinya, yaitu : a.
Input layer, berisi node-node input masukan dari vektor data masukan yang diiterasikan satu putaran pelatihan (1 epochs) tercapai jika semua data latihan telah masuk secara bergantian dalam layer input.
b.
Hidden layer, nilai dari layer ini bergantung dari fungsi aktifasi yang digunakan dengan variabel jumlah dari perkalian antara tiap node input layer dan jaringan penghubungnya. Fungsi utama dari hidden layer ini adalah sebagai variabel di tengah yang akan mengubah nilai bobot (weight) yang ada di sebelahnya pada saat terjadi proses propagasi. Proses propagasi tersebut akan mengubah nilai tiap node pada hidden layer yang akan digunakan untuk meng-update nilai bobot (weight). Tidak ada ketentuan khusus mengenai jumlah hidden layer dan banyaknya node di tiap hidden layer tetapi analoginya semakin banyak layer dapat berakibat makin lama perhitungan karena membutuhkan sumber daya yang besar. Pada beberapa penelitian membuktikan bahwa jumlah layer lebih dari satu dapat bekerja lebih optimal.
c.
Output layer, layer ini merupakan layer yang memproyeksikan hasil yang akan didapat setelah proses pelatihan, nilai keluaran pada layer ini adalah hasil yang direspon oleh jaringan syaraf tiruan atas vektor masukan yang diberikan.
30
Melatih jaringan dengan mempergunakan backpropagation melibatkan 3 tahap : feedforward dari setiap pola untuk input pelatihan, perhitungan dan backpropagation terhadap error (kesalahan) yang terjadi dan perbaikan bobot (weight). Cara kerja algoritma propagasi balik secara garis besar adalah sebagai berikut : 1.
Ambil pasangan pola input dan output dari setiap data.
2.
Melakukan perhitungan mencari nilai aktifasi fungsi pembentuk hidden layer.
3.
Lakukan perbandingan antara output yang diperoleh dengan output yang ditargetkan.
4.
Jika melampaui toleransi kesalahan, maka lakukan proses backpropagation untuk mengubah nilai jaringan penghubung.
5.
Lakukan terus menerus hingga kesalahan sistem yang didapat mendekati toleransi kesalahan.
2.6.10.1. Nomenkaltur Nomenkaltur yang dipergunakan dalam algoritma pelatihan untuk jaringan backpropagation adalah sebagai berikut : X in_i
= Sinyal masukan pada lapisan masukan
Z in_j
= Sinyal masukan pada lapisan dalam
Y in_k
= Sinyal masukan pada lapisan keluaran
X out_i
= Sinyal keluaran pada lapisan masukan
Z out_j
= Sinyal keluaran pada lapisan dalam
Y out_k
= Sinyal keluaran pada lapisan keluaran
Tk
= Nilai yang diharapkan (Output target vektor)
31 Xi
= Elemen pada lapisan masukan (Input unit)
Zj
= Elemen pada lapisan dalam (Hidden unit)
Yk
= Elemen pada lapisan keluaran (Output unit)
α
= Kecepatan pelatihan (Learning rate)
Vij
= Bobot koneksi antara elemen pada lapisan masukan dengan lapisan dalam
Wjk
= Bobot koneksi antara elemen pada lapisan dalam dengan lapisan keluaran
Voj
= Bobot bias antara elemen pada lapisan masukan dengan lapisan dalam dengan Xi = 1
Wok
= Bobot bias antara elemen pada lapisan dalam dengan lapisan keluaran dengan Zj = 1
δk
= Faktor kesalahan dari Yk ke Zj (lapisan keluaran terhadap lapisan dalam)
δj
= Faktor kesalahan dari Zj ke Xi (lapisan dalam terhadap lapisan masukan)
Proses yang terjadi pada setiap elemen : Jumlah seluruh perkalian antara bobot koneksi dengan sinyal masukan ditambahkan dengan bobot bias yang masuk pada setiap elemen. Dimisalkan untuk lapisan dalam : Untuk sinyal masukan pada elemen Zj : Z in_j = Voj + Σ Xi.Vij
…………………………………….. (2.7)
Untuk sinyal keluaran pada elemen Zj : Z out_j = ƒ (Z in_j)
…………………………………….. (2.8)
Setiap keluaran dari satu elemen pada lapisan yang satu menjadi masukan pada elemen pada lapisan yang berikutnya.
32 Ada beberapa karakteristik penting yang harus dimiliki oleh fungsi aktivasi untuk jaringan yang menggunakan backpropagation : bersifat kontinu, dapat diturunkan dan monotonik nondecreasing. Salah satu fungsi aktivasi yang paling sesuai adalah fungsi aktivasi pada setiap elemen dengan persamaan Binary Sigmoid Function dengan range (0,1) dan didefinisikan sebagai berikut : (Laurence Fausett pp.293) ƒ(x) = 1 / (1 + exp (-x))
(lihat gambar 2.9. (a))
dan persamaan turunannya menjadi ƒ’(x) = ƒ(x) [1 – ƒ(x)]
(a) f(x)
(lihat gambar 2.9. (b))
(b) f ’ (x)
Gambar 2.9. Grafik Persamaan Binary Sigmoid Function Dalam
algoritma pelatihan ini diperlukan fungsi kesalahan yang digunakan
untuk meminimalkan jumlah kuadrat kesalahan yang terjadi.: Pada lapisan keluaran (output unit) :
33
E = 0.5∑ (Tk − Yk ) 2 ∂E ∂ 2 = 0.5∑ [t k − y k ] ∂Wjk ∂Wjk ∂E ∂ 2 = 0.5∑ [t k − f ( y _ in k )] …….…………………………….(2.9) : ∂Wjk ∂Wjk ∂E = − t k − y k ] f ' ( y _ in k ) z _ out j ∂Wjk
[
Dengan faktor kesalahan δk : ∂ k = −2[tk − yk ] f ' ( y _ ink )
…………………………………….. (2.10)
Pada lapisan dalam (hidden unit) : ………………………………………(2.11) ∂E ∂ yk = −∑ [t k − y k ] ∂Vij ∂Vij ∂E ∂ y _ in k = −∑ [t k − y k ]f ' ( y _ in k ) ∂Vij ∂Vij ∂E ∂ y _ in k = −∑ ∂ k ∂Vij ∂Vij ∂E ∂ zj = −∑ ∂ k Wjk Vij ∂Vij ∂E = − f ' ( z _ in j ) xi ∑ ∂ k (Wjk ) ∂Vij
Dengan faktor kesalahan δj: ∂ j = f ' ( z _ in j )∑ ∂ k (Wjk )
…………………………………….. (2.12)
Sehingga terjadi perubahan pada bobot koneksi: Wjk (baru ) = Wjk (lama ) + ∆Wjk Wjk (baru ) = Wjk (lama ) + α .δ k .z _ out j Vij (baru ) = Vij (lama ) + ∆Vij Vij (baru ) = Vij (lama ) + α .δ j .xi
………………..…………… (2.13)
34
2.6.10.2. Algoritma Pelatihan
Untuk pelatihan propagasi balik diperlukan beberapa langkah sebagai berikut: Step 0 Inisialisasi bobot-bobot koneksi dan bias, dilakukan secara acak. Step 1 Jika kondisi berhenti = false (salah), lakukan langkah 2-9, namun jika kondisi benar, pelatihan dihentikan. Step 2 Untuk setiap pasangan pelatihan, lakukan langkah 3 – 8.
Fase umpan maju (Feedforward): Step 3 Setiap unit input (Xi, i=1, ... , n) menerima signal input dan menyebarkan signal tersebut ke seluruh unit pada layer di atasnya (unit-unit hidden unit Zj). Step 4 Setiap unit hidden layer (Zj, j=1, ... , p) akan menjumlahkan semua signal input yang telah terboboti yang masuk kepadanya. Z_inj = V0j + ∑ Xi . Vij Pergunakan fungsi aktivasinya untuk menghitung signal outputnya, Z out_J = ƒ (Z_inj) Dan kirimkan signal tersebut ke seluruh unit pada layer di atasnya (unit-unit output). Step 5 Setiap unit output layer (Yk, k=1, ... , n) akan menghitung seluruh signal input yang telah terboboti yang masuk kepadanya. Y_ink = W0k + ∑ Zj . Wjk Pergunakan fungsi aktivasinya untuk menghitung signal outputnya, Y out_k = ƒ (Y_ink)
35 Backpropagation untuk kesalahan (error): Step 6 Setiap unit output (Yk, k=1, ... , n) menerima pola target yang berhubungan dengan pola pelatihan input, hitung kesalahan informasi yang terjadi. δk = (tk - Yout_k) ƒ’( Y_ink) Hitung perbaikan bobotnya (akan dipergunakan untuk perbaikan bobot Wjk nantinya), ∆Wjk = α . δk . Zj Hitung perbaikan biasnya (akan dipergunakan untuk perbaikan bias Wok nantinya), ∆Wok = α . δk Dan kirimkan δk ke unit-unit pada layer di bawahnya hidden unit. Step 7 Setiap unit hidden layer (zj, j=1, ... , p) jumlahkan input-input deltanya (dari unitunit di layer di atasnya), δ_inj = ∑ δk . Wjk Kalikan dengan turunan dari fungsi aktivasinya untuk menghitung kesalahan informasi. δj = δ_inj . ƒ’ (Zin_j) Hitung perbaikan bobotnya (akan dipergunakan untuk perbaikan bobot Wjk nantinya), ∆Vij = α . δj . Xi Hitung perbaikan biasnya (akan dipergunakan untuk perbaikan bias Wok nantinya), ∆Voj = α . δj
36 Perbaikan bobot-bobot dan bias : Step 8 Setiap unit output (Yk, k=1, ... , n) akan diperbaiki bias dan bobot-bobotnya (j=0, ... ,p), Wjk (baru) = Wjk (lama) + ∆Wjk Setiap unit hidden layer (Zj, j=1, ... , p) akan diperbaiki bias dan bobot-bobotnya (i=0, ..., n), Vij (baru) = Vij (lama) + ∆Vij Step 9 Tes terhadap kondisi berhenti. (kembali kelangkah nomor 1)
2.7.
Parallel Port
Paralel port adalah sebuah antar muka yang mendukung transmisi data dalam bentuk bit secara bersamaan (paralel). Port ini biasanya dihubungkan dengan sebuah printer, namun tidak jarang juga digunakan dalam komunikasi data dengan perangkat lain. Parallel port sering disebut sebagai DB 25 yang dikarenakan terdiri dari 25 pin kaki pada portnya. untuk lebih jelasnya dapat dilihat pada gambar dibawah ini :
37
Gambar 2.10. Parallel Port Pengalamatan pada DB 25 atau parallel port dikembangkan karena adanya keinginan mengirimkan data lebih cepat (8 bit) dari serial port (RS 232), di mana serial port hanya mengirimkan data 1 bit persatu proses. Paralel port merupakan port yang paling banyak digunakan dalam komunikasi terutama dengan printer. Parallel port terdiri dari 25 pin dimana dibagi menjadi beberapa fungsi: (lihat gambar 2.10.) a.
Pin data, berjumlah 8 buah yang dimulai dari pin 2-9 yang berwarna biru. Pin ini berfungsi untuk mengirimkan data sebesar 8 bit secara bersamaan pada satu kali proses. Bit yang dikirimkan berbentuk binary (1 dan 0) di mana bila bit bernilai 1 tegangan sebesar 5 volt dikirimkan ke pin yang sesuai dan bila bit bernilai 0 tidak akan menimbulkan tegangan apa-apa. Pengiriman data melalui parallel port merupakan cara yang paling mudah untuk mengirimkan informasi digital karena kecepatan pengiriman dapat mencapai 50 sampai 100 kilobyte data permenit.
b.
Pin status, berjumlah 5 buah yang dimulai dari pin 10, 11, 12, 13 dan 15 yang berwarna merah. Pin ini berfungsi untuk mengirimkan informasi mengenai status dari sebuah alat yang terhubung dengan port paralel. Pin status mempunyai
38 tegangan sebesar 2,8 - 5 volt dan akan turun menjadi dibawah 0,5 volt apabila terjadi proses pengiriman data. c.
Pin control, berjumlah 4 buah yang terdiri dari pin 1, 14, 16, 17 yang berwarna biru. Pin ini berfungsi mengatur proses perpindahan bit. Seperti pin status, pin kontrol juga mempunyai tegangan bernilai 5 volt dan akan menjadi turun sebesar 0,5 volt bila terjadi pengiriman bit.
d.
Pin grounde, berjumlah 8 buah yang dimulai dengan pin 18-25 yang berwarna hijau. Pin ini berfungsi sebagai pemberi signal referensi untuk tegangan rendah (dibawah 0,5 volt).
2.8.
MATLAB
MATLAB adalah bahasa pemrograman yang berbasiskan matriks yang komputasinya terintergrasi, mempunyai kemampuan visualisasi yang baik dan mempunyai aplikasi antar muka (Graphical User Interface) yang mudah dimengerti. Perintah-perintah MATLAB dinotasikan dalam bentuk notasi matematika, oleh karena itu banyak orang melihat MATLAB sebagai sebuah kalkulator tingkat tinggi yang dapat diprogram dan dapat menyelesaikan permasalahan khusus dengan fungsi khusus yang terintergrasi dalam toolbox. Nama MATLAB merupakan singkatan dari matrix laboratory. MATLAB diciptakan untuk menyediakan akses yang mudah bagi software matrix yang dikembangkan oleh LINPACK dan EISPACK. Saat ini, MATLAB mengunakan perkembangan software oleh LAPACK dan ARPACK, yang bergabung menghasilkan sebuah komputasi matrix yang revolusioner. MATLAB biasanya digunakan untuk matematika dan komputasi, perkembangan algoritma, modeling, simulasi, prototipe,
39 analisis data, visualisasi, grafik dan antarmuka grafis. MATLAB yang digunakan pada penelitian ini mengunakan MATLAB ver 6.0.1
Sistem MATLAB terdiri dari 5 bagian : a.
Development Environment ini merupakan beberapa alat bantu dan fasilitas yang
membantu kita melihat fungsi MATLAB. Banyak dari alat bantu ini adalah sebuah antarmuka grafis (GUI). Ini termasuk MATLAB dekstop dan Command window, Command history, dan pencari untuk menampilkan menu help, tempat kerja, files dan search path. b.
The MATLAB Mathematical Function Library. Ini merupakan kumpulan
algoritma komputasi dimulai dari perintah dasar seperti perintah tambah (+), sinus, kosinus dan arimatika kompleks. untuk perintah yang lebih sulit seperti inverse matrix, matrix eigenvalues, fungsi bessel, dan fast fourier transform. c.
The MATLAB Language. Ini adalah sebuah matrix tingkat tinggi dengan
statement aliran kontrol, fungsi, struktur data, masukan / keluaran, dan pemograman berdasarkan objek. Bagian ini memperbolehkan membuat suatu program yang kecil dan sederhana atau suatu aplikasi program yang besar dan komplek. d.
Handle Graphics®. Ini adalah grafik sistem MATLAB. Termasuk didalamnya
perintah tingkat tinggi untuk visualisasi data dua dimensi atau tiga dimensi, pengolahan citra, animasi dan presentasi grafik. Ini juga termasuk perintah tingkat rendah yang memperbolehkan dalam mengubah penampilan dari grafik seperti membuat antar muka (GUI) pada aplikasi MATLAB.
40 e.
The MATLAB Application Program Interface (API). Ini adalah sebuah
perpustakaan yang memperbolehkan dalam menulis program C atau Fotran yang akan berinteraksi dengan MATLAB. Ini termasuk fasilitas untuk memanggil Routine (sambungan dynamic), memanggil MATLAB sebagai mesin komputasi, dan untuk membaca dan menulis file MATLAB.