Membangun Rancangan Aplikasi Sistem Server Terbuka (Openlobby) Untuk Mendukung Fitur
Membangun Rancangan Aplikasi Sistem Server Terbuka (Openlobby) Untuk Mendukung Fitur
SKRIPSI
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah
Sarjana S-1 Ilmu Komputer
131401087
PERNYATAAN
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
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.
Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan
kepada penulis mendapatkan pahala yang melimpah dari Allah SWT.
Penulis
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.
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.
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
Daftar Pustaka 47
DAFTAR TABEL
Halaman
Tabel 2.1 Penelitian yang Relevan 18
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
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
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
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.
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.
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.
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.
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.
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
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).
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
data yang dibutuhkan dan dapat mengirimkan data ke komputer lain yang
membutuhkan.
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.
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) :
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.
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
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.
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.
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.
Gambar 2.5 Game tennis untuk dua orang pemain menggunakan osiloskop
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.
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
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.
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).
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
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.
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.
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.
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.
Berikut arsitektur umum dari sistem yang dibangun terdapat pada gambar 3.2.
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.
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.
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
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.
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.
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
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.
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.
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.
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.
Berikut adalah flowchart dari sistem matchmaking yang dapat dilihat pada gambar 3.9
berikut ini.
Berikut adalah flowchart dari request update status pemain dapat dilihat pada gambar
3.9 berikut ini.
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.
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.
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.
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.
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
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 .
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.
1 2
Label Button
Text Field
3
Scroll Bar
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.
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.
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.
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.
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.
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.
LAMPIRAN 1
LISTING PROGRAM
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->close();
?>
1.2 get_all_queue.php
<?php
// GET_ALL_QUEUE.PHP
$server = "localhost";
$username = "root";
$password = "";
$database = "openlobby";
$queue_id = $_GET['queue_id'];
$result = $conn->query($sql);
$data = array();
$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'];
$result = $conn->query($sql);
$data = array();
$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'];
$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();
?>
1.5 get_status.php
<?php
// GET_STATUS.PHP
$server = "localhost";
$username = "root";
$password = "";
$database = "openlobby";
$queue_id = $_GET['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.1 Player.java
package POJO;
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;
}
public void setSessionId(int sessionId) {
this.sessionId = sessionId;
}
}
2.3 Matchmaker.java
package matchmaker;
public class Matchmaker {
}
}
2.4 MatchmakerFom.java
package matchmaker;
public MatchmakerForm() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
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");
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
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) {
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);
}
});
}
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;
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()));
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);
Thread.sleep(1000);
JsonObject obj;
Queue q;
for (int i = 0; i < entries.size(); i++)
{
obj = entries.get(i).getAsJsonObject();
q = new Queue();
}
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);
}
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
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.
Hormat Saya,