Jurnal Online STMIK EL RAHMA

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: 1eyeyunianto@gmail.com, 2riswantoeko@gmail.com

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
pengerjaan berikutnya ditunjukkan gambar 2.
actor sebagai landasan peng

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
4
unjukkan seperti pada gambar 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