PENGAMANAN WEB SERVICE STUDI KASUS SISTEM INFORMASI AKADEMIK STMIK EL RAHMA Eko Yunianto1, Eko Riswanto2 Teknik Informatika STMIK El Rahma, 2 Teknik Informatika STMIK El Rahma
1
e-mail:
[email protected],
[email protected]
Abstract Interoperability is a urgent part in building a information system. The more dynamic and flexible a information system, it will be easier to do development. One form of the flexibility of the system is to utilize the web service. With the opening of a service system, we need a data security. One method is OAuth 2 which will perform the data access restrictions for each client. From the concept of interoperability of web service systems are built then for its implementation can be assembled an Academic Information System. This system is built with a simple server from Node JS, using technology as a Restful web service technology, OAuth 2 as a method of securing resources and Mongo DB as a data storage medium. While the framework is used at the core of the system is Sails JS which is one of the Realtime MVC framework on Node JS with a little coding (less coding). Keywords: Node JS, Restful, Mongo DB, web service, OAuth 2, Sails JS PENDAHULUAN Teknologi informasi terus berkembang denganmenggunakan teknologi-teknologi baru yang mendukungnya. Salah satu teknologi yang mendukung teknologi informasi adalah komputasi terdistribusi (distributed computing) yang memungkinkan dilakukan komputasi pada banyak mesin, dan hasilnya dimanfaatkan oleh banyak mesin. Perkembangan teknologi ini terjadi setelah ditemukanya teknologi web. Teknologi komputasi terdistribusi yang di maksud adalah web service. Konsep web service dikembangkan untuk mengintegrasikan sistem-sistem informasi tanpa mempermasalahkan perbedaanplatform yang digunakan oleh masing-masing sumber [1]. Web service merupakan sebuah cara terbaik dan baru untuk membangun sistem perangkat lunak yang berorientasi pada distribusi komponen. Teknologi web service masih dikembangkan, sehingga untuk membangun sebuah layanan web yang mampu mengintegrasikan banyak sistem dengan menciptakan sebuah sistem terintegrasi yang handal dan aman dari serangan masih sulit untuk dilakukan. Permasalahan yang sering terjadi adalah dari aspek keamanan dan bagaimana cara mengintegrasikan dan mengembangkan sebuah sistem denganberbagai macam teknologi yang berbeda [2]. Salah satu metode pengaman adalah denganmelakukan pembatasan akses data. Pembatasan akses yang di maksud adalah interaksi yang di ijinkan oleh pengguna terhadap aplikasi pihak ketiga yang akan mengakses data pada server. Metode pengamanan ini disebut dengan OAuth [3]. STMIK El Rahma yang selanjutnya di sebut dengan El Rahma adalah salah satu institusi pendidikan tinggi yang mempunyai lokasi di Yogyakarta. Sebagai institusi pendidikan, El Rahma mempunyai sebuah sistem manajemen untuk mengelola kegiatan akademik yang selanjutnya disebut dengan SIMAK. SIMAK El Rahma dibangun berbasis web application dengan Apache Web Server yang selanjutnya disebut Apache dan menggunakan PHP Hypertext Preprocessor yang selanjutnya disebut PHP. SIMAK El Rahma mempunyai tiga fungsi pokok yaitu pengisian Kartu Rencana Studi (KRS), penilaian hasil belajar mahasiswa oleh dosen dan pencetakan Kartu Hasil Studi (KHS)
termasuk juga transkrip nilai. Sebuah aplikasi yang berbasis web application memerlukan resource yang besar karena semua data dibebankan dan di proses oleh server. Karena hal tersebut, jika sebuah web application diakses oleh banyak user dalam satuan waktu, akan membuat respon dari sistem menjadi lambat. Ini terjadi di semua sistem yang berbasis web application. Hasil survei yang dilakukan oleh Juniper Research dimana rata-rata pengguna menunggu untuk sebuah halaman web adalah 4 detik. Sedangkan peforma PHP dan apache mempunyai tren waktu tunggu naik setiap pertambahan pengguna [4]. METODE PENELITIAN 1. Metode Penelitian a. Metodologi Analisis Metode yang dipakai untuk menganalisa dan merancang web service pada SIMAK El Rahma ini adalah . i. Observasi Observasi dilakukan dengan cara melakukan test secara langsung dengan menggunakan SIMAK El Rahma yang berjalan. ii. Literatur Metodologi ini digunakan untuk menambah data dan informasi guna menunjang pembangunan sistem dengan mempelajari buku-buku yang berisi konsep dan teori yang akan digunakan sebagai dasar dari pengembangan penulisan laporan ini. b. Metodologi Perancangan Tahapan dalam metodologi menggunakan metode Software Development Life Cycle (SDLC) dengan urutan sebagai berikut[5]. i. System Analysis (Analisa Sistem) Karena piranti lunak selalu merupakan bagian yang lebih besar, tahap ini dimulai dengan membuat daftar kebutuhan untuk setiap elemen sistem dan mengalokasikan sebagian subset dari kebutuhan tersebut ke dalam piranti lunak. Tahapan ini sangat penting ketika piranti lunak harus bekerja sama dengan elemen lain seperti piranti keras, masyarakat dan basis data. Analisis dan perancangan sistem meliputi pengumpulan kebutuhan pada tingkat sistem ditambah dengan sedikit analisis dan perancangan tingkat akhir. ii. SoftwareRequirementsAnalysis(AnalisaKebutuhanSistem) Proses pengumpulan kebutuhan dilakukan dengan lebih intens dan lebih fokus pada piranti lunak. Untuk mengetahui sifat dari program yang akan dibuat, perancang piranti lunak harus mengerti baik ruang lingkup informasi piranti lumak maupun fungsi-fungsi, fitur dan antarmuka yang dibutuhkan. Kebutuhan yang harus dipenuhi baik sistem maupun piranti lunak akan didokumentasikan dan kemudian di-review bersama-sama dengan pelanggan. iii. Design (Desain) Perancangan piranti lunak adalah proses yang terfokus pada 3 atribut yang berbeda dari program struktur data, arsitektur piranti lunak, dan detail prosedur. Proses perancangan ini menerjemahkan kebutuhan menjadi sebuat representasi piranti lunak yang dapat diuji kualitasnya sebelum proses coding dimulai. Sama halnya dengan kebutuhan sistem, hasil peranancangan ini juga didokumentasikan dan menjadi bagian dari konfigurasi piranti lunak. iv. Coding Hasil rancangan dari tahap di atas harus diterjemahkan menjadi bahasa yang
IJCCS Vol. x, No. x, July 201x : first_page – end_page
3
dapat dibaca oleh mesin, yang akan dilakukan dalam tahap coding. Jika perancangan dilakukan dengan detil, coding akan dapat dilakukan secara mudah. v. Testing Sesudah code dihasilkan, testing program dimulai. Proses testing difokuskan pada logika piranti lunak, memastikan bahwa setiap pernyataan sudah di uji, dan pada fungsi eksternal, yang dilakukan dengan menjalankan tes untuk memastikan input yang dimasukkan akan menghasilkan hal yang sama dengan hasil yang diinginkan. vi. Maintenance Piranti lunak pasti akan mengalami perubahan setelah dikirimkan ke pelanggan (salah satu pengecualian adalah embedded software). Perubahan akan terjadi karena error ditemukan, karena piranti lunak harus disesuaikan dengan linkungan eksternal, atau karena pelanggan membutuhkan peningkatan fungsi atau peforma. Perawatan sistem mengaplikasikan tahapan siklus hidup piranti lunak yang sebelumnya ke program yang sudah ada, bukan ke program yang baru. 2. Arsitektur Penyusun Sistem a. Mesin penyedia layanan Node.JS adalah sebuah platform untuk membangun real-time application. NodeJS dapat menangani event input-output server, dengan kata lain NodeJS dapat memungkinkan para developer Javascript untuk membuat event-drivenservers dalam JavaScript . Node JS adalah kompilasi dikemas Google mesin JavaScript V8, platform lapisan libUV abstraksi, dan perpustakaan inti, yang itu sendiri terutama ditulis dalam JavaScript [6]. Node.JS diciptakan oleh Ryan Dahl mulai tahun 2009, dan pertumbuhannya yang disponsori oleh Joyent, mantan atasannya. Tujuan asli Dahl adalah untuk membuat situs web dengan kemampuan push yang terlihat dalam aplikasi web seperti Gmail. Node.JS telah menjadi asynchronous framework popular untuk Javascript. Node JS merupakan aplikasi internet yang sangat scalable terutama web server. Program ini dituliskan dalam JavaScript, menggunakan event-driven, asynchronous I/O untuk meminimalkan overhead dan memaksimalkan skalabilitas. Node JS mengimplementasikan multipleWebsocket Servers dan mendukung protocol HTTP/1.1[6]. b. Media penyimpanan data Mongo DB adalah database dimana tiap tabel tidak memiliki relasi dengan tabel lainnya. Mongo DB berisi collection. Setiap collection terdiri dari documents. Setiap documents terdiri dari fields. Sebuah collections dapat di indexes, yang meningkatkan kinerja pengurutan data[7]. Ada 6 konsep yang harus di mengerti yaitu [8]: i. Mongo DB memiliki konsep yang sama dengan database lainnya seperti MySQL atau Oracle. Mongo DB dapat memiliki database lebih dari satu database, masingmasingnya bertindak sebagai “high level containers”. ii. Sebuah database dapat tidak memiliki collection atau lebih dari satu collection. Sebuah collection memiliki banyak kesamaan dengan table traditional pada database seperti MySQL. Sebuah collection dan tabel tradisional dalam hal ini dapat di anggap sama. iii. Sebuah database dapat tidak memiliki documents atau lebih dari satu documents. Sebuah documents dapat dianggap sama dengan sebuah row pada tabel tradisional. iv. Sebuah documents terdiri dari satu atau lebih fields atau columns. v. Indexes di Mongo DB seperti indexes di Relational Database Management System. vi. Cursors pada Mongo DB di gunakan untuk meminta atau memanggil data.
c. Teknik transfer data REST (Representational State Transfer) pertama kali di kenalkan oleh Roy Fielding pada disertasinya untuk memperoleh gelar Ph.D. Restful di desain berdasarkan cara kerja orientasi objek tetapi bukan arsitektur yang berorientasi pada object. REST merupakan salah satu jenis web service yang menerapkan konsep perpindahan antar state. State disini dapat digambarkan seperti jika browser meminta suatu halaman web, maka server akan mengirimkan state halaman web yang sekarang ke browser. Bernavigasi melalui link-link yang disediakan sama halnya dengan mengganti state dari halaman web. Begitu pula REST bekerja, dengan bernavigasi melalui link-link HTTP untuk melakukan aktivitas tertentu, seakan-akan terjadi perpindahan state satu sama lain. Perintah HTTP yang bisa digunakan adalah fungsi GET, POST, PUT atau DELETE. Balasan yang dikirimkan adalah dalam bentuk XML sederhana tanpa ada protokol pemaketan data, sehingga informasi yang diterima lebih mudah dibaca dan di-parsing disisi client [9]. d. Teknik pengamanan data
Gambar 1 Flow OAuth 2 [3] OAuth 2.0 authorization framework adalah aplikasi pihak ketiga yang membatasi akses pada HTTP. Pembatasan akses yang di maksud adalah interaksi yang di ijinkan oleh pengguna terhadap aplikasi pihak ketiga yang akan mengakses data pada server. Ptotokol OAuth 2.0 ini menggantikan protokol OAuth 1.0 [3]. Alur OAuth 2.0 authorization framework ditunjukkan oleh gambar 1. OAuth didefinisikan menjadi 4 aturan, yaitu : i. Penggunaan sumber pengguna Membutuhkan sebuah entitas dari pengguna untuk menjaga sumber data. Ketika sumber adalah seorang manusia maka akan di anggap sebagai pengguna biasa. ii. Penggunaan sumber server Pada server terdapat sebuah hosting server yang mempunyai kapabilitas untuk menerima, merespon dan memproteksi sumber dari permintaan menggunakan access token. IJCCS Vol. x, No. x, July 201x : first_page – end_page
5
iii. Pengguna Aplikasi membangun sebuah proteksi pada sumber data dimana untuk mengaksesnya harus menggunakan otoritas. Aturan pada sisi pengguna tidak berdampak pada implementasi aplikasi seperti di akses dari desktop, server dan perangkat lain. iv. Otoritas server Server memberikan sebuah access token setelah proses autentifikasi berhasil dilakukan. Access token ini akan digunakan sebagai kunci untuk melakukan akses pada sumber data. 3. Rancangan Sistem a. Diagram use case Sistem dirancang menggunakan metode Unified Modelling Language (UML). Tahapan pertama dari UML adalah membuat Use Case Diagram. Identifikasi aktor dan use case ini didasari pada kebutuhan fungsi-fungsi sistem. Kebutuhan akan fungsi ini diakomodir di use case. Selanjutnya use case menyediakan nilai hasil kepada actor. Atas dasar spesifikasi ini paling tidak di dapat cara menentukan actor[10]. Berdasarkan penjelasan mengenai use case, pemodelan sistem dilakukan untuk mendeskripsikan use case apa saja dan actor yang akan terlibat dalam sistem. Sedangkan secara aliran kerja, web service yang akan dibangun mengikuti alur data yang sudah ada seperti pada tabel 1. Tabel 1 Tabel requirement actor dan use case No Requirement Aktor Use-Case 1 Setelah terauthentikasi pada saat login, mahasiswa Mahasiswa Login dapat melihat daftar matakuliah tawaran, kemudian KRS melakukan pengisian KRS kemudian melakukan melakukan pencetakan KRS. 2 Mahasiswa melakukan kuliah selama satu semester Mahasiswa KHS sesuai dengan mata kuliah pada KRS kemudian dapat melihat daftar nilai pada matakuliah tertentu dan secara keseluruhan dalam KHS, kemudian mahasiswa dapat mencetak KHS dalam waktu tertentu dan atau keseluruhan 3 Dosen bisa melakukan pengisian nilai pada setiap Dosen Login mahasiswa yang di ampu setelah terauthentifikasi Form Nilai pada saat login 4 Admin setelah melakukan login mampu untuk Admin Login melakukan pengisian KRS, mengisi daftar nilai, dan KRS For juga melakukan pencetakan KHS m Nilai KHS
Dari tabel requirement actor dan use case bisa di bentuk sebuah relasi dari use case dan actor sebagai landasan peng pengerjaan berikutnya ditunjukkan gambar 2.
Gambar 2 . Use case diagram b. Diagram activity Diagram activity sangat berguna untuk memodelkan kegiatan yang akan dilakukan saat sebuah operasi dieksekusi dan untuk memodelkan hasil-hasil hasil hasil dari kegiatan kegiatan-kegiatan ini, seperti memodelkan event yang menyebabkan window akan ditampilkan atau ditutup[10].. Dibawah ini merupa merupakan simbol-simbol simbol yang ada pada diagram aktivitas. Activity diagram tentang pengisian KRS bisa dilihat pada gambar 3.
Gambar 3 Activity diagram pengisian KRS Sedangkan activity diagram untuk proses pemberian nilai dari dosen kepada sistem ditunjukkan unjukkan seperti pada gambar 4. 4 IJCCS Vol. x, No. x, July 201x : first_page – end_page
7
Gambar 4 Activity diagram pemberian nilai Activity diagram selanjutnya adalah diagram yang menggambarkan alur siswa dapat melakukan pengecekan nilai dan mencetak hasil belajar (KHS). Pada diagram ini digambarkan proses dari mulai melakukan login sampai dengan legalisasi oleh bagian admin. Proses secara lengkapnya bisa dilihat pada gambar 5.
Gambar 5Activity diagram KHS
c. DiagramSequence Sequence diagram secara grafis menggambarkan bagaimana objek berinteraksi satu sama lain melalui pesan pada eksekusi sebuah use case atau operasi. Sequence diagram mengilustrasikan bagaimana pesan terkirim dan diterima di antara objek dan dalam sekuensi/rangkaian[10]. Sequence diagram yang terbentuk meliputi sequence diagram pengisian krs seperti pada gambar 6, pemberian nilai seperti pada gambar 7 dan sequence diagram KHS seperti pada gambar 8. Ketiga sequence diagram tersebut menggambarkan alur data dari sistem informasi akademik yang di bangun pada penelitian. Sedangkan class diagram ditunjukkan oleh gambar 9.
Gambar 6 Sequence diagram pengisian KRS
IJCCS Vol. x, No. x, July 201x : first_page – end_page
9
Gambar 7Sequence diagram penilaian
Gambar 8Sequence diagram KHS
d. Diagram Class
Gambar 9Class 9 Diagram Sistem Informasi Akademik HASIL DAN PEMBAHASAN Penelitian ini memberikan 6 buah service untuk digunakan dalam mengembangkan aplikasi atau digunakan oleh service lain untuk bertukar informasi. Beberapa API yang disediakan adalah : 1. API mahasiswa yang digunakan untuk melakukan manipulasi data pada data mahasiswa. 2. API Dosen yang digunakan untuk melakukan manipulasi data pada data dosen. 3. API matakuliah yang digunakan untuk melakukan manipulasi manipulasi data pada data matakuliah. 4. API jurusan yang digunakan untuk melakukan manipulasi data pada data jurusan. 5. API nilai yang digunakan untuk memanipulasi data nilai pada tabel khs 6. API krs yang digunakan untuk melakukan manipulasi data pada data krs. 7. API khs yang digunakan untuk melakukan manipulasi data pada data khs. Selanjutnya pembatasan hak akses data terhadap web service Sistem Informasi Akademik menggunakan teknologi OAuth 2 dimana di bagi menjadi beberapa macam yaitu : 1. Admin, yaitu level akses tertinggi tertinggi yang diperbolehkan untuk melakukan akses ke semua API. 2. Second,, yaitu level akses II (dosen) yang diperbolehkan untuk melakukan pembaharuan data dosen dan input nilai pada form nilai. 3. Third,, yaitu level akses III (mahasiswa) yang diperbolehkan untuk melakukan pembaharuan data mahasiswa, krs dan melihat khs. IJCCS Vol. x, No. x, July 201x : first_page – end_page
11
Untuk Untuk melakukan evaluasi kinerja dari service digunakan beberapa aplikasi pendukung yaitu GNUplot (www.gnuplot.info/) yang merupakan aplikasi untuk mengenerate grafis dari sekumpulan data dan apache ab benchmark (httpd.apache.org/docs/2.2/programs/ab.html) dari apache yang digunakan untuk melakukan stress testing. Pada penelitian ini akan dilakukan testing dengan menggunakan concurency user sebanyak 100 dan dengan request dan dengan banyak request sampai dengan 5000. 1 Pengujian API web service tanpa OAuth 2
Gambar 10 Grafik stress testing pada API jurusan tanpa OAuth 2 Pengujian terhadap peforma dari API web service tanpa OAuth 2 dengan menggunakan ab benchmark dengan menggunakan 100 user dan dengan banyak request 5000 menghasilkan grafik seperti ditunjukkan pada gambar 10. 2 Pengujian API web service dengan OAuth 2 Pengujian terhadap peforma dari API web service dengan OAuth 2 dengan menggunakan ab benchmark dengan menggunakan 100 user dan dengan banyak request 5000 menghasilkan grafik seperti ditunjukkan pada gambar 11.
Gambar 11 Grafik stress testing pada API jurusan dengan OAuth 2
3 Komparasi API web service dengan dan tanpa OAuth 2 Untuk melakukan komparasi maka akan digabungkan data yang diambil pada gambar 3 dengan gambar 4 sehingga di peroleh grafik seperti gambar 12.
Gambar 12 Grafik komparasi stress testing pada API jurusan 4 Komparasi antara Sails-disk , Mongo DB dengan dan tanpa cahce Untuk melakukan perbandingan peforma web API, maka dilakukan komparasi dengan service yang sama dan dengan banyak user 100 dan total request sebanyak 50000 menghasilkan grafik perbandingan seperti pada gambar 13.
Gambar 13 Grafik komparasi stress testing dengan 50000 request dan 100 user Sedangkan jika dilakukan komparasi dengan menggunakan 100 user dan 100000 request menghasilkan grafik seperti pada gambar 14.
IJCCS Vol. x, No. x, July 201x : first_page – end_page
13
Gambar 14 Grafik komparasi stress testing dengan 100000 request dan 100 user KESIMPULAN Setelah dilakukan pengamatan, penelitian dan pengerjaan sistem pada bab sebelumnya, maka dapat diambil simpulan sebagai berikut. 1. Dengan membangun sebuah web service pada SIMAK El Rahma terdapat beberapa kesimpulan yaitu : a. Web services yang dibangun mampu untukmelayani banyak pengguna dalam waktu yangbersamaan dengan stabil. b. Teknologi Restfull pada web service merupakan teknologi baru yang lebih powerfull dibandingkan dengan SOAP dan WSDL. c. Implementasi Mongo DB pada web service memiliki peforma dan skalabilitas yang tinggi. 2. Penggunaan OAuth sebagai pengamanan pada web service mampu untuk membatasi akses data sehingga data aman sampai kepada kepada pengguna sesuaidengan tingkatan hak aksesnya. SARAN Berdasarkan analisis hasil dan pembahasan penelitian yang telah dilakukan, terdapat beberapa saran untuk sistem yang berjalan sebagai berikut. 1. Web services yang dibangun masih menggunakan protokol HTTP sehingga perlu menambah metode pengamanan transport data dengan mengaktifkan fasilitas Socket Secure Layer (SSL). 2. Metode Oauth yang dibangun masih digunakan sebagai pembatasan akses data saja, sehingga perlu dikembangkan untuk membuat layanan baru agar bisa digunakan sebagai Single Sign On (SSO) untuk integrasi dengan sistem lain.
DAFTAR PUSTAKA [1] Saputra, R dan Ahmad A, 2012, Integrasi Laporan Demam Berdarah,Dengue (DBD) Menggunakan Teknologi Web Service, Skripsi, Universitas Diponegoro, Semarang. [2] Snell, 2001, Programming Web Service with SOAP, First Edition, O’Reilly. [3] Hardt, Ed, 2012, The OAuth 2.0 Authorization Framework, Microsoft (http://tools.ietf.org/html/rfc6749 ISSN: 2070-1721) [4] Padilla and Hawkins, 2010 , PRO PHP Aplication Performance, Apress, New York [5] Juliadi D, Ariani T dan Shandy S, 2008, Analisis Dan Perancangan Sistem Pemesanan dan Pemasaran Berbasis PT . Chubbsafes, Skripsi, Universitas Bina Nusantara, Jakarta. [6] Thompson, Mick., 2011, Getting Started with GEO, CouchDB, and Node.JS, New Open Source Tools for Location Data , O'Reilly Media. [7] Plugge, Membrey and Hawkins, 2010, The Definitive Guide to MongoDB, Appress, New York. [8] Seguin, Karl ,2011 ,”The Little MongoDB Book”. Shaotian Dong [9] Richardson and Ruby, 2007, RESTful Web Service, O'Reilly, California. [10] Whitten Jeffrey, Bentley Lonnie and Dittman Kevin, 2004, Systems Analysis Design Methods Sixth Edition. McGraw Hill.
IJCCS Vol. x, No. x, July 201x : first_page – end_page