Anda di halaman 1dari 8

Penerapan Socket Programming Pada Game Multi Client

“Di Kejar Musuh”

Usman Nurhasan1), Hendra Pradibta 2) , Erfan Rohadi3) dan Indrazno


Siradjuddin4)
1,2,3
Jurusan Teknologi Informasi, Politeknik Negeri Malang
4
Jurusan Teknik Elektro, Politeknik Negeri Malang
E-mail: usmannurhasan@polinema.ac.id

Abstract

Game is one of the sciences in the world of informatics. In making games, several aspects
must be considered, agreed upon are the concepts of multiplayer and playing rules. The
application of the game rules in the game is fully needed because this is the core of the
process that occurs in the game. While the multiplayer concept can be added value in the
game. Application The concept of multi players in games can use socket programming.
However, arising from the socket can only be done at one time. It only requires a concept
for one client, whereas in the multi-player concept it requires data parsing between the
server and many clients. To overcome this, you need to apply a thread in the socket.
Threads make process indexes in a socket can be executed repeatedly and simultaneously.
This concept which was then applied in the game was pursued by prey. In this game,
players can play simultaneously and the server can process parsing data from each client at
the same time

Keywords: game, multi client, socket programming, thread, rule playing

Abstrak

Game merupakan salah satu displin ilmu dalam dunia informatika. Dalam pembuatan game
perlu diperhatikan beberapa aspek, diantaranya adalah konsep multiplayer dan rule playing.
Penerapan rule playing dalam game mutlak diperlukan karena hal ini merupakan inti dari
proses yang terjadi dalam game. Sedangkan konsep multiplayer dapat mejadi nilai tambah
dalam permainan game. Penerapan konsep multi player dalam game dapat memanfaatkan
socket programming. Namun kendala yang timbul dari socket adalah pemrosesan hanya
dapat dilakukan dalam satu waktu. Sehingga konsep ini hanya dapat memproses perintah
untuk satu client saja, sedangkan dalam konsep multi player dibutuhkan parsing data antara
server dan banyak client. Untuk mengatasi hal itu, perlu penerapan threads dalam socket.
Thread membuat indeks proses dalam socket dapat dieksekusi secara berulang dan
bersamaan. Konsep ini yang kemudian diterapkan dalam game dikejar musuh. Dalam game
ini, player dapat bermain secara bersamaan dan server dapat memproses parsing data dari
masing-masing client dalam satu waktu yang sama.

Kata Kunci: game, multi client, socket programming, thread, rule playing

PENDAHULUAN
Game merupakan salah satu media hiburan yang banyak digunakan oleh orang. Pada
perkembangannya game muncul dengan berbagai jenis genre, diantaranya genre action
games, strategy games, role playing games, sport games, vehicle simulations,
construction and management simulations, adventure games, serta artificial life, board
and puzzle(Goldstone, 2009). Kemunculan berbagai jenis genre ini didasari oleh sifat
manusia yang selalu menyukai pembaharuan dan tantangan. Dalam dunia game, sebuah
aturan atau rule playing selalu menjadi kunci dalam menariknya sebuah permainan.
Salah satu konsep yang dapat membuat game sederhana menjadi lebih menarik adalah
dengan menerapkan konsep client server. Pada konsep ini, game dapat dimainkan oleh
banyak pemain (multiclient/ multi player). Game yang dapat dimainkan oleh banyak
pemain (multiplayer) tentunya akan memberikan pengalaman bermain yang lebih
menyenangkan dibandingkan jika bermain game seorang diri atau melawan Artificial
Intelligence (AI) (Millington, Funge, & Edition, 2009).
Implementasi konsep client-server dapat dilakukan dengan menggunakan beberapa
teknologi, diantaranya socket, RMI, json ataupun rest. Pada kasus ini, teknologi socket
diterapkan sebagai media jembatan komunikasi data (Harold, 2005). Socket merupakan
interface pada jaringan yang menjadi titik komunikasi antarmesin pada Internet Protocol
(Harold, 2005). Komunikasi inti dibentuk agar dapat terjadi pertukaran data dan
informasi jaringan. Elemen-elemn utama pembentuk Socket adalah Protokol, Local IP,
Local Port, Remote IP, dan Remote Port (Kalita, 2014). Komunikasi socket terutama
diciptakan untuk tujuan menjembatani komunikasi antara dua buah program yang
dijalankan pada mesin yang berbeda.
Walau dapat berjalan pada multiclient socket memliki kelemahan. Kelemahan dari
socket adalah dalam eksekusinya hanya dapat melakukan satu kali proses eksekusi
parsing data. Untuk mengatasi hal tersebut dapat diimpementasikan sebuah thread pada
socket. Pemberian thread pada socket merupakan salah satu solusi agar komunikasi data
pada socket dapat berjalan berulang kali dan stabil (Burke & Coyner, 2003).
Berdasarkan dari pemaparan diatas, maka socket akan diimplemtasikan pada game “di
Kejar Musuh”. Player yang bermain dianalogikan sebagai mangsa yang dikejar,
sedangkan musuh / enemy adalah Non-playable Characters (NPC) yang memiliki tugas
membunuh musuh yang ada didepannya (Purba, Hasanah, & Muslim, 2013). Game
dibuat bersifat multiclient dengan mengedapankan sifat proses kerja dari socket dan
threads.
METODE PENELITIAN

A. Arsitektur Game
Game yang dibuat mengadopsi dari pola permainan dadu pada ular tangga. Namun
dikemas dengan konsep yang berbeda. Dadu menjadi acuan pemain akan berada
diposisi mana dalam panel permainan. permainan dimulai dengan cara client melakukan
koneksi terlebih dahulu kepada server. Setelah tercipta koneksi, permainan dapat di
lakukan dengan mengikuti rule game yang telah dibuat. Untuk lebih memperjelas, pada
Gambar 3 akan ditunjukkan diagram alir dari game yang dibangun. Pada alur tersebut
terdapat beberapa perlakuan parsing data / komunikasi data antara server ke client
begitu pula sebaliknya. Parsing data yang terjadi adalah proses parsing data rule, value
game, dan posisi bidak dari masing-masing client (Alfaris, Anam, & Masy’an, 2013).
Gambar 3. Diagram Alir Game

Pada aplikasi game yang telah dibuat, ada beberapa fungsi untuk melakukan parsing
data. Berikut merupakan analisis dari fungsi yang telah dibuat:
a. Fungsi pada server untuk menerima data dari client
b. Fungsi pada server untuk mengirim data ke client
c. Fungsi pada client untuk menerima data dari server
d. Fungsi pada client untuk mengirim data ke client.
e. Fungsi pada client untuk dapat melihat permaianan dari semua client dalam waktu
yang sama.

B. Aturan dalam Game


Aturan yang diterapkan pada game ini adalah sebagai berikut:
1. Aplikasi berjalan dengan konsep client-server.
2. Jumlah client yang dapat terhubung dalam server dibatasi empat client.
3. Permainan dimulai ketika status server adalah waiting, dan masing-masing
client dapat melakukan login
4. Ketika client sudah masuk kedalam room permainan, maka nyawa akan
muncul
5. Setiap pemain memiliki 3 nyawa.
6. Setiap pemain dapat memilih no 1/2/3/4/5
7. Jika Pemain memilih nomor yang sama dengan pemain lain makan pemain
akan bergeser tempat (slot) ke belakang mendekat musuh.
8. Jika pemain memilih nomor dan tidak sama dengan nomor pemain lain
maka pemain dapat bergeser maju menjauhi musuh.
9. Perpidahan pemain ditentukan oleh pemilihan nomor yang dipilih sendiri,
dan posisi untuk bergeser didapatkan dari hasil membandingkan dengan
pilihan pemain lain.
10. Pemain dinyatakan kalah jika telah diakan Zombie sebanyak 3x hingga
nyawanya habis.
11. Pemain dinyatakan menang apabila Pemain yang lain telah mati.

HASIL DAN PEMBAHASAN

A. Mockup Aplikasi
Dari perancangan system yang sudah dibuat, kemudian di implementasikan menjadi
sebuah aplikasi game berbasis android. Berikut merupakan hasil dari implementasi
aplikasi game Dikejar Musuh. Pada Halaman Server Terdapat Tombol Start Server yaitu
tombol untuk memulai Chat dengan Client dan tombol Stop Server Untuk mengakhiri
Chat dengan Client. Pada Gambar 4(a) akan ditampilkan mockup koneksi server client.
Pada laman tersebut user dapat melakukan sinkronisasi port yang digunakan dalam
komunikasi di game ini. Port yang digunakan adalah 8080. Setelah user melakukan
sinkronisasi, kemudian muncul notifikasi bahwa user (client) sudah terkoneksi dengan
server. Pada gambar 4 (b) ditunjukkan hasil dari koneksi client dengan server. Pada
Halaman Client terdapat 3 Kolom yang harus diisi yaitu Username, Ip Address, Dan
Port. Halaman setting client ditunjukkan pada Gambar 5(a).

(a) (b)
Gambar 4 (a). Mockup koneksi server client (b) Notifikasi konektifitas

Semua harus sesuai dengan server agar bisa terkoneksi 1 jaringan dengan server
dan Client lainnya. Pada Gambar 5(b) ditunjukkan tampilan laman permainan Game
Dikejar Musuh. Pada laman ini semua client dapat melakukan permainan dengan rule
yang sudah ditetapkan sebelumnya. Masing-masing client yang terkonesi dapat melihat
aktifitas lawan dalam laman yang sama.

(a) (b)
Gambar 5 (a). Mockup setting koneksi client (b) Halaman permainan
B. Source Code
Pembuatan aplikasi ini menggunakan Bahasa pemrograman java, dan dibagi menjadi
beberapa class, diantaranya socket server, socket client dan thread. Pada list code class server,
telah diimplementasikan konsep thread. Sehingga semua indeks proses yang terjadi dalam
server dapat dieksekusi secara bersama. Kemudian pada masing-masing client juga terdapat
socket client. Pada socket client juga telah diterapkan thread. Sehingga ketika terjadi
interkoneksi antara server dan client, thread juga berjalan secara bersama-sama dalam satu
waktu iterasi. Untuk proses parsing data, di server diberikan satu class khusus yaitu class send
file. Class ini bertugas untuk mengatur ekseskusi pengiriman data dari server ke client
begitupula sebaliknya. Data yang dikirmkan oleh server berupa notifikasi akses socket client
kepada server. Selain tiu data yang dikirim berupa value dadu pilihan dari masing-masing client.

C. Implementasi
Unjuk kerja dari aplikasi ini dilakukan oleh empat client yang bermain dalam waktu
yang sama. Masing-masing client melakukan koneksi terhadap server dan ditunjukkan
pada gambar dibawah ini. Player 1 dengan menggunakan IP address 192.168.43.248 dan
port 8080 melakukan login kepada server, dan tercatat sebagai client 1. Begitu pula
dengan player-player yang lain. Masing-masing client memiliki IP address yang
terkoneksi satu jarimgan dengan server. Dari proses interkoneksi yang dilakukan, server
menerima notifikasi dengan ditunjukkan pada gambar 11.

(a) (b)
Gambar 8 (a). Setting koneksi client (b) Notifikasi koneksi client server

Setelah masing-masing client berhasil melakukan login, maka permainan akan


dimulai. Laman permainan akan muncul. Form tersebut secara realtime akan merespon
semua aktifitas yang dilakuakn oleh client. Permainan dijalankan dengan menerapkan
rule game yang sudah dibuat. Dari uji coba fungsi dan unjuk kerja yang dilakukan,
semua fungsi dapat berjalan dengan baik. Parsing data antara masing-masing client
menuju server begitu pula sebaliknya berjalan dengan baik. Adanya delay parsing data
yang terjadi bukan dikarenakan oleh algoritma ataupun struktur thread yang ada,
melainkan karena adanya ketidakstabilan media jaringan yang digunakan. Berdasarkan
hasil analisis dan perancangan yang telah dibuat, dapat disimpulkan bahwa Game online
banyak dinikmati oleh para penguna karena pengguna satu dengan pengguna lainnya
dapat berinteraksi secara langsung melalui chat. Game ini dapat dimainkan secara
multiplayer. Kami memilih game dikejar Musuh ini karena game ini mudah untuk
dimainkan secara bersama dan termasuk game terbaru.
Pemain akan diburu oleh musuh pada setiap step permainan. Dalam satu iterasi
permainan, serever akan membandingkan angka dadu yang didapat oleh masing-masing
pemain. Pemain yang memiliki nilai dadu lebih besar, maka akan ditempatkan pada
panel sebelah kiri. Pemain yang memiliki nilai dadu terkecil dalam setiap iterasi, maka
akan menempati slot panel disebelah kanan dan berpeluang di mangsa oleh musuh.
Musuh akan memangsa pemain yang berposisi di slot yang berdampingan dengan
musuh. Posisi musuh akan tetap dan tidak berpindah. Pemenang ditentukan dengan skor
akhir. Pemain yang memiliki sisa nyawa terbanyak, maka ditetapkan sebagai pemenang.

Gambar 12. Halaman Permainan

Proses parsing data terjadi ketika client melakukan koneksi dan login kepada
user. Server kemudian mengirimkna akses kepada masing-masing client untuk dapat
bermain. Masing-masing client akan mengirimkan dadu yang dipilih pada setiap iterasi
permainan. Server menerima dadu dan membandingkan untuk masing-masing client.
Hasil dari proses membandingkan tersebut kemudian dijadikan acuan untuk
menentukan posisi dari masing-masing client di iterasi permainan selanjutnya. Hal ini
kemudian berulang sampai permainan selesai.
SIMPULAN
Socket merupakan salah satu teknologi yang digunakan pada proses parsing data client
server dan dapat dikembangkan di banyak bahasa pemrograman. Pada kasus ini, socket
dijadikan sebagai jembatan untuk menghubungkan data dari client ke server dalam pola
permainan. Mengingat kelemahan socket adalah memiliki satu kali proses pengiriman
kemudian socket akan mati, maka diterapkan thread dalam socket. Penerapan thread ini
berhasil, hal ini ditunjukkan game dapat dimaikna oleh 4 client sekaligus. Dan proses
parsing data dari masing-masing client ke server tidak mengalami kendala. Data berupa
angka yang menjadi pilihan dari masing-masing client dapat diterima dan diproses
untuk dibandingkan satu sama lain. Hasil dari perbandingan di server, kemudian
dikirimkan ke masing-masing client. Dan merubah posisi client pada permainan sesuai
rule game yang telah di tetatpkan. Dari penelitian ini, kemudian dapat dikembangkan ke
banyak aplikasi lain yang lebih kompleks.

DAFTAR PUSTAKA
Alfaris, H. B. I., Anam, C., & Masy’an, A. (2013). Implementasi Black Box Testing
Pada Sistem Informasi Pendaftaran Santri Berbasis Web Dengan Menggunakan
PHP dan MySQL. SAINTEKBU: Jurnal Sains Dan Teknologi, 6(1), 23–38.
Burke, E., & Coyner, B. (2003). Java Extreme Programming Cookbook. In Interfaces.
Goldstone, W. (2009). Unity Game Development Essentials. In Image Rochester NY
(Vol. 10).
Harold, E. R. (2005). Java Network Programming 3rd Edition.
Kalita, L. (2014). Socket Programming. 5(3), 4802–4807.
Millington, I., Funge, J., & Edition, S. (2009). ARTIFICIAL INTELLIGENCE Second
Edition. In Representations. https://doi.org/10.1017/S0263574700004070
Purba, K. R., Hasanah, R. N., & Muslim, M. A. (2013). Implementasi Logika Fuzzy
Untuk Mengatur Perilaku Musuh dalam Game Bertipe Action-RGP. Jurnal
EECCIS, 7(1), 15–20. Retrieved from
https://www.academia.edu/6451915/Implementasi_Logika_Fuzzy_Untuk_Mengatu
r_Perilaku_Musuh_dalam_Game_Bertipe_Action-RPG

Anda mungkin juga menyukai