BAB I
PENDAHULUAN
1.1 Latar
Belakang
Sebuah permainan (game) komputer sering menggunakan sistem jaringan sehingga permainan (game) dapat dimainkan oleh beberapa orang dengan menggunakan beberapa
komputer yang terhubung dalam Local
Area Network (LAN).
Salah
satu permainan (game) komputer yang
cukup menarik adalah permainan strategi Battle
Ship. 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).
Berdasarkan
uraian di atas, penulis bermaksud untuk merancang suatu perangkat lunak
permainan strategi Battle Ship yang
dapat dimainkan pada jaringan. Oleh karena itu, penulis mengambil topik tugas
akhir dengan judul “Perancangan Perangkat Lunak Permainan Strategi Battle Ship pada Jaringan”.
1.2 Perumusan
Masalah
Berdasarkan latar belakang pemilihan
judul, maka yang menjadi permasalahan adalah bagaimana memainkan permainan
strategi Battle Ship di tempat yang berbeda dengan menggunakan jaringan.
1.3 Tujuan
dan Manfaat Penulisan
Tujuan
penyusunan tugas akhir (skripsi) ini adalah untuk merancang suatu perangkat
lunak permainan strategi Battle Ship pada jaringan.
Manfaat
dari penyusunan tugas akhir (skripsi) ini yaitu perangkat lunak dapat dijadikan
sebagai sarana hiburan yang cukup
menarik.
1.4 Pembatasan
Masalah
Karena keterbatasan waktu dan pengetahuan
penulis, maka ruang lingkup permasalahan dalam merancang perangkat lunak ini
antara lain :
- Input dibatasi hanya pada keyboard dan mouse sedangkan Output perangkat lunak pada layar monitor.
- Jumlah pemain adalah sebanyak 2 orang.
- Rincian dari masing – masing kapal perang, yaitu :
- Battleship dengan ukuran 4 kotak sebanyak 1 buah.
- Cruiser dengan ukuran 3 kotak sebanyak 2 buah.
- Submarine dengan ukuran 2 kotak sebanyak 3 buah.
- Destroyer dengan ukuran 1 kotak sebanyak 4 buah.
- Ukuran dari medan perang adalah 10 kotak x 10 kotak.
- Perangkat lunak menggunakan komponen Winsock pada Microsoft Visual Basic untuk melakukan koneksi komputer ke jaringan.
1.5 Metodologi
Penyelesaian Masalah
Langkah – langkah pembuatan
perangkat lunak ini antara lain :
a.
Mempelajari cara permainan dari Battle Ship.
b.
Merancang interface untuk permainan Battle
Ship.
c.
Membuat koneksi komputer pada LAN.
d.
Merancang suatu perangkat lunak permainan strategi Battle
Ship dengan menggunakan bahasa pemrograman Visual Basic 6.0.
BAB II
LANDASAN TEORI
2.1
Sekilas
Mengenai Sistem Komputer
Pada
tingkatan paling atas, sebuah komputer terdiri dari komponen-komponen prosesor,
memori, dan I/O, dengan sebuah modul atau lebih pada setiap komponennya.
Komponen-komponen tersebut diinterkoneksikan dengan cara tertentu untuk
mendapatkan fungsi utama komputer, yang digunakan untuk mengeksekusi
program-program.
Dengan
demikian, terdapat empat elemen struktural utama :
1.
Prosesor : berfungsi mengontrol operasi komputer dan
melakukan fungsi-fungsi pengolahan data.
Prosesor terdiri dari:
a.
Bagian ALU (Arithmetic
Logic Unit), yang berfungsi untuk melakukan operasi aritmatika dan logika.
b.
Bagian CU (Control
Unit), yang berfungsi untuk mengendalikan operasi yang dilaksanakan sistem
komputer.
c.
Register-register,
untuk membantu pelaksanaan operasi yang dilakukan oleh prosesor. Register-register biasanya berfungsi
sebagai tempat penyimpanan sementara operan-operan dari operasi yang akan
dilakukan.
2.
Memori utama: berfungsi menyimpan data dan program.
Memori utama biasanya volatile, tidak
dapat mempertahankan data dan program yang disimpan bila sumber daya energi
(listrik) dihentikan.
3.
Modul-modul I/O : berfungsi memindahkan data antara
komputer dengan lingkungan eksternalnya. Lingkungan eksternal terdiri dari
bermacam-macam perangkat eksternal, yang meliputi perangkat memori sekunder,
peralatan komunikasi, dan terminal. Modul-modul I/O ini berfungsi menghubungkan
komputer dengan lingkungan luar sehingga komputer bermanfaat bagi
lingkungannya.
4.
Interkoneksi sistem : adalah beberapa struktur
dan mekanisme yang melakukan komunikasi antara prosesor, memori utama, dan
modul I/O. Interkoneksi antar komponen disebut bus.
Bus terdiri dari tiga macam, yaitu :
a.
Bus alamat (address
bus)
Bus alamat berisi 16, 20, 24 jalur sinyal paralel atau lebih. Prosesor
mengirim alamat lokasi memori atau port yang
ingin ditulis atau dibaca di bus ini.
Jumlah lokasi memori yang dapat dialamati ditentukan jumlah jalur alamat.
Jika prosesor mempunyai N jalur alamat, maka dapat mengalamati 2 pangkat N (2N) lokasi memori dan/atau port secara langsung.
b.
Bus data (data
bus)
Bus data berisi 8, 16, 32 jalur sinyal paralel atau lebih. Jalur-jalur
data adalah dua arah (bidirectional).
Melalui bus ini prosesor dapat membaca dan mengirim data dari/ke memori atau port.
c.
Bus kendali (control
bus)
Bus kendali berisi 4 sampai 10 jalur sinyal paralel. Prosesor mengirim
sinyal-sinyal pada bus kendali untuk memerintahkan memori atau port.
Sinyal bus kendali antara lain:
·
Pembacaan memori (Memory read)
Untuk memerintahkan melakukan pembacaan memori.
·
Penulisan memori (Memory write)
Untuk memerintahkan melakukan penulisan memori.
·
Pembacaan I/O (I/O read)
Untuk memerintahkan melakukan pembacaan port I/O.
·
Penulisan I/O (I/O write)
Untuk memerintahkan melakukan penulisan I/O.
Skema dasar
sistem komputer dapat digambarkan sebagai berikut:
Gambar
2.1 Skema Blok Sistem Komputer
2.2
Definisi
Jaringan Komputer
Sistem jaringan komputer
adalah gabungan atau kumpulan dari beberapa komputer yang dapat diakses secara
bersama – sama (seperti floopy disk, CD-ROM, printer, dan sebagainya), dan dapat berhubungan dengan komputer
induk sistem lainnya yang letaknya berjauhan.
Adapun
komunikasi data dapat diartikan pengiriman data secara elektronik dari satu
tempat ke tempat lain melalui suatu media komunikasi, dan data yang dikirimkan
tersebut merupakan hasil atau akan diproses oleh suatu sistem komputer.
Sistem jaringan dapat
memiliki peralatan pada komputer server
untuk dipakai secara bersama dengan komputer client-nya. Namun pada setiap komputer lokal dapat juga dipasang
peralatan khusus untuk keperluan komputer lokal tersebut.
Dalam
jaringan ada tiga komponen utama yang harus dipahami, yaitu :
1.
Host atau node, yaitu sistem komputer
yang berfungsi sebagai sumber atau penerima dari data yang dikirimkan. Node
ini dapat berupa:
a. Server :
komputer tempat penyimpanan data dan program-program aplikasi yang digunakan
dalam jaringan,
b. Client :
komputer yang dapat mengakses sumber daya (berupa data dan program aplikasi)
yang ada pada server,
c. Shared
pheriperal : peralatan-peralatan yang terhubung dan digunakan dalam
jaringan (misalnya, printer, scanner, harddisk, modem, dan lain-lain).
2.
Link, adalah media komunikasi yang menghubungkan
antara node yang satu dengan node lainnya. Media ini dapat berupa saluran
transmisi kabel dan tanpa kabel,
3.
Software (Perangkat Lunak), yaitu program yang
mengatur dan mengelola jaringan secara keseluruhan. Termasuk di dalamnya sistem
operasi jaringan yang berfungsi sebagai pengatur komunikasi data dan periferal
dalam jaringan.
2.3
Tipe-tipe
Jaringan Komputer
Ada beberapa tipe jaringan
komputer yang umumnya digunakan. Berikut ini beberapa klasifikasi tipe jaringan
komputer yang ada :
1.
Berdasarkan letak geografis
a.
Local Area Network (LAN), jaringan ini berada
pada satu bangunan atau lokasi yang sama, dengan kecepatan transmisi data yang
tinggi (mulai dari 10 Mbps ke atas), dan menggunakan peralatan tambahan seperti
repeater, hub, dan sebagainya.
b.
Metropolitan Area Network (MAN), jaringan ini
merupakan gabungan beberapa LAN yang terletak pada satu kota(jangkauan 50-75
mil) yang dihubungkan dengan kabel khusus atau melalui saluran telepon, dengan
kecepatan transmisi antara 56 Kbps sampai 1 Mbps, dan menggunakan peralatan
seperti router, telepon, ATM switch, dan antena parabola.
c.
Wide Area Network (WAN), jaringan ini merupakan
gabungan dari komputer LAN atau MAN yang ada di seluruh permukaan bumi ini yang
dihubungkan dengan saluran telepon, gelombang elektromagnetik, atau satelit;
dengan kecepatan transmisi yang lebih lambat dari 2 jenis jaringan sebelumnya,
dan menggunakan peralatan seperti router, modem, WAN switches..
2.
Berdasarkan arsitektur jaringan
a.
jaringan peer to peer
b.
jaringan berbasis server (server-based
network/server-client network)
c.
jaringan hibrid.
(Bagian ini akan dibahas lebih lanjut pada bahasan selanjutnya)
3.
Berdasarkan teknologi transmisi
a.
Jaringan
switch, merupakan jaringan yang penyampaian informasi dari pengirim
ke penerima melalui mesin-mesin perantara atau saluran telepon,
b.
Jaringan
broadcast, merupakan jaringan yang penyampaian informasi dari
pengirim ke penerima dilakukan secara broadcast
(disiarkan ke segala arah) baik melalui saluran kabel maupun saluran tanpa
kabel.
Beberapa
komponen dasar yang biasanya membentuk suatu LAN adalah sebagai berikut:
1.
Workstation
Dalam jaringan, workstation
sebenarnya adalah node atau host yang berupa suatu sistem komputer. User berhubungan dengan jaringan melalui
workstation dan juga saling
berkomunikasi seperti saling bertukar data. User
juga dapat mengakses program aplikasi pada workstation
yang dapat bekerja sendiri di workstation
(stand-alone) itu sendiri ataupun
menggunakan jaringan untuk saling berbagi informasi dengan workstation atau user
lain.
Workstation dapat berfungsi sebagai :
a.
Server
Sesuai dengan namanya, ini adalah
perangkat keras yang berfungsi untuk melayani jaringan dan klien yang terhubung
pada jaringan tersebut. Server dapat
berupa sistem komputer yang khusus dibuat untuk keperluan tertentu, seperti
untuk penggunaan printer secara bersama
(print server), untuk hubungan
eksternal LAN ke jaringan lain (communication
server), dan file server yakni
disk yang digunakan secara bersama oleh beberapa klien. Server ini tidak dapat
digunakan sebagai klien, karena baik secara hardware maupun software, ia hanya
berfungsi untuk mengelola jaringan.
Ada pula server yang berupa workstation
dengan disk drive yang cukup besar kapasitasnya, sehingga server tersebut dapat
juga digunakan sebagai workstation oleh user.
b.
Client (klien)
Sebuah workstation umumnya berfungsi sebagai klien dari suatu server,
karena memang workstation akan
menggunakan fasilitas yang diberikan oleh suatu server. Jadi, server
melayani, sedangkan klien dilayani.
2.
Link
Link atau hubungan dalam Jaringan Lokal dikenal
sebagai media transmisi berupa kabel maupun tanpa kabel, yang secara fisik menghubungkan
server dan klien.
3.
Transceiver
Transceiver
(transmitter-receiver) merupakan perangkat keras yang menghubungkan workstation
atau sistem komputer dengan media transmisi .
4.
Kartu Jaringan (Network Interface Card / NIC)
Kartu jaringan ini adalah kartu yang dipasang pada PC
yang mengendalikan pertukaran data antarworkstation yang ada dalam jaringan
lokal. Setiap workstation harus
dilengkapi dengan NIC yang secara fisik terhubung langsung dengan bus internal
dari PC.
5.
Perangkat Lunak Jaringan
Perangkat lunak jaringan mencakup:
a.
sistem operasi LAN,
b.
perangkat lunak aplikasi,
c.
perangkat lunak pemrograman, dan
d.
program utiliti.
Perangkat lunak ini sangat penting dan mutlak untuk memungkinkan
komunikasi antara sistem komputer yang satu dengan sistem komputer lainnya.
Tanpa perangkat lunak ini, jaringan tidak akan berfungsi. Sistem komputer
dengan LAN dapat menjalankan semua perangkat lunak aplikasi yang dapat berjalan
pada stand-alone PC.
2.4
Arsitektur
Jaringan Komputer
Arsitektur
jaringan komputer merupakan tata cara penggunaan perangkat keras dan perangkat
lunak dalam jaringan agar satu komputer dengan komputer lainnya dapat melakukan
komunikasi dan pertukaran data.
Ada tiga bentuk arsitektur yang umum digunakan
dalam jaringan komputer:
1.
Jaringan peer to peer
Pada jaringan peer to peer (Gambar 2.2.), semua komputer memiliki
posisi setara/sejajar, dalam hierarki yang sama. Setiap komputer dapat menjadi
klien terhadap komputer peer lainnya, setiap komputer dapat pula berbagi sumber
daya dengan komputer yang berada dalam jaringan peer-to-peer ini. Sumber daya
diletakkan secara desentralisasi pada setiap anggota jaringan, dan tidak
memerlukan administrator jaringan.
Aliran informasi bisa mengalir di antara dua komputer secara langsung, di
mana pun. Namun, jaringan ini tidak sepenuhnya bebas tanpa kontrol, masih bisa
digunakan password untuk memproteksi file dan folder, dapat juga diatur agar
orang-orang tertentu tidak bisa menggunakan periferal tertentu.
Karena kemudahan pemasangan, pemeliharaan, serta biaya, jaringan ini
lebih populer untuk jaringan dengan jumlah komputer yang sedikit (sekitar 2
sampai 20 komputer).
Sifat jaringan peer to peer digunakan untuk hubungan antara setiap
komputer yang terhubung dalam jaringan komputer yang ada, sehingga komunikasi
data terjadi antar komputer dengan hierarki yang sama karena setiap komputer
dapat berfungsi sebagai server maupun klien.
Gambar 2.2. Jaringan peer-to-peer
2.
Jaringan client/server
Pada jaringan client/server (Gambar 2.3.), perangkat lunak yang
mengontrol keseluruhan kerja jaringan berada pada server. Jaringan ini dapat
menghubungkan ratusan komputer dengan tingkat keamanan yang tidak dimungkinkan
dalam jaringan peer-to-peer.
Jaringan ini bisa diatur sehingga setiap klien harus log on ke server sebelum bisa memanfaatkan sumber
daya yang terhubung ke server. Server lalu mengotentikasi klien dan
memverifikasi bahwa komputer yang digunakan klien tersebut memiliki izin untuk log
on ke jaringan, dengan memeriksa username dan password klien
tersebut terhadap database pada server.
Gambar 2.3. Jaringan client/server
3.
Jaringan hybrid
Jaringan ini merupakan gabungan dari sifat pada
jaringan peer to peer dan client/server. Workgroup yang terdiri
dari beberapa komputer yang saling terhubung dapat mengelola sumber daya tanpa
membutuhkan otorisasi dari administrator jaringan atau server. Pada jenis
jaringan ini, terdapat pula sifat dari jaringan client/server sedemikian
sehingga tingkat keamanan dapat lebih terjaga dan adanya server yang mempunyai
suatu fungsi layanan tertentu, seperti sebagai file server, print server,
database server, mail server, dan lainnya.
2.5
Topologi
Jaringan
Topologi jaringan adalah
tata cara komputer dan sumber daya lainnya dihubungkan dalam jaringan. Ada dua jenis topologi
jaringan, yaitu:
a.
Topologi fisik, yaitu tata cara komputer dan peralatan
lainnya dihubungkan secara fisik melalui kabel/media transmisi sehingga bisa
saling berkomunikasi, dan
b.
Topolosi logik, yaitu tata cara komputer dan peralatan
dalam jaringan berkomunikasi dan tata cara data ditransmisikan melalui
jaringan.
Yang akan dibahas dalam bahasan ini
adalah topologi fisik, yang menyangkut bagaimana sistem atau komputer dan
periferalnya dihubungkan satu dengan yang lainnya.
Topologi fisik
secara umum ada empat jenis, yaitu:
1. Topologi
Star
Topologi
star (Gambar 2.4.) melibatkan suatu
hub sebagai tempat di mana setiap anggota jaringan terhubung padanya. Setiap
komputer dalam jaringan harus melalui suatu pusat yang disebut hub, baru
kemudian dilakukan transmisi ke komputer-komputer lainnya yang juga terhubung
ke hub.
Beberapa
keuntungan dari topologi star ini
adalah kemudahan untuk menambah peralatan ke jaringan dan jika terjadi
kerusakan pada salah satu kabel hanya akan mempengaruhi komputer yang
dihubungkan kabel tersebut. Namun, kerugian akan terjadi pada jenis topologi
ini apabila hub terganggu/rusak, maka secara keseluruhan jaringan akan
terganggu.
Gambar 2.4.
Topologi Star
2. Topologi
Ring
Pada
topologi ring (Gambar 2.5.), setiap
simpul dalam jaringan dihubungkan seperti halnya cincin, sehingga jika terjadi
transmisi data, maka data akan mengelilingi ring sampai tiba di komputer/alamat
tujuan.
Keuntungan
dari topologi jaringan ini antara lain data dapat dikirimkan dengan kecepatan
tinggi tanpa terjadi tubrukan data (data collision). Namun,
kerugiannya adalah jika kabel mengalami kerusakan, maka jaringan akan
terganggu. Jenis topologi ini tidak begitu umum digunakan dalam jaringan
komputer.
Gambar 2.5. Topologi Ring
3. Topologi
Bus
Pada topologi bus
(Gambar 2.6.), setiap simpul dalam jaringan dihubungkan dengan suatu kabel
utama yang disebut bus jaringan atau sering juga disebut sebagai backbone,
yang pada setiap ujungnya dipasang terminator yang berfungsi untuk menyerap
sinyal-sinyal yang melewai ujung tersebut. Disebut bus karena orang-orang dalam
sebuah bus dapat naik atau berhenti pada perhentian manapun sepanjang rute.
Dalam topologi bus
, sinyal dikirimkan secara broadcast ke semua simpul dalam jaringan, tapi hanya
simpul/komputer tujuan yang dapat menanggapi sinyal tersebut.
Keuntungan
dari topologi ini adalah kemudahan untuk menambah atau menghapus komputer atau
peralatan dari jaringan serta kemudahan pemasangan, sehingga paling banyak
digunakan. Topologi bus baik untuk peralatan/sistem yang secara fisik terletak
dekat satu dengan yang lainnya. Kerugiannya, apabila kabel utama rusak, maka
jaringan akan down secara keseluruhan. Selain itu, waktu akses juga lebih
lambat dibandingkan dengan topologi lainnya.
Gambar 2.6. Topologi Bus
4. Topologi
hybrid
Jenis topologi
hybrid merupakan jenis kombinasi dari jenis-jenis topologi star, ring, atau
bus. Jenis topologi inilah yang paling banyak digunakan dalam dunia nyata.
2.6
IP Address
Masing-masing
host mempunyai IP address untuk mengidentifikasi suatu host dalam melakukan proses koneksi dalam jaringan TCP / IP.
Sedangkan masing-masing IP address di
dalamnya terdapat Network ID dan Host ID.
Network ID menunjukkan letak atau tempat
sistem berada yang terdapat dalam IP
Router dalam jaringan fisik yang sama. Host
ID ini lebih dikenal dengan workstation,
server, router dan host TCP / IP
yang lainnya dalam suatu jaringan.
Suatu
IP Address terdiri dari 32 bit yang bekerja dalam suatu urutan
waktu. Dari 32 bit kemudian dipecah
menjadi 8 bit atau lebih dikenal
dengan oktet dimana masing-masing oktet dikonversikan dalam bilangan desimal
yang berkisar antara 0 sampai 255.
2.7
Format Citra
Dalam
sistem operasi Windows, mendukung beberapa jenis format gambar. Aplikasi
pengolahan grafis juga menyediakan fasilitas untuk membuka file – file dengan format yang berbeda. Adapun beberapa jenis
format gambar yang didukung oleh sistem operasi Windows dan aplikasi grafis
seperti : JPEG, WMF, BMP dan GIF.
2.7.1
Format Citra
JPEG
JPEG
( Joint Photographic Experts Group)
adalah teknik kompresi grafik high color
bit – mapped dan juga standar file
yang dikembangkan oleh grup joint
photographic experts yang menggunakan kombinasi DCT (Discrete Cosine Transform) dan pengkodean huffman untuk
mengkompresi suatu file citra.
JPEG
adalah suatu algoritma kompresi yang bersifat lossy dimana kualitas citranya kurang bagus. Lossy compression adalah metode memperkecil ukuran file citra dengan cara membuang beberapa
data, hal ini menyebabkan adanya sedikit penurunan kualitas citra. JPEG
merupakan teknik dan standar universal untuk kompresi dan dekompresi citra
tidak bergerak untuk digunakan pada kamera digital dan sistem pencitraan
menggunakan komputer yang dikembangkan oleh Joint
photographic experts group.
2.7.2
Format Citra
WMF
WMF
( Windows Meta File) adalah suatu
format file grafik standar Windows
yang biasanya digunakan pada clipboard
dan representasi sebuah grafik . Format file
ini menyimpan semua komponen dari suatu grafik beserta dengan atribut –
atributnya seperti garis (lines),
warna (colors), pola (patterns), teks (text) dan atribut teks (text
attributes). Adapun jenis format file
WMF yang telah ditingkatkan dari segi kualitas grafiknya yaitu EMF (Enchange Meta File).
2.7.3
Format Citra
BMP
Format
file BMP merupakan format file gambar standar untuk komputer –
komputer yang menjalankan sistem operasi Windows. Format file ini dikembangkan oleh pihak Microsoft untuk menyimpan file gambar (bitmap) dan memungkinkan Windows untuk menampilkan kembali gambar
tersebut. Struktur dari file BMP
terdiri dari Bitmapfileheader dan Bitmapinfoheader. Struktur Bitmapfileheader menyimpan informasi
mengenai dimensi dan format warna dari device
independent bitmap (DIV).
Jadi
dapat disimpulkan bahwa Bitmapfileheader
memberi informasi mengenai file dan Bitmapinfoheader
memberikan informasi mengenai gambar. Tabel warna yang didefinisikan sebagai array dan struktur RGBQUAD dan sisanya
adalah data gambar. Format ini mendukung resolusi dan monokrom hingga true color (16,7 juta warna).
2.7.4
Format Citra
GIF
GIF
(Graphics Interchange Format)
merupakan format gambar standar yang menyediakan sejumlah kemampuan seperti
ketajaman gambar (sharp) resolusi
gambar (resolution) yang baik serta
ukuran file gambar yang relatif lebih
kecil. Bagus tidaknya resolusi gambar GIF yang dihasilkan juga tergantung pada
perangkat keras (Graphics Hardware)
yang digunakan. Perangkat keras tersebut harus dapat menghasilkan resolusi
warna gambar yang tajam dengan pixel
warna yang baik.
Pixel merupakan elemen yang terkecil
dalam sebuah gambar. Pixel
berhubungan dengan titik (dot) dalam
layar grafik. Misalnya sebuah gambar memiliki ukuran sebesar 320 x 320. Hal ini
mempunyai arti bahwa gambar tersebut mempunyai jumlah pixel sebanyak 320 x 320. Semakin banyak pixel yang terdapat dalam objek gambar, maka semakin halus gambar
tersebut karena jarak antar pixel
semakin rapat dan semakin besar ukuran file
tersebut. Begitu juga sebaliknya, dimana semakin sedikit jumlah pixel yang terdapat pada objek gambar,
maka tampilan gambar tersebut terlihat kasar karena jarak antar pixel renggang dan ukuran file yang dihasilkan lebih kecil.
Format
GIF ditujukan untuk mendukung format gambar saat ini dan format gambar yang
akan datang. Format GIF mempunyai ekstensi .gif yang didukung oleh aplikasi
grafis, misalnya Microsoft Paint, Corel Draw, Corel PhotoPaint, Adobe
PageMaker dan sebagainya.
2.8
Animasi
Animasi merupakan salah satu bagian grafika komputer
yang menyajikan tampilan-tampilan yang sangat atraktif juga merupakan
sekumpulan gambar yang ditampilkan secara berurutan dengan cepat untuk
mensimulasi gerakan yang hidup.
Pemanfaatan animasi dapat ditujukan untuk simulasi, menarik perhatian
pemakai komputer pada bagian tertentu dari layar, memvisualisasikan cara kerja
suatu alat atau menampilkan keluaran program dengan gambar-gambar yang menarik
dibanding dengan sederetan angka, serta tidak ketinggalan untuk program-program
permainan.
Pada dasarnya, animasi adalah transformasi objek yang
di mana semua titik pada sembarang objek akan diubah sesuai dengan aturan
tertentu, sementara sistem koordinatnya tetap. Implementasi pada animasi dapat
dikerjakan secara interaktif maupun non interaktif. Dibandingkan animasi non
interaktif, animasi interaktif memberikan tampilan yang lebih menarik dan
dinamis. Pada animasi interaktif,
pergerakan objek mengikuti perintah yang diberikan oleh pemakai lewat perangkat
interaktif. Sedangkan animasi non interaktif, pergerakan objek hanya dikendalikan
dari prosedur yang ada di dalam sebuah program. Untuk animasi interaktif
kebanyakan digunakan untuk program-program permainan, sedangkan animasi non
interaktif kebanyakan untuk melakukan simulasi objek.
Pembuatan animasi masih dilakukan secara sederhana dan
konvensional dengan cara menggerakkan beberapa gambar secara bergantian dan
cepat sebelum tahun 1970-an. Gambar tersebut masih menggunakan lukisan tangan
atau menggunakan foto dari serangkaian kejadian. Hingga pada akhir tahun
1970-an, seorang ahli program bernama Julain Gomez mengembangkan sebuah program
khusus untuk animasi. Pengembangan
program tersebut dilakukan di negara bagian Ohio, Amerika Serikat.
Komputer digital yang berkembang pesat sangat
mempengaruhi proses pengerjaan animasi. Animasi kemudian membentuk suatu bidang
baru dalam ilmu komputer yaitu grafika komputer yang dapat digunakan untuk
menggambarkan cara kerja suatu alat dan menampilkan keluaran program berupa
gambar yang lebih hidup dan interaktif. Animasi banyak digunakan pada berbagai
bidang seperti bidang perekayasaan, arsitektur, ekonomi, kedokteran, dan
lain-lain.
Animasi yang bagus dihasilkan dari gambar yang cukup
banyak agar gambar yang dihasilkan akan tampak gerakan yang berkesan
halus. Dalam hal ini, maka gambar-gambar
tersebut haruslah berpindah posisi sekecil mungkin agar pada perubahan atau
pergantian gambar terlihat lebih menarik dan bagus. Selain itu diperlukan juga kecepatan tertentu
untuk tampilan gambar yang akan dibuat dalam animasi. Hal ini tergantung pada
jumlah gambar yang diberikan. Kecepatan yang dimaksud yaitu begitu satu gambar
ditampilkan maka akan berganti gambar berikutnya dengan kecepatan tertentu.
Makin cepat pergantian antara satu gambar dengan gambar berikutnya maka akan
menghasilkan gerakan gambar yang semakin halus.
2.9
Permainan
Battle Ship
Permainan
ini menyediakan beberapa buah tempat yang disusun oleh kotak – kotak sebagai medan perang.
Gambar 2.7.Medan perang pada permainan Battle Ship
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).
BAB III
PEMBAHASAN DAN PERANCANGAN
3.1 Pembahasan
Perancangan
perangkat lunak permainan strategi Battle
Ship pada jaringan ini ini melalui beberapa tahapan proses yaitu :
- Perancangan Gambar Kapal.
Kapal
yang digunakan dalam perangkat lunak ini terdiri dari :
- Battleship dengan ukuran 4 kotak sebanyak 1 buah.
- Cruiser dengan ukuran 3 kotak sebanyak 2 buah.
- Submarine dengan ukuran 2 kotak sebanyak 3 buah.
- Destroyer dengan ukuran 1 kotak sebanyak 4 buah.
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.
Khusus
untuk gambar kapal Destroyer yang
memiliki panjang 1 kotak saja dirancang dengan menggunakan gambar tersendiri
dan bukan merupakan gabungan dari bagian-bagian kapal tersebut.
Gambar-gambar
di atas juga dirancang secara vertikal dengan menggunakan metoda yang sama.
- 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.
- 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.
- 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.
- 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 :
Gambar 3.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 :
Gambar 3.2 Penomoran kotak pada medan perang
- 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
- 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 koordinat yang ditembak juga ditandai. Proses perhitungan posisi x dan y
tersebut sama dengan proses perhitungan pada penentuan posisi kapal di atas.
- Penentuan Pemenang.
Jika
jumlah bagian kapal yang ditandai sama dengan 20 maka berarti semua kapal telah
tertembak, maka pemain lawan dinyatakan menang.
- Perhitungan Score.
Jika
sebuah kapal telah ditenggelamkan maka score
pemain akan ditambahkan. 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.
3.2 Perancangan
Perangkat
lunak permainan strategi 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.
Perangkat
lunak permainan ini beberapa tampilan yaitu :
- Tampilan Splash Screen.
- Tampilan Setting Koneksi.
- Tampilan Tempat Penyusunan Kapal.
- Tampilan Medan Perang.
3.2.1 Tampilan Splash Screen
Gambar 3.3 Rancangan Tampilan Splash Screen
Keterangan :
1 : judul topik skripsi.
2 : data penyusun tugas akhir (skripsi).
3 : gambar icon
dari perangkat lunak.
3.2.2 Tampilan Setting Koneksi
Gambar 3.4 Rancangan Tampilan Setting Koneksi
Keterangan :
1 : title bar.
2 : tombol ‘x’, berfungsi untuk menutup
perangkat lunak.
3 : option
button ‘Sebagai Server’ untuk bermain pada jaringan dengan koneksi
sebagai server.
4 : option
button ‘Sebagai Client’ untuk bermain pada jaringan dengan koneksi
sebagai client.
5 : tombol ‘Mulai Permainan’, berfungsi untuk menampilkan
tampilan Tempat
Penyusunan Kapal.
6 : tombol ‘Keluar’, berfungsi untuk keluar
dari perangkat lunak.
3.2.3 Tampilan Tempat Penyusunan Kapal
Gambar 3.5 Rancangan Tampilan Tempat Penyusunan Kapal
Keterangan :
1 : title bar.
2 :
tombol ‘x’, berfungsi untuk menutup perangkat lunak.
3 : tempat penyusunan kapal.
4 : option
button ‘Battleship’ untuk memilih
kapal Battleship.
5 : option
button ‘Cruiser’ untuk memilih
kapal Cruiser.
6 : option
button ‘Submarine’ untuk memilih
kapal Submarine.
7 : option
button ‘Destroyer’ untuk memilih
kapal Destroyer.
8 : option
button ‘Hapus’ untuk menghapus penempatan kapal sebelumnya.
9 : daerah tampilan gambar kapal
yang sedang dipilih.
10 : status giliran dari pemain yaitu apakah sudah siap atau belum.
11 : tombol ‘Mulai’ untuk memulai permainan.
3.2.4 Tampilan Medan Perang
Gambar 3.6 Rancangan Tampilan Medan Perang
Keterangan :
1 : title bar.
2 : tombol ‘x’, berfungsi untuk menutup perangkat
lunak.
3 : daerah tampilan posisi kapal pemain.
4 : daerah medan perang.
5 : tempat pengisian pesan yang ingin
dikirimkan kepada pemain lawan.
6 : status giliran dari pemain
yaitu apakah sedang mendapat giliran atau tidak.
7 : tempat untuk menampilkan score pemain.
8 : progressbar untuk menampilkan batas waktu.
BAB IV
ALGORITMA DAN IMPLEMENTASI
4.1 Algoritma
Algoritma
perancangan perangkat lunak permainan strategi ‘Battle Ship’ pada jaringan dibagi menjadi 6 bagian yaitu,
- Algoritma Pengaturan Koneksi Antara 2 (Dua) Pemain.
- Algoritma Penggambaran Papan Permainan.
- Algoritma Peletakan Kapal Pada Papan Permainan.
- Algoritma Tembak Kapal Lawan.
- Algoritma Ubah Giliran Pemain.
- Algoritma Pengecekan Permainan Berakhir.
4.1.1
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
, 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
4.1.2
Algoritma
Penggambaran Papan Permainan
Penulis
merancang papan permainan berukuran 10 x 10 petak. Papan permainan merupakan
tempat diletakkannya kapal pemain. 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
4.1.3
Algoritma
Peletakan Kapal Pada Papan Permainan
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).
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,
{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}
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}
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"
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
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
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
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
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
4.1.4
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
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
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
4.1.5
Algoritma
Ubah Giliran Pemain
Algoritma
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 !"
{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
4.1.6
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
4.2
Implementasi
Sistem
Implementasi sistem dalam perangkat lunak
pembelajaran ini mencakup spesifikasi kebutuhan perangkat keras (hardware) dan spesifikasi perangkat
lunak (software).
4.2.1
Spesifikasi
Perangkat Keras dan Perangkat Lunak
Program
ini dijalankan dengan menggunakan perangkat keras (hardware) yang direkomendasikan sebagai berikut :
1.
Prosesor Intel
Pentium IV 2.4 GHz.
2.
Memory 128
MB.
3.
Harddisk 40
GB, dengan freespace 200 MB.
4.
VGA card 32
MB.
5.
Monitor dengan resolusi 800 X 600 pixel.
6.
Keyboard
dan Mouse
7.
Network Card
– 100 MBps dan adanya jaringan LAN.
Adapun perangkat lunak (software)
yang direkomendasikan untuk menjalankan aplikasi ini adalah lingkungan sistem
operasi MS-Windows NT/2000/XP.
4.2.2
Tampilan
Output
Klik
pada file ‘Permainan Battle-Ship (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
4.1 Tampilan Form Splash Screen
Setelah
itu, akan muncul tampilan ‘Setting Koneksi’.
Apabila anda memilih koneksi sebagai server,
maka anda harus menunggu koneksi dari pemain client. Apabila anda memilih koneksi sebagai client, maka anda harus memasukkan ip-address komputer server yang
dituju.
Gambar
4.2 Tampilan Setting Koneksi
Apabila
koneksi winsock telah terhubung, maka
akan muncul tampilan input form untuk
meng-input nama pemain.
Gambar
4.3 Tampilan Input Form Nama
.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
4.4 Tampilan Pengaturan Letak Kapal
Permainan
akan dimulai setelah kedua pemain klik tombol ‘Mulai’. Selanjutnya, muncul tampilan
medan perang.
Gambar
4.5 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.
Apabila
tembakan gagal (tidak mengenai kapal lawan), maka akan muncul animasi gelombang
air pada daerah kotak sebelah kanan.
Gambar
4.6 Tampilan Tembakan Gagal Pada Komputer-1 (Pemain yang menembak)
Gambar
4.7 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
4.8 Tampilan Tembakan Berhasil Pada Komputer-1 (Pemain yang menembak)
Apabila
tembakan lawan berhasil, maka akan muncul animasi api pada bagian kapal yang
tertembak pada daerah kotak sebelah kiri.
Gambar
4.9 Tampilan Tembakan Berhasil Pada
Komputer-2 (Pemain yang ditembak)
0 Responses to "BATTLESHIP MULTI PLAYER 2 PEMAIN":
Posting Komentar