Anda di halaman 1dari 9

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer e-ISSN: 2548-964X

Vol. 3, No. 5, Mei 2019, hlm. 4856-4864 http://j-ptiik.ub.ac.id

Implementasi Shared Session Dalam Klaster Server Web Menggunakan


PHP dan MySQL
R Moch Makruf Puja Pradana1, Mahendra Data2, Dany Primanita Kartikasari 3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya
Email: 1jendralmakruf@gmail.com, 2 mahendra.data@ub.ac.id, 3dany.jalin@ub.ac.id

Abstrak
Session, merupakan cara yang digunakan untuk menyimpan informasi pada komputer server untuk
digunakan pada beberapa halaman termasuk halaman itu sendiri. Dalam penggunaan klaster web server
mampu menghasilkan kinerja yang lebih baik daripada menggunakan server tunggal yang menghandle
sebuah website. Namun terdapat masalah yang timbul di dalam pengembangan antara klaster web server
terhadap penggunaan session itu sendiri. Pada klaster web server yang diwakilkan oleh satu node server
akan berjalan secara independen, jika session awal yang dibentuk dalam aplikasi web tersebut hanya
didalam satu node server saja maka node server lainnya tidak bisa mendapatkan akses session yang
sama. Solusi yang bisa digunakan ialah menyimpan data session tersebut kedalam sebuah database
berupa MySQL serta akses data session dapat dibagikan ke web server lainnya. Terungkap permasalahan
lagi bagaimana satu klaster web server dapat berkomunikasi terhadap database dalam menyimpan dan
meminta data session. Dengan permasalahan tersebut, penelitian ini mengembangkan metode Shared
Session yang akan diterapkan melalui PHP. Untuk membuktikan metode tersebut dapat menjalankan
sistem sesuai fungsinya dilakukan dua buah pengujian yaitu pengujian login serta logout dan pengujian
black box. Pada pengujian login dan logout yang direncanakan mampu menyelesaikan fungsi utamanya
dalam menyimpan dan membagikan data session walaupun terdapat kondisi satu server web yang
nonaktif. Pada pengujian black box didapatkan hasil response time di masing-masing skenario, pada
skenario pertama dari 100 request session menghasilkan response time sebesar 18,7 second sampai
dengan 26,2 second, pada skenario kedua dari 200 request session menghasilkan response time sebesar
1 minute sampai dengan 1,38 minute, pada skenario ketiga dari 300 request session menghasilkan
response time sebesar 10,07 second sampai dengan 15,25 second.
Kata kunci: session, shared session, PHP, MySQL, response time.

Abstract
Session is a method that used to store information on a computer server that can be used on several
pages including the page itself. In using a web server cluster, it can produce a better performance than
using a single server that handles a website. But there are some problems that arise in the development
between the web server cluster against the use of the session itself. In a web server cluster is a
represented by a single node will run independently, if the initial session formed in the web application
only have one node server, then the other server nodes can’t get the same session access. The solution
that can be used is to save the data session into database with mySQL, and the access of data session
can be shared to another web servers. Another problem was revealed is how one web server cluster can
communicate with the database in storing dan requesting data sessions. With these problems, this study
developed the Shared Session method that will be applied through PHP. To prove that the method can
run the system according to function, two tests are applied, login and logout testing and black box
testing. In testing the login and logout that is designed can be fulfilled in storing and sharing data
sessions even though there is a condition of one disabled web server. In the black box testing the
response time results obtained in each scenario, in the first scenario of 100 session requests produces
a response time of 18.7 second to 26.2 second, in the second scenario of 200 session requests produces
a response time of 1 minutes up to 1.38 minutes, in the third scenario of 300 session requests to produce
a response time of 10.07 seconds to 15.25 seconds.
Keywords session, shared session, PHP, MySQL, response time.

Fakultas Ilmu Komputer


Universitas Brawijaya 4856
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 4857

Dalam mengembangkan dan


1. PENDAHULUAN memaksimalkan penggunaan klaster web server
Session adalah cara yang digunakan untuk yang dapat menghasilkan kinerja lebih baik
menyimpan informasi pada komputer server daripada menggunakan server web tunggal.
untuk digunakan pada beberapa halaman Klaster web server merupakan metodologi
termasuk halaman itu sendiri. Session pengelompokan server yang independen untuk
menyimpan informasi ke dalam bentuk variabel memberikan fleksibilitas, skalabilitas dan
super global $_SESSION. Variabel ini disimpan ketersediaan yang lebih baik. Serta mampu
pada komputer server dan dapat digunakan oleh untuk menangani dan memperoleh kebutuhan
semua halaman pada website tempat session akses yang cepat dan handal untuk client
dimulai. Session berbeda dengan cookies yang utamanya jika berkaitan dengan session. Namun
menyimpan informasi pada komputer client terdapat masalah yang timbul di dalam
(pengguna) (Mukhlis, 2018). Session merupakan pengembangan antara klaster web server
konsep abstrak yang merepresentasikan interaksi terhadap penggunaan session itu sendiri. Dalam
antara browser dan server. Fungsi session setiap klaster web server yang direpresentasikan
tersebut yakni untuk menjaga atau memelihara melalui satu node server akan berjalan secara
informasi akses dari seorang pengakses/pemakai independen, jika session awal yang dibentuk
aplikasi web. dalam aplikasi web tersebut hanya berada dalam
satu node server saja, maka node server lainnya
Session ini umumnya dibangun atas cookies, tidak bisa mendapatkan akses session yang
yang dimana session terbentuk berdasarkan dari sama. Maka diperlukan node server alternatif
kombinasi antara client-side session ID dan untuk membantu kinerja dalam klaster web
server-side session data. Kemudian dari kedua server yakni server database, node server
variabel tersebut client-side session ID yang tersebut berfungsi untuk menyimpan session
paling umum disimpan dalam cookies sedangkan data dan mampu dibagikan ke node server yang
server-side session data disimpan dalam file data lainnya.
log pada server berupa temporary file. Cookie
awal diberikan pada saat web browser pertama Dari dampak penggunaan klaster server web
kali dibuka dan melakukan request halaman web tersebut terhadap penyimpanan session belum
ke server, setelah server dapat mengenali IP sepenuhnya terselesaikan jika hanya
client kemudian server akan merespon dengan memaksimalkan penggunaan server database.
memberikan data session dalam bentuk session Peneliti ingin menambahkan sebuah metode
ID. Selanjutnya, setelah itu client akan mengirim yakni Shared Session yang bertujuan untuk
kembali session ID ke server untuk membagikan data session yang telah tersimpan
mendapatkan data client yang sudah tersimpan di database melalui node server sebelumnya
pada database server. agar node server lainnya mendapatkan akses
session yang sama. Selain itu terdapat solusi
Disaat pengguna web server semakin metode yang lain yakni menggunakan metode
meningkat dengan seiring berjalannya waktu MemCached dikarenakan metode ini juga
maka dibutuhkan server yang dapat berkerja mengadopsi penggunaan redis cloud (Lahtinen,
optimal. Jika web server yang dimiliki hanya ada 2014). Namun karena keterbatasan perangkat
satu, maka memungkinkan terjadinya "a single yang digunakan, maka peneliti dianjurkan
point of failure" (SPOF) yaitu kondisi server menggunakan metode shared session beserta
yang gagal merespon maka sistem akan tidak server database berupa MySQL.
berfungsi. Hal itu bisa terjadi karena terlalu
banyak request yang harus di handle oleh satu Penelitian ini bertujuan ingin memberikan
buah web server tadi (Julianto, 2017). Maka solusi dalam mengatasi permasalahan tersebut.
dibuatlah sebuah arsitektur jaringan dalam web Yakni dengan manajemen informasi session
server yang disebut arsitektur multiple server yang telah dibangun antara entitas client dan
yaitu kumpulan dari beberapa web server yang server dan disimpan ke dalam database berupa
saling terhubung dan bekerja sama, yang MYSQL, sekaligus membagikan kepada node
memiliki fungsi untuk mencapai keandalan server lain saat membutuhkan session tersebut
(reliability) dan ketersediaan (availability) yang dan load balancing berperan untuk membagikan
tinggi (Singh, 2015). request berupa data session dalam waktu
bersamaan saat dibutuhkan oleh client kemudian
dibuat session pada masing-masing node server.

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 4858

Metode shared session beserta server database Pada penelitian oleh (Rosalia, Munadi, &
ini dapat mencegah jika salah satu node server Mayasari, 2016). Maya Rosalia menawarkan
yang diarahkan oleh load balancing ini mati atau penelitian mengenai implementasi clustering
tidak aktif kemudian dapat di handle oleh node untuk virtual web server dan high availability
server yang ada ataupun masih aktif, karena server menggunakan metode load balancing dan
session data masih disimpan dalam database. failover untuk meningkatkan kehandalan dan
Sehingga pada tugas akhir ini penulis ketersediaan layanan. Dalam implementasinya,
menawarkan penilitian tentang load balancer akan dikonfigurasi menggunakan
“IMPLEMENTASI SHARED SESSION Haproxy dan Nginx sebagai media load
DALAM KLASTER SERVER WEB balancing untuk layanan HTTP. Kemudian akan
MENGGUNAKAN PHP DAN MYSQL”. dibandingkan performansi dua software load
balancing dan failover dengan parameter yang
2. PENELITIAN TERKAIT akan diuji meliputi throughput, request per-
Penelitian yang dilakukan oleh detik, request loss, cpu utilization dan downtime.
(Ansharullah, 2016). Ansharullah menawarkan Penelitian ini di latar belakangi karena semakin
penelitian mengenai pengembangan dalam banyak yang mengakses melalui suatu situs web
bidang jaringan komputer telah dilakukan oleh membuat beban kerja yang lebih pada suatu
SMK Negeri 2 Kudus. Akan tetapi masih banyak penyedia layanan yang disebut web server dan
mengalami masalah salah satunya adalah beban menjadi kurang optimal. Suatu single server
server. Terlebih lagi di SMK Negeri 2 Kudus bisa mengalami kegagalan yang disebabkan oleh
memiliki kurang lebih 800 orang pengguna. meningkatnya jumlah request yang mencapai
Penelitian implementasikan sistem Load ribuan bahkan jutaan pada waktu yang
Balancing dengan tujuan untuk mengatasi bersamaan atau disebut dengan overload. Hal ini
beban server tersebut yang tidak sesuai dengan akan merugikan pihak yang mempercayakan
kapasitasnya dan untuk mengoptimalkan beban situsnya pada suatu web server, karena situs
server sebelum dan sesudah penerapan sistem tersebut tidak dapat diakses untuk waktu
Load Balancing algoritma Round Robin pada tertentu.
server di SMK Negeri 2 Kudus. Dengan metode
yang digunakan adalah metode Komparatif yaitu Penelitian oleh (Dwi Prastyo, 2017). Dwi
penelitian yang bertujuan membandingkan dan Prastyo menawarkan penelitian mengenai
menganalisa dua gejala atau lebih, implementasi dua backend server dengan
membandingkan algoritma Least connection menggunakan teknik load balancing, failover,
sebagai algoritma sebelumnya dengan algoritma serta shared session. Penelitian ini di latar
Round Robin. Pengujian Load Balancing dengan belakangi berdasarkan oleh ujian yang
dengan kedua algoritma menggunakan software merupakan kegiatan yang pasti dilakukan oleh
yang bernama Httperf. Httperf menampilkan setiap pelajar dan pengajar. Ujian yang sering
nilai sesuai parameter. dilakukan biasanya bersifat tertulis atau manual,
sangat jarang sekali dilakukannya ujian bersifat
Penelitian yang dilakukan oleh (Yoga online atau otomatis. Tetapi ujian online untuk
Hartomo, 2015). Yoga Hartomo menawarkan saat ini mulai digunakan tetapi masih
penelitian mengenai penggabungan beberapa menggunakan single server.Ujian menggunakan
server (cluster) dengan teknik Load Balancer, sistem single server masih banyak terdapat
bisa digunakan untuk mengatasi permasalahan kekurangan, antara lain response time lama,
tersebut karena teknik ini bekerja dengan server banyak menampung beban, tidak ada
membagi beban yang diterima oleh server dan server backup jika sewaktu-waktu server down.
ketika salah server mengalami kegagalan, maka Dengan adanya load balancing, trafik dapat
anggota cluster yang aktif akan melayani berjalan optimal, memaksimalkan throughput,
permintaan dari client. Penelitian ini bertujuan memperkecil response time dan menghindari
untuk membuat web server dengan teknik Load overload pada salah satu jalur koneksi. Dengan
Balancer pada mesin virtual. Aplikasi yang diterapkannya failover, ketika salah satu server
digunakan dalam penelitian ini adalah VMware, down atau mati maka server yang lain akan
Ubuntu Server 14.10, Pound, HAProxy dan menggantikannya di saat proses failover terjadi
Webserver Stress Tool 8. fungsi shared session pun berjalan agar saat
perpindahan server tidak perlu login ulang
kembali.

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 4859

3. PERANCANGAN SISTEM 3. Database MySQL


Pada penelitian ini dirancang sebuah sistem Pada bagian database MySQL berfungsi
shared session dengan bahasa pemrograman sebagai pusat penyimpanan data utama dan
PHP di mana akan ditampilkan melalui aplikasi termasuk utamanya mampu menyimpan data
website yang digunakan sebagai perantara session yang dibuat oleh keempat web
session yang telah dibuat dan akan dibagikan ke server.
seluruh server web yang sudah disimpan pada
Pada sistem ini ada tiga bagian utama yang
database. Berikut ini adalah gambaran desain
menjalankan tugasnya masing-masing, yaitu
sistem yang dirancang pada gambar 3.1.
Load balancing menjadi pendistribusian beban
trafik, web server 1, 2, 3 dan 4 yang menjadi
aplikasi yang bertanggung jawab menyediakan
layanan berbasis data berupa Apache dan pusat
sekaligus penyimpanan data berbasis database
MySQL sebagai tujuan untuk disimpan dan
dibagikan ke seluruh web server. Untuk alur
pada rancangan ini merupakan gambaran secara
umum yang ditampilkan melalui 5 node server.
Perancangan alur komunikasi sistem dapat
dilihat pada gambar 3.2.
Gambar 3.1 Rancangan Arsitektur Sistem
Berikut ini adalah keterangan rancangan
sistem berdasarkan perangkat yang digunakan
dalam membangun sistem:
1. Load Balancing NGINX
Load balancing yang akan membagi trafik
ke web server yang mana untuk membentuk
sebuah session baru sebagai tanda pengenal
untuk user yang telah melakukan login. Gambar 3.2 Alur Komunikasi Sistem
Keempat web server yang ditangani oleh
load balancing memiliki fungsi dan peran Berikut keterangan angka yang berada pada
yang sama ataupun bisa sebaliknya karena gambar:
load balancing menggunakan mekanisme 1. Login, suatu proses yang dilakukan oleh
Round-Robin. user untuk memasukkan identitas akun
2. Klaster Web Server yang sudah terdaftar melalui form halaman
login pada aplikasi website. Proses request
Pada klaster web server ini terdapat empat tersebut diarahkan ke salah satu web server
web server aktif yang masing-masing melalui aplikasi load balancing.
memiliki peran dapat menerima data session
dan mengirim session kemudian diarahkan 2. Selanjutnya pada saat melakukan proses
oleh load balancing untuk menyimpan login, sistem akan melakukan validasi data
session yang telah dibuat tersebut ke dalam dari username dan pasword yang
database MySQL. Selanjutnya bagian web sebelumnya telah didaftarkan oleh user
server 2, web server 3 ataupun web server 4 pada aplikasi website.
memiliki fungsi yang tidak jauh berbeda 3. Pada salah satu web server yang menerima
dengan web server 1 sekaligus juga bisa request dari user setelah diarahkan oleh
bertindak sebagai web server yang mampu load balancing menggunakan algoritme
menghandle jika web server 1 tidak dapat Round Robin, kemudian akan membentuk
berjalan atau terjadi kegagalan service sebuah session baru berdasarkan session ID
dalam menampilkan website yang akan yang didapatkan dari data cookies di
dirancang. Jadi web server lainnya dapat browser sebagai tanda pengenal dalam
meminta data session yang sebelumnya bentuk data bahwa user yang sudah berhasil
sudah dibuat dan disimpan pada database. melakukan proses login.

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 4860

4. Kemudian session baru tersebut akan walaupun mengakses session dari server
ditandai untuk disimpan di database web yang berbeda dalam satu klaster.
MySQL dalam bentuk data string pada tabel
“ci_sessions”. Lalu dalam bentuk 4. IMPLEMENTASI SISTEM
permintaan akan dikirim ke database
Dari arsitektur sistem yang telah dirancang
bahwa session saat itu telah login dan sudah
kemudian diimplementasikan melalui sebuah
tersimpan pada database.
aplikasi website yang digunakan sebagai
5. Mengembalikan data yang sebelumnya perantara tampilan sistem dari share session.
telah di request yakni session, berupa Berikut ini adalah beberapa fungsional dari
response data untuk user bahwa session aplikasi website yang telah diimplementasikan.
yang dibentuk sudah disimpan. 1. Aplikasi website dapat menjalankan
6. Saat setelah session dapat tersimpan di fungsi login.
database dalam beberapa waktu tertentu Pada gambar ini menjelaskan fungsi login
ada kondisi shared session ini akan aktif, dari website, di mana sebelumnya sudah
terbangun sebuah cookies saat mengakses
yakni jika salah satu web server meminta
website pada browser dan menjadi cikal
akses session yang sama, misalnya
diasumsikan salah satu server web mati dari bakal session terbentuk sekaligus yang akan
keempat server web. Akhirnya server web disimpan pada database. Dengan asumsi
bahwa user tersebut telah mendaftarkan
yang aktif tersebut memerlukan data
identitas dirinya sebagai akun terdaftar ke
session yang sudah tersimpan untuk
dibagikan ke web server lainnya yang aktif. dalam sistem dan sudah disimpan di dalam
Dengan diatasi oleh server web yang aktif, datanya database. Tampilan halaman pada
gambar 4.1.
dengan cara server web tersebut memeriksa
Tabel 4.1 Source code proses login pada
data user dan menyesuaikan dengan session aplikasi website
ID yang aktif pada database. Secara function aksi_login(){
otomatis kemudian user tidak perlu $username = $this->input-
melakukan autenfitikasi login yang sama >post('username');
meskipun user tersebut menjalankan proses $password = $this->input-
>post('password');
login pada web server yang mati atau $where = array(
mengalami kegagalan menyediakan 'username' => $username,
service. 'password' => md5($password));
$cek=$this->usermodel
7. Setelah selesai mengambil data user dan >cek_login("users",$where)-
mencocokan session ID yang sama >num_rows();
kemudian sistem secara otomatis $datauser=$this->usermodel-
>cek_login("users",$where)-
memproses untuk melakukan login >result();
otomatis agar data user bisa diakses pada
web server aktif yang lainnya. Maka user 2. Aplikasi website menjalankan fungsi
dapat melajutkan aktifitas pada halaman membuat data session.
website tersebut tanpa terhambat kendala Pada fungsional ini aplikasi dapat
login kembali. menjalankan fungsi membuat session baru
8. Web server yang aktif tersebut, yang berdasarkan cookie yang telah di request
ditampilkan melalui aplikasi website oleh browser sebelumnya. Kemudian dari
mengirimkan respon ke user melalui session yang terbentuk akan disimpan pada
perantara load balancing bahwa session database server. Dan jika data masukan
saat itu telah aktif dan berhasil di akses. username dan password dari user salah akan
menampilkan pesan peringatan. Berikut ini
9. Login berhasil secara otomatis dilakukan adalah source code yang diimplementasikan
sistem dimana merupakan tanda proses pada tabel 4.2.
terakhir bahwa seluruh session dapat Tabel 4.2 Source code menjalankan fungsi
dibagikan ke seluruh web server yang membuat session
membutuhkan akses session tersebut. if($cek > 0){
$data_session = array(
10. Menampilkan halaman timeline bahwa user 'nama' => $username,
dapat masuk kedalam aplikasi website 'status' => "login",

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 4861

'datauser'=>$datauser, $this->session->sess_destroy();
); redirect(base_url("pages"))
$this->session- ;
>set_userdata($data_session); }}
redirect(base_url("pages/timeline
"));
Tampilan website melalui aplikasi browser
}else{ yang menampilkan sistem share session dapat
echo "Username dan password salah
!"; menjalankan fungsinya di mana dari session
} awal dibentuk lalu data tersebut disimpan di
} dalam database tetap dapat dibagikan ke web
server yang lainnya meskipun ada keadaan
3. Aplikasi website memeriksa sekaligus tertentu yang misalnya terdapat web server yang
membagikan data session yang tersimpan membentuk session awal tersebut terjadi
pada database. masalah layanan server down. Tampilan
Pada fungsional ini aplikasi website halaman website dilihat pada gambar 4.1
menjalankan perintah di mana user yang
sudah melakukan login berhasil, maka data
session yang tersimpan dalam database.
Kemudian session dapat diakses oleh server
web lainnya yang membutuhkan akses
session di waktu yang sama. Yang mana
server web tersebut bukan server web
pertama yang membuat akses session
sebelumnya. Berikut ini adalah source code
yang diimplementasikan pada tabel 4.3.
Tabel 4.3 Source code aplikasi website
memeriksa sekaligus membagikan data
session
public function login(){
Gambar 4.1 Tampilan Halaman website
if($this->session-
>userdata("status")=="login"){ Lalu tampilan database MySQL yang
$where = array(
menyimpan seluruh data session. Tampilan
'username'=>$this->session- aplikasi databse MySQL dapat dilihat pada
>userdata("nama") gambar 4.2.
);
$datauser=$this->usermodel-
>cek_login("users",$where)-
>row();
$data['user']=$datauser;
if($datauser){
$dat['nama'] = $datauser-
>username;
$dat['iduser'] = $datauser->id;

4. Aplikasi website menghapus data session


yang tersimpan pada database.
Pada fungsional ini aplikasi website dapat Gambar 4.2 Tampilan aplikasi database MySQL
melakukan hapus data session yang telah penyimpanan data session
tersimpan jika user telah selesai atau
mengakhiri aktivitas pada halaman website
dengan menjalakan fungsi tombol logout. 5. PENGUJIAN
Berikut ini source code dari mengakhiri atau
menghapus session yang digunakan pada Pengujian kinerja sistem dilakukan aplikasi
tabel 4.4. uji Jmeter yang bertujuan untuk mengetahui
Tabel 4.4 Source code melakukan hapus data apakah aplikasi sudah sesuai dengan kebutuhan
data session yang tersimpan pada database yang telah dirancang. Skema pengujian
function logout(){ dijalankan melalui fitur pada aplikasi website

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 4862

yang sudah diimplementasikan sebelumnya. 3 Aplikasi Aplikasi website VALID


Skema pengujian ini dilakukan untuk website berhasil
mengetahui kinerja shared session yang berada menjalankan menghapus sesson
dalam klaster server web yang dimulai dari fitur logout. yang aktif saat
user telah
mengakses website dan user masuk ke dalam
melakukan
aplikasi website atau melakukan login hingga logout.
melakukan logout.
Dalam pengujian ini dibuat user virtual
sebanyak 1 user virtual yang sudah didaftarkan Pengujian Black Box dilakukan melalui
sebelumnya datanya pada database dan aplikasi uji Jmeter yang bertujuan untuk
dikondisikan melakukan login kedalam website mengetahui kapabilitas sistem dari aplikasi
dan aplikasi load balancing akan mengarahkan website apakah sudah sesuai dengan kebutuhan
ke salah satu server web agar menampilkan yang telah dirancang. Skema pengujian
website yang diminta. Namun setelah login dijalankan melalui tiga skenario yang sudah
berhasil server web yang sudah diakses dari direncanakan pada bab perancangan pengujian
arahan load balancing tersebut mengalami sebelumnya.
server down atau gagal menyediakan layanan Dari skema pengujian direncanakan akan
untuk user. melakukan tiga kondisi pengujian yaitu sebagai
Sekaligus untuk mengetahui bahwa session berikut:
yang sudah diakses oleh seluruh web server atau 1. Pada skenario yang pertama ini melakukan
dibagikan dari satu web server ke web server request session untuk dilihat dari seberapa
yang lain dalam satu klaster telah dipastikan handal dalam mendistribusikan session yang
sudah dihapus dan diakhiri dengan diganti dibutuhkan. Skenario ini menggunakan 100
session ID baru saat terjadinya proses request user virtual yang akan menjalankan
perintah untuk logout dari user. rangkaian skenario dengan melakukan
Lalu dengan menggunakan serangkaian request session ke database dan diberikan
pengujian fungsional yang dilakukan aplikasi session ID yang berbeda-beda agar
uji Jmeter berdasarkan sistem yang telah mengetahui kinerja dari sistem shared
diimplementasikan sebelumnya dan didapatkan session. Dalam skenario ini dikondisikan
hasil pengujian yang bisa dilihat pada tabel 5.1. ada 1 server web yang dinonaktifkan dari 4
server web yang aktif.
Tabel 5.1 Hasil pengujian kinerja aplikasi
website
2. Pada skenario yang pertama ini melakukan
No Pengujian Parameter Status
. Kinerja Keberhasilan
request session untuk dilihat dari seberapa
handal dalam mendistribusikan session yang
1 Aplikasi Aplikasi website VALID dibutuhkan. Skenario ini menggunakan 200
website berhasil diakses user virtual yang akan menjalankan
menjalankan oleh user dan rangkaian skenario dengan melakukan
dapat membuka
fitur login di request session ke database dan diberikan
halaman timeline
ketiga web di ketiga web session ID yang berbeda-beda agar
server. server. mengetahui kinerja dari sistem shared
session. Dalam skenario ini dikondisikan
2 Aplikasi Aplikasi website VALID
ada 2 server web yang dinonaktifkan dari 4
website berhasil server web yang aktif.
menjalankan menjalankan
sistem sistem shared
shared session dengan
session. baik dengan 3. Pada skenario yang pertama ini melakukan
melakukan request session untuk dilihat dari seberapa
perpindahan web handal dalam mendistribusikan session yang
server saat salah dibutuhkan. Skenario ini menggunakan 300
satu web server user virtual yang akan menjalankan
dalam keadaan rangkaian skenario dengan melakukan
mati. request session ke database dan diberikan

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 4863

session ID yang berbeda-beda agar Perco Server Req Rata-rata Status


mengetahui kinerja dari sistem shared baan web uest respons server web
yang time (ms)
session. Dalam skenario ini dikondisikan aktif
ada 3 server web yang dinonaktifkan dari 4
server web yang aktif. 60050 Server web
Ke-1 2 800
milisecond 1 dan 2 mati

Hasil dari pengujian black box disini untuk 75450 Server web
Ke-2 2 800
mengetahui skalabilitas dari aplikasi website milisecond 2 dan 3 mati
berdasarkan skenario yang telah dirancang 800
72500 Server web
Ke-3 2 milisecond 3 dan 4 mati
sedemikian rupa melalui aplikasi uji pada
klaster server web. Dari 3 skenario di atas 82930 Server web
Ke-4 2 800
pada setiap skenario melakukan 4 kali percobaan milisecond 4 dan 1 mati
yang mana 1 kali hasil percobaan
merepresentasikan kemampuan setiap server 3. Hasil skenario ke-3
web. Berikut ini hasil dari pengujian black box Berdasarkan hasil skenario yang telah
dengan parameter response time dari masing- dijalankan dengan waktu tempuh dari
masing server web: empat kali percobaan dari masing-masing
1. Hasil skenario ke-1 server web mendapatkan waktu rata-rata
Berdasarkan hasil skenario yang telah selama 03 menit 50 detik dalam
dijalankan dengan waktu tempuh dari menyelesaikan setiap percobaan didapatkan
empat kali percobaan dari masing-masing hasil pengujian yang bisa dilihat pada tabel
server web mendapatkan waktu rata-rata 5.4.
selama 01 menit 20 detik dalam Tabel 5.4 Tabel rata-rata response time dari
menyelesaikan setiap percobaan didapatkan skenario ke-1
hasil pengujian yang bisa dilihat pada tabel
Perco Server Req Rata-rata Status
5.2.
baan web uest respons server web
Tabel 5.2 Tabel rata-rata response time dari yang time (ms)
skenario ke-1 aktif
Perco Server Req Rata-rata Status 120 13770 Server web
baan web uest respons server web Ke-1 1 0 milisecond 1,2,3 mati
yang time (ms)
aktif 120 12670 Server web
Ke-2 1
0 milisecond 2,3,4 mati
24501 Server web
Ke-1 3 400 120 10070 Server web
milisecond 1 mati
Ke-3 1 0 milisecond 3,4,1 mati
26200 Server web
Ke-2 3 400 120 15250 Server web
milisecond 2 mati
Ke-4 1 0 milisecond 4,1,2 mati
18789 Server web
Ke-3 3 400 milisecond 3 mati
23839 Server web
Ke-4 3 400 milisecond 4 mati 6. PENUTUP
Bedasarkan implementasi sistem dan
2. Hasil skenario ke-2 analisis hasil pengujian dari kinerja sistem
Berdasarkan hasil skenario yang telah shared session yang berperan sebagai sistem
dijalankan dengan waktu tempuh dari perantara database dengan seluruh server web
empat kali percobaan dari masing-masing aktif pada satu klaster server web, didapatkan
server web mendapatkan waktu rata-rata beberapa kesimpulan yang diantaranya sebagai
selama 01 menit 57 detik dalam berikut:
menyelesaikan setiap percobaan didapatkan Mekanisme shared session yang sudah
hasil pengujian yang bisa dilihat pada tabel diimplementasikan dalam penelitian ini dapat
5.3. memastikan efisiensi dari penggunaan sebuah
Tabel 5.3 Tabel rata-rata response time dari website bagi user yang telah melakukan login ke
skenario ke-2
dalam aplikasi website melalui satu server web
dengan tidak perlu melakukan login kembali
meskipun mengakses halaman website dan

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 4864

request ‘session’ tersebut dikelola oleh server Penggunaan metode pendukung


web yang berbeda di waktu yang sama. Proses penyimpanan data pada sistem shared session ini
tersebut akan bisa bekerja dengan baik karena yakni menggunakan Redis server. Penerapan
didukung oleh mekanisme Round Robin yang tersebut bertujuan untuk skala penggunaan dan
aktif pada load balancing dan database MySQL penyimpanan data session yang lebih cepat
yang dapat menyimpan data session serta dibandingkan menggunakan database MySQL.
menyediakan cadangan data session untuk Karena penggunaan database MySQL lebih
dibagikan ke seluruh server web yang persistent dan membutuhkan ruang
membutuhkan. penyimpanan memory yang lebih besar di dalam
server.
Dari hasil pengujian aplikasi website
didapatkan beberapa hasil berikut: 7. DAFTAR PUSTAKA
Berdasarkan dua skema pengujian yakni Ansharullah, K. (2016). Implementasi Sistem
pengujian login dan pengujian logout dari Load Balancing Dengan Algoritma Round
sistem shared session ini sebagai perantara Robin Untuk Mengatasi Beban Server di
sistem yang mengatur di mana session dapat SMK Negeri 4 Kudus.
disimpan dan dibagikan melalui database. Dari Dwi Prastyo, A. (2017). Implementasi Moodle
hasil pengujian login dan pengujian logout yang Menggunakan Load Balancing, Failover,
dilakukan dan direncanakan semuanya berhasil Dan Shared Session. Bandung,
dipenuhi melalui aplikasi website. Universitas Telkom, 302. Retrieved from
Dari pengujian yang dilakukan melalui 3 https://openlibrary.telkomuniversity.ac.id/
skenario berbeda maka dapat diketahui pustaka/139245/implementasi-moodle-
skalabilitas sistem, yang mana hasil tersebut menggunakan-load-balancing-failover-
mendapatkan nilai response time yang beragam. dan-shared-session.html
Julianto, R. (2017). Implementasi Load
 Skenario ke 1 dengan 4 kali percobaan yang Balancing Di Web Server Menggunakan
menguji setiap node server web disaat 1 Metode Berbasis Sumber Daya CPU Pada
server web nonaktif didapatkan waktu Software Defined Networking. Malang,
merespon sebesar 18,7 second sampai dengan Fakultas Ilmu Komputer.
26,2 second, dengan waktu masing-masing Lahtinen, E. (2014). USING SESSION
percobaan selama 01 menit 20 detik REPLICATION IN WEB SERVICES,
bedasarkan 100 user yang melakukan login (December).
ke dalam website. Mukhlis, A. (2018). SESSION DAN COOKIE.
 Skenario ke 2 dengan 4 kali percobaan yang Makassar, Politeknik Negeri Ujung
menguji setiap node server web disaat 2 Pandang.
server web nonaktif didapatkan waktu Rosalia, M., Munadi, R., & Mayasari, R.
merespon sebesar 1 minute sampai dengan (2016). Implementasi High Availability
1,38 minute, dengan waktu masing-masing Server Menggunakan Metode Load
percobaan selama 01 menit 57 detik Balancing dan Failover pada Virtual Web
bedasarkan 200 user yang melakukan login Server Cluster. E-Proceeding of
ke dalam website. Engineering, 3(3), 4496–4503.
Singh, H., & Kumar, S. (2015). WSQ: Web
 Skenario ke 3 dengan 4 kali percobaan yang Server Queueing Algorithm for Dynamic
menguji setiap node server web disaat 3 Load Balancing. Wireless Personal
server web nonaktif didapatkan waktu Communications, 80(1).
merespon sebesar 10,07 second sampai https://doi.org/10.1007/s11277-014-2005-
dengan 15,25 second, dengan waktu masing- 7
masing percobaan selama 03 menit 50 detik Yoga Hartomo, H. (2015). IMPLEMENTASI
bedasarkan 300 user yang melakukan login WEB SERVER LOAD BALANCING
ke dalam website. PADA MESIN VIRTUAL MAKALAH.
Saran dalam penelitian ini yang kelak ke Surakarta, UNIVERSITAS
depannya berguna untuk perbaikan dan MUHAMMADIYAH, 49(23–6).
pengembangan penelitian lebih lanjut.

Fakultas Ilmu Komputer, Universitas Brawijaya

Anda mungkin juga menyukai