CLUSTERING HASIL DEKOMPOSISI WEB SERVICE PADA
ENTERPRISE RESOURCE PLANNING PONDOK
PESANTREN MENGGUNAKAN PARSING WEB
SERVICES DESCRIPTION LANGUAGE DAN
K-MEANS CLUSTERING
SKRIPSI
Oleh:
FIAN RISDIA WULAN
NIM. 13650090
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI MAULANA MALIK IBRAHIM
MALANG
2018
ii
Clustering Hasil Dekomposisi Web Service pada Enterprise Resource Planning
Pondok Pesantren Menggunakan Parsing Web Services Description
Language dan K-Means Clustering
SKRIPSI
Diajukan Kepada :
Fakultas Sains dan Teknologi
Universitas Islam Negeri Maulana Malik Ibrahim Malang
Untuk Memenuhi Salah Satu Persyaratan Dalam
Memperoleh Gelar Sarjana Komputer (S.Kom)
Oleh:
FIAN RISDIA WULAN
NIM. 13650090
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI MAULANA MALIK IBRAHIM
MALANG
2018
iii
LEMBAR PERSETUJUAN
iv
LEMBAR PENGESAHAN
v
PERNYATAAN ORISINALITAS PENELITIAN
vi
HALAMAN PERSEMBAHAN
Alhamdulillahirobbilálamiiin…
Puji syukur kehadirat Allah SWT yang telah memberikan kekuatan serta
kelancaran kepada saya dalam setiap langkah untuk menyelesaikan skripsi ini.
Shalawat serta Salam selalu tercurahkan kepada Nabi Muhammad SAW yang
telah membimbing kita untuk menjadi hamba Allah yang selalu berusaha.
Aku persembahkan skripsi ini untuk:
Bapak Rusmadi dan Ibu Sukesi yang Tersayang
Sebagai orang tua saya yang setiap saat selalu bersujud dan berdo’a kepada
Allah SWT untuk kesuksesan kedua putrinya, serta senantiasa mendukung dan
memberikan saya kekuatan untuk terus berjuang.
Kakakku Citra Rosiana L yang Baik Hati
Yang selalu memberikan semangat, saran, serta nasihat-nasihat yang
membangun untuk saya.
Seluruh Keluarga Besar
Yang selalu memberikan semangat, dukungan, dan do’a kepada saya untuk
terus melangkah maju.
Terima Kasih saya ucapkan kepada:
Sahabat-sahabat Pepipo (Tya, Imamah, Rina, Arif, dan Candra), Tim Skripsi
Sukses (Ratih, Anna, Heny, Linda, Visa, Vita, Wanna, Ismail), dan seluruh
Mahasiswa Teknik Informatika Angkatan 2013.
Sahabat-sahabat Kos SKD 01, terutama Baiti, Qolbi, dan Anggra yang
seangkatan. Semua teman-temanku, Fahmi, dan semua orang yang terlibat
dalam pengerjaan skripsi ini baik secara langsung maupun tidak langsung.
Semoga Allah SWT selalu melindungi dan menjaga mereka dalam naunganNya.
Aamiin…
Fian Risdia Wulan
vii
MOTTO
عنه عن النهبي قال: رضا الله ف رضا الوالدين و سخط عن عبد الله بن عمر رضي الله الله ف سخط الوالدين
Dari Abdullah Ibnu Amar al-Ash radliallahu anhu bahwa Nabi bersabda :
“Ridho Allah berada pada ridho kedua orang tuanya, dan murka Allah (akibat)
murka kedua orang tuanya.”
(HR. At-Tirmidzi)
viii
KATA PENGANTAR
Assalamu’alaikum Wr. Wb.
Segala puji syukur kehadirat Allah SWT, karena atas rahmat dan hidayah-
Nya penulis dapat menyelesaikan skripsi ini dengan judul “Clustering Hasil
Dekomposisi Web Service pada Enterprise Resource Planning Pondok Pesantren
Menggunakan Parsing Web Services Description Language dan K-Means
Clustering” dengan baik. Shalawat dan Salam semoga tetap tercurahkan kepada
junjungan kita Nabi besar Muhammad SAW yang telah membimbing kita dari
kegelapan menuju jalan kebaikan.
Penulis menyadari bahwa dalam penyusunan tugas akhir skripsi ini tidak akan
berhasil dengan baik tanpa adanya bimbingan dan sumbangan pemikiran dari
berbagai pihak. Pada kesempatan ini penulis menyampaikan terima kasih yang
sedalam-dalamnya kepada:
1. Bapak Dr. Cahyo Crysdian selaku Ketua Jurusan Teknik Informatika
Fakultas Sains dan Teknologi Universitas Islam Negeri Maulana Malik
Ibrahim Malang.
2. Bapak M. Ainul Yaqin, M.Kom selaku dosen pembimbing I yang telah
memotivasi, meluangkan waktu untuk membimbing dan mengarahkan
penulis dalam pengerjaan skripsi ini hingga akhir.
3. Bapak Syahiduz Zaman, M.Kom selaku dosen pembimbing II yang telah
senantiasa memberi masukan dan nasihat dalam penyusunan skripsi ini.
4. Segenap dosen Jurusan Teknik Informatika yang telah memberikan
bimbingan keilmuan kepada penulis selama masa studi.
ix
5. Ibu, Bapak, kakak, dan seluruh keluarga besar yang senantiasa memberikan
do’a, semangat serta dukungan kepada penulis.
6. Teman-teman Pepipo yang selalu memberikan semangat, dukungan, kritik,
dan saran kepada penulis.
7. Tim Skripsi Sukses yang telah berjuang bersama dan banyak memberikan
bantuan kepada penulis.
8. Teman-teman Teknik Informatika 2013 yang telah memberikan semangat
dan dukungan dalam menyelesaikan skripsi ini.
9. Dan seluruh pihak yang terlibat secara langsung maupun tidak langsung
yang tidak bisa disebutkan satu persatu.
Akhirnya, dengan segala kerendahan hati penulis menyadari bahwa penulisan
skripsi ini masih jauh dari kata sempurna. Oleh karena itu penulis mengharapkan
kritik dan saran yang konstruktif demi kesempurnaan penulisan ini. Penulis
berharap semoga karya yang sederhana ini dapat bermanfaat dengan baik bagi
semua pihak. Amin ya Rabbal ‘Alamin…
Wassalamu’alaikum Wr. Wb.
Malang, 05 Januari 2018
Penulis
x
DAFTAR ISI
HALAMAN JUDUL ………………………………………………………………i
LEMBAR PENGAJUAN ………………………………………………………...ii
LEMBAR PERSETUJUAN................................................................................... iii LEMBAR PENGESAHAN ................................................................................... iv
PERNYATAAN ORISINALITAS PENELITIAN ................................................. v HALAMAN PERSEMBAHAN ............................................................................ vi MOTTO ................................................................................................................ vii
KATA PENGANTAR ......................................................................................... viii DAFTAR ISI ........................................................................................................... x DAFTAR GAMBAR ............................................................................................ xii DAFTAR TABEL ................................................................................................ xiv
ABSTRAK ............................................................................................................ xv ABSTRACT ........................................................................................................... xvi
xvii ............................................................................................................. ملخص البحث
BAB 1 PENDAHULUAN ...................................................................................... 1 1.1 Latar Belakang .............................................................................................. 1
1.2 Rumusan Masalah ......................................................................................... 5 1.3 Hipotesis ........................................................................................................ 5
1.4 Tujuan Penelitian ........................................................................................... 5 1.5 Manfaat Penelitian ......................................................................................... 6
1.6 Batasan Masalah ............................................................................................ 6 1.7 Sistematika Penulisan .................................................................................... 7
BAB 2 KAJIAN PUSTAKA ................................................................................... 8
2.1 Enterprise Resource Planning (ERP) ............................................................ 8 2.2 Perbedaan Enterprise Resource Planning dengan Sistem Informasi .......... 10
2.3 Web Service ................................................................................................. 11 2.3.1 Definisi Web Service ............................................................................. 11 2.3.2 Arsitektur Web Service ......................................................................... 12 2.3.3 Komponen - Komponen Web Service ................................................... 14
2.3.4 Pendekatan Implementasi Web Service ................................................ 15 2.4 Web Services Description Language (WSDL) ............................................ 16
2.5 Dekomposisi Web Service ........................................................................... 23 2.6 Clustering .................................................................................................... 25
2.7 K-Means Clustering .................................................................................... 28 BAB 3 METODOLOGI PENELITIAN................................................................ 31
3.1 Desain Penelitian ......................................................................................... 31
3.1.1 Gambaran Umum Sistem ...................................................................... 31 3.1.2 Sumber Data ......................................................................................... 31
3.2 Perancangan Sistem ..................................................................................... 32 3.2.1 Input Dokumen WSDL ......................................................................... 33
3.2.2 Database Web Service .......................................................................... 34 3.2.3 Parsing Data ......................................................................................... 38 3.2.4 Mendapatkan Fungsi dan Tipe Data ..................................................... 43
3.2.5 Pembuatan WSDL Baru ....................................................................... 46 3.2.6 Clustering ............................................................................................. 49
xi
3.3 Pengujian Sistem ......................................................................................... 58 BAB 4 HASIL DAN PEMBAHASAN................................................................. 60
4.1 Dokumen WSDL sebagai Data Uji ............................................................. 60 4.2 Langkah Uji Coba ....................................................................................... 62 4.3 WSDL Atomik ............................................................................................ 67 4.4 Pengujian Web Service Atomik ................................................................... 69 4.5 Clustering K-Means .................................................................................... 70
4.6 Pengujian Clustering ................................................................................... 71 BAB 5 KESIMPULAN DAN SARAN ................................................................ 76
5.1 Kesimpulan .................................................................................................. 76
5.2 Saran ............................................................................................................ 77 DAFTAR PUSTAKA ........................................................................................... 78 LAMPIRAN .......................................................................................................... 81
xii
DAFTAR GAMBAR
Gambar 2.1 Arsitektur client-server ERP ............................................................... 9 Gambar 2.2 Arsitektur Web Service ..................................................................... 13 Gambar 2.3 Komponen Web Service .................................................................... 14 Gambar 2.4 Implementasi Web Service secara Bottom-Up .................................. 16
Gambar 2.5 Elemen-Elemen WSDL ..................................................................... 17 Gambar 2.6 Elemen Types .................................................................................... 18 Gambar 2.7 Elemen Message ................................................................................ 19
Gambar 2.8 Elemen PortType dan Operation....................................................... 20 Gambar 2.9 Elemen Bnding .................................................................................. 22 Gambar 2.10 Elemen Service ................................................................................ 23 Gambar 2.11 Contoh Clustering Dokumen .......................................................... 26
Gambar 2.12 Hierarchical Clustering dan Partitional Clustering ....................... 26 Gambar 2.13 K-Means Clustering ........................................................................ 28 Gambar 2.14 Flowchart Algoritma K-Means Clustering ..................................... 29 Gambar 3.1 Perancangan Sistem........................................................................... 32
Gambar 3.2 Contoh File WSDL.xml .................................................................... 33 Gambar 3.3 ERD Database webservice................................................................ 37
Gambar 3.4 Form Input Data Web Service ........................................................... 37
Gambar 3.5 Source Code Simpan Data Web Service ............................................ 38
Gambar 3.6 Source Code Parsing Dokumen WSDL............................................ 39 Gambar 3.7 Flowchart Parsing WSDL ................................................................ 40 Gambar 3.8 Source Code Simpan Elemen PortType dan Operation .................... 41
Gambar 3.9 Source Code Simpan Elemen Message ............................................. 42 Gambar 3.10 Memecah Atribut Operation Name Menjadi Class dan Function .. 43
Gambar 3.11 Mengambil Message Type Menjadi Tipe Data Output Web Service43 Gambar 3.12 Alur untuk Mendapatkan Fungsi dan Tipe Data ............................. 44 Gambar 3.13 Source Code Mendapatkan Function dari Elemen Operation ........ 45
Gambar 3.14 Source Code Mendapatkan Tipe Data Output Web Service ............ 46
Gambar 3.15 Source Code Generate WSDL ........................................................ 47
Gambar 3.16 Halaman Info Generate Service dengan NuSOAP ......................... 48
Gambar 3.17 WSDL Hasil Generate NuSOAP .................................................... 48 Gambar 3.18 Tahap Preprocessing ....................................................................... 49
Gambar 3.19 Source Code Tahap Tokenizing dan Stopword Removal ................. 50 Gambar 3.20 Source Code Proses Stemming ........................................................ 50 Gambar 3.21 Source Code Fungsi Pengindeksan ................................................. 52
Gambar 3.22 Source Code Fungsi Pembobotan ................................................... 53 Gambar 3.23 Source Code Fungsi Penentuan Cluster .......................................... 55 Gambar 3.24 Source Code Penentuan Nilai Centroid .......................................... 55 Gambar 3.25 Precision dan Recall........................................................................ 58 Gambar 4.1 Dokumen WSDL Web Service Kurikulum ....................................... 61
Gambar 4.2 Elemen Operation Web Service Kurikulum ...................................... 62 Gambar 4.3 Tampilan Awal Program ................................................................... 63
Gambar 4.4 Tampilan Halaman Simpan Web Service .......................................... 63 Gambar 4.5 Tampilan Halaman Daftar Data Web Service ................................... 64 Gambar 4.6 Tampilan Daftar Data Message ......................................................... 65
xiii
Gambar 4.7 Tampilan Daftar Data Operation ...................................................... 65 Gambar 4.8 Tampilan Daftar Function dan Tipe Data Output ............................. 66
Gambar 4.9 Source Code Generate WSDL .......................................................... 67 Gambar 4.10 Tampilan Info Hasil Generate WSDL ............................................ 68 Gambar 4.11 Dokumen WSDL Hasil Generate ................................................... 68 Gambar 4.12 Requester/ Client ............................................................................. 69 Gambar 4.13 Hasil Request Client ........................................................................ 69
Gambar 4.14 Grafik Hasil Clustering ................................................................... 70 Gambar 4.15 Grafik Nilai Precision Antar Cluster .............................................. 73 Gambar 4.16 Grafik Nilai Recall Antar Cluster ................................................... 73
Gambar 4.17 Nilai Rata-Rata Precision, Recall, dan Accuracy ........................... 74
xiv
DAFTAR TABEL
Tabel 3.1 Tabel tb_webservice ............................................................................. 34 Tabel 3.2 Tabel tb_porttype .................................................................................. 34 Tabel 3.3 Tabel tb_operation ................................................................................ 35 Tabel 3.4 Tabel tb_message .................................................................................. 35
Tabel 3.5 Tabel tb_message_isi ............................................................................ 35 Tabel 3.6 Tabel tb_method ................................................................................... 36 Tabel 3.7 Tabel Data Web Service Atomik ........................................................... 36
Tabel 3.8 Contoh Data Operation Setelah Dilakukan Tokenizing ........................ 50 Tabel 3.9 Data Panjang Vektor Dokumen ............................................................ 55 Tabel 3.10 Nilai Awal Pusat Cluster .................................................................... 56 Tabel 3.11 Hasil Clustering .................................................................................. 57
Tabel 4.1 Hasil Perhitungan Precision, Recall, dan Akurasi pada Iterasi Pertama
............................................................................................................................... 72 Tabel 4.2 Hasil Perhitungan Precision, Recall, dan Akurasi pada Iterasi Kedua . 72 Tabel 4.3 Hasil Perhitungan Precision, Recall, dan Akurasi pada Iterasi Ketiga . 72
xv
ABSTRAK
Wulan, Fian Risdia. 2017. Clustering Hasil Dekomposisi Web Service pada
Enterprise Resource Planning Pondok Pesantren Menggunakan Parsing Web
Services Description Language dan K-Means Clustering. Skripsi. Jurusan Teknik
Infomatika Fakultas Sains dan Teknologi Universitas Islam Negeri Maulana Malik
Ibrahim Malang.
Pembimbing: (I) M. Ainul Yaqin, M.Kom dan (II) Syahiduz Zaman, M.Kom
Web Service merupakan sistem software yang saling berinteraksi untuk tujuan
pertukaran data melalui jaringan. Web service pada ERP Pondok Pesantren disusun
berdasarkan aktivitas-aktivitas dalam workflow yang diimplementasikan ke dalam
beberapa method. Web service yang memiliki beberapa method disebut web service
komposit. Web service komposit kurang mencerminkan operasi yang dimilikinya,
sehingga sulit untuk menemukan web service dengan fungsi yang spesifik. Dengan
demikian, web service perlu disedehanakan melalui proses dekomposisi.
Dekomposisi web service merupakan suatu cara memecah web service komposit
menjadi web service atomik.
Dekomposisi dilakukan dengan melakukan parsing dokumen WSDL untuk
mendapatan elemen portype, operation, dan message. Berdasarkan atribut
operation name, didapatkan class dan function yang digunakan oleh web service.
Tipe data output yang digunakan dalam web service diperoleh dari atribut message
type. Function dan tipe data output digunakan untuk generate WSDL baru. Hasil
dekomposisi dikelompokkan menggunakan k-means clustering berdasarkan fungsi
web service atomik, parameter input, dan tipe data output. Proses dekomposisi
menjadikan web service komposit menjadi lebih sederhana dengan membentuk web
service atomik yang dideskripsikan dalam WSDL yang memiliki satu operation.
Dengan demikian, web service atomik lebih spesifik terhadap operasi yang
digunakan. Berdasarkan pengujian yang dilakukan, proses clustering web service
atomik menggunakan k-means clustering memiliki nilai precision 33%, recall 67%,
dan accuracy 33%.
Kata Kunci: clustering, dekomposisi, k-means, web service, WSDL
xvi
ABSTRACT
Wulan, Fian Risdia. 2017. Clustering the Result of Web Service Decomposition
on Enterprise Resource Planning Pondok Pesantren Using Parsing Web Service
Description Language and K-Means Clustering. Thesis. Department of Informatic
Engineering. Faculty of Science and Technology. State Islamic University of
Maulana Malik Ibrahim Malang.
Adviser: (I) M. Ainul Yaqin, M.Kom and (II) Syahiduz Zaman, M.Kom
Web Service is a software system for the purpose of interacting data exchange
over the network. Web services on ERP Pondok Pesantren drawn up based on the
activities in the workflow are implemented into some methods. Web service which
has some methods is called a composite web service. Composite web
service operations that reflectless, making it difficult to find web services with
specific functionalities. Thus, the web service needs to be simplified through the
decomposition process. The decomposition of the web service is a way of breaking
down of a composite web service into an atomic web service.
The decomposition is performed by doing parsing WSDL documents for
element for portype, operation, and messages. Based on attributes of the operation
name, it brings class and function that is used by the web service. The output data
type is used in a web service is obtained from message type attribute.
Function and the output data type is used to generate a new WSDL. The results
of the decomposition are grouped using k-means clustering based on atomic web
service function, input parameters, and the data type of the output. The
decomposition process makes a composite web service into a simpler form with
a web service described in WSDL atomic that has one operation. Thus, the web
service more specific towards atomic operation used. Based on the testing that was
done, the process of clustering atomic web service using k-means clustering has a
value of precision 33%, recall 67%, and accuracy 33%.
Keywords: clustering, decomposition, k-means, web service, wsdl.
xvii
ملخص البحث
حتلل ويب السرفيس على مدرسة داخلية لتخطيط املوارد نتيجة جتميع. 2017ووالن، فيان ريسداي. k- means .ابستخدام حتليل لغة وصف ويب السرفيس و )انتريفرس رصورج فالنيع( يف املؤسسة
clustering ان مال الدولة اإلسالمية موالأطروحة. قسم املعلوماتية. كلية العلوم والتكنولوجيا. جامعة .إبراهيم ماالنج شاهد الزمان ، املاجستري( II) حممد عني اليقني ، املاجستري،(I)املستشار:
هو نظام الربجميات اليت تتفاعل مع بعضها البعض لغرض تبادل البيا انت من ويب السرفيس
تريفرس رصورج )انموارد املؤسساتضمن ختطيط ويب السرفيس يتم تنفيذ تكنولوجيا خالل الشبكة.على ويب السرفيس يتم تنظيم .لدمج مجيع أنظمة املعلومات املستخدمة معهد الداخلية فالنيع(
سري العمل على أساس األنشطة يف معهد الداخلية )انتريفرس رصورج فالنيع(ختطيط موارد املؤسسات .ملركبةاويب السرفيس اليت هلا عدات طروق تسمى ويب السرفيس .اليت يتم تنفيذها يف عدات طروق
املركب هو أقل تعكس وظيفة املستخدمة، لذل جيب القيام به ويب السرفيس واحدة من عيوب يعمل التحلل على .املركبة يف الذريةويب السرفيس التحلل هو وسيلة لكسر ويب السرفيس .التحلل
.ة املستخدمةتبسيط ويب السرفيس لتكون أكثر حتديدا للوظيف (portype)للحصول على نوع العملية (WSDL) يتم التحلل عن طريق حتليل مستند وسدل
(output)ونوع بيا انت املخرجات املستخدمة (function)الرسالة للحصول على الدال ,، وعناصر
استنادا إىل k- means clustering يتم جتميع نتائج التحليل ابستخدام جتميع .ويب السرفيسيف ويب عملية التحلل جيعل .ومعامالت املدخالت وأنواع بيا انت املخرجات ويب السرفيسوظيفة ويب السرفيسوهكذا، تصبح .الذريويب السرفيس املركبة تصبح أبسط من خالل تشكيل السرفيس
ي ذر الويب السرفيس واستنادا إىل االختبار، فإن جتميع .أكثر انعكاسا لكل وظيفة مستخدمة ،33٪ (precision)بنسبة دقيقة قيمةله k-means clustering ابستخدام جتميع
.33٪ (accuracy)، ودقة67٪ (recall)واستدعاء
(WSDL)، وسدل السرفيس ويب ، -k ، التحلل، مينز(clustering): التجميعالكلمات الرئيسية
1
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Web service merupakan sistem perangkat lunak (software) yang di desain
untuk mendukung interoperabilitas interaksi mesin ke mesin melalui sebuah
jaringan. Web service merupakan bagian dari software yang menggunakan standard
XML dalam sistem perpesanan melalui internet. XML digunakan untuk
mengkodekan semua komunikasi ke web service [1]. Web service tidak
terpengaruh oleh platform, sehingga software aplikasi yang ditulis dalam bahasa
pemrograman yang berbeda dan berjalan di platform yang berbeda dapat saling
bertukar data melalui jaringan. Sebuah web service di deskripsikan menggunakan
sebuah standard dan notasi XML formal yang disebut service description. Deskripsi
Web service diekspresikan dalam bentuk WSDL [2].
Web Services Description Language (WSDL) merupakan sebuah XML-
based language untuk mendeskripsikan web service. WSDL menyediakan service
yang mendeskripsikan service request dengan menggunakan protokol-protokol
yang berbeda. WSDL akan memfasilitasi komunikasi antar aplikasi dan
mendeskripsikan apa yang akan dilakukan oleh web service, bagaimana
menemukannya dan bagaimana untuk mengoperasikannya [3].
Penggunaan teknologi web service memiliki beberapa keuntungan,
diantaranya adalah web service menyediakan interoperabilitas antar berbagai
aplikasi perangkat lunak yang berjalan pada platform yang berbeda, web service
2
mengijinkan perangkat lunak dan service dari perusahaan dan lokasi yang berbeda
untuk dikombinasikan, web service juga mengijinkan penggunaan kembali service
dan komponen di dalam suatu infrastruktur. Banyaknya keuntungan menggunakan
web servie membuat banyak perusahaan menerapkan web service pada sistem
informasinya. Salah satu sistem yang telah memanfaatkan teknologi web service
adalah Enterprise Resource Planning Pondok Pesantren untuk memudahkan
interaksi antar sistem informasi yang dimiliki. ERP Pondok Pesantren memiliki
beberapa sistem informasi yang saling terintegrasi, diantanya adalah sistem
informasi keuangan, akademik, kesantrian, kurikulum, akuntasi, kepegawaian, dan
lainnya [4] [5] [6] [7] [8] [9] [10] [11].
Pondok Pesantren yang digunakan sebagai objek penelitian adalah Pondok
Pesantren tipe D. Bedasarkan Peraturan Menteri Agama Nomor 3 Tahun 1979
tentang Bantuan Kepada Pondok Pesantren, Pondok Pesantren dikategorikan
sebagai berikut [12] :
1. Pondok Pesantren tipe A yaitu pondok yang seluruhnya dilaksanakan secara
tradisional.
2. Pondok Pesantren tipe B yaitu pondok pesantren yang menyelenggarakan
pengajaran secara klasikal (madrasi).
3. Pondok Pesantren tipe C yaitu pondok pesantren yang hanya merupakan
asrama sedangkan santrinya belajar di luar.
4. Pondok Pesantren tipe D yaitu pondok pesantren yang menyelenggarakan
sistem pondok pesantren dan sekaligus sistem sekolah atau madrasah.
3
ERP Pondok Pesantren menggunakan arsitektur berbasis Service Oriented
Architecture (SOA) yang diimplementasikan ke dalam bentuk web service. SOA
merupakan model arsitektur untuk membuat aplikasi yang bersifat loose coupling,
sehingga dapat di-reuse. Aplikasi pada SOA dibangun berdasarkan pada servis,
yang merupakan implementasi dari fungsi bisnis yang sudah terdefinisi dengan
jelas dan dapat dikonsumsi oleh aplikasi lain maupun proses bisnis yang lain [13].
Dengan membangun aplikasi berbasis SOA, maka aplikasi tersebut akan lebih
mudah untuk diintegrasikan dan dimodifikasi apabila terjadi perubahan karena
setiap service yang ada sudah memiliki standar yang dapat di reuse dan digunakan
antar domain fungsi yang berbeda.
Web service pada ERP Pondok Pesantren disusun berdasarkan proses bisnis
yang dimodelkan menggunakan workflow. Workflow adalah suatu proses kerja yang
sistematis dimana dokumen atau informasi yang di buat dialirkan dari satu pihak ke
pihak yang lain berdasarkan aturan atau prosedur tertentu yang telah disepakati
bersama dalam sebuah organisasi/perusahaan, sehingga aplikasi dapat dibangun
sesuai dengan kebutuhan.
Pada ERP Pondok Pesantren, workflow yang dibuat memiliki beberapa
aktivitas, sehingga web service perlu menjalankan beberapa fungsi secara
bersamaan sesuai dengan aktivitas dan alur workflow tersebut. Aktivitas-aktivitas
dalam workflow diimplementasikan menjadi method-method web service.
Sehingga, satu web service memiliki beberapa method yang berfungsi untuk
menjalankan aktivitas-aktivitas sesuai workflow. Jika terdapat workflow baru
dengan proses bisnis atau aktivitas yang berbeda, maka aka nada beberapa method
4
tidak digunakan. Hal ini menjadikan web service yang telah disusun sebelumnya
menjadi kurang fleksibel karena fungsi yang digunakan tidak langsung tercermin
dalam web service. Dampak lain yang ditimbulkan adalah kompleksitas waktu
pencocokan ketika dilakukan discovery menjadi tinggi. Untuk mengatasi
kekurangan tersebut, maka web service perlu disederhanakan menjadi web service
yang lebih sederhana melalui proses dekomposisi. Proses dekomposisi web service
yaitu proses penguraian web service komposit menjadi web service atomik.
Web service komposit merupakan web service yang memiliki beberapa
method, sedangkan web service atomik merupakan web service yang memiliki satu
method. Web service pada ERP Pondok Pesantren termasuk dalam web service
komposit karena satu web service memiliki beberapa method. Web service atomik
hasil dekomposisi dapat digunakan kembali untuk menyusun rangkaian web service
lain melalui proses komposisi berdasarkan workflow yang baru. WSDL digunakan
sebagai sumber data untuk proses dekomposisi. WSDL merupakan format XML
yang mendeskripsikan web service, sehingga WSDL berisi tentang informasi-
informasi yang berkaitan dengan bagaimana suatu web service bekerja dan
bagaimana mengaksesnya. WSDL mendeskripsikan lokasi service dan operasi
(methods) yang disediakan oleh web service.
Hasil dari proses dekomposisi kemudian dilanjutkan dengan proses clustering
atau pengelompokan web service menggunakan algoritma k-means clustering.
Salah satu keuntungan menggunakan k-means clustering adalah mampu
mengelompokkan objek besar dan pencilan objek dengan cepat, sehingga dapat
5
mempercepat proses pengelompokan. Hasil proses clustering web service dapat
digunakan kembali untuk mempermudah proses discovery.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan sebelumnya, maka rumusan
masalah yang akan diangkat dalam penelitian ini adalah :
1. Bagaimana cara mendapatkan web service atomik menggunakan parsing
WSDL?
2. Bagaimana melakukan clustering hasil dekomposisi web service?
1.3 Hipotesis
1. Dekomposisi web service pada ERP Pondok Pesantren dapat dilakukan dengan
parsing WSDL. Elemen yang diambil dari hasil parsing adalah operation dan
message. Operation name yang didapatkan digunakan sebagai dasar untuk
mendekomposisi web service. Tipe data diambil dari message type.
2. Hasil dekomposisi web service dapat dilakukan clustering berdasarkan
operation, parameter input, dan tipe data output menggunakan metode k-means
clustering.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah sebagai berikut :
1. Melakukan dekomposisi web service pada ERP Pondok Pesantren
menggunakan parsing WSDL.
6
2. Melakukan clustering hasil dekomposisi web service menggunakan k-means
clustering.
1.5 Manfaat Penelitian
Dekomposisi web service yang dibangun diharapkan mampu :
1. Mengurangi kompleksitas waktu pencocokan dalam web service discovery.
2. Meningkatkan efisiensi penggunaan resource.
3. Mengelompokkan web service untuk mempermudah proses discovery.
1.6 Batasan Masalah
Pembahasan penelitian ini dibatasi oleh hal-hal berikut:
1. Web service yang digunakan adalah web service ERP Pondok Pesantren yang
telah dibangun pada penelitian sebelumnya.
2. Komponen web service yang digunakan untuk pengolahan data adalah
dokumen WSDL.
3. Web service yang digunakan dibangun dengan bahasa pemrograman PHP dan
library NuSOAP.
4. Dekomposisi web service menggunakan dokumen WSDL bagian server.
5. Clustering web service berdasarkan operation name, parameter input, dan tipe
data output.
7
1.7 Sistematika Penulisan
Sistematika penulisan yang digunakan dalam penelitian ini adalah sebagai
berikut:
BAB 1 PENDAHULUAN
Bab ini berisi latar belakang penelitian, rumusan masalah, hipotesis, tujuan
penelitian, manfaat penelitian, batasan masalah, dan sistematika penulisan.
BAB 2 KAJIAN PUSTAKA
Bab ini berisi kajian pustaka yang berkaitan dengan penelitian, yaitu
mengenai ERP, Sistem Informasi, Perbedaan ERP dan Sistem Informasi, web
service, WSDL, dekomposisi, dan clustering.
BAB 3 METODE PENELITIAN
Bab ini menjelaskan tentang metode yang digunakan, alur penelitian,
rancangan sistem, rancangan database, dan pembuatan program.
BAB 4 HASIL DAN PEMBAHASAN
Bab ini menjelaskan tentang hasil perancangan sistem serta pembahasan
keseluruhan dari penelitian.
BAB 5 PENUTUP
Bab ini merupakan penutup yang berisi kesimpulan penelitian yang telah
dilakukan, serta berisi saran yang diharapkan dapat bermanfaat untuk
pengembangan aplikasi dekomposisi web service dan clustering web service pada
penelitian selanjutnya.
8
BAB 2
KAJIAN PUSTAKA
2.1 Enterprise Resource Planning (ERP)
Enterprise Resouce Planning (ERP) sebagai suatu aplikasi terintegrasi yang
menjadi kerangka untuk mengubah dan membantu proses pembangunan fondasi
sIstem informasi di dalam suatu organisasi, baik terimplementasi dalam skala besar
maupun bertahap. Implementasi dari ERP harus didukung oleh proses BPR yang
tepat dan terkoordinasi dengan baik. Bussiness Process Reengineering (BPR)
merupakan suatu proses perubahan pola pikir yang bersifat fundamental serta
perancangan ulang setiap proses bisnis untuk tujuan mencapai perbaikan secara
dramatis dengan memperhitungkan biaya, kualitas, kecepatan, dan pelayanan yang
terbaik [14].
ERP menggunakan database tunggal dimana semua informasi terintegrasi di
dalam satu aplikasi dalam waktu yang sama. Hal ini menyababkan proses
perencanaan dan pengawasan dapat dilakukan di dalam organisasi dengan terpusat
dan menghindari tingkat penyimpangan dan meningkatkan konsistensi dari
informasi yang dihasilkan.
ERP merupakan aplikasi terintegrasi yang membutuhkan suatu arsitektur
infrastruktur tersendiri, sehingga ERP membutuhkan infrastruktur server dan
jaringan komunikasi. Secara umum, komponen infrastruktur server untuk aplikasi
ERP meliputi Presentation Server, Application Server, dan Database Server.
Arsitektur client-server ERP dapat dilihat pada Gambar 2.1.
9
Gambar 2.1 Arsitektur client-server ERP
Presentation server sering disebut juga aplikasi pemakai atau sumber input
pertama dari para pemakai dan juga bisa output yang dibutuhkan oleh pemakai, baik
dari tingkat manajemen bawah maupun atas. Application server berfungsi
mengitegrasikan semua fungsi-fungsi aplikasi dan mengakses database serta
menghubungkan presentation server atau langsung ke akses pemakai. Fungsi
koordinasi yang dilakukan oleh aplikasi ERP berguna untuk menghasilkan
informasi yang akurat, tepat, dan efektif. Database server berfungsi untuk
mengelola database tunggal dan melayani semua akses aplikasi yang bersifat
mengubah, menambah, dan menyimpan informasi yang ada.
10
2.2 Perbedaan Enterprise Resource Planning dengan Sistem Informasi
ERP merupakan sistem informasi terintegrasi yang dapat mengakomodasikan
kebutuhan-kebutuhan sistem informasi secara spesifik untuk departemen-
departemen yang berbeda pada suatu perusahaan. ERP sendiri terdiri dari
bermacam-macam modul yang disediakan untuk berbagai kebutuhan dalam suatu
perusahaan, dari modul untuk keuangan sampai modul untuk proses distribusi.
Sistem ERP adalah sebuah terminologi yang diberikan kepada sistem informasi
yang mendukung transaksi atau operasi sehari-hari dalam pengelolaan sumber daya
perusahaan. Sumber daya tersebut meliputi dana, manusia, mesin, suku cadang,
waktu, material dan kapasitas [15].
Sedangkan menurut Robert A. Leitch, sistem informasi adalah suatu sistem
di dalam organisasi yang mempertemukan kebutuhan pengolahan transaksi harian,
mendukung operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasi
yang menyediakan pihak luar tertentu dengan laporan-laporan tertentu.
Berdasarkan pengertian diatas, beberapa perbedaan antara ERP dan sistem
informasi adalah [16]:
1. ERP merupakan sistem informasi yang terintegrasi, sedangkan sistem
informasi saling berdiri sendiri dengan tujuan masing-masing.
2. ERP berfungsi untuk mengelola sumber daya organisasi dengan lebih efisien
dan terkoordinasi secara keseluruhan, sedangkan sistem informasi berfungsi
untuk meningkatkan aksesibilitas data yang ada secara efektif dan efisien
kepada pengguna tanpa perantara.
11
3. ERP memiliki satu logical-database yang mengijinkan setiap departemen
dalam perusahaan untuk menyimpan dan mengambil data secara real-time,
berbeda dengan sistem informasi yang memiliki banyak database untuk
menyimpan data-datanya.
4. ERP berbasis client-server dan harus terkoneksi dengan jaringan, sedangkan
sistem informasi tidak harus terkoneksi dengan jaringan karena hanya
digunakan bagi satu pengguna.
2.3 Web Service
2.3.1 Definisi Web Service
Menurut W3C [1], Web service adalah sebuah sistem software yang
dirancang untuk mendukung interaksi dari mesin-ke-mesin melalui jaringan. Web
service menyediakan standar untuk melakukan interaksi antar aplikasi yang berbeda
yang berjalan pada berbagai platform dan atau framework. Sistem lain berinteraksi
dengan web service melalui cara yang telah ditentukan dan dideskripsikan
menggunakan pesan SOAP, biasanya disampaikan menggunakan HTTP dengan
serialisasi XML bersama dengan standar web lainnya.
Service yang disediakan oleh komponen Web Service umumnya berupa
operasi-operasi logika maupun operasi query yang dimanfaatkan oleh banyak client
(orang/program lain). Service tersebut dapat dimanfaatkan secara langsung dan
juga dapat dimanfaatkan oleh web service lain. Web service memiliki interface
yang dijelaskan dalam format machine-processable. Interface tersebut dijelaskan
dan di deskripsikan dalam Web Service Description Language (WSDL). Web
12
service menggunakan XML untuk tag data, SOAP untuk transfer pesan, dan WSDL
untuk mendeskripsikan ketersediaan layanan. Beberapa kelebihan yang dimiliki
web service antara lain:
1. Loosely Coupled; setiap service bersifat independen atau berdiri sendiri dan
tiak bergantung pada service yang lain.
2. Ease of Integration; memudahkan dalam pengintegrasian data, sehingga lebih
mudah diatur.
3. Service Reuse; kode-kode dalam web service hanya didefinisikan sekali, tetapi
dapat digunakan berkali-kali.
4. Standardized Protocol; web service menggunakan protokol standar untuk
komunikasi. Semua lapisan menggunakan protokol yang didefinisikan dalam
layanan web stack protocol.
5. XML-Based; web service menggunakan XML untuk representasi data dan
lapisan transportasi data. Penggunaan XML menghilangkan jaringan, sistem
operasi, atau platform yang mengikat.
2.3.2 Arsitektur Web Service
Terdapat tiga peran utama dalam arsitektur web service, yaitu service
provider, service requestor, dan service registry [17].
13
Gambar 2.2 Arsitektur Web Service
1. Service Provider
Service provider merupakan penyedia web service. Service provider
mengimplementasikan layanan dan membuatnya tersedia untuk digunakan.
Layanan di publish dengan service registry berdasarkn standar yang disebut
spesifikasi Universal Description, Discovery, and Integration (UDDI).
2. Service Requestor
Service requestor merupakan konsumen web service. Requestor menggunakan
web service yang ada dengan membuka koneksi jaringan dan mengirim permintaan
XML.
3. Service Registry
Service registry merupakan pusat direktori layanan yang menyediakan tempat
bagi developer untuk mempublikasikan layanan baru atau menemukan layanan-
layanan yang sudah ada. Requestor dapat menemukan layanan web service melalui
interface UDDI. Registri UDDI menyediakan WSDL dan URL (Uniform Resource
Locator) yang menunjuk ke layanan yang diinginkan.
14
Operasi-operasi yang ada pada web service, antara lain :
1. Publish: Menerbitkan deskripsi layanan ke dalam registry agar layanan dapat
diakses.
2. Find: Service requestor mencari dan menemukan layanan yang dibutuhkan
secara langsung atau melalui query service registry.
3. Bind: Service requestor setelah menemukan layanan yang dicari, kemudian
melakukan binding ke service provider untuk melakukan interaksi dan
mengakses layanan (service) yang disediakan oleh service provider.
2.3.3 Komponen - Komponen Web Service
Gambar 2.3 Komponen Web Service
Secara keseluruhan web service memiliki 4 (empat) layer komponen seperti
pada Gambar 2.3, yaitu :
Layer 4
Service Publication and Discovery
UDDI
Layer 3
Service Description WSDL
Layer 2
XML Based Messaging SOAP
Layer 1
Common Internet Protocols HTTP, TCP/IP
15
1. Layer 1: Protocol internet standart seperti HTTP dan TCP/IP.
2. Layer 2 : Simple Object Access Protocol (SOAP), adalah sebuah XML-based
mark-up language untuk pendeskripsiam pesan antar aplikasi. SOAP
mengatur bagaimana request dan respons dari suatu web services akan
bekerja.
3. Layer 3 : Web Service Description Language (WSDL) adalah sebuah XML-
based language untuk mendeskripsikan web service. WSDL menjelaskan
method-method apa saja yang tersedia dalam suatu web services, parameter
apa saja yang diperlukan untuk memanggil suatu method, dan apa hasil dari
method yang akan dipanggil.
4. Layer 4 : Universal Description Discovery and Integration (UDDI) adalah
sebuah service registry bagi pengalokasian web service. UDDI
mengkombinasikan SOAP dan WSDL untuk pembentukan sebuah registry
API bagi pendaftaran dan pengenalan service.
2.3.4 Pendekatan Implementasi Web Service
Terdapat dua pendekatan dasar yang digunakan dalam pembuatan web
service dari awal, yaitu [18]:
1. Pendekatan Bottom-Up
Kode yang mengimplementasikan operation di dalam service ditulis terlebih
dahulu. Kemudian deskripsi XML (WSDL) dibuat dan disimpan dalam UDDI.
Kode service diletakkan di dalam ‘wadah’ yang menyediakan interface yang
dibutuhkan untuk perpesanan, misalnya SOAP.
16
2. Pendekatan Up-Bottom
Pendekatan ini menghasilkan XML sebelum diimplementasikan. Sehingga
service sepenuhnya dijelaskan dalam apa yang dilakukannya, bagaimana hal itu
dapat dipanggil dan apa yang dihasilkannya, namun sebenarnya tidak diterapkan.
Spesifikasi (WSDL) ini kemudian digunakan sebagai panduan penulisan kode
untuk implementasi service.
Gambar 2.4 Implementasi Web Service secara Bottom-Up
dan Up-Bottom
2.4 Web Services Description Language (WSDL)
WSDL menyediakan model dan format XML untuk mendeskripsikan layanan
yang ada pada web service. WSDL sering digunakan dalam kombinasi dengan
SOAP dan XML Schema untuk menyediakan web service. Sebuah program client
yang terhubung ke web service dapat membaca WSDL untuk menentukan fungsi
apa saja yang tersedia dalam server. Setiap tipe data yang digunakan tertanam
dalam file WSDL dalam bentuk XML Schema. Client kemudian dapat
menggunakan SOAP untuk memanggil salah satu fungsi yang ada dalam WSDL.
17
WSDL digunakan untuk pertukaran informasi, mendeskripsikan bagaimana
mengakses sebuah web service dan operasi-operasi apa yang akan dilakukan.
WSDL memecah web service menjadi tiga elemen spesifik yang dapat digabungkan
atau digunakan kembali setelah ditentukan, yaitu types, operation, dan binding.
Dokumen WSDL memiliki berbagai elemen, tetapi hanya WSDL yang memiliki
ketiga elemen utaman diatas yang dapat dikembangkan sebagai dokumen terpisah,
kemudian dapat digabungkan atau digunakan kembali untuk membentuk fdokumen
WSDL yang lengkap. Elemen-elemen yang ada dalam dokumen WSDL
ditunjukkan pada Gambar 2.5.
Gambar 2.5 Elemen-Elemen WSDL
1. Types – Merupakan elemen untuk mendefinisikan tipe data yang digunakan
pada pesan web service dalam bentuk XML Schema, misalnya XSD.
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="htt
p://www.webserviceX.NET">
<s:element name="GetWeather">
<s:complexType>
<s:sequence>
18
<s:element minOccurs="0" maxOccurs="1" name="CityName" type="
s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CountryName" typ
e="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetWeatherResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetWeatherResult
" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetCitiesByCountry">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CountryName" typ
e="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetCitiesByCountryResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetCitiesByCount
ryResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="string" nillable="true" type="s:string"/>
</s:schema>
</wsdl:types>
Gambar 2.6 Elemen Types
2. Message – Mendefiniskan parameter input dan output, serta nilai return.
Atribut message name menyediakan nama unik dan berbeda antara semua
pesan dalam WSDL. Atribut part name meneyediakan nama unik dan berbeda
dalam sebuah message. Atribut type merujuk pada XSD simpleType atau
complexType dalam elemen types.
<wsdl:message name="GetWeatherSoapIn">
<wsdl:part name="parameters" element="tns:GetWeather"/>
</wsdl:message>
<wsdl:message name="GetWeatherSoapOut">
19
<wsdl:part name="parameters" element="tns:GetWeatherResponse"
/>
</wsdl:message>
<wsdl:message name="GetCitiesByCountrySoapIn">
<wsdl:part name="parameters" element="tns:GetCitiesByCountry"
/>
</wsdl:message>
<wsdl:message name="GetCitiesByCountrySoapOut">
<wsdl:part name="parameters" element="tns:GetCitiesByCountryR
esponse"/>
</wsdl:message>
<wsdl:message name="GetWeatherHttpGetIn">
<wsdl:part name="CityName" type="s:string"/>
<wsdl:part name="CountryName" type="s:string"/>
</wsdl:message>
<wsdl:message name="GetWeatherHttpGetOut">
<wsdl:part name="Body" element="tns:string"/>
</wsdl:message>
<wsdl:message name="GetCitiesByCountryHttpGetIn">
<wsdl:part name="CountryName" type="s:string"/>
</wsdl:message>
<wsdl:message name="GetCitiesByCountryHttpGetOut">
<wsdl:part name="Body" element="tns:string"/>
</wsdl:message>
<wsdl:message name="GetWeatherHttpPostIn">
<wsdl:part name="CityName" type="s:string"/>
<wsdl:part name="CountryName" type="s:string"/>
</wsdl:message>
<wsdl:message name="GetWeatherHttpPostOut">
<wsdl:part name="Body" element="tns:string"/>
</wsdl:message>
<wsdl:message name="GetCitiesByCountryHttpPostIn">
<wsdl:part name="CountryName" type="s:string"/>
</wsdl:message>
<wsdl:message name="GetCitiesByCountryHttpPostOut">
<wsdl:part name="Body" element="tns:string"/>
</wsdl:message>
Gambar 2.7 Elemen Message
3. PortType – Menggambarkan sekumpulan pesan yang dikirim dana tau diterima
layanan. Pesan-pesan terkait dikelompokkan ke dalam operation. Elemen
operation berisi seperangkat pesan input dan output. Sehingga elemen
portType berisi sekumpulan elemen operation. Pesan input dan output elemen
operation merujuk pada elemen message.
<wsdl:portType name="GlobalWeatherSoap">
<wsdl:operation name="GetWeather">
20
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/ws
dl/">
Get weather report for all major cities around the world.
</wsdl:documentation>
<wsdl:input message="tns:GetWeatherSoapIn"/>
<wsdl:output message="tns:GetWeatherSoapOut"/>
</wsdl:operation>
<wsdl:operation name="GetCitiesByCountry">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/ws
dl/">Get all major cities by country name(full /
part).</wsdl:documentation>
<wsdl:input message="tns:GetCitiesByCountrySoapIn"/>
<wsdl:output message="tns:GetCitiesByCountrySoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="GlobalWeatherHttpGet">
<wsdl:operation name="GetWeather">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/ws
dl/">
Get weather report for all major cities around the world.
</wsdl:documentation>
<wsdl:input message="tns:GetWeatherHttpGetIn"/>
<wsdl:output message="tns:GetWeatherHttpGetOut"/>
</wsdl:operation>
<wsdl:operation name="GetCitiesByCountry">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/ws
dl/">Get all major cities by country name(full /
part).</wsdl:documentation>
<wsdl:input message="tns:GetCitiesByCountryHttpGetIn"/>
<wsdl:output message="tns:GetCitiesByCountryHttpGetOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="GlobalWeatherHttpPost">
<wsdl:operation name="GetWeather">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/ws
dl/">
Get weather report for all major cities around the world.
</wsdl:documentation>
<wsdl:input message="tns:GetWeatherHttpPostIn"/>
<wsdl:output message="tns:GetWeatherHttpPostOut"/>
</wsdl:operation>
<wsdl:operation name="GetCitiesByCountry">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/ws
dl/">Get all major cities by country name(full /
part).</wsdl:documentation>
<wsdl:input message="tns:GetCitiesByCountryHttpPostIn"/>
<wsdl:output message="tns:GetCitiesByCountryHttpPostOut"/>
</wsdl:operation>
</wsdl:portType>
Gambar 2.8 Elemen PortType dan Operation
21
4. Binding – Menggambarkan protokol yang digunakan untuk mengakses
portType serta format data untuk pesan yang telah ditetapkan oleh elemen
tertentu dalam porrType. Atribut name menyediakan nama yang unik dan
berbeda pada setiap elemen binding dalam sebuah dokumen WSDL.
<wsdl:binding name="GlobalWeatherSoap" type="tns:GlobalWeathe
rSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http
"/>
<wsdl:operation name="GetWeather">
<soap:operation soapAction="http://www.webserviceX.NET/GetWea
ther" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetCitiesByCountry">
<soap:operation soapAction="http://www.webserviceX.NET/GetCit
iesByCountry" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="GlobalWeatherSoap12" type="tns:GlobalWeat
herSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/ht
tp"/>
<wsdl:operation name="GetWeather">
<soap12:operation soapAction="http://www.webserviceX.NET/GetW
eather" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetCitiesByCountry">
<soap12:operation soapAction="http://www.webserviceX.NET/GetC
itiesByCountry" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
22
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="GlobalWeatherHttpGet" type="tns:GlobalWea
therHttpGet">
<http:binding verb="GET"/>
<wsdl:operation name="GetWeather">
<http:operation location="/GetWeather"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetCitiesByCountry">
<http:operation location="/GetCitiesByCountry"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="GlobalWeatherHttpPost" type="tns:GlobalWe
atherHttpPost">
<http:binding verb="POST"/>
<wsdl:operation name="GetWeather">
<http:operation location="/GetWeather"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetCitiesByCountry">
<http:operation location="/GetCitiesByCountry"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
Gambar 2.9 Elemen Bnding
23
5. Service – Berisi seperangkat port yang menyediakan service. Atribut name
menyediakan nama unik yang berbeda untuk setiap elemen service dalam
sebuah dokumen WSDL.
wsdl:service name="GlobalWeather">
<wsdl:port name="GlobalWeatherSoap" binding="tns:GlobalWeathe
rSoap">
<soap:address location="http://www.webservicex.com/globalweat
her.asmx"/>
</wsdl:port>
<wsdl:port name="GlobalWeatherSoap12" binding="tns:GlobalWeat
herSoap12">
<soap12:address location="http://www.webservicex.com/globalwe
ather.asmx"/>
</wsdl:port>
<wsdl:port name="GlobalWeatherHttpGet" binding="tns:GlobalWea
therHttpGet">
<http:address location="http://www.webservicex.com/globalweat
her.asmx"/>
</wsdl:port>
<wsdl:port name="GlobalWeatherHttpPost" binding="tns:GlobalWe
atherHttpPost">
<http:address location="http://www.webservicex.com/globalweat
her.asmx"/>
</wsdl:port>
</wsdl:service>
Gambar 2.10 Elemen Service
2.5 Dekomposisi Web Service
Dekomposisi web service merupakan suatu proses untuk memecah atau
mengurai suatu web service menjadi lebih kecil, atau mengurai web service yang
komposit menjadi atomik. Michiaki Tatsubori dan Kenichi Takahashi [19]
menjelaskan penggunan framework H2W sebagai framework untuk mengubah
aplikasi web menjadi web service tanpa mengubahnya. H2W digunakan untuk
membangun web service wrapper berdasarkan multi-paged web application. H2W
berkontribusi pada tahap ekstraksi layanan. Penulis mengusulkan model
dekomposisi berdasarkan page-transition dan model abstraksi akses halaman
24
dengan propagasi konteks. Dekomposisi dimodelkan menggunakan blok yang
dapat digunakan secara fleksibel. Hasil dekomposisi dan abstraction digunakan
web service wrapper developer untuk mendeskripsikan workflow sederhana untuk
menentukan potongan service yang akan diambil. Dengan demikian, framework
H2W memungkinkan developer membuat service yang diinginkan berdasarkan
komponen layanan aplikasi web yang terdekomposisi dan terdeskripsi dengan
fleksibel.
Junichi Tatemura dan Wang Pin Hsiung [20] menggambarkan arsitektur
layanan dekomposisi melalui komputasi tepi untuk meningkatkan cacheability
layanan web e-commerce. Untuk meningkatkan cache dari web service, diusulkan
dekomposisi layanan melalui komputasi tepi, yang terdiri dari dua jenis
dekomposisi, yaitu dekomposisi management service dan dekomposisi konten.
Sebuah web service didekomposisi menjadi menjadi management service dan bare
service. Management service merupakan sebuah rangkaian layanan perantara yang
dijalankan pada server tepi. Bare service menyediakan fungsionalitas utama
aplikasi yang dipublikasikan sebagai web service sederhana. Fungsi caching
diperkenalkan sebagai salah satu management service.
S. Lagraa, et.al [21] menyajikan dua dekomposisi berdasarkan metode web
service matchmaking. Keuntungan utama mendekomposisi graph web service
menjadi sub-struktur yang lebih kecil adalah untuk mengurangi kompleksitas waktu
pencocokan. Algoritma yang diusulkan memperhitungkan karakteristik utama dari
graph web service : directed edges dan menggunakan graph matching tool yang
25
efisien. Pada structural matching ditambahkan perhitungan semantic similarity
untuk meningkatkan presisi pencocokan.
2.6 Clustering
Tujuan utama dari metode klaster adalah pengelompokan sejumlah data atau
obyek ke dalam klaster (grup) sehingga dalam setiap klaster akan berisi data yang
semirip mungkin. Pada clustering, obyek yang mirip (jaraknya dekat) akan
ditempatkan dalam satu klaster dan membuat jarak antar klaster sejauh mungkin.
Ini berarti obyek dalam satu klaster sangat mirip satu sama lain dan berbeda dengan
obyek dalam klaster-klaster yang lain. Dalam teknik clustering, belum diketahui
berapa jumlah klaster dan bagaimana pegelompokannya. Clustering adalah salah
satu teknik unsupervised learning, dimana tidak ada fase learning sehingga tidak
perlu melatih metode tersebut. Pendekatan unsupervised learning adalah metode-
metode yang tidak membutuhkan label ataupun keluaran dari setiap data yang
diinvestigasi. Sebaliknya, supervised learning adalah metode yang memerlukan
training (melatih) dan testing (menguji). Contoh supervised learning adalah regresi,
Artificial Neural Network (ANN), analisis diskriminan (LDA), dan Support Vector
Machine (SVM) [22]. Salah satu penerapan supervised learning dengan
menggunakan ANN adalah untuk mengindentifikasi pertumbuhan tanaman zinnia
terhadap pengaruh pemberian variasi komposisi pupuk kompos dan NPK [23].
26
Gambar 2.11 Contoh Clustering Dokumen
Terdapat dua pendekatan dalam clustering, yaitu partitioning clustering dan
hierarchical clustering. Dalam partitioning clustering obyek 𝑥1, 𝑥2, … , 𝑥𝑛
dikelompokkan ke dalam k klaster. Hal ini dapat dilakukan dengan menentukan
pusat klaster awal, lalu dilakukan relokasi obyek berdasarkan kriteria tertentu
hingga dicapai pengelompokan yang optimum. Dalam hierarchical clustering,
diawali dengan membuat m klaster dimana setiap klaster beranggotakan satu obyek
dan berakhir dengan satu kalster dimana anggotanya adalah m obyek. Pada setiap
tahap dalam prosedurnya, satu klaster digabung dengan satu klaster yang lain.
Jumlah klaster yang diinginkan dapat dipilih dengan menentukan cut-off pada
tingkat tertentu [22].
Gambar 2.12 Hierarchical Clustering dan Partitional Clustering
27
Pada penelitian ini, obyek yang digunakan dalam proses clustering adalah
dokumen WSDL. Proses clustering digunakan untuk mengidentifikasi web service
yang mirip secara fungsionalitas. Aparna Konduri [24] menggunakan algoritma
Agglomerative atau metode bottom-up Hierarchical Clustering. Setiap web service
diinisialisasikan pada sebuah cluster. Kemudian digunakan similarity matrix pada
training dataset untuk menentukan tetangga terdekat. Tetangga yang terdekat
kemudian tergabung dalam satu cluster. Proses ini diulang hingga semua web
service bergabung menjadi satu cluster.
S. Kumara, et.al [25] mengusulkan pendekatan hybrid menggunakan file
WSDL untuk mengelompokkan web service berdasarkan kemiripan fungsi dengan
men-generate ontologi melalui hidden semantic patterns dan digunakan complex
term untuk mengukur kemiripan web service. Algoritma clustering yang digunakan
adalah agglomerative yang merupakan metode bottom-up hierarchical clustering.
Algoritma ini dimulai dengan menetapkan setiap layanan pada cluster tersendiri.
Kemudian mulai menggabungkan cluster paling mirip, berdasarkan kedekatan
cluster di setiap iterasi hingga kriteria berhenti terpenuhi.
Khalid Elgazzar, et.al [26] mengusulkan teknik baru dalam melakukan
mining dokumen WSDL dan mengelompokkannya ke dalam kelompok web service
berdasarkan kesamaan fungsional. Pada dokumen WSDL dilakukan ekstraksi fitur
yang menggambarkan semantik dan perilaku web service, khususnya WSDL
content, WSDL types, WSDL message, WSDL port, dan web service name.
Algoritma clustring Quality Threshold (QT) digunakan untuk mengelompokkan
web service berdasarkan kemiripan lima fitur yang telah diekstraksi sebelumnya.
28
2.7 K-Means Clustering
K-Means merupakan algoritma untuk membentuk cluster n objek
berdasarkan atribut menjadi k partisi, dimana k < n. Salah satu kelebihan metode k-
means diantaranya adalah mudah diimplementasikan dan mampu mengelompokan
objek besar dengan cepat sehingga mempercepat proses pengelompokan. Proses
pembentukan cluster menggunakan algoritma k-means dapat dilihat pada
Gambar 2.13.
Gambar 2.13 K-Means Clustering
Algoritma k-means merupakan algoritma pengelompokan iteratif yang
melakukan partisi sel data ke dalam sejumlah k cluster yang sudah ditetapkan
diawal. Proses iterasi pada metode k-means akan terus dilakukan hingga seluruh
objek tidak berpindah cluster. Nilai centroid yang diberikan di awal dapat
mempengaruhi hasil cluster jika nilainya berbeda (sensitif terhadap nilai centroid
awal).
29
Gambar 2.14 Flowchart Algoritma K-Means Clustering
Gambar 2.14 menjelaskan langkah-langkah dalam algoritma k-means
clustering, yaitu:
1. Tentukan jumlah cluster k
Pada tahap ini, perlu ditentukan berapa jumlah cluster yang di kehendaki
sejumlah k cluster.
2. Tentukan nilai titik pusat cluster
Dalam menentukan nilai titik pusat cluster (centroid) untuk awal iterasi, nilai
awal centroid dapat dilakukan secara acak (random).
3. Hitung jarak objek ke titik cluster
30
Untuk menghitung jarak tersebut salah satu rumus yang biasa digunakan yaitu
rumus perhitungan jarak Euclidean Distance. Euclidean Distance menghitung jarak
antara dua titik menggunakan rumus sebagai berikut:
𝐷(𝑥2,𝑥1) = ‖𝑥2 − 𝑥1‖2 = √∑ (𝑥2𝑗 − 𝑥1𝑗)2𝑝
𝑗=1 (2.1)
Dimana:
D = jarak Euclidean; x1 = data ke – 1; x2 = data ke – 2; p = dimensi data
4. Kelompokkan objek berdasarkan jarak minimum
Objek dikelompokkan berdasarkan nilai yang terdekat dengan nilai centroid
(jarak terpendek dari suatu cluster).
5. Kembali ke tahap 2, lakukan perulangan
Tahap ini dilakukan ketika masih ada objek yang berpindah kelompok.
Perulangan dilakukan hingga nilai centroid yang dihasilkan tetap dan anggota
cluster tidak berpindah ke cluster lain.
31
BAB 3
METODOLOGI PENELITIAN
3.1 Desain Penelitian
Desain penelitian menjelaskan tentang alur dan mekanisme penelitian yang
dilakukan, yaitu gambaran umum sistem, sumber data, prosedur penelitian, dan
metode pengolahan data. Berikut penjelasan dari masing-masing mekanisme
penelitian:
3.1.1 Gambaran Umum Sistem
Sistem yang dibangun merupakan sistem yang berfungsi untuk melakukan
dekomposisi web service pada ERP Pondok Pesantren. Dekomposisi dilakukan
dengan melakukan parsing dokumen WSDL untuk mengambil elemen message,
portType, dan operation. Elemen operation dijadikan dasar untuk melakukan
proses dekomposisi dengan merubahnya menjadi function dan elemen message
diambil untuk memperoleh tipe data input dan output. Function dan tipe data output
digunakan untuk generate WSDL baru. Hasil dekomposisi kemudian di
kelompokkan berdasarkan kemiripan fungsi menggunakan algoritma k-means
clustering.
3.1.2 Sumber Data
Data yang digunakan diambil dari penelitian sebelumnya tentang web service
pada ERP Pondok Pesantren. Pondok Pesantren yang digunakan sebagai objek
32
penelitian diantaranya adalah Pondok Pesantren Modern Al-Rifa’ie dan Pondok
Pesantren An-Nur.
Data yang diolah adalah dokumen WSDL yang berisi deskripsi dan informasi
yang ada di dalam web service. Dokumen WSDL diperoleh dengan menambahkan
“?wsdl” pada URL web service. Dokumen WSDL yang telah didapatkan kemudian
disimpan dalam file berekstensi xml.
3.2 Perancangan Sistem
Perancangan sistem digunakan untuk mempermudah dan menentukan
bagaimana sistem akan menyelesaikan masalah dalam penelitian. Pada tahap ini
diberikan gambaran tentang bagaimana sistem melakukan proses dekomposisi web
service dan clustering web service. Alur perancangan sistem dijelaskan dalam
Gambar 3.1.
Gambar 3.1 Perancangan Sistem
33
3.2.1 Input Dokumen WSDL
Penelitian ini menggunakan dokumen WSDL sebagai masukan. Dokumen
WSDL yang telah didapatkan dengan memanggil URL web service kemudian
disimpan menjadi file berekstensi .xml. Proses ini diperlukan agar dokumen WSDL
dapat dilakukan parsing menggunakan bahasa pemrograman PHP untuk
mendapatkan elemen-elemen yang diperlukan.
<?xml version="1.0" encoding="ISO-8859-1"?><definitions
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="urn:server"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="urn:server">
<types>
<xsd:schema targetNamespace="urn:server"
>
<xsd:import
namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
<xsd:complexType name="TahunAjaran">
<xsd:all>
<xsd:element name="id_tahunajaran" type="xsd:int"/>
<xsd:element name="tahunajaran" type="xsd:string"/>
<xsd:element name="tglmulai" type="xsd:date"/>
<xsd:element name="thnmulai" type="xsd:date"/>
<xsd:element name="tglakhir" type="xsd:date"/>
<xsd:element name="thnakhir" type="xsd:date"/>
<xsd:element name="aktif" type="xsd:int"/>
<xsd:element name="keterangan" type="xsd:string"/>
</xsd:all>
Gambar 3.2 Contoh File WSDL.xml
Script <?xml version="1.0" encoding="ISO-8859-1"?> pada
Gambar 3.2 merupakan heading standar XML yang menunjukkan bahwa file
tersebut adalah format .xml. Tag <definitions> . . . </definitions>
merupakan root tag dalam file XML tersebut. Root tag memiliki child tag yang
34
merupakan elemen-elemen WSDL, yaitu types, message, portType, binding, dan
service. File XML yang telah didapatkan kemudian di simpan ke dalam database.
3.2.2 Database Web Service
Penyimpanan data ke dalam database diperlukan untuk mempermudah
pengolahan data. Database yang digunakan dalam penelitian ini memiliki tabel-
tabel sebagai berikut:
a. Tabel Data Identitas Web Service
Berfungsi untuk menyimpan identitas web service berupa nama, lokasi URL
WSDL, file WSDL dengan format .xml, dan nama folder setting. Katerangan kolom
tabel tb_webservice dapat dilihat pada Tabel 3.1.
Tabel 3.1 Tabel tb_webservice
Nama Kolom Tipe Data Lebar Key
id_webservice INTEGER 11 PRIMARY KEY
nama_webservice VARCHAR 200
url_wsdl VARCHAR 200
file_wsdl VARCHAR 200
nama_folder VARCHAR 50
b. Tabel Data Elemen PortType
Berfungsi untuk menyimpan data atribut elemen portType yaitu name.
Keteragan kolom tabel tb_porttype dapat dilihat pada Tabel 3.2.
Tabel 3.2 Tabel tb_porttype
Nama kolom Tipe data Lebar Key
id_porttype INTEGER 11 PRIMARY KEY
nama_porttype VARCHAR 200
id_webservice INTEGER 11 FOREIGN KEY
35
c. Tabel Data Elemen Operation
Berfungsi untuk menyimpan data atribut elemen operation, yaitu name, input,
dan output. Tabel tb_operation berelasi dengan tabel tb_porttype. Keterangan tabel
tb_operation dapat dilihat pada tabel Tabel 3.3.
Tabel 3.3 Tabel tb_operation
Nama Kolom Tipe Data Lebar Key
id_operation INTEGER 11 PRIMARY KEY
nama_operation VARCHAR 200
input VARCHAR 200
output VARCHAR 200
id_porttype INTEGER 11 FOREIGN KEY
d. Tabel Data Elemen Message
Berfungsi untuk menyimpan data atribut elemen message, yaitu name.
Keterangan tabel tb_message dapat dilihat pada tabel Tabel 3.4.
Tabel 3.4 Tabel tb_message
Nama Kolom Tipe Data Lebar Key
id_message INTEGER 11 PRIMARY KEY
nama_message VARCHAR 200
id_webservice INTEGER 11 FOREIGN KEY
e. Tabel Data Elemen Message
Berfungsi untuk menyimpan data atribut elemen message, yaitu part dan type.
Tabel tb_message_isi berelasi dengan tabel tb_message. Keterangan tabel
tb_message_isi dapat dilihat pada tabel Tabel 3.5.
Tabel 3.5 Tabel tb_message_isi
Nama Kolom Tipe Data Lebar Key
id_msg_isi INTEGER 11 PRIMARY KEY
part VARCHAR 200
tipe VARCHAR 200
id_porttype INTEGER 11 FOREIGN KEY
36
f. Tabel Data Method
Berfungsi untuk menyimpan data nama folder lokasi penyimpanan file setting,
nama class, function, dan tipe data. Tabel tb_method berelasi dengan tabel
tb_operation dan tb_message. Keterangan tabel tb_message_isi dapat dilihat pada
tabel Tabel 3.6.
Tabel 3.6 Tabel tb_method
Nama Kolom Tipe Data Lebar Key
id_method INTEGER 11 PRIMARY KEY
folder VARCHAR 50 FOREIGN KEY
class VARCHAR 50
id_operation INTEGER 11 FOREIGN KEY
fungsi VARCHAR 50
id_msg_out INTEGER 11 FOREIGN KEY
tipedata VARCHAR 50
id_msg_in INTEGER 11 FOREIGN KEY
g. Tabel Data Method
Berfungsi untuk menyimpan data nama web service atomic dan alamat URL
WSDL. Tabel tb_ws_atomik berelasi dengan tabel tb_method. Keterangan tabel
tb_ws_atomik dapat dilihat pada tabel Tabel 3.7.
Tabel 3.7 Tabel Data Web Service Atomik
Nama Kolom Tipe Data Lebar Key
id_ws_atomik INTEGER 11 PRIMARY KEY
nama_ws_atomik VARCHAR 200
url_wsdl_atomik VARCHAR 200
id_method INTEGER 11 FOREIGN KEY
Hubungan relasi antar tabel di dalam database webservice dimodelkan dalam
Entity Relationship Diagram (ERD) pada Gambar 3.3.
37
Gambar 3.3 ERD Database webservice
Proses input data dilakukan melalui halaman simpan web service dengan
memasukkan keterangan nama web service, alamat URL WSDL, nama folder
setting, dan file WSDL.xml seperti pada Gambar 3.4. Folder setting merupakan
folder tempat penyimpanan script fungsi-fungsi PHP untuk membangun web
service.
Gambar 3.4 Form Input Data Web Service
38
$nama_ws = $_POST['nama_ws'];
$url = $_POST['url'];
$folder = strtolower($_POST['folder']);
$file = $_FILES['file']['name'];
$file_tmp = $_FILES['file']['tmp_name'];
# Folder Tempat File
$path = "file/".$file;
# Simpan
if(move_uploaded_file($file_tmp, $path)) {
# Proses simpan ke db
$query = mysql_query("INSERT INTO tb_webservice
VALUES(NULL,'$nama_ws','$url','$file','$folder')");
}
Gambar 3.5 Source Code Simpan Data Web Service
Variabel $nama_ws, $url, $folder, $file di dapatkan dari inputan
user melalui halaman simpan pada Gambar 3.4. Variabel $path menunjukkan
lokasi direktori penyimpanan file .xml. Proses simpan dalam MySQL ditunjukkan
dalam query INSERT pada variabel $query dan disimpan kecdalam tabel
tb_webservice..
3.2.3 Parsing Data
Tahap parsing merupakan proses pemilahan elemen-elemen yang terdapat
pada WSDL untuk selanjutnya dilakukan pengolahan data. Pada penelitin ini
elemen-elemen yang ada di filter dan diambil elemen message, porttype, dan
operation. Proses parsing dalam penelitian ini menggunakan ekstensi PHP yaitu
simpleXML untuk mendapatkan data dari file xml. SimpleXML merupakan parser
berbasis pohon yang sesuai dengan struktur dokumen WSDL. Source code parsing
WSDL dapat dilihat pada Gambar 3.6
39
$id = $_GET['id'];
$sql = mysql_query("SELECT * FROM tb_webservice WHERE
id_webservice = '".$id."'");
$data = mysql_fetch_array($sql);
$xml = simplexml_load_file("file/".$data['file_wsdl']);
foreach($xml->portType as $portType){
$nama_pt = $portType['name'];
$query = "INSERT INTO tb_porttype VALUES
(NULL,'$nama_pt','$id')";
$id_pt = mysql_insert_id();
foreach ($portType->operation as $operation) {
$nama_operation = $operation['name'];
$input = $operation->input['message'];
$output = $operation->output['message'];
$query2 = mysql_query("INSERT INTO tb_operation VALUES
NULL,'$nama_operation','$input','$output','$id_pt')");
}
}
Gambar 3.6 Source Code Parsing Dokumen WSDL
Variabel $sql pada Gambar 3.6 berisi query mysql untuk mengambil data
dalam tabel tb_webservice berdasarkan id_webservice. mysql_fetch_array()
berfungsi untuk mengambil data MySQL sehingga menjadi lebih fleksibel untuk
akses data. File WSDL.xml yang telah diambil dari database kemudian di parsing
menggunakan simpleXML. Script $xml->portType berfungsi untuk mengambil
elemen portType, kemudian di looping menggunakan perulangan foreach.
$portType['name']; yang berfungsi untuk mengambil nama portType. Elemen
operation merupakan child dari elemen portType, sehingga elemen operation
dipanggil setelah memanggil elemen portType. Script untuk mengambil elemen
operation yaitu $portType->operation.
40
Gambar 3.7 Flowchart Parsing WSDL
Gambar 3.7 menunjukkan alur proses parsing XML ke PHP untuk
mengambil elemen-elemen yang ada dalam WSDL. Sebelum elemen message,
portType, dan operation disimpan ke dalam database, dilakukan pengecekan
41
terhadap kelengkapan elemen pada dokumen WSDL terlebih dahulu. Proses
pengecekan ini memastikan bahwa dokumen WSDL yang diinputkan memiliki
elemen-elemen yang lengkap. Dalam penelitian ini, WSDL dianaggap lengkap jika
memiliki elemen types, message, portType, binding, dan service. Elemen dan
atribut message dimasukkan ke tabel tb_message, elemen dan atribut portType
dimasukkan ke tabel tb_porttype, elemen dan atribut operation dimasukkan ke tabel
tb_operation.
# Simpan PortType dan Operation
foreach($xml->portType as $portType){
$nama_pt = $portType['name'];
$query = "INSERT INTO tb_porttype VALUES
(NULL,'$nama_pt','$id')";
# Ambil ID Record Terakhir
if (mysql_query($query)){
$id_pt = mysql_insert_id();
foreach ($portType->operation as $operation) {
$nama_operation = $operation['name'];
$input = $operation->input['message'];
$output = $operation->output['message'];
$query2 = mysql_query("INSERT INTO tb_operation VALUES
(NULL,'$nama_operation','$input','$output','$id_pt')");
}
}
Gambar 3.8 Source Code Simpan Elemen PortType dan Operation
Pada Gambar 3.8 script foreach($xml->portType as
$portType)berfungsi untuk melakukan perulangan mengambil elemen portType.
Variabel $nama_pt= $portType['name']; berfungsi untuk mengambil
portType name yang kemudian disimpan menggunakan query INSERT dalam
variabel $query. $id_pt = mysql_insert_id(); berfungsi untuk
mengambil id terakhir data portType yang disimpan. Hal ini perlu dilakukan karena
42
elemen operation merupakan child dari elemene porttype, sehingga tabel
tb_operation dapat mengambil id_porttype untuk berelasi dengan tabel tb_porttype.
Atribut elemen operation yang diambil berupa name, input, dan output.
Script yang digunakan adalah $nama_operation = $operation['name'];
untuk megambil atribut name, $input = $operation-
>input['message']; untuk mengambil atribut input, dan $output =
$operation->output['message'] untuk mengambil atribut output.
# Simpan Message
foreach ($xml->message as $message) {
$nama_msg = $message['name'];
$sql = "INSERT INTO tb_message VALUES(NULL,'$nama_msg','$id')";
# Mengambil ID record terakhir
if (mysql_query($sql)){
$id_msg = mysql_insert_id();
foreach ($message->part as $part){
$nama_part = $part['name'];
$tipe = $part['type'];
$sql2 = mysql_query("INSERT INTO tb_message_isi VALUES
(NULL,'$nama_part','$tipe','$id_msg')");
}
}
Gambar 3.9 Source Code Simpan Elemen Message
Atribut elemen message yang disimpan adalah name, part, dan type. Satu
elemen message dalam dokumen WSDL memiliki satu name yang unik dan
berbeda, dan memiliki satu atau lebih atribut part dan type. Sehingga, tabel
penyimpanan dipisah menggunakan relasi one to many. Atribut name disimpan
dalam tabel tb_message, sedangkan atribut part dan type disimpan dalam tabel
tb_message_isi berdasarkan id_message terakhir yang disimpan menggunakan
script $id_msg = mysql_insert_id(); seperti pada Gambar 3.9.
43
3.2.4 Mendapatkan Fungsi dan Tipe Data
Pada tahap ini, data operation name hasil proses parsing diambil dari tabel
tb_operation kemudian diproses untuk menghilangkan karakter yang tidak perlu
dan menghilangkan kata pertama. Hasil proses ini adalah function web service.
Kemudian data message juga diproses, dihilangkan karakter yang tidak penting.
Tipe data yang diingankan adalah tipe data output dari web service, sehingga tipe
data yang diambil adalah tipe data dari messageResponse. Hal ini berkaitan dengan
atribut output elemen operation yang berkaitan dengan elemen messageResponse.
Function dan tipe data output yang telah diperoleh kemudian dipetakan
berdasarkan kecocokan antara operation name dengan message response,
kemudian disimpan dalam tabel tb_method. Setiap operation memiliki satu output
yang berasal dari messageResponse, alur dapat dilihat pada Gambar 3.10.
Operation Name
kegiatan.getTahunAjaran
kegiatan getTahunAjaran
Class Function
Gambar 3.10 Memecah Atribut Operation Name Menjadi Class dan Function
Message Name Message Type
kegiatan.getTahunAjaranResponse tns:TahunAjaranArray
Tipe Data Output Array
Gambar 3.11 Mengambil Message Type Menjadi Tipe Data Output Web Service
Gambar 3.10 menunjukkan bahwa atribut name pada elemen operation dapat
dipecah menjadi class dan function web service. Pada Gambar 3.11 ditunjukkan
44
bahwa atribut type pada elemen messageResponse menunjukkan tipe data output
web service yaitu berupa array.
Gambar 3.12 Alur untuk Mendapatkan Fungsi dan Tipe Data
45
mysql_query("TRUNCATE TABLE tb_method");
# Mengambil Fungsi
$dataOpt = mysql_query("SELECT * FROM
tb_operation,tb_porttype,tb_webservice WHERE
tb_operation.id_porttype=tb_porttype.id_porttype
AND
tb_porttype.id_webservice=tb_webservice.id_webservice
ORDER BY tb_operation.id_operation ASC");
while ($data = mysql_fetch_array($dataOpt)) {
$folder = $data['nama_folder'];
$id_opt = $data['id_operation'];
$nama_opt = $data['nama_operation'];
$opt = str_replace(".", " ", $nama_opt);
$method = explode(" ", $opt);
$kelas = $method[0];
$fungsi = $method[1];
$save = mysql_query("INSERT INTO tb_method VALUES
(NULL,'$folder','$kelas','$id_opt','$fungsi','','')");
}
Gambar 3.13 Source Code Mendapatkan Function dari Elemen Operation
Source code pada Gambar 3.13 memiliki variable $dataOpt yang
berfungsi untuk mengambil data dari tabel tb_operation, tb_porttype, dan
tb_webservice. Script $folder = $data['nama_folder']; berfungsi untuk
mengambil data nama folder setting dalam tabel tb_webservice. Script $id_opt =
$data['id_operation']; $nama_opt = $data['nama_operation'];
berfungsi untuk mengambil id_operation dan nama_operation di dalam
tb_operation. Data nama operation dipecah menggunakan explode(). Array ke-
0 merupakan nama class, sedangkan array ke-1 merupakan nama function.
Kemudian data disimpan menggunakan query INSERT ke dalam tb_method
melalui variable $save.
$dataMsg = mysql_query("SELECT * FROM tb_message_isi, tb_message
WHERE nama_message LIKE '%response' AND
tb_message_isi.id_message=tb_message.id_message
GROUP BY tb_message.id_message ASC");
46
$id = 1;
while ($hasil = mysql_fetch_array($dataMsg)) {
$id_msg = $hasil['id_message'];
$tipedata = $hasil['tipe'];
$msg = str_replace(":", " ", "$tipedata");
$tp_data = explode(" ", $msg);
$tipe = $tp_data[1];
if($tipe != 'string' && 'int'){
$sub_kata = substr($tipe, -5);
$td = strtolower($sub_kata);
} else{
$td = $tipe;
}
$idd = $id++;
$update = mysql_query("UPDATE tb_method SET
id_msg_out='$id_msg',tipedata='$td'
WHERE id_method='$idd'");
}
Gambar 3.14 Source Code Mendapatkan Tipe Data Output Web Service
Source code pada Gambar 3.14 memiliki variable $dataMsg yang
berfungsi untuk mengambil data dari tabel tb_message_isi dan tb_message. Script
$id_msg = $hasil['id_message']; dan $tipedata =
$hasil['tipe']; berfungsi untuk mengambil data id_message dan tipe data.
Data $tipedata dipecah menggunakan explode() dan diambil array ke-1 yang
merupakan jenis tipe data output.. Kemudian data disimpan menggunakan query
UPDATE ke dalam tb_method melalui variable $update.
3.2.5 Pembuatan WSDL Baru
Pada penelitian sebelumnya WSDL di generate menggunakan library
NuSOAP, sehingga dalam penelitian ini juga memanfaatkan library NuSOAP
untuk proses generate WSDL. Function dan tipe data yang diperoleh dari proses
sebelumnya ditulis ke dalam script php untuk memanggil function-function
47
program. Contoh script yang digunakan untuk memanggil function terdapat pada
Gambar 3.15.
<?php
include ("folder/setting.php");
$SOAP = new class('nama class');
$SOAP->registerFunction('function',"output");
$SOAP->execute();
?>
Gambar 3.15 Source Code Generate WSDL
Gambar 3.15 menunjukkan script include ("folder/file.php");
menyertakan dan mengevaluasi file setting yang telah disimpan dalam
tb_webservice. Script $SOAP = new class('nama class'); berisi nama
kelas yang datanya diambil dari tabel tb_method. Script $SOAP-
>registerFunction('function',"output"); mengambil data dari tabel
tb_method berupa fungsi dan tipe data output yang telah didapatkan sebelumnya
pada Gambar 3.13 dan Gambar 3.14. Ketika script dijalankan di browser, NuSOAP
akan mengeksekusi method $this->server->configureWSDL di dalam file
setting untuk men-generate otomatis dokumen WSDL. Hasil generate WSDL baru
dapat dilihat pada Gambar 3.16 dan Gambar 3.17.
48
Gambar 3.16 Halaman Info Generate Service dengan NuSOAP
Gambar 3.17 WSDL Hasil Generate NuSOAP
49
3.2.6 Clustering
3.2.6.1 Preprocessing
Tahap pre-processing berguna untuk menyeleksi data yang akan diolah.
Tahap pre-processing penelitian ini digambarkan dalam blok diagram pada
Gambar 3.18.
Gambar 3.18 Tahap Preprocessing
Tahap tokenizing merupakan tahap pemotongan string input berdasarkan tiap
kata yang menyusunnya. Umumnya setiap kata terindentifikasi atau terpisahkan
dengan kata yang lain oleh karakter spasi, sehingga proses tokenizing
mengandalkan karakter spasi pada dokumen untuk melakukan pemisahan kata.
Tahap stopword removal atau filtering adalah proses pemilihan kata dan
untuk menghilangkan atau menghapus kata yang bersifat umum yang dianggap
tidak memiliki makna, misalnya “yang”,”di”, dan “ke”.
$listtanda = array(".",",",":",";","?","!","(",")");
foreach ($listtanda as $i => $value) {
$service = str_replace($listtanda, " ", $service);
}
$service = strtolower($service);
$query = mysql_query("SELECT * FROM tb_stopwords");
while($hasil = mysql_fetch_array($query)){
$stoplist[] = trim($hasil['stopword']);
}
$kata = explode(" ", $service);
$jml_kata = count($kata)-1;
for ($i=0; $i<=$jml_kata; $i++){
if (in_array($kata[$i], $stoplist)) {
unset($kata[$i]);
}
50
}
$service = implode(" ",$kata);
$service = strtolower(trim($service));
Gambar 3.19 Source Code Tahap Tokenizing dan Stopword Removal
Variabel $listtanda pada Gambar 3.19 berisi daftar karakter yang akan
dihilangkan menggunakan fungsi str_replace(). Kemudian data dicek dan
dibandingkan dengan data stopword yang diambil dari database dalam variable
$query, jika data termasuk stopword maka data akan dihapus.
Tabel 3.8 Contoh Data Operation Setelah Dilakukan Tokenizing
1. kurikulum getMapel
2. kurikulum getMapelByDepartemen
3. kurikulum getSilabus
4. kurikulum getSilabusAll
5. kurikulum getSks
6. kurikulum rppbyidmapel
Tahap stemming adalah proses pengubahan bentuk kata menjadi kata dasar
atau tahap mencari root kata dari tiap kata hasil filtering. Sehingga setiap kata yang
memiliki imbuhan akan berubah menjadi kata dasar. Pada penelitian ini, algoritma
untuk proses stemming menggunakan algoritma Nazief & Adriani.
include_once 'aksi-stemming.php';
$hsl_stopword = preprocessing($service);
$kata = explode(" ", $hsl_stopword);
$jml_kata = count($kata)-1;
for($i=0; $i<=$jml_kata; $i++){
$kata[$i] = stemming($kata[$i]);
}
$service = implode(" ", $kata);
$service = strtolower(trim($service));
Gambar 3.20 Source Code Proses Stemming
51
Pada Gambar 3.20 data hasil proses stopword removal dilakukan stemming
untuk mencari akar kata atau kata dasarnya. File stemming disertakan dalam script
include_once 'aksi-stemming.php';.
3.2.6.2 Pembobotan Kata
Data hasil proses preprocessing kemudian dihitung bobotnya menggunakan
metode TF-IDF. Menghitung TF (Term Frequency) yaitu dengan menghitung
frekuensi kemunculan term (t) pada dokumen (d). Semakin besar jumlah
kemunculan suatu term (TF tinggi) dalam dokumen, semakin besar pula bobotnya
sehingga akan memberikan nilai kesesuaian yang semakin besar. Menghitung DF
(Document Frequency) yaitu dengan menghitung banyaknya dokumen dimana
suatu term (t) muncul.
IDF (Invers Document Frequency) menunjukkan hubungan ketersediaan
sebuah term dalam seluruh dokumen. Semakin sedikit jumlah dokumen yang
mengandung term yang dimaksud, maka nilai IDF semakin besar. IDF (Invers
Document Frequency) dapat dihitung menggunakan rumus berikut:
𝐼𝑑𝑓 = 1
𝑑𝑓 Atau 𝐼𝑑𝑓 = log (
𝑁
𝑑𝑓) (3.1)
Dimana N adalah jumlah semua dokumen dalam koleksi, df adalah jumlah
dokumen yang mengandung term. Sehingga pembobotan kata menggunakan TF-
IDF dapat dihitung menggunkan rumus:
𝑊𝑑𝑡 = 𝑡𝑓𝑑𝑡 × 𝑖𝑑𝑓𝑡 (3.2)
52
Dimana d = dokumen ke-d; t = kata ke-t dari kata kunci; W = bobot dokumen
ke-d terhadap kata ke-t; tf = banyaknya kata yang dicari pada sebuah dokumen; dan
IDF = Inversed Document Frequency
Pembobotan dilakukan pada setiap term atau kata pada dokumen fungsi dan
parameter input. Proses pembobotan dilakukan dengan menghitung nilai TF
kemudian menghitung nilai IDF dari masing-masing term pada setiap dokumen.
$sql_opt = mysql_query("SELECT * FROM tb_method,tb_operation
WHERE tb_method.id_operation=tb_operation.id_operation
ORDER BY id_method");
$data = mysql_num_rows($sql_opt);
while($row = mysql_fetch_array($sql_opt)) {
$id = $row['id_operation'];
$service = $row['nama_operation'];
$service = kataDasar($service);
# simpan ke tb_index_opt
$opt = explode(" ", trim($service));
foreach ($opt as $j => $value) {
if ($opt[$j] != "") {
$hitung_term = mysql_query("SELECT count_opt FROM
tb_index_opt WHERE term_opt = '$opt[$j]' AND id_operation =
$id");
$jml_term = mysql_num_rows($hitung_term);
if ($jml_term > 0) {
$data_term = mysql_fetch_array($hitung_term);
$count = $data_term['count_opt'];
$count++;
mysql_query("UPDATE tb_index_opt SET count_opt = $count
WHERE term_opt = '$opt[$j]' AND id_operation = $id");
}
else {
mysql_query("INSERT INTO tb_index_opt (id_index_opt,
id_operation,term_opt,count_opt,bobot_opt)VALUES(NULL,'$id',
'$opt[$j]', 1,'')");
}
}
}
} Gambar 3.21 Source Code Fungsi Pengindeksan
Source code pada Gambar 3.21 berfungsi untuk melakukan proses
pengideksan dokumen. Pengindeksan dokumen dijalankan setelah melakukan
53
proses preprocessing dan sebelum melakukan proses pembobotan. Pengindeksan
bertujuan mempermudah proses clustering dengan membuat daftar kata-kata atau term
yang merupakan ciri dari masing-masing dokumen. Indeks yang dihasilkan akan
dihitung nilai bobot setiap kata atau term sehingga dapat diketahui nilai bobot sebagai
representasi nilai pentingnya kata atau term tersebut dalam tiap dokumen dalam
database. Proses pengindeksan akan menghasilkan daftar indeks yang disimpan dalam
tabel tb_index. Dalam penelitian ini, dokumen yang dilakukan proses indeks adalah
fungsi, parameter input, dan tipe data darray. Data indeks fungsi disimpan dalam tabel
tb_index_opt, data indeks parameter input disimpan dalam tabel tb_index_in, dan tipe
data output disimpan dalam tabel tb_index_out. Pada proses pengindeksan, setiap data
diproses dengan menghitung kata atau term dan menyimpan jumlahnya di database
dalam tabel tb_index_opt. Jumlah term tiap dokumen akan digunakan untuk
menghitung bobot tiap kata atau term dalam dokumen.
$index = mysql_query("SELECT DISTINCT id_operation FROM
tb_index_opt");
$n = mysql_num_rows($index);
$sql_index = mysql_query("SELECT * FROM tb_index_opt ORDER BY
id_index_opt");
$hasil = mysql_num_rows($sql_index);
while($dt_index = mysql_fetch_array($sql_index)) {
$term = $dt_index['term_opt'];
$tf = $dt_index['count_opt'];
$id = $dt_index['id_index_opt'];
$hitung_term = mysql_query("SELECT Count(*) as N FROM
tb_index_opt WHERE term_opt = '$term'");
$hasil_term = mysql_fetch_array($hitung_term);
$NTerm = $hasil_term['N'];
$w = $tf * log($n/$NTerm);
$updateBobot = mysql_query("UPDATE tb_index_opt SET
bobot_opt = $w WHERE id_index_opt = $id");
}
Gambar 3.22 Source Code Fungsi Pembobotan
54
Source code pada Gambar 3.22 menunjukkan perhitungan menggunakan TF
dan IDFuntuk mendapatkan nilai bobot dalam script $w = $tf *
log($n/$NTerm); dimana nilai $tf diambil dari $tf =
$dt_index['count_opt'];. Hasil perhitungan bobot menggunakan TF dan
IDF kemudian disimpan ke database seperti dalam variabel $updateBobot.
.
3.2.6.3 Pengelompokan Data Menggunakan K-Means Clustering
Pada penelitian ini, proses clustering dilakukan untuk mengetahui kemiripan
fungsionalitas antar data. Parameter yang digunakan adalah nama fungsi, parameter
input, dan tipe data output. Tahap pertama dalam proses clustering menggunakan
algoritma k-means adalah menentukan banyaknya cluster. Dalam penelitian ini,
jumlah cluster cluster ditentukan sebanyak tiga cluster . Kemudian menentukan
nilai centroid secara acak. Menghitung jarak nilai data dengan nilai centroid
menggunakan Euclidean distance. Setelah nilai jarak di dapatkan, data-data akan
memilih cluster yang memiliki nilai centroid dekat dengan nilai datanya.
Kemudian tentukan posisi centroids baru dengan cara menghitung nilai rata-rata
dari data-data yang memilih pada centroid sama. Jika pada iterasi selanjutnya nilai
centroid berubah, maka proses kembali pada menghitung nilai jarak data dengan
centroid hingga nilai centroid tidak berubah.
for ($i=0;$i<count($cls);$i++){
$jml = 0;
for ($j=0;$j<count($this->data);$j++){
$jml += pow(($this->data[$j] - $cls[$i][$j]),2);
}
$tmpC = sqrt($jml);
if ($c==null){
$c = $tmpC;
$tmpCluster = $i;
}
55
if ($tmpC < $c){
$c = $tmpC;
$tmpCluster = $i;
}
}
$this->cluster = $tmpCluster;
Gambar 3.23 Source Code Fungsi Penentuan Cluster
for ($k=0;$k<count($this->centroidCluster[$i]);$k++){
if ($countObj>0){
$this->centroidCluster[$i][$k] = $x[$k]/$countObj;
}else{
echo “Terdapat ketidak sesuai Nilai Awal Cluster";
break;
}
}
Gambar 3.24 Source Code Penentuan Nilai Centroid
Source code pada Gambar 3.23 berfungsi untuk menghitung jarak antara nilai
objek dengan nilai centroid menggunakan Euclidean Distance seperti dalam
persamaan 2.1.
Penerapan perhitungan k-means clustering dengan tiga buah cluster dapat
dilihat pada Tabel 3.9. Diketahui data yang digunakan seperti pada Tabel 3.9,
dimana nilai X merupakan nilai panjang vektor operation name, nilai Y merupakan
panjang vektor parameter input, dan nilai Z merupakan nilai panjang vektor tipe
data output.
Tabel 3.9 Data Panjang Vektor Dokumen
No. X Y Z
1. 6,503 0 0,684
2. 7,061 2,589 0,684
3. 6,503 7,739 0,684
4. 7,061 0 0,684
5. 6,503 8,161 0,684
6. 7,061 7,167 0,684
7. 6,553 0 0,684
8. 6,553 4,199 0,684
56
9. 6,553 0 0,684
10. 6,553 5,115 0,684
11.. 6,553 5,115 0,702
12 6,553 10,989 0,702
13. 6,553 9,201 0,702
14. 6,553 6,617 0,702
15. 6,553 5,808 0,684
Nilai pusat cluster (centroids) awal ditentukan secara random. Nilai awal
pusat cluster dapat dilihat pada Tabel 3.10.
Tabel 3.10 Nilai Awal Pusat Cluster
Cluster X Y Z
Cluster 1 6,503 0 0,684
Cluster 2 7,061 2,589 0,684
Cluster 3 6,503 7,739 0,684
Langkah selanjutnya adalah menghitung jarak antara nilai pusat cluster
dengan data menggunakan Euclidean Distance sesuai dengan rumus 2.1 berikut:
𝐷(𝑥2,𝑥1) = ‖𝑥2 − 𝑥1‖2 = √∑ (𝑥2𝑗 − 𝑥1𝑗)2𝑝
𝑗=1
Dimana, D = jarak Euclidean; x1 = nilai pusat cluster (centroid); x2 = nilai
data yang diuji; p = dimensi data.
1. Jarak dengan Cluster 1
𝐷1 = √(6,50342 − 6,50342)2 + (0,000 − 0,000)2 + (0,684179 − 0,684179)2 = 0
𝐷2 = √(7,06157 − 6,50342)2 + (2,58927 − 0,000)2 + (0,684179 − 0,684179)2 = 2,64874
𝐷3 = √(6,50342 − 6,50342)2 + (7,739 − 0,000)2 + (0,684179 − 0,684179)2 = 7,7393
𝐷4 = √(7,06157 − 6,50342)2 + (0,000 − 0,000)2 + (0,684179 − 0,684179)2 = 0,5582
𝐷5 = √(6,50342 − 6,50342)2 + (8,161 − 0,000)2 + (0,684179 − 0,684179)2 = 8,1610
57
2. Jarak dengan Cluster 2
𝐷1 = √(6,50342 − 7,06157)2 + (0,000 − 2,58927)2 + (0,684179 − 0,684179)2 = 2,6487
𝐷2 = √(7,06157 − 7,06157)2 + (2,58927 − 2,58927)2 + (0,684179 − 0,684179)2 = 0
𝐷3 = √(6,50342 − 7,06157)2 + (7,739 − 2,58927)2 + (0,684179 − 0,684179)2 = 5,1802
𝐷4 = √(7,06157 − 7,06157)2 + (0,000 − 2,58927)2 + (0,684179 − 0,684179)2 = 2,5892
𝐷5 = √(6,50342 − 7,06157)2 + (8,161 − 2,58927)2 + (0,684179 − 0,684179)2 = 5,5996
3. Jarak dengan Cluster 3
𝐷1 = √(6,50342 − 6,50342)2 + (0,000 − 7,739)2 + (0,684179 − 0,684179)2 = 7,7393
𝐷2 = √(7,06157 − 6,50342)2 + (2,58927 − 7,739)2 + (0,684179 − 0,684179)2 = 5,1802
𝐷3 = √(6,50342 − 6,50342)2 + (7,739 − 7,739)2 + (0,684179 − 0,684179)2 = 0
𝐷4 = √(7,06157 − 6,50342)2 + (0,000 − 7,739)2 + (0,684179 − 0,684179)2 = 7,7594
𝐷5 = √(6,50342 − 6,50342)2 + (8,161 − 7,739)2 + (0,684179 − 0,684179)2 = 0,4216
Masing-masing data akan masuk ke dalam salah satu kelompok yang
memiliki jarak paling minimum dengan pusat cluster. Hasil perhitungan yang telah
dilakukan akan mendapatkan anggota-anggota cluster seperti pada Tabel 3.11.
Tabel 3.11 Hasil Clustering
No. X Y Z Keanggotaan Cluster
1. 0 2,64874 7,7393 C1
2. 2,6487 0 5,1802 C2
3. 7,7393 5,1802 0 C3
4. 0,5581 2,5892 7,7594 C1
5. 8,1610 5,5996 0,4216 C3
6. 7,1885 4,5775 0,7995 C3
7. 0,0501 2,6386 7,7395 C1
8. 4,1989 1,6877 3,5410 C2
9. 0,0501 2,6386 7,7395 C1
10. 5,1152 2,5763 2,6248 C2
58
11. 2,5763 2,5763 2,6249 C1
12. 10,9890 8,4149 3,2499 C3
13. 9,2013 6,6314 1,4628 C3
14. 6,6177 4,0602 1,1230 C3
15. 12,3116 3,2587 1,9318 C3
3.3 Pengujian Sistem
Pengukuran efektivitas suatu sistem temu kembali dapat dilakukan dengan
perhitungan terhadap nilai nilai Precision (ketepatan) dan Recall (perolehan).
Penelitian menggunakan nilai Precision dan Recall untuk menguji ketepatan
anggota cluster yang masuk di dalam suatu cluster. Dalam Fatkhul Amin [27],
dijelaskan bahwa nilai precision adalah proporsi dokumen relevan yang terambil
oleh sistem adalah relevan. Nilai recall adalah proporsi dokumen relevan yang
terambil oleh system. Nilai recall dan precision bernilai antara 0 sampai 1.
Nilai Sebenarnya
TRUE FALSE
Nilai
Prediksi
TRUE TP
(True Positive)
Hasil relevan
FP
(False Positive)
Hasil tidak relevan
FALSE FN
(False Negative)
Hasil tidak ditemukan
TN
(True Negative)
Hasil relevan yang tidak
ditemukan
Gambar 3.25 Precision dan Recall
Dari kedua nilai Recall dan Precison akan menentukan nilai Accuracy yang
kemudian didefenisikan sebagai tingkat kedekatan antara nilai prediksi dengan nilai
sesungguhnya. Setelah sistem selesai dirancang dan siap untuk digunakan, maka
akan dilakukan uji coba dan evaluasi sistem tersebut. Sehingga dapat diketahui
59
tingkat efektivitas sistem dari hasil evaluasi menggunakan kombinasi Precision dan
Recall. Berdasarkan keterangan pada Gambar 3.25, dapat diketahui rumus
perhitungan menggunakan precision dan recall adalah sebagai berikut:
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =𝑇𝑃
𝑇𝑃+𝐹𝑃 (3.3)
𝑅𝑒𝑐𝑎𝑙𝑙 =𝑇𝑃
𝑇𝑃+𝐹𝑁 (3.4)
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 =𝑇𝑃+𝑇𝑁
𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁 (3.5)
60
BAB 4
HASIL DAN PEMBAHASAN
Bab ini menjelaskan tentang hasil dan pembahasan dari sistem yang telah
dibangun berdasar dari skenario pengujian. Pengujian sistem dilakukan dengan
memasukkan dokumen WSDL sebagai data uji, kemudian melakukan parsing.
Hasil parsing disimpan ke dalam database, mendapatkan function dan tipe data
output dari hasil parsing hingga melakukan proses clustering. Selanjutnya akan
dipaparkan hasil pengujian serta pembahasan dan evaluasi dari kinerja sistem pada
penelitian ini.
4.1 Dokumen WSDL sebagai Data Uji
Data uji yang digunakan adalah dokumen WSDL web service pada ERP Pondok
Pesantren. Dokumen WSDL yang digunakan diantaranya adalah dari web service
akademik, kesantrian, keuangan, kurikulum, akuntansi dan kepegawaian. Data yang
didapat kemudian disimpan dalam format .xml. Contoh dokumen WSDL yang
digunakan dapat dilihat pada Gambar 4.1.
<?xml version="1.0" encoding="ISO-8859-1"?>
<definitions xmlns:SOAP-
ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http:
//www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/X
MLSchema-instance" xmlns:SOAP-
ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:s
erver" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:
wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns="http://schemas.xml
soap.org/wsdl/" targetNamespace="urn:server">
<types>
<xsd:schema targetNamespace="urn:server">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/
"/>
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
<xsd:complexType name="getMapel">
61
<xsd:all>
<xsd:element name="id_pelajaran" type="xsd:string"/>
<xsd:element name="nm_pelajaran" type="xsd:string"/>
<xsd:element name="id_departemen" type="xsd:int"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="getMapelArray">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-
ENC:arrayType" wsdl:arrayType="tns:getMapel[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="getMapelByDepartemen">
<xsd:all>
<xsd:element name="id_pelajaran" type="xsd:string"/>
<xsd:element name="nm_pelajaran" type="xsd:string"/>
<xsd:element name="id_departemen" type="xsd:int"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="getMapelByDepartemenArray">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-
ENC:arrayType" wsdl:arrayType="tns:getMapelByDepartemen[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="getSilabus">
<xsd:all>
<xsd:element name="id_silabi" type="xsd:string"/>
<xsd:element name="id_tingkat" type="xsd:int"/>
<xsd:element name="kd_matapelajaran" type="xsd:int"/>
<xsd:element name="materi_pokok" type="xsd:string"/>
<xsd:element name="indikator" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
. . . . .
Gambar 4.1 Dokumen WSDL Web Service Kurikulum
<operation name="kurikulum.getMapel">
<documentation>Fetch array </documentation>
<input message="tns:kurikulum.getMapelRequest"/>
<output message="tns:kurikulum.getMapelResponse"/>
</operation>
<operation name="kurikulum.getMapelByDepartemen">
<documentation>Fetch array </documentation>
<input message="tns:kurikulum.getMapelByDepartemenRequest"/>
<output message="tns:kurikulum.getMapelByDepartemenResponse"/>
</operation>
62
<operation name="kurikulum.getSilabus">
<documentation>Fetch array </documentation>
<input message="tns:kurikulum.getSilabusRequest"/>
<output message="tns:kurikulum.getSilabusResponse"/>
</operation>
<operation name="kurikulum.getSilabusAll">
<documentation>Fetch array </documentation>
<input message="tns:kurikulum.getSilabusAllRequest"/>
<output message="tns:kurikulum.getSilabusAllResponse"/>
</operation>
<operation name="kurikulum.getSks">
<documentation>Fetch array </documentation>
<input message="tns:kurikulum.getSksRequest"/>
<output message="tns:kurikulum.getSksResponse"/>
</operation>
<operation name="kurikulum.rppbyidmapel">
<documentation>Fetch array </documentation>
<input message="tns:kurikulum.rppbyidmapelRequest"/>
<output message="tns:kurikulum.rppbyidmapelResponse"/>
</operation>
Gambar 4.2 Elemen Operation Web Service Kurikulum
Pada Gambar 4.2 diketahui bahwa Web Service Kurikulum merupakan web
service komposit yang memiliki enam buah method/function yang di
representasikan menjadi enam elemen operation, yaitu kurikulum.getMapel,
kurikulum.getMapelByDepartemen, kurikulum.getSilabus, kurikulum.getSks,
kurikulum.getSilabusAll, dan kurikulum.rppbyidmapel.
4.2 Langkah Uji Coba
Pada tahap ini dilakukan uji coba program menggunakan antarmuka
(interface). Tampilan awal program berisi halaman awal atau dashboard dengan
menu web service, operation, message, method, dan clustering. Tampilan awal
program dapat dilihat pada Gambar 4.3.
63
Gambar 4.3 Tampilan Awal Program
Skenario berawal dari memasukkan indentitas web service ke dalam form
input. Data yang dimasukkan antara lain nama web service, nama folder setting,
alamat URL WSDL, dan file WSDL berekstensi .xml seperti pada Gambar 4.4. Data
yang dimasukkan tidak akan tersimpan jika terdapat alamat URL WSDL yang
sama. Daftar hasil proses simpan ditampilkan seperti pada Gambar 4.5.
Gambar 4.4 Tampilan Halaman Simpan Web Service
64
Gambar 4.5 Tampilan Halaman Daftar Data Web Service
Setelah proses menyimpan identitas web service berhasil, langkah selanjutnya
adalah melakukan proses parsing elemen-elemen dokumen WSDL yang telah
disimpan sebelumya. Proses parsing dimulai dengan mengecek kelengkapan
elemen dokumen WSDL web service. Dokumen WSDL dianggap memiliki elemen
yang lengkap jika memiliki elemen types, message, porttype, binding, dan service.
Jika pengecekan sukses, proses parsing akan dilanjutkan dengan menyimpan
elemen message, porttype, dan operation ke dalam database. Hasil penyimpanan
elemen message dan operation ditunjukkan pada Gambar 4.6 dan Gambar 4.7.
65
Gambar 4.6 Tampilan Daftar Data Message
Gambar 4.7 Tampilan Daftar Data Operation
66
Data elemen message dan operation dijadikan bahan untuk dekomposisi web
service. Pada Gambar 4.7 Dapat diketahui bahwa atribut input dan output elemen
operation merujuk pada atribut message name. Input merujuk pada
messageRequest, sedangkan output merujuk pada messageResponse. Sehingga
dapat diketahui keterkaitan antar data operation dan message. Operation name
diolah untuk mendapatkan class dan function yang digunakan dalam web service.
MessageRequest diolah untuk mendapatkan tipe datanya. Data-data tersebut
kemudian disimpan dalam tb_method. Gambar 4.8 menunjukkan daftar data dari
tb_method.
Gambar 4.8 Tampilan Daftar Function dan Tipe Data Output
Data yang ada dalam tb_method kemudian digunakan untuk menulis script
PHP yang berfungsi utuk memanggil function web service. Setiap satu id_method
67
menjadi satu file PHP. File PHP yang telah dibuat kemudian dijalankan di browser
untuk melihat apakah WSDL sukses di-generate atau belum. Jika generate sukses
cek apakah operation name sesuai dengan function yang dipanggil. Kemudian URL
WSDL yang baru di copy dan dimasukkan ke dalam form input data web service
atomik.
4.3 WSDL Atomik
Generate WSDL dilakukan dengan menuliskan script untuk memanggil
function dan tipe data output. Source code yang digunakan dapat dilihat pada
Gambar 4.9.
<?php
include ("setting/kurikulum.php");
$SOAP = new kurikulum('getMapel');
$SOAP->registerFunction('getSks',"array");
$SOAP->execute();
?>
Gambar 4.9 Source Code Generate WSDL
Ketika dijalankan di browser, maka WSDL akan ter-generate secara
otomatis. Info tentang WSDL yang di generate akan ditampilkan pada halaman
browser. Untuk mendapatkan dokumen WSDL, klik tulisan WSDL pada halaman
info dokumen WSDL seperti pada Gambar 4.10. Ketika tulisan WSDL di klik,
maka akan muncul dokumen WSDL hasil generate otomatis seperti pada
Gambar 4.11.
68
Gambar 4.10 Tampilan Info Hasil Generate WSDL
Gambar 4.11 Dokumen WSDL Hasil Generate
69
4.4 Pengujian Web Service Atomik
Pengujian web service dilakukan dengan membuat service client sederhana
untuk mengecek fungsi-fungsi dalam web service melalui WSDL. WSDL pada
Gambar 4.11 didapatkan dengan menambahkan “?wsdl” pada URL tujuan. Client
dapat mengakses file WSDL dengan mengakses URL yang berisi alamat
diletakkannya file WSDL tersebut. Untuk mengakses file WSDL, dapat
menggunakan konfigurasi seperti pada Gambar 4.12.
require_once('../nusoap-master/lib/nusoap.php');
$client = new
nusoap_client('http://localhost/ws/_kurikulum_anik/getMapel.php?
wsdl', true);
$status = $client->setCredentials("kurikulum",
"kurikulumpondok","basic");
$result = $client-
>call('kurikulum.getMapel',array('dbname'=>"annur01101"));
Gambar 4.12 Requester/ Client
Pada Gambar 4.12, $client menunjukkan di mana file WSDL tersebut
berada sehingga requester atau client dapat mengakses file tersebut.Ketika client
dijalankan, maka akan muncul data-data seperti pada Gambar 4.13 sesuai dengan
data yang diminta pada $result. Dengan demikian, WSDL atomik hasil proses
dekomposisi berfungsi dengan baik dapat digunakan kembali dalam proses
discovery dan komposisi.
Gambar 4.13 Hasil Request Client
70
Dekomposisi web service membuat web service komposit menjadi lebih
sederhana dengan menjadikannya sebagai web service atomik. Web service atomik
memiliki WSDL yang memiliki informasi lebih spesifik tentang operasi yang
digunakan karena hanya memiliki satu elemen operation.
4.5 Clustering K-Means
Setelah data berhasil dilakukan dekomposisi menggunakan parsing, tahap
selanjutnya adalah mengelompokkan web service berdasarkan kemiripan
fungsionalitasnya. Data di cluster berdasarkan parameter nama function, parameter
input, dan tipe data output. Jumlah k ditentukan sebanyak tiga cluster. Data yang
digunakan dalam proses clustering berasal dari pembobotan kata menggunakan TF/
IDF, kemudian dihitung panjang vector tiap dokumen function, parameter input,
dan tipe data output. Nilai panjang vector digunkan sebagai inputan proses
clustering. Hasil proses clustering divisualkan dalam grafik menggunakan aplikasi
RapidMiner 5.3 seperti pada Gambar 4.14..
Gambar 4.14 Grafik Hasil Clustering
71
Pada Gambar 4.14 data dibagi menjadi tiga kelompok cluster. Masing-
masing warna menggambarkan web service yang berasal dari perhitungan nilai
panjang vektor class dan function web service. Data yang memiliki kemiripan
secara fungsional berada pada keompok yang sama.
Penelitian mengenai dekomposisi web service merupakan pengembangan
dari penelitian tentang web service pada ERP Pondok Pesantren. Pemikiran dalam
penelitian ini muncul ketika ada workflow baru yang memiliki aktivitas-aktivitas
berbeda atau yang hanya memiliki beberapa aktivitas yang sama dengan aktivitas
workflow yang sudah ada akan disusun web service nya. Untuk menghindari adanya
method-method yang tidak terpakai dalam web service, maka web service pada ERP
Pondok Pesantren dilakukan proses dekomposisi atau penguraian berdasarkan
method-method yang digunakan. Proses dekomposisi menjadikan web service yang
besar menjadi lebih sederhana, sehingga lebih mencerminkan fungsi web service
secara langsung. Dengan demikian, web service dapat dilakukan proses komposisi
dengan lebih fleksibel dan dapat digunakan kembali sesuai dengan kebutuhan
workflow yang baru.
4.6 Pengujian Clustering
Berdasarkan skenario uji coba dalam proses clustering yang telah dijelaskan,
selanjutnya akan dilakukan hasil pengujian sistem. Uji coba sistem dalam penelitian
ini dilakukan untuk mengetahui ketepatan anggota setiap cluster. Nilai precision
dan recall akan menunjukkan nilai relevansi dokumen yang ditemukan melalui
72
iterasi cluster. Hasil pengujian precision, recall, dan accuracy setiap iterasi
menggunakan 100 data uji dapat dilihat dalam Tabel 4.1, Tabel 4.2, dan Tabel 4.3.
Tabel 4.1 Hasil Perhitungan Precision, Recall, dan Akurasi pada Iterasi Pertama
ITERASI 1
No. Cluster Ret TP FP FN TN P R A
1. Cluster 1 100 47 53 0 0 0,47 1 0,47
2. Cluster 2 100 19 81 0 0 0,19 1 0,19
3. Cluster 3 100 34 66 0 0 0,34 1 0,34
Rata-rata 0,33 1 0,33
Ret = Retrieval, TP = True Positive, FP = False Positive, FN = False Negative, TN = True Negative,
P = Precision, R = Recall, A = Accuracy
Tabel 4.2 Hasil Perhitungan Precision, Recall, dan Akurasi pada Iterasi Kedua
ITERASI 2
No. Cluster Ret TP FP FN TN P R A
1. Cluster 1 100 0 100 0 0 0 0 0
2. Cluster 2 100 47 53 0 0 0,47 1 0,47
3. Cluster 3 100 53 47 0 0 0,53 1 0,53
Rata-rata 0,33 0,67 0,33
Ret = Retrieval, TP = True Positive, FP = False Positive, FN = False Negative, TN = True Negative,
P = Precision, R = Recall, A = Accuracy
Tabel 4.3 Hasil Perhitungan Precision, Recall, dan Akurasi pada Iterasi Ketiga
ITERASI 3
No. Cluster Ret TP FP FN TN P R A
1. Cluster 1 100 0 100 0 0 0 0 0
2. Cluster 2 100 0 100 0 0 0 0 0
3. Cluster 3 100 100 0 0 0 1 1 1
Rata-rata 0,33 0,33 0,33
Ret = Retrieval, TP = True Positive, FP = False Positive, FN = False Negative, TN = True Negative,
P = Precision, R = Recall, A = Accuracy
Pada Tabel 4.1 diketahui bahwa nilai rata-rata precision, recall, dan akurasi
masing-masing sebesar 0.33, 1, 0.33. Sehingga jika diubah kedalam nilai persen,
didapatkan nilai precision 33%, recall 100%, dan accuracy 33%. Pada Tabel 4.2
73
diketahui bahwa nilai rata-rata precision, recall, dan accuracy masing-masing
sebesar 0.33, 0.67, 0.33. Sehingga jika diubah kedalam nilai persen, didapatkan
nilai precision 33%, recall 67%, dan accuracy 33%. Pada Tabel 4.3 diketahui
bahwa nilai rata-rata precision, recall, dan akurasi masing-masing sebesar 0,33.
Sehingga jika diubah kedalam nilai persen, di dapatkan nilai precision 33%, recall
33%, dan accuracy 33%. Sehingga nilai rata-rata precision 67%, recall 67%, dan
accuracy.
Gambar 4.15 Grafik Nilai Precision Antar Cluster
Gambar 4.16 Grafik Nilai Recall Antar Cluster
0,47
0 0
0,19
0,47
0
0,33
0,53
1
0
0,2
0,4
0,6
0,8
1
1,2
Iterasi 1 Iterasi 2 Iterasi 3
PRECISION
Cluster 1 Cluster 2 Cluster 3
1
0 0
1 1
0
1 1 1
0
0,2
0,4
0,6
0,8
1
1,2
Iterasi 1 Iterasi 2 Iterasi 3
RECALL
Cluster 1 Cluster 2 Cluster 3
74
Gambar 4.17 Nilai Rata-Rata Precision, Recall, dan Accuracy
Pada Gambar 4.15 terlihat bahwa nilai precision cluster kesatu semakin
menurun, precision cluster kedua meningkat pada iterasi kedua dan menurun pada
iterasi ketiga. Cluster ketiga memiliki nilai precision yang meningkat disetiap
iterasi. Gambar 4.16 terlihat bahwa nilai recall ketiga cluster memiliki nilai yang
sama. Pada iterasi kedua, cluster kedua dan ketiga bernilai 1, sedangkan cluster
pertama benilai 0. Pada iterasi ketiga hanya cluster ketiga yang bernilai 1, cluster
pertama dan kedua benilai 0. Hasil clustering memiliki nilai rata-rata precision
33%, recall 67%, dan accuracy 33% seperti pada Gambar 4.17.
Dengan adanya proses dekomposisi web service, maka akan mempermudah
dan mempercepat pekerjaan, sehingga kita dapat melakukan pekerjaan lainnya
dengan lebih efektif. Allah SWT menyuruh umat Muslim untuk segera
menyelesaikan urusan yang lainnya, ketika satu urusan telah selesai dikerjakan. Hal
ini terdapat pada Q.S. Al-Insyirah ayat 7 yang bebunyi:
0,33 0,33 0,33 0,33
1
0,67
0,33
0,67
0,33 0,33 0,33 0,33
0
0,2
0,4
0,6
0,8
1
1,2
Rata-Rata Iterasi 1 Rata-Rata Iterasi 2 Rata-Rata Iterasi 3 Rata-Rata Total
PRECISION, RECALL, ACCURACY
Precission Recall Accuracy
75
٧ نصب ٱفإذا فرغت ف Artinya: “Maka apabila kamu telah selesai (dari sesuatu urusan), kerjakanlah
dengan sungguh-sungguh (urusan) yang lain” (Q.S. Al-Insyirah ayat 7)
Dengan demikian, kita dapat menghemat waktu dalam hal penyusunan web
service baru dan pencarian web service. Islam menganjurkan agar manusia
memanfaatkan waktu dan kesempatan yang dimiliki agar tidak termasuk ke dalam
golongan orang-orang yang merugi. Hal ini tertulis dalam Al-Qur’an surat Al-Asr
ayat 1-3 yang berbunyi:
نسن ٱإن ١ لعص ٱو ين ٱإل ٢لف خس ل لحت ٱءامنوا وعملوا ل وتواصوا لص لق ٱب ب ٱوتواصوا ب ٣ لص
Artinya: “Demi masa (1). Sesungguhnya manusia itu benar-benar dalam kerugian
(2). Kecuali orang-orang yang beriman dan mengerjakan amal saleh dan nasehat
menasehati supaya mentaati kebenaran dan nasehat menasehati supaya menetapi
kesabaran (3).” (Q.S. Al-Asr ayat 1-3)
76
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan penelitian yang telah dilakukan, dapat diambil beberapa
kesimpulan sebagai berikut:
1. Dokumen WSDL digunakan dalam proses dekomposisi untuk membentuk web
service atomik dengan memecah elemen operation melalui proses parsing
dokumen WSDL. Elemen operation dipecah untuk mendapatkan class dan
function dari web service, elemen mesageResponse mengandung tipe data
output web service. Generate WSDL atomik disusun dengan memanggil
function dan tipe data output. WSDL atomik hasil generate memiliki satu
operation yang berasal dari satu pemanggilan function dan tipe data output.
Web service atomik dideskripsikan dari WSDL atomik yang telah berhasil di
generate. Proses dekomposisi menjadikan web service komposit menjadi lebih
sederhana dengan membentuk web service atomik. Dengan demikian, web
service dapat diketahui fungsinya secara lebih spesifik.
2. Hasil dekomposisi di kelompokkan menggunakan algoritma k-means
clustering untuk mengetahui kemiripan secara fungsionalitas berdasarkan
fungsi, parameter input, dan tipe data output. Sebelum dikelompokkan, data
yang telah diolah dihitung masing-masing bobotnya menggunakan TF/IDF.
Hasil pembobotan dilakukan perhitungan untuk mendapatkan panjang vector
dokumen. Hasil perhitungan panjang vektor digunakan untuk menghitung jarak
77
antara pusat cluster dengan data dalam algoritma k-means clustering.
Pengujian proses clustering untuk nilai k = 3 dan iterasi sebanyak tiga kali
didapatkan nilai precision 33%, recall 67%, dan accuracy 33%.
5.2 Saran
Dari penelitian yang telah dilakukan, peneliti memberikan beberapa saran
sebagai berikut:
1. Untuk pengembangan pembuatan web service baru, pemberian nama fungsi
hendaknya distandarkan berdasarkan aturan yang disepakati, sehingga hasil
proses preprocessing menjadi lebih akurat.
2. Penelitian ini perlu dikembangkan dan dilanjutkan dengan proses discovery
dan komposisi web service, sehingga hasil penelitian ini dapat dimanfaatkan
secara maksimal.
3. Clustering yang telah dibuat perlu diuji kembali dengan nama fungsi yang telah
sesuai aturan, menambah parameter clustering, dan diuji menggunakan
algoritma clustering lain untuk menemukan hasil cluster yang paling sesuai.
78
DAFTAR PUSTAKA
[1] D. Booth, H. Haas, F. McCabe, E. Newcomer, M. Champion, C. Ferris and
D. Orchard, “Web Services Architecture,” 2004.
[2] H. Kreger, “Web Services Conceptual Architecture (WSCA 1.0),” IBM
Software Group, vol. 5, pp. 6-7, May 2001.
[3] R. Chinnici, M. Gudgin, J.-J. Moreau and S. Weerawarana, “Web Services
Description Language (WSDL) Version 1.2,” pp. 1-60, 3 2003.
[4] A. Fajar, “Integrasi Sistem Informasi Akuntansi pada Enterprise Resource
Planning Pondok Pesantren Tipe D Menggunakan Service Oriented
Architecture,” Malang, 2017.
[5] M. F. Pratama, “Integrasi Sistem Informasi Keuangan pada Enterprise
Resource Planning Pondok Pesantren Tipe D Menggunakan Service
Oriented Architecture,” Malang, 2017.
[6] B. Syah, “Integrasi Sistem Informasi Kesantrian pada Enterprise Resource
Planning Pondok Pesantren Tipe D Menggunakan Service Oriented
Architecture,” Malang, 2017.
[7] M. Ubaidillah, “Integrasi Sistem Informasi Kepegawaian pada Enterprise
Resource Planning Pondok Pesantren Tipe D Menggunakan Service
Oriented Architecture,” Malang, 2017.
[8] A. Ma‟rifah, “Integrasi Sistem Informasi Kurikulum Pada Enterprise
Resource Planning Pondok Pesantren Tipe D Menggunakan Service
Oriented Architecture,” Malang, 2017.
[9] F. M. Alfaidah, “Integrasi Sistem Informasi Perencanaan Produksi pada
Enterprise Resource Planning Pondok Pesantren Tipe D Menggunakan
Service Oriented Architecture,” Malang, 2017.
[10] A. N. Putri, “Integrasi Sistem Informasi Sarana Prasarana pada Enterprise
Resource Planning Pondok Pesantren Tipe D Menggunakan Service
Oriented Architecture,” Malang, 2017.
79
[11] M. E. Suprianto, “Integrasi Sistem Informasi Akademik pada Enterprise
Resource Planning Pondok Pesantren Tipe D Menggunakan Service
Oriented Architecture,” Malang, 2017.
[12] A. Saifuddin, “Eksistensi Kurikulum Pesantren dan Kebijkan Pendidikan,”
Jurnal Pendidikan Agama Islam, vol. 3, pp. 208-234, 2015.
[13] H. Alhamid, R. Sarno and D. Sunaryono, “Rancang Bangun Perangkat
Lunak Berorientasi Arsitektur Service (SOA) dengan Pendekatan
Workflow pada Portal untuk Sistem Enterprise Resource Planning,”
JURNAL TEKNIK POMITS, vol. 2, 2014.
[14] I. K. Widjaya, Enterprise Resource Planning, Yogyakarta: Graha Ilmu,
2012.
[15] S. Wibisono, “Enterprise Resource Planning (ERP) Solusi Sistem Informasi
Terintegrasi,” Jurnal Teknologi Informasi DINAMIK, Vols. X, No.3, pp.
150-159, September 2005.
[16] M. Mufidah, March 2016. [Online]. Available:
https://www.scribd.com/doc/303204423/Perbedaan-ERP-Dan-Sistem-
Informasi.
[17] K. Gottschalk, S. Graham, H. Kreger and J. Snell, “Introduction to Web
services architecture,” IBM SYSTEMS JOURNAL, vol. 41, pp. 170-177,
2002.
[18] N. Simpkins, “The Open University Digital Archive,” 2008. [Online].
Available: http://www.open.ac.uk/library/digital-archive/. [Accessed 28
January 2017].
[19] M. Tatsubori and K. Takahashi, “Decomposition and Abstraction of Web
Applications,” IEEE, 2006.
[20] J. Tatemura and W.-P. Hsiung, “Web Service Decomposition: Edge
Computing Architecture for Cache-Friendly E-commerce Applications,”
Electronic Commerce Research and Applications Vol. 5, pp. 57-65, 2005.
[21] S.Lagraa, H.Seba, R.Khennoufaand and H.Kheddouci, “A Graph
Decomposition Approach to Web Service Matchmaking,” in 7th
80
International Conference on Web Information Systems and Technologies,
Noordwijkerhout, Netherlands, 2011.
[22] B. Santosa, Data Mining : Teknik Pemanfaatan Data untuk Keperluan
Bisnis, 1 ed., Yogyakarta: Graha Ilmu, 2007.
[23] Suhartono, H. Mochamad and M. H. Purnomo, “Integration of Artificial
Neural Network into Genetic L-System Programming based plant modeling
environment with mathematica,” International Journal of Academic
Research, vol. 3, no. 6, 2011.
[24] Konduri and Aparna, “Clustering of Web Services Based on Semantic
Similarity,” 2008.
[25] B. T. G. S. Kumara, I. Paik and W. Chen, “Web-Service Clustering with a
Hybrid of Ontology Learning and Information-Retrieval-Based Term
Similarity,” in 20th International Conference on Web Services, 2013.
s[26] K. Elgazzar, A. E. Hassan and P. Martin, “Clustering WSDL Documents to
Bootstrap the Discovery of Web Service,” ICWS 2010 - 2010 IEEE 8th
International Conference on Web Services, pp. 147--154, 2010.
[27] F. Amin, “Sistem Temu Kembali Informasi dengan Metode Vector Space
Model,” Jurnal Sistem Informasi Bisnis, vol. 02, pp. 78-83, 2012.
81
LAMPIRAN
Data Web Service pada ERP Pondok Pesantren dan Nama Operation:
No. Nama Web Service Operation Name
1 Web Service Kurikulum kurikulum.getMapel
2 Web Service Kurikulum kurikulum.getMapelByDepartemen
3 Web Service Kurikulum kurikulum.getSilabus
4 Web Service Kurikulum kurikulum.getSilabusAll
5 Web Service Kurikulum kurikulum.getSks
6 Web Service Kurikulum kurikulum.rppbyidmapel
7 Web Service Kegiatan kegiatan.getTahunAjaran
8 Web Service Kegiatan kegiatan.selTahunAjaran
9 Web Service Kegiatan kegiatan.grafik
10 Web Service Kegiatan kegiatan.getDataRapat
11 Web Service Kegiatan kegiatan.getKalenderKegiatan
12 Web Service Kegiatan kegiatan.getKalenderKegiatanaktif
13 Web Service Kegiatan kegiatan.getKalenderKegiatanStatus
14 Web Service Kegiatan kegiatan.viewKalenderKegiatan
15 Web Service Kegiatan kegiatan.kegiatan_jatuh_tempo
16 Web Service Kegiatan kegiatan.getPengelolaan
17 Web Service Kegiatan kegiatan.getBOMachine
18 Web Service Kegiatan kegiatan.getBOMachineLPJ
19 Web Service Kegiatan kegiatan.getBOMaterial
20 Web Service Kegiatan kegiatan.getBOMaterialLPJ
21 Web Service Kegiatan kegiatan.getBOPerson
22 Web Service Kegiatan kegiatan.getBOPersonLPJ
23 Web Service Kegiatan kegiatan.getDanaPendapatan
24 Web Service Kegiatan kegiatan.getDanaPendapatanLPJ
25 Web Service Kegiatan kegiatan.getPengeluaran
26 Web Service Kegiatan kegiatan.getDanaPengeluaranLPJ
27 Web Service Kegiatan kegiatan.getDtTarif
28 Web Service Kegiatan kegiatan.addTahunAjaran
29 Web Service Kegiatan kegiatan.addDataRapat
30 Web Service Kegiatan kegiatan.addKalenderKegiatan
31 Web Service Kegiatan kegiatan.addPengelolaan
32 Web Service Kegiatan kegiatan.addBOMachine
33 Web Service Kegiatan kegiatan.addBOMaterial
34 Web Service Kegiatan kegiatan.addBOPerson
35 Web Service Kegiatan kegiatan.addDanaPendapatan
36 Web Service Kegiatan kegiatan.addPengeluaran
82
No. Nama Web Service Operation Name
37 Web Service Kegiatan kegiatan.addDtTarif
38 Web Service Kegiatan kegiatan.updateDataRapat
39 Web Service Kegiatan kegiatan.updateTahunAjaran
40 Web Service Kegiatan kegiatan.ttpTahunAjaran
41 Web Service Kegiatan kegiatan.updateKalenderKegiatan
42 Web Service Kegiatan kegiatan.updatePengelolaan
43 Web Service Kegiatan kegiatan.updatedPengelolaan
44 Web Service Kegiatan kegiatan.ttpPengelolaan
45 Web Service Kegiatan kegiatan.updateBOMachine
46 Web Service Kegiatan kegiatan.updateBOMaterial
47 Web Service Kegiatan kegiatan.updateBOPerson
48 Web Service Kegiatan kegiatan.updateDanaPendapatan
49 Web Service Kegiatan kegiatan.updatePengeluaran
50 Web Service Kegiatan kegiatan.updateDtTarif
51 Web Service Kegiatan kegiatan.deleteDataRapat
52 Web Service Kegiatan kegiatan.deleteTahunAjaran
53 Web Service Kegiatan kegiatan.deleteKalenderKegiatan
54 Web Service Kegiatan kegiatan.deleteBOMachine
55 Web Service Kegiatan kegiatan.deleteBOMaterial
56 Web Service Kegiatan kegiatan.deleteBOPNor
57 Web Service Kegiatan kegiatan.deleteBOPerson
58 Web Service Kegiatan kegiatan.deleteDanaPendapatan
59 Web Service Kegiatan kegiatan.deletePengelolaan
60 Web Service Kegiatan kegiatan.deletePengeluaran
61 Web Service Kegiatan kegiatan.deleteDtTarif
62 Web Service Kegiatan kegiatan.tahunajaranselisihbulan
63 Web Service Kegiatan kegiatan.getSisa
64 Web Service Kegiatan kegiatan.getSisalpj
65 Web Service Kegiatan kegiatan.addSisa
66 Web Service Kegiatan kegiatan.updateSisa
67 Web Service Kegiatan kegiatan.deleteSisa
68 Web Service Akuntansi akuntansi.getAkun
69 Web Service Akuntansi akuntansi.getAkun2
70 Web Service Akuntansi akuntansi.getjenistrans
71 Web Service Akuntansi akuntansi.getjenistrans2
72 Web Service Akuntansi akuntansi.addAkun
73 Web Service Akuntansi akuntansi.addTransaksi
74 Web Service Akuntansi akuntansi.addneraca
75 Web Service Akuntansi akuntansi.addjurnal
76 Web Service Akuntansi akuntansi.getrekdebet
83
No. Nama Web Service Operation Name
77 Web Service Akuntansi akuntansi.getrekkredit
78 Web Service Akuntansi akuntansi.getjurnal
79 Web Service Akuntansi akuntansi.getjurnal2
80 Web Service Akuntansi akuntansi.getneraca
81 Web Service Akuntansi akuntansi.getneraca2
82 Web Service Akuntansi akuntansi.updebit
83 Web Service Akuntansi akuntansi.upkredit
84 Web Service Kepegawaian pegawai.getpegawai
85 Web Service Kepegawaian pegawai.jumlah_ol
86 Web Service Kepegawaian pegawai.getpegawaibynip
87 Web Service Kepegawaian pegawai.getpegawaiakademik
88 Web Service Kepegawaian pegawai.getpegawaiakademikbydepartemen
89 Web Service Kepegawaian pegawai.getdpegawai
90 Web Service Kepegawaian pegawai.getpegawaiall
91 Web Service Kepegawaian pegawai.getbagianPegawai
92 Web Service Kepegawaian pegawai.getbagian
93 Web Service Kepegawaian pegawai.getjabatan
94 Web Service Kepegawaian pegawai.getGaji
95 Web Service Kepegawaian pegawai.getseksi
96 Web Service Kepegawaian pegawai.getgolongan
97 Web Service Kepegawaian pegawai.getpelatihan
98 Web Service Kepegawaian pegawai.getpkerja
99 Web Service Kepegawaian pegawai.getrpendidikan
100 Web Service Kepegawaian pegawai.getpensiun
101 Web Service Kepegawaian pegawai.getkeluar
102 Web Service Kepegawaian pegawai.getkenaikanjab
103 Web Service Kepegawaian pegawai.getmutpegawai
104 Web Service Kepegawaian pegawai.kode_bagian
105 Web Service Kepegawaian pegawai.kode_jabatan
106 Web Service Kepegawaian pegawai.kode_seksi
107 Web Service Kepegawaian pegawai.getjmpegawai
108 Web Service Kepegawaian pegawai.getjmpegawailem
109 Web Service Kepegawaian pegawai.getjmpegawailk
110 Web Service Kepegawaian pegawai.getjmpegawaipr
111 Web Service Kepegawaian pegawai.getjmpegawaipns
112 Web Service Kepegawaian pegawai.getjmpegawaicpns
113 Web Service Kepegawaian pegawai.getjmpegawaihonorer
114 Web Service Kepegawaian pegawai.getjmpegawaiswasta
115 Web Service Kepegawaian pegawai.getjmmutasi
116 Web Service Kepegawaian pegawai.getjmkeluar
84
No. Nama Web Service Operation Name
117 Web Service Kepegawaian pegawai.getjmpensiun
118 Web Service Kepegawaian pegawai.getjmjabatan
119 Web Service Kepegawaian pegawai.getjmbagian
120 Web Service Kepegawaian pegawai.getjmkjabatan
121 Web Service Kepegawaian pegawai.updatebagian
122 Web Service Kepegawaian pegawai.updatejabatan
123 Web Service Kepegawaian pegawai.updateseksi
124 Web Service Kepegawaian pegawai.editpegawai
125 Web Service Kepegawaian pegawai.updategolongan
126 Web Service Kepegawaian pegawai.delseksi
127 Web Service Kepegawaian pegawai.delbagian
128 Web Service Kepegawaian pegawai.deljabatan
129 Web Service Kepegawaian pegawai.delgolongan
130 Web Service Kepegawaian pegawai.delpegawai
131 Web Service Kepegawaian pegawai.delpelatihan
132 Web Service Kepegawaian pegawai.statusLogin
133 Web Service Kepegawaian pegawai.updatestatusLogin
134 Web Service Kepegawaian pegawai.inputpegawai
135 Web Service Kepegawaian pegawai.inputmlembaga
136 Web Service Kepegawaian pegawai.inputkeluar
137 Web Service Kepegawaian pegawai.inputpensiun
138 Web Service Kepegawaian pegawai.inputkjabatan
139 Web Service Kepegawaian pegawai.inputpelatihan
140 Web Service Kepegawaian pegawai.inputabsen
141 Web Service Kepegawaian pegawai.inputbagian
142 Web Service Kepegawaian pegawai.inputjabatan
143 Web Service Kepegawaian pegawai.inputseksi
144 Web Service Kepegawaian pegawai.inputgolongan
145 Web Service Kepegawaian pegawai.inputrpendidikan
146 Web Service Kepegawaian pegawai.inputpkerja
147 Web Service Kepegawaian pegawai.getPegawaibyidbagian
148 Web Service Kepegawaian pegawai.getLogin
149 Web Service Kepegawaian pegawai.cekEmail
150 Web Service Kesantrian santri.getSantriById
151 Web Service Kesantrian santri.getSantriByTahunMasuk
152 Web Service Kesantrian santri.getSantriByTahunLulus
153 Web Service Kesantrian santri.getGelombang
154 Web Service Kesantrian santri.getGelombangByStatus
155 Web Service Kesantrian santri.getSantri
156 Web Service Kesantrian santri.getAlumni
85
No. Nama Web Service Operation Name
157 Web Service Kesantrian santri.getSantriByFactory
158 Web Service Kesantrian santri.getSantriByJenis
159 Web Service Kesantrian santri.getSantriAll
160 Web Service Kesantrian santri.deleteSantri
161 Web Service Kesantrian santri.updatePsbSekolah
162 Web Service Kesantrian santri.updateDeletePsbSekolah
163 Web Service Kesantrian santri.getAlumniById
164 Web Service Kesantrian santri.getAlumniByName
165 Web Service Kesantrian santri.getAyah
166 Web Service Kesantrian santri.getAyahById
167 Web Service Kesantrian santri.getAyahByName
168 Web Service Kesantrian santri.getAyahByJob
169 Web Service Kesantrian santri.getIbu
170 Web Service Kesantrian santri.getIbuById
171 Web Service Kesantrian santri.getIbuByName
172 Web Service Kesantrian santri.getIbuByJob
173 Web Service Kesantrian santri.getWali
174 Web Service Kesantrian santri.getWaliById
175 Web Service Kesantrian santri.getWaliByName
176 Web Service Kesantrian santri.getWaliByJob
177 Web Service Kesantrian santri.deleteAyah
178 Web Service Kesantrian santri.updateAyah
179 Web Service Kesantrian santri.deleteIbu
180 Web Service Kesantrian santri.updateIbu
181 Web Service Kesantrian santri.deleteWali
182 Web Service Kesantrian santri.updateWali
183 Web Service Kesantrian santri.getAnggotaOrganisasi
184 Web Service Kesantrian santri.getPendaftar
185 Web Service Kesantrian santri.getasrama
186 Web Service Kesantrian santri.getPendaftarAll
187 Web Service Kesantrian santri.insertGelombang
188 Web Service Kesantrian santri.insertasrama
189 Web Service Kesantrian santri.updateGelombang
190 Web Service Kesantrian santri.deleteGelombang
191 Web Service Kesantrian santri.insertAlumni
192 Web Service Kesantrian santri.getOrganisasi
193 Web Service Kesantrian santri.gettblSekolah
194 Web Service Kesantrian santri.gettblSekolahCalon
195 Web Service Kesantrian santri.insertOrganisasi
196 Web Service Kesantrian santri.getIDOrg
86
No. Nama Web Service Operation Name
197 Web Service Kesantrian santri.getnodaftar
198 Web Service Kesantrian santri.getLogin
199 Web Service Kesantrian santri.deleteOrg
200 Web Service Kesantrian santri.updateOrg
201 Web Service Kesantrian santri.insertPendaftar
202 Web Service Kesantrian santri.cobaProsedur
203 Web Service Kesantrian santri.insertSantri
204 Web Service Kesantrian santri.updatetblSekolah
205 Web Service Kesantrian santri.insertDepCalon
206 Web Service Kesantrian santri.setpwddaftar
207 Web Service Keuangan keuangan_execute.add_buku
208 Web Service Keuangan keuangan_execute.update_buku
209 Web Service Keuangan keuangan_execute.updtedtthbk
210 Web Service Keuangan keuangan_execute.updtthbk
211 Web Service Keuangan keuangan_execute.delete_buku
212 Web Service Keuangan keuangan_execute.ins_apem
213 Web Service Keuangan keuangan_execute.ins_apk
214 Web Service Keuangan keuangan_execute.edt_apu
215 Web Service Keuangan keuangan_execute.edt_apk
216 Web Service Keuangan keuangan_execute.edt_app
217 Web Service Keuangan keuangan_execute.edt_apl
218 Web Service Keuangan keuangan_execute.del_agr
219 Web Service Keuangan keuangan_execute.ins_akeg
220 Web Service Keuangan keuangan_execute.ins_akel
221 Web Service Keuangan keuangan_execute.edt_akeg
222 Web Service Keuangan keuangan_execute.edt_akel
223 Web Service Keuangan keuangan_execute.ins_spp_bln
224 Web Service Keuangan keuangan_execute.ins_tma
225 Web Service Keuangan keuangan_execute.ins_tmp
226 Web Service Keuangan keuangan_execute.ins_tka
227 Web Service Keuangan keuangan_execute.ins_tkh
228 Web Service Keuangan keuangan_execute.ins_tkl
229 Web Service Keuangan keuangan_execute.ins_tmd
230 Web Service Keuangan keuangan_execute.ins_tmh
231 Web Service Keuangan keuangan_execute.ins_tkp
232 Web Service Keuangan keuangan_execute.edt_nt
233 Web Service Keuangan keuangan_execute.edt_st_agr
234 Web Service Keuangan keuangan_execute.h_edit
235 Web Service E-Document edocument.insertbidang
236 Web Service E-Document edocument.updatebidang
87
No. Nama Web Service Operation Name
237 Web Service E-Document edocument.deletebidang
238 Web Service E-Document edocument.insertjabatan
239 Web Service E-Document edocument.updatejabatan
240 Web Service E-Document edocument.updateseksi
241 Web Service E-Document edocument.deletejabatan
242 Web Service E-Document edocument.insertuser
243 Web Service E-Document edocument.insertseksi
244 Web Service E-Document edocument.inserttipeuser
245 Web Service E-Document edocument.loginedocument
246 Web Service E-Document edocument.tabelpesan
247 Web Service E-Document edocument.bacapesan
248 Web Service E-Document edocument.insertpesan
249 Web Service E-Document edocument.deletepesan
250 Web Service E-Document edocument.deletepesansemua
251 Web Service E-Document edocument.useredocument
252 Web Service E-Document edocument.useredocumentbyname
253 Web Service Perencanaan Produksi sipp.getTajar
254 Web Service Perencanaan Produksi sipp.getFac
255 Web Service Perencanaan Produksi sipp.getKelas
256 Web Service Perencanaan Produksi sipp.getmapel
257 Web Service Perencanaan Produksi sipp.getsemester
258 Web Service Perencanaan Produksi sipp.getmaterial
259 Web Service Perencanaan Produksi sipp.getguru
260 Web Service Perencanaan Produksi sipp.getjam
261 Web Service Perencanaan Produksi sipp.getjadwal
262 Web Service Perencanaan Produksi sipp.getjadwal2
263 Web Service Perencanaan Produksi sipp.getbkguru
264 Web Service Perencanaan Produksi sipp.getbkguru2
265 Web Service Perencanaan Produksi sipp.getRuang
266 Web Service Perencanaan Produksi sipp.getKamar
267 Web Service Perencanaan Produksi sipp.getGedung
268 Web Service Perencanaan Produksi sipp.getdaftarruang
269 Web Service Perencanaan Produksi sipp.getdaftarguru
270 Web Service Perencanaan Produksi sipp.getsaranakelas
271 Web Service Perencanaan Produksi sipp.getsaranakelas2
272 Web Service Perencanaan Produksi sipp.getsaranakelas3
273 Web Service Perencanaan Produksi sipp.gettingkatkelas
274 Web Service Perencanaan Produksi sipp.gettingkatan
275 Web Service Perencanaan Produksi sipp.getKuota
88
No. Nama Web Service Operation Name
276 Web Service Perencanaan Produksi sipp.getbomachine
277 Web Service Perencanaan Produksi sipp.getbkruang
278 Web Service Perencanaan Produksi sipp.getbkmachine
279 Web Service Perencanaan Produksi sipp.getbomkat
280 Web Service Perencanaan Produksi sipp.getbom
281 Web Service Perencanaan Produksi sipp.getbom_lapor
282 Web Service Perencanaan Produksi sipp.getjumkat
283 Web Service Perencanaan Produksi sipp.getjumat
284 Web Service Perencanaan Produksi sipp.getjumachine
285 Web Service Perencanaan Produksi sipp.getbomkat2
286 Web Service Perencanaan Produksi sipp.getbomkat3
287 Web Service Perencanaan Produksi sipp.getbomachined
288 Web Service Perencanaan Produksi sipp.getbomed
289 Web Service Perencanaan Produksi sipp.getboped
290 Web Service Perencanaan Produksi sipp.getsilabus
291 Web Service Perencanaan Produksi sipp.getsks
292 Web Service Perencanaan Produksi sipp.getbop
293 Web Service Perencanaan Produksi sipp.getbop2
294 Web Service Perencanaan Produksi sipp.getsarsed
295 Web Service Perencanaan Produksi sipp.getmarsed
296 Web Service Perencanaan Produksi sipp.getgursed
297 Web Service Perencanaan Produksi sipp.getroutingmapel
298 Web Service Perencanaan Produksi sipp.getroutingkegiatan
299 Web Service Perencanaan Produksi sipp.getpengadaansarana
300 Web Service Perencanaan Produksi sipp.getpengadaanmat
301 Web Service Perencanaan Produksi sipp.getpengadaanguru
302 Web Service Perencanaan Produksi sipp.getkebguru
303 Web Service Perencanaan Produksi sipp.addpengadaansarana
304 Web Service Perencanaan Produksi sipp.addpengadaanmat
305 Web Service Perencanaan Produksi sipp.addpengadaanguru
306 Web Service Perencanaan Produksi sipp.addKuota
307 Web Service Perencanaan Produksi sipp.addbomkat
308 Web Service Perencanaan Produksi sipp.addbom
309 Web Service Perencanaan Produksi sipp.addbop
310 Web Service Perencanaan Produksi sipp.upbomkat
311 Web Service Perencanaan Produksi sipp.upkuota
312 Web Service Perencanaan Produksi sipp.upbom
313 Web Service Perencanaan Produksi sipp.upbkmachine
314 Web Service Perencanaan Produksi sipp.upbkruang
89
No. Nama Web Service Operation Name
315 Web Service Perencanaan Produksi sipp.updatermapel
316 Web Service Perencanaan Produksi sipp.updaterkegiatan
317 Web Service Perencanaan Produksi sipp.delbomkat
318 Web Service Perencanaan Produksi sipp.delrmapel
319 Web Service Perencanaan Produksi sipp.delrkegiatan
320 Web Service Perencanaan Produksi sipp.addbomachine
321 Web Service Perencanaan Produksi sipp.addbkmachine
322 Web Service Perencanaan Produksi sipp.addbkruang
323 Web Service Perencanaan Produksi sipp.addbkguru
324 Web Service Perencanaan Produksi sipp.addrmapel
325 Web Service Perencanaan Produksi sipp.addrkegiatan
326 Web Service Perencanaan Produksi sipp.addsaranakelas
327 Web Service Pengadaan pengadaan.getPengadaan
328 Web Service Pengadaan pengadaan.getPengadaanStatusB
329 Web Service Pengadaan pengadaan.getPengadaanStatusD
330 Web Service Pengadaan pengadaan.getStatus
331 Web Service Pengadaan pengadaan.add_pengadaan
332 Web Service Pengadaan pengadaan.add_status
333 Web Service Pengadaan pengadaan.update_status