1. Jaringan Saraf Tiruan (JST)
Apa itu Jaringan Saraf Tiruan (JST)
Jaringan Saraf Tiruan (JST) adalah prosesor yang terdistribusi besar-besaran secara parallel yang dibuat dari unit proses sederhana, yang mempunyai kemampuan untuk menyimpan pengetahuan berupa pengalaman dan dapat digunakan untuk proses lain (Haykin, 2009).
Jaringan saraf tiruan tidak diprogram untuk menghasilkan keluaran tertentu. Semua keluaran atau kesimpulan yang ditarik oleh jaringan didasarkan pengalamannya selama mengikuti proses pembelajaran. Pada proses pembelajaran, ke dalam jaringan saraf tiruan dimasukkan pola-pola masukan (dan keluaran) lalu jaringan akan diajari untuk memberikan jawaban yang bisa diterima (Puspitaningrum, 2006).
Jaringan saraf tiruan dibentuk sebagai generalisasi model matematika dari jaringan saraf biologis manusia, dengan asumsi bahwa:
- Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron).
- Sinyal dikirimkan di antara neuron-neuron melalui penghubung-penghubung.
- Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal.
Untuk menentukan keluaran, Setiap neuron menggunakan fungsi aktivasi (biasanya bukan fungsi linier) yang dikenakan pada jumlah masukan yang diterima. Besarnya keluaran ini selanjutnya dibandingkan dengan suatu batas ambang.
Model pada Jst.

Model pada JST pada dasarnya merupakan fungsi model matematika yang mendefinisikan fungsi {\displaystyle f:X\rightarrow Y}. Istilah “jaringan” pada JST merujuk pada interkoneksi dari beberapa neuron yang diletakkan pada lapisan yang berbeda. Secara umum, lapisan pada JST dibagi menjadi tiga bagian:
- Lapis masukan (input layer) terdiri dari neuron yang menerima data masukan dari variabel X. Semua neuron pada lapis ini dapat terhubung ke neuron pada lapisan tersembunyi atau langsung ke lapisan luaran jika jaringan tidak menggunakan lapisan tersembunyi.
- Lapisan tersembunyi (hidden layer) terdiri dari neuron yang menerima data dari lapisan masukan.
- Lapisan luaran (output layer) terdiri dari neuron yang menerima data dari lapisan tersembunyi atau langsung dari lapisan masukan yang nilai luarannya melambangkan hasil kalkulasi dari X menjadi nilai Y.
Secara matematis, neuron merupakan sebuah fungsi yang menerima masukan dari lapisan sebelumnya {\displaystyle g_{i}(x)} (lapisan ke-{\displaystyle i}
). Fungsi ini pada umumnya mengolah sebuah vektor untuk kemudian diubah ke nilai skalar melalui komposisi nonlinear weighted sum, dimana {\displaystyle f(x)=K(\sum _{i}w_{i}g_{i}(x))}
, {\displaystyle K}
merupakan fungsi khusus yang sering disebut dengan fungsi aktivasi dan {\displaystyle w}
merupakan beban atau weight.
Prinsip Jaringan Saraf Tiruan
- Prinisp jaringan saraf tiruan (JST) ditentukan oleh tiga elemen dasar model saraf, yaitu:
- Satu set dari sinapsis, atau penghubung yang masing-masing digolongkan oleh bobot atau kekuatannya.
- Sebuah penambah untuk menjumlahkan sinyal-sinyal input. Ditimbang dari kekuatan sinaptik masing-masing neuron.
- Sebuah fungsi aktivasi untuk membatasi amplitudo output dari neuron. Fungsi ini bertujuan membatasi jarak amplitude yang diperbolehkan oleh sinyal output menjadi sebuah angka yang terbatas.
Prinsip jaringan saraf tiruan secara sederhana digambarkan di bawah ini:

Pada gambar di atas, Y menerima masukan dari neuron x1, x2, dan x3, dengan bobot hubungan masing-masing adalah w1, w2, dan w3. Ketiga impuls neuron yang ada dijumlahkan menjadi:
Net = x1w1 + x2w2 + x3w3
Besarnya impuls yang diterima oleh Y mengikuti fungsi aktivasi y = f(net). Apabila nilai fungsi aktivasi cukup kuat, maka sinyal akan diteruskan. Nilai fungsi aktivasi (keluaran model jaringan) juga dapat dipakai sebagai dasar untuk mengubah bobot (Siang, 2004).
Arsitektur Jaringan Saraf Tiruan

Pada jaringan saraf tiruan, neuron-neuron akan dikumpulkan dalam sebuh lapisan yang disebut dengan lapisan neuron (neuron layers). Neuron-neuron pada satu lapisan akan dihubungkan dengan lapisan-lapisan lainnya. Informasi yang didapatkan pada sebuah neuron akan disampaikan ke semua lapisan-lapisan yang ada, mulai dari lapisan masukan sampai dengan lapisan keluaran melalui lapisan tersembunyi (hidden layer). Pada jaringan saraf tiruan ini tiga lapisan bukanlah sebuah struktur umum karena beberapa jaringan saraf ada yang tida memiliki lapisan tersembunyi.
Menurut Haykin (2009), secara umum, ada tiga jenis arsitektur dari Jaringan Saraf Tiruan yaitu:
Jaringan dengan lapisan tunggal (single layer net)

Di dalam Jaringan Saraf Tiruan dengan satu layer, neuron-neuron diorganisasi dalam bentuk layer-layer. Dalam bentuk paling sederhana dari Jaringan Saraf Tiruan dengan satu layer, kita mempunyai sebuah input layer dari node sumber di mana informasi diproyeksikan ke output layer dari neuron tapi tidak bisa sebaliknya. Dengan kata lain, jaringan ini adalah tipe feed forward. Input layer dari node sumber tidak dihitung karena tidak ada perhitungan yang dilakukan.
Jaringan dengan banyak lapisan (multilayer net)

Bentuk lapisan kompetitif merupakan jaringan saraf tiruan yang sangat besar. Interkoneksi antar neuron pada lapisan ini tidak ditunjukkan pada arsitektur seperti jaringan yang lain. Pada jaringan ini sekumpulan neuron bersaing untuk mendapatkan hak menjadi aktif atau sering pula disebut dengan prinsip winner takes all atau yang menanglah yang mengambil semua bagiannya.
Perlu diperhatikan bahwa jaringan syaraf tiruan tidak diprogram untuk menghasilkan keluaran tertentu. Semua keluaran atau kesimpulan yang ditarik oleh jaringan didasarkan pada pengalaman selama proses pembelajaran (learning), pada proses pembelajaran, dimasukkan pola-pola input (dan output) lalu jaringan akan menggunakan pengethauan tersebut memberikan jawaban yang bisa diterima.
Berikut ini merupakan contoh aplikasi jaringan syaraf tiruan dalam kehidupan sehari-hari:
1. Klasifikasi objek dalam citra digital berdasarkan pola bentuk
2. Klasifikasi citra daun
3. Pengenalan/identifikasi wajah
4. Pengenalan/identifikasi jenis bunga
5. Pengenalan pola logika AND
6. Prediksi curah hujan untuk data time series
7. Prediksi jumlah penduduk untuk data time series
2. Fuzzy Logic
Keuntungan Fuzzy:
• Pemodelan matematik sederhana
• Toleransi data-data yang tidak tepat
• Dapat memodelkan fungsi-fungsi non liner yang kompleks
• Mengaplikasikan pengalaman tanpa proses pelatihan5
• Didasarkan pada bahasa alami
Himpunan Fuzzy Pada himpunan tegas (crisp), nilai keanggotaan suatu intem x dalam suatu himpunan A, yang sering ditulis dengan μA[x] memiliki dua kemungkinan, yaitu : 1. Satu (1), yang berarti bahwa suatu intem menjadi anggota dalam satu himpunan 2. Nol (0) yang berarti bahwa suatu intem tidak menjadi anggota dalam suatu himpunan.
Ada beberapa yang perlu diketahui dalam memahami sistem logika fuzzy yaitu :
1. Variabel fuzzy Variabel fuzzy merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy. Contoh : umur, temperatur, permintaan, dan lain-lain.
2. Himpunan fuzzy Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzy.
3. Semesta pembicaraan Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy.
4. Domain Keseluruhan nilai yang diizinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy.
Metodologi Desain Sistem Fuzzy Secara garis besar untuk perancangan suatu sistem fuzzy perlu dilakukan beberapa tahapan yaitu :

Berikut ini adalah beberapa bentuk implementasi fuzzy logic dalam berbagai bidang di kehidupan sehari-hari manusia :
1. Air Conditioner.
2. Vacuum Cleaner.
3. Logika Fuzzy untuk Sistem Pengaturan Lampu Lalulintas.
4. Logika Fuzzy untuk Sistem Pengaturan Suhu Ruangan.
3. Algoritma Genetika
Algoritma Genetika merupakan suatu metode optimasi untuk mencari solusi yang optimal dari suatu permasalahan. Algoritma Genetika banyak digunakan untuk mencari solusi masalah optimasi penjadwalan. Penjadwalan yang umumnya bersifat kompleks tidak mengijinkan sisi otak manusia untuk mencarikan solusi yang optimal dengan mudah. Dengan Algoritma Genetika, hal-hal yang perlu dihindarkan dalam pembuatan jadwal bisa dihilangkan, dan semua bentuk solusi yang menguntungkan pihak-pihak yang terkait akan lebih mudah untuk didapatkan.
Algoritma Genetika mempunyai metodologi optimasi sederhana sebagai berikut:
1. Menentukan populasi solusi sejumlah tertentu
2. Menghitung nilai fitnes function semua solusi yang ada di dalam populasi
3. Memilih beberapa solusi dengan nilai fitnes function yang paling tinggi
4. Melakukan optimasi dengan cara mutasi dan crossover sebanyak yang diperlukan
5. Menentukan solusi terbaik sebagai solusi terhadap permasalahan yang dioptimasi
Dalam menerapkan Algoritma Genetika untuk memecahkan masalah optimasi, perlu dilakukan analisa terhadap permasalahan yang akan dicarikan solusinya. Dalam menganalisa permasalahan, ada dua istilah yang muncul:
1. Hard Constraint: yang merupakan batasan yang ada dalam permasalahan yang akan dicarikan solusi, yang tidak boleh dilanggar sama sekali. Solusi yang akan menjadi bagian dari populasi, adalah solusi yang tidak melanggar Hard Constraint ini.
2. Soft Constraint: yang merupakan batasan yang ada dalam permasalahan yang akan dicarikan solusi, tetapi dalam pencarian solusi, batasan ini masih bisa dilanggar.
Dari kedua istilah tersebut, yang mempengaruhi bagaimana suatu solusi akan dikatakan lebih baik dari solusi yang lain adalah dengan melihat kadar pelanggaran yang dilakukan terhadap Soft Constraint. Makin banyak Soft Constraint yang dilanggar, makin buruk nilai dari solusi tersebut. Nilai dari solusi yang dimaksud di sini sering diistilahkan dengan nama Fitness Function. Fitness Function ini merupakan akumalasi dari nilai penalti yang didapat dari pelanggaran terhadap Soft Constraint yang yang ada.
Selain pelanggaran terhadap Soft Constraint, nilai dari Fitness Function ini juga bisa didapatkan dari penambahan nilai bonus terhadap hal-hal ideal yang bisa dimasukkan dalam pembentukan solusi. Solusi yang bisa memberikan benefit kepada organisasi baik secara perorangan maupun secara keseluruhan organisasi, umumnya bisa dianggap memberikan nilai tambah terhadap solusi yang dibentuk.
Langkah selanjutnya yang dilakukan dalam proses penerapan Algoritma Genetika adalah analisa dan disain sistem. Analisa dan disain sistem terbentuk dari pendefinisian proses-proses yang tercakup dalam sistem, pembentukan basis data, dan juga disain antar muka pengguna. Untuk tulisan ini, analisa dan disain yang dibahas terbatas pada bagaimana membentuk basis data yang diperlukan dalam pemodelan permasalahan optimasi menggunakan Algoritma Genetika.
Umumnya bentuk basis data yang diperlukan dalam penerapan Algoritma Genetika adalah:
1. Tabel Detail Solusi (Gen)
2. Tabel Solusi (Kromosom)
3. Tabel Master yang mendukung isian Tabel Detail Solusi dan Tabel Solusi
Beberapa istilah yang muncul dalam Algoritma Genetika yang juga sering membingungkan pengguna adalah istilah-istilah yang kaitannya dengan Ilmu Biologi seperti istilah Gen dan Kromosom. Dalam pembentukan disain basis data sudah disebutkan bahwa Gen merupakan Detail Solusi, sedangkan Kromosom adalah Solusi. Salah satu contoh penggunaan istilah Gen dan Kromosom dalam memecahkan masalah penjadwalan: bentuk Kromosom (Solusi) dari permasalahan tersebut misalnya adalah Jadwal Mengajar di Sekolah A Selama Seminggu, sedangkan bentuk Gen (Detail Solusi)-nya adalah Guru A Mengajar Matematika di Kelas IA Pada Hari Senin Sesi Pertama. Dimana, sejumlah Gen (Detail Solusi) yang ada akan membentuk suatu Kromosom (Solusi). Jadi istilah ilmiah yang ada merupakan representasi dari permasalahan yang diangkat untuk dicarikan solusinya.
Isian dari Tabel Master yang mendukung pengembangan sistem Algoritma Genetika ini sangat tergantung pada hal-hal yang muncul pada saat melakukan analisa permasalahan. Beberapa hal yang muncul pada Hard Constraint, Soft Constraint, serta Nilai Bonus terhadap solusi akan menjadi bagian dalam pembentukan informasi yang tertampung di dalam Tabel Master yang diperlukan dalam penerapan Algoritma Genetika. Dari contoh bentuk Gen (Detail Solusi) yang diberikan di atas (Guru A Mengajar Matematika di Kelas IA Pada Hari Senin Sesi Pertama), Tabel Master yang diperlukan dalam sistem termasuk Tabel Master Guru, Tabel Master Mata Pelajaran, Tabel Master Kelas, dan Tabel Master Waktu Mengajar.
Dari tulisan di atas, hal-hal utama yang diperlukan untuk menerapkan Algoritma Genetika dalam permasalahan optimasi sudah diberikan. Beberapa hal yang juga sering dibahas dalam penjelasan Algoritma Genetika adalah metode-metode yang digunakan untuk melakukan Mutasi dan Crossover, yang tentunya perlu dipelajari tersendiri, walaupun untuk tingkat pemula, mungkin cukup menggunakan metode sederhana misalnya metode random.