Anda di halaman 1dari 71

MEMBANGUN RANCANGAN APLIKASI SISTEM SERVER TERBUKA

(OPENLOBBY) UNTUK MENDUKUNG FITUR


MULTIPLAYER PADA GAME

SKRIPSI

MUHAMMAD ABDURRAHMAN FIRA


131401087

PROGRAM STUDI S-1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018

Universitas Sumatera Utara


MEMBANGUN RANCANGAN APLIKASI SISTEM SERVER TERBUKA
(OPENLOBBY) UNTUK MENDUKUNG FITUR
MULTIPLAYER PADA GAME

SKRIPSI

Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah
Sarjana S-1 Ilmu Komputer

MUHAMMAD ABDURRAHMAN FIRA

131401087

PROGRAM STUDI S-1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018

Universitas Sumatera Utara


ii

PERNYATAAN

Universitas Sumatera Utara


iii

MEMBANGUN RANCANGAN APLIKASI SISTEM SERVER TERBUKA


(OPENLOBBY) UNTUK MENDUKUNG FITUR
MULTIPLAYER PADA GAME

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Januari 2018

Muhammad Abdurrahman Fira


131401087

Universitas Sumatera Utara


iv

PENGHARGAAN

Puji dan syukur kehadirat Allah SWT yang telah memberikan nikmat, rahmat dan
hidayah-Nya yang berlimpah, sehingga penulis dapat menyelesaikan dan menyusun
skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program
Studi S-1 Ilmu Komputer Universitas Sumatera Utara.

Penulis ingin menyampaikan rasa hormat dan terima kasih yang sebesar-besarnya
kepada:

1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum selaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S-1 Ilmu
Komputer Universitas Sumatera Utara.
4. Dr. Elviawaty Muisa Zamzami, ST., MT., MM selaku Dosen Pembimbing I
yang telah memotivasi dan senantiasa memberikan bimbingan, saran, masukan
dan dukungan kepada penulis dalam pengerjaan skripsi ini.
5. Jos Timanta Tarigan, S.Kom., M.Sc selaku Dosen Pembimbing II yang telah
memberikan bimbingan, saran, masukan dan dukungan kepada penulis dalam
pengerjaan skripsi ini.
6. Prof. Muhammad Zarlis selaku dosen pembimbing akademik penulis.
7. Bapak Surabil yang menjadi teman sharing penulis dalam menyelesaikan
skripsi ini.
8. Seluruh dosen dan pegawai Program Studi S1 Ilmu Komputer Fasilkom-TI
USU.
9. Kepada orang tua tercinta Alm. Drs. Muhammad Firdaus, M.Si dan Dra.
Jumirah, Aptk dan Ahmad Naufal Murtadha Fira selaku adik dan seluruh
keluarga penulis yang selalu memberikan doa, motivasi, semangat, dukungan
dan kasih sayang yang tiada henti-hentinya kepada penulis.
10. Teman dekat Mutiara Rizky Parlindungan Nasution S.Kom yang telah
membantu dan menemani penulis dalam mengerjakan dan menyelesaikan
skripsi ini.

Universitas Sumatera Utara


v

11. Sahabat-sahabat terbaik yang selalu memberikan dukungan dan masukan


kepada penulis Raviza Sitepu S.Kom dan Mahadi Putra S.Kom, Ahmad
Pratama Ramadhan, Fikri Haisar, Wahyu Afandi dan Ramadhan Syahputra.
12. Kepada anak Umi Frozen Khairunisa Nasution, Zariani Mutia Syara S.Kom,
Sandra Putri Junika S.Kom, Megawati S.Kom, Alwi Ahdi S.Kom, Ilyas
Muhammad S.Kom, Paulus Surbakti S.Kom Wahyu Afandi, Winda Aprianti,
Ramadhan Syahputra, Putri Chaliska, Riki Hendrawan, Muhammad Fariz
Hidayat yang telah setia menjadi teman selama masa perkuliahan mulai dari
semester 1 sampai penulis dapat menyelesaikan skripsi ini.
13. Teman-teman seperjuangan SMK Namira Tech Nusantara, dan teman-teman
stambuk 2013 yang juga senantiasa menjadi pengingat dan motivasi bagi
penulis.
14. Pengurus IMILKOM 2016/2017 yang telah memberikan banyak dukungan
kepada penulis.
15. Dan semua pihak yang telah membantu dan tidak dapat disebutkan satu-
persatu.

Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan
kepada penulis mendapatkan pahala yang melimpah dari Allah SWT.

Medan, Januari 2018

Penulis

Universitas Sumatera Utara


vi

ABSTRAK

Game multiplayer online merupakan salah satu game yang saat ini paling penting
dalam suatu game modern. Dikarenakan didalam sebuah game multiplayer kita dapat
bermain dengan kawan kita yang berada didaerah yang sangat dekat maupun jauh
sekalipun. Namun dalam mengembangkan sebuah game multiplayer yang menarik
penggembang memerlukan suatu penerepan dibeberapa pemain yang memainkan
game tersebut. Dengan dikembangkannya sebuah server openlobby yang merupakan
server yang akan menyediakan layanan pengelolaan pemain untuk game multipemain.
Sistem yang diusulkan bertindak sebagai lobi dan mak comblang dimana pemain yang
sudah mengantri maka datanya akan dicocokkan dengan pemain lain sesuai kriteria
yang ditentukan oleh pengembang. Pada sistem server juga nantinya akan ada sebuah
sistem tambahan yaitu sistem Matchmaker, yaitu sebuah sistem yang mana nantinya
akan digunakan untuk mencocokkan lawan untuk pemain yang mana kriteria dari
lawan yang dipilih sudah sesuai dengan apa yang diminta oleh game. Tujuan
dibangunnya sebuah sistem server terbuka adalah untuk memberikan solusi bagi
pengembang kecil untuk meningkatkan komponen multiplayer dalam produk mereka.
Tujuan pengujiannya adalah agar penggembang game dapat membangun sebuah game
yang sesuai dengan minat dari banyak pemain dan penggembang dapat menggunakan
sistem server openlobby untuk membantu mereka dalam menggembangkan sebuah
fitur multiplayer.

Kata Kunci : Jaringan, Multiplayer, Lobi, Game-Server, MatchMaking.

Universitas Sumatera Utara


vii

BUILDING OPEN SERVER SYSTEM APPLICATION DESIGN


(OPENLOBBY) TO SUPPORT MULTIPLAYER
FEATURES IN GAME

ABSTRACT

The online multiplayer game is one of the most important games currently in a modern
game. Because in a multiplayer game we can play with our friends who are in the area
that is very close or far though. However, in developing a multiplayer game that
attracts developers requires an advance in some players who play the game. With the
development of an openlobby server which is a server that will provide player
management services for multiplayer games. The proposed system acts as a lobby and
matchmaker where players are already queuing then the data will be matched with
other players according to the criteria specified by the developer. On the server system
will also be an additional system that is Matchmaker system, which is a system which
will be used to match the opponent for the player where the criteria of the selected
opponent is in accordance with what is requested by the game. The purpose of
building an open server system is to provide solutions for small developers to improve
the multiplayer components in their products. The purpose of testing is that game
developers can build a game that suits the interests of many players and developers
can use the openlobby server system to assist them in developing a multiplayer
feature.

Keyword : Network, Multiplayer, Game Server, Lobby, MatchMaking

Universitas Sumatera Utara


viii

DAFTAR ISI

Halaman
Persetujuan i
Pernyataan ii
Penghargaan iii
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
Daftar Lampiran xi

Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Tujuan Penelitian 2
1.4 Batasan Penelitian 2
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4

Bab 2 Landasan Teori


2.1 Jaringan Komputer 6
2.1.1 Sejarah Jaringan Komputer 7
2.1.2 Definisi Jaringan Komputer 8
2.1.3 Fungsi Jaringan Komputer 9
2.1.4 Manfaat Jaringan Komputer 10
2.1.5 Tujuan Jaringan Komputer 12
2.6 Protokol Jaringan Komputer 12
2.2 Fitur Multiplayer 16
2.2.1 Sejarah Fitur Multiplayer 16
2.3 Application Programming Interface (API) 13
2.4 Penelitian Relevan 19

Bab 3 Analisis dan Perancangan


3.1 Analisis Sistem 23
3.1.1 Analisis Masalah 23
3.1.2 Analisis Kebutuhan Sistem 24
3.1.3 Analisis Proses 25
3.1.4 Arsitektur Umum 26
3.2 Pemodelan Sistem 26
3.2.1 Use Case Diagram 27
3.2.2 Activity Diagram 28
3.2.3 Sequence Diagram 30
3.3 Flowchart Sistem 31
3.3.1 Flowchart Sistem Request Pemain Baru 32

Universitas Sumatera Utara


ix

3.3.2 Flowchart SIstem MatchMaking 32


3.3.3 Flowchart SIstem Request Update Status Pemain 34
3.4 Proses MatchMaking, Database Server, dan Properties Game 35
3.4.1 Proses MatchMaking 35
3.4.2 Database Server 38
3.4.3 Properties Game 39
3.5 Perancangan Interface 39

Bab 4 Implementasi dan Pengujian Sistem


4.1 Implementasi Sistem Server 42
4.1.1 Enqueue.php 42
4.1.2 Get_all_queue.php 42
4.1.3 Get_player.php 43
4.1.4 Get_session_info.php 43
4.1.5 Get_status.php 43
4.2 Pengujian Sistem 43

Bab 5 Kesimpulan dan Saran


5.1 Kesimpulan 46
5.2 Saran 46

Daftar Pustaka 47

Universitas Sumatera Utara


x

DAFTAR TABEL

Halaman
Tabel 2.1 Penelitian yang Relevan 18

Universitas Sumatera Utara


xi

DAFTAR GAMBAR

Halaman
Gambar 2.1 Jaringan Komter Model TSS 6
Gambar 2.2 Jaringan Komputer Model Distributed Processing 7
Gambar 2.3 Analogi API pada Pembangunan Rumah 15
Gambar 2.4 Skema Konektivitas antara Software dengan API 16
Gambar 2.5 Game Tennis untuk Dua Orang Pemain Menggunakan Endloskop 17
Gambar 2.6 Game Spaceward an Penemunya 17
Gambar 2.7 Kumpulan game multiplayer dan game online 19
Gambar 2.8 Gambaran awal waktu permainan online dan multiplayer 19
Gambar 3.1 Diagram Ishikawa atau Fishbone 24
Gambar 3.2 Arsitektur Umum Sistem 27
Gambar 3.3 Use Case Diagram 29
Gambar 3.4 Activity Diagram Request Pemain Baru 30
Gambar 3.5 Activity Diagram Matchmaking 30
Gambar 3.6 Activity Diagram Request Update Pemain 30
Gambar 3.7 Sequence Diagram Sistem 32
Gambar 3.8 Flowchart Sistem Request Pemain Baru 33
Gambar 3.9 Flowchart Sistem MatchMaking 34
Gambar 3.10 Flowchart Sistem Request Update Status 35
Gambar 3.11 Skema Proses MatchMaking 36
Gambar 3.12 Alur Flowchart Dari Sistem MatchMaking 38
Gambar 3.12 Gambaran Tabel Database Open Lobby 39
Gambar 3.13 Perancangan Interface Halaman Awal 39

Universitas Sumatera Utara


xii

DAFTAR LAMPIRAN

Halaman
Lampiran 1 Listing Program A-1
Lampiran 2 Curriculum Vitae B-1
Lampiran 3 Surat Keputusan Dosen Pembimbing C-1
Lampiran 4 Surat Keputusan Tim Penguji Ujian Sarjana D-1
Lampiran 5 Surat Kedesiaan Menguji E-1

Universitas Sumatera Utara


BAB I
PENDAHULUAN

1.1 Latar Belakang

Industri permainan elektronik yang biasa disebut dengan video game merupakan salah
satu industri yang paling berkembang pesat dalam pengembangan perangkat lunak.
Game development selalu mempunyai inovasi baru dan ter-update dalam melakukan
pengembangan game yang dikerjakan, agar bisa menarik minat para pengguna game.
Hampir rata-rata setiap orang mempunyai satu atau bahkan lebih perangkat
game yang dimiliki, mulai dari smartphone, playstation, PSP, dan lain-lain. Tak
sedikit dari pengguna smartphone menggunakan smartphone yang dimiliki untuk
bermain game yang bisa di download dari IOS ataupun Android.
Namun seiring perkembangan zaman kebutuhan untuk menciptakan sebuah
produk game yang efesien semakin meningkat. Game deveplopment sekarang banyak
menambahkan fitur-fitur tambahan yang menarik untuk meningkatkan daya jual
produk tersebut.
Salah satu fitur yang paling umum dijumpai pada game modern saat ini adalah
kemampuan untuk bermain bersama dengan para pemain lainnya. Fitur ini sering juga
disebut dengan multiplayer, yaitu sebuah fitur yang memungkinkan suatu game dapat
dimainkan oleh satu orang pemain game ataupun lebih. Dengan menggunakan
jaringan komputer maka para pemain dapat berinteraksi dengan pemain lain pada
game yang sama.
Salah satu solusi yang dapat membantu para pengembang game dalam
menambahkan fitur multiplayer adalah dengan mengembangkan sebuah aplikasi
server terbuka yang diberi dengan nama (OpenLobby) yang dapat digunakan oleh
berbagai jenis game sebagai sarana yang biasa digunakan untuk menghubungkan
pengguna aplikasi game dengan aplikasi game lainnya. Dengan menggunakan sebuah
application

Universitas Sumatera Utara


2

programming interface yang akan digunakan dalam mendukung aplikasi server


tersebut, pengembang dapat dengan mudah menambahkan fitur multiplayer tersebut
dengan melakukan pemrograman berbasis client-server sederhana.
Jaringan komputer adalah sebuah konsep hubungan atau interkoneksi antar
sekumpulan perangkat dengan perangkat lainnya. Antara perangkat harus dibuat
saling terhubung satu dengan lainnya, apabila ada salah satu perangkat yang tidak
terhubung, maka perangkat tersebut bukan termasuk dalam jaringan komputer
(Nugroho, 2016).
Client–server adalah suatu pembagian kerja pengelolaan data pada suatu
jaringan komputer yang mana komputer satu bertugas sebagai pusat pelayanan data
(server) dan komputer yang lainnya merupakan peminta layanan data (client) (Huda,
2007).

1.2 Rumusan Masalah

Rumusan masalah penelitian ini adalah bagaimana mengembangkan sebuah sistem


aplikasi server game yang dapat digunakan oleh para pengembang game atau pemain
game dari berbagai jenis game yang berbeda-beda dan menjadikan suatu sarana untuk
memulai permainan game yang mendukung fitur multiplayer.

1.3 Tujuan Penelitian

Tujuan penelitian ini adalah untuk :


1. Menghasilkan sebuah aplikasi server game yang efesien yang mana dapat
digunakan oleh berbagai jenis game yang bersekala besar.
2. Perancangan ini memberi dukungan pada fitur multiplayer pada game yang
dimainkan.
3. Server yang dikembangkan dapat mengatur pemain dalam jumlah yang besar.

1.4 Batasan Penelitian

Batasan masalah pada penelitian ini adalah :


1. Server yang dikembangkan dapat berkomunikasi/berinteraksi dengan produk
game yang menggunakan API (Application Programming Interface) yang telah
ditetapkan.

Universitas Sumatera Utara


3

2. Penelitian ini memiliki fitur standar game server online seperti menyimpan,
melihat, menghapus, dan memodifikasi data pemain.
3. Sistem mampu untuk mencocokan atau mempertemukan dua atau lebih pemain
(matchmaking) yang sedang mengantri (queuing).
4. Arsitektur yang digunakan dalam jaringan ini berupa client-server.
5. Bahasa pemograman yang digunakan adalah PHP, HTML, CSS dan JavaScript.

1.5 Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah mampu membuat suatu sistem
server terbuka (OpenLobby) yang mana dapat membantu para pengembang game
untuk mendukung sebuah fitur multiplayer dalam mengembangkan game yang
dikerjakan dan menjadikan sistem server yang mampu mengumpulkan para pengguna
game di suatu aplikasi yang sama.

1.6 Metodologi Penelitian

Penelitian ini menerapkan beberapa metode penelitian sebagai berikut :


1. Studi Literatur
Pada tahap ini merupakan tahapan mengumpulkan referensi yang berkaitan
dengan penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang
terkait dengan server terbuka (OpenLobby) dan game multiplayer. Referensi yang
digunakan berupa buku, jurnal, tesis, skripsi, artikel yang berkaitan dengan
penelitian ini.
2. Analisis dan Perancangan
Tahap ini digunakan untuk mengolah data dari hasil studi literatur yang kemudian
dilakukan analisis dan perancangan sistem server terbuka (OpenLobby) dengan
client-server. Proses ini meliputi pembuatan algoritma program, use case,
flowchart sistem, rancangan aplikasi, dan pembuatan user interface aplikasi.
3. Implementasi
Tahap ini sistem akan dibuat dengan menggunakan bahasa HTML, CSS, Java
Script dan PHP.

Universitas Sumatera Utara


4

4. Pengujian
Pada tahap ini prototipe sistem yang telah dirancang akan dilakukan pengujian
dengan komputer dan game multiplayer dan mencari kesalahan jika masih
terdapat error pada aplikasi.
5. Dokumentasi
Setelah implementasi, maka penulis akan membuat dokumentasi atau laporan dan
kesimpulan akhir dari hasil akhir analisa dan pengujian dalam bentuk skripsi.

1.7 Sistematika Penulisan

Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, yaitu :
BAB 1 PENDAHULUAN
Bab ini berisi latar belakang pemilihan judul skripsi
“Membangun Rancangan Sistem Aplikasi Server Terbuka
(OpenLobby) Untuk Mendukung Fitur Multiplayer Pada
Game”, rumusan masalah, batasan masalah, tujuan penelitian,
manfaat penelitian, metode penelitian dan sistematika
penulisan.
BAB 2 LANDASAN TEORI
Bab ini menjelaskan tentang jaringan komputer, fitur
multiplayer dan open server dan dasar-dasar bagaimana
jaringan komputer bekerja.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini berisi analisis terhadap masalah penelitian dan
perancangan sistem yang akan dibangun sebagai solusi
permasalahan tersebut.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi tentang “membangun rancangan sistem aplikasi
server terbuka (openlobby) untuk mendukung fitur multiplayer
pada game”, selanjutnya pengujian akan dilakukan pada game
yang dibuat dengan game satu lawan satu dan game beregu dan
serta pembahasan hasil pengujian dan analisisnya.

Universitas Sumatera Utara


5

BAB 5 KESIMPULAN DAN SARAN

Bab ini memuat kesimpulan dari uraian penjelasan bab-bab


sebelumnya dan saran berdasarkan hasil pengujian.

Universitas Sumatera Utara


BAB II
LANDASAN TEORI

2.1 Jaringan Komputer

2.1.1 Sejarah Jaringan Komputer

Konsep jaringan komputer ditemukan pada tahun 1940-an di Amerika serikat dari
sebuah proyek pengembangan komputer MODEL I disebuah laboratorium Bell dan
group riset Harvard University yang dipimpin profesor Howard Aiken. Pada dasarnya
proyek tersebut hanyalah ingin memanfaatkan sebuah perangkat komputer yang harus
bisa dipakai secara bersamaan. Untuk mengerjakan beberapa proses tanpa banyak
membuang waktu kosong maka dibuatlah proses beruntun (Batch Processing),
sehingga beberapa program bisa dijalankan dalam sebuah komputer dengan antrian.
Ditahun 1950-an ketika jenis komputer mulai membesar sampai terciptanya
super komputer, maka sebuah komputer harus mampu melayani beberapa terminal
jaringan seperti pada gambar 2.1.

Gambar 2.1 Jaringan Komputer Model TSS (Micro, 2012)

Untuk itu ditemukan konsep distribusi proses berdasarkan waktu yang dikenal
dengan nama TSS (Time Sharing System). Pada sistem TSS beberapa terminal
terhubung secara seri ke sebuah host komputer. Dalam proses TSS mulai tampak

Universitas Sumatera Utara


7

perpaduan antara teknologi komputer dan teknologi telekomunikasi yang pada


awalnya hanya berkembang sendiri-sendiri.
Memasuki tahun 1970-an, maka semakin berat pula beban pekerjaan yang
dilakukan oleh komputer sehingga harga perangkat komputer yang canggih mulai
terasa sangat mahal, maka mulailah digunakan sebuah konsep yaitu, proses distribusi
(Distributed Processing), seperti pada gambar 2.2 berikut.

Gambar 2.2 Jaringan Komputer Model Distributed Processing (Micro, 2012)

Dalam proses ini beberapa host komputer mengerjakan sebuah pekerjaan yang
sangat besar secara paralel untuk melayani beberapa terminal yang tersambung secara
seri disetiap host komputer. Dalam proses ini distribusi harus diperlukannya sebuah
perpaduan yang mendalam antara teknologi komputer dan telekomunikasi, karena
selain proses yang harus didistribusikan.
Ketika harga-harga komputer kecil sudah mulai menurun dan konsep proses
distribusi sudah sempurna, maka penggunaan komputer dan jaringannya sudah mulai
beragam dari mulai menangani proses bersama maupun berkomunikasi antar
komputer (Peer to Peer System) saja tanpa melalui komputer pusat. Untuk itu
mulailah berkembang teknologi jaringan lokal yang dikenal dengan sebutan LAN.
Demikian pula ketika Internet mulai diperkenalkan, maka sebagian besar LAN yang
berdiri sendiri mulai berhubungan dan terbentuklah jaringan raksasa WAN (Micro,
2012).

Universitas Sumatera Utara


8

2.1.2 Definisi Jaringan Komputer

Jaringan komputer adalah suatu hubungan atau interkoneksi antar sekumpulan


perangkat dengan perangkat lainnya. Antara perangkat harus dibuat saling terhubung
satu dengan lainnya, kalau ada salah satu perangkat yang tidak terhubung, maka
perangkat tersebut bukan termasuk dalam katagori jaringan (Nugroho, 2016).
Jaringan komputer adalah hubungan antara beberapa komputer yang
memungkinkan terjadinya suatu komunikasi yang terjadi antara komputer yang saling
berhubungan langsung. Jaringan komputer yang dimaksud antara lain seperti jaringan
yang kecil (misalnya hubungan antara satu komputer dengan komputer lain yang
saling terhubung melalui kabel LAN ataupun melalui wifi), jaringan yang besar
(misalnya jaringan komputer antara propinsi yang saling berhubungan), atau jaringan
super besar (seperti internet). Komunikasi yang dilakukan bisa dalam berbagai bentuk
misalnya transfer file, perintah akses dan sebagainnya (Koto, 2008).

Berikut tipe dari arsitektur jaringan komputer yang biasa digunakan oleh
pengguna jaringan komputer (Huda, 2007) :

1. Client Server
Pada tipe jaringan ini, satu komputer bertugas sebagai server dan komputer
lainnya bertugas sebagai client. Pada arsitektur ini, sebuah aplikasi server
bertugas sebagai pemberi layanan yang diminta oleh client dan memberikan
respon terhadap permintaan atau request yang dikirimkan oleh client. Arsitektur
ini merupakan jenis arsitektur yang paling umum digunakan dalam jaringan
komputer. Salah satu jenis aktifitas di internet yang menggunakan konsep ini
adalah web browsing dan cloud computing.
2. Peer to peer
Arsitektur peer to peer memberikan peran yang sama kepada semua komputer
yang terhubung kedalam jaringan. Padi arsitektur ini, setiap komputer (atau
disebut juga peer) dapat berperan sebagai client dan dapat berperan sebagai
server. Peran tersebut dapat berganti sesuai dengan kondisi dan kebutuhan
komputer tersebut. Salah satu aplikasi yang menggunakan arsitektur ini adalah
aplikasi torrent, di mana setiap komputer dapat melakukan permintaan terhadap

Universitas Sumatera Utara


9

data yang dibutuhkan dan dapat mengirimkan data ke komputer lain yang
membutuhkan.

2.1.3 Fungsi Jaringan Komputer

Adapun beberapa fungsi dari jaringan komputer adalah sebagai berikut (Koto, 2008):
1. Data Share
Data yang terdapat pada satu komputer dapat digunakan atau diproses juga oleh
komputer lainnya. Dengan adanya jaringan komputer, maka dapat dengan mudah
komputer satu dengan lainnya saling bertukar data.
2. Software Share
Program yang terdapat pada salah satu komputer dapat digunakan juga oleh
komputer lainnya yang saling terhubung. Dengan software share, memungkinkan
komputer terhubung dalam satu program.
3. Resource Share
Penggunaan perangkat keras (hardware) secara bersamaan sehingga tidak
diperlukannya pemasangan setiap perangkat keras ke setiap unit komputer.
contohnya adalah penggunaan printer, scanner, kamera dan lain-lain.

2.1.4 Manfaat Jaringan Komputer

Adapun manfaat jaringan komputer dapat dikelompokkan pada suatu jaringan untuk
perusahaan, jaringan untuk umum, dan masalah sosial jaringan (Modul Mikrotik
Operating Sistem Jaringan Komputer, 2015) :

1. Jaringan Untuk Perusahaan/Organisasi


Dalam membangun suatu jaringan komputer untuk perusahaan ataupun
organisasi, ada beberapa keuntungan yang dapat diperoleh dalam hal-hal
skalabilitas dan media komunikasi.
Skalabilitas yaitu kemampuan untuk meningkatkan kinerja suatu sistem secara
bertahap sesuai dengan beban pekerjaan yang dibebankan pada prosesor. Pada
komputer mainframe yang tersentralisasi. Sebuah jaringan komputer mampu
bertindak sebagai media komunikasi yang baik bagi para pegawai yang berjarak
jauh. Dengan menggunakan jaringan, dua orang atau lebih yang tinggal berjauhan
akan lebih mudah bekerja sama dalam menyusun laporan.

Universitas Sumatera Utara


10

2. Jaringan Untuk Umum


Bila suatu komputer mainframe yang besar dan baik maka komputer tersebut
dapat diperoleh dengan harga yang sangat murah, sehingga akan banyak
perusahaan atau organisasi yang akan menggunakannya. Ada bermacam-macam
bentuk access yang menyediakan infomasi jarak jauh yang dapat dilakukan,
terutama setelah berkembangnya sebuah teknologi internet, berita-berita yang ada
dikoranpun dapat di download atau diunduh melalui sebuah internet yang
terhubung ke dalam suatu jaringan dan tidak hanya itu sekarang kita dapat
melakukan suatu pemesanan produk melalui internet, bisnis ini biasa disebut juga
dengan istilah electronic commerce (e-commerce) yang sekarang sangat
berkembang dengan pesat.
Dengan menggunakan internet kita juga dapat melakukan komunikasi orang-
ke orang, fasilitas dari electronic mail (e-mail) telah banyak dipakai secara luas
oleh jutaan orang yang menggunakan suatu jaringan. Komunikasi menggunakan
e-mail ini masih mengandung delay atau waktu tunda.
Video conference atau pertemuan maya merupakan teknologi yang
memungkinkan terjadinya suatu komunikasi jarak jauh tanpa delay. Video on
demand merupakan suatu daya tarik yang disediakan oleh jaringan komputer bagi
setiap orang yang dimana kita dapat memilih suatu film atau acara televisi dari
negara mana saja dan kemudian acara tersebut ditampilkan di layar monitor kita.
3. Masalah Sosial Jaringan
Penggunaan jaringan komputer yang digunakan masyarakat luas akan
menyebabkan masalah-masalah sosial, etika, dan politik. Internet telah masuk ke
segala penjuru kehidupan masyarakat, banyak orang yang dapat
memanfaatkannya tanpa harus memandang status sosial, usia, jenis kelamin.
Penggunaan internet tidak akan menimbulkan masalah selama subyeknya terbatas
pada topik-topik tertentu, pendidikan atau hobi dan hal-hal dalam batas norma-
norma kehidupan, tetapi masalah mulai muncul ketika suatu situs di internet
mempunyai topik yang sangat menarik perhatian banyak orang, seperti politik,
agama dan sex.
Gambar-gambar yang dipasang pada situs-situs tersebut mungkin merupakan
sesuatu yang sangat mengganggu bagi sebagian orang. Foto-foto yang berwarna
dengan resolusi tinggi dan bahkan video klip yang durasinya sangat singkat

Universitas Sumatera Utara


11

sekarang dapat dengan mudah disebar luaskan dengan jaringan kompute


(misalnya pornografi ).

2.1.5 Tujuan Jaringan Komputer

Adapun jaringan komputer memiliki beberapa keunggulan antara lain (Micro, 2012) :
1. Berbagi Peralatan dan Sumber Daya
Beberapa komputer saling memanfaatkan sumber daya yang ada, seperti printer,
harddisk dan perangkat lunak lainnya, seperti aplikasi perkantoran, basis data
(database), dan sistem informasi. Penggunaan perangkat yang dilakukan secara
bersamaan ini akan menghemat biaya dan meningkatkan efektivitas peralatan
tersebut.
2. Integrasi Data
Jaringan komputer memungkinkan pengintegrasian terhadap suatu data kesemua
komputer yang terhubung dalam jaringan tersebut.
3. Komunikasi
Jaringan komputer memungkinkan komunikasi antar pemakai komputer, baik
melalui e-mail, teleconference dan lain-lain.
4. Keamanan (security)
Jaringan komputer sangat membantu dalam memberikan perlindungan terhadap
suatu data yang berada didalam jaringan komputer tersebut. Meskipun data pada
sebuah komputer dapat diakses oleh komputer lain akan tetapi kita dapat
membatasi akses orang lain terhadap data tersebut. Selain itu kita juga bisa
melakukan pengamanan terpusat atas seluruh komputer yang terhubung kedalam
jaringan.

2.1.6 Protokol Jaringan Komputer

Protokol didalam dunia komputer adalah suatu aturan atau ketentuan agar satu atau
lebih device yang tersambung dapat saling berkomunikasi dan bertukar data.
Sedangkan protokol jaringan komputer adalah aturan agar device satu dengan device
yang lain dapat saling berkomunikasi sesuai dengan sistem pada jaringan komputer
yang ada.
Adapun macam-macam protokol jaringan komputer yang paling sering kita
jumpai didalam sebuah jaringan adalah IPv4 dan DHCP (Dynamic Configuration

Universitas Sumatera Utara


12

Protocol), serta didalam suatu komunikasi internet kita bertemu dengan berbagai
macam-macam protokol, seperti HTTP dan POP3, tapi sebenarnya masih banyak
protokol lainnya seperti berikut ini (Baihaqi, 2013):
1. Post Office Protocol version 3 (POP3) adalah protokol yang biasa digunakan
untuk mengambil surat elektronik (email) dari server email. Protokol ini erat
hubungannya dengan protokol SMTP (Simple Mail Transfer Protocol). Protokol
POP3 dibuat karena didesain dari sistem surat elektronik yang mengharuskan
adanya suatu server surat elektronik yang mampu menampung surat eletronik
untuk sementara sampai surat elektronik tersebut diambil oleh penerima yang
berhak.
2. Hypertext Transfer Protocol (HTTP) adalah sebuah protokol jaringan komputer
yang lapisan aplikasinya digunakan untuk sistem informasi yang terdistribusi,
kolaboratif dan hipermedia. Penggunaannya banyak pada pengambilan sumber
daya yang saling terhubung dengan sebuah tautan, yang disebut dengan dokumen
hiperteks, yang kemudian membentuk WWW (World Wide Web).
3. File Transfer Protocol (FTP) adalah sebuah protokol Internet yang biasa berjalan
di dalam sebuah lapisan aplikasi yang merupakan standar untuk pengiriman
berkas (file) komputer antar mesin-mesin kedalam sebuah jaringan.
4. Simple Network Management Protocol (SNMP) merupakan protokol standard
yang biasa digunakan untuk memonitor dan mengelola berbagai perangkat
didalam suatu jaringan yang terhubung ke Internet meliputi hub, router, switch,
workstation dan sistem manajemen jaringan secara jarak jauh (remote).
5. IPv4 (Internet Protocol version 4) adalah sebuah jenis pengalamatan jaringan
komputer yang biasa digunakan di dalam protokol jaringan TCP/IP yang
menggunakan protokol IP versi 4. Panjang totalnya adalah 32-bit, dan secara
teoritis dapat mengalamati hingga 4 miliar host komputer atau lebih tepatnya
4.294.967.296 host di seluruh dunia.
6. Domain Name Server (DNS) adalah sebuah sistem yang menyimpan segala
informasi tentang nama host ataupun nama domain dalam bentuk basis data yang
tersebar (distributed database) di dalam suatu jaringan komputer, misalkan :
Internet. DNS menyediakan alamat IP untuk setiap nama host dan mendata setiap
server transmisi surat (mail exchange server) yang menerima surel (email) untuk
setiap domain.

Universitas Sumatera Utara


13

2.2 Aplication Programming Interface (API)


API merupakan software interface yang terdiri atas kumpulan instruksi yang disimpan
dalam bentuk library dan menjelaskan bagaimana agar suatu software dapat
berinteraksi dengan software lain. Penjelasan ini dapat dicontohkan dengan analogi
apabila akan dibangun suatu rumah. Dengan menyewa kontraktor yang dapat
menangani bagian yang berbeda, pemilik rumah dapat memberikan tugas yang perlu
dilakukan oleh kontraktor tanpa harus mengetahui bagaimana cara kontraktor
menyelesaikan pekerjaan tersebut. Dari analogi tersebut, rumah merupakan software
yang akan dibuat, dan kontraktor merupakan API yang mengerjakan bagian tertentu
dari software tersebut tanpa harus diketahui bagaimana prosedur dalam melakukan
pekerjaan tersebut.

Gambar 2.3 Analogi API pada Pembangunan Rumah

Interface pada software merupakan suatu entry points yang digunakan untuk
mengakses seluruh resources yang terdapat di dalam software tersebut. Dengan
adanya API, maka terdapat aturan bagaimana software dapat berinteraksi dengan
software lain untuk mengakses resources melalui interface yang telah tersedia.

Universitas Sumatera Utara


14

Gambar 2.4 Skema Konektivitas antara Software dengan API

Secara struktural, API merupakan spesifikasi dari suatu data structure, objects,
functions, beserta parameter-parameter yang diperlukan untuk mengakses resource
dari aplikasi tersebut. Seluruh spesifikasi tersebut membentuk suatu interface yang
dimiliki oleh aplikasi untuk berkomunikasi dengan aplikasi lain, dan API dapat
digunakan dengan berbagai bahasa pemograman, ataupun hanya dengan
menggunakan URL (Uniform Resource Locator) yang telah disediakan oleh suatu
website. API dapat diklasifikasikan menjadi beberapa kategori, hal ini dilihat dari
abstraksi apa yang dideskripsikan di dalam sistem.

2.3 Fitur Multiplayer

2.3.1 Sejarah Fitur Multiplayer

Pada tahun 1958 William A. Hinginbotham, bekerja di Brookhaven National


Laboratory, dengan menggunakan sebuah osiloskop untuk mensimulasikan suatu
permainan yang diciptakannya yaitu permainan virtual tenis. Penelitian ini
memanfaatkan sebuah pandangan yang berada di atas kepala, yang memungkinkan
dua pemain saling bersaing dalam menyelinapkan sebuah bola yang melewati
pemukul lawan mereka. Hinginbotham menyebut game tennis ini merupakan sebuah
game multiplayer yang bisa dimainkan untuk dua orang pemain atau lebih dengan
menggunakan sirkuit pemograman, seperti gambar 2.5 berikut ini.

Universitas Sumatera Utara


15

Gambar 2.5 Game tennis untuk dua orang pemain menggunakan osiloskop

(Armitage, Claypool, Branch, 2006)

Spacewar adalah game komputer pertama yang nyata dan dapat menampilkan
duel multiplayer antara pemain (Armitage, Claypool, Branch, 2006). Permainan game
spacewar ditunjukkan pada gambar 2.6.

Gambar 2.6 Game Spacewar dan penemunya

Di spacewar, dua pemain berduel dengan sebuah kapal perang roket, lalu para
pemain game akan menembaki suatu senjata yang dimiliki yaitu senjata torpedo yang
nanti akan ditargetkan kemusuh mereka. Spacewar tidak memiliki efek suara atau efek
partikel, namun game tersebut menggambarkan sebuah permainan yang sangat adiktif
dalam bermain game bahkan tanpa grafis mewah sekalipun. Bahkan ternyata AI
(Artifical Intelegency) yang canggih tidak dibutuhkan dalam game tersebut karena

Universitas Sumatera Utara


16

kecerdasan sebenarnya, ada dalam bentuk lawan pemain yang memainkan game
tersebut.
Seiring dengan perkembangan zaman game tidak hanya bisa dimainkan
melalui offline saja tetapi para penggembang sudah memluai membuat sebuah game
yang dapat dimainkan secara online. permainan game online sendiri harus melibatkan
suatu jaringan komputer, yang berarti koneksi digital antara dua atau lebih komputer.
Game yang menggunakan fitur multiplayer merupakan permainan yang
menghandalkan sebuah jaringan karena para pengguna game terpisah secara fisik dan
mesin, baik pc, console atau smartphone. Biasanya, permainan multiplayer semacam
itu akan membuat para pemain game menunggu giliran bermain di mesin game yang
sama. Misalnya, ada satu pemain yang akan bergantian melawan kapal asing
sementara pemain kedua mengawasi. Begitu pemain pertama dikalahkan oleh lawan
atau saat dia telah menyelesaikan level maka sekarang pemain kedua mempunyai
giliran untuk bermain. Untuk bermain multiplayer baik secara kooperatif atau head-to-
head, maka setiap pemain akan melihat avatar atau profil mereka di layar yang sama
atau layar akan 'terbelah' ke daerah terpisah untuk setiap pemain. Misalnya, game
olahraga multiplayer dan lain-lain.
Lapangan permainan yang dimainkan oleh pengguna dapat dilihat oleh kedua
pemain atau layar akan terbagi secara fisik menjadi dua bagian dari bidang yang dapat
dilihat oleh masing-masing pemain. Game dapat menggunakan sebuah jaringan
komputer untuk menghubungkan antara mesin game ke suatu server game yang
mengendalikan berbagai aspek gameplay.
Awalnya game yang menggunakan jaringan komputer para pemainnya akan
masuk ke dalam sebuah server mainframe dan mereka akan memainkan permainan
tersebut dari jarak jauh melalui sebuah jaringan. Pemain dapat menjalankan
permainan secara lokal di pc yang mereka miliki lalu akan terhubung ke dalam server
jaringan komputer. Dengan demikian permainan dengan fitur multiplayer dan jaringan
komputer saling tumpang tindih (Armitage, Claypool, Branch, 2006), seperti yang
digambarkan pada gambar 2.7.

Universitas Sumatera Utara


17

Gambar 2.7 Kumpulan game multiplayer dan game online

Gambar 2.8 Gambaran awal waktu permainan online dan multiplayer

Gambar 2.8 (a) menunjukkan daftar perkiraan waktu game, sedangkan gambar 2.8 (b)
menunjukkan daftar tahun perilisan game. Gambar diatas adalah gambaran suatu
perubahan yang terjadi disetiap permainan komputer, mulai dari game multipemain,
lalu game yang menghandalkan jaringan komputer kemudian berlanjut ke game yang
menggunakan multiplayer network (Armitage, Claypool, Branch. 2006).

2.4 Penelitian Relevan

Berikut ini beberapa penelitian tentang jaringan komputer yang berkaitan dengan
Jaringan Komputer, Fitur Multiplayer, Web Server, Game Server dan Client-Server
seperti pada tabel 2.1.
Tabel 2.1 Penelitian yang Relevan
No Nama/Tahun Judul Hasil Penelitian
1 Kanwara “Building a Cloud- Algoritma ini didasarkan
Chanthaphram, Base MOG Game pada server permainan dan
Watcharachai Server” zona client. Selain itu server
Buranapinyo, yang baru pada cloud public
Orachun mengusulkan untuk membuat

Universitas Sumatera Utara


18

Tabel Lanjutan 2.1 Penelitian yang Relevan


Udomkasemsub, sebuah sistem server
Tiranee Achalakul, permainan yang elastis, yang
2013. mana nantinya dapat terus
mendukung client yang ingin
join bermain. Simulasi pada
percobaan ini menunjukkan
bahwa algoritma mampu
mengurangi waktu respon
secara efesien.
2 Armitage Grenville, “REED: Optimizing Server induk mengarahkan
Heyde Amiel, 2012. First Person Shooter server ke suatu permainan
Game Server untuk digunakan dalam
Discovery using menanamkan server
Network permainan ke dalam ruang
Coordinates” koordinat virtual. Akibatnya,
server akan melakukan
perhitungan tambahan dari
koordinat server game yang
didistribusikan dari waktu ke
waktu. Client game akan
menetapkan koordinat
mereka sendiri dengan
menggunakan sebuah server
permainan yang dipilih
sebagai landmark (tanpa
memerlukan pengetahuan
geolokasi lokal).
3 Chen Yuh-Rong, “On the Game Pengalaman pengguna dalam
Radhakrishnan Server Network game online dapat
Sridhar, Dhall Selection with Delay ditingkatkan dengan cara
Sudarshan K, and Delay Variation mengurangi pengguna ke
Karabuk Suleyman, Constraints” server, dan dari server ke
2012. server koneksi latency.

Universitas Sumatera Utara


19

Tujuan ini dapat dicapai


dengan membangun jaringan
server yang didistribusikan
secara geografis dan
menghubungkannya dengan
link yang terdefinisi dengan
baik. Kami mengusulkan dua
algoritma untuk mengurangi
penundaan variasi: satu
untuk arsitektur client-server
dan yang lainnya untuk
arsitektur peer-to-peer. Hasil
dari percobaan menunjukkan
bahwa kedua heuristik efektif
dapat mengurangi variasi
penundaan dengan cara
menugaskan kembali client
ke server yang berbeda tanpa
bertambah jumlah server
yang digunakan dalam tugas
yang diberikan.
4 Emmerich Paul, “A Study of Network Kami mengukur pengaruh
Raumer Daniel, Stack Latency tumpukan pada jaringan dan
Wohlfart Florian, for Game Servers” mengevaluasi efek pada
and Carle Georg, server game. Virtualisasi
2014. meningkatkan nilai rata-rata
latency dan standar deviasi
yang menyebabkan kinerja
yang tidak dapat diprediksi.
Pengukuran menunjukkan
bahwa secara khusus ukuran
buffer berpengaruh signifikan
terhadap keterlambatan yang

Universitas Sumatera Utara


20

menghasilkan suatu masalah


optimasi antara delay dan
throughput.

Universitas Sumatera Utara


BAB III
ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Tahap pertama dalam melakukan suatu perancangan sistem adalah dengan


menganalisis sebuah sistem. Tujuan dari analisis sistem adalah untuk menganalisis
persoalan-persoalan yang akan muncul dalam perancangan sistem dan sebagai
gambaran apa yang harus dilakukan pada saat proses perancangan sistem. Analisis
sistem menjadi fondasi yang menentukan keberhasilan sistem yang akan dibangun.
Jadi, jika terjadi kesalahan pada tahap analisis ini maka akan menyebabkan kesalahan
pada tahap-tahap selanjutnya.
Pengertian dari analisis sistem adalah (system analysis) tahap pertama dari
pengembangan sistem yang menjadi fondasi menentukan keberhasilan sistem
informasi yang akan dihasilkan nantinya. Tahapan ini sangat penting untuk
menentukan bentuk sistem yang akan dibangun (Al Fatta, 2007). Terdapat beberapa
tahapan dalam tahap analisis sistem yaitu analisis malasah dan analisis kebutuhan.

3.1.1 Analisis Masalah

Diera modern seperti ini industri permainan atau yang biasa disebut dengan video
game sudah sangat berkembang dengan pesat. Game deveplopment sekarang banyak
menambahkan fitur yang menarik untuk meningkatkan daya jual produk tersebut.
Salah satu fitur yang paling umum dijumpai pada game modern sekarang ini adalah
kemampuan untuk bermain bersama pemain lain. Fitur ini sering juga disebut dengan
multipemain. Dengan menggunakan jaringan komunikasi antar komputer, pemain
dapat berinteraksi dengan pemain lain pada game yang sama.

Universitas Sumatera Utara


24

Salah satu solusi yang dapat membantu pengembang dalam menambahkan


fitur multiplayer dengan upaya yang minimal adalah dengan mengembangkan sebuah
aplikasi server terbuka atau OpenLobby yang dapat digunakan oleh berbagai jenis
game sebagai sarana untuk menghubungkan pengguna produk game dengan para
pengguna game.
Masalah pada penelitian ini diidentifikasi dengan menggunakan diagram
fishbone atau ishikawa. Diagram ishikaawa nantinya akan menunjukkan sebuah
dampak ataupun akibat dari sebuah permasalahan sistem yang ada dengan berbagai
macam penyebabnya. Efek atau akibat berada dibagian kepala diagram, sedangkan
tulang ikan berisi tentang sebab-sebab yang sesuai dengan pendekatan masalah.
Diagram ishikawa dapat dilihat pada gambar 3.1 berikut ini.

Gambar 3.1 Diagram Ishikawa atau Fishbone

Pada gambar 3.1 tersebut suatu masalah berada dalam sebuah kotak sebelah
kanan yang menjadi bagian dari head atau kepala dari diagram tersebut, kemudia
bagian tulangnya memiliki 5 bagian yang biasa disebut dengan bone yaitu Biaya,
Sumber Daya Manusia, Waktu, Perangkat Keras, Perangkat Lunak. Pada bagian biaya
terdapat pengadaan server dan pengadaan SDM, kemudian pada bagian sumber daya
manusia terdapat keahlian programming dan server yang maintanance, selanjutnya
pada bagian perangkat keras terdapat komputer server, spesifikasi dan infrastruktur
jaringan, dan pada bagian perangkat lunak terdapat produk game, sistem update,
koneksi, database dan aplikasi server.

Universitas Sumatera Utara


25

3.1.2 Analisis Kebutuhan Sistem

Tahap kedua setelah mengidentifikasi penyebab masalah penelitian yaitu tahap


analisis kebutuhan yang mempunyai tujuan yaitu mengumpulkan kebutuhan atau
informasi yang harus dimiliki oleh sistem. Dalam analisis kebutuhan akan dilakukan
analisis sistem secara fungsional dan analisis sistem secara non-fungsional (Pujianto,
2012).

3.1.2.1 Analisis Kebutuhan Fungsional Sistem

Adapun beberapa kebutuhan fungsional dari sistem yang dibuat adalah :


1. Fungsi match making dan queuing
Pada bagian ini sistem server akan melakukan suatu match making yaitu sistem
harus mampu mempertemukan atau mencocokan antara pemain 1 dengan pemain
lainnya yang sesuai dengan kriteria dari game yang dimainkan, kemudian sistem
server mampu melihat siapa saja pemain yang sedang mengantri (queuing) dalam
database server.
2. Fungsi standar game server online
Sistem server mampu menyimpan, melihat, menghapus dan memodifikasi data
pemain yang berada dalam database server, yang mana fitur tersebut merupakan
fitur standar yang dimilki oleh game server online.

3.1.2.2 Analisis Kebutuhan Non-Fungsional Sistem

Berikut beberapa kebutuhan non-fungsional dari sistem :


1. Kinerja
Sistem yang dibangun dapat memberikan tanggapan kepada semua client yang
melakukan request kepada server game.
2. User Friendly
Sistem yang dirancang harus mudah digunakan dan sederhana agar semua pemain
atau game development dapat menggunakannya.

Universitas Sumatera Utara


26

3. Efesiensi Waktu
Sistem yang digunakan tidak perlu memakan waktu yang lama untuk memberi
tanggapan kepada semua client yang me-request.
4. Kualitas
Sistem yang dibangun memberikan seluruh akses kepada semua pemain yang
melakukan request.

3.1.3 Analisis Proses

Tahap ketiga yaitu analisis proses yang mana para pemain yang ingin bermain game
yang akan melakukan request kepada server, kemudian server akan mendengar atau
menunggu para pemain yang sedang melakukan request. Setelah pesan request yang
diminta oleh pemain telah diterima maka data pemain yang melakukan request atau
permintaan akan disimpan pada database server yang mana data pemain meliputi dari
IP Address pemain, ID Pemain dan level pemain.
Selanjutnya demon game akan melihat ke database apakah ada pemain yang
sedang menunggu atau tidak, jika ada maka demon game akan mengecek setiap
pemain untuk dipilih lawannya yang sesuai dengan kriteria pemain tersebut, jika
demon game menemukan pemain yang sesuai kriteria maka demon game akan
memberikan respond kepada pemain dan akan mengubah status pemain menjadi play,
dan jika server tidak menemukan pemain yang mengantri maka server dalam keadaan
listening dan pemain akan menunggu kembali.

Universitas Sumatera Utara


27

3.1.4 Arsitektur Umum

Berikut arsitektur umum dari sistem yang dibangun terdapat pada gambar 3.2.

Gambar 3.2 Arsitektur umum sistem


Penjelasan dari arsitektur umum diatas adalah sebagai berikut :
1. Pertama pemain 1, pemain 2 dan pemain 3 yang memilik IP Address dan ID
Pemain, kemudian para pemain melakukan request ke server untuk bermain.
2. Kemudian data pemain 1 pemain 2 dan pemain 3 yang berada di server game
disimpan disebuah database server yang berisi tentang IP Address, ID Pemain,
status pemain dan properties.
3. Lalu demon game akan mengecek setiap 5 detik sekali ke database server apakah
ada pemain yang sedang waiting list, jika ada maka demon game akan
mengirimkan status ke database server yang mana nantinya status tersebut akan
diubah pada setiap status pemain yang mana tadinya waiting list menjadi found
atau play.
4. Dan kemudian server game akan memberi tahu kepada kedua pemain kalau
mereka sudah bisa bermain dalam satu game yang bersamaan dan para pemain
tersebut akan bertukar data yang berupa sebuah IP Address dan ID Pemain. Milik
pemain 1 dikirim ke pemain 2 sehingga mereka bisa saling berkomunikasi.

Universitas Sumatera Utara


28

3.2 Pemodelan Sistem

Pemodelan sistem bertujuan untuk memperoleh gambaran kerja dari sistem yang akan
dibangun. Pemodelan sistem ini akan dibuat dengan menggunakan diagram UML
(Unified Modelling Language). Diagram UML yang digunakan yaitu Use Case
Diagram, Activity Diagram dan Sequence Diagram.

3.2.1 Use Case Diagram

Use case diagram biasa digunakan untuk memodelkan semua proses berdasarkan
perspektif dari pengguna sistem. Use case diagram terdiri atas diagram untuk use case
dan actor. Actor nantinya merepresentasikan orang yang akan mengoperasikan atau
orang yang berinteraksi dengan sistem aplikasi. Use Case diagram dapat dilihat pada
Gambar 3.3.

Gambar 3.3 Use Case Diagram

Pada gambar 3.3 setiap pemain memiliki dan mempunyai peran yang sama didalam
sistem yang mana mereka dapat me-request ke server untuk bermain, setelah
melakukan request maka pemain akan waiting list pada database server, kemudian

Universitas Sumatera Utara


29

pemain akan menerima request kembali yang dikirimkan oleh server bahwa mereka
sudah bisa bermain dan terakhir pemain akan saling bertukar data dan bermain secara
bersamaan.

3.2.2 Activity Diagram

Activity diagram adalah diagram yang menggambarkan aliran kerja atau aktifitas pada
sistem yang sedang dibangun dimana aktifitas dimulai dan berhenti serta decision
yang mungkin terjadi. Activity diagram juga menggambarkan interaksi aktifitas antara
user dengan sistem secara berurutan. Terdapat tiga activity diagram pada sistem ini
yaitu activity diagram request pemain baru, activity diagram match making dan acitivy
diagram request update pemain.
a. Activity Diagram Request Pemain Baru
Adapun activity diagram dari request pemain baru tertera pada gambar 3.4 berikut ini.

Gambar 3.4 Activity Diagram Request Pemain Baru

Pada gambar 3.4 kotak paling kiri menunjukkan aktifitas pemain sedangkan kotak
paling kanan menunjukkan respond oleh sistem yang dikerjakan. Pertama, pemain
harus mengirimkan sebuah request kepada server kalau ingin bermain. Kemudian
server akan menerima request yang dikirimkan oleh pemain tersebut dan nantinya

Universitas Sumatera Utara


30

request yang dilakukan oleh pemain akan disimpan didalam database server,
selanjutnya server akan mengirimkan pesan data informasi pemain yang sedang
menunggu dan pemain akan menerima pesan yang dikirimkan oleh server.

b. Activity Diagram Match Making


Berikut activity diagram dari match making pada gambar 3.5.

Gambar 3.5 Activity Diagram Match Making

Gambar 3.5 menunjukkan activity diagram dari fitur match making yaitu sebuah fitur
yang digunakan untuk mencari kriteria dari para pemain yang ingin bermain, pertama
sistem akan mencari pemain yang sedang waiting list, kemudian sistem melihat dan
mencari kriteria mana saja yang sesuai agar bisa bermain game tersebut. Selanjnutnya
bila sistem menemukan pemain yang cocok maka sistem akan mengubah statu pemain
tersebut dan jika tidak menemukan maka sistem akan mencari ulang pemain.

Universitas Sumatera Utara


31

c. Activity Diagram Request Update Pemain


Berikut activity diagram dari match making pada gambar 3.5.

Gambar 3.6 Activity Diagram Request Update Pemain

Proses gambar 3.6 diatas menunjukkan sisi sebelah kiri merupakan pemain yang ingin
melakukan request update status pemain yang mana pemain mengirimkan request
update kemudian sistem menerima request yang diminta pemain. Kemudian sistem
akan memeriksa status pemain, apabila sistem menemukan pemain yang sesuai maka
sistem akan menggubah status pemain tersebut dan sistem akan mengirimkan
informasi ke pemain. Lalu pemain akan menerima informasi dan kemudian pemain
baru bisa memulai permainan, jika sistem tidak menemukan pemain maka sistem akan
mengirimkan pesan kepada pemain untuk menunggu selama 1 menit.

3.2.3 Sequence Diagram

Sequence Diagram merupakan salah satu diagram Interaction yang menjelaskan


bagaimana suatu operasi itu dilakukan. Diagram yang ini menggambarkan interaksi
antara objek yang ada. Berikut Sequence Diagram dari sistem yang terdapat pada
Gambar 3.7.

Universitas Sumatera Utara


32

Gambar 3.7 Sequence Diagram Sistem

Pada gambar 3.7 pemain yang ingin bermain game harus melakukan request terlebih
dahulu agar dapat bermain dengan cara mengirimkan IP Addreess dan ID Pemain.
Selanjut sistem server akan menerima request dan akan disimpan data pemain ke
database sistem, kemudian demon game akan mengecek apakah ada pemain yang
sedang menuggu, kalau ada maka data pemain diubah yang tadinya menunggu
menjadi found atau play. Dan demon game akan mengirimkan pesan balasan bahwa
pemain sudah dapat bermain dan pemain akan saling bertukar alamat IP Address dan
ID Pemain.

3.3 Flowchart Sistem

Flowchart merupakan sebuah diagram dengan simbol-simbol grafis yang


menunjukkan alur program. Diagram ini bisa memberi solusi setiap langkah demi
langkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut.
Ada 3 flowchart sistem dalam penelitian ini yaitu, flowchart sistem request
pemain baru, flowchart sistem match making dan flowchart sistem request update
status pemain.

Universitas Sumatera Utara


33

3.3.1 Flowchart Sistem Request Pemain Baru


Berikut adalah flowchart dari request pemain baru dapat dilihat pada gambar 3.8
berikut ini.

Gambar 3.8 Flowchart Sistem Request Pemain Baru

Pada gambar flowchart diatas dapat dijelaskan:


1. Pemain mengirimkan sebuah request kepada server.
2. Kemudian server menerima request yang diminta oleh pemain.
3. Server akan menyimpan data informasi pemain yang melakukan request pada
database server.
4. Server akan mengirimkan pesan data informasi ke pemain.
5. Kemudian pemain akan menerima data informasi yang dikirim oleh server.

3.3.2 Flowchart Sistem MatchMaking

Berikut adalah flowchart dari sistem matchmaking yang dapat dilihat pada gambar 3.9
berikut ini.

Universitas Sumatera Utara


34

Gambar 3.9 Flowchart Sistem MatchMaking

Adapun penjelasan dari flowchart match making diatas adalah :


1. Server akan mencari pemain yang ingin bermain.
2. Selanjutnya server akan mencari dan melihat mana saja pemain yang sesuai
dengan kriteria yang ada pada game yang ingin dimainkan.
3. Jika server menemukan pemain, maka server akan mengubah atau meng-update
status pemain dan jika tidak maka server mencari pemain ulang.

Universitas Sumatera Utara


35

3.3.3 Flowchart Sistem Request Update Status Pemain

Berikut adalah flowchart dari request update status pemain dapat dilihat pada gambar
3.9 berikut ini.

Gambar 3.9 Flowchart Sistem Request Update Status

Adapun penjelasan dari flowchart diatas adalah :


1. Pemain akan mengirimkan update status kepda server.
2. Server akan menerima pesan request yang dilakukan oleh pemain.
3. Kemudian server akan memeriksa status pemain pada database server.
4. Jika ada, maka status pemain berubah menjadi ready atau found dan jika tidak
maka server akan mengirim pesan kepada pemain maka pemain akan menunggu
selama 1 menit untuk mengirimkan pesannya kembali pada server.
5. Kemudian pemain menerima informasi pemain lainnya yang dikirimkan oleh
server.
6. Pemain sudah dapat memainkan permainan.

Universitas Sumatera Utara


36

3.4 Proses MatchMaking, Database Server dan Properties Game

3.4.1 Proses MatchMaking

Matchmaking adalah sebuah proses yang dilakukan oleh suatu game untuk membagi
atau mengelompokkan setiap pemain menjadi 2 bagian tim yang saling berlawanan
antara tim satu dengan tim yang lainnya. Dasar utama dalam pengelompokkan pemain
adalah dengan melihat matchmaking ratingnya atau melihat urutan dari setiap pemain
yang bermain.
Berikut gambar 3.11 merupakan gambaran dari suatu proses skema
matchmaking dalam mencarikan lawan untuk setiap pemain game yang sedang
mengantri.

Gambar 3.11 Skema Proses MatchMaking

Berikut keterangan gambar 3.11 yang merupakan proses dari match making.
1. Pemain
Setiap pemain yang ingin bermain akan melakukan request terlebih dahulu
dan pemain dalam keadaan sedang mengantri atau queueing.
2. Server
Server merupakan suatu tempat dimana setiap pemain akan melakukan
request untuk bermain.

Universitas Sumatera Utara


37

3. Database
Kemudian data pemain yang melakukan request akan disimpan didalam
database dan akan diurutkan sesuai antrian dari setiap pemain yang telah
melakukan request.
4. Tabel Data Pemain yang Disimpan
Pada tabel ini merupakan perumpamaan dari data pemain yang melakukan
request kemudian akan diurutkan berdasarkan waktu terlama dari setiap
pemain yang telah melakukan request.
5. Sistem MatchMaking
Sistem matchmaking akan mengecek kedalam database apakah ada pemain
yang sedang menunggu atau tidak.
6. Tabel Pemain yang Ditemukan
Tabel ini merupakan tabel perumpamaan yang berisi pemain yang telah
ditemukan atau dipilih oleh sistem matchmaking yang mana sistem
matchmaking telah memilih pemain yang sesuai dengan kriteria game yang
dimainkan mulai dari waktu terlama pemain yang melakukan request, game
yang dimainkan dan properties pemain.
7. Penjelasan Proses MatchMaking
Pertama sistem matchmaking akan mengecek terlebih dahulu kedalam
database, apakah ada pemain yg mengantri ?. Kalau ada maka database
akan mengirim pesan ke sistem matchmaking bahwasannya pemain 1
tersedia, kemudian sistem matchmaking akan mengirim pesan kembali yaitu
apakah ada pemain yg bermain di game A ? kalau ada maka database akan
mengirimkan pesan balasan berupa pemain tersedia untuk bermain di game
A yaitu pemain 3. Selanjutnya sistem matchmaking meminta ke database
untuk mengurutkan pemain yang mempunyai exprience dan time yang sama
untuk game A. Dan setelah pemain saling bertemu dengan lawannya maka
pemain 1 akan membuat session game baru dan pemain 1 menjadi host
untuk pemain 3 dan pemain 3 akan menjadi peer atau client pada session
game yang dibuat pemain 1.
Selanjutnya pada gambar 3.12 yang merupakan alur flowchart dari
proses matchmaking yang ada pada server, berikut gambar flowchart dari
sistemmatchmaking.

Universitas Sumatera Utara


38

Gambar 3.12 Alur Flowchart dari Sistem MatchMaking

Penjelasan dari flowchart sistem matchmaking yang ada pada gambar 3.11 adalah
sebagai berikut:
Pertama pemain melakukan request untuk bermain pada sebuah server, kemudian
data pemain yang melakukan request akan diporses dan data pemain akan disimpan
kedalam database yang berisi(Id, Experience, status dan waktu masuk). Pencarian
dilakukan oleh sistem matchmaking dengan mecari pemain (P1) dengan waktu tunggu
yang paling lama.
Sistem memeriksa jumlah pemain yang dibutuhkan pada game (A) hasilnya
pemain P1 ditemukan dan sistem melakukan pencarian kembali terhadap pemain yang
dibutuhkan oleh game pada database yang memilih game A (sorted by : experience
dan waktu tunggu). Jika jumlah experience ada yang sama maka pencarian pemain
diurutkan berdasarkan waktu tunggu paling lama.
P1 berperan akan berperan sebagai host yang mana ia sebagai session game atau
pembuat game baru dan pemain lainnya sebagai peer, kemudian permainan sudah bisa
dimulai. Setelah permainan selesai maka sistem akan meng-update hasil dari
pertandingan dari game yang dimainkan oleh pemain.

Universitas Sumatera Utara


39

3.4.2 Database Server


Didalam sebuah server game biasa para pengembang game akan membuat suatu
database yang digunakan untuk menampung atau menyimpan data dari setiap pemain
yang melakukan request atau yang ingin bermain game. Berikut ini gambar 3.13
merupakan gambaran tabel database yang ada pada sistem server (openlobby) yang
dibuat untuk menyimpan data setiap pemain.

Gambar 3.13 Gambaran Tabel Database OpenLobby

Database openlobby terdiri dari 4 tabel yaitu tabel game, tabel player, tabel
queue dan tabel sesssion. Tabel game berisikan field yaitu : game_id adalah id yang
digunakan pada suatu game untuk pemain, game_name adalah nama dari game yang
dimainkan pemain, developer_name merupakan nama dari perusahaan atau pembuat
game yang sering dimainkan, properties merupakan ketentuan yang dimiliki suatu
game untuk menentukan pemain yang akan main, matchmaking_algo adalah
bagaimana suatu proses pencocokan pemain berdasarkan algoritma dari game yang
dimainkan dan session expiry. Kemudian pada tabel player mempunyai field yaitu :
player_id adalah suatu id yang digunakan untuk saling bertukar informasi sesama
pemain, username merupakan nama yang digunakan pemain dalam game, game_id,
experience adalah point yang dikumpulkan agarpemain dapat meningkatkan level
permainan dan properties.
Pada tabel queue mempunyai field yaitu : queue_id merupakan id antrian dari
pemain yang melakukan request terlebih dahulu, player_id, player_ip adalah alamat

Universitas Sumatera Utara


40

dari setiap pemain yang melakukan request, time_queue adalah waktu dimana pemain
mulai mengantri permaianan, status merupakan keadaan pemain ketika menunggu
giliran bermain, apakah ready atau waiting dan session_id. Dan pada tabel session
mempunyai field yaitu : session_id adalah identitas untuk setiap permainan baru,
session_status merupakan kondisi yang menjelaskan keadaan setiap permainan baru,
session_succes adalah permainan baru telah berhasil dijalankan dan session_host_id .

3.4.3 Properties Game


Properties game adalah suatu ketentuan yang dibuat oleh developer game yang ada
pada suatu game yang digunakan untuk menentukan setiap pemain yang bermain
game. Properties dari setiap pemain dapat bertambah tergantung dari hasil score game
yang diperoleh pemain dari hasil kemenangan pada setiap game yang dimainkannya.
Properties dari setiap game berbeda-beda tergantung dari jenis game yang
dimainkan oleh pemain, misalnya game A propertynya, High, Medium dan Easy dan
game B propertynya mulai dari 1 sampai n.

3.5 Perancangan Interface


Sistem akan dibangun dengan menggunakan bahasa pemrograman Java dengan
menggunakan aplikasi NetBeans. Rancangan interface akan disesuaikan dengan
kebutuhan dan software yang digunakan. Perancangan interface dibuat agar mudah
dalam membangunan sistem yang akan dirancang. Sistem matchmaker hanya
memiliki satu mock-up saja yang mana mock-up tersebut hanya ada pada sistem
matchmaker saja. Adapun mock-up itu sendiri adalah rancangan sistem yang berskala
kecil dan tidak lengkap dengan tampilan desain awal (Sebayang, 2014). Satu mock-up
tersebut adalah halaman awal pada sistem matchmaker yang dibuat.

a. Halaman Awal
Pada halaman awal ini kita dapat melihat mock-up dari sistem macthmaker
yang dirancang dan pada mock-up ini kita dapat melihat sebuah tombol yang
mana gunanya nanti untuk mencari kriteria pemain yang sesuai dengan game
yang akan dimainkan, halaman awal ditunjukkan pada gambar 3.13.

Universitas Sumatera Utara


41

1 2
Label Button
Text Field
3

Scroll Bar

Gambar 3.13 Perancangan Interface Halaman Awal

Keterangan gambar 3.13 :

1. Label :.digunakan untuk tulisan MatchMaking sistem


2. Button (start) : digunakan untuk mencarikan kriteria setiap pemain yang
cocok untuk game yang akan dimainkan.
3. Text Field : digunakan untuk menampilkan pemain mana saja yang cocok
dengan kriteria game yang akan dimainkan.
4. Scroll Bar : digunakan untuk melihat informasi pemain yang mempunyai
informasi yang kepanjangan.

Universitas Sumatera Utara


BAB IV
IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Sistem Server


Dalam penelitian ini, sistem server dibangun dengan menggunakan PHP, HTML, CSS
dan JavaScript dan software yang digunakan adalah Notepad ++, untuk sistem
matchmaking dibangun dengan menggunakan bahasa Java dengan software Netbeans.

4.1.1 Enqueue.php
Script enqueue.php merupakan script yang digunakan untuk membuat antrian pemain
ketika ia pertama kali login di sistem server OpenLobby. Disini memasukan data
pemain masih dilakukan secara manual dan ketika pemain sudah login maka data
pemain tersebut akan disimpan kedalam database server. Berikut contoh alamat script
untuk localhost enqueue.php.
a. localhost/openlobby/enqueue.php?player_id=13&game_id=110&player_ip=lo
calhost  alamat script ini menjelaskan dimana ketika pemain memasukan
data player_id=13 maka itu akan menjadi id pemain, kemudian game_id=110
merupakan id yang digunakan pada saat pemain melakukan pertukaran
informasi ketika bermain dan player_ip merupakan alamat pemain ketika
melakukan login pertama kali.
b. localhost/openlobby/enqueue.php?player_id=1&game_id=0&player_ip=10.62.
63.155  alamat script ini menjelaskan dimana ketika pemain melakukan
login maka player_id-nya 1, kemudian game_id-nya 0 dan ipnya 10.62.63.155.
script ini sama dengan script yang dijelaskan diatas.

4.1.2 Get_all_queue.php
Script get_all_queue.php merupakan script yang akan mengambil data setiap pemain
yang telah mengantri kedalam database server. Berikut contoh alamat script dari
get_all_queue.php.

Universitas Sumatera Utara


43

a. localhost/openlobby/get_all_queue.php?queue_id=26  alamat script ini


menjelaskan dimana ketika sistem server menggambil data pemain yang sesuai
dengan queue_id yang diinginkan, misalkan queue_id=26 maka hasil yang
ditampilkan informasi pemain dengan nomor urut 26.

4.1.3 Get_player.php
Script get_player.php adalah script yang mana nantinya sistem server akan
mengambil pemain yang sesuai dengan kriteria game yang akan dimainkan. Berikut
ini contoh dari alamat script get_player.php.
a. localhost/openlobby/get_player.php?player_id=2&game_id=0  alamat script
ini digunakan untuk memilih pemain mana yang cocok dijadikan lawan untuk
pemain lainya, misalkan pada alamat script diatas player_id nya 2 dan
game_id nya 0 maka data pemain tersebut akan muncul pada sistem server.

4.1.4 Get_session_info.php
Script get_session_info.php merupakan script yang menjelaskan tentang status dari
setiap pemain yang telah mengantri didalam database server, apakah pemain tersebut
masih memainkan permainan atau sudah selesai bermain. Dibawah ini contoh alamat
script dari get_session_info.
a. localhost/openlobby/get_session_info.php?queue.id=26  alamat script ini
menjelaskan tentang setiap sesi permainan yang sedang dimainkan oleh
pemain, mulai dari sesi mulai, bertanding dan selesai permainan. Pada script
ini dapat dilihat apakah pemain masih bermain didalam sebuah game atau
sudah selesai melakukan permainan.

4.1.5 Get_status.php
Script get_status.php merupakan script yang digunakan untuk melihat status dari
pemain, apakah pemain sudah menemukan lawannya atau belum. Dan jika sudah
maka status pemain yang berada didalam database akan menjadi found maka pemain
tersebut sudah bisa bermain dengan pemain lainnya dan jika belum maka pemain akan
menunggu didalam database dengan status waiting list. Berikut contoh alamat script
dari get_status.php.

Universitas Sumatera Utara


44

a. localhost/openlobby/get_status.php?queue_id=26  alamat script ini


menjelaskan tentang status dari pemain dengan contoh nomor antrian 26 yang
mana status pemain tersebut masih waiting list atau masih menunggu
lawannya. Sedangkan pemain yang dengan status found maka ia sudah
menemukan lawan dipermainan tersebut.

4.2 Pengujian Sistem


Pengujian dilakukan terhadap sistem server dengan dilakukan uji coba secara
bersamaan dengan game multiplayer yang dibuat dengan ditambahkan matchmaker
untuk melakukan pencarian lawan dari setiap pemain dengan kriteria yang sudah
ditetapkan oleh penggembang game. Pada pengujian ini parameter yang digunakan
adalah bagaimana matchmaker dapat memilih lawan yang sudah ditetapkan oleh
penggembang. Adapun beberapa kriteria pengujian pada sistem, yaitu:
1. Game dapat dimainkan secara multipemain.
2. Pengguna game saling terhubung kedalam 1 server yang sama yaitu
OpenLobby.
3. Memilih lawan dari setiap pemain dengan kriteria sebagai berikut, waktu login
dan properties pemain.
4. Lawan yang telah dipilih sudah ditetapkan oleh penggembang game dan
matchmaker yang akan memilihkan lawan dari setiap pemain.

Pada gambar 4.1 dibawah ini sistem matchmaker telah menemukan kriteria pemain
yang sesuai dengan game yang akan dimainkan oleh pemain, dimana pemilihan
pemain tersebut dilakukan oleh sistem sesuai dengan kriteria yang diminta oleh game
development.

Universitas Sumatera Utara


45

Gambar 4.1 Hasil dari Sistem MatchMaker

Gambar diatas menunjukkan hasil dari sistem matchmaker yang mana semua
pemain sudah dapat bermain dengan lawannya yang sudah menunggu diserver
openlobby, pemain yang dipilih oleh sistem matchmaker telah melalui beberapa tahap
proses yang telah dilakukan dengan mencari urutan antrian terlebih dahulu didalam
database sistem dan kemudian properties dari setiap pemain didalam sebuah game.
Matchmaker akan melakukan pencarian pemain terus-menerus disetiap game
yang akan dimainkan oleh pemain menggunakan sistem server openlobby, bila
pemain pada game A cocok atau sesuai dengan kriteria game A maka ia sudah bisa
bermain game tersebut, namun bila ada dikedua pemain yang sama maka sistem
matchmaker akan memilih pemain tersebut sesuai dengan waktu pertama kali pemain
melakukan antrian atau sistem akan melihat properties kedua pemain tersebut mana
yang lebih cocok dengan kriteria game yang dimainkan.

Universitas Sumatera Utara


BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan
Berdasarkan analisis, perancangan dan hasil pengujian terhadap game yang dimainkan
dengan menggunakan Sistem Server Terbuka (OpenLobby), maka dapat disimpulkan
bahwa:
1. Telah berhasil membangun server openlobby.
2. Sistem server OpenLobby dapat melayani dan menyediakan API untuk
berkomunikasi dengan permainan.
3. Sistem matchmaker dapat mencocokkan lawan mana saja yang sesuai dengan
kriteria penggembang game.
4. Server dapat memantau setiap permainan yang dimainkan dan dapat melihat
setiap rangking pemain yang berada didalam database server.
5. Uji coba menunjukkan server dapat membantu penggembang game dalam
membangun sebuah fitur multiplayer pada game yang akan dikembangkan.

5.2 Saran
Berikut ini beberapa saran yang dapat dipertimbangkan untuk memperbaiki penelitian
ini dan untuk penelitian kedepannya, yaitu:
1. Sistem server dikemudian hari dapat digunakan secara komersial seperti
registrasi pemain dan permainan.
2. Fitur pada server harus ditambahkan yaitu fitur keamanan komunikasi yang
ada pada game, karena game yang dikembangkan tidak memiliki fitur
keamanan.
3. Dibutuhkan pengalaman sosial didalam sistem server.
4. Ditambahkan fitur rangking dari setiap permainan game yang dimainkan.
5. Diperlukannya fitur jejaring sosial pada server agar pemain dapat mengundang
atau memberi informasi kepada orang lain.

Universitas Sumatera Utara


47

DAFTAR PUSTAKA

Armitage, Grenville., Claypool, Mark., Branch, Philip. 2006. Netwroking and Online
Games. Wiley : England.
Armitage, Grenville., Heyde, Amiel. 2012. REED : Optimizing First Person Shooter
Game Server Discovery Using Network Coordinate. University of
Technology : Australia002E
Baihaqi, Muhammad Lutfi. Protokol Jaringan Komputer. Politeknik Negeri Semarang
: Semarang.
Briain, Ó Briain, Diarmuid. 2015. Open Network. Penerbit Free Technology Academy
: Ireland.
Diarmuid. 2015. Open Network. Penerbit Free Technology Academy : Ireland.
Brauer, Daniel., Rooney, Sean., Scotton, Paolo. 2002. Network Infrasructure for
Massively Distributed Games. IBM Research: Switzerland.
CaiLanZhou., YuKuiWang., ShaShaLi. 2011. Design of Server for Network Casual
Games. IEEE.
Chanthaprham, Kanwara., Buranapinyo, Watcharachai,. Dkk. 2013. Building a Cloud-
Based MOG Game Server. IEEE.
Chen, Yuh-Rong., Radhakrishman, Sridhar., dkk. 2011. On the Game Server Network
Selection with Delay and Delay Variation Constraints.
Emmerich, Paul., Raumer, Daniel., dkk. 2014. A Study of Network Stack Latency for
Game Servers. IEEE.
Fakultas Teknologi Informasi Universitas Kanjuruhan Malang. 2015. Buku Ajar
Modul I Mikrotik Operating System Jaringan Komputer.
Färber, Johannes. 2002. Network Game Traffic Modeling. University of Stuttgart:
Germany.
Huda. R. Khaerul. 2007. “Kelebihan dan Kekurangan Peer to peer dan Client-Server”.
IlmuKomputer.Com.
Koutsopoulos, Iordanis., Tassiulas, Leandros., Gkatzikis, Lazaros. 2009. Client and
Server Game in Peer-to-peer Network. IEEE.
Li, Dengshi., Yan, Bin., Tao, Jun. 2012. The Analysis of The Basic Model of The
Multiplayer Client-Server Queuing Network. IEEE.

Universitas Sumatera Utara


48

Micro, Andi. 2012. Dasar-Dasar Jaringan Komputer. Penerbit Creative Common


License : Banjarbaru.
Ouimet, Zane., Caswell, Heath., Khmelevsky, Youry., dkk. 2016. Game Servers
Deployment Automation Case Study. IEEE.
Ploss, Alexander., Wichmann, Stefan., dkk. 2008. From a Single- to Multi-Server
Online Game : A Quake 3 Case Study Using RTF. University of Münster,
Germany.
Waveren. J.M.P.Van. 2006. The DOOM III Network Architecture. Id Software Inc.
Zhi-cong, LIANG., Ping, CHEN., Sheng-ming, HU., dkk. 2008. ACE-based Design
and Implementation of The Network Server in Online Games. IEEE.
Zyda, Michael., Rosen, Devin., Nandakumar, Bharathwaj. 2008. GOGS : USC
GamePipe Online Game Servers. Los Angles : California.

Universitas Sumatera Utara


A-1

LAMPIRAN 1

LISTING PROGRAM

1. Listing Program Server

1.1 enqueue.php
<?php
// ENQUEUE.PHP

$server = "localhost";
$username = "root";
$password = "";
$database = "openlobby";

$player_id = $_GET['player_id'];
$game_id = $_GET['game_id'];
$player_ip = $_GET['player_ip'];

$conn = new mysqli($server,


$username,
$password,
$database);

$sql = "INSERT INTO queue(player_id, game_id, player_ip)


VALUES ('$player_id', '$game_id',
'$player_ip')";

if ($conn->query($sql) === TRUE) {


echo "QUEUEING" . " " . mysqli_insert_id($conn);
} else {
echo "<br/>Error: " . $conn->error;
}

$conn->close();

?>

1.2 get_all_queue.php
<?php
// GET_ALL_QUEUE.PHP

$server = "localhost";
$username = "root";
$password = "";
$database = "openlobby";

$queue_id = $_GET['queue_id'];

Universitas Sumatera Utara


A-2

$conn = new mysqli($server,


$username,
$password,
$database);

$sql = "SELECT * FROM queue";

$result = $conn->query($sql);

$data = array();

while ($row = $result->fetch_assoc())


{
array_push($data, $row);
}

// required to avoid json got truncated when too long


echo json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS |
JSON_HEX_QUOT | JSON_HEX_AMP);

$conn->close();

?>

1.3 get_player.php
<?php
// GET_PLAYER.PHP

$server = "localhost";
$username = "root";
$password = "";
$database = "openlobby";

$player_id = $_GET['player_id'];
$game_id = $_GET['game_id'];

$conn = new mysqli($server,


$username,
$password,
$database);

$sql = "SELECT * FROM player WHERE player_id = '$player_id' AND


game_id = '$game_id'";

$result = $conn->query($sql);

$data = array();

while ($row = $result->fetch_assoc())


{
array_push($data, $row);
}

Universitas Sumatera Utara


A-3

// required to avoid json got truncated when too long


echo json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS |
JSON_HEX_QUOT | JSON_HEX_AMP);

$conn->close();

?>

1.4 get_session_info.php
<?php
// GET_SESSION_INFO.PHP

$server = "localhost";
$username = "root";
$password = "";
$database = "openlobby";

$queue_id = $_GET['queue_id'];

$conn = new mysqli($server,


$username,
$password,
$database);

$sql = "SELECT session_id FROM queue WHERE queue_id =


'$queue_id'";

$result = $conn->query($sql);

if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
// directly accessing player ip, not a good method
$sql = "SELECT player_ip FROM queue AS q, session AS s
WHERE q.session_id = s.session_id AND s.session_host_id =
q.player_id";
}
}
else
{
echo "ERROR";
}

$conn->close();

?>

Universitas Sumatera Utara


A-4

1.5 get_status.php
<?php
// GET_STATUS.PHP

$server = "localhost";
$username = "root";
$password = "";
$database = "openlobby";

$queue_id = $_GET['queue_id'];

$conn = new mysqli($server,


$username,
$password,
$database);

$sql = "SELECT status FROM queue WHERE queue_id = '$queue_id'";

$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{

if ($row["status"] == 0)
{
echo "QUEUEING";
}
else if ($row["status"] == 1)
{
echo "FOUND";
}
}
}
else
{
echo "NOTFOUND";
}

$conn->close();

?>

2. Listing Program MatchMaker

2.1 Player.java
package POJO;

public class Player {


int id;
String username;

Universitas Sumatera Utara


A-5

int gameId;
int experience;
int properties;
}
2.2 Queue.java
package POJO;
public class Queue {
private int queueId;
private int playerId;
private String playerIp;
private int gameId;
private int timeQueue;
private int status;
private int sessionId;
public int getQueueId() {
return queueId;
}
public void setQueueId(int queueId) {
this.queueId = queueId;
}
public int getPlayerId() {
return playerId;
}
public void setPlayerId(int playerId) {
this.playerId = playerId;
}
public String getPlayerIp() {
return playerIp;
}
public void setPlayerIp(String playerIp) {
this.playerIp = playerIp;
}
public int getGameId() {
return gameId;
}
public void setGameId(int gameId) {
this.gameId = gameId;
}
public int getTimeQueue() {
return timeQueue;
}
public void setTimeQueue(int timeQueue) {
this.timeQueue = timeQueue;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getSessionId() {
return sessionId;

Universitas Sumatera Utara


A-6

}
public void setSessionId(int sessionId) {
this.sessionId = sessionId;
}
}

2.3 Matchmaker.java
package matchmaker;
public class Matchmaker {

public static void main(String[] args) {

MatchmakerForm mf = new MatchmakerForm();


mf.setVisible(true);

}
}

2.4 MatchmakerFom.java
package matchmaker;

public class MatchmakerForm extends javax.swing.JFrame {

public MatchmakerForm() {
initComponents();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {

jButton1 = new javax.swing.JButton();


jLabel1 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CL
OSE);

jButton1.setText("Start");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jLabel1.setText("Matchmaking");

Universitas Sumatera Utara


A-7

jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL
ATED)
.addComponent(jButton1,
javax.swing.GroupLayout.DEFAULT_SIZE, 116, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(jButton1)
.addComponent(jLabel1))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL
ATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 253, Short.MAX_VALUE)
.addContainerGap())
);

pack();
}// </editor-fold>

private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

Universitas Sumatera Utara


A-8

MatchmakerThread mt = new MatchmakerThread();


mt.run();

public static void main(String args[]) {

try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(MatchmakerForm.class.getName
()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(MatchmakerForm.class.getName
()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(MatchmakerForm.class.getName
()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException
ex) {

java.util.logging.Logger.getLogger(MatchmakerForm.class.getName
()).log(java.util.logging.Level.SEVERE, null, ex);
}

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MatchmakerForm().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration
}

Universitas Sumatera Utara


A-9

2.5 MatchmakerThread.java
package matchmaker;

import POJO.Queue;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.logging.Level;
import java.util.logging.Logger;

public class MatchmakerThread implements Runnable {


public void run() {
System.out.println("MThread is running");
try {

URL url = new


URL("thtp://jtarigan.id/openlobby/get_all_queue.php");

System.out.println("Opening Connection");
URLConnection l_conn = url.openConnection();

System.out.println("Getting inpustream");
BufferedReader l_br = new BufferedReader(new
InputStreamReader(l_conn.getInputStream()));

String l_line="", l_response = "";

System.out.println("reading line");
while ((l_line = l_br.readLine()) != null)
{
l_response = l_response + l_line;
}
if (l_response.contains("null"))
{
l_response = l_response.substring(4,
l_response.length());
}

System.out.println(l_response);

JsonArray entries = (JsonArray) new


JsonParser().parse(l_response);

Thread.sleep(1000);

JsonObject obj;

Universitas Sumatera Utara


A-10

Queue q;
for (int i = 0; i < entries.size(); i++)
{
obj = entries.get(i).getAsJsonObject();

q = new Queue();
}

} catch (MalformedURLException ex) {

Logger.getLogger(MatchmakerThread.class.getName()).log(Level.SE
VERE, null, ex);
} catch (IOException ex) {

Logger.getLogger(MatchmakerThread.class.getName()).log(Level.SE
VERE, null, ex);
} catch (InterruptedException ex) {

Logger.getLogger(MatchmakerThread.class.getName()).log(Level.SE
VERE, null, ex);
}

Universitas Sumatera Utara


B-1

CURRICULUM VITAE (CV)

I INFORMASI PRIBADI
1.1 Nama Lengkap : Muhammad Abdurrahman Fira
1.2 Tempat, Tanggal Lahir : Medan 04-September-1995
1.3 Jenis Kelamin : Laki-laki
1.4 Alamat Tempat Tinggal Jl. Bunga Ncole XIVa No.75 Komplek Lizadri
:
Putra Medan
1.5 Nomor Telp / HP : 081349484402
1.6 Email : dodo.abdurrahman@gmail.com
1.7 Pendidikan Terakhir : S1 Ilmu Komputer
1.8 Satus Pernikahan : Belum Menikah

II INFORMASI PENDIDIKAN
Tahun Tahun
Jenjang Pendidikan Nama Institusi
Masuk Lulus
2.1 Taman Kanak-kanak TK Nurul hasanah 2000 2001
2.2 Sekolah Dasar SDIT Siti Hajar 2001 2003
2.3 Sekolah Dasar SD Namira 2004 2007
2.4 Sekolah Menengah Pesantren Ar-
2007 2009
Pertama Raudhatul Hasanah
2.5 Sekolah Menengah SMP Namira
2009 2010
Pertama
2.6 Sekolah Menengah SMK Namira Tech
2010 2013
Kejuruan Nusantara
2.7 Universitas
Strata 1 (S1) Sumatera Utara – S1 2013 2017
Ilmu Komputer

III Workshop/Seminar/Kursus
Nama Seminar/Workshop/Kursus Tahun
3.1 Workshop IT “GIT Repository” 2017
3.2 International Conference On Computing and
2016
Applied informatics (ICCAI)
3.3 Pertamina Goes to Campus “Ketahanan &
2016
Kemandirian Energi untuk Negri
3.4 Seminar Nasional Literasi Informasi (SENARAI) 2014
3.5 Seminar Gelora Literasi Teknologi Informasi & 2013

Universitas Sumatera Utara


B-2

Komunikasi (Si GELITIK)


3.6 What Will You Be? 2013
3.7 Sertifikat Kompetensi “Teknik Komputer dan
2013
Jaringan Komputer”
3.8 Dinas Pendidikan Kota Medan 2007

IV PENGALAMAN ORGANISASI & KEPANITIAAN


Nama Tahun
Jabatan Tahun Mulai
Organisasi/Kepanitiaan Selesai
4.1 Ikatan Mahasiswa S1
Kepala Dana Dan
Ilmu Komputer 2016 2017
USaha
(IMILKOM) USU
4.2 Penyambutan Anggota Dana 2015 2015
Mahasiswa Baru
IMILKOM USU 2015
4.3 PORSENI IMILKOM Anggota Dana 2014 2015
USU
4.4 Ilmu Komputer Goes Anggota Humas 2014 2014
to School
4.5 Paskibra Anggota 2009 2010

V KEMAMPUAN
5.1 Bahasa Indonesia Baik
5.2 Bahasa Inggris Cukup
5.3 Software Microsoft Application
5.4 Bahasa Pemrograman HTML

Saya menyatakan bahwa data yang saya tuliskan dalam riwayat hidup ini
adalah benar dan menggambarkan keadaan diri saya.

Medan, Januari 2018

Hormat Saya,

Muhammad Abdurrahman Fira

Universitas Sumatera Utara

Anda mungkin juga menyukai