iii juni13.pdfjurnal ilmiah universitas satya negara indonesia vol.6, no.1 juni 2013 hal.:48-61 v...

24
Jurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 ii

Upload: others

Post on 28-Dec-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

Jurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 ii

Page 2: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

Jurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 iii

JURNAL ILMIAH SATYA NEGARA INDONESIA merupakan Jurnal Ilmiah

yang menyajikan artikel original tentang pengetahuan dan informasi penelitian

atau aplikasi penelitian dan pengembangan terkini yang berhubungan dengan

bidang yang ada di Universitas Satya Negara Indonesia yang memiliki empat

Fakultas yaitu Fakultas Teknik, Fakultas Perikanan dan Ilmu Kelautan, Fakultas

Ekonomi dan Fakultas Ilmu Sosial dan Ilmu Politik. Jurnal ini merupakan sarana

publikasi dan ajang berbagi karya riset dan pengembangannya di Universitas

Satya Negara Indonesia (USNI).

Pemuatan artikel di Jurnal ini dapat dikirim ke alamat Penerbit. Informasi lebih

lengkap untuk pemuatan artikel dan petunjuk penulisan artikel tersedia pada

halaman terakhir yakni pada Pedoman Penulisan Jurnal Ilmiah atau dapat dibaca

pada setiap terbitan. Artikel yang masuk akan melalui proses seleksi editor atau

mitra bestari.

Jurnal ini terbit secara berkala sebanyak dua kali dalam setahun yakni Juni dan

Desember. Pemuatan naskah tidak dipungut biaya. Jurnal Ilmiah Satya Negara

Indonesia merupakan peningkatan dari Jurnal USNI sebelumnya.

Alamat Penerbit / Redaksi

Lembaga Penelitian dan Pengabdian pada Masyarakat (LPPM)

Universitas Satya Negara Indonesia

Jl. Arteri Pondok Indah No.11 Kebayoran Lama Utara

Jakarta Selatan 12240 – Indonesia

Telp. (021) 7398393/7224963. Hunting, Fax 7200352/7224963

Homepage : http://www.usni.ac.id

E-mail : [email protected]

Frekuensi Terbit

2 kali setahun : Juni dan Desember

Page 3: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

Jurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 iv

Vol. 6 No. 1 Juni 2013 ISSN : 1979-5246

JURNAL ILMIAH

SATYA NEGARA INDONESIA

Pelindung

Prof. Dr. Lijan P. Sinambela, MM, M.Pd

(Rektor)

Penanggung Jawab

Dr. Yusriani Sapta Dewi, MSi

(Ketua LPPM)

Penasehat

Prof. Dr. Ir. Supriyono Eko Wardoyo, M.Aq

Dewan Redaksi

Prof. Dr. Ir. Wilson H. Limbong, M.S

Ir. Semuel AM. Littik, M.Sc, Ph.D

Dr. Ir. Jupiter Sitorus, M.Eng

Dr. Ir. Mustahal, M.Sc

Dr. Yusriani Sapta Dewi, M.Si

Ir. Urip Rahmani, M.Si

Meifida Ilyas, SE, M.Si

Ir. Nunung Nurhayati, M.Si

Mitra Bestari

Prof. Dr. Irwan Abdullah, M.Sc (UGM)

Prof. Dr. Ronald Z. Titahelu, SH, M.S (UNPATTI)

Prof. Dr. Ir. Rosmawati Paranginangin, M.S (Balai Riset DKP)

Dr. Dedi Setia Permana, M.Sc (LIPI)

Penyunting Pelaksana

Istiqomah Sumadikarta, ST. M.Kom

Supriadi, ST.

Page 4: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

Jurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v

DAFTAR ISI

Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan

Komputer Universitas Mpu Tantular 1-11

Berlin P. Sitorus dan Henny Dwi Indrayati

Kepuasan Pasien di Rumah Sakit Yadika Pondok Bambu Jakarta Timur 12-20

Bertha Komala Sinambela

Kajian Manfaat Penetapan Kawasan Konservasi Terhadap Periklanan

Tangkap di Kelurahan Panggang Kepulauan Seribu 21-26

Mercy Patanda

Rancangan Lengan Robot Menggunakan Motor Stepper Berbasis Komputer 27-33

Pertumpun Gurusinga dan Musa Arianto Noho

Working Capital and Profitability in Agriculture Sector 34-37

Samuel Dossugi

Kecenderungan Headline Tabloid Media Umati 38-47

Sandra Olifia dan Fajar El Pradianto

Analisa dan Perancangan Aplikasi Game Battleship Berbasis

Local Area Network 48-61

Sukarno Bahat Nauli

Analisis Bioekonomi Ikan Tuna Indonesia 62-69

Urip Rahmani

Petroleum - Contaminated Soil Treatment By Bioremediation 70-78

Yusriani Sapta Dewi dan Abdul Mujib

Page 5: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

Jurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 vi

ANALISIS DAN PERANCANGAN APLIKASI GAME BATTLESHIP

BERBASIS LOCAL AREA NETWORK Sukarno Bahat Nauli

Program Studi Teknik Informatika Universitas Satya Negara Indonesia

[email protected]

Abstrak

Jaringan komputer adalah komputer yang dihubungkan satu sama lain dengan pusat komputer (server) untuk

memungkinkan pengguna hardware dan software bersama-sama. Pemain sering menggunakan sistem

jaringan komputer sehingga game dapat dimainkan oleh beberapa orang menggunakan beberapa komputer

yang terhubung dalam Local Area Network.

Salah satu game komputer yang cukup menarik adalah game battleship. Game ini menyediakan beberapa

petak tempat penyusunan kapal sebagai medan perang. Kapal-kapal denagn ukuran yang berbeda disiapkan

agar player menyusun strategi untuk peletakan kapalnya. Kapal perang ini tidak terlihat pada komputer

lawan. Setiap pemain mencoba untuk menghancurkan kapal-kapal perang lawan pemain dengan mengklik

kotak-kotak yang dianggap sebagai lokasi kapal, pemain hanya dapat menembak sekali per giliran. Jika

tembakan mengenai sasaran maka pemain mendapatkan satu tembakan tambahan. Pemain yang masih

menyisakan kapal perang yang memenangkan permainan (game). Agar game battleship lebih menarik dan

menantang logika permainan, maka level permainan harus lebih tinggi. Permainan lebih menantang jika

ruang kosong lebih banyak sehingga Pemain menggunakan logika untuk mencari tempat keberadaan kapal-

kapal tersebut . Berdasarkan uraian di atas, penulis bermaksud untuk merancang game battleship dengan

level yang lebih tinggi dan dapat dimainkan pada jaringan.

Kata Kunci : Jaringan Komputer, Game Battleship, Level.

Abstract

Computer networks are computers that are connected to each other with a central computer (server) to allow

the user hardware and software together. Players often use the computer network system so that games can

be played by multiple people using multiple computers connected in a Local Area Network.

One computer game that is quite interesting is the battleship game. This game provides some plots where the

preparation of the ship as a battlefield. Denagn ships of different sizes are prepared in order to develop a

strategy for the player laying ship. This warship is not visible on the computer opponent. Each player tries to

destroy warships opponent player by clicking on the boxes that are considered as the location of the ship, the

player can only shoot once per turn. If a shot on target then the player gets one extra shot. Players that still

leaves warship that won the game (games). In order battleship game more interesting and challenging logic

game, then the game should be higher level. The game is more challenging if more space so that players use

logic to find a place where the ships were. Based on the above, the author intends to design a battleship

game with a higher level and can be played on the network.

Keywords: Computer Networking, Game Battleship, Level.

Page 6: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

PENDAHULUAN Game Battleship atau sering juga disebut Bimaru ataupun Solitaire Battleships, adalah sebuah teka-

teki logika yang didasarkan pada permainan tebak Battleship. Game Battleship ini diciptakan di Argentina

oleh Jaime Poniachik dan dipublikasikan untuk pertama kalinya pada tahun 1982 di majalah “Humor &

Juegos”. Battleship mendapatkan popularitasnya setelah debut internasionalnya pada kompetisi teka-teki

dunia yang pertama (World Puzzle Championship) di kota New York pada tahun 1992.

Game Battleship pada umumnya berisi 10 x10 kotak persegi yang berisi armada kapal yang

tersembunyi. Beberapa bagian kapal pun dapat diberikan pada awal permainan di tempat yang bermacam-

macam di kotak-kotak persegi. Tujuan permainan adalah untuk menemukan letak semua armada kapal di

kotak-kotak persegi.

Game Battleship merepresentasikan sebuah laut dengan armada kapal-kapal yang tersembunyi, yang

mungkin saja memiliki orientasi peletakan horizontal ataupun vertikal di dalam kotak-kotak persegi. Game

Battleship juga memiliki ketentuan lainnya, yaitu tidak ada kapal yang menyentuh satu sama lainnya dan

juga kapal tidak dapat diletakkan secara diagonal. Angka yang berada di kanan dan bawah kiri menunjukkan

seberapa banyak kotak pada baris dan kolom yang terkait yang dimiliki oleh bagian kapal.

Game Battleship dimainkan dengan berbagai ukuran dan juga dengan berbagai armada yang memiliki

kapal-kapal yang masing-masingnya berbeda ukuran. Sebagai contoh, armada kapal yang digunakan pada

umumnya Battleship terdiri dari satu battleship, dua cruisers, tiga destroyers dan empat submarines.

Agar game Battleship lebih menarik dan lebih menantang logika permainan, maka level permainan

harus lebih tinggi. Permainan lebih menantang karena kotak kosong lebih banyak jika kapal-kapal yang

diberikan hanya terdiri dari tiga kapal atau enam kapal. Probability untuk menentukan posisi kapal yang

terdiri dari enam atau tiga akan semakin kecil. Dari uraian tersebut penulis mencoba untuk merancang game

Battleship dengan level yang lebih tinggi.

Game komputer sering menggunakan sistem jaringan sehingga game dapat dimainkan secara

bersama-sama ditempat yang berbeda dengan menggunakan beberapa komputer yang terhubung dalam Local

Area Network (LAN).

Penulis bermaksud untuk merancang suatu game Battleship dengan level yang lebih tinggi dan dapat

dimainkan dengan menggunakan jaringan LAN ( local area network ).

Rumusan Masalah

Bagaimana merancang game battleship dengan baik ?

Batasan Masalah.

a. Game Battleship yang dirangcang hanya dengan dua pemain / user.

b. Jaringan yang digunakan yaitu LAN ( local area network )

Tujuan dan Manfaat

Tujuannya adalah merancang suatu perangkat lunak game Battleship dengan level yang lebih tinggi

pada Local Arean Network (LAN).

TINJAUAN PUSTAKA

Definisi Game

Kata game berasal dari bahasa inggris yang berarti permainan. Dalam game ada target-target yang ingin

dicapai pemainnya. Game dapat juga artikan sebagai aktivitas terstruktur atau juga sebagai alat pembelajaran.

Permainan dan bermain keduanya saling berhubungan karena permainan merupakan bagian dari bermain dan

bermain juga bagian dari permainan. Peraturan, permainan dan budaya merupakan bagian yang kompleks di

dalam permainan. Sisi baik dari bermain game adalah dapat melatih untuk menyelesaikan suatu masalah

secara cepat dan tepat, untuk perkembangan otak dan meningkatkan konsentrasi karena dalam game terdapat

berbagai konflik atau masalah yang menuntut untuk diselesaikan dengan cepat dan tepat. Tetapi game juga

bisa merugikan karena apabila sudah kecanduan game akan lupa waktu sehingga mengganggu kegiatan atau

aktifitas.

SEJARAH GAME

Komputer gaming telah ada sejak sekitar 1960an. Karena perkembangan industri microprocessor, mainframe,

dan minicomputers. Salah satu game komputer pertama dikembangkan pada tahun 1961. Ketika siswa MIT,

Martin Graetz dan Alan Kotok, dengan memperkerjakan Steve Russell, menghasilkan “Spacewar!” pada

komputer mainframe PDP-1 (Programmed Data Processor-1).

Generasi pertama PC games biasanya berupa „text-adventures‟ atau „interactive fiction‟, yang mana pemain

berkomunikasi dengan komputer melalui input pada memakai keyboard. Game text-adventure pertama

adalah „Adventure‟ yang dibangun untuk PDP-11 oleh Will Crowther tahun 1976 dan dikembangkan lagi

Page 7: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

oleh Don Woods di tahun 1977. Ketika memasuki 1980an, PC telah mendukung penuh untuk menjalankan

game sejenis “Adventure”. Di masa ini, grafik kemudian menjadi unsur penting dalam pembuatan game.

Pada tahun 1952, A.S. Douglas menulis untuk gelar PhD di University of Cambridge jurusan Human-

Computer Interraction. Douglas menciptakan permainan komputer grafis yang diberi nama Tic-Tac-Toe.

Permainan ini diprogram pada komputer EDSAC “vacuum-tube” yang memiliki tampilan tabung sinar

katode. William Higinborham menciptakan video game pertama pada tahun 1958. Permainan ini diberi judul

“Tennis for Two”, diciptakan dan dimainkan di osiloskop Brookhaven National Laboratory. Video games

pertama kali diperkenalkan pada tahun 1971 sebagai media hiburan bersifat komersial. Pada akhir tahun

1970an dan awal tahun 1980an, video game menjadi sebuah dasar yang penting bagi industri hiburan di

Amerika Serikat, Jepang, dan Eropa.

Pada 1967, Ralph Baer menciptakan video game pertama yang dimaikan dengan televisi, diberi nama Chase.

Ralph Baer akhirnya menjadi bagian dari Sanders Associates, sebuah perusahaan elektronik militer. Idenya

Ralph ini dicetuskan untuk pertama kali pada 1951, saat sedang bekerja untuk perusahaan komputer Loral.

Pada 1971, Nolan Bushnell bersama dengan Ted Dabney, menciptakan permainan arcade yang pertama.

Permainan ini diberi nama “Computer Space”, yang diciptakan berdasarkan pada permainan “SpaceWar!”.

Lalu, tahun 1972, Permainan arcade Pong diciptakan oleh Nolan Bushnell (dengan bantuan Al Alcorn).

Nolan Bushnell dan Ted Dabney memulai dengan Atari Computer pada tahun yang sama.

Pada tahun 1975, Atari kembali meluncurkan Pong sebagai home video game. Tahun 1972, hiburan pertama

video game komersial dapat dimainkan di rumah. „Odyssey‟, diluncurkan oleh Magnavox dan didesain oleh

Ralph Baer. Permainan mesin ini aslinya didesain pada saat Ralph Baer masih berada di Sanders Associates

pada tahun 1966, Baer mengurus untuk mendapatkan ijin legalnya setelah ditolak oleh Sanders Associates.

Permainan Odyssey diprogram dengan dua belas permainan. Pada tahun 1976, Fairchild meluncurkan

programmable home game yang pertama dan diberi nama Fairchild Video Entertainment System atau

Channel F. Channel F merupakan salah satu dari electronik sistem yang pertama menggunakan microchip

yang diciptakan oleh Robert Noyce untuk Fairchild Semiconductor Corporation.

Sejarah Game Battleship

Game Battlehip atau sering juga disebut Bimaru ataupun Solitaire Battleships, adalah sebuah teka-

teki logika yang didasarkan pada permainan tebak Battleship. Game Battleship ini diciptakan di Argentina

oleh Jaime Poniachik dan dipublikasikan untuk pertama kalinya pada tahun 1982 di majalah “Humor &

Juegos”. Battleship mendapatkan popularitasnya setelah debut internasionalnya pada kompetisi teka-teki

dunia yang pertama (World Puzzle Championship) di kota New York pada tahun 1992.

Game Battleship pada umumnya berisi 10x10 kotak persegi yang berisi armada kapal yang tersembunyi.

Beberapa bagian kapalpun dapat diberikan pada awal permainan di tempat yang bermacam-macam di kotak-

kotak persegi. Tujuan permainan adalah untuk menemukan letak semua armada kapal di kotak-kotak persegi.

Game Battleship merepresentasikan sebuah laut dengan armada kapal-kapal yang tersembunyi, yang

mungkin saja memiliki orientasi peletakan horizontal ataupun vertikal di dalam kotak-kotak persegi. Game

Battleship juga memiliki ketentuan lainnya, yaitu tidak ada kapal yang menyentuh satu sama lainnya dan

juga kapal tidak dapat diletakan secara diagonal. Angka yang berada di kanan dan bawah kiri menunjukkan

seberapa banyak kotak pada baris dan kolom yang terkait yang dimiliki oleh bagian kapal.

Game Battleship dimainkan dengan berbagai ukuran dan juga dengan berbagai armada yang memiliki kapal-

kapal yang masing-masingnya berbeda ukuran. Sebagai contoh, armada kapal yang digunakan pada

umumnya Battleship terdiri dari satu battleship, dua cruisers, tiga destroyers dan empat submarines.

JENIS – JENIS GAME BERDASARKAN GENRE PERMAINAN

Adapun beberapa jenis game berdasarkan genre antara lain :

1. Aksi – Shooting

2. Fighting ( pertarungan )

3. Aksi – Petualangan

4. Simulasi

5. Role Playing

Page 8: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

6. Strategi

7. Puzzle

ANALISIS DAN PERANCANGAN APLIKASI

Permainan ini menyediakan beberapa buah tempat yang disusun oleh kotak – kotak sebagai medan perang.

Kapal – kapal perang dengan ukuran yang berbeda – beda disusun dalam medan perang masing – masing.

Letak dari kapal – kapal perang ini tidak terlihat dalam komputer pemain lawan. Setiap pemain berusaha

untuk menghancurkan kapal – kapal perang pemain lawan dengan cara meng-klik kotak – kotak yang

dianggap sebagai letak dari kapal – kapal perang lawan. Setiap pemain hanya boleh menebak satu kali saja

setiap gilirannya. Jika tebakannya tepat maka pemain tersebut mendapat tambahan satu kali tebakan. Pemain

yang masih menyisakan kapal perang yang memenangkan permainan (game).

Perancangan

Perangkat lunak game Battleship pada jaringan ini dirancang dengan menggunakan bahasa pemrograman

Microsoft Visual Basic 6.0 dengan didukung oleh beberapa aplikasi lainnya seperti Adobe Photoshop dalam

perancangan gambar dan Recorder dalam perancangan suara.

Perancangan perangkat lunak permainan strategi Battle Ship pada jaringan ini ini melalui beberapa tahapan

proses yaitu :

1. Perancangan Gambar Kapal.

Gambar kapal yang digunakan sebenarnya merupakan penggabungan dari beberapa bagian kapal yang telah

dipecahkan sebelumnya. Sebuah gambar kapal dipecahkan menjadi 3 bagian, yaitu bagian depan, tengah dan

belakang kapal. Bagian-bagian kapal tersebut digabungkan kembali sesuai dengan ukuran dari kapal dengan

perincian sebagai berikut :

a. Battleship merupakan penggabungan dari 1 buah bagian depan kapal, 2 buah bagian tengah kapal dan 1

buah bagian belakang kapal.

b. Cruiser merupakan penggabungan dari 1 buah bagian depan kapal, 1 buah bagian tengah kapal dan 1 buah

bagian belakang kapal.

c. Submarine merupakan penggabungan dari 1 buah bagian depan kapal dan 1 buah bagian belakang kapal.

d. Destroyer yang memiliki panjang 1 kotak saja dirancang dengan menggunakan gambar tersendiri dan

bukan merupakan gabungan dari bagian-bagian kapal tersebut.

2. Perancangan Animasi dan Suara.

Gambar kapal terbakar, simbol tembakan tepat sasaran dan tembakan gagal dicari pada sumber-sumber di

internet, kemudian di-edit dan disimpan dengan menggunakan aplikasi Adobe Photoshop. Efek animasi yang

digunakan merupakan proses pergantian gambar. Sedangkan suara ledakan dirancang dengan menggunakan

aplikasi Recorder.

3. Perancangan Interface untuk Menyusun Kapal.

Interface untuk menyusun kapal dirancang dengan ukuran 10 kotak x 10 kotak. 1 kotak diwakili oleh sebuah

picturebox dengan gambar air, sehingga interface ini merupakan penggabungan dari picturebox yang diatur

posisinya.

4. Pengaturan Koneksi Jaringan.

Microsoft Winsock berfungsi untuk menghubungkan komputer yang satu dengan yang lainnya dan saling

bertukar data dengan menggunakan dua protocol, yaitu User Datagram Protocol (UDP) dan Transmission

Control Protocol (TCP). Perangkat lunak permainan strategi Battleship pada jaringan ini menggunakan

protocol TCP. Prinsip kerjanya adalah salah satu komputer akan menentukan apakah bertindak sebagai Client

atau Server. Komputer yang bertindak sebagai server akan dijalankan dahulu dan menunggu komputer yang

bertindak sebagai client untuk melakukan koneksi. Setelah koneksi berhasil dilakukan, maka kedua komputer

itu dapat mengadakan interaksi satu sama lain.

5. Perancangan Medan Perang.

Medan perang dirancang dengan ukuran 10 kotak x 10 kotak. Kotak-kotak ini digambarkan dengan dibatasi

oleh garis-garis. Jarak garis-garis tersebut sebanyak 30 twips baik secara horizontal maupun vertikal. Sketsa

dari gambar medan perang tersebut dapat dilihat pada gambar berikut ini:

Page 9: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

300 60 90 120 150 180 210 240 270 300

30

60

90

120

150

180

210

240

270

300

Gambar 1 : sketsa gambar dari medan perang

Kotak-kotak tersebut akan disimpan dalam bentuk array zone2 (x,y) dengan cara penomoran kotak tersebut

adalah sebagai berikut :

1 2 3 4 5 6 7 8 9 10

1

2

3

4

5

6

7

8

9

10

Gambar 2 : penomoran kotak pada medan perang

6. Penentuan posisi kapal

Kapal yang diletakkan akan ditentukan posisinya dan disimpan ke dalam sebuah variabel array yang

memiliki dua buah properti yaitu x untuk menyimpan posisi kolom dari kapal, y untuk menyimpan posisi

baris dari kapal. Proses perhitungan posisi x dan y sebagai berikut :

X = posisi_kursor_x div 30

Y = posisi_kursor_y div 30

7. Pengecekan posisi tembakan dan kapal.

Jika posisi (x,y) yang diklik sama dengan salah satu dari posisi kapal yang disimpan dalam array tersebut

maka berarti kapal tertembak dan posisi bagian kapal yang tertembak tersebut ditandai. Posisi

Hasil dan pembahasan

Algoritma

Algoritma perancangan aplikasi game battleship multiplayer pada jaringan dibagi menjadi beberapa bagian

yaitu,

1. Algoritma pengaturan koneksi antara 2 (dua) pemain.

2. Algoritma pemilihan level.

3. Algoritma penggambaran papan permainan.

4. Algoritma peletakan kapal pada papan permainan.

5. Algoritma tembak kapal lawan.

Page 10: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

6. Algoritma ubah giliran pemain.

7. Algoritma pengecekan permainan berakhir.

Algoritma pengaturan koneksi antara 2 (dua) pemain

Algoritma ini menjadi inti dari proses untuk menghubungkan komunikasi antara dua komputer pada sebuah

jaringan lokal. Penulis menggunakan komponen visual basic „winsock‟ untuk mengirim dan menerima data

antar komputer.

Prosedur kerja algoritma ini adalah komputer yang berperan sebagai server, menjalankan program terlebih

dahulu. Ini berarti winsock pada komputer tersebut berperan sebagai server. Winsock server akan melakukan

prosedur listening, yaitu aksi mendengarkan permintaan koneksi dari komputer lain. Algoritmanya adalah

sebagai berikut,

{tutup winsock untuk menjaga kemungkinan winsock sedang terbuka}

Winsock.close

{local port default yang dipakai = 1234}

Winsock.localport = 1234

{winsock server melakukan aksi listening}

Winsock.listen

Selanjutnya winsock server menunggu koneksi dari winsock client. Winsock client pada komputer lain

melakukan koneksi ke winsock server dengan meng-input ip-address komputer server yang dituju.

Algoritmanya adalah sebagai berikut,

{tutup winsock untuk menjaga kemungkinan winsock sedang terbuka}

Winsock.close

{koneksi ke server. Local port default yang dipakai = 1234}

Winsock.connect <ip-address server>, 1234

Apabila winsock server yang dituju oleh winsock client aktif, maka winsock server akan menangkap

permintaan koneksi dari winsock client, dan menerima koneksi tersebut. Algoritmanya adalah sebagai

berikut,

{event „connectionrequest‟ pada komponen winsock server akan aktif apabila ada permintaan koneksi dari

winsock client}

Private sub winsock_connectionrequest(byval requestid as long)

{tutup winsock untuk menjaga kemungkinan winsock sedang terbuka}

Winsock.close

{terima koneksi dari client}

Winsock.accept requestid

End sub

Algoritma pemilihan level.

Pada tahap ini player memilih tingkatan permainan yang ingin dimainkan, mulai dari easy, mediun sampai

hard. Berikut potongan script dari pemilihan level.

if (optionlvl1.value = true) then

option7.enabled = false

label8.visible = false

winsock.senddata "status:gotitmedium"

elseif (optionlvl0.value = true) then

Page 11: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

option6.enabled = false

option7.enabled = false

label11.visible = false

winsock.senddata "status:gotiteasy"

else

Algoritma penggambaran papan permainan

Papan permainan merupakan tempat diletakkannya kapal pemain, penulis merancang papan permainan

berukuran 10 x 10 petak. Algoritma penggambaran papan permainan adalah sebagai berikut,

{ukuran papan x dan y = 10}

Max = 10

{looping x dan y}

For i = 0 to max - 1

for j = 0 to max – 1

{bitblt – prosedur windows-api untuk menggambar pada posisi x=i*30

dan y=i*30 dengan cara meng-copy gambar dari picturebox „tile‟}

bitblt field1.hdc, i * 30, j * 30, tile.scalewidth, _

tile.scaleheight, tile.hdc, 0, 0, vbsrccopy

next j

Next i

Algoritma peletakan kapal pada papan permainan

User mengatur letak kapalnya sendiri pada papan permainan sebelum permainan dimulai. Kapal dapat

diletakkan secara horizontal ataupun vertikal. Algoritma peletakan kapal pada papan permainan adalah

sebagai berikut,

Pada permainan, kapal pemain berjumlah 10 buah, yaitu 1 buah kapal „battleship‟ (panjang 4 petak), 2 buah

kapal „cruiser‟ (panjang 3 petak), 3 buah kapal „submarine‟ (panjang 2 petak) dan 4 buah kapal „destroyer‟

(panjang 1 petak).

{tandai jenis kapal apa yang anda tempatkan}

If option7.value then

{kapal „destroyer‟ – panjang 1 petak}

mark = 1

set tempoption = option7

set templbl = lbl7

Elseif option6.value then

{kapal „submarine‟ – panjang 2 petak}

mark = 2

set tempoption = option6

set templbl = lbl6

Elseif option5.value then

{kapal „cruiser‟ – panjang 3 petak}

Page 12: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

mark = 3

set tempoption = option5

set templbl = lbl5

Elseif option4.value then

{kapal „battleship‟ – panjang 4 petak}

mark = 4

set tempoption = option4

set templbl = lbl4

Else

{pilihan untuk menghapus kapal dari papan permainan}

mark = 0

End if

{jika pilihan untuk menghapus kapal}

If mark = 0 then

clickedx = int((box.left + 10) / 30)

clickedy = int(y / 30)

tempx = clickedx

tempy = clickedy

{cek apakah terdapat kapal pada zona tersebut}

if zone1(tempx, tempy) <> 0 then

{cari head_x dari kapal}

do

tempx = tempx - 1

if tempx < 0 then

exit do

end if

loop until zone1(tempx, clickedy) = 0

headx = tempx + 1

{cari head_y dari kapal}

do

tempy = tempy - 1

if tempy < 0 then

exit do

end if

loop until zone1(clickedx, tempy) = 0

heady = tempy + 1

{cari kapal dengan head_x dan head_y}

Page 13: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

for i = 1 to 10

if ships(i) is nothing then

'nothing

elseif ships(i).headx = headx and ships(i).heady =heady then

{ditemukan – hapus kapal dari papan permainan}

direc = ships(i).direction

size = ships(i).length

exit for

end if

next i

{gambar petak kosong kembali pada papan permainan pada head_x dan

head_y sepanjang ukuran(size) dari kapal dan sesuai dengan arah kapal}

if direc = vbkeyright then

for i = 0 to size - 1

bitblt field1.hdc, (headx + i) * 30, heady * 30, _

tile.scalewidth, tile.scaleheight, tile.hdc, 0, _

0, vbsrccopy

zone1((headx + i), heady) = 0

next i

else

for i = 0 to size - 1

bitblt field1.hdc, headx * 30, (heady + i) * 30,_

tile.scalewidth, tile.scaleheight, tile.hdc, 0, _

0, vbsrccopy

zone1(headx, heady + i) = 0

next i

end if

{tulis jumlah kapal yang tersisa – sebagai informasi untuk user}

if size = 4 then

option4.enabled = true

lbl4.caption = val(lbl4.caption) + 1 & " buah"

elseif size = 3 then

option5.enabled = true

lbl5.caption = val(lbl5.caption) + 1 & " buah"

elseif size = 2 then

option6.enabled = true

lbl6.caption = val(lbl6.caption) + 1 & " buah"

Page 14: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

elseif size = 1 then

option7.enabled = true

lbl7.caption = val(lbl7.caption) + 1 & " buah"

end if

field1.refresh

end if

Else {jika pilihan untuk meletakkan kapal}

{jika arah kapal = horizontal}

if box.width >= box.height then

{apakah tempat peletakan kapal – valid?}

if checkvalidity(int((box.left + 10) / 30), int(y / 30), _

vbkeyright, mark) then

{jika tempat peletakan valid, mainkan suara}

r = sndplaysound(app.path & "\taruh.wav", snd_async)

{tandai petak di sekeliling kapal, sehingga tidak ada kapal lain yang

Dapat diletakkan di samping kapal}

for i = int((box.left + 10) / 30) to _

int((box.left + 10) / 30) + mark – 1

zone1(i, int(y / 30)) = mark

next i

{set kapal baru – shipclass merupakan class dari ship}

set ships(curship) = new shipclass

ships(curship).setvalues int((box.left + 10) / 30), _

int(y / 30), mark, vbkeyright

{gambar kapal pada papan permainan}

ships(curship).drawship

else

{posisi tidak valid, keluarkan pesan error}

msgbox "posisi tidak diperbolehkan !", vbcritical

exit sub

Page 15: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

end if

else {jika arah kapal = vertikal}

{apakah tempat peletakan kapal – valid?}

if checkvalidity(int(x / 30), int((box.top + 10) / 30), _

vbkeydown, mark) then

{jika tempat peletakan valid, mainkan suara}

r = sndplaysound(app.path & "\taruh.wav", snd_async)

{tandai petak di sekeliling kapal, sehingga tidak ada kapal lain yang

Dapat diletakkan di samping kapal}

for i = int((box.top + 10) / 30) to _

int((box.top + 10) / 30) + mark – 1

zone1(int(x / 30), i) = mark

next i

{set kapal baru – shipclass merupakan class dari ship}

set ships(curship) = new shipclass

ships(curship).setvalues int(x / 30), _

Int((box.top + 10) / 30), mark, vbkeydown

{gambar kapal pada papan permainan}

ships(curship).drawship

else

{posisi tidak valid, keluarkan pesan error}

msgbox "posisi tidak diperbolehkan !", vbcritical

exit sub

end if

end if

{enable/disable dan set focus di kapal berikutnya yang enable}

templbl.caption = val(left(templbl.caption, 1)) - 1 & " buah"

if left(templbl.caption, 1) = "0" then

tempoption.enabled = false

if option4.enabled then

Page 16: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

option4.setfocus

elseif option5.enabled then

option5.setfocus

elseif option6.enabled then

option6.setfocus

elseif option7.enabled then

option7.setfocus

else

option8.setfocus

end if

end if

End if

Pada papan permainan, sebuah kapal tidak diperkenankan untuk diletakkan bersampingan langsung dengan

kapal yang lain. Hal ini dilakukan untuk menjaga supaya posisi kapal tidak terpusat di satu titik pada papan

permainan. Oleh karena itu, diperlukan algoritma untuk mencek validitas dari posisi kapal. Penulis

merancang algoritma ini dalam bentuk sebuah fungsi. Algoritmanya adalah sebagai berikut,

Function checkvalidity(byval x as integer, byval y as integer, byval

dir as integer, byval mark as integer) as boolean

Dim xstart as integer 'kapal start_x coord

Dim ystart as integer 'kapal start_y coord

Dim xend as integer 'kapal end_x coord

Dim yend as integer 'kapal end_y coord

Dim i as integer 'counter 1

Dim k as integer 'counter 2

{arah horizontal – cek validitas posisi}

If dir = vbkeyright then

if x > 0 then

xstart = x - 1

else

xstart = 0

end if

if x + mark < max then

xend = x + mark

else

xend = max - 1

end if

Page 17: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

if y > 0 then

ystart = y - 1

else

ystart = 0

end if

if y < max - 1 then

yend = y + 1

else

yend = max - 1

end if

for i = xstart to xend

for k = ystart to yend

if zone1(i, k) <> 0 then

{jika posisi tidak valid, langsung keluar dari fungsi}

checkvalidity = false

exit function

end if

next k

next i

Else {arah vertikal – cek validitas posisi}

if x > 0 then

xstart = x - 1

else

xstart = 0

end if

if x < max - 1 then

xend = x + 1

else

xend = max - 1

end if

if y > 0 then

ystart = y - 1

else

ystart = 0

end if

if y + mark < max then

Page 18: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

yend = y + mark

else

yend = max - 1

end if

for i = xstart to xend

for k = ystart to yend

if zone1(i, k) <> 0 then

{jika posisi tidak valid, langsung keluar dari fungsi}

checkvalidity = false

exit function

end if

next k

next i

End if

Checkvalidity = true

End function

Algoritma tembak kapal lawan

Pada saat kita berusaha menembak kapal pada papan permainan lawan, terdapat dua kemungkinan yaitu,

kapal lawan berhasil ditembak atau tembakan kita gagal. Ketika kapal lawan berhasil ditembak, maka

program menjalankan animasi ledakan pada kapal dan animasi api yang berkobar pada bagian kapal yang

tertembak. Apabila tembakan gagal, maka program akan menjalankan animasi gelombang air pada posisi

yang ditembak. Algoritmanya adalah sebagai berikut,

{tembak pada posisi x, y}

Cx = left(msg, instr(1, msg, ",") - 1)

Cy = mid(msg, instr(1, msg, ",") + 1)

{koordinat temporary}

Tempx = cx

Tempy = cy

{jika terkena tembakan}

If zone1(cx, cy) > 0 and zone1(cx, cy) < 5 then

zone1(cx, cy) = zone1(cx, cy) + 4

{cari head_x kapal}

do

tempx = tempx - 1

Page 19: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

if tempx < 0 then

exit do

end if

loop until zone1(tempx, cy) = 0

headx = tempx + 1

{cari head_y kapal}

do

tempy = tempy - 1

if tempy < 0 then

exit do

end if

loop until zone1(cx, tempy) = 0

heady = tempy + 1

{cari kapal dengan head_x dan head_y}

for i = 1 to 10

if ships(i).headx = headx and ships(i).heady = heady then

{apakah kapal sudah tenggelam}

r = ships(i).cripple()

{r = true, kapal tenggelam}

if r then

{cek apakah permainan sudah berakhir}

if isover() then

{send data ke lawan - menang}

winsock.senddata "result:win"

else

{send data ke lawan – kapal tenggelam}

winsock.senddata "result:dead"

end if

else

{send data ke lawan – kapal tertembak}

winsock.senddata "result:wound"

end if

zone1flame(curflame).frame = 0

randomize

Page 20: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

zone1flame(curflame).typ = int(rnd() * 3) + 1

zone1flame(curflame).x = cx

zone1flame(curflame).y = cy

getbackimage cx, cy, zone1flame(curflame).backimage, _

zone1flame(curflame).backimagemask

curflame = curflame + 1

exit for

end if

next i

Else {tembakan gagal / tidak kena}

{gambar air pada daerah yang tidak terkena tembakan}

bitblt field1.hdc, cx * 30, cy * 30, tile.scalewidth, _

Tile.scaleheight, watermiss.hdc, 0, 0, vbsrccopy

{send data ke lawan – bahwa tembakan gagal}

winsock.senddata "result:miss"

End if

{ganti giliran pemain}

Changeturn

Algoritma ubah giliran pemain

Dalam permainan ini, pemainalgoritma ini berfungsi untuk mengubah giliran bermain pemain. Pemain tidak

dapat menembak jika bukan gilirannya bermain. Algoritmanya adalah sebagai berikut,

'Prosedur giliran

Sub changeturn()

{ubah giliran}

User1 = not user1

User2 = not user2

Field2.enabled = not field2.enabled

'User1 = true?

If user1 then

{giliran pemain bermain}

lblstate.caption = " giliran anda !"

Page 21: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

{hidupkan timer the turntaggle untuk berkedip}

turntaggle.enabled = true

Else

{giliran lawan bermain}

lblstate.caption = "giliran " & user & " !"

{matikan timer the turntaggle untuk berkedip}

turntaggle.enabled = false

lblstate.backcolor = &hf0c4a6

End if

End sub

Algoritma pengecekan permainan berakhir

Permainan berakhir apabila kapal dari salah satu pemain telah tertembak semuanya. Algoritmanya adalah

sebagai berikut,

'Apakah permainan sudah berakhir

Function isover() as boolean

Dim i as integer

Isover = true

{looping – cek apakah semua kapal telah tenggelam}

For i = 1 to 10

if not ships(i).isdead then

isover = false

exit function

end if

Next i

End function

Spesifikasi perangkat keras dan perangkat lunak yang dibutuhkan

Program ini dijalankan dengan menggunakan perangkat keras (hardware) yang direkomendasikan sebagai

berikut :

1. Prosesor intel pentium core 2 duo 2.1 ghz.

2. Memory 2 gb.

3. Harddisk 250 gb.

4. Vga card 32 mb.

5. Monitor dengan resolusi 1366 x 768 pixel.

Page 22: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

6. Network card – 100 mbps dan adanya jaringan lan.

Adapun perangkat lunak (software) yang direkomendasikan untuk menjalankan aplikasi ini adalah microsoft

windows xp/vista 7.

Tampilan output

Klik pada file „permainan battleship (multiplayer).exe‟ untuk menjalankan perangkat lunak. Setelah itu akan

muncul tampilan splash screen. Klik pada form atau tekan „enter‟ untuk masuk ke dalam program.

Gambar 3 : Tampilan Form Splash Screen

Setelah itu, akan muncul tampilan „Setting Koneksi‟. Apabila user memilih koneksi sebagai server, maka

user harus menunggu koneksi dari pemain client. Apabila user memilih koneksi sebagai client, maka user

harus memasukkan ip-address komputer server yang dituju.

Gambar 4 : Tampilan Setting Koneksi

Apabila koneksi telah terhubung, maka akan muncul tampilan input form untuk meng-input nama pemain.

Setelah input nama pemain, maka akan muncul tampilan „Pengaturan Letak Kapal‟. Arah letak kapal dapat

diatur secara horizontal atau vertikal. Klik kanan mouse pada daerah penempatan kapal untuk mengubah arah

horizontal menjadi vertikal, dan sebaliknya.

Gambar 6 : tampilan medan perang

Daerah kotak sebelah kiri merupakan letak kapal anda, sedangkan daerah kotak sebelah kanan merupakan

letak kapal lawan. Pada giliran anda, klik kiri pada kotak sebelah kanan untuk menembak kapal lawan.

Page 23: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

Apabila tembakan gagal (tidak mengenai kapal lawan), maka akan muncul animasi gelombang air pada

daerah kotak sebelah kanan.

Gambar 7 : tampilan tembakan gagal pada komputer-1 (pemain yang menembak)

Gambar 8 : Tampilan Tembakan Gagal Pada Komputer-2 (Pemain yang ditembak)

Apabila tembakan berhasil (mengenai kapal lawan), maka akan muncul animasi ledakan pada bagian yang

tertembak.

Gambar 9 : Tampilan Tembakan Berhasil Pada Komputer-1 (Pemain yang menembak)

koordinat yang ditembak juga ditandai. Proses perhitungan posisi x dan y tersebut sama dengan proses

perhitungan pada penentuan posisi kapal di atas.

Penentuan Pemenang.

Player dikatakan menang bila menyisakan kapal dalam permainan ini.

Perhitungan Score.

Besar score yang didapatkan dihitung berdasarkan ukuran kapal. Ukuran 1 kotak bernilai 10 point. Jadi,

menenggelamkan sebuah kapal berukuran 3 kotak, maka pemain akan mendapatkan nilai 30 point.

Kesimpulan

1. Telah berhasil merancang game battleship yang terkoneksi dalam jaringan komputer setempat/ local area

network.

2. Hasil perancangan game ini dapat dimainkan secara bergantian antara pemain 1 dan pemain 2.

Saran

Page 24: iii Juni13.pdfJurnal Ilmiah Universitas Satya Negara Indonesia Vol.6, No.1 Juni 2013 Hal.:48-61 v DAFTAR ISI Perancangan Situs Jejaring Sosial Fakultas Teknologi Informatika dan Komputer

1. Game ini dapat ditambahkan konsep artificial intelligence (ai) sehingga dapat dimainkan melawan

komputer.

2. Game dapat dikembangkan untuk user yang lebih banyak (lebih dari 2 player).

DAFTAR PUSTAKA 1. Elcom, 2012,”Computer Networking”, Yogyakarta, Andi Publisher.

2. 2. Hakim Lukman, 2003, “Pemograman Game Dengan Visual Basic”, Yogyakarta: Andi.

3. 3. Halvorson Michael, 2000, “Step By Step Microsoft Visual Basic 6.0 Profesional”, Jakarta, Elex

Media Komputindo

4. 4. Loudon Kenneth, 2008,”Sistem Informasi Manajemen Buku 1”, Jakarta, Salemba Empat.

5. 5. Loudon Kenneth, 2008,”Sistem Informasi Manajemen Buku 2”, Jakarta, Salemba Empat.

6. 6. Purbo,W. Ono,1998, “TCP/IP Standar, Desain, dan Implementasi”, Jakarta, Elex Media

Komputindo.