Analisis dan Perancangan Software Perhitungan Metrik Skala dan Kompleksitas Web Service
Rizki Fitriani 1,* , Abd. Qohar Agus Maulana 2 , Lingga Wahyu Rochim 3 , Muhammad Ainul Yaqin 4
Jurusan Teknik Informatika, Universitas Islam Negeri Maulana Malik Ibrahim, Indonesia
1 fitriarizki2805@gmail.com; 2 abdulqoheng@gmail.com; 3 linggawahyurochim@gmail.com; 4 yaqinov@ti.uin- malang.ac.id * corresponding author

## PENDAHULUAN
Pada  era  revolusi  industri  4.0  ini,  perkembangan  teknologi  dan  informasi  berkembang begitu cepat. Dengan perkembangan teknologi yang sangat pesat ini, kehidupan masyarakat sering  kali  terbantu  seperti  halnya  mendapatkan  informasi  melalui website .  Hal  ini memungkinkan banyaknya website - website baru yang bermunculan dan tidak sedikit pula website yang menggunakan Web Service . Hal ini dikarenakan Web Service mempermudah suatu  komunikasi  antar  komponen  perangkat  lunak  jarak  jauh  menggunakan  jaringan internet. Ketika World Wide Web diciptakan pada awal 1990-an, tujuan utamanya adalah berbagi  dokumen  di  antara  orang-orang,  sebagian  besar  di  komunitas  ilmiah  dan  militer. Sejak  saat  itu,  penggunaan  Web  terus  berkembang  secara  luar  biasa.  Meningkatnya popularitas Web  Service yang  didasarkan  pada  teknologi eXtensible  Markup  Language (XML)  membuat  para developer Web  Service melakukan  kegiatan  penelitian  untuk mengadopsi pelaksanaan terbaik  penerapan Web  Service dan menemukan cara  yang lebih
I N F O A R T I K E L

## A B S T R A K

## Sejarah Artikel
Diterima: 3 Oktober 2019 Direvisi: 15 Februari 2020 Diterbitkan: 30 April 2020 Aplikasi  komputer  meningkat  jumlahnya  dan  menjadi  lebih  kompleks seiring dengan pertumbuhan bisnis dan ilmu pengetahuan. Dalam hal ini, pengelolaan  dan  integrasi  data  menjadi  sangat  penting.  Pengembangan Web  Service semakin  meningkat.  Pengembang Web  Service membutuhkan banyak data riset dan referensi  mengenai  kompleks atau tidaknya  suatu Web  Service berkaitan  dengan  perkiraan  biaya pengembangan,  batasan  waktu  pengerjaan,  dan  sumber  daya  yang dibutuhkan  untuk  pengembangan,  termasuk  spesifikasi  komputer  dan sumber daya manusianya. Setiap pengukuran yang dilakukan dibutuhkan tersedianya ukuran kuantitatif yang disebut metrik, yang selanjutnya akan menghasilkan output berupa kompleksitas dari Web Service . Atas dasar itu,  diperlukan  sebuah  perangkat  lunak  yang  dapat  menghitung  metrik skala dan kompleksitas Web Service dengan cara meng- import file bertipe xml  document dan  berisi  dokumen  WSDL  ( Web  Service Description Language)  yang  digunakan  untuk  menggambarkan  kompleksitas Web Service berdasarkan pengukuran Data Weight (DW) yang dihitung dari bobot Argument per Operation (APO) dan Operation per Service (OPS) . Dari percobaan perhitungan kami secara manual terhadap suatu dokumen WSDL,  dimunculkan  beberapa  hasil  berupa  banyaknya  argumen,  OPS, dan APO. Hal ini kami terapkan pada perangkat lunak dan menghasilkan proses  perhitungan  yang  lebih  cepat.  Pengguna  dapat  meng- import document  tipe  .xml  dan  hasil  kompleksitas Web  Service akan dimunculkan  dalam  aplikasi. Ukuran  metrik  dan  kompleksitas  yang diperoleh dapat digunakan untuk memperkirakan manajemen pengembangan Web Service .
Kata Kunci Metrik Kompleksitas
Software Web Service WSDL XML
Vol. 2, No. 1, April 2020, Halaman 37-53
efektif untuk mengelola Web Service [1]. Aliran data antar pengguna harus dikelola dengan baik untuk memberikan konsistensi dalam pertukaran data antara aplikasi melalui pesan.
Sebelum hal tersebut dilakukan, perlu dilakukan perhitungan metrik skala. Metrik skala Web  Service adalah  bobot  atau  besaran  yang  digunakan  untuk  menghitung  tingkat kompleksitas Web  Service berdasarkan  poin-poin  tertentu.  Tingkat  kompleksitas  layanan Web  dapat  diukur  dengan  menganalisis  dokumen  WSDL  karena  WSDL  menyediakan deskripsi Web  Service .  Namun,  WSDL  tidak  mengandung  informasi  tentang  detail implementasi Web Service , maka yang dapat diukur hanya kompleksitas data Web Service . Kompleksitas  data  dari Web  Service dapat  didefinisikan  sebagai  kompleksitas  data  yang mengalir  ke  dan  dari  antarmuka Web  Service dan  dapat  dicirikan  dengan  upaya  yang diperlukan untuk memahami struktur pesan yang memiliki tanggung jawab untuk bertukar dan menyampaikan data. Dalam hal ini, akan dianalisis struktur message untuk mengukur kompleksitas data Web Service melalui metode pengukuran Data Weight terhadap WSDL [2].
Meskipun banyak metrik perangkat lunak telah dipelajari selama beberapa dekade untuk meningkatkan kualitas perangkat lunak, namun masih sedikit penelitian yang telah dilakukan untuk mengembangkan metrik untuk Web Service sehingga pengembang Web Service akan mengalami  kekurangan  data  dan  referensi  dalam  pemeliharaan Web  Service maupun pengembangan Web  Service selanjutnya  [3].  Pengembang Web  Service membutuhkan banyak  data  riset  dan  referensi  mengenai  kompleks  atau  tidaknya  suatu Web  Service berkaitan dengan perkiraan biaya pengembangan [4], batasan waktu pengerjaan, dan sumber daya  yang  dibutuhkan  untuk  pengembangan,  termasuk  spesifikasi  komputer  dan  sumber daya  manusianya  [5].  Setiap  pengukuran  yang  dilakukan  dibutuhkan  tersedianya  ukuran kuantitatif  yang  disebut  metrik,  yang  selanjutnya  akan  menghasilkan  output  berupa kompleksitas dari Web Service [6]. Hal ini menjadi kendala sekaligus motivasi utama untuk meneliti lebih lanjut metrik yang berguna untuk penilaian kualitas kompleksitas Web Service dan  mengaplikasikannya  dalam  bentuk software agar  lebih  mudah  digunakan  dan meminimalisir waktu perhitungan metrik skala dan kompleksitas Web Service .
Web  Service adalah  generasi  baru  dari  aplikasi  web. Web  Service bersifat  mandiri, menggambarkan diri sendiri, aplikasi modular  yang dapat dipublikasikan, ditemukan, dan dipanggil di seluruh Web. Web Service menjalankan fungsi, yang bisa berupa apa saja dari permintaan sederhana hingga proses bisnis yang rumit [7]. Web Service sebagai jenis baru aplikasi  web  menyediakan  mekanisme  standar  umum  untuk  integrasi  sistem-sistem  yang berbeda dan telah dapat  diterima secara luas oleh berbagai jenis pihak yang  terhubung ke internet  untuk  tujuan  yang  berbeda  [2]. Web  Service sendiri  menyimpan  data  informasi dalam format XML, sehingga data tersebut  dapat  diakses melalui platform yang berbeda, sistem  operasi  yang  berbeda  ataupun  bahasa  pemrograman  yang  berbeda. Web  Service didasarkan  pada  kumpulan  standar  dan  protokol  yang  memungkinkan  untuk  membuat permintaan  pemrosesan  ke  sistem  jarak  jauh  dengan  bahasa  umum  dan  menggunakan protokol  transportasi  umum  seperti  HTTP  dan  SMTP. Web  Service merepresentasikan pendekatan  pemrograman  baru  berdasarkan  pada  model  berorientasi  dokumen  yang dirancang  untuk  interoperabilitas  di  tingkat  dokumen,  yang  disebut  XML. Web  Service diimplementasikan  menggunakan  kumpulan  beberapa  teknologi  terkait  dan  yang  muncul dan protokol komunikasi yang mencakup HTTP, XML, Simple Object Application Protocol (SOAP)  [8,  9],  Universal  Description  Discovery  and  Integration  (UDDI),  Web  Services Description  Language  (WSDL),  Common  Object  Request  Broker  Architecture  (CORBA), Java Remote Method Invocation (RMI), dan NET [10].
Model  layanan  web  terdiri  dari  tiga  entitas,  penyedia  layanan,  registrasi  layanan,  dan konsumen  layanan.  Gambar  1  menunjukkan  representasi  grafis  dari  model Web  Service tradisional:
Gambar 1. Model Web Service
Pada Gambar 1, digambarkan penyedia layanan membuat atau hanya menawarkan Web Service . Penyedia layanan perlu menjelaskan Web Service dalam format standar, yaitu XML dan menerbitkannya di pusat Layanan Registrasi. Pusat Layanan Registrasi layanan berisi informasi  tambahan  tentang  penyedia  layanan,  seperti  alamat  dan  kontak  perusahaan penyedia,  dan  rincian  teknis  tentang  layanan.  Konsumen  mengambil  informasi  dari  pusat Layanan Registrasi dan menggunakan deskripsi layanan yang diperoleh untuk mengikat dan meminta layanan Web Service .
Meskipun  teknologi Web  Service telah  diadopsi  oleh  vendor  perangkat  lunak  besar, seperti  IBM,  Microsoft,  Oracle,  Borland,  dan  menghasilkan  sejumlah  besar  kegiatan penelitian, masih diperlukan penelitian pada metrik Web Service . Sebagian besar pekerjaan difokuskan pada kualitas layanan. Pekerjaan lain difokuskan pada proyeksi metrik yang ada untuk komponen perangkat lunak berorientasi objek [1] pada sistem Layanan Web, karena layanan  web  sebagian  besar  dihasilkan  dari Object  Oriented  Programming (OOP)  atau Pemrograman Berorientasi Objek. Metrik Web Service sangat berguna untuk pengembang, penyedia,  dan  pengguna.  Pengembang  akan  menggunakan  metrik  untuk  mengelola  dan mengendalikan  cara  terbaik  untuk  mengimplementasikan  sistem.  Penyedia  layanan  dapat menggunakan  metrik  untuk  memastikan  layanan  berjalan  sesuai  dengan  langkah-langkah yang ditetapkan, dan pengguna dapat menggunakan metrik tertentu untuk memilih penyedia service atau  layanan  terbaik.  Jadi,  penggunaan  metrik  akan  sangat  mungkin  berbeda berdasarkan  siapa  yang  menggunakannya,  dan  masing-masing  mungkin  akan  memiliki persyaratan dan tingkat kepentingan yang berbeda.

## METODE
Berdasarkan  penelitian  yang  kami  lakukan,  Metrik Web  Service dapat  dihitung menggunakan bobot dokumen WSDL dan Skema XML [3].

## Dokumen WSDL
Semua informasi  yang diperlukan untuk meminta Web Service harus diuraikan dengan jelas  dan  tersedia  agar  konsumen  atau  pengguna  dapat  dengan  mudah  mengakses  dan memproses informasi tentang layanan tersebut. Untuk tujuan ini Web Service s Description Language  menyediakan  model  dan  format  XML  untuk  menggambarkan Web  Service s. WSDL 1.1 diajukan ke W3C pada akhir 2001, dan Web Service Description Working Group W3C  dibentuk  pada  awal  2002  untuk  menstandarisasi  WSDL.  WSDL  2.0  adalah  versi standar  WSDL  yang  mencakup  perubahan  dan  peningkatan  signifikan.  Dengan  membuat dokumen WSDL, pemilik Web Service dapat memisahkan deskripsi fungsionalitas abstrak
Vol. 2, No. 1, April 2020, Halaman 37-53
yang ditawarkan oleh layanan dari detail konkrit deskripsi layanan seperti "bagaimana" dan "di mana" ditawarkan fungsionalitas itu. Ketika integrasi beragam aplikasi ditujukan, Web Service yang terekspos harus dirancang untuk memiliki persetujuan yang ringkas dan jelas tentang  spesifikasi  umum  dari  protokol  dan  sistem  tipe  data  yang  dapat  digunakan  oleh beragam bahasa pemrograman untuk bekerja dengan cara yang dapat dioperasikan. Format pesan  atau message yang  dipertukarkan  antara  penyedia  layanan  dan  konsumen  harus didefinisikan dengan baik sehingga pengirim pesan dapat dengan mudah membangun dan penerima pesan dapat dengan mudah memproses. Penggunaan dokumen WSDL dan Skema XML diamanatkan untuk menggambarkan layanan Web. Dengan cara ini, interoperabilitas pada lapisan deskripsi layanan dapat dipahami dengan pasti.

## Skema XML
Seperti yang telah disebutkan, aliran data antar aplikasi harus dijaga dengan baik untuk memberikan konsistensi dalam data aplikasi yang disampaikan oleh pesan input dan output dari Web  Service dalam  interaksi.  Untuk  menyediakan  sistem  tipe  data  umum  dan  untuk mewakili data aplikasi, dokumen WSDL didukung oleh Skema XML yang diimpor ke atau disematkan ke dalam dokumen WSDL dan dienkapsulasi oleh <types> konstruksi WSDL. Mewakili  data  aplikasi  dengan skema memerlukan pengambilan keputusan strategis  yang mempertimbangkan  beberapa  masalah  desain  yang  harus  ditangani  pada  waktu  desain, seperti kinerja, ekstensibilitas, penggunaan kembali, akses data, dan lain sebagainya [18].
Dalam  konteks  XML,  representasi  data  dibuat  dengan  merancang  skema  yang  dapat ditulis dalam berbagai bahasa skema XML seperti DTD, W3C XML Schema, dan RELAX. W3C XML Schema dan DTD adalah bahasa skema adalah  yang paling sering digunakan untuk menghasilkan dokumen XML. Namun, menyebarkan dokumen XML adalah masalah tantangan  untuk  aplikasi  yang  tidak  menggunakan  teknologi  skema  pendukung.  Agar dokumen  XML  dapat  memberikan  pemahaman  umum  tentang  pertukaran  data  antara aplikasi, dokumen XML ini harus divalidasi terhadap definisi skema XML (XSD). Aspek nyata yang paling penting dari skema XML adalah bahwa skema XML menentukan kontrak antara  aplikasi  perangkat  lunak  atau  antara  bagian  dari  aplikasi  perangkat  lunak.  Dalam aplikasi  web  terdistribusi  besar,  gagasan  kontrak  memberikan  banyak  manfaat  seperti menyederhanakan  modularisasi,  alokasi  sumber  daya,  pengujian,  dan  penyebaran. Menggunakan  skema  tidak  hanya  memberikan  pemahaman  umum  tentang  data  yang dipertukarkan  tetapi  juga  kemampuan  metode  akses  mudah  untuk  dokumen  XML  untuk divalidasi.  Dengan  suksesnya  desain  dan  implementasi  skema,  para  pengembang  dapat memiliki  kemampuan  untuk  meningkatkan  produktivitas,  meningkatkan  keandalan perangkat  lunak,  meminimalkan  waktu  pengembangan,  dan  mengurangi  waktu  untuk penyebaran  ke  pasar.  Mengabaikan  skema  menyiratkan  bahwa  validator  skema  tidak digunakan untuk menentukan apakah dokumen XML yang diberikan memenuhi data yang diinginkan  untuk  diangkut  antar  aplikasi.  Dalam  kasus  ini,  pemeriksaan  yang  diperlukan harus  dilakukan  oleh  program  aplikasi  yang  menyiratkan  bahwa developer aplikasi  harus menulis kode yang panjang. Semua pertimbangan ini menyiratkan bahwa, keputusan dalam desain skema XML untuk mewakili data aplikasi yang dipertukarkan dapat mempengaruhi pemahaman  pesan  yang  dipertukarkan  yang  dijelaskan  dalam  dokumen  WSDL  dan pemahaman layanan Web yang ditentukan oleh dokumen WSDL [19].

## Perhitungan Metrik
Dalam perangkat lunak pengukuran metrik skala dan kompleksitas Web Service , metode yang  diterapkan  adalah  membandingkan Web  Service dengan  komponen  perangkat  lunak lainnya  dengan  mengadopsi  beberapa  metrik  yang  ada  ke  dokumen  WSDL,  yang dikembangkan  untuk  mengukur  kompleksitas  antarmuka  komponen  perangkat  lunak  [8].
Vol. 2, No. 1, April 2020, Halaman Halaman 37-53
Bagian-bagian  yang  dihitung  dalam  penghitungan  metrik  skala  dan  kompleksitas Web Service berdasarkan dokumen WSDL adalah sebagai berikut:
1. Argument per Operation (APO)
Argument per  Operation  adalah  jumlah argument yang  diberikan  (n a )  dibagi dengan  jumlah  total  operasi  (n o )  yang  dijelaskan  dalam  WSDL  digunakan  untuk mengukur ukuran Web Service dan didefinisikan sebagai:
(1)

## 2. Operation per Service (OPS)
Serupa dengan operasi OO metrik WMC (Weight Method Per Class) per layanan didefinisikan  sebagai  jumlah  total  operasi  yang  dinyatakan  oleh PortType Web Service dan dimaksudkan untuk mengukur ukuran dokumen WSDL yang diberikan [12].
3. Data Weight WSDL (DW(wsdl)) Data Weight dari WSDL yang diberikan dapat didefinisikan sebagai jumlah dari kompleksitas data dari setiap pesan input dan output . Dengan menganalisis struktur pesan ( message ) yang berisi argument yang diambil oleh operation dari Web Service , kita  dapat  mengukur  kompleksitas  data  setiap  pesan.  Secara  intuitif,  orang  dapat menganggap  bahwa  ketika  jumlah  operasi  dan  jumlah argument meningkat,  maka pemahaman layanan Web menjadi lebih sulit. Metrik APO ( Argument per Operation) dan  OPS  (Operation  per  Service)  dimaksudkan  untuk  mengukur  kompleksitas antarmuka Web  Service yang  diberikan  [12].  Namun,  hal  ini  tidak  selalu  terjadi karena argument mungkin  memiliki  struktur  tipe  data  yang  berbeda  yang diungkapkan  oleh  komponen  skema  XSD  dan  mungkin  memerlukan  usaha  yang berbeda  untuk  memahami.  Untuk  mengukur  kompleksitas  data  dari  pesan  yang diberikan,  kompleksitas  data  dievaluasi  dari  elemen-elemen  bagiannya  yang menggambarkan argument .  Kompleksitas  data  dari  setiap  elemen  bagian  dapat tercermin dengan menetapkan Data Weight yang didasarkan pada kompleksitas dari struktur  data argument .  Arsitektur  internal,  tingkat  kerumitan  elemen,  tipe  yang didefinisikan atau dideklarasikan dalam skema XSD dapat bervariasi dan diberi nilai bobot  terkait  kompleksitasnya.  Karena  komponen  XSD  ini  dikaitkan  dengan argument untuk menggambarkan struktur data argument , penting untuk menetapkan nilai  bobot  untuk argument yang  sama  dengan  nilai  bobot  komponen  XSD  yang terkait sehingga kompleksitas argument dari struktur datanya akan tampak. Dengan menjumlahkan  nilai  bobot  setiap  elemen  bagian  yang  dimiliki  oleh  konstruksi message WSDL,  data  kompleksitas message dapat  dievaluasi.  Akibatnya,  total kompleksitas  data  dari  WSDL  dapat  dievaluasi  dengan  merangkum  kompleksitas data dari semua message . Selanjutnya digunakan metrik Data Weight of WSDL (DW (wsdl))  untuk  mengetahui  kompleksitas  data  dokumen  WSDL,  yaitu  upaya  yang diperlukan untuk memahami tipe data dari argument yang diambil oleh operasi yang disediakan oleh Web Service [20].
Diberikan  dokumen  WSDL  yang  memiliki  total message sejumlah  n m ,  bobot  metrik WSDL didefinisikan sebagai:
(2)
C(M i ) =  nilai kompleksitas message ke-i dan dapat dievaluasi oleh:
(3)
Dimana n p adalah jumlah total elemen <part> yang dienkapsulasi oleh konstruksi pesan atau message yang diberikan, dan merupakan nilai bobot dari <part> ke-i definisi pesan yang ditukarkan.
Argument yang  terkandung  oleh  elemen  bagian  dari  pesan  dikaitkan  dengan  definisi elemen atau deklarasi atau tipe definisi skema XSD. Karena setiap definisi elemen atau tipe dalam skema XSD ditetapkan ke nilai bobot yang mencerminkan tingkat kerumitannya dan dikaitkan dengan argument , wp i memiliki nilai bobot yang sama dengan definisi elemen atau tipe yang terkait dari skema XSD. Sehingga:
wp = we , jika <part> mempunyai elemen yang berhubungan dengan skema deklarasi elemen
= wt, jika <part> mempunyai tipe yang berhubungan dengan skema definisi elemen
= 0, jika pesan atau message tidak mengandung elemen <part> di mana we adalah nilai bobot dari deklarasi elemen terkait dan, wt adalah nilai bobot dari definisi  tipe  terkait  dalam  skema  XSD  yang  disematkan  atau  diimpor  ke  WSDL. Kompleksitas setiap definisi tipe dalam skema berbeda sesuai dengan strukturnya. Maka: wt = wc , jika <type> adalah definisi tipe kompleks
= ws , jika <type> adalah definisi tipe sederhana

## Pengembangan Software
Dalam pengembangan software perhitungan metrik skala dan kompleksitas Web Service , kami menerapkan metode dari Model Waterfall . Waterfall atau sering juga di sebut dengan model klasik yang bersifat sistematis, berurutan dalam membangun software , model ini juga seringkali disebut dengan sekuensial linier atau alur hidup klasik [13],[14],[15].
Vol. 2, No. 1, April 2020, Halaman Halaman 37-53

## Perencanaan
Dalam perencanaan pembangunan software perhitungan metrik skala dan kompleksitas Web  Service ,  kami  melakukan  penelitian  studi  literasi  pada  situs-situs  riset  dan  ilmiah, seperti  jurnal,    artikel,    dan    internet,  untuk  mendapatkan  data  dan  informasi  mengenai penghitungan metrik skala dan kompleksitas Web Service . Selain itu, diskusi juga dilakukan oleh beberapa orang untuk bertukar informasi  dan ide melalui  tanya  jawab,  sehingga  dapat dikonstruksikan  makna  dalam  suatu  topik  tertentu.  Pengumpulan  informasi  dengan  cara mengajukan  sejumlah  pertanyaan secara  lisan  dan  dijawab  secara lisan oleh pihak-pihak terkait  demi  memahami    dan    mencapai    tujuan  yang    ingin    dicapai.    Hasilnya    adalah inisialisasi  proyek,  seperti menganalisis  permasalahan  yang dihadapi  dan  mengumpulkan data-data    yang    diperlukan    serta  membantu  mendefinisikan  fitur  dan  fungsi software . Selanjutnya,  didefinisikan  setiap  proses,  mulai  dari input, proses  perangkat  lunak  dalam menganalisis Data Weight , dan output dari perangkat lunak.

## Analysis (Analisis)
Layanan sistem, kendala, dan tujuan ditetapkan oleh hasil konsultasi dengan pengguna yang kemudian didefinisikan secara rinci dan berfungsi sebagai spesifikasi sistem [16].

## Design (Perancangan)
Tahapan  perancangan  sistem  mengalokasikan  kebutuhan-kebutuhan  perangkat  lunak dengan  membentuk  arsitektur  sistem  secara  keseluruhan.  Perancangan  perangkat  lunak melibatkan  identifikasi  dan  penggambaran  abstraksi  sistem  dasar  perangkat  lunak  dan hubungannya [16].

## Implementation (Implementasi)
Pada tahap ini, perancangan perangkat lunak direalisasikan sebagai serangkaian program atau  unit  program.  Pengujian  melibatkan  verifikasi  bahwa  setiap  unit  memenuhi spesifikasinya [16].

## Maintenance (Pemeliharaan)
Tahapan  ini  merupakan  tahapan  yang  paling  panjang.  Perangkat  lunak  dipasang  dan digunakan  secara  nyata. Maintenance melibatkan  pembetulan  kesalahan  yang  tidak ditemukan  pada  tahapan-tahapan  sebelumnya,  meningkatkan  implementasi  dari  unit perangkat  lunak,  dan  meningkatkan  layanan  dan  fitur  perangkat  lunak  sebagai  kebutuhan baru [16].

## HASIL DAN PEMBAHASAN
Dalam  pembahasan  analisis  dan  perancangan software perhitungan  metrik  skala  dan kompleksitas Web  Service ,  kami  menerapkan  perhitungan  metrik  skala  dan  kompleksitas Web Service dengan menghitung Data Weight dari dokumen WSDL dan skema XML Web Service tersebut [17].

## Perhitungan Manual Metrik Skala dan Kompleksitas Web Service
Kami melakukan perhitungan metrik skala dan kompleksitas dari dokumen WSDL pada tautan berikut http://www.elguille.info/NET/WebServices/HolaMundoWebS.asmx. Jumlah argument (#A) dari WSDL dapat dihitung dari banyaknya input message dan output message dari dokumen WSDL tersebut:
Dapat  dilihat,  pada  dokumen  tersebut  terdapat  2 input  message dan  2 output  message . Sehingga,  jumlah argument dari  baris  kode  tersebut  adalah  4.  Selanjutnya,  untuk menghitung  jumlah  APO  ( Argument per  Operation)  dengan  (1),  maka  dibutuhkan  data jumlah OPS ( Operation per Service ) dimana jumlah tersebut dapat ditentukan dari banyak pendeklarasian <portType> pada dokumen WSDL.
Ditemukan  2  pendeklarasian  <portType>  pada  dokumen,  sehingga  jumlah  OPS didefinisikan sebagai 2. Maka, berdasarkan (1), APO bisa didefinisikan sebagai berikut:
Selanjutnya, dicari bobot data atau Data Weight dari dokumen WSDL dimana berdasarkan (2), maka DW(wsdl) didefinisikan sebagai wt karena part berupa <type> pada skema definisi elemennya.
..... <wsdl:portType name="HolaMundoWebSSoap"> <wsdl:operation name="Saludar"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/ws dl/">Devuelve la cadena Hola, Mundo</wsdl:documentation> <wsdl:input message="tns:SaludarSoapIn"/> <wsdl:output message="tns:SaludarSoapOut"/> </wsdl:operation> <wsdl:operation name="Saludo"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/ws dl/">
Devuelve Hola, seguido del nombre indicado en el parámetro. </wsdl:documentation> <wsdl:input message="tns:SaludoSoapIn"/> <wsdl:output message="tns:SaludoSoapOut"/> </wsdl:operation> </wsdl:portType> .....
..... <wsdl:portType name="HolaMundoWebSSoap"> ..... </wsdl:portType> .....
Berdasarkan  (7),  <type>  didefinisikan  sebagai  complexType  atau  tipe  kompleks, sehingga jumlah wt = wc dimana wc didefinisikan sebagai jumlah respon string <s:string>, yaitu 3.
Selanjutnya, banyaknya respon string dijumlahkan dengan banyaknya message berdasarkan baris kode di atas adalah 4. Sehingga, DW(wsdl) didefinisikan sebagai berikut:
..... <wsdl:types> <s:schema elementFormDefault="qualified" targetNamespace="elG uille"> <s:element name="Saludar"> <s:complexType/> </s:element> <s:element name="SaludarResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="SaludarResult" t ype="s:string"/> </s:sequence> </s:complexType> </s:element> <s:element name="Saludo"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="nombre" type="s: string"/> </s:sequence> </s:complexType> </s:element> <s:element name="SaludoResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="SaludoResult" ty pe="s:string"/> </s:sequence> </s:complexType> </s:element> </s:schema> </wsdl:types> .....
.....
<wsdl:message name="SaludarSoapIn">...</wsdl:message> <wsdl:message name="SaludarSoapOut">...</wsdl:message> <wsdl:message name="SaludoSoapIn">...</wsdl:message> <wsdl:message name="SaludoSoapOut">...</wsdl:message> .....
= C(“StringResponse”) + C(“Message”)
= 3 + 4 = 7
Tabel 1. Tabel Hasil jumlah Argument (#A), OPS, APO, dan DW(wsdl) ID Penghitungan Metrik Kompleksitas Web Service dengan Penghitungan DW Table column subhead #A OPS APO DW 1 http://www.banguat.gob.gt/variables/ws/BDEF.asmx 88 7 12.57 144 2 http://www.elguille.info/NET/WebServices/HolaMun doWebS.asmx 4 2 2.00 7 3 http://in2test.lsi.uniovi.es/sqlmutationws/SQLMutatio nWS.asmx 8 2 4.00 12 4 http://www.mathertel.de/AJAXEngine/S02_AJAXCo reSamples/CalcService.asmx 16 7 2.29 30 5 http://www.oorsprong.org/websamples.arendsoog/Ar endsoogbooksService.wso 33 8 4.13 55

## Use Case Diagram
Gambar 3. Use Case Diagram T abel 2. Keterangan use case diagram
No. Use Case Deskripsi 1. Melihat halaman home Merupakan proses menampilkan halaman home 2. Meng input kan file tipe .xml Merupakan proses import file dengan tipe .xml 3. Melihat hasil perhitungan kompleksitas Merupakan proses menampilkan hasil perhitungan kompleksitas Web Service
Vol. 2, No. 1, April 2020, Halaman Halaman 37-53

## Flowchart (Diagram Alur)
Setelah dilakukan percobaan secara manual, maka ditentukan alur penghitung metrik skala dan kompleksitas Web Service berdasarkan DW(wsdl) sebagai berikut:
Adapun alur proses dari aplikasi ini adalah pertama user di haruskan untuk meng- upload file XML yang akan di hitung kompleksitasnya. Selanjutnya, sistem akan mengecek apakah file yang di- upload oleh user tersebut adalah file berformat .xml atau bukan, jika bukan maka sistem akan menampilkan pop up yang isinya peringatan untuk file yang di upload haruslah berformat  .xml.  Selanjutnya,  file  .xml  yang  sudah  di upload oleh user tersebut  akan  di parsing pada  setiap  baris  dan  akan  disimpan  pada  suatu  ArrayList.  Lalu,  dengan  konsep looping sebanyak panjang ArrayList akan dilakukan perbandingan dengan mencari beberapa keyword antara lain “ input message”, “output message”, “<portType>”. “type = s:string”, dan “message name”.
Keyword “ input message”  dan  “output  message”  digunakan  untuk  mencari argument pada suatu file XML, ketika dalam perbandingan ditemukan keyword “ input message” dan “output  message”  maka  nilai  jumlah argument bertambah  satu. Keyword “<portType>” digunakan untuk mencari Operation Per Service (OPS) pada suatu file XML. Ketika dalam perbandingan di temukan keyword “<portType>”, maka nilai jumlah OPS bertambah satu. Keyword “type = s:string” digunakan untuk mencari request berupa respon string pada suatu file  XML.  Ketika  dalam  perbandingan  ditemukan keyword “type  =  s:string”,  maka  nilai jumlah request bertambah  satu. Keyword “message  name”  digunakan  untuk  mencari message pada  suatu  file  XML,  ketika  dalam  perbandingan  di  temukan keyword “wsdl:message name” maka nilai jumlah message bertambah satu.
Selanjutnya,  hasil  dari  perulangan  dan  perbandingan  di  atas  dapat  digunakan  untuk menghitung nilai #A, nilai OPS, nilai APO, dan DW(wsdl). Adapun rumus perhitungannya adalah sebagai berikut #A = jumlah argument
OPS = nilai jumlah OPS APO = #A / OPS
Secara sederhana, DW didefinisikan sebagai berikut: DW(wsdl)  = jumlah request + jumlah message
Dari hasil perhitungan di atas, dapat digunakan acuan apakah suatu file XML tersebut kompleks atau tidak, jika nilai DW(wsdl) / APO tidak kurang dari nilai APO itu sendiri maka file  tersebut  dapat  dikatakan  kompleks  dan  jika  sebaliknya  maka  file  tersebut  dikatakan belum kompleks.
Gambar 5. Class Diagram

## Prototype Perangkat Lunak
Gambar 6. Tampilan Awal Perangkat Lunak
Tampilan Gambar 6 menunjukkan halaman awal ketika perangkat lunak diaktifkan.
Gambar 7. Tampilan browser dokumen dari komputer
Tampilan Gambar 7 menunjukkan halaman dimana pengguna dapat mengimport file dari komputer.
Gambar 8. Tampilan browse dokumen dari komputer
Tampilan  Gambar  8  ini  menunjukkan  halaman  saat  pengguna  mengimport  file  dari komputer.
Gambar 9. Tampilan setelah file di import
Tampilan Gambar 9 ini menunjukkan halaman saat pengguna telah mengimport file dari komputer.
Gambar 10. Tampilan perhitungan argument
Tampilan  Gambar  10  menunjukkan  perhitungan argument dari  dokumen  WSDL  oleh perangkat lunak perhitungan metrik skala dan kompleksitas Web Service .
Gambar 11. Tampilan perhitungan Operation per Service
Tampilan  Gambar  11  menunjukkan  perhitungan  OPS  dari  dokumen  WSDL  oleh perangkat lunak perhitungan metrik skala dan kompleksitas Web Service .
Gambar 12. Tampilan hasil perhitungan Metrik Skala dan Kompleksitas Web Service
Tampilan  Gambar  12  menunjukkan  perhitungan  akhir  metrik  skala  dan  kompleksitas Web Service .
Dengan  menggunakan  sebuah software dalam  melakukan  perhitungannya,  maka  dapat menghindari terjadinya human error ketika dilakukan perhitungan secara manual.  Hal  ini sesuai  dengan  karakteristik  kualitas  perangkat  lunak,  yaitu reliability .  Reliability  adalah tingkat  dimana  suatu  aplikasi  dapat  mempertahankan  kinerja  pada  tingkat  tertentu  ketika digunakan dalam keadaan tertentu.

## KESIMPULAN
Berdasarkan  hasil  penelitian  mengenai  analisis  dan  perancangan software perhitungan matrik skala dan kompleksitas Web Service , dapat diambil kesimpulan sebagai berikut: 1) Sistem dapat menghitung jumlah argument , nilai OPS dan Data Weight WSDL (DW(wsdl)) sebuah  file  XML  yang  di- input- kan  oleh user .  2)  Sistem  juga  dapat  digunakan  dalam membandingkan  dua  atau  lebih Web  Service dari  dokumen  WSDL  berdasarkan  hasil perhitungan DW(wsdl) nya. 3) Perhitungan kompleksitas DW(wsdl) pada file XML dengan software perhitungan  metrik  skala  dan  kompleksitas Web  Service lebih  akurat.  Dengan menggunakan sebuah software dalam melakukan perhitungannya, maka dapat menghindari terjadinya human error ketika dilakukan perhitungan secara manual. Dalam penelitian ini, kami telah menganalisis perancangan software perhitungan metrik skalar dan kompleksitas Web Service yang  menyajikan metrik  yang berfokus pada message yang menggambarkan argument dan  operasi  untuk  menentukan  kompleksitas  data Web  Service .  Dengan mempertimbangkan  tingkat  kompleksitas  dari  setiap argument ,  kami  telah  mengevaluasi langkah-langkah  yang  dapat  memberikan feedback yang  berguna  bagi developer Web Service maupun pengguna Web Service pada umumnya.

## REFERENSI
[1] Daniel A. Menasce, Virgilio A.F. Almeida, “Capacity Planning for Web Service s: Metrics, Models, and Methods”, ISBN-10: 0130659037, ISBN-13: 9780130659033 Prentice Hall, 2001.
[2] Basci, D., & Misra, S, “Data complexity metrics for XML Web Service s”, Advances in Electrical and Computer Engineering , vol. 9(2), pp. 9–15, 2009.
[3] Aznag, M., Quafafou, M., Durand, N., & Jarir, Z., “ Web Service s Discovery and Recommendation Based on Information Extraction and Symbolic Reputation”, International Journal on Web Service Computing , vol. 4(1), pp. 1–18, 2013.
[4] Widyawati,  Priyambadha,  B.,  Pradana,  F.,  “Kakas  Bantu  Perhitungan  Kompleksitas  Perangkat  Lunak Menggunakan  Metrik  Cognitive  Weighted  Inherited  Class  Complexity”, Jurnal  Pengembangan Teknologi Informasi dan Ilmu Komputer, vol.  3(5), pp. 5201–5206, 2018.
[5] Widyaningtyas,  Y.,  Arwan,  A.,  &  Rusdianto,  D.  S.,  “Perhitungan  Ukuran  Kompleksitas  Fungsional Perangkat Lunak Dengan Metrik Function Point”, Teknologi , vol. 6(1), pp.38, 2016.
[6] Hapsari, R. K., Husen, M. J., “Estimasi Kualitas Perangkat Lunak Berdasarkan Pengukuran Kompleksitas Menggunakan  Metrik  Function  Oriented”, Seminar  Nasional  Sains  dan  Teknologi  Terapan  III  2015 Institut Teknologi Adhi Tama Surabaya.
[7] Riza, A., Anshori, M. A. I., Arrazy, F., and Yaqin, M. A., “Pengukuran Metrik Kompleksitas Web Service Sekolah”, Jurasik (Jurnal Riset Sistem Informasi Dan Teknik Informatika) , vol. 5(1), pp. 148, February 2020.
[8] Risdia Wulan, F., Ainul Yaqin, M., & Zaman, S., “Dekomposisi Web Service pada Enterprise Resource Planning Pondok Pesantren.”, Konferensi Nasional Sistem Informasi 2018 , vol. 8–9, 2018.
[9] Soni, A., & Ranga, V., “API features individualizing of Web Service s: REST and SOAP”, International Journal of Innovative Technology and Exploring Engineering , vol. 8(9 Special Issue), pp. 664–671, 2019.
[10] Ladan, M., “ Web Service s: Technologies and Benefits”, Journal of Communication and Computer , ISSN 1548-7709, Number 6,Volume 7, 2010.
[11] Ladan, M. I., “ Web Service s Metrics: A Survey and A Classification”, IPCSIT (International Proceedings of  Computer  Science and  Information  Technology)  Singapore ,  vol.  11,  pp.  93–98,  2011  [International Conference on Network and Electronics Engineering, 2011].
[12] Y.Yu, J.Lu, J.Fernandez-Ramil, P. Yuan,”Comparing Web Service s with other Software Components”, Proceeding of IEEE International Conference on Web Services (ICWS 007).
[13] Sasmito,  G.  W.,  “Penerapan  Metode Waterfall Pada  Desain  Sistem  Informasi  Geografis  Industri Kabupaten Tegal”, Jurnal Informatika:Jurnal Pengembangan IT (JPIT) , vol. 2(1), pp. 8, January 2017.
[14] Pressman,  R.S., Rekayasa  Perangkat  Lunak:  Pendekatan  Praktisi  (Buku  Dua) ,  Yogyakarta:  Penerbit Abadi. 2002.
[15] Informatika, Praktikum  Rekayasa  Perangkat  Lunak  Jurusan  Teknik  Informatika, Jurusan  Teknik Informatika UIN Malang, 2017.
[16] Akkiraju, R., Farrell, J., Miller, J., Nagarajan, M., Sheth, A., & Verma, K., “ Web Service Semantics  - WSDL-S.”, W3C Workshop on Frameworks for Semantics in Web Services , 2005.
[17] Setiawan,  Adnan,  “Perancangan XML Web  Service s  Untuk  Pelaporan  Transaksi  Data  Distribusi  Obat Pada Instalasi.”, Makalah Seminar Tugas Akhir.
[18] Fauzan, A. C., Sarno, R., and Machfud, I., "Simulation of Agent-Based and Discrete Event for Analyzing Multi  Organizational  Performance." 2019  International  Seminar  on  Application  for  Technology  of Information and Communication (iSemantic) . IEEE, 2019.
[19] S. Najah, M. Ainul Yaqin, L. S. Angreani, and A. C. Fauzan, “Mengukur Akurasi Query Pada Interface Repository  Menggunakan  User  Interface  (UI)  Discovery  Berbasis Software as  a  Service  (SAAS),” BRILIANT J. Ris. dan Konseptual , vol. 4, no. 1, pp. 206–214, 2019, doi: http://dx.doi.org/10.28926/briliant .v3i4.312.
[20] S. Najah, M. Ainul Yaqin, L. S. Angreani, and A. C. Fauzan, “ User Interface (UI) Discovery Application To Measure Query Accuracy On Interface Repository ” Journal Of Development Research , vol. 3, no. 1, pp. 1–6, 2019.