11
BAB II
TINJAUAN PUSTAKA
II.1. Definisi Artificial Intelligenc
Kecerdasan buatan (Artificial Intelligence) adalah Bagian dari ilmu komputer yang mempelajari bagaimana membuat mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia bahkan bisa lebih baik daripada yang dilakukan manusia. Menurut John McCarthy, 1956, AI untuk mengetahui dan memodelkan proses – proses berpikir manusia dan mendesain mesin agar dapat menirukan perilaku manusia (Idhawati Hestiningsi ; 2010 :1)
II.2. Jaringan Saraf Tiruan
Jaringan Saraf Tiruan (artificial neural network), atau disingkat JST adalah sistem komputasi dimana arsitektur dan operasi diilhami dari pengetahuan tentang sel saraf biologi dan otak, yang merupakan salah satu representasi bantuan dari otak manusia yang selalu mencoba menstimulasi proses pembelajaran pada otak manusia tersebut. Salah satu kelebihannya ditunjukkan dengan kemampuannya dalam analisa. Kemampuan yang dimiliki JST dapat digunakan untuk belajar dan menghasilkan aturan atau operasi dari beberapa contoh atau input yang dimasukkan dan membuat prediksi tentang kemungkinan output yang akan muncul atau menyimpan karakteristik dari input yang disimpan kepadanya (Sri Dinda ; 2014:2).
Valluru B.Rao dan Hayagriva V.Rao (1993) mendefenisi jaringan saraf sebagai sebuah kelompok pengolahan elemen dalam suatu kelompok yang khusus membuat perhitungan sendiri dan memberikan hasilnya kepada kelompok kedua atau berikutnya. Setiap sub kelompok menurut gilirannya harus membuat perhitungan sendiri dan memberikan hasilnya untuk subgrup atau kelompok yang belum melakukan perhitungan. Pada akhirnya sebuah kelompok dari satu atau beberapa pengolahan elemen tersebut menghasilkan keluaran (output) dari jaringan.
Setiap pengolahan elemen membuat perhitungan berdasarkan pada jumlah masukan (input). Sebuah kelompok pengolahan elemen disebut layer atau lapisan dalam jaringan. Lapisan pertama adalah input dan yang terakhir adalah output. Lapisan di antara lapisan input dan output disebut dengan lapisan tersembunyi (hidden layer). Jaringan saraf tiruan merupakan suatu bentuk arsitektur yang terdistribusi paralel dengan sejumlah besar node dan hubungan antar node tersebut. Tiap titik hubungan dari satu node ke node yang lain mempunyai harga yang diasosiasikan dengan bobot. Setiap node memiliki suatu nilai yang diasosiasikan sebagai nilai aktivasi node.
Salah satu organisasi yang dikenal dan sering digunakan dalam paradigma jaringan saraf buatan adalah perambatan Galat Mundur (back-propagation). Sebelum dikenal adanya jaringan saraf perambatan Galat Mundur pada tahun 1950-1960-an,dikenal dua paradigma penting yang nantinya akan menjadi dasar dari saraf Perambatan Galat Mundur. (Relita Buaton ; 2014 : 134-135).
II.2.1. Arsitektur Jaringan
Seperti yang telah disebutkan sebelumnya, baik tidaknya suatu model JST salah satunya ditentukan oleh hubungan antarneuron atau yang biasa disebut sebagai arsitektur jaringan. Neuron-neuron tersebut terkumpul dalam lapisan-lapisan yang disebut neuron layer.
Lapisan-lapisan penyusun JST dibagi menjadi tiga, yaitu : 1. Lapisan Input (Input Layer)
Unit-unit dalam lapisan input disebut unit-unit input yang bertugas menerima pola inputan dari luar yang menggambarkan suatu permasalahan 2. Lapisan Tersembunyi (Hidden Layer)
Unit-unit dalam lapisan tersembunyi disebut unit-unit tersembunyi, yang mana nilai output-nya tidak dapat diamati secara langsung.
3. Lapisan Output (Output Layer)
Unit-unit dalam lapisan output disebut unit-unit output, yang merupakan solusi JST terhadap suatu permasalahan.
Beberapa arsitektur jaringan yang sering digunakan dalam jaringan saraf tiruan antara lain :
1. Jaringan Lapisan Tunggal
Jaringan dengan lapisan tunggal terdiri dari 1 lapisan input dan 1 lapisan output. Setiap unit dalam lapisan input selalu terhubung dengan setiap unit yang yang terdapat pada lapisan output. Jaringan ini menerma input kemudian mengolahnya menjadi output tanpa melewati lapisan tersembunyi. Dapat dilhat pada gambar berikut.
Gambar II.1. Arsitektur Jaringan Saraf Dengan Lapisan Tunggal (Sumber : T.Sutojo, dkk ; 2011 : 293)
2. Jaringan Lapisan Banyak
Jaringan lapisan banyak mempunyai 3 jenis lapisan, yaitu lapisan input, lapisan tersembunyi, dan lapisan output. Jaringan ini dapat menyelesaikan permasalahan yang lebih kompleks dibandingkan dengan jaringan lapisan tunggal. Contoh JST yang menggunakan jaringan lapisan banyak adalah MADALINE, backpropagation, dan Neocognitron.
Gambar II.2. Arsitektur Jaringan Saraf Dengan Lapisan Banyak (Sumber : T.Sutojo, dkk ; 2011 : 294)
3. Jaringan dengan Lapisan Kompetitif
Jaringan ini memiliki bobot yang telah ditentukan dan tidak memiliki proses pelatihan. Jaringan ini digunakan untuk mengetahui meuron pemenang dari sejumlah neuron yang ada. Akibatnya, pada jarigan ini sekumpuan neuron bersaing untuk mendapatkan hak menjadi aktif. Nilai bbot setiap neuron ntuk dirinya sendiri.
Gambar II.3. Arsitektur Jaringan Saraf Dengan Lapisan Kompetitif (Sumber : T.Sutojo, dkk ; 2011 : 295)
II.3. Delta Rule
Delta Rule adalah pengubahan bobot yang menghubungkan antara jaringan input ke unit output (y_in) dengan nilai target (t). Hal ini dilakukan untuk meminimalkan error selama pelatihan pola. Delta rule untuk memperbaiki bobot ke-i (untuk setiap pola)
dengan:
x = vektor input.
y_in = input jaringan ke unit output Y
t = target (output).
Nilai w baru diperoleh dari nilai w lama ditambah dengan ∆w, wi = wi + ∆wi.( Gunawan Adisaputro ; 2010 : 168-167).
Dikembangkan oleh Widrow dan Hoff, aturan delta, juga disebut metode Least Mean Square (LMS), adalah salah satu aturan belajar yang paling umum
digunakan. Untuk vektor masukan yang diberikan, vektor output dibandingkan dengan jawaban yang benar. Jika perbedaannya adalah nol, tidak ada pembelajaran berlangsung; jika tidak, bobot disesuaikan untuk mengurangi perbedaan ini. Perubahan berat badan dari ui ke UJ diberikan oleh: dwij = r * ai * ej, di mana r adalah tingkat pembelajaran, ai merupakan aktivasi ui dan ej adalah perbedaan antara output yang diharapkan dan output aktual uj. Jika himpunan pola masukan membentuk suatu himpunan bebas linear maka asosiasi sewenang-wenang dapat dipelajari dengan menggunakan aturan delta.
Telah terbukti bahwa untuk jaringan dengan fungsi aktivasi linear dan tanpa unit tersembunyi (hidden unit ditemukan dalam jaringan dengan lebih dari dua lapisan), kesalahan kuadrat vs grafik berat badan adalah paraboloid di n-space. Karena konstanta proporsionalitas adalah negatif, grafik fungsi seperti cekung ke atas dan memiliki nilai minimum. Vertex dari paraboloid ini merupakan titik di mana kesalahan diminimalkan. Vektor bobot sesuai dengan titik ini kemudian vektor berat badan ideal.
Aturan pembelajaran ini tidak hanya bergerak lebih dekat vektor bobot vektor berat badan ideal, ia melakukannya dengan cara yang paling efisien. Delta aturan mengimplementasikan keturunan gradien dengan memindahkan vektor bobot dari titik pada permukaan paraboloid bawah menuju titik terendah, titik tersebut. Minsky dan Papert mengangkat pertanyaan yang baik. Apakah ada aturan pembelajaran sederhana yang dijamin bekerja untuk semua jenis masalah? Apakah aturan delta bekerja di semua kasus?
Seperti yang dinyatakan sebelumnya, telah menunjukkan bahwa dalam kasus fungsi aktivasi linear di mana jaringan tidak memiliki unit tersembunyi, aturan delta selalu akan menemukan set terbaik dari vektor berat. Di sisi lain, bahwa tidak terjadi untuk unit tersembunyi. Permukaan kesalahan tidak paraboloid dan jadi tidak memiliki titik minimum yang unik. Tidak ada aturan yang kuat seperti aturan Delat untuk jaringan dengan unit tersembunyi. Ada sejumlah teori dalam menanggapi masalah ini. Ini termasuk aturan delta umum dan model pembelajaran tanpa pengawasan kompetitif (Gunawan Adisaputro ; 2010 : 168-167).
II.3.1. Arsitektur Jaringan Pada Delta Rule
Selama pelatihan pola, delta rule akan mengubah bobot dengan cara meminimalkan eror antara output jaringa Y dengan t. Arsitektur jaringan delta rule untuk dua input.
XW X1 X2 W1 W2 F(y_in) Y
Gambar II.1. Arsitektur Delta Rule (Sumber : T.Sutojo, dkk ; 2011 : 352-353)
Algoritma delta rule untuk memperbaiki bobot ke-i (untuk setiap pola) adalah : w (baru) = w (lama) + α(t-y)*
dengan :
xi = vector input y = output jaringan t = target
α = learning rate
pelatihan akan dihentikan jika nilai eror (t-y) pada suatu epoch bernilai nol (T.Sutojo, dkk ; 2011 : 352-353).
II.4. Forecasting (peramalan)
Peramalan (forecasting) merupakan proses perkiraan /pengukuran sesuatu pada waktu yang akan datang berdasarkan data pada masa lampau yang dianalisis secara ilmiah menggunakan metode statistika yang bertujuan untuk memperbaiki peristiwa yang akan terjadi pada masa yang akan datang. Dengan kata lain peramalan bertujuan untuk mendapatkan perkiraan yang bisa meminimumkan kesalahan meramal (forecast error) yang biasanya diukur dengan jumlah kuadrat kesalahan Sum Squared Error (SSE), estimasi standar error Standard Error Estimate (SEE), persentase kesalahan mutlak Mean Absolute Percent Error (MAPE) dan sebagainya (Danang Kristiono ; 2014 : 4).
(forecasting) merupakan bagian vital bagi setiap organisasi bisnis dan untuk setiap pengambilan keputusan manajemen yang sangat signifikan. Peramalan menjadi dasar bagi perencanaan jangka panjang perusahaan. Menurut Hasibuan (2011), metode peramalan adalah suatu cara memperkirakan atau mengestimasi
secara kuantitatif maupun kualitatif apa yang terjadi pada masa depan berdasarkan data yang relevan pada masa lalu.
Lebih lanjut, model deret waktu, membuat prediksi dengan dengan asumsi bahwa masa depan merupakan fungsi dari masa lalu. Kemudian suatu deret berkala (time series) merupakan suatu himpunan observasi, dengan variabel yang digunakan diukur dalam urutan periode waktu, misalnya tahunan, bulanan, triwulanan, dan sebagainya (Inti Sariani Jianta Djie ;2013 : 115).
II.5. Javascript
Javascript bukan bahasa berorientasi objek, melainkan bahasa berbasis objek. Bahasa berorientasi objek harus mendukung tiga konsep dasar, yaitu pengkapsulan (encapsulation), perwarisan (inheritance) dan polimorfisme (polymorphism). Javascript hanya mendukung pengkapsulan, itupun tidak 100% benar. Program JavaScript dituliskan pada file HTML (.html atau .htm) dengan menggunakan tag container <SCRIPT>. Dengan kata lain, anda tidak perlu menuliskan program JavaScript pada file terpisah (meskipun anda bisa juga melakukannya). Ingat bahwa yang dimaksud dengan tag container adalah tag yang diawali dengan <NAMA_TAG> dan diakhiri dengan </NAMA_TAG>. Beberapa contoh tag container adalah <HTML></HTML>, <HEAD></Body>, dsb (Antony Pranata ; 2011 : 11).
II.6. Pengertian Database
Secara sederhana database (basis data/pangkalan data) dapat diungkapkan sebagai suatu pengorganisasian data dengan bantuan komputer yang memungkinkan data dapat diakses dengan mudah dan cepat. Pengertian akses dapat mencakup pemerolehan data maupun pemanipulasian data seperti menambah serta menghapus data. Dengan memanfaatkan komputer, data dapat disimpan dalam media pengingat yang disebut harddisk. Dengan menggunakan media ini, keperluan kertas untuk menyimpan data dapat dikurangi. Selain itu, data menjadi lebih cepat untuk diakses terutama jika dikemas dalam bentuk
database.
Pengaplikasian database dapat kita lihat dan rasakan dalam keseharian kita.
Database ini menjadi penting untuk mengelola data dari berbagai kegiatan. Misalnya, kita bisa menggunakan mesin ATM (anjungan tunai mandiri / automatic teller machine) bank karena banktelah mempunyai database tentang nasabah dan rekening nasabah.Kemudian data tersebut dapat diakses melalui mesin ATM ketika bertransaksi melalui ATM. Pada saat melakukan transaksi, dalam konteks database sebenarnya kita sudah melakukan perubahan (update)
data pada databasedi bank.Ketika kita menyimpan alamat dan nomor telepon di HP, sebenarnya juga telah menggunakan konsep database. Data yang kita simpan di HP juga mempunyai struktur yang diisi melalui formulir(form) yang disediakan. Pengguna dimungkinkan menambahkan nomor HP, nama pemegang, bahkan kemudian dapat ditambah dengan alamat email, alamat web, nama kantor, dan sebagainya. (Agustinus Mujilan ; 2012 : 23).
II.7. Pengertian SQLite
SQLite merupakan sebuah sistem manajemen basis data relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp. Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times, dan secara keseluruhan lebih sederhana. Seluruh elemen basis data (definisi data, tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi desain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai (Fredy Purnomo ; 2010 : 2).
II.8. Teknik Normalisasi
Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu dalam merancang basis data relasional. Pada dasarnya, normalisasi adalah proses dua langkah yang meletakkan data dalam bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi dari tabel rasional.
Teori normalisasi didasarkan pada konsep bentuk normal. Sebuah tabel relasional dikatakan berada pada bentuk normal tertentu jika tabel memenuhi himpunan batasan tertentu. Ada lima bentuk normal yang tekah ditemukan.
II.8.1.Bentuk-bentuk Normalisasi
1. Bentuk normal tahap pertama (1” Normal Form)
Contoh yang kita gunakan di sini adalah sebuah perusahaan yang mendapatkan barang dari sejumlah pemasok. Masing-masing pemasok berada pada satu kota. Sebuah kota dapat mempunyai lebih dari satu pemasok dan masing-masing kota mempunyai kode status tersendiri. 2. Bentuk normal tahap kedua (2nd normal form)
Definisi bentuk normal kedua menyatakan bahwa tabel dengan kunci utama gabungan hanya dapat berada pada 1NF, tetapi tidak pada 2NF. Sebuah tabel relasional berada pada bentuk normal kedua jika dia berada pada bentuk normal kedua jika dia berada pada 1NF dan setiap kolom bukan kunci yang sepenuhnya tergantung pada seluruh kolom yang membentuk kunci utama.
3. Bentuk normal tahap ketiga (3rd normal form)
Bentuk normal ketiga mengharuskan semua kolom pada tabel relasional tergantung hanya pada kunci utama. Secara definisi, sebuah tabel berada pada bentuk normal ketiga (3NF) jika tabel sudah berada pada 2NF dan setiap kolom yang bukan kunci tidak tergantung secara transitif pada kunci utamanya.
4. Boyce Code Normal Form (BCNF)
Setelah 3NF, semua masalah normalisasi hanya melibatkan tabel yang mempunyai tiga kolom atau lebih dan semua kolom adalah kunci. Banyak praktisi berpendapat bahwa menempatkan entitas pada 3NF sudah cukup karena sangat jarang entitas yang berada pada 3NF bukan merupakan 4NF dan 5NF.
5. Bentuk Normal Tahap Keempat dan Kelima
Sebuah tabel relasional berada pada bentuk normal keempat (4NF) jika dia dalam BCNF dan semua ketergantungan multivalue merupakan ketergantungan fungsional. Bentuk normal keempat (4NF) didasarkan pada konsep ketergantungan multivalue (MVD).
Sebuah tabel berada pada bentuk normal kelima (5NF) jika ia tidak dapat mempunyai dekomposisi lossless menjadi sejumlah tabel lebih kecil. Empat bentuk normal pertama berdasarkan pada konsep ketergantungan fungsional, sedangkan bentuk normal kelima berdasarkan pada konsep ketergantungan gabungan (join dependence) (Janner Simarmata ; 2010 : 76).
II.9. UML (Unified Modeling Language)
Menurut Windu Gata (2013 : 4) Hasil pemodelan pada OOAD terdokumentasikan dalam bentuk Unified Modeling Language (UML). UML adalah bahasa spesifikasi standar yang dipergunakan untuk mendokumentasikan, menspesifikasikan dan membangun perangkat lunak.
UML merupakan metodologi dalam mengembangkan sistem berorientasi objek dan juga merupakan alat untuk mendukung pengembangan sistem. UML saat ini sangat banyak dipergunakan dalam dunia industri yang merupakan standar bahasa pemodelan umum dalam industri perangkat lunak dan pengembangan sistem.
Alat bantu yang digunakan dalam perancangan berorientasi objek berbasiskan UML adalah sebagai berikut :
1. Use case Diagram
Use case diagram merupakan pemodelan untuk kelakukan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Dapat dikatakan use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Simbol-simbol yang digunakan dalam use case diagram, yaitu :
Tabel II.2. Simbol Use Case
Gambar Keterangan
Use case menggambarkan fungsionalitas yang disediakan sistem sebagai unit-unit yang bertukan pesan antar unit dengan aktor, biasanya dinyatakan dengan menggunakan kata kerja di awal nama use case.
Aktor adalah abstraction dari orang atau sistem yang lain yang mengaktifkan fungsi dari target sistem. Untuk mengidentifikasikan aktor, harus ditentukan pembagian tenaga kerja dan tugas-tugas yang berkaitan dengan peran pada konteks target sistem. Orang atau sistem bisa muncul dalam beberapa peran. Perlu dicatat bahwa aktor berinteraksi dengan
use case, tetapi tidak memiliki control terhadap use case.
Asosiasi antara aktor dan use case, digambarkan dengan garis tanpa panah yang mengindikasikan siapa atau apa yang meminta interaksi secara langsung dan bukannya mengidikasikan aliran data. Asosiasi antara aktor dan use case yang
menggunakan panah terbuka untuk mengidinkasikan bila aktor berinteraksi secara pasif dengan sistem.
Include, merupakan di dalam use case lain (required) atau pemanggilan use case oleh use case lain,
contohnya adalah pemanggilan sebuah fungsi program.
Extend, merupakan perluasan dari use case lain jika kondisi atau syarat terpenuhi.
(Sumber : Windu Gata, 2013 : 4)
2. Diagram Aktivitas (Activity Diagram)
Activity Diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Simbol-simbol yang digunakan dalam
activity diagram, yaitu :
Tabel II.3. Simbol Activity Diagram
Gambar Keterangan
Start point, diletakkan pada pojok kiri atas dan merupakan awal aktifitas.
End point, akhir aktifitas.
Activites, menggambarkan suatu proses/kegiatan bisnis.
Fork (Percabangan), digunakan untuk menunjukkan kegiatan yang dilakukan secara parallel atau untuk menggabungkan dua kegiatan pararel menjadi satu.
Join (penggabungan) atau rake, digunakan untuk menunjukkan adanya dekomposisi.
Decision Points, menggambarkan pilihan untuk pengambilan keputusan, true, false.
Swimlane, pembagian activity diagram untuk menunjukkan siapa melakukan apa.
(Sumber : Windu Gata, 2013 : 6)
3. Diagram Urutan (Sequence Diagram)
Sequence diagram menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan pesan yang dikirimkan dan diterima antar objek. Simbol-simbol yang digunakan dalam sequence diagram, yaitu :
Tabel II.4. Simbol Sequence Diagram
Gambar Keterangan
EntityClass, merupakan bagian dari sistem yang berisi kumpulan kelas berupa entitas-entitas yang membentuk gambaran awal sistem dan menjadi landasan untuk menyusun basis data.
Boundary Class, berisi kumpulan kelas yang menjadi
interface atau interaksi antara satu atau lebih aktor dengan sistem, seperti tampilan formentry dan form
cetak.
Control class, suatu objek yang berisi logika aplikasi yang tidak memiliki tanggung jawab kepada entitas, contohnya adalah kalkulasi dan aturan bisnis yang melibatkan berbagai objek.
Message, simbol mengirim pesan antar class.
Recursive, menggambarkan pengiriman pesan yang dikirim untuk dirinya sendiri.
Activation, activation mewakili sebuah eksekusi operasi dari objek, panjang kotak ini berbanding lurus dengan durasi aktivitas sebuah operasi.
Lifeline, garis titik-titik yang terhubung dengan objek, sepanjang lifeline terdapat activation.
(Sumber : Windu Gata, 2013 : 7)
4. Class Diagram (Diagram Kelas)
Merupakan hubungan antar kelas dan penjelasan detail tiap-tiap kelas di dalam model desain dari suatu sistem, juga memperlihatkan aturan-aturan dan tanggng jawab entitas yang menentukan perilaku sistem.
Class diagram juga menunjukkan atribut-atribut dan operasi-operasi dari sebuah kelas dan constraint yang berhubungan dengan objek yang dikoneksikan. Class diagram secara khas meliputi: Kelas (Class), Relasi,
Associations, Generalization dan Aggregation, Atribut (Attributes), Operasi (Operations/Method), Visibility, tingkat akses objek eksternal kepada suatu operasi atau atribut. Hubungan antar kelas mempunyai keterangan yang disebut dengan multiplicity atau kardinaliti.
Tabel II.5. Multiplicity Class Diagram
Multiplicity Penjelasan
1 Satu dan hanya satu
0..* Boleh tidak ada atau 1 atau lebih 1..* 1 atau lebih
0..1 Boleh tidak ada, maksimal 1
n..n Batasan antara. Contoh 2..4 mempunyai arti minimal 2 maksimum 4