Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Modul Ajar Pembangunan Perangkat Lunak Berorientasi Service

Modul Ajar Pembangunan Perangkat Lunak Berorientasi Service

Published by Triando UPNVJ, 2022-10-31 13:36:42

Description: Modul Ajar Pembangunan Perangkat Lunak Berorientasi Service

Search

Read the Text Version

MODUL AJAR PEMBANGUNAN PERANGKAT LUNAK BERORIENTASI SERVICE Triando Damiri Burlian, S.Kom., M.S.Eng., M.Sc. FAKULTAS ILMU KOMPUTER UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAKARTA 2022

KATA PENGANTAR Mata kuliah ini mengantarkan mahasiswa dalam memahami konsep dan teknik Pembangunan Perangkat Lunak Berorientasi Service yang dapat digunakan di organisasi dan perusahaan. Mata kuliah ini juga akan memperkenalkan mahasiswa terkait teknologi yang umum digunakan dalam mengintegrasikan aplikasi seperti teknologi XML, JSON, Service-oriented Architecture (SOA), dan lain sebagainya. Aktualisasi mata kuliah ini akan dilakukan jika terdapat tren teknologi terbaru terkait konsep dan metode integrasi antar aplikasi. Mata kuliah ini bertujuan untuk memberikan mahasiswa pemahaman tentang kekuatan dan kelemahan arsitektur berbasis service, diinformasikan oleh kemampuan untuk menerapkan dan menyebarkan service web sederhana menggunakan platform pengembangan yang sesuai. Mereka juga akan belajar mendefinisikan dan merancang aplikasi sebagai kombinasi service, dan dapat mendiskusikan sifat-sifat yang muncul dari komposisi tersebut; dan untuk memahami konteks penelitian dan arah masa depan potensial untuk teknologi ini. ~ ii ~

PRAKATA Puji syukur penulis panjatkan kehadirat Allah SWT atas limpahan rahmat dan hidayah-Nya sehingga penulisan modul ajar ini bisa diselesaikan dengan baik. Penulisan modul ajar ini merupakan implementasi nilai-nilai dasar PNS yang telah diajarkan selama Pelatihan Dasar dan diberi judul “Aktualisasi dan Habituasi Nilai-Nilai BerAKHLAK dalam Penyusunan Modul Ajar Pembangunan Perangkat Lunak Berorientasi Service Berbasis Website 3D FlipBook dan QR Code di Informatika Program Sarjana Universitas Pembangunan Nasional \"Veteran\" Jakarta”. Atas bimbingan, bantuan, dan dukungan moral yang diberikan dalam penyusunan modul ajar ini, penulis mengucapkan terima kasih kepada: 1. Bapak Teddy Nugroho, S.E., M.M. sebagai penguji pada seminar Aktualisasi CPNS. 2. Bapak Rudhy Ho Purabaya, S.E., M.M.S.I. selaku Mentor dan Wakil Dekan Bidang Umum dan Keuangan Fakultas Ilmu Komputer yang telah memberikan pembimbingan penulisan Aktualisasi kepada penulis. 3. Bapak Atar Koswara R., S.T., M.Sc., selaku Coach yang telah memberikan arahan, bimbingan, dan motivasi baik selama latsar maupun dalam penyusunan Aktualisasi. 4. Rekan-rekan Pelatihan Dasar CPNS Gelombang I Angkatan 4 Kelompok 3 Kemendikbud yang turut memberikan semangat dan masukan selama proses pelatihan. 5. Keluarga penulis yang telah memberikan dukungan serta motivasi. Penulis menyadari bahwa modul ajar ini masih jauh dari kata sempurna, oleh karena itu penulis sangat mengharapkan saran dan kritik yang membangun untuk perbaikan kedepan. ~ iii ~

DAFTAR ISI KATA PENGANTAR.................................................................................................................................................... ii PRAKATA....................................................................................................................................................................... iii DAFTAR ISI................................................................................................................................................................... iv Pertemuan 1 Pengenalan Perangkat Lunak Berbasis Service................................................................8 A. Sub Pokok Bahasan .....................................................................................................................................8 B. Capaian Pembelajaran ...............................................................................................................................8 C. Motivasi penggunaan perangkat lunak berbasis Service ..........................................................8 D. Konsep dasar Service Oriented Architecture (SOA)......................................................................9 E. Konsep dasar arsitektur SOA...............................................................................................................11 Pertemuan 2 Service-oriented Architecture (SOA) dan Web Services dalam Enterprise Application Integration (EAI) .............................................................................................................................14 A. Sub Pokok Bahasan ..................................................................................................................................14 B. Capaian Pembelajaran ............................................................................................................................14 C. Web Services dan SOA..............................................................................................................................14 Pertemuan 3 Service-oriented Architecture (SOA) ...................................................................................16 A. Sub Pokok Bahasan ..................................................................................................................................16 B. Capaian Pembelajaran ............................................................................................................................16 C. Prinsip SOA...................................................................................................................................................18 D. << Sub Bab >> ..............................................................................Error! Bookmark not defined. E. << Sub Bab >> ..............................................................................Error! Bookmark not defined. F. << Sub Bab >> ..............................................................................Error! Bookmark not defined. G. << Sub Bab >> ..............................................................................Error! Bookmark not defined. H. << Sub Bab >> ..............................................................................Error! Bookmark not defined. Pertemuan 4 Simple Object Access Protocol (SOAP) ................................................................................20 A. Sub Pokok Bahasan ..................................................................................................................................22 B. Capaian Pembelajaran ............................................................................................................................22 C. << Sub Bab >> ..............................................................................Error! Bookmark not defined. D. << Sub Bab >> ..............................................................................Error! Bookmark not defined. E. << Sub Bab >> ..............................................................................Error! Bookmark not defined. F. << Sub Bab >> ..............................................................................Error! Bookmark not defined. G. << Sub Bab >> ..............................................................................Error! Bookmark not defined. H. << Sub Bab >> ..............................................................................Error! Bookmark not defined. Pertemuan 5 Implementasi Dasar dari Simple Object Access Protocol (SOAP) ..........................30 A. Sub Pokok Bahasan ..................................................................................................................................30 B. Capaian Pembelajaran .............................................................Error! Bookmark not defined. C. << Sub Bab >> ..............................................................................Error! Bookmark not defined. D. << Sub Bab >> ..............................................................................Error! Bookmark not defined. E. << Sub Bab >> ..............................................................................Error! Bookmark not defined. F. << Sub Bab >> ..............................................................................Error! Bookmark not defined. G. << Sub Bab >> ..............................................................................Error! Bookmark not defined. ~ iv ~

H. << Sub Bab >> ..............................................................................Error! Bookmark not defined. Pertemuan 6 Application Programming Interface (API) .......................................................................42 A. Sub Pokok Bahasan ..................................................................................................................................42 B. Capaian Pembelajaran ............................................................................................................................42 C. << Sub Bab >> ..............................................................................Error! Bookmark not defined. D. << Sub Bab >> ..............................................................................Error! Bookmark not defined. E. << Sub Bab >> ..............................................................................Error! Bookmark not defined. F. << Sub Bab >> ..............................................................................Error! Bookmark not defined. G. << Sub Bab >> ..............................................................................Error! Bookmark not defined. H. << Sub Bab >> ..............................................................................Error! Bookmark not defined. Pertemuan 7 Implementasi Dasar dari Representational State Transfer (REST) Application Programming Interface (API) .............................................................................................................................48 A. Sub Pokok Bahasan ..................................................................................................................................48 B. Capaian Pembelajaran ............................................................................................................................48 C. << Sub Bab >> ..............................................................................Error! Bookmark not defined. D. << Sub Bab >> ..............................................................................Error! Bookmark not defined. E. << Sub Bab >> ..............................................................................Error! Bookmark not defined. F. << Sub Bab >> ..............................................................................Error! Bookmark not defined. G. << Sub Bab >> ..............................................................................Error! Bookmark not defined. H. << Sub Bab >> ..............................................................................Error! Bookmark not defined. Pertemuan 8 Ujian Tengah Semester .............................................................................................................49 Pertemuan 9 Proposal Proyek Pembangunan Perangkat Lunak Berbasis Service...................50 A. Sub Pokok Bahasan ..................................................................................................................................50 B. Capaian Pembelajaran ............................................................................................................................50 C. << Sub Bab >> .............................................................................................................................................50 D. << Sub Bab >> .............................................................................................................................................50 E. << Sub Bab >> .............................................................................................................................................50 F. << Sub Bab >> .............................................................................................................................................50 G. << Sub Bab >> .............................................................................................................................................50 H. << Sub Bab >> .............................................................................................................................................50 Pertemuan 10 Pengunaan Kamus Data dalam Web Services ..............................................................51 A. Sub Pokok Bahasan ..................................................................................................................................51 B. Capaian Pembelajaran ............................................................................................................................51 C. << Sub Bab >> .............................................................................................................................................51 D. << Sub Bab >> .............................................................................................................................................51 E. << Sub Bab >> .............................................................................................................................................51 F. << Sub Bab >> .............................................................................................................................................51 G. << Sub Bab >> .............................................................................................................................................51 H. << Sub Bab >> .............................................................................................................................................51 Pertemuan 11 Penggunaan Composite API dan Reusable API ............................................................52 A. Sub Pokok Bahasan ..................................................................................................................................52 B. Capaian Pembelajaran ............................................................................................................................52 C. << Sub Bab >> .............................................................................................................................................52 ~v~

D. << Sub Bab >> .............................................................................................................................................52 E. << Sub Bab >> .............................................................................................................................................52 F. << Sub Bab >> .............................................................................................................................................52 G. << Sub Bab >> .............................................................................................................................................52 H. << Sub Bab >> .............................................................................................................................................52 Pertemuan 12 Kualitas dan Keandalan Layanan Web ...........................................................................53 A. Sub Pokok Bahasan ..................................................................................................................................53 B. Capaian Pembelajaran ............................................................................................................................53 C. << Sub Bab >> .............................................................................................................................................53 D. << Sub Bab >> .............................................................................................................................................53 E. << Sub Bab >> .............................................................................................................................................53 F. << Sub Bab >> .............................................................................................................................................53 G. << Sub Bab >> .............................................................................................................................................54 H. << Sub Bab >> .............................................................................................................................................54 Pertemuan 13 Implementasi Unit Testing pada Web Services............................................................55 A. Sub Pokok Bahasan ..................................................................................................................................55 B. Capaian Pembelajaran ............................................................................................................................55 C. << Sub Bab >> .............................................................................................................................................55 D. << Sub Bab >> .............................................................................................................................................55 E. << Sub Bab >> .............................................................................................................................................55 F. << Sub Bab >> .............................................................................................................................................55 G. << Sub Bab >> .............................................................................................................................................55 H. << Sub Bab >> .............................................................................................................................................55 Pertemuan 14 Integrasi Reusable API di Multi-Aplikasi .......................................................................57 A. Sub Pokok Bahasan ..................................................................................................................................57 B. Capaian Pembelajaran ............................................................................................................................57 C. << Sub Bab >> .............................................................................................................................................57 D. << Sub Bab >> .............................................................................................................................................57 E. << Sub Bab >> .............................................................................................................................................57 F. << Sub Bab >> .............................................................................................................................................57 G. << Sub Bab >> .............................................................................................................................................57 H. << Sub Bab >> .............................................................................................................................................57 Pertemuan 15 Dokumentasi Teknis dari Proyek Pembangunan Perangkat Lunak Berbasis Service ............................................................................................................................................................................58 A. Sub Pokok Bahasan ..................................................................................................................................58 B. Capaian Pembelajaran ............................................................................................................................58 C. << Sub Bab >> .............................................................................................................................................58 D. << Sub Bab >> .............................................................................................................................................58 E. << Sub Bab >> .............................................................................................................................................58 F. << Sub Bab >> .............................................................................................................................................58 G. << Sub Bab >> .............................................................................................................................................58 H. << Sub Bab >> .............................................................................................................................................58 Pertemuan 16 Ujian Akhir Semester ..............................................................................................................59 ~ vi ~

DAFTAR PUSTAKA...................................................................................................................................................60 PENULIS........................................................................................................................................................................61 ~ vii ~

Pertemuan 1 Pengenalan Perangkat Lunak Berbasis Service A. Sub Pokok Bahasan 1. Motivasi penggunaan perangkat lunak berbasis Service 2. Konsep dasar Service Oriented Architecture (SOA) 3. Konsep dasar arsitektur SOA B. Capaian Pembelajaran Mampu memahami dan menjelaskan konsep dasar Perangkat Lunak Berbasis Service, SOA, dan arsitektur monolitik. (CPMK11-S1), (CPMK11-P1). C. Motivasi penggunaan perangkat lunak berbasis Service Ketergantungan perusahaan pada teknologi telah tumbuh menjadi lebih kompleks dimana kebutuhan akan metode untuk mengintegrasikan aplikasi yang berbeda ke dalam serangkaian proses bisnis yang terpadu telah muncul sebagai prioritas utama di dalam organisasi. Untuk mewujudkan otomatisasi melalui teknologi, pengguna dan pengelola sistem menuntut agar terdapat teknik integrasi yang lebih efektif dan efisien. Paradigma dari Pembangunan Perangkat Lunak Berbasis Service muncul akibat tekanan lingkungan bisnis yang kompetitif yang membutuhkan organisasi lebih adaptif. Perencanaan jangka panjang dan terukur dapat mengurangi biaya yang akan muncul ketika suatu organisasi ingin mengembangkan aplikasi berskala besar dan menciptakan keunggulan kompetitif bagi perusahaan yang menerapkan integrasi berbasis service. Service atau juga yang bisa disebut Service-oriented merupakan pendekatan dalam penyelesaian masalah besar dengan membaginya menjadi sekumpulan layanan (service) kecil yang menyelesaikan masalah yang spesifik. Istilah ini telah ada cukup lama dan telah digunakan untuk berbagai macam konteks permasalahan dan tujuan tertentu. Setelah permasalahan telah dibagi menjadi beberapa solusi dari permasalahan tersebut harus bisa diselesaikan dengan memungkinkan seluruh service berpartisipasi. Untuk itu ada beberapa permasalahan yang harus dimiliki oleh service yaitu bagaimana service berhubungan, berkomunikasi, bagaimana service, didesain, dan bagaimana pesan antar service didefinisikan. Service saat ini banyak diminati perusahaan-perusahaan keuangan dan perbankan. Namun, industri asuransi dan telekomunikasi juga banyak yang mengadopsi teknologi ini. Hal ini disebabkan fleksibilitas dan arsitektur yang ditawarkan cukup handal untuk mengurangi berbagai hambatan interaksi antar perangkat lunak dan memotong rangkaian proses dalam sebuah jaringan yang kadang cukup berbelit. ~8~

Untuk menggambarkan bagaimana service bekerja dalam sebuah perusahaan atau institusi bisnis, dapat mengambil contoh transaksi pembelian barang melalui internet yang dilakukan seorang netter atau pelanggan. Di dalam sistem, pengecer menggunakan sebuah service untuk melakukan pembelian barang secara online yang dimana dibalik itu memicu serangkaian transaksi lainnya. Misalnya, kartu kredit pelanggan diverifikasi, bagian pengiriman barang diberi tahu, gudang diminta untuk menyesuaikan persediaan barang, dan catatan-catatan pembukuan diperbaharui. Transaksi-transaksi tersebut berupa input informasi yang dikirim melalui yang berlainan, yang kadang tidak sesuai dan tidak bisa berhubungan satu sama lain. Namun, teknologi service telah memungkinkan infrastruktur yang mendukung transaksi tersebut untuk dibaurkan dan dikombinasikan secara integral. D. Konsep dasar Service Oriented Architecture (SOA) Arsitektur teknis yang digunakan untuk membangun layanan web secara resmi dikenal sebagai SOA. Ini adalah pengaturan proses perangkat lunak atau agen yang berkomunikasi satu sama lain untuk memberikan persyaratan bisnis. Peran utama layanan dalam SOA adalah menyediakan fungsionalitas. Ini disediakan oleh tiga karakteristik: 1. Antarmuka dengan layanan yang platform-independent (tidak tergantung pada jenis perangkat lunak atau perangkat keras tertentu). Antarmuka dapat diakses melalui pendekatan pengembangan aplikasi seperti Microsoft.NET atau Java dan diakses melalui protokol seperti SOAP (Simple Object Access Protocol) yang digunakan untuk pesan berformat XML. 2. Layanan dapat berlokasi secara dinamis dan dipanggil. Satu layanan dapat meminta keberadaan layanan lain melalui direktori layanan – misalnya, layanan e-commerce dapat menanyakan keberadaan layanan otorisasi kartu kredit. 3. Layanan mandiri. Artinya, layanan tidak dapat dipengaruhi oleh layanan lain; melainkan akan mengembalikan hasil yang diminta ke permintaan dari layanan lain, tetapi tidak akan ubah status. Dalam layanan web, messages dan data biasanya dipertukarkan di antaranya layanan menggunakan XML SOA atau Service Oriented Architecture merupakan istilah yang menjadi tren dalam teknologi terbaru di dunia TI. Mengacu kepada nama Service Oriented Architecture merupakan sebuah pendekatan dalam merancang (arsitek) sistem, dimana service yang ada dalam masing-masing sistem yang ada. Dalam hal ini, komponen-komponen tersebut memberikan suatu jenis layanan bisnis (service) tertentu seperti antara lain: melakukan pembayaran, transfer pembayaran, mengecek status akun bank, dan lain sebagainya. Secara umum bisa dikatakan bahwa SOA adalah sebuah arsitektur kerangka kerja berbasis standar yang terhubung yang memungkinkan sistem-sistem untuk saling mengintegrasikan data yang sebelumnya hanya tersimpan rapat di berbagai lokasi atau sumber. Dengan kata lain, SOA merupakan arsitektur yang mendukung integrasi bisnis sebagai layanan yang terhubung dan menjadi jalan menuju inovasi. (SOA juga menjadi strategi bisnis berbasis teknologi dan hasil evolusi untuk mengintegrasi berbagai sumber informasi dari sumber kode atau platform yang berbeda-beda). ~9~

Gambar 1.1 Abstraksi SOA dan Proses Pada gambar diatas, abstraksi SOA merupakan bagan yang sangat penting dalam proses pengembangan SOA. Secara umum sistem yang terhubung dengan SOA terdiri dari sistem saat ini, sistem yang berhubungan dengan Customer Service, ERP dan juga Web. Dalam pendekatan diatas dapat disimpulkan bahwa Web Service Component dan Web Service API akan terhubung dengan abstraksi SOA. Konteks SOA adalah loose coupled yang artinya sebuah service dapat dipanggil oleh program/service lainnya tanpa program pemanggil tersebut perlu memperhatikan di mana lokasi service yang dipanggil berada dan platform/teknologi apa yang digunakan oleh service tersebut. Loose coupling sangat penting bagi SOA karena dengan demikian pemanggilan sebuah service oleh service lainnya dapat dilakukan pada saat run-time. Gambar 1.2 Ilustrasi dari SOA Misalnya sebuah aplikasi core Penerbangan menyediakan sebuah service ticket booking, maka aplikasi-aplikasi lainnya seperti flight schedule, payment gateway, Flight Detail dan sebagainya dapat memanggil service flight booking tersebut tanpa perlu ~ 10 ~

mengetahui dimana flight schedule tersebut berada di dalam jaringan dan teknik pemanggilan yang harus digunakan. Hal ini kontras dengan pendekatan tight coupling di mana dalam hal ini setiap aplikasi penerbangan di atas masing-masing harus mempunyai fungsi flight schedule di dalamnya sehingga akan menyulitkan dan membutuhkan biaya/resource besar jika perlu merubah logic dari flight schedule ke requirement bisnis yang baru di dalam setiap aplikasinya. Dapat disimpulkan bahwa SOA menjadi solusi dari beragamnya platform serta permintaan untuk interopability dari sistem. E. Konsep dasar arsitektur SOA Arsitektur software dapat didefinisikan sebagai proses dasar untuk membuat struktur aplikasi dengan mempertimbangkan berbagai aspek penting seperti peforma, kehandalan, pengembangan, dan keamanan. Pentingnya mendefenisikan struktur aplikasi yang dibangun utamanya bertujuan untuk mendefinisikan serta menyusun solusi dari berbagai permasalahan yang ada agar memenuhi persyaratan teknis, operasional dan bisnis itu sendiri. Umumnya arsitekur software yang banyak digunakan sebagai blueprint untuk membangun aplikasi menggunakan arsitektur Monolithic, arsitektur SOA, dan Microservices. Arsitektur Monolithic Model aplikasi yang dibangun dengan arsitektur Monolithic menggunakan pendekatan satu kesatuan (single unit), dengan kata lain disini seluruh komponen aplikasi saling berhubungan dan saling bergantung, sehingga setiap komponen satu dengan yang lain harus berfungi agar dapat dieksekusi atau dikompilasi dengan baik, dan biasanya hanya menggunakan satu codebase. Secara umum pada arsitektur ini, proses bisnis aplikasi yang dibangun merupakan satu domain utuh. Gambar 1.3 Contoh Arsitektur Monolithic Pada gambar diatas, komponen-komponen atau fungsi direpresentasikan kedalam berbagai bentuk persegi berwarna yang dibungkus sebagai satu domain utuh. Kemudian pada gambar, aplikasi untuh dibangun secara horizontal menggunakan platform bahasa ~ 11 ~

pemrograman Java sebagai source code lengkap atau disebut dengan codebase (single bundle of solutions). Komunikasi setiap komponen pada arsitekur Monolithic dilakukan dalam batasan satu aplikasi tunggal, dan biasanya tidak menggunakan pemformatan data. Contoh sederhana ketika fungsi login dipanggil maka fungsi tersebut langsung menjalankan query tertentu ke dalam database, dan biasanya menghasilkan nilai balik berupa true atau false sebagai raw data/data mentah. Arsitektur Microservices Aplikasi yang dibangun dengan arsitektur microservices menggunakan pendekatan modular, artinya komponen-komponen aplikasi akan dikelompokan menjadi beberapa komponen yang independen sebagai service (fine-grained) untuk menjalankan setiap proses aplikasi. Secara umum pada arsitektur ini, dapat dikatakan proses bisnis aplikasi yang dibangun terdiri dari beberapa sub-domain yang dianggap sebagai service. Sehingga setiap service yang dibangun sangat memungkinkan menggunakan bahasa pemrograman yang berbeda-beda, menggunakan penyimpanan data yang berbeda, dan hanya melayani satu fungsi yang spesifik. Gambar 1.4 Contoh Arsitektur Microservices Pada gambar diatas, berbagai komponen atau fungsi direpresentasikan kedalam berbagai bentuk lingkaran berwarna dan saling terhubung secara langsung maupun tidak langsung serta dianggap sebagai sub-domain. Setiap lingkaran bewarna tersebut bersifat independen sebagai service yang spesifik, dan dibangun secara vertikal dengan menggunakan codebase yang berbeda-beda. Pada arsitektur ini, komunikasi dilakukan secara remote yang dikenal dengan metode RPI (Remote Procedural Invocation) atau disebut juga dengan RPC (Remote Procedural Call). Komunikasi antar service dilakukan melalui endpoint yaitu berupa alamat URL (Uniform Resource Location) dan untuk interaksinya (mengakses fungsinya) menggunakan API (Application Programming Interface) yang diimplementasikan kedalam ~ 12 ~

REST (Representional State Transfer) API/RESTfull API. Pada arsitektur Microservices, format pertukaran data antara aplikasi umumnya menggunakan JSON (JavaScript Object Notation)). Arsitektur SOA Salah satu arsitektur lainnya untuk membangun aplikasi yang masih banyak digunakan terutama di perusahaan-perusahaan besar yaitu menggunakan SOA (service- oriented architecture). Istilah SOA sering digunakan tidak hanya dalam konteks pembuatan aplikasi, namun dengan arti yang berbeda-beda. Meskipun demikian secara umum SOA dapat diartikan membuat sistem atau aplikasi dengan cara menguraikannya menjadi beberapa bagian atau disebut dengan service dan kebanyakan menggunakan protocol HTTP serta XML (Extensible Markup Language) sebagai pemformatan datanya. Gambar 1.5 Perbedaan antara Monolithic, SOA, dan Microservices Pada SOA, service dianggap sebagai subsistem atau tingkatan yang memiliki beberapa tugas, sehingga disebut dengan corase-grained atau memiliki pola yang kasar. ~ 13 ~

Pertemuan 2 Service-oriented Architecture (SOA) dan Web Services dalam Enterprise Application Integration (EAI) A. Sub Pokok Bahasan 1. Konsep dasar SOA dan Web Services. 2. Peran SOA dan Web Services dalam Enterprise Application Integration (EAI). 3. Peran SOA untuk menunjang proses bisnis perusahaan. B. Capaian Pembelajaran Mampu memahami dan menjelaskan konsep SOA dan Web Services dalam Enterprise Application Integration (EAI) serta penggunaannya secara umum di perusahaan. (CPMK11- S1), (CPMK11-P1). C. Web Services dan SOA Web services adalah aplikasi yang berisi kumpulan database dan perangkat lunak atau bagian dari perangkat lunak yang digunakan perangkat dari jarak jauh dengan broker tertentu. Dengan web services, memungkinkan pengguna untuk mengatasi masalah interoperabilitas dan mengintegrasikan sistem yang berbeda. Secara umum, web services memiliki properti khusus berupa URL, seperti web. Perbedaannya adalah interaksi yang diberikan oleh layanan online itu sendiri. URL web services hanya berisi sekumpulan informasi, perintah, dan konfigurasi (sintaks yang berguna untuk membangun fungsionalitas tertentu dalam aplikasi). Layanan online dapat bertukar data terlepas dari sumber database, bahasa yang digunakan, dan platform tempat data dikonsumsi. Berkat fitur inilah layanan online menjadi jembatan ke berbagai sistem. Contoh kasus adalah ketika pengguna ingin memasukkan URL situs web untuk membuat permintaan layanan yang tersedia dari situs web tersebut. Kemudian permintaan tiba di server tujuan. Dalam hal ini, server memberikan respon sesegera mungkin, yang dapat disajikan sebagai halaman web. Ini adalah hubungan client- server yang biasanya terjadi pada sebuah website. Dalam layanan online, hubungan antara klien dan server dijembatani dengan file web services dengan format tertentu. Dengan cara ini, akses ke database tidak diproses langsung ke server, tetapi terlebih dahulu melalui perantara layanan online. Berikut merupakan diagram alur dari web services (Dicoding Intern, 2021): ~ 14 ~

Gambar 1.1 Diagram Alur Web Services Ada beberapa perbedaan utama antara layanan Web dan SOA. Layanan web mendefinisikan teknologi web yang dapat digunakan untuk membangun aplikasi yang dapat mengirim / menerima pesan menggunakan SOPA melalui HTTP. Namun, SOA adalah model arsitektur untuk mengimplementasikan aplikasi berbasis layanan yang digabungkan secara longgar. Layanan web dapat digunakan untuk mengimplementasikan aplikasi SOA. Meskipun pendekatan layanan web untuk SOA telah menjadi sangat populer, itu hanya satu metode penerapan SOA. SOA dapat diimplementasikan menggunakan teknologi berbasis layanan lainnya (misalnya CORBA dan REST) (Indika, 2011). ~ 15 ~

Pertemuan 3 Service-oriented Architecture (SOA) A. Sub Pokok Bahasan 1. Arsitektur SOA 2. Prinsip SOA 3. Contoh teknologi yang mendukung implementasi SOA B. Capaian Pembelajaran Mampu menjelaskan komponen dan struktur SOA dan semua jenis teknologi yang mendukung SOA secara umum. (CPMK11-S1), (CPMK11-P1). C. Arsitektur SOA SOA jika di terjemahkan secara bebas kedalam bahasa Indonesia maka menjadi Arsitektur Berorientasi Service. SOA berupaya untuk mengatasi banyak kekurangan dari teknologi integrasi sebelumnya dengan menekankan aspek Service. Service adalah unit tersendiri dari fungsionalitas bisnis yang terbuka dan tersedia untuk (idealnya) semua Enterprise Applications. Service menjadi building block untuk aplikasi yang mendukung SOA. Setiap Service menjelaskan apa yang dilakukannya, bagaimana panggilannya, dan format pesan yang diharapkan akan diterima dan diproduksi dalam dokumen formatnya. Saat ini ada dua tipe format dokumen yang didukung yaitu XMLand JSON. XML menjadi standar format message yang dipergunakan didalam WSDL dan JSON menjadi standar format message yang dipergunakan didalam RESTful API. Dengan pendekatan ini, service yang di-expose dengan baik dapat dirakit dan digunakan kembali untuk lebih cepat membuat aplikasi yang dapat lebih mendukung perubahan proses bisnis. Pendekatan SOA didalam software system memungkinkan Service Consumersuatu layanan dipisahkan dari Service Provider. Dengan SOA, layanan diakses menggunakan protokol standar (SOAP dan RESTFul) yang memungkinkan interoperabilitas dari fungsi yang terpisah. ~ 16 ~

Gambar 3.1 Composite Applications Dari gambar diatas ditunjukan bagaimana adanya kanosisasi atau mengindetifikasi kelompok fungsi bisnis yang umum yang mungkin dipakai berkali-kali oleh aplikasi-aplikasi didalam sebuah perusahan/organisasi kedalam service portfolio. Service yang umum ini didaftarkan pada sebuah service registry/service catalog sehingga memberikan visibilitas kepada development team ketika hendak melakukan pengimplementasian aplikasi composite. Selanjutnya pada layer diatas service portfolio dibangunlah aplikasi-aplikasi composite yang merupakan orchestration dari berbagai services. SOA merupakan sebuah konsep, arsitektur atau pendekatan terhadap sebuah sistem yang dapat menyelesaikan permasalahan yang terkait dengan transaksi data antar aplikasi yang direpresentasikan ke bentuk webservice. Sehingga fungsi dari SOA tidak hanya sekedar membuat webservice tetapi dapat memberikan solusi terhadap permasalahan dengan tingkat kompleksitas yang relatif tinggi. SOA tidak tergantung pada satu jenis teknologi atau metodologi saja. SOA bisa diimplementasi dengan berbagai teknik dan teknologi. SOA tidak tergantung pada satu jenis teknologi atau metodologi saja. SOA bisa diimplementasi dengan berbagai teknik dan teknologi. Gambar 3.2 Perbandingan Integrasi Aplikasi pada Sistem ~ 17 ~

Gambar diatas merupakan perbandingan integrasi antar aplikasi pada sistem yang belum dan yang sudah mengimplementasikan SOA. Dapat dilihat bahwa dengan adanya SOA pada suatu sistem dapat menyederhanakan kompleksitas integrasi antar aplikasi dimana SOA berfungsi sebagai penyedia layanan untuk memenuhi kebutuhan transaksi data antar aplikasi. Aplikasi integrasi dimulai karena adanya kebutuhan pertukaran data/informasi antara aplikasi yang satu dengan aplikasi yang lain. Kebutuhan dari bisnis mengharapkan data/informasi yang dipunyai oleh sebuah aplikasi dari suatu departemen/sub-unit harus dikirimkan ke aplikasi lain yang dimiliki departemen/sub-unit yang lain. Kebutuhan pertukaran data/informasi inipun bisa berlaku dalam skala lebih luas, misalkan antara sebuah perusahan/organisasi dengan perusahan/organisasi lainnya yang bisa jadi perusahan/organisasi tersebut berada dalam satu negara atau bahkan antara negara. Jika aplikasi-aplikasi yang berada di dalam sebuah perusahan/organisasi tidak mempunyai kemampuan di dalam mengkomunikasikan pertukaran informasi maka akan terjadi banyak kendala dalam menjalankan bisnis. Contoh paling sederhana terlihat seperti ilustrasi gambar berikut tentang dampak dari silo-sighted business operation yang tidak memanfaatkan teknologi integrasi untuk mengintegrasikan bisnis aplikasi antara departemen didalam sebuat perusahan/organisasi. Contoh dibawa diperlihatkan Warehouse team yang melakukan planning untuk deliverycustomer order tidak secara langsung bisa melihat status sales order yang sudah dibayar dan siap untuk dicetak delivery order dan penjadwalan pengiriman. Cara komunikasi secara manual atau off-line dengan memberikan memo atau email di antara team sering kali menyebabkan missed communication dan keterlambatan di dalam pelayanan kepada customer. Gambar 3.3 “Silo” pada sistem D. Prinsip SOA Berikut merupakan prinsip dari SOA (informIT, 2008): ~ 18 ~

1. Standardized Service Contract Layanan memiliki komunikasi dan dirincikan di dalam dokumen deskripsi layanan. 2. Service Reference Autonomy Hubungan antar layanan diminimalkan ke tingkat masing-masing layanan. 3. Service Location Transparency Layanan dapat dipanggil dari mana saja di dalam jaringan di mana pun ia berada. 4. Service Longevity Layanan harus dirancang untuk mimiliki jangka waktu yang panjang. 5. Service Abstraction Layanan sebagai kotak hitam, yaitu implementasi teknisnya tersembunyi. 6. Service Autonomy Layanan bersifat independen dan mengontrol fungsionalitas. 7. Service Statelessness Mengembalikan nilai yang diminta secara real-time. 8. Service Granularity Prinsip untuk memastikan layanan memiliki ukuran dan cakupan yang memadai. 9. Service Normalization Layanan didekomposisi atau dikonsolidasikan (dinormalisasi) untuk meminimalkan redundansi. 10. Service Composability Layanan dapat digunakan untuk membuat layanan lain. 11. Service Discovery Layanan dilengkapi dengan meta data komunikatif yang dengannya mereka dapat ditemukan dan ditafsirkan secara efektif. 12. Service Reusability Layanan bisa digunakan kembali dengan mudah. 13. Service Encapsulation Layanan dapat dienkapsulasi untuk menjadi bagian dari SOA. E. Contoh teknologi yang mendukung implementasi SOA ~ 19 ~

Peristiwa pertukaran data/informasi sebenarnya bukanlah hal yang baru. Sejak awal 1990-an teknologi architecture seperti Common Object Request Broker Architecture (CORBA) sudah memberikan jawaban tentang bagaimana aplikasi integrasi harus diimplementasikan. Namun seiring berjalannya waktu dimana kebutuhan perubahan permintaan bisnis semakin cepat, CORBA architecture dinilai tidak dapat menjawab dengan kecepatan pengubahan akibat dari kurang fleksiblenya pendekatan architecture ini. Demikian juga dengan lahirnya generasi style architecture setelah CORBA yaitu Enterprise Integration Architecture (EAI) yang kemudian menjadi cikal bakal berkembang SOA. Pendekatan Point-to-Point (P2P) Integration Pendekatan P2P sangat populer dikalangan developer aplikasi. Sebab inilah cara yang termudah dilakukan pengembangan integrasi. Jika bahasa pemograman tidak menjadi kendala dimana kedua teknologi bahasa pemograman yang dipakai adalah sama (same native code). Contoh berdasarkan gambar di bawah component Service Delivery dan Order Management di-develop menggunakan bahasa pemograman Java, maka secara langsung developer dapat melakukan invocation fungsi dari component Order Management kepada component Service Delivery. Disinilah sesungguhnya kelemahan dari pendekatan ini, jika terjadi pemanggilan langsung dari sebuah component kepada component lainnya secara pemograman maka ketika terjadi perubahan berdasarkan permintaan bisnis, fleksibilitas dari P2P integration ini menjadi kendala. Kendala ini disebut sebagai tightly-coupling, dimana aplikasi yang satu terikat secara kuat melalui code yang ada sehingga apabila ada perubahan akibat permintaan bisnis process, maka proses perubahan ini akan memakan waktu yang lama. Secara umum setiap perubahan code dari aplikasi harus dilakukan sejumlah pengecekan akan keterhubungan antara satu component aplikasi tersebut dengan yang lainnya, sehingga impact-nya bisa dianalisa dan dimitigasi dengan baik. Di dalam proses pengubahan code juga harus mengikuti best practice dari Software Development Life Cycle untuk melakukan regression testing guna memastikan code yang diubah berjalan baik dan tidak ada impactlangsung kepada aplikasi terkait lainnya. Demikian metode integrasi P2Pmenjadi tidak ideal bagi aplikasi integrasi, baik untuk aplikasi yang mempunyai bahasa pemograman yang sama maupun berbeda. ~ 20 ~

Gambar 3.4 Integrasi P2P Sebagai tambahan kendala umum didalam implementasi P2P misalkan, dalam pengembangan sebuah aplikasi untuk Service Delivery team, terdapat fungsi untuk melakukan pengecekan stock availability, maka developermengebangkan aplikasi Service Delivery ini dengan meng-expose fungsi ini sebagai service stock availability. Pada saat yang sama terdapat aplikasi Order Management yang dikembangkan oleh developer/vendor yang berbeda, yang nota bene fungsi stock availability sudah ada. Sehingga akan ada dampak pada duplikasi service jika tidak dilakukan proses identifikasi/kanonisasi terlebih dahulu. Cukup umum juga pendekatan dengan melakukan penulisan data/informasi dari aplikasi sumber kedalam sebuah target file yang sejak awal ditentukan formatnya, misalkan Comma Separated Value (CSV), kemudian dilanjutkan dengan process pengiriman file tersebut kepada sebuah remote server dengan menggunakan File Transfer Protocol (FTP/sFTP) kepada target lokasi yang ditentukan. Ketika file tersebut telah berada pada lokasi yang dimaksud, maka ada batch processing dimana aplikasi target membaca isi dari filetersebut dan menuliskan/meng-upload kepada target aplikasi. Pada procedureini sebenarnya integrasi tidak terjadi secara langsung (non real time), tetapi bersifat batch processing. Ada banyak kendala didalam process batch processing seperti ini, contoh yang paling umum misalkan terjadi interruption dari process membaca atau menuliskan pada file, maka file tersebut bisa dikatakan damage (tidak dapat digunakan lagi) dan perlu di re- run lagi process tersebut secara menyeluruh. Disamping itu ada concern lain yang selalu menjadi perhatian utama ketika integrasi itu berdasarkan pemrosesan File System atau Batch File, yaitu data security. ~ 21 ~

Pertemuan 4 Simple Object Access Protocol (SOAP) A. Sub Pokok Bahasan 1. Pengenalan SOAP 2. Arsitektur SOAP 3. Fungsi Web Service Definition Language (WSDL) pada SOAP 4. Fungsi Universal Discovery Description Integration (UDDI) pada SOAP B. Capaian Pembelajaran Mampu memahami fungsi dan arsitektur teknologi SOAP dalam mendukung pengembangan SOA. (CPMK11-S1), (CPMK11-P1), (CPMK11-K1). C. Pengenalan SOAP SOAP (Simple Object Access Protocol) adalah standar untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data, maka SOAP dapat berkomunikasi dengan berbagai aplikasi meskipun terdapat perbedaan sistem operasi, teknologi, dan bahasa pemrogramannya. Sebenarnya peran SOAP di dalam teknologi web service sebagai protokol pemaketan untuk pesan-pesan (messages) yang digunakan secara bersama oleh aplikasi- aplikasi penggunanya serta menspesifikan secara jelas bagaimana cara untuk meng-encode header HTTP dan file XML sehingga program pada suatu komputer dapat memanggil program pada komputer lain dan mengirimkan informasi, dan bagaimana program yang dipanggil memberikan tanggapan. Kelebihan SOAP • bahasa, platform, dan transport agnostic • dirancang untuk menangani lingkungan komputasi terdistribusi • merupakan standar yang berlaku untuk web servis, sehingga mempunyai dukungan yang lebih baik dari standar yang lain (WSDL, WS-*) dan tools dari berbagai vendor • built-in error handling (faults) • extensibility Kekurangan SOAP • secara konseptual lebih sulit, lebih \"heavy-weight\" dibanding REST • lebih \"verbose\" (membutuhkan lebih banyak pernyataan/kode program) ~ 22 ~

• sulit untuk dikembangkan, mebutuhkan tools D. Arsitektur SOAP Gambar 4.1 Diagram Service SOAP yang merupakan web services memiliki tiga entitas dalam arsitekturnya, yaitu: 1. Service Requester (peminta layanan) Berfungsi untuk menyediakan layanan/service dan mengolah sebuah registry agar layanan-layanan tersebut dapat tersedia. 2. Service Provider (penyedia layanan) Berfungsi sebagai lokasi central yang mendeskripsikan semua layanan/service yang telah di-register. 3. Service Registry (daftar layanan) Peminta layanan yang mencari dan menemukan layanan yang dibutuhkan serta menggunakan layanan tersebut. Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen berikut: 1. Envelope Element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP. 2. Header Element yang berisi informasi header. 3. Body Element yang berisi panggilan dan merespon informasi. 4. Fault Element yang berisi pesan kesalahan yang terjadi pada waktu proses. Spesifikasi yang digunakan tidak lebih seperti sebuah amplop biasa berbasis XML untuk informasi yang ditransfer, serta sekumpulan aturan bagi translasi aplikasi dan tipe-tipe data ~ 23 ~

platform yang spesifik menjadi bentuk XML. Desain bentuk dari SOAP membuatnya cocok untuk berbagai pertukaran pesan pada aplikasi. SOAP Message Bagian header menyimpan informasi yang berhubungan dengan cara memproses message ini. Di dalamnya termasuk informasi mengenai pengaturan pengiriman, autentikasi dan autorisasi, dan konteks transaksinya. Sedangkan bagian body menyimpan message yang akan di prosesnya. Sintaks XML apapun dapat dimasukan ke dalam bagian body ini. Gambar 4.2 Struktur SOAP Message Gambar 4.2 Contoh SOAP Message ~ 24 ~

SOAP Transport SOAP merupakan protokol pemaketan data yang berada di atas layer network dan transport. Sebagai suatu protokol pemaketan data, SOAP menjadi fleksibel dalam penggunaan. Contohnya, sebuah web service SOAP berbasis Perl yaitu SOAP::Lite, mendukung pertukaran SOAP Message di beberapa protokol diantaranya HTTP, FTP, raw TCP, SMTP, POP3, MQSeries, dan Jabber. SOAP melalui HTTP Protokol HTTP merupakan protokol yang paling digunakan dalam mengirimkan SOAP Message. SOAP mendeskripsikan model pertukaran message khusus untuk di HTTP. Dengan begitu cara ini cocok dengan model SOAP RPC (Request-Response) dikarenakan HTTP merupakan protokol bertipe request-response. E. Fungsi Web Service Definition Language (WSDL) pada SOAP Web Services Description Language (WSDL) adalah file berbasis XML yang pada dasarnya memberi tahu aplikasi klien apa yang dilakukan oleh layanan web. File WSDL digunakan untuk menjelaskan secara singkat apa yang dilakukan layanan web dan memberi klien semua informasi yang diperlukan untuk dapat terhubung ke layanan web dan menggunakan semua fungsionalitas yang telah disediakan. Struktur Dokumen WSDL Dokumen WSDL digunakan untuk menggambarkan layanan web. Deskripsi ini diperlukan agar aplikasi klien dapat memahami apa yang sebenarnya dilakukan oleh layanan web. File WSDL itu sendiri dapat terlihat sangat kompleks bagi pengguna, tetapi juga berisikan semua informasi yang diperlukan aplikasi klien untuk menggunakan layanan web yang relevan. Di bawah ini adalah struktur umum dari file WSDL 1. Definition 2. TargetNamespace 3. DataTypes 4. Messages 5. Porttype 6. Binding 7. Service Satu hal penting yang perlu diperhatikan di sini adalah bahwa definisi Message, yang diteruskan oleh protokol SOAP, sebenarnya didefinisikan dalam dokumen WSDL. Dokumen WSDL sebenarnya memberitahu aplikasi klien apa jenis pesan SOAP yang dikirim dan diterima oleh layanan Web. Dengan kata lain, WSDL seperti kartu pos yang memiliki alamat lokasi tertentu. Alamat tersebut memberikan rincian orang yang mengirimkan kartu ~ 25 ~

pos. Oleh karena itu, file WSDL adalah kartu pos, yang memiliki alamat layanan web yang dapat memberikan semua fungsionalitas bagi klien. Elemen-Elemen Pada WSDL 1. Tag digunakan untuk mendefinisikan semua tipe data kompleks, yang akan digunakan dalam pertukaran pesan antara aplikasi klien dan layanan web. Ini merupakan aspek penting dari aplikasi klien, karena jika layanan web bekerja dengan tipe data yang kompleks, maka aplikasi klien harus tahu bagaimana memproses tipe data yang kompleks. Data type seperti float, number, dan string merupakan data type sederhana, tetapi mungkin ada data type terstruktur yang disediakan oleh layanan web. 1. Misalnya, mungkin ada data type yang disebut EmployeeDataType yang dapat memiliki 2 elemen “EmployeeName” dari string type dan “EmployeeID” dari number type atau integer. Bersama-sama mereka membentuk struktur data yang kemudian menjadi data type yang kompleks. 2. Tag digunakan untuk mendefinisikan pesan yang dipertukarkan antara aplikasi klien dan server web. Pesan-pesan ini akan menjelaskan operasi input dan output yang dapat dilakukan oleh layanan web. Contoh pesan dapat berupa pesan yang menerima EmployeeID dari seorang karyawan, dan output pesan dapat berupa nama karyawan berdasarkan EmpoyeeID yang diberikan. 3. Tag digunakan untuk merangkum setiap pesan input dan output ke dalam satu operasi logika. Jadi mungkin ada operasi yang disebut \"GetEmployee\" yang menggabungkan pesan input menerima EmployeeID dari aplikasi klien dan kemudian mengirim EmployeeName sebagai pesan output. 4. Tag digunakan untuk mengikat operasi ke jenis port tertentu. Ketika aplikasi klien memanggil jenis port yang relevan, maka aplikasi tersebut akan dapat mengakses operasi yang terikat pada jenis port ini. Jenis port sama seperti interface. Jadi, jika aplikasi klien perlu menggunakan layanan web, mereka perlu menggunakan informasi yang mengikat untuk memastikan bahwa mereka dapat terhubung ke interface yang disediakan oleh layanan web tersebut. 5. Tag adalah nama yang diberikan untuk web service itu sendiri. Awalnya, ketika aplikasi klien melakukan panggilan ke layanan web, maka itu akan dilakukan dengan memanggil nama layanan web. Misalnya, layanan web dapat ditemukan di alamat seperti http://localhost/SitusWeb/Artikel.asmx . Tag layanan sebenarnya akan memiliki URL yang didefinisikan sebagai http://localhost/SitusWeb/Artikel.asmx, yang sebenarnya akan memberi tahu aplikasi klien bahwa ada layanan web yang tersedia di lokasi ini. Layanan web merupakan komponen penting dalam membangun aplikasi web modern. Tujuan utama mereka adalah untuk memungkinkan beberapa aplikasi yang dibangun pada berbagai bahasa pemrograman untuk dapat berbicara satu sama lain. Misalnya, kita dapat membuat aplikasi web .Net berbicara dengan aplikasi Java melalui layanan Web. ~ 26 ~

Layanan web memiliki fitur utama seperti berikut ini: 1. Dibangun menggunakan bahasa pemrograman XML. Hampir semua teknologi modern seperti .Net dan Java memiliki perintah yang sesuai dan memiliki kemampuan untuk dapat bekerja dengan XML. Oleh karena itu, XML diambil sebagai bahasa yang paling tepat untuk membangun layanan web. 2. Layanan web berkomunikasi melalui HTTP. HTTP adalah protokol yang digunakan oleh semua aplikasi berbasis web. Oleh karena itu, masuk akal untuk memastikan bahwa layanan Web juga memiliki kemampuan untuk dapat bekerja melalui protokol HTTP. 3. Layanan web sesuai dengan spesifikasi bahasa tertentu. Spesifikasi ini ditetapkan oleh W3C, yang merupakan badan pengatur untuk semua standar web. 4. Layanan web memiliki bahasa deskripsi yang dikenal sebagai WSDL, yang digunakan untuk menggambarkan layanan web. File WSDL ditulis dalam XML biasa. Alasan mengapa itu ada dalam XML adalah agar file dapat dibaca oleh bahasa pemrograman apa saja. Jadi jika aplikasi klien ditulis dalam .Net, maka itu akan memahami file XML. Demikian pula, jika aplikasi klien ditulis dalam bahasa pemrograman Java, maka itu juga akan dapat menginterpretasikan file WSDL. File WSDL dapat mengikat semuanya bersama-sama. Anda dapat membuat layanan web dalam bahasa .Net. Jadi di sinilah layanan diimplementasikan. Jika Anda tidak memiliki file WSDL dan ingin Java menggunakan layanan web, Anda akan membutuhkan banyak upaya coding untuk dapat mencapainya. Tetapi dengan adanya file WSDL yang terdapat di dalam XML dan dapat dipahami oleh bahasa pemrograman apa saja, Anda dapat dengan mudah memiliki Java yang menggunakan layanan web .Net. Oleh karena itu, jumlah upaya coding yang dilakukan akan menjadi sangat berkurang. Gambar 4.3 Contoh WSDL F. Fungsi Universal Discovery Description Integration (UDDI) pada SOAP ~ 27 ~

UDDI merupakan singkatan dari Universal Description, Discovery, and Integration dan dapat diartikan sebagai directory untuk menyimpan informasi mengenai web service. UDDI adalah XML-based standard yang menggambarkan, mempublikasikan, dan menemukan layanan web atau saat ini dapat dianalogikan sebagai search engine. Hal yang menjadi pembeda adalah search engine hanya berisi URL dari suatu website dan hanya memiliki satu format data yang dapat ditampilkan yaitu HTML. Sedangkan, UDDI memiliki kemampuan melakukan hal-hal yang tidak dapat dilakukan oleh search engine, seperti memanggil aplikasi lain yang terletak ditempat lain (remote call). UDDI merupakan kerangka platform-independen atau kerangka kerja terbuka yang dapat berkomunikasi melalui SOAP, CORBA, dan Java RMI Protocol. UDDI menggunakan Web Service Definition Language (WSDL) untuk menggambarkan interface ke Web Service yang kemudian terbentuk sebuah pesan Simple Object Access Protocol (SOAP) untuk dapat berkomunikasi dengan layanan web yang diinginkan. UDDI bersama dengan SOAP dan WSDL merupakan tiga pondasi standar dasar layanan web. Registri UDDI dapat dicari dengan berbagai kriteria untuk menemukan semua jenis layanan yang ditawarkan oleh bisnis. Selain itu, UDDI terdiri dari dua bagian yaitu: • Direktori seluruh metadata layanan web termasuk pointer ke WSDL-nya • Satu set definisi jenis port WSDL untuk memanipulasi dan mencari registrasi tersebut. Skema XML UDDI mendefinisikan empat tipe data inti untuk informasi bisnis dan layanan yang masing-masing memiliki struktur data berbasis XML yang berisi bidang wajib dan opsional. Keempat tipe data itu disebut businessEntity, businessService, bindingTemplate, dan tModel. Hal itu dapat digunakan untuk mewakili tiga jenis informasi yang terkandung dalam tiga elemen UDDI. Ketiga elemen tersebut yaitu: 1. Halaman putih yang berisi informasi dasar tentang perusahaan dan bisnisnya. Informasi tersebut dapat berupa alamat, nomor telepon, nama bisnis, NPWP dan lainnya. Informasi ini penting bagi pihak lainnya yang ingin mengetahui layanan web perusahaan berdasarkan identifikasi bisnis. Struktur businessEntity digunakan untuk mewakili tingkat informasi ini. 2. Halaman kuning berisi rincian lebih lanjut tentang perusahaan. Pada halaman ini digunakan skema kategorisasi industri yang diterima secara umum, kode industri, kode produk, kode identifikasi bisnis dan sejenisnya untuk memudahkan perusahaan mencari melalui daftar dan menemukan apa yang mereka inginkan. Struktur businessService dirancang untuk mewakili tingkat klasifikasi ini dan businessEntity dapat mereferensikan banyak struktu businessService. 3. Halaman hijau berisi informasi teknis mengenai layanan web. Informasinya dapat berupa lokasi URL, data terkait untuk menemukan dan menjalankan layanan web, dan juga informasi yang tidak terkait secara langsung dengan layanan web seperti telepon, email, dan file transfer protocol. Struktur bindingTemplate dan tModel digunakan pada tingkat deskripsi layanan ini. Manfaat UDDI ~ 28 ~

Industri atau perusahaan dari berbagai ukuran bisa mendapatkan keuntungan dari UDDI. Sebelum UDDI, standar Internet belum ada, dapat digunakan oleh perusahaan untuk memberikan informasi tentang produk mereka dan layanan untuk bisnis dan mitra mereka. Juga tidak ada cara untuk mengintegrasikan ke dalam sistem dan proses masing-masing. 1. Sehingga menemukan bisnis yang tepat dalam jutaan bisnis online saat ini menjadi mungkin 2. Setelah pilihan untuk menentukan bagaimana bisnis ditemukan untuk memulai bisnis 3. Memperluas pelanggan baru dan meningkatkan akses ke pelanggan saat ini 4. Perluasan penjualan dan memperluas jangkauan pasar 5. Memenuhi kebutuhan, untuk mempromosikan kerjasama yang cepat dalam ekonomi Internet global, untuk menghilangkan hambatan-driven pengguna Gambar 4.4 Perbandingan WSDL dan UDDI ~ 29 ~

Pertemuan 5 Implementasi Dasar dari Simple Object Access Protocol (SOAP) A. Sub Pokok Bahasan 1. Pengenalan bahasa PHP 2. Implementasi SOAP menggunakan PHP B. Capaian Pembelajaran Mampu membangun fungsi dasar berdasarkan arsitektur teknologi SOAP menggunakan bahasa PHP. (CPMK11-S1), (CPMK11-P1), (CPMK11-K1). C. Pengenalan bahasa PHP PHP adalah salah satu bahasa pemrograman yang wajb dipelajari dalam hal pengembangan website. Karena, PHP adalah bagian yang dapat membuat website Anda menjadi lebih dinamis. Tidak hanya itu, PHP merupakan salah satu bahasa pemrograman yang dapat berinteraksi langsung dengan database. PHP adalah singkatan rekursif untuk \"PHP: Hypertext Preprocessor\", yaitu bahasa pemrograman yang digunakan secara luas untuk penanganan pembuatan dan pengembangan sebuah situs web dan bisa digunakan bersamaan dengan HTML. PHP adalah bagian dari bahasa skrip, seperti JavaScript dan Phyton. Mengutip modul Dasar-Dasar PHP dari dinus.ac.id, PHP merupakan bahasa script yang dijalankan pada sisi server (SSS: Server Side Scripting). Database yang didukung PHP antara lain: MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC. PHP adalah software Open Source, bebas untuk diunduh dan digunakan. PHP juga banyak diaplikasikan untuk pembuatan program-program seperti misalnya sistem informasi klinik, rumah sakit, akademik, keuangan, manajemen aset, manajemen bengkel dan lain-lain.Penerapan PHP saat ini juga banyak ditemukan pada proyek-proyek pemerintah seperti e-budgetting, e-procurement, e-goverment dan e-e lainnya. ~ 30 ~

Gambar 5.1 Penggunaan PHP pada aplikasi matahari mall Sintaks Dasar PHP Dalam menulis Script PHP, selalu diawali dengan tanda <?php dan diakhiri dengan tag ?>. Pada block code berikut, kita akan menggunakan kedua tanda tersebut agar sistem mendeteksi script kita sebagai PHP, bukan HTML biasa. Gambar 5.2 Contoh program yang menggunakan bahasa PHP Setiap kali kamu menulis script program, kamu wajib memberikan tanda titik koma “;” pada bagian akhir baris program tersebut. Jika tidak maka akan muncul pesan error dan program tidak bisa dijalankan. Perlu kamu ketahui pula, didalam script php, kita juga bisa menyisipkan komentar yang berfungsi untuk memberi tahu keterangan, atau fungsi suatu baris kode. Kalo kamu suka berbagi informasi dan suka menyajikan informasi secara detail maka penggunaan komentar sangat cocok untuk kamu. Kamu bisa menyisipkan komentar dengan diawali tanda “//”. Tenang saja, penggunaan komentar tidak akan mengganggu kinerja program karena sistem akan mengabaikan komentar. Variabel digunakan untuk menyimpan data berupa teks, angka, dan yang lainnya. Nilai variabel dapat berubah seiring script code atau perintah yang kamu input. Berikut ini adalah hal-hal yang patut kamu perhatikan mengenai variable PHP: ~ 31 ~

1. Di dalam PHP, variabel tidak perlu dideklarasikan sebelum menambahkan nilai dan diawali tanda “$”. PHP secara otomatis mengkonversi variabel ke tipe data yang benar berdasarkan nilai atau valuenya. 2. Setelah mendeklarasikan variabel, variabel yang sama bisa digunakan kembali melalui perintah tertentu. 3. Assignment operator dalam PHP berupa tada sama dengan (=) yang digunakan untuk menambahkan nilai atau value ke variabel-variabel PHP: Dalam mendeklarasikan variabel, kamu cukup menulis perintah $nama_variabel = value; Gambar 5.2 Contoh deklrasi variable yang menggunakan bahasa PHP Pada contoh diatas, kita membuat 2 variabel dengan tipe data string dan angka. Serta menampilkan nilai dengan statement Echo. Statement Echo dalam PHP kebanyakan digunakan untuk menampilkan output data pada browser atau website. Tipe Data Di Dalam PHP Ada beberapa tipe data yang bisa kamu gunakan ketika mendeklarasikan variabel. Variabel dapat menampung beragam tipe data dan setiap tipenya memiliki fungsi dan hal yang berbeda-beda. Tipe Data PHP: 1. String 2. Integer 3. Float 4. Boolean 5. Array String ~ 32 ~

String merupakan tipe data berupa sejumlah karakter atau huruf seperti “Selamat Pagi Dunia”. Nilai String disisipkan antara tanda kutip satu (‘ ‘) maupun kutip dua (“ ”) : Gambar 5.3 Contoh String Integer Tipe data integer adalah angka non-desimal antara -2,147.483.648 dan 2.147.483.647. Aturan untuk Tipe Data Integer: 1. Integer harus memiliki setidaknya satu digit 2. Bilangan bulat tidak boleh memiliki titik desimal 3. Integer dapat berupa positif atau negatif 4. Bilangan bulat dapat ditentukan dalam: desimal (basis 10), heksadesimal (basis 16), oktal (basis 8), atau notasi biner (basis 2) Dalam contoh berikut $ x adalah bilangan bulat. Fungsi PHP var_dump () mengembalikan tipe data dan nilai: Gambar 5.4 Contoh Integer Float Berlawanan dengan Integer, Float adalah tipe data yang mengandung nilai desimal atau berbentuk eksponensial. Penting kamu ketahui bahwa penulisan angka desimal dalam PHP mengunakan titik (.) bukan koma (,). Dalam contoh berikut Variabel $x adalah float: ~ 33 ~

Gambar 5.5 Contoh Float Boolean Tipe data boolean merepresentasikan 2 statement yakni: TRUE atau FALSE, True berarti nilai atau valuenya Benar, sedangkan False berarti Salah. Umumnya Boolean digunakan untuk pengujian kondisi. Gambar 5.6 Contoh Boolean Array Array merupakan kode dalam PHP dengan fungsi untuk menyimpan beberapa nilai dalam satu variabel. Jadi kamu tidak perlu repot-repot memberikan variable pada setiap nilai yang akan kamu input. Berikut ini contohnya: Gambar 5.7 Contoh Array Conditional Statement PHP Conditional Statement digunakan untuk menjalankan perintah tertentu berdasarkan kondisi yang kamu input misalnya: If-Else Statement ~ 34 ~

Gambar 5.8 Contoh Array Pada kutipan Code diatas, sistem akan menghasilkan output “Selamat Sore” Jika Variabel $a lebih kecil dari 20 dan menghasilkan output “Selamat Malam” jika lebih besar dari 20. FOR Kode FOR pada PHP di gunakan untuk melakukan perulangan atau proses secara berulang hingga kondisi akhir yang di persyaratkan tercapai. Kode ini umumnya di gunakan untuk mencetak record dari database sehingga semua record di tampilkan ( satu per satu ) hingga kondisi akhir yang di persyaratkan tercapai yaitu record yang terakhir, misalnya dalam suatu table pada database terdapat 100 record, maka untuk menampilkan semua record di perlukan proses perulangan hingga 100 kali. Struktur utama fungsi FOR adalah sebagai berikut: Gambar 5.9 Contoh FOR 1. Ekspresi pertama (ekspresi1) di evaluasi atau di jalankan tanpa syarat pada awal perulangan, “ekspresi1” biasanya berupa variabel yang memiliki nilai yang di gunakan sebagai nilai awal suatu perulangan. 2. Ekspresi kedua (ekspresi2) di evaluasi pada awal setiap perulangan, jika hasil evaluasi bernilai TRUE ( kondisi terpenuhi ) maka perulangan di lanjutkan, jika hasil evaluasi bernilai FALSE ( kondisi tidak terpenuhi ) maka perulangan di hentikan. ~ 35 ~

3. Ekspresi ketiga (ekspresi3) di evaluasi pada akhir setiap perulangan, “ekspresi3” berisi perintah yang harus di lakukan apabila hasil evaluasi “ekspresi2” bernilai TRUE dan perulangan di lanjutkan. Silahkan perhatikan contoh sederhana perulangan dengan FOR di bawah ini, kode di bawah ini akan menampilkan angka 1 sampai 10: Gambar 5.9 Contoh FOR dengan variable D. Implementasi SOAP menggunakan PHP Untuk mengimplementasikan web service dengan menggunakan SOAP saat ini adalah mudah, karena kita bisa menggunakan NuSOAP. NuSOAP, yang dibuat oleh NuSphere dan Dietrich Ayala ini, merupakan kumpulan class yang khusus digunakan untuk mengimplementasikan web server baik menggunakan protokol SOAP maupun WSDL. Namun dalam pembahasan kali ini sementara hanya akan dibahas khusus implementasi SOAP nya saja. Anda bisa mengunduh NuSOAP ini di sourceforge. Setelah Anda unduh, dan diekstrak filenya, Anda akan mendapatkan sebuah folder bernama /lib. Di dalam folder /lib inilah kumpulan-kumpulan class ini tersimpan dan kita tinggal memanfaatkannya saja. Berikut studi kasus sederhana yaitu untuk operasi aritmatika. Adapun gambaran contohnya sebagai berikut. Di komputer A, dalam hal ini bertindak sebagai client akan dibuat sebuah script untuk menjumlahkan dua bilangan. Namun untuk mendapatkan hasil penjumlahannya, komputer A ini akan meminta bantuan komputer B. Dengan demikian komputer A ini nantinya akan melakukan call/request ke komputer B untuk menjumlahkan 2 bilangan, lalu komputer B yang bertindak sebagai server ini menghasilkan response berupa hasil penjumlahannya. Hasil response ini kemudian dibaca oleh komputer A, lalu ditampilkan hasilnya di komputer A. Bagaimana cara mengimplementasikan kasus di atas? Ini dia caranya. Pertama, pastikan Anda sudah mendownload NuSOAP nya untuk mendapatkan folder /lib nya. Selanjutnya folder /lib ini sama-sama diletakkan di komputer A maupun komputer B. Nah.. selanjutnya, kita siapkan script PHP di komputer B yang nantinya berfungsi untuk menangkap call dari komputer A dan selanjutnya memberikan response. Ini dia scriptnya: ~ 36 ~

Gambar 6.1 server.php Keterangan: Setiap method yang dibuat, nama method harus diregisterkan dengan perintah Gambar 6.2 Register method Langkah berikutnya, kita tulis script yang nantinya diletakkan di komputer A di sisi client. Gambar 6.3 client.php Jika script client.php ini dijalankan di komputer client (dalam hal ini komputer A), maka akan menghasilkan output sbb: ~ 37 ~

Gambar 6.4 client.php pada browser Anda bisa mengimplementasikan NuSOAP ini dengan komputer di rumah (localhost) sebagai client dan server hosting. Jadi Anda upload script server.php nya ke hosting dan juga folder /lib nya. Sedangkan script client.php Anda simpan di localhost. Kemudian pada proses instansiasi. Gambar 6.5 nusoap client Anda tinggal tentukan URL nya yang diarahkan ke script server.php di server hosting. Kemudian bagaimana jika, dalam script server.php nya ingin dibuat lebih dari satu method, ya cukup buat saja beberapa method yang diinginkan dan jangan lupa registerkan. Contoh: Gambar 6.6 server.php dan berikut ini contoh script client.php nya. ~ 38 ~

Gambar 6.7 client.php Jika Anda penasaran bagaimana format XML yang dikirim ke server pada proses call/request untuk kasus di atas, Anda bisa tambahkan dengan perintah: Gambar 6.8 client request Contoh: Gambar 6.9 client.php Setelah Anda jalankan script client.php di atas, kemudian melihat sourcenya di browser maka Anda akan dapatkan format XML SOAP nya sebagai berikut: ~ 39 ~

Gambar 6.10 Hasil running Demikian juga apabila Anda ingin melihat format XML response yang dikirimkan oleh server, yaitu dengan menambahkan perintah: Gambar 6.11 client response Contoh: Gambar 6.12 client.php dan bentuk format XML response dari server adalah ~ 40 ~

Gambar 6.13 Hasil running ~ 41 ~

Pertemuan 6 Application Programming Interface (API) A. Sub Pokok Bahasan 1. Pengenalan API 2. Pengenalan Representational State Transfer (REST) API 3. Metode REST API B. Capaian Pembelajaran Mampu memahami fungsi dan arsitektur teknologi API dalam mendukung pengembangan SOA. (CPMK11-S1), (CPMK11-P1), (CPMK11-K1). C. Pengenalan API API adalah mekanisme yang memungkinkan dua komponen perangkat lunak untuk saling berkomunikasi menggunakan serangkaian definisi dan protokol. Misalnya, sistem perangkat lunak badan meteorologi, klimatologi, dan geofisika (BMKG) berisi data cuaca harian. Aplikasi cuaca di ponsel Anda “berkomunikasi” dengan sistem ini melalui API dan menampilkan pembaruan cuaca harian di ponsel Anda. API merupakan kepanjangan dari Application Programming Interface (Antarmuka Pemrograman Aplikasi). Kata Aplikasi pada API merujuk pada perangkat lunak dengan fungsi yang berbeda. Kata Antarmuka dapat diartikan sebagai kontrak layanan antara dua aplikasi. Kontrak ini menjelaskan cara keduanya saling berkomunikasi dengan menggunakan permintaan (request) dan respons (response). Dokumentasi API keduanya berisi informasi cara developer menyusun permintaan dan respons tersebut. Arsitektur API biasanya dijelaskan dalam kaitannya dengan klien dan server. Aplikasi yang mengirimkan permintaan disebut sebagai klien dan aplikasi yang mengirimkan respons disebut sebagai server. Sehingga untuk contoh cuaca di atas, basis data cuaca BMKG adalah servernya sedangkan aplikasi seluler adalah kliennya. Berdasarkan waktu dan alasan pembuatan, terdapat empat cara kerja API. 1. API SOAP API ini menggunakan Simple Object Access Protocol. Klien dan server saling bertukar pesan menggunakan XML. API yang kurang fleksibel ini populer di masa lalu. 2. API RPC API ini disebut sebagai Panggilan Prosedur Jarak Jauh (Remote Procedure Calls) Klien menjalankan fungsi (atau prosedur) pada server, dan server akan mengirimkan output kembali ke klien. ~ 42 ~

3. API Websocket API Websocket adalah pengembangan API web modern lain yang menggunakan objek JSON untuk meneruskan data. API WebSocket mendukung komunikasi dua arah antara aplikasi klien dan server. Server dapat mengirimkan pesan callback ke klien yang terhubung, menjadikannya lebih efisien daripada API REST. 4. API REST API REST merupakan API yang paling populer dan fleksibel di web saat ini. Klien akan mengirimkan permintaan ke server sebagai data. Server akan menggunakan input klien untuk memulai fungsi internal dan mengembalikan data output ke klien. Lihat API REST selengkapnya di bawah ini. D. Pengenalan Representational State Transfer (REST) API REST merupakan kepanjangan dari Representational State Transfer. REST mendefinisikan fungsi-fungsi seperti GET, PUT, DELETE, dll. yang dapat digunakan klien untuk mengakses data server. Klien dan server saling bertukar data dengan menggunakan HTTP. Fitur utama API REST adalah sifat stateless-nya. Bersifat stateless berarti server tidak menyimpan data klien di antara permintaan. Permintaan klien ke server mirip dengan URL yang Anda ketik di peramban untuk mengunjungi sebuah situs web. Respons dari server berupa data plain tanpa rendering grafis umum halaman web. API Web atau API Layanan Web merupakan sebuah antarmuka pemrosesan aplikasi antara server web dan peramban web. Semua layanan web merupakan API, tetapi tidak semua API merupakan layanan web. API REST merupakan tipe khusus API Web yang menggunakan gaya arsitektur standar seperti yang dijelaskan di atas. Perbedaan istilah- istilah dalam API, seperti API Java atau API layanan, muncul karena secara historis API telah dibuat sebelum world wide web ada. API web modern adalah API REST dan istilah-istilah tersebut dapat digunakan bergantian. Integrasi API adalah komponen perangkat lunak yang secara otomatis memperbarui data antara klien dan server. Beberapa contoh integrasi API terjadi saat sinkronisasi data otomatis ke cloud dari galeri gambar ponsel Anda, atau sinkronisasi waktu dan tanggal secara otomatis di laptop Anda saat Anda berada di zona waktu lain. Korporasi juga dapat menggunakannya untuk mengotomatisasi berbagai fungsi sistem secara efisien. Apa saja keuntungan REST API? API REST menawarkan empat keuntungan utama: 1. Integrasi API digunakan untuk mengintegrasi aplikasi baru dengan sistem perangkat lunak yang sudah ada. Hal ini meningkatkan kecepatan pengembangan, karena masing- masing fungsionalitas tidak harus ditulis dari scratch. Anda dapat menggunakan API untuk memanfaatkan kode yang ada. 2. Inovasi Dengan datangnya aplikasi baru, seluruh industri dapat mengalami perubahan. Bisnis harus segera merespons dan mendukung deployment cepat layanan ~ 43 ~

inovatif. Bisnis dapat melakukannya dengan membuat perubahan pada tingkat API tanpa harus menulis ulang seluruh kode. 3. Ekspansi API memberikan peluang yang unik bagi bisnis untuk memenuhi kebutuhan kliennya di seluruh platform. Misalnya, API peta memungkinkan integrasi informasi peta melalui situs web, Android, iOS, dll. Bisnis dapat memberikan akses serupa ke basis data internal mereka dengan menggunakan API gratis atau berbayar. 4. Kemudahan dalam pemeliharaan API bertindak sebagai gateway antara dua sistem. Masing-masing sistem wajib melakukan perubahan internal agar API tidak terpengaruh. Dengan cara ini, perubahan kode apa pun di kemudian hari yang dilakukan oleh salah satu pihak tidak akan berdampak pada pihak lainnya. Apa saja tipe yang API miliki? API digolongkan berdasarkan arsitektur dan ruang lingkup penggunaannya. Kita telah mengetahui tipe-tipe utama arsitektur API, jadi mari kita lihat ruang lingkup penggunaannya. 1. API Privat API ini bersifat internal di korporasi dan hanya digunakan untuk menghubungkan sistem serta data dalam bisnis. 2. API Publik API ini bersifat terbuka bagi publik dan dapat digunakan oleh siapa saja. Ada yang menerapkan otorisasi dan biaya yang terkait dengan jenis API ini, tetapi ada juga yang tidak. 3. API Partner Hanya dapat diakses oleh developer eksternal resmi untuk membantu kemitraan bisnis ke bisnis. 4. API Komposit API ini menggabungkan dua atau beberapa API yang berbeda untuk menangani persyaratan atau perilaku sistem yang kompleks. Apa itu titik akhir API dan mengapa hal tersebut penting? Titik akhir API merupakan titik kontak terakhir dalam sistem komunikasi API. Titik akhir API mencakup URL server, layanan, dan lokasi digital spesifik lainnya tempat informasi tersebut dikirim dan diterima antarsistem. Titik akhir API sangat penting bagi korporasi karena dua alasan utama: 1. Keamanan Titik akhir API membuat sistem menjadi rentan terhadap serangan. Pemantauan API sangat penting untuk mencegah terjadinya penyalahgunaan. 2. Performa Titik akhir API, terutama yang memiliki lalu lintas tinggi, dapat menyebabkan kemacetan (bottleneck) dan memengaruhi performa sistem. ~ 44 ~

Bagaimana cara mengamankan API REST? Seluruh API harus diamankan dengan autentikasi dan pemantauan yang tepat. Dua cara untuk mengamankan API REST meliputi: 1. Token autentikasi Ini digunakan untuk mengizinkan pengguna melakukan panggilan API. Token autentikasi memeriksa bahwa pengguna adalah pengguna yang sebenarnya dan bahwa mereka memiliki hak akses untuk panggilan API tersebut. Misalnya, saat Anda masuk ke server email, klien email Anda menggunakan token autentikasi untuk mengamankan akses. 2. Kunci API Kunci API memverifikasi program atau aplikasi yang membuat panggilan API. Kunci-kunci ini mengidentifikasi aplikasi dan memastikan bahwa aplikasi tersebut memiliki hak akses yang diperlukan untuk melakukan panggilan API tertentu. Kunci API tidak seaman token, tetapi kunci API ini memungkinkan pemantauan API untuk mengumpulkan data berdasarkan penggunaan. Anda mungkin pernah memperhatikan string panjang berisi karakter dan angka di URL peramban saat Anda mengunjungi situs web. String ini merupakan kunci API yang digunakan situs web untuk membuat panggilan API internal. Bagaimana cara membuat API? Uji kelayakan dan upaya perlu dilakukan untuk membangun API yang dipercaya dan diinginkan oleh para developer lain. Lima langkah untuk menghasilkan desain API berkualitas tinggi: 1. Merencanakan API Spesifikasi API, seperti OpenAPI, menyediakan cetak biru untuk desain API Anda. Akan lebih baik untuk memikirkan berbagai kasus penggunaan yang berbeda sebelumnya dan memastikan kesesuaian API terhadap standar pengembangan API saat ini. 2. Membangun API Perancang API membuat prototipe API dengan menggunakan kode boilerplate. Setelah prototipe tersebut diuji, developer dapat menyesuaikannya dengan spesifikasi internal. 3. Uji API Pengujian API sama seperti pengujian perangkat lunak, serta harus dilakukan untuk mencegah adanya bug dan kerusakan. Alat pengujian API dapat digunakan untuk menguji kekuatan API terhadap serangan siber. 4. Mendokumentasikan API Meskipun API cukup mudah dipahami, dokumentasi API digunakan sebagai panduan untuk meningkatkan kegunaan. API yang terdokumentasi dengan baik, yang menawarkan berbagai fungsi dan kasus penggunaan, cenderung lebih populer dalam arsitektur berorientasi layanan. 5. Memasarkan API Mencantumkan API Anda dapat memungkinkan Anda untuk memonetisasinya. ~ 45 ~

E. Metode REST API Langkah-langkah untuk menerapkan API baru meliputi: 1. Mendapatkan kunci API. Hal ini dapat dilakukan dengan membuat akun terverifikasi menggunakan penyedia API. 2. Siapkan klien HTTP API. Alat ini memungkinkan Anda untuk menyusun permintaan API secara mudah dengan menggunakan kunci API yang diterima. 3. Jika Anda tidak memiliki klien API, Anda dapat mencoba untuk menyusun permintaan tersebut secara mandiri di peramban Anda dengan mengacu pada dokumentasi API. 4. Setelah Anda merasa nyaman dengan sintaksis API baru, Anda dapat mulai menggunakannya di kode Anda. URL Design Penamaan dan pola url yang konsisten akan menghasilkan API yang baik dan mudah dipahami. Berikut contohnya url untuk manipulasi data produk: 1. /produk 2. /produk/123 3. /produk/create 4. /produk/update/123 5. /produk/delete/123 Lima url di atas sekali baca langsung paham kan, nomor satu untuk menampilkan seluruh produk dan nomor selanjtunya tidak perlu saya jabarkan lagi. HTTP Verb Setiap request yang dilakukan pasti mendefinisikan metode http agar API tahu apa yang diinginkan. Berikut empat http request yang sering dipakai: 1. GET Digunakan ketika ingin menampilkan data 2. POST Digunakan ketika ingin menyimpan data 3. PUT Digunakan ketika ingin memperbarui data 4. DELETE Digunakan ketika ingin menghapus data Dengan mengikuti standar http di atas, jangan sampai menggunakan DELETE ketika ingin menampilkan data. Response Code Response Code adalah standar kode respons yang digunakan untuk menginformasikan suatu permintaan. Berikut contohnya: 1. 200 (Success) Permintaan sukses ~ 46 ~

2. 400 (Bad Request) Data yang dipakai saat permintaan tidak sesuai 3. 401 (Unauthorized) Kode yang menandakan bahwa permintaan membutuhkan autentikasi (akses khusus seperti username dan password) 4. 404 (Not Found) Url yang diminta tidak ditemukan 5. 500 (Internal Server Error) Untuk menginformasikan bahwa terdapat kesalahan teknis dari sisi API atau server Response Format Standarisasi struktur format response yang konsisten setiap kali permintaan biasanya berbentuk JSON atau XML. Contoh seperti berikut { status : 200, message : ‘Success’, data: ‘Selamat datang di rest apiku’ } ~ 47 ~

Pertemuan 7 Implementasi Dasar dari Representational State Transfer (REST) Application Programming Interface (API) A. Sub Pokok Bahasan 1. Pengenalan framework Laravel 2. Arsitektur Model, View, dan Controller pada Laravel 3. Implementasi fungsi dasar REST API menggunakan Laravel Eloquent: API Resources B. Capaian Pembelajaran Mampu membangun fungsi dasar berdasarkan arsitektur teknologi API dalam mendukung pengembangan SOA. (CPMK11-S1), (CPMK11-P1), (CPMK11-K1). C. Pengenalan framework Laravel Jumlah sub-bab tergantung kebutuhan materi dan mengikuti preferensi penulis. D. Arsitektur Model, View, dan Controller pada Laravel E. Implementasi fungsi dasar REST API menggunakan Laravel Eloquent: API Resources ~ 48 ~

Pertemuan 8 Ujian Tengah Semester ~ 49 ~

Pertemuan 9 Proposal Proyek Pembangunan Perangkat Lunak Berbasis Service A. Sub Pokok Bahasan 1. Sistematika proposal 2. Ruang lingkup studi kasus 3. Linimasa pengerjaan 4. Teknologi yang digunakan B. Capaian Pembelajaran Mampu membuat proposal proyek terkait pembangunan perangkat lunak berbasis service dengan studi kasus. (CPMK11-S2), CPMK11-K1), (CPMK11-K1), (CPMK11-K2). C. << Sub Bab >> Jumlah sub-bab tergantung kebutuhan materi dan mengikuti preferensi penulis. D. << Sub Bab >> E. << Sub Bab >> F. << Sub Bab >> G. << Sub Bab >> H. << Sub Bab >> ~ 50 ~


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook