BAB II LANDASAN TEORI 2.1 Neural Networks [2] Neural networks atau jaringan syaraf tiruan merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Neural networks berusaha meniru struktur atau arsitektur dan cara kerja otak manusia sehingga mampu menggantikan beberapa pekerjaan manusia. Pekerjaan seperti mengenali pola (pattern recognition), prediksi, klasifikasi, pendekatan fungsi adalah pekerjaanpekerjaan yang diharapkan dapat diselesaikan dengan menggunakan neural networks. Gambar 2. 1 Struktur neuron jaringan syaraf [2] Jaringan syaraf terdiri dari beberapa neuron dan terdapat hubungan antara neuron –neuron tersebut (bobot). Informasi (input) akan dikirim ke neuron dengan bobot kedatangan tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang akan menjumlahkan nilai-nilai semua bobot yang datang. Hasil penjumlahan ini kemudian akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktvasi setiap neuron. Kemudian akan mengirimkan output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. Jaringan syaraf tiruan memiliki 3 lapisan, yaitu lapisan input, lapisan tersembunyi dan lapisan output. Beberapa arsitektur jaringan syaraf yaitu lapisan tunggal, lapisan banyak dan lapisan kompetitif. Neural network menggunakan fungsi aktivasi yang dipakai untuk membatasi keluaran dari neuron agar sesuai dengan batasan sinyal/nilai keluarannya. Beberapa fungsi aktivasi yang sering digunakan dalam jaringan syaraf tiruan antara lain: II-1 II-2 a. Fungsi Undak Biner (Hard Limit) { b. Fungsi Undak Biner (Threshold) { c. Fungsi Bipolar (Symetric Hard Limit) { d. Fungsi Bipolar dengan Threshold { e. Fungsi Linear (identitas) f. Fungsi Saturating Linear { g. Fungsi Symetric Saturating Linear { h. Fungsi Sigmoid Biner ( ) Ditinjau dari jumlah layernya, Neural Network bisa dibagi menjadi dua macam, yaitu Neural Network layer tunggal dan Neural Network layer jamak. Neural Network layer tunggal mempunyai satu lapis neuron pemroses. Satu lapis tersebut bisa berisi banyak neuron. Contoh algoritma Neural Network layer tunggal adalah Perceptron, Delta dan sebagainya. Sementara Neural Network layer jamak mempunyai sejumlah neuron perantara yang menghubungkan vektor masukan dengan layer jamak. Layer perantara ini disebut layer tersembunyi (hidden layer). Contoh algoritma Neural Network layer jamak adalah II-3 Backpropagation, Constructive Backpropagation, Recurrent Neural Network dan sebagainya[1]. 2.2 Algoritma Backpropagation [2] Backpropagation merupakan algoritma pembelajaran yang terawasi dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron–neuron yang ada pada lapisan tersembunyi. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu. Gambar 2. 2 Arsitektur Jaringan Backpropagation [8] Penulisan pada jaringan multilayer backpropagation: X : Vektor input pembelajaran. X = (x1,x2,...,xn) T : Vektor target output. T = (t1,t2,...,tm) δk : Bagian koreksi error penyesuaian bobot berpedoman pada error output neuron δj : Bagian koreksi error penyesuaian bobot hidden neuron α : Learning rate berperdoman pada error II-4 θ : Toleransi error : Input neuron : Bias pada hidden neuron ke-j : Hidden neuron ke-j. Nilai input ditunjukkan dengan : ∑ Nilai output dengan menggunakan fungsi aktivasi yang dipilih dan ditunjukkan dengan : ( ) : Bias pada output neuron ke-k Yk : Output neuron ke-k. Nilai input ditunjukkan dengan : ∑ Nilai output dengan menggunakan fungsi aktivasi yang dipilih ditunjukkan dengan : ( ) Algoritma pembelajaran untuk jaringan saraf tiruan backpropagation adalah sebagai berikut [11]: Langkah 0 : Inisialisasi nilai bobot dengan nilai acak yang kecil. Set learning rate α (0<α≤1) Langkah 1 : Selama kondisi berhenti masih tidak terpenuhi, laksanakan langkah 2 sampai 9 Langkah 2 : Untuk tiap pasangan pelatihan kerjakan langkah 3 sampai 8 Feedforward: Langkah 3 : Untuk tiap input neuron (xi, i=1,...,n) menerima sinyal input xi dan menyebarkan sinyal itu ke seluruh neuron pada lapisan atas (lapisan dalam) Langkah 4 : Untuk hidden neuron (zj,j=1,...,p) dihitung nilai input dengan menggunakan nilai bobotnya; II-5 ∑ Kemudian dihitung nilai output dengan menggunakan fungsi aktivasi; ( ) Dimana fungsi aktivasinya yang digunakan ialah fungsi sigmoid biner yang mempunyai persamaan: ( ) ( ) Hasil fungsi tersebut dikirim ke semua neuron pada lapisan di atasnya Langkah 5 : Untuk tiap output neuron (yk,k=1,...,m) dihitung nilai input dengan nilai bobotnya; ∑ Kemudian dihitung nilai output dengan menggunakan fungsi aktivasi ; ( ) Perhitungan nilai kesalahan: Langkah 6 : Untuk tiap output neuron (yk,k=1,...,m) menerima pola target yang bersesuaian dengan pola input dan kemudian dihitung informasi kesalahan: ( ) ( ) Kemudian dihitung koreksi nilai bobot yang kemudian akan digunaan untuk memperbaharui nilai bobot : Hitung koreksi nilai bias yang kemudian akan digunakan untuk memperbaharui nilai Kemudian nilai : dikirim ke neuron pada lapisan sebelumnya II-6 Langkah 7 : Untuk tiap hidden neuron (zj,j=1,...,p) dihitung dengan delta input yang berasal dari neuron pada layer diatasnya: ∑ Kemudian nilai tersebut dikalikan dengan nilai turunan dari fungsi aktivasi untuk menghitung informasi kesalahan: ( Hitung koreksi nilai memperbaharui nilai ) bobot yang kemudian digunakan : Dan hitung nilai bias yang kemudian digunakan untuk memperbaharui nilai : Perbaharui nilai bobot dan nilai bias: Langkah 8 : Tiap nilai bias dan bobot (j=0,...,p) pada output neuron (yk,k=1,...,m) diperbaharui: Langkah 9 ( ) ( ) ( ) ( ) : Menguji apakah kondisi berhenti sudah terpenuhi. Kondisi berhenti terpenuhi jika nilai kesalahan yang dihasilkan lebih kecil dari nilai kesalahan referensi. Pada proses pelatihan Backpropagation ada beberapa parameter yang sangat berpengaruh, di antaranya adalah sebagai berikut: 1. Penentuan bobot awal. Bobot awal umumnya diambil secara acak dengan angka dalam jangkauan [-1,+1] atau [-0,5,+0,5] atau ditentukan dengan jangkauan ( ) dengan adalah jumlah neuron masukan dalam neural network. Bahkan, ada juga algoritma Nguyen-Widrow (1990) untuk memberikan optimalisasi komposisi nilai bobot terbaik. 2. Laju pembelajaran (learning rate). Nilai parameter ini ada dalam jangkauan 0 sampai 1. Semakin besar nilainya, semakin cepat selesai proses pelatihannya, namun semakin lebih mudah terjebak pada daerah local optima (hasil yang didapatkan dapat berbeda pada setiap percobaan yang dilakukan). II-7 3. Jumlah iterasi (epoch). Jika kriteria error hanya menggunakan SSE atau MSE, terkadang data yang sangat tidak linear sulit untuk bisa mencapai kriterianya. Pilihan lain dalam kriteria biasanya menggunakan jumlah maksimal iterasi. Jika jumlah maksimal tercapai, meskipun target error belum tercapai, proses pelatihan tetap akan dihentikan. 4. Target error. Target error merupakan akumulasi selisih nilai antara nilai keluaran yang diharapkan dengan nilai keluaran yang didapatkan. Kriteria yang umum digunakan adalah Sum of Square Error (SSE) atau Mean of Square Error (MSE). Nilai yang umum digunakan adalah 0,001 atau 0,0001. 5. Jumlah neuron dalam layer tersembunyi (hidden layer). Belum ada cara yang pasti untuk menentukan jumlah neuron dalam layer tersembunyi. Untuk mendapatkan komposisi jumlah neuron dalam layer tersembunyi yang tepat biasanya digunakan cara coba-coba sehingga dari beberapa kali percobaan akan diambil arsitektur yang memberikan hasil prediksi terbaik. 2.3 Kurs dan Valuta Asing Kurs atau nilai tukar antar mata uang (Exchange Rate) adalah jumlah dari suatu mata uang yang diserahkan untuk mendapatkan mata uang yang lain. Nilai tukar ditentukan oleh bermacam-macam aturan, baik nilai tukar maupun aturan itu sendiri dapat berubah. Perubahan nilai tukar atau nilai kurs antar mata uang dapat berpengaruh besar terhadap penjualan, biaya, laba dan kesejahteraan individu. Selain komplikasi nilai tukar, masalah-masalah internasional khusus dan unik lainnya yang muncul bersumber pada kesempatan dan resiko yang ada pada investasi dan peminjaman di luar negeri. Oleh karena itu, sub bidang keuangan internasional berfokus pada masalah yang dihadapi manajer saat nilai tukar berubah dan ketika mereka terlibat dalam investasi atau pinjaman di luar negeri [14]. Valuta asing (valas) atau foreign exchange (forex) atau foreign currency diartikan sebagai mata yang asing dan alat pembayaran lainnya yang digunakan untuk melakukan atau membiayai transaksi ekonomi keuangan internasional dan II-8 yang mempunyai catatan kurs resmi pada bank sentral. Faktor yang mempengaruhi kurs valas antara lain [5]: a. Supply and demand foreign currency Sumber-sumber penawaran atau supply valas terdiri atas: 1. Ekspor barang dan jasa yang menghasilkan valas 2. Impor modal atau capital import dan transfer valas lainnya dari luar negeri ke dalam negeri Sumber-sumber permintaan atau demand valas terdiri atas: 1. Impor barang dan jasa yang menggunakan valas 2. Ekspor modal atau capital export dan transfer valas lainnya dari dalam negeri ke luar negeri b. Posisi balance of payment (BOP) Balance of payment atau neraca pembayaran internasional adalah suatu catatan yang disusun secara sistematis tentang semua transaksi ekonomi internasional yang meliputi perdagangan, keuangan,dan moneter antara penduduk suatu negara dan penduduk luar negeri untuk suatu periode tertentu. c. Tingkat inflasi [13] Inflasi diartikan sebagai meningkatnya harga-harga secara umum dan terus menerus. Kenaikan harga dari satu atau dua barang saja tidak dapat disebut inflasi kecuali bila kenaikan itu meluas (atau mengakibatkan kenaikan harga) pada barang lainnya. Kebalikan dari inflasi disebut deflasi. d. Tingkat suku bunga [12] BI Rate adalah suku bunga kebijakan yang mencerminkan sikap atau stance kebijakan moneter yang ditetapkan oleh bank Indonesia dan diumumkan kepada publik. II-9 e. Tingkat income (pendapatan) Apabila kenaikan pendapatan masyarakat di Indonesia tinggi sedangkan kenaikan jumlah barang yang tersedia relatif kecil, maka impor barang akan meningkat. Peningkatan impor ini akan mempengaruhi kurs valas. f. Pengawasan pemerintah Faktor pengawasan pemerintah dijalankan dalam berbagai bentuk kebijaksanaan moneter, fiskal dan perdagangan luar negeri. Misalnya pengawasan lalu lintas devisa, peningkatan trade barrier, pengetatan uang beredar, penaikan tingkat bunga dan sebagainya. g. Ekspetasi dan spekulasi/ isu/ rumor Ekspektasi, spekulasi, isu dan rumor yang timbul di masyarakat akan mempengaruhi permintaan dan penawaran valas yang akhirnya akan memepengaruhi kurs valas. Tujuan dilakukannya prediksi kurs mata uang adalah untuk mengetahui kira- kira besar nilai tukar mata uang di waktu yang akan datang yang bersifat harian. Setelah data hasil prediksi diperoleh, pihak-pihak yang berkepentingan dapat mengambil langkah-langkah strategis yang sekiranya perlu dilakukan agar tidak mengalami kerugian yang cukup besar. Misal pada perusahaan multinasional, dapat ditentukan keputusan pembiayaan jangka pendek, keputusan investasi jangka pendek, keputusan penganggaran modal, keputusan pembiayaan jangka panjang dan penilaian laba yang semua keputusan tersebut dipengaruhi oleh perubahan nilai tukar mata uang. 2.4 Unified Modelling Language (UML) [6] Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem, dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta di tulis dalam bahasa pemrograman apapun. UML juga menggunakan class dan operation II-10 dalam konsep dasarnya, maka UML lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C#, Matlab atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). Unified Modeling Language (UML) adalah alat bantu (tool) untuk pemodelan sistem, “UML adalah bahasa yang dapat digunakan untuk spesifikasi, visualisasi, dan dokumentasi sistem object-oriented software pada fase pengembangan. UML merupakan unifikasi dari metode Booch, OMT, dan notasi Objectory, serta ide-ide terbaik metodologi lainnya, UML merupakan standar dasar dalam bidang analisis dan desain berorientasi-objek” [15]. Unified Modeling Language (UML) adalah sebuah bahasa pemodelan yang telah menjadi standar dalam industri software untuk visualisasi, merancang, dan mendokumentasikan sistem perangkat lunak [16]. Bahasa Pemodelan UML lebih cocok untuk pembuatan perangkat lunak dalam bahasa pemrograman berorientasi objek (C , Java, VB.NET), namun demikian tetap dapat digunakan pada bahasa pemrograman prosedural [17] . Di dalam Language (UML) terdapat Unified Modeling content untuk menganalisis suatu software. Diantaranya, ada use case diagram, class diagram tahap analisis, class diagram tahap desain dan sequence diagram, dan dijelaskan pada poin 1 sampai poin 3 di bawah ini: 1. Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem, yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor II-11 dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan system untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat diinclude oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sedikit penjelasan tentang Use case diagram dapat dilihat pada Tabel 2.1 di halaman 211: Tabel 2. 1 Simbol-Simbol Pada Use Case Diagram No. 1. Simbol Keterangan Simbol aktor, menggambarkan aktor pada diagram. Simbol 2 Use menggambarkan Case, Use Case pada diagram. Simbol 3. Association, Unidirectional menggambarkan relasi antar aktor dan use case. II-12 2. Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok, dan di jelaskan pada Tabel 2.2 di bawah ini: Tabel 2. 2 Simbol- Simbol Pada Class Diagram No 1 Simbol Keterangan 1. Nama class : digunakan untuk membedakan antara satu kelas dengan kelas yang lain 2. Atribut : digunakan untuk menyimpan state, pada bahasa pemograman ini berupa field, bisa juga diartikan apa yang dimiliki oleh sebuah objek 3. Operasi/Metode : digunakan untuk menyimpan pada bahasa berupa behavior, pemrograman method mengembalikan nilai yang (void method) dan method yang tidak mengembalikan nilai (non void method) 2 Simbol Association, menggambarkan relasi asosiasi II-13 3. Sequance Diagram Sequence diagram menunjukan hubungan statis yang terjadi antara satu objek dengan objek yang lain, sedangkan sequence diagram menunjukan suatu skenario yang dinamis. Sequence diagram digunakan untuk mendeskripsikan pola komunikasi antara objek. Sequence diagram menggambarkan urutan waktu dari pemanggilan pada suatu method. Sequence diagram berhubungan erat dengan use case diagram, dimana satu use case akan menjadi satu sequence diagram. Berikut adalah simbol- simbol pada sequance diagram: Tabel 2. 3 Simbol-Simbol Pada Sequence Diagram No. 1. 2. 3. 4. 5. 6. Simbol Keterangan Simbol aktor, menggambarkan aktor pada diagram. Simbol Boundary, menggambarkan batasan kelas pada diagram. Simbol Control, menggambarkan unsur kendali pada diagram. Entity menggambarkan kelas entitas pada diagram. Object Message, menggambarkan pesan antar dua objek. Message to Self, menggambarkan pesan yang menuju dirinya sendiri. II-14 2.5 Metode Pengembangan Perangkat Lunak Prototyping [4] Prototyping merupakan metodologi pengembangan software menitik-beratkan pada pendekatan aspek desain, fungsi dan user yang interface. Developer dan User fokus pada user-interface dan bersama-sama mendefinisikan spesifikasi, fungsi, desain dan bagaimana software bekerja. Developer dan user bertemu dan melakukan komunikasi dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan. Developer mengumpulkan detail dari kebutuhan dan memberikan suatu gambaran dengan cetak biru (prototyping). Dari proses tersebut, akan diketahui detail-detail yang harus dikembangkan atau ditambahkan oleh developer terhadap cetak biru, atau menghapus detail-detail yang tidak diperlukan oleh user. Proses akan terjadi terus menerus sehingga produk sesuai dengan keinginan dari user. Gambar 2. 3 Metode prototyping [4] Tahapan-tahapan yang dilakukan adalah sebagai berikut: a. Listen to customer, merupakan proses menganalisis keperluan pelanggan yang terdapat pada permasalahan yang ada. b. Build/revise mock up, tahap ini merupakan proses pemodelan hasil analisis dan perbaikan dalam bentuk prototype perangkat lunak. c. Customer test-drives mock up, merupakan tahap uji coba yang dilakukan pelanggan terhadap prototype yang telah dibuat. II-15 2.6 Pengujian Sistem Menurut Roger.S Pressman, mengungkapkan bahwa pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan mempresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean. Pengujian juga dapat diartikan sebagai proses eksekusi suatu program dengan maksud menemukan kesalahan [4]. 2.6.1 Prinsip-Prinsip Pengujian Sebelum mengaplikasikan metode untuk mendesain test case yang efektif, perekayasa perangkat lunak harus memahami prinsip dasar yang menuntun pengujian perangkat lunak, diantaranya [4]: 1. Semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan. 2. Pengujian itu harus direncanakan lama sebelum pengujian dimulai. 3. Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang independen. 2.6.2 Pengujian Black-Box [4] Pengujian black-box berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengujian black-box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian ini berusaha menemukan error dengan kategori sebagai berikut : 1. Fungsi yang salah atau hilang. 2. Kesalahan antarmuka, struktur data atau pengaksesan data eksternal, unjuk kerja, inisialisasi dan penghentian. Pengujian black-box diterapkan pada akhir tahapan proses pengujian. Hal ini dikarenakan pengujian ini tidak mementingkan struktur kontrol tapi lebih memfokuskan pada domain informasi . II-16 2.7 MATLAB [7] Matlab adalah suatu bahasa pemrograman diperuntukkan untuk komputasi teknis. tingkat tinggi yang Matlab mengintegrasikan aspek komputasi, visualisasi dan pemrograman dalam suatu lingkungan yang mudah dilakukan. Matlab bisa dipergunakan untuk aplikasi : a. Pemodelan, simulasi dan pembuatan prototype b. Komputasi dan matematika c. Data analis, eksplorasi dan visualisasi d. Pembuatan grafik scientific dan engineering e. Pembuatan graphical user interface (GUI) yang memudahkan pemakaian bagi kalangan awam dengan komputasi. Banyak masalah yang dapat diselesaikan dengan bantuan matlab terutama yang bisa diformulasikan dalam bentuk matriks dan vektor. Nama Matlab merupakan singkatan dari matrix laboratory. Matlab memiliki banyak toolbox yang merupakan kumpulan fungsi dalam Matlab (M-file) yang komprehensif yang digunakan untuk menyelesaikan kelas problem di bidang tertentu. Berbagai toolbox dalam Matlab antara lain signal processing, control systems, neural networks, fuzzy logic, wavelets, simulation, statistic, optimization, bioinformathics, genetic algorithm dan lain-lain. Di dunia industri, Matlab termasuk software pilihan untuk melakukan kegiatan riset, pengembangan dan analis. Matlab sudah mengalami beberapa kali update. Dalam setiap versi ada perbaikan dan penambahan toolbox baru.