Anda di halaman 1dari 6

PEMBANGUNAN WEB DINAMIS UNTUK MENANGANI KONKURENSI

TINGKAT TINGGI (STUDI KASUS : APLIKASI UNGGAH BERKAS)

Muhamad Rezza Kurniawan1, R. Sandhika Galih Amalga, S.T., M.T.2


1, 2
Program Studi Informatika, Fakultas Teknik, Universitas Pasundan
1, 2
Jl. Dr. Setiabudhi 193, Bandung. Telp: (022) 2021440
1
rezza.kurniawan@mail.unpas.ac.id, 2sandhikagalih@unpas.ac.id

Abstrak
Implementasi Scalability dalam membangun sebuah web dinamis sangat bermanfaat, sebagai contoh adalah web
dinamis aplikasi portal unggah. Web dinamis memerlukan sebuah proses khusus agar dapat melayani setiap
pengguna sesuai dengan faktor – faktor yang didefinisikan sebelumnya. Semakin banyak pengguna yang dilayani
akan menyebabkan proses menjadi sangat banyak dan lama. Menjadi sebuah kebutuhan untuk melakukan
implementasi scalability agar web dinamis dapat tetap menjaga waktu layanan. Portal Unggah merupakan sebuah
web dinamis yang menerapkan scalability untuk menangani konkurensi tingkat tinggi. Implementasi scalability
membutuhkan sumber daya yang tepat, sehingga pemilihan teknologi menjadi hal signifikan untuk diterapkan.

Kata Kunci : scalability, web dinamis, unggah berkas, portal unggah

1. Pendahuluan Penelitian ini memiliki beberapa tujuan yaitu :


Scalability adalah kemampuan untuk (1) Mengetahui cara menangani konkurensi tingkat
menyesuaikan kapasitas sistem agar biaya yang tinggi pada web dinamis. (2) Merancang web
dibutuhkan tetap efisien tanpa mengurangi dinamis yang dapat menangani konkurensi tingkat
kebutuhan. Scalability atau skalabilitas berarti juga tinggi, khususnya aplikasi web unggah berkas.
kemampuan untuk menangani lebih banyak
pengguna, klien, data, transaksi, atau permintaan 2. Metodologi Penelitian
tanpa mempengaruhi pengalaman pengguna.[2] Dalam penelitian ini, menggunakan
Konkurensi adalah kondisi dimana sistem metodologi yang berisi : Identifikasi Masalah,
melayani pengguna dalam waktu bersamaan. pengumpulan data, pengembangan perangkat lunak,
Penanganan konkurensi sangat dibutuhkan, karena dan pengujian penelitian.
server memiliki keterbatasan dalam melakukan
proses dan eksekusi perintah. Konkurensi tingkat
tinggi berarti lebih banyak koneksi yang terbuka,
perintah lebih banyak, data yang diproses lebih
banyak, dan membutuhkan banyak pemroses.[2]
Web dinamis ialah sebuah halaman web yang
dihasilkan oleh program yang dieksekusi setiap
adanya permintaan oleh pengguna. Jika permintaan
akses terhadap web dinamis dalam waktu yang
bersamaan melonjak, hal ini akan membebani
kinerja processor dan akan memperlambat
pemprosesan konten sehingga menyebabkan
pengalaman pengguna menurun. Untuk menghindari
hal tersebut maka perlu diketahui apa saja penyebab
web dinamis mengalami konkurensi tingkat tinggi
dan bagaimana penanganannya, khususnya pada saat Gambar 2(a) Metodologi Penelitian
membuat web dinamis sederhana seperti aplikasi
unggah berkas.[4, 8] 2.1. Pengumpulan Data
Berdasarkan hal tersebut ditemukan beberapa
masalah yaitu : (1) Bagaimana cara menangani Dalam kegiatan pengumpulan data yang
konkurensi tingkat tinggi pada web dinamis. (2) diantaranya melakukan studi literature dan
Bagaimana merancang web dinamis yang dapat penelitian scalability, ditemukan beberapa teori
menangani konkurensi tingkat tinggi. dasar sebagai berikut:
2.1.1. Scalability

Scalability adalah kemampuan untuk


menyesuaikan kapasitas sistem agar biaya yang
dibutuhkan tetap efisien tanpa mengurangi
kebutuhan. Scalability atau Skalabilitas berarti juga
kemampuan untuk menangani lebih banyak
pengguna, klien, data, transaksi, atau permintaan
tanpa mempengaruhi pengalaman pengguna. Dalam
tahun-tahun yang akan datang, bisnis akan
membutuhkan penyimpanan, transfer dan proses Gambar 2(c) Gambar Skala Horizontal
data dengan jumlah yang sangat besar. Hal ini akan
terjadi karena meningkatnya kebutuhan dan Gambar 2(c) menunjukan Skalabilitas dengan
ketergantungan kita kepada teknologi.[2] cara menduplikasi, replikasi, distribusi fungsi server
Kemampuan skalabilitas diukur dalam kepada banyak server.
beberapa dimensi yang berbeda, setiap kemampuan
memerlukan penanganan yang berbeda, secara 2.1.2. Paradigma Object Oriented
umum pengukuran skalabilitas dapat dikategorikan
menjadi 3 bagian[2], yaitu : (1) Penanganan Data. Object oriented merupakan konsep untuk
(2) Penanganan Tingkat Konkurensi. (3) mendapatkan solusi melalui pengembangan serta
Penanganan Interaksi. rekayasa perangkat lunak dengan membuat analogi
Untuk melakukan skalabilitas pada sebuah terhadap objek – objek di dunia nyata. Solusi
sistem akan membutuhkan kombinasi dari 3 hal tersebut dihasilkan melalui analisis dan identifikasi
diatas. terdapat dua buah cara skalability yaitu objek – objek. Pada tahapan analisis, menentukan
vertikal dan horizontal. objek – objek apa saja yang harus ada sesuai dengan
requirement. Menentukan atribut serta operasi yang
2.1.1.1. Skala Vertikal dilakukan oleh objek tersebut. Membuat skenario
aliran pesan antar objek. Menentukan aturan
Skala vertikal adalah meningkatkan encapsulation, polymorph serta inheritance pada
perangkat keras atau jaringan. Ini adalah solusi objek – objek tersebut.
untuk jangka pendek dalam menangani skalabilitas
sistem. 2.1.3. Tinjauan Teknologi

Tinjauan teknologi merupakan teknologi –


teknologi yang diterapkan pada penelitian ini.

2.1.3.1. Laravel

Laravel merupakan sebuah framework yang


dibangung diatas Bahasa pemrograman PHP.
Dengan menggunakan framework laravel dapat
mempercepat proses pembangunan perangkat lunak
berbasis web. Framework laravel dibangun
Gambar 2(b) Gambar Skala Vertikal
menggunkan arsitektur MVC (Model, View,
Controller). [3]
Gambar 2(b) menunjukan Skalabilitas hanya
dilakukan pada satu server dengan meningkatkan
2.1.3.2. Docker
perangkat kerasnya atau jaringannya saja.
Docker merupakan sebuah aplikasi
2.1.1.2. Skala Horizontal
virtualisasi yang dapat menjalankan sebuah
container yang berisi aplikasi lengkap dengan file
Skala horizontal adalah metode skalabilitas
system[6]
dengan menambahkan server yang lebih banyak.
Dalam melakukan penelitian ini terdapat
skema analisis yang bertujuan untuk membantu
memudahkan dan memahami bagaimana alur dari
analisis yang dilakukan seperti yang di tunjunkan
pada gambar 2(f).

Gambar 2(d) Arsitektur Docker

Pada gambar 2(d) terlihat setiap Aplikasi


yang di simbolkan dengan kotak dengan teks
“App1, App2, App3” yang dibungkus dengan
istilah container. Docker berjalan diatas sistem
Gambar 2(f) Skema Analisis
operasi linux. Setiap container dalam docker,
menjalankan image yang dapat dibuat sendiri atau
3.1. Analisis Kebutuhan
menggunakan image yang dibuat pengguna lain. [6]
Analisis kebutuhan merupakan tahap dalam
2.1.3.3. JMeter
proses mengembangkan perangkat lunak untuk
mendapatkan kebutuhan pengguna. Dalam analisis
JMeter adalah sebuah aplikasi yang dapat
ini didapatkan hasil sebagai berikut :
digunakan untuk melakukan pengujian performa
terhadap sebuah aplikasi. JMeter dapat melakukan
3.1.1. Pengguna Web Dinamis
pengujian statis dan dinamis. Dalam pengujian
dinamis jmeter salah satunya menggunakan fungsi
Pengguna web dinamis harus menerima konten
Stepping Thread Group [7] untuk membuat
yang sesuai berdasarkan faktor-faktor yang telah
permintaan kepada aplikasi yang diujiakan. [9].
ditentukan sebelumnya. Hal ini mengakibatkan
adanya proses untuk menyajikan informasi yang
2.2. Pengembangan Perangkat Lunak
sesuai bagi pengguna. Pengguna bisa saja
melakukan interaksi lebih dari satu kali saat
Dalam pengembangan perangkat lunak
membuka halaman web.
digunakan bahasa modeling untuk
mendokumentasikan, menspesifikasikan, dan
3.1.2. Scalability
membangun sistem perangkat lunak. Bahasa
pemodelan yang digunakan menggunakan standar
Menurunnya kecepatan pemprosesan web
Unified Modelling Language (UML). Model Proses
dinamis karena banyaknya konkurensi yang terbuka
yang digunakan dalam pengembangan perangkat
harus dapat ditanggulangi. Penanggulangannya
lunak menggunakan model proses waterfall [5].
dapat dengan memperbesar kapasitas pemprosesan
server dengan melakukan upgrade hardware. Tetapi
upgrade hardware memiliki batasan, yang
mengakibatkan masalah penurunan pemprosesan
tidak cukup.
Cara lain untuk mengatasinya adalah dengan
Gambar 2(e) Model Proses Waterfall melakukan replikasi server. Setiap server memiliki
batasan maksimal konkurensi yang dapat terhubung.
Tahapan testing atau pengujian yang dalam Jika jumlah konkurensi suatu server sudah penuh,
gambar 2(e) adalah pengujian fungsionalitas dari maka akan dilayani oleh server lain.
perangkat lunak yang dikembangkan. Kemampuan Scalability ini dapat
diilustrasikan dalam sebuah antrian nasabah di
2.3. Pengujian Konkurensi sebuah bank. Jumlah antrian yang menumpuk pada
satu loket akan memakan waktu tunggu lebih lama
Pengujian konkurensi bertujuan untuk di bandingkan antrian yang terdistribusi ke beberapa
mengetahui kualitas tingkat ketahanan konkurensi loket. Penjelasannya dapat dilihat pada gambar 3(2)
dari penerapan rancangan penanganan konkurensi
tingkat tinggi pada aplikasi unggah berkas.

3. Analisis Dan Perancangan


No Kode Use Case
2. UC2 Isi Formulir Unggah Berkas
3. UC3 Membagi Sesi
4. UC4 Validasi Sesi
5. UC5 Simpan Sesi
6. UC6 Menyimpan Berkas
7. UC7 View URL Berkas
8. UC8 Mengambil URL Berkas
Gambar 3(a) Ilustrasi Pelayanan Nasabah
Pada analisis interaksi ini belum terlihat adanya
Pada studi kasus portal unggah, aplikasi pengelompokan interaksi. Untuk melihat
diibaratkan sebuah loket dan pengguna aplikasi pengelompokan interaksi dapat dengan
diibaratkan sebagai nasabah. Maka semakin banyak menggunakan model Use-case Diagram. Berikut
nasabah, maka antrian semakin panjang dan hal itu adalah hasil analisis menggunakan Use-case
menyebabkan meningkatnya waktu tunggu Diagram.
pengguna. Untuk mengatasi masalah tersebut, maka
aplikasi harus ditambah agar dapat melayani
pengguna lebih banyak dan lebih cepat.

3.1.3. Aplikasi Unggah Berkas

Salah satu contoh penanganan konkurensi


tingkat tinggi adalah pada aplikasi unggah berkas.
Aplikasi ini membantu agar pengguna dapat
melakukan unggah berkas ke server, lalu pengguna
mendapatkan alamat untuk melakukan unduh. Gambar 3(b) diagram usecase
Dalam aplikasi unggah berkas setiap pengguna yang
melakukan unggah memiliki durasi konkurensi. 3.3. Rancangan Arsitektur Teknologi
Semakin banyak pengguna yang menggunakan
aplikasi ini maka konkurensinya akan semakin Arsitektur teknologi pada perangkat lunak
banyak dengan durasi yang beragam. Jika dibiarkan unggah berkas menggunakan pendekatan Vertical
maka akan mengakibatkan konkurensi tingkat Scalable seperti yang dijelaskan pada landasan teori.
tinggi. Dampaknya adalah sebagai berikut : Pada gambar 3.9 adalah skema dari arsitektur
(1) Pengguna baru sulit untuk membuka halaman teknologi yang akan diterapkan.
web [1]. (2) Meningkatkan waktu tunggu
pengguna[1]. (3) Terputusnya koneksi pengguna[1].
(4) Server mengalami hang[4]. (5) Menurunkan
User Experience[4]

Untuk menangani konkurensi tinggkat tinggi maka


dibutuhkan scalability. Bukan hanya scalability dari
sisi hardware tetapi aplikasi unggah berkas harus
dapat beradaptasi dengan lingkungan yang
scalable.Aplikasi unggah berkas harus beradaptasi
dengan lingkungan yang scalable, maka dari itu Gambar 3(c) Skema Arsitektur Teknologi
dalam perancangannya dibutuhkan mekanisme
untuk menangani scalable. Pada sisi client pengguna menggunakan
aplikasi browser untuk mengakses aplikasi unggah
3.2. Analisis Skenario berkas. Untuk menerima permintaan dari pengguna,
di sisi server membagi permintaan menggunakan
Analisis skenario dilakukan untuk menangkap Load Balancer. Penggunaan Load Balancer adalah
tahapan interaksi yang pengguna lakukan terhadap salah satu implementasi dari Horizontal Scaling.
sistem. Setelah Server menerima permintaan pengguna,
setiap berkas yang di unggah, informasinya akan di
Tabel 3(a) Skenario Usecase simpan di Database Server. Sedangkan berkasnya di
No Kode Use Case
simpan di Storage yang dapat di akses oleh Semua
1. UC1 View Formulir Unggah Berkas Web Server.
4. Pengujian Konkurensi

Pengujian dilakukan pada fungsi utama


aplikasi portal unggah dengan urutan membuka
halaman utama, melakukan unggah berkas,
membuka halaman history, dan melakukan unduh
berkas yang sudah di unggah. Proses pengujian
diilustrasikan pada gambar 4.4.

Gambar 4(a) Ilustasi Pengujian Konkurensi Tingkat


Tinggi Gambar 4(c) Hasil pengujian konkurensi tingkat
tinggi
Dalam pelaksanaan pengujian, dibutuhkan
beberapa parameter untuk membuat simulasi 5. Kesimpulan Dan Saran
permintaan konkurensi, parameter – parameternya 5.1. Kesimpulan
dapat dilihat pada gambar
Berdasarkan penelitian ini, didapatkan 2 (dua)
kesimpulan mulai dari permasalahan serta
kebutuhan dari studi kasus, portal unggah hingga
teknologi yang di implementasikan untuk
menangani konkurensi tingkat tinggi. Dua
kesimpulan tersebut adalah (1)Untuk menangani
Gambar 4(b) Grafik simulasi pengguna kokurensi konkurensi tingkat tinggi, perangkat lunak harus
tingkat tinggi dapat direplikasi menjadi beberapa perangkat lunak.
(2)Telah dibuatnya sebuah aplikasi unggah berkas
Gambar 4.5 menunjukan total konkurensi yang yang dapat menangani konkurensi tingkat tinggi.
akan di jalankan ialah 100 konkurensi, dengan
proses kenaikan 2 konkurensi baru setiap 5 detik. 5.2. Saran
Setelah total konkurensi mencapai 100 konkurensi,
semua proses konkurensi akan menunggu selama 10 Adapun beberapa saran untuk penelitian ini
detik, lalu konkurensi akan di kembalikan ke posisi sebagai berikut : (1) Mengimplementasikan
0. penanganan konkurensi tingkat tinggi dengan
dengan fitur otentikasi pengguna. (2) Membagi tugas
4.1. Hasil Pengujian request dari pengguna sesuai dengan domain web
server, loadbalancer tidak membagi rata semua
Berdasarkan Hasil pengujian, ditapatkan request kepada seluruh web server.
semakin banyaknya web server yang digunakan,
maka permintaan halaman yang dapat di berikan Daftar Pustaka
kepada pengguna semakin banyak dan waktu proses
rata – rata semakin cepat. [1] Erb, Benjamin., 2012, Concurrent Programming
for Scalable Web Architectures, James-Franck-Ring,
Institute of Distributed Systems Faculty of
Engineering and Computer Science.
[2] Ejsmont, Artur., 2015, Web Scalability for
Startup Engineers, New York, McGraw-
HillEducation.

[3] Martin, Bean., 2015, Laravel 5 Essential, Packt


Publishing, https://www.packtpub.com/web-
development/laravel-5-essentials.

[4] O, Oluwatolani. A, Babajide. A, Philip, 2012,


Development of a Scalable Architecture for
Dynamic Web-Based Applications, International
Journal of Information.

[5] Pressman, Roger S., 2010, Software Engineering


A Practitioner's Approach, New York, McGraw-
Hill.

[6] Porterie, Arnaud., 2016, Docker 1.11: The first


runtime built on containerd and based on OCI
technology, https://docs.docker.com

[7] Pohilko, Andrey., 2012, JMeter-Plugins - More


Obvious and Powerful Load Testing,
http://www.methodsandtools.com/tools/jmeterplugi
ns.php

[8] Shay, Artzi. Julian, Dolby. Frank, Tip. Marco,


Pistoia., 2013, Fault localization for dynamic web
applications, IEEE Transactions on Software
Engineering

[9] Vatan, Benoit., 2016, JMeter Documentation,


http://jmeter.apache.org/usermanual/get-
started.html

Anda mungkin juga menyukai