Proses Pembelajaran Proses Perhitungan Saat Pembelajaran Rancangan Masukan

19 Dari matriks di atas kemudian diubah ke dalam bentuk bipolar sehingga diperoleh: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Matriks di atas kemudian diolah menjadi matriks bobot yang akan digunakan sebagai media penyimpan pola, sekaligus menandakan dimulainya proses pembelajaran.

2.5.2. Proses Pembelajaran

Pada bagian ini merupakan sisi kelebihan dari metoda Jaringan Syaraf Tiruan, dimana setiap permasalahan yang akan dihadapi dapat dipecahkan dengan melalui tahapan pembelajaran, seperti halnya otak manusia yang secara sifat biologis, memiliki kemampuan untuk mempelajari hal-hal yang baru. Memang pada dasarnya, jaringan syaraf tiruan ini dibuat untuk dapat mempelajari sesuatu hal yang baru sehingga mampu melakukan penganalisaan tanpa menggunakan suatu rumusan yang baku. Proses pembelajaran ini sangat mempengaruhi sensitifitas kemampuan dalam melakukan penganalisaan. Jika semakin banyak bahan atau masukan sebagai pembelajaran, maka akan semakin mudah dan sensitif dalam melakukan analisa. Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 20

2.5.3. Proses Perhitungan Saat Pembelajaran

Proses ini melibatkan 2 dua faktor penting, yaitu masukan dan keluaran yang ditentukan. Keluaran tersebut merupakan bagian dari sistem atau metoda pembelajaran yang dinamakan “Supervised Learning”, dengan demikian setiap masukan memiliki keluaran yang nantinya akan dijadikan sebagai acuan pembelajaran. Hal inilah yang membuat Neural Network melakukan penganalisaan, selain banyaknya masukan yang diberikan, proses pembelajaran yang dilakukan secara berulang pun akan menunjang kemampuan Neural Network saat menganalisa.

2.5.4. Output Keluaran

Bagian ini merupakan proses yang digunakan untuk mengetahui seberapa besar pengaruh pembelajaran terhadap keluaran yang diinginkan. Jika hasil yang diinginkan kurang sesuai, maka kemungkinan yang terjadi adalah:  Variabel masukan informasi yang diberikan kurang menunjang  Kurangnya layer pada rancangan keseluruhan  Jumlah neuron yang terlalu sedikit Namun tidak menutup kemungkinan karena ketidaksesuaian penerapan saat proses pembelajaran dilakukan juga dapat mempengaruhi proses pembelajaran.

2.6. Algoritma Hopfield

Terdapat beberapa versi algoritma dari jaringan Hopfield. Pada penjelasan pertama Hopfield 1982 menggunakan input vektor biner. Untuk menyimpan suatu pola biner Sp, p = 1,…, p, dimana Sp = S 1 p,…, S i p, …, S n p, untuk matriks bobotnya W = {w ij } diperoleh dengan Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 21 untuk i ≠ j dan Pada penjelasan lainnya Hopfield 1984 menggunakan input bipolar. Untuk menyimpan pola bipolar, matriks bobot yang digunakan W = {w ij }, diperoleh dengan dan Proses pembelajaran terjadi pada saat neuron yang saling terhubung aktif pada saat yang bersamaan. Jika ini terjadi, maka nilai bobot harus berubah. Dalam proses perubahan bobot Hopfield menggunakan aturan Hebb, yang mana: Aplikasi dari algoritma jaringan Hopfield dapat dilihat: Langkah 1. Inisialisasi bobot untuk menyimpan pola dengan menggunakan aturan Hebb. Jika aktivasi jaringan belum mencapai konvergen ulangi langkah 2 sampai 8. Langkah 2. Untuk setiap input vektor x, lakukan langkah 3 sampai 7. Langkah 3. Tentukan aktivasi awal jaringan sama dengan input eksternal vektor x. Langkah 4. Lakukan langkah 5 sampai 7 untuk setiap Y i , perubahan unit adalah acak. Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 22 Langkah 5. Hitung jaringan input: Langkah 6. Tentukan aktivasi sinyal output Untuk ambang, , biasanya bernilai nol. Langkah 7. Masukkan nilai y i ke dalam unit-unit lainnya. terjadi perubahan vektor aktivasi. Langkah 8. Uji apakah terjadi konvergensi Analisa pada fungsi Lyapunov biasa juga disebut sebagai fungsi energi untuk jaringan Hopfield adalah bagian penting yang akan menunjukkan bahwa telah terjadi konvergensi, dimana sebelumnya bobot telah berubah secara asinkron dan nilai 0 pada diagonalnya Fausett, L, 1994. Adapun Algoritma Hopfield dalam penerapan pola angka 0 sampai angka 9 adalah sebagai berikut: 1. Menciptakan vektor pola yang ke – p, yang merupakan himpunan n simpul untuk pola yang ke- p. Sp = S 1 p, S 2 p, …, S i p, …, S n p Keterangan: P = Jumlah Pola Angka 2. Menciptakan matriks koneksi sebagai tempat pola contoh yaitu angka 0 sampai pola angka 9 yang disimpan dalam suatu konstanta. Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 23 Koneksi pada jaringan syaraf Hopfield dapat dilihat pada tabel berikut: Tabel 1. Koneksi pada jaringan syaraf Hopfield Neuron 1 N1 Neuron 2 N2 Neuron 3 N3 Neuron 4 N4 Neuron 1 N1 Tidak Ada N2N1 N3N1 N4N1 Neuron 2 N2 N1N2 Tidak Ada N3N2 N4N2 Neuron 3 N3 N1N3 N2N3 Tidak Ada N4N3 Neuron 4 N4 N1N4 N2N4 N3N4 Tidak Ada 3. Keterangan: P = jumlah bobot W ij = bobot koneksi dari simpul i ke simpul j S i p = elemen in dari pola s yang hanya memiliki nilai +1 atau -1 S j p = elemen in dari pola s yang hanya memiliki nilai +1 atau -1 Untuk membentuk matriks bobot dimulai dengan matriks koneksi bobot kosong: Misalkan ingin menerima nilai 0101, untuk ini terlebih dahulu dibentuk matriks koneksi dari 0101. Matriks koneksinya kemudian ditambahkan ke dalam matriks koneksi bobot. Saat nilai dimasukkan, matriks koneksi bobot berada dalam proses pengenalan pola baru. Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 24 Langkah berikutnya adalah mengubah nilai 0101 menjadi bipolar, sehingga menjadi: 0 = -1 1 = 1 0 = -1 1 = 1 Sehingga diperoleh sebuah array -1, 1, -1, 1. Array ini kemudian digunakan untuk membangun matriks kontribusi 0101 dengan cara mengalikan dengan transposenya. Hasilnya dapat dilihat sebagai berikut: Langkah selanjutnya adalah membuat 0 secara diagonal nilai dari sudut kiri atas sampai sudut kanan bawah. Hal ini dilakukan karena neuron pada jaringan Hopfield tidak terhubung pada dirinya sendiri, sehingga matriks diatas menjadi: Matriks di atas dapat ditambahkan ke dalam matriks koneksi bobot yang sudah ada. Jika pola yang ingin dikenali hanya 0101, maka matriks di atas menjadi matriks bobotnya. 4. Kerjakan langkah-langkah ini selama pola belum konvergen. Langkah a: Untuk tiap vektor x x 1 , x 2 , …, x n . Langkah b: Inisialisasi pola input yang tidak diketahui. Y i = X i dengan i = 1 … n Langkah c: Kerjakan langkah b sampai semua pola diuji. Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 25 Langkah d: Langkah e: Determinitive Activation Sinyal Output. y i = Keterangan: 0 i selalu berharga 0 Langkah f: Hasil dari output Y i berlaku untuk semua pola lain. Langkah g: Uji pola sampai konvergen. 1 untuk y_in i  0 -1 untuk y_in i Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 26

2.7. Flowchart Algoritma Hopfield

Gambar 7. Flowchart Algoritma Hopfield Tentukan Matriks Bobot Bangun JST Hopfield Jalankan JST Hopfield Sampai Keadaan Stabil Proses Pembelajaran P rose s Ka lkul asi Cek Kondisi Konvergen Tidak Terpenuhi Terpenuhi Mulai Pola Angka Dikenali Selesai Cek Solusi Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 27 BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

3.1 Analisis Kebutuhan

Tulisan tangan sangat penting dalam komunikasi antar manusia. Baik dalam kebutuhan komunikasi pribadi seperti surat menyurat, catatan, maupun dalam komunikasi bisnis seperti surat berharga bank, pajak, perjanjian kerja dan lain-lain. Tulisan tangan adalah hasil penggabungan kerja otak dan tubuh seseorang, sehingga menjadikannya berbeda antar setiap pribadi sebagaimana wajah dan sifatnya. Interaksi dan ketergantungan manusia akan komputer semakin meningkat. Komputer semakin dibutuhkan untuk mempermudah pekerjaan. Pengenalan pola tulisan tangan secara otomatis sangat dibutuhkan apabila dokumen-dokumen tersikulasi berada pada jumlah yang besar. Angka-angka pada kartu pos, cek bank, pajak akan lebih mudah untuk disortir apabila pendataan dapat dilakukan secara otomatis. Beberapa penelitian telah berhasil menghasilkan penerapan dari pengenalan pola angka. Dengan menggunakan Optical Characters Recognition OCR, Salim Ouchtati menunjukkan pengenalan pola yang sudah mengalami kerusakan pada tampilannya. Dengan dasar penelitian jurnal di atas, penulis mencoba untuk mengenali pola angka dengan algoritma yang berbeda yakni dengan menggunakan algoritma Hopfield. Berdasarkan landasan teori, secara umum bentuk struktur jaringan syaraf tiruan Hopfield dapat digambarkan sebagai berikut: Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 28 Gambar 8. Struktur Jaringan Hopfield Keterangan: x 0..N = input y 0...N = output w 00…ij = bobot

3.2 Aplikasi Algoritma Hopfield

Misalkan dalam sebuah vektor biner tersimpan pola 1, 1, 1, 0 atau ekuivalen dengan bipolar yaitu pola 1, 1, 1, -1 dan dimasukkan ke dalam sebuah network. Misalkan pola yang tersimpan dirusak dan diberi derau ataupun polanya diacak sehingga berubah menjadi 0, 0, 1, 0, oleh karena itu dengan menggunakan algoritma Hopfield dapat diperoleh kembali pola semula yaitu 1, 1, 1, 0. Output dari pola misalkan disimpan dalam bentuk acak yaitu Y 1 , Y 4 , Y 3 , dan Y 2 . Penyelesaian dari masalah pada halaman sebelumnya adalah sebagai berikut: Langkah 1: Inisialisasi bobot untuk menyimpan pola, yaitu: Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 29 W = Langkah 2: Vektor input yang sudah diacak adalah X=0, 0, 1, 0, dengan X 1 =0, X 4 =0, X 3 =1, dan X 2 =0. Dari vektor input, akan dimasukkan ke dalam jaringan. Langkah 3: Tentukan nilai output Y awal yaitu vektor input x yang diacak 0, 0, 1, 0. Langkah a: Pilihlah unit Y 1 untuk melakukan perubahan aktivasi. = 0 + 1 = 1 Langkah b: y_in 1 0 y 1 = 1 Karena nilai y_in 1 lebih besar dari 0, maka aktivasi berubah dan menja- dikan nilai Y 1 =1. Langkah c: Nilai output sementara adalah: Y 1 =1, Y 4 =0, Y 3 =1, dan Y 2 =0, atau dalam bentuk vektor 1, 0, 1, 0. Langkah 4: Langkah a: Pilihlah unit Y 4 untuk melakukan perubahan aktivasi. = 0 + -2 = -2 Langkah b: y_in 4 0 y 4 = 0 Karena nilai y_in 4 kurang dari 0, maka aktivasi tetap dan menjadi- kan nilai Y 4 tetap bernilai = 0. Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 30 Langkah c: Nilai output sementara adalah: Y 1 =1, Y 4 =0, Y 3 =1, dan Y 2 =0, atau dalam bentuk vektor 1, 0, 1, 0. Langkah 5: Langkah a: Pilihlah unit Y 3 untuk melakukan perubahan aktivasi. = 1 + 1 = 2 Langkah b: y_in 3 0 y 3 = 1 Karena nilai y_in 1 lebih besar dari 0, maka aktivasi berubah dan menja- dikan nilai Y 3 = 1. Langkah c: Nilai output sementara adalah: Y 1 =1, Y 4 =0, Y 3 =1, dan Y 2 =0, atau dalam bentuk vektor 1, 0, 1, 0. Langkah 6: Langkah a: Pilihlah unit Y 2 untuk melakukan perubahan aktivasi. = 0 + 2 = 2 Langkah b: y_in 2 0 y 2 = 1 Karena nilai y_in 2 lebih besar dari 0, maka aktivasi berubah dan menja- dikan nilai Y 1 =1. Langkah c: Nilai output terakhir adalah: Y 1 =1, Y 4 =0, Y 3 =1, dan Y 2 =1, atau dalam bentuk vektor 1, 1, 1, 0. Langkah 7: Lakukan pengujian sampai output konvergen. Karena iterasi terakhir output sudah menunjukkan kondisi konvergen, maka output tersebut akan dijadikan output jaringan syaraf tiruan. Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 31

3.3. Kondisi Konvergen

Hopfield 1984 melalui penelitiannya membuktikan bahwa jaringan syaraf tiruannya akan konvergen pada nilai batas stabil dengan menggunakan fungsi Lyapunov fungsi energi. Fungsi energi pada jaringan Hopfield sebagai berikut: Jika aktivasi jaringan berubah berdasarkan y i , maka energi akan berubah menjadi Pada saat aktivasi neuron Y i , jika y i positif maka akan berubah menjadi nol. Dengan demikian untuk y i negatif, maka akan menjadi positif yaitu Dalam penelitiannya Hopfield menemukan bahwa pola biner yang dapat disimpan dan dipanggil kembali dalam sebuah jaringan, dengan ketepatan yang baik adalah sebesar dimana n adalah jumlah neuron dalam suatu jaringan.

3.4 Rancangan Tampilan

Perangkat lunak pengenalan pola angka akan ditampilkan dalam halaman situs web dengan menggunakan Java applet. Pilihan menu dari masing-masing perintah akan ditampilkan dengan sistem menu icon. Tombol menu akan disusun sesuai dengan urutan perintah pengenalan pola, antara lain: Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 32 1. Tombol menu Clear Display, digunakan untuk membersihkan bidang gambar dari pola-pola. 2. Tombol menu Randomize, digunakan untuk menggambar pola acak. 3. Tombol menu Memorize, digunakan menyimpan pola yang sudah digambar ke dalam memori komputer. 4. Tombol menu Test, digunakan untuk mencoba membandingkan pola-pola yang sudah tersimpan dengan pola yang baru. 5. Tombol menu Clear Memory, digunakan untuk membersihkan data yang tersimpan dalam memori komputer. 6. Tombol First Pattern, digunakan untuk menampilkan pola pertama yang sudah disimpan terlebih dahulu pada bidang gambar. 7. Tombol Last Pattern, digunakan untuk menampilkan pola yang terakhir disimpan pada bidang gambar. Gambar 9. Rancangan Tampilan Program Applet Pada Browser

3.5 Rancangan Masukan Dan Keluaran

3.5.1 Rancangan Masukan

Untuk memasukkan data hanya digunakan piranti tetikus, yang digunakan untuk memilih menu yang ada serta menggambar pola pada bidang yang telah disediakan. Zulkarnain Harun : Pengenalan Pola Angka Dengan Menggunakan Algoritma Hopfield, 2008. USU Repository © 2009 33 Pola dapat digambar pada bidang dengan cara menekan tombol kiri atau kanan sehingga bidang gambar akan berubah warna menandakan sebuah variabel telah terbentuk, dalam hal ini piksel. Pola dapat dihapus dengan cara yang sama seperti cara menggambar pola.

3.5.2 Rancangan Keluaran