TINJAUAN PUSTAKA
PHP-OPENISIS
3
Tabel 1 Kapasitas yang disediakan dalam program CDS/ISIS
KAPASITAS JUMLAH
Basisdata Tergantung
harddisk Record satu file 16 juta Karakter dalam record 8000
Field dalam satu record 200 Panjang satu field 8000 Banyak field dalam 1 19 Halaman dalam 1 worksheet 20 Karakter format tampilan 4000 Karakter pada stop-words list 799
Salah satu keunggulan utama yang disediakan oleh CDS/ISIS ialah dapat memanipulasi jumlah data tak terbatas yang mengandung perbedaan elemen data yang kompleks. Untuk para pengguna ahli, CDS/ISIS menyediakan pilihan fasilitas pemrograman yang sangat luas tergantung spesialisasi pembuatan aplikasi menurut penggunaannya. CDS/ISIS juga menyediakan
library eksternal pemrograman yaitu ISIS_DLL yang menyediakan segala alat yang dibutuhkan untuk membangun aplikasi berbasis CDS/ISIS.
MySQL
Salah satu basisdata server yang cukup terkenal saat ini adalah MySQL. Basisdata
server keluaran T.c.X DataKonsultAB, sebuah perusahaan IT Swedia ini, menawarkan berbagai keunggulan dibandingkan basisdata
server lain, yaitu:
Sangat cepat mengeksekusi perintah Mampu menangani jutaan user dalam waktu yang bersamaan
Mampu menampung lebih dari 50.000.000
record.
Konektivitas jaringan yang memungkinkan pengguna dapat mengakses basisdata dari mana saja melalui internet.
Dapat berjalan baik pada berbagai platform
UNIX layaknya pada sistem non-UNIX seperti Windows dan OS/2.
Mempunyai dukungan open source. Kelebihan lain dari MySQL adalah penggunaan bahasa Query standar yang dimiliki SQL (Structure Query Language). SQL adalah suatu bahasa permintaan
terstruktur yang telah distandarkan untuk semua program pengakses basisdata seperti Oracle, PostgreSQL, SQL Server, dan lain-lain. Sebagai sebuah program penghasil basisdata, MySQL tidak dapat berjalan sendiri tanpa adanya sebuah aplikasi lain (interface). MySQL dapat didukung oleh hampir semua program aplikasi baik open source seperti PHP maupun yang tidak, yang terdapat pada
platform Windows seperti Visual Basic, Delphi, dan lainnya.
PHP-OPENISIS
PHP-OPENISIS merupakan port
OPENISIS ke PHP dalam bentuk extension
PHP. OPENISIS itu sendiri merupakan
command-line tool untuk membaca basisdata
native CDS/ISIS.
JPGRAPH
JPGRAPH adalah sebuah library
berorientasi objek lengkap untuk menggambar grafik menggunakan PHP. JPGRAPH dikeluarkan dibawah lisensi QPL 0.1 (Qt license) untuk penggunaan non komersial dan lisensi JPGRAPH Professional untuk penggunaan komersial.
JPGRAPH memiliki banyak kelas yang memudahkan kita untuk membuat grafik lebih lengkap dan variatif. Kita bisa memakai kelas-kelas tersebut untuk membuat bermacam-macam grafik di antaranya adalah grafik batang, grafik garis, scatter plot, error plot,
box and stock charts, radar plot, pie plot, dll. Total kelas dan method yang dimiliki oleh JPGRAPH ialah 101 dan 948.
Metode Pengembangan Sistem Waterfall Menurut Sommerville (2001), metode pengembangan sistem Waterfall terbagi menjadi beberapa tahapan, yaitu:
a. Tahap analisis Kebutuhan
Merupakan tahap untuk mengumpulkan informasi kebutuhan sistem yang akan dibuat, menganalisis pengguna yang akan berinteraksi dengan sistem, tugas yang dilakukan pengguna, dan lingkungan sistem. Pada tahap ini, dilakukan komunikasi dengan pengguna untuk mengumpulkan informasi yang diperlukan. Selanjutnya, dari informasi yang diperoleh, didefinisikan secara detail dan disajikan sebagai spesifikasi sistem.
b. Perancangan
Merupakan tahap yang mendefinisikan informasi kebutuhan menjadi suatu representasi sistem sebelum diimplementasikan. Pada tahap ini, dirancang pula arsitektur sistem secara keseluruhan.
4
c. Implementasi
Merupakan tahap yang merealisasikan rancangan menjadi kumpulan program atau unit-unit program sehingga menjadi suatu sistem yang dapat digunakan.
d. Integrasi dan Pengujian
Unit-unit program yang sudah dibuat diintegrasikan dan diuji sebagai sistem yang lengkap untuk menjamin bahwa semua kebutuhan sudah terpenuhi. Setelah pengujian selesai dilakukan, sistem siap untuk dilaksanakan.
e. Penggunaan dan Pemeliharaan
Fase ini umumnya menjadi fase terpanjang dalam siklus hidup sistem. Fase pemeliharaan meliputi koreksi error yang tidak ditemukan pada tahap sebelumnya. Pemeliharaan juga dilakukan untuk memperbaiki implementasi unit-unit sistem dan menambahkan layanan-layanan baru ketika muncul kebutuhan yang baru.
Sistem Berorientasi Objek
Objek adalah komponen software yang memodelkan entitas nyata; memiliki data, fungsi, dan sifat yang dinamik.
Sebuah sistem yang dibangun berdasarkan metode berorientasi objek adalah sebuah sistem yang komponennya dienkapsulasi menjadi kelompok data dan fungsi yang dapat mewarisi atribut dan sifat komponen lainnya, dan komponen-komponen tersebut saling berinteraksi satu sama lain (Meyer 1997). Kelebihan Software berorientasi objek adalah:
Reused Code, kode-kode yang telah dibuat dapat dipergunakan kembali. Kode lebih ringkas, lebih sedikit kesalahan, konsisten, dan mudah untuk dipelihara
Enkapsulasi, yaitu pemecahan masalah ke bentuk yang lebih kecil. Dengan adanya enkapsulasi, perubahan pada suatu bagian berimplikasi minimum ke bagian lainnya.
Communicable, source code lebih natural dan lebih mudah dijelskan ke anggota tim.
Testable, setiap kelas dapat dites secara individual, lebih mudah untuk dipisahkan, dan lebih mudah untuk membetulkan kesalahan.
Kelas adalah kumpulan objek yang mempunyai atribut yang sama. Kelas adalah definisi statik dari entitas. Entitas adalah atribut kelas, variable lokal, parameter formal, dan hasil fungsi.
Tujuh langkah untuk mendapatkan hasil
software yang memuaskan (Meyer 1997) adalah:
Modularisasi, sistem dimodularisasi berdasarkan struktur objek.
Abstraksi data, objek harus dideskripsikan sebagai implementasi dari ADT (Abstract Definition Type).
Classes, setiap tipe yang tidak sederhana adalah sebuah modul, setiap modul adalah tipe tingkat tinggi.
Inheritance, sebuah kelas dapat didefinisikan berdasarkan ekstensi atau restriksi dari kelas lain.
Polimorphisme, entitas program harus dimungkinkan untuk mengacu kepada lebih dari satu kelas dan operasi harus dimungkinkan untuk lebih dari satu kelas.
Multiple and repeated inheritance, harus dimungkinkan untuk membuat deklarasi kelas sebagai pewaris dari banyak kelas, dan lebih dari satu jika pewarisnya sebuah kelas.
Pengembangan sistem dengan metode berorientasi objek dapat meningkatkan :
Produktivitas
Kecepatan pengembangan Kualitas perangkat lunak Kemudahan pemeliharaan Model-View-Controller (MVC)
MVC adalah suatu rancangan aplikasi yang terdiri atas tiga bagian yaitu: Model, View, dan
Controller, sehingga membuat pengembangan aplikasi menjadi lebih mudah. MVC dikembangkan untuk memetakan input, proses, dan output ke dalam user interfaces
(Marston 2004). MVC pattern mengatur dan memisahkan software ke dalam tiga bagian, yaitu:
1. Model, berfungsi untuk mengenkapsulasi
application data, application flow, dan
bussiness logic.
2. View, berfungsi untuk mengekstrak data dari Model dan memformatnya ke dalam bentuk presentasi.
3.Controller, menjalankan application flow
dan menerima input dari user, mengubahnya untuk dikirim ke Model dan
View. ( Sweat 2005)
Hubungan di antara bagian-bagian MVC dapat dlihat pada Gambar 2.
MVC Pattern pertama kali dibangun oleh Trygve Reenskaug dari Xerox’s Palo Alto
Research Centre (PARC) di tahun 1970. Di lain pihak, referensi implementasinya pertama kali dibangun oleh Tim SmallTalk-80 untuk memecahkan masalah interaksiGUI ( Graphical User Interfaces) pada aplikasi.
5
HTTPRequest
HTTPResponse
Gambar 2 Hubungan antar bagian MVC (Sweat 2005)
Penjelasan dari masing-masing bagian adalah sebagai berikut:
Model
Model merupakan representasi dari proses bisnis di dalam aplikasi perangkat lunak. Lebih mudahnya, dapat juga disebutkan bahwa Model adalah bagian yang bertugas untuk mengolah data mentah menjadi data yang mengandung arti yang diinginkan oleh pengguna.
View
View mengatur antarmuka dari sistem, mengatur output baik grafis maupun teks, yang nantinya dikirimkan ke pengguna aplikasi. Format HTML merupakan contoh
umum hasil akhir yang dikirimkan dalam aplikasi web.
Controller
Controller merepresentasikan permintaan yang datang (HTTP request) dari pengguna berupa input dari keyboard atau mouse,
memerintahkan Model untuk memproses aksi berdasarkan input, kemudian menampilkan hasil dari aksi tersebut ke
View.
Alur komunikasi antar tiap bagian MVC diawali oleh permintaan dari user yang diekspresikan oleh HTTP Request. HTTP Request dikirimkan ke Controller. Kemudian
Controller akan menterjemahkan HTTP Request tersebut sebagai perintah request
data dan mengirimkannya ke Model. Kemudian Model akan menjalankan perintah tersebut dan menghasilkan data hasil. Setelah itu, Controller akan memerintahkan View
Untuk menampilkan data hasil. View
melaksanakan perintah tersebut dengan cara mengambil data hasil, memformatnya ke dalam bentuk presentasi, dan mengirimkan hasilnya untuk ditampilkan (HTTP Response). Alur komunikasi antar tiap bagian MVC dapat dilihat pada Gambar 3.
Gambar 3 Alur komunikasi Antar tiap bagian MVC ( Sweat 2005)
Jaringan Syaraf Tiruan
Jaringan Syaraf Tiruan (JST) merupakan suatu sistem pemroses informasi yang memiliki persamaan secara umum dengan cara kerja jaringan syaraf biologi (Fausett 1994). Secara matematis, untuk suatu syaraf, setiap input Xi dimodulasikan oleh sebuah pembobot Wi sehingga jumlah total input dinyatakan sebagai:
i i i
W
X ...
(1) atau dalam bentuk vektor, X.W, dimana X = [X1, X2, …, Xn] dan W = [W1, W2, …, Wn]. Sinyal input selanjutnya diproses oleh fungsi aktivasi (activation function) untuk menghasilkan sinyal output, yang jika tidak nol, akan ditransmisikan sebagai output (Fu 1994).Model
Controlle
r
6
Jaringan syaraf merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan digunakan karena pada pengimplementasiannya jaringan ini menggunakan komputer agar mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran. Dengan demikian, bisa dikatakan bahwa jaringan syaraf tiruan merupakan sistem pemrosesan informasi yang memiliki karakteristik hampir sama dengan jaringan jaringan neural biologis yaitu otak manusia.
Neuron dan hubungan antar synapses
merupakan elemen kunci untuk proses informasi pada jaringan. Lihat gambar dia atas. Sebagian besar proses neuron terlihat seperti pohon yang disebut dengan dendrites yang menerima sinyal dari neuron lainnya melewati persimpangan yang disebut Synapse. Menurut Fausett (1994), suatu JST dicirikan oleh tiga hal sebagai berikut:
1. Arsitektur JST
Arsitektur jaringan ialah pengaturan
neuron dalam suatu lapisan, pola hubungan dalam lapisan dan di antara lapisan. Dalam JST, neuron-neuron diatur dalam sebuah lapisan (layer). Ada tiga tipe lapisan, yaitu lapisan input, lapisan tersembunyi (hidden layer) dan lapisan output. Jaringan neuron dikelompokkan sebagai lapis tunggal (single layer) yang terdiri atas lapisan input dan output, dan lapis banyak (multiple layer) yang terdiri atas lapisan input, lapisan tersembunyi, dan lapisan output. Ilustrasi JST lapis tunggal dapat dilihat dalam Gambar 4.
Gambar 4 Arsitektur JST lapis tunggal 2. Metode pembelajaran untuk penentuan
pembobot koneksi.
Metode pembelajaran digunakan untuk menentukan nilai pembobot yang akan digunakan pada saat pengujian. Ada dua
tipe pembelajaran, yaitu dengan pengarahan (supervised learning) dan tanpa pengarahan (unsupervised learning). Di lain pihak, metode pembelajaran JST, di antaranya: Perceptron, Aturan Delta (Adaline/Madaline), Backpropagation,
Self Organizing Map (SOM), dan
Learning Vector Quantization (LVQ) . 3. Fungsi aktivasi yang digunakan.
Fungsi aktivasi merupakan fungsi yang menentukan level aktivasi, yaitu keadaan internal sebuah neuron dalam JST. Keluaran aktivasi ini biasanya dikirim sebagai sinyal ke neuron lainnya. Contoh fungsi aktivasi ialah fungsi identitas fungsi tangga biner (binary step function), fungsi tangga bipolar, fungsi sigmoid biner dan fungsi sigmoid bipolar.
JST Propagasi Balik Standar
Menurut Fu (1994), jaringan propagasi balik (propagation network) merupakan jaringan umpan maju berlapis banyak (multilayer feedforward network). Aturan pembelajaran propagasi balik disebut
backpropagation yang merupakan jenis dari teknik gradient descent dengan backward error (gradient) propagation.
Fungsi aktivasi yang digunakan dalam propagasi balik ialah fungsi sigmoid. Hal ini disebabkan karena dalam jaringan propagasi balik fungsi aktivasi yang digunakan harus kontinu, dapat didiferensialkan, dan monoton naik (Fausett 1994). Salah satu fungsi aktivasi yang paling banyak digunakan ialah sigmoid biner, yang memiliki selang [0, 1] dan didefinisikan sebagai: ) exp( 1 1 ) ( 1 x x f ... (2) Dengan turunannya )] ( 1 )[ ( ) ( ' 1 1 1 x f x f x f ... (3) Grafik untuk fungsi sigmoid biner dapat diihat dalam Gambar 5.
Gambar 5 Grafik fungsi sigmoid biner dengan selang (0,1)
Fungsi aktivasi lain yang biasa digunakan ialah sigmoid bipolar, yang memiliki selang nilai [-1, 1], dan didefinisikan sebagai:
1 ) exp( 1 2 ) ( 2 x x f ... (4) n a wr w3 w1 w2 pr p3 p2 p1 b f
7
Dengan turunannya: )] ( 1 )][ ( 1 [ 2 1 ) ( ' 2 2 2 x f x f x f ... (5)Grafik untuk fungsi sigmoid bipolar dapat dilihat dalam Gambar 6.
Gambar 6 Grafik fungsi sigmoid bipolar dengan selang (-1,1)
Jaringan ini menggunakan metode pembelajaran dengan pengarahan (supervised learning). Cara kerja JST diawali dengan inisialisasi pembobot dan bias. Pemilihan metode inisialisasi pembobot dan bias berpengaruh pada kecepatan JST dalam mencapai kekonvergenan. (Fausett, 1994). JST propagasi balik ditunjukkan dalam Gambar 7.
Gambar 7 Arsitektur JST propagasi balik (Fu 1994)
Pada pelatihan JST propagasi balik terdapat tiga tahapan, yaitu pelatihan input yang bersifat umpan maju, penghitungan galat, dan penyesuaian pembobot. Secara umum cara kerja JST propagasi balik ada beberapa langkah. Pertama, pola input dan target dimasukkan ke dalam jaringan. Selanjutnya pola input ini akan berubah sesuai dengan propagasi pola tersebut ke lapisan-lapisan berikutnya hingga menghasilkan output. Output ini akan dibandingkan dengan target. Apabila dari hasil perbandingan ini
dihasilkan nilai yang sama, proses pembelajaran akan berhenti. Tetapi apabila berbeda, maka jaringan mengubah pembobot yang ada pada hubungan antar neuron dengan suatu aturan tertentu agar nilai output lebih mendekati nilai target. Proses pengubahan pembobot adalah dengan cara mempropagasikan kembali nilai korelasi galat output jaringan ke lapisan-lapisan sebelumnya (propagasi balik). Kemudian dari lapisan input, pola akan diproses lagi untuk mengubah nilai pembobot, hingga akhirnya memperoleh output jaringan baru. Proses ini dilakukan berulang-ulang sampai diperoleh nilai yang sama atau minimal sesuai dengan galat yang diinginkan. Proses perubahan pembobot inilah yang disebut proses pembelajaran.
Algoritma propagasi balik ialah sebagai berikut (Fu 1994):
Inisialisasi pembobot.
Tentukan semua pembobot dan threshold
untuk tiap node dengan nilai yang kecil.
Threshold untuk node ialah negatif dari pembobot dari unit bias (yang level aktivasinya ditetapkan 1).
Penghitungan fungsi aktivasi.
1. Tingkat aktivasi unit input ditentukan oleh contoh yang telah diberikan pada
network.
2. Tingkat aktivasi Oj unit tersembunyi dan output ditentukan oleh:
)
(
ji i jj
F W O
O
... (6)Dimana Wji adalah pembobot dari unit
Oi, iialah threshold dari node, dan F
adalah fungsi sigmoid:
a e F 1 1 ) ( ...(7) Pelatihan bobot.
1. Dimulai dari unit-unit output dan dilakukan backward menuju lapisan tersembunyi secara rekursif. Perubahan pembobot sebagai berikut:
ji ji
ji
t w t w
W ( 1) ( )
... (8) Dengan Wji(t) adalah pembobot dari unit i ke unit j pada saat t iterasi ke-tdan Wji adalah koreksi pembobot. 2. Perubahan pembobot dihitung dengan:
i j
ji
O
W
... .(9) Dengan adalah trial independent learning rate dan j adalah error gradient pada unit j.3. Error gradient dihitung sebagai berikut:
untuk unit output:
j = Oj(1-Oj)(Tj-Oj) ... (10) Backward Error Propagation OUTPUT LAYER HIDDEN LAYER INPUT LAYER Input Actual Output Forward Information Flow Forward Information Flow Target Output
8
Dengan Tj adalah aktivasi output (target yang diharapkan dan Oj adalah aktivasi output aktual pada unit output
j).
untuk lapisan tersembunyi: j = Oj(1-Oj) k Wkj ... (11) Dengan j adalah error gradient pada unit k yang memiliki koneksi dari unit tersembunyi j.
3. Iterasi diulangi sampai konvergen terhadap kriteria error yang ditentukan. Satu iterasi meliputi pemberian contoh, penghitungan aktivasi dan modifikasi pembobot.