57
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Setelah melakukan analisis dan perancangan terhadap aplikasi yang akan
dibangun, tahapan selanjutnya adalah implementasi dan pengujian. Untuk
mengimplementasikan pengembangan aplikasi perangkat lunak game Battleship
sesuai dengan analisis dan perancangan, berikut spesifikasi komputer dimana
sistem diimplementasikan dan diujikan.
Pada tahapan implementasi terdapat dua cakupan yaitu spesifikasi
kebutuhan sistem yang meliputi perangkat keras (hardware), perangkat lunak
(software), implementasi yang meliputi proses pengkodean, desain antarmuka dan
hal-hal yang berhubungan dengan pengujian aplikasi.
4.1.1 Implementasi Aplikasi
Pada bab ini diterangkan secara rinci mengenai tahapan-tahapan
implementasi aplikasi perangkat lunak game Battleship yang meliputi proses
pengkodean, dan bentuk tampilan layar.
4.1.1.1 Pengkodean
Pada proses pengkodean aplikasi ini, perlu terlebih dahulu dibuat
modul-modul. Modularisasi merupakan pembuatan program berdasarkan modul-modul-modul.
Modul dapat berupa fungsi atau prosedur. Statement yang digunakan penulis
untuk modularisasi adalah function.
Dalam pemrograman pengembangan aplikasi perangkat lunak game
Battleship, terdapat beberapa perintah yang akan dijelaskan diantaranya adalah :
1. setting koneksi, didalamnya terdapat pilihan permainan antara jaringan atau
permainan dengan komputer. Bahasa pemprogramannya adalah sebagai
berikut :
If Option2.Value Then
'2 orang - Sebagai server Winsock.Close
Winsock.LocalPort = 1234 Winsock.Listen
mess = " Sedang menunggu computer client ..." ElseIf Option3.Value Then
'2 orang - Sebagai klien Winsock.Close
If txtServer.Text <> "" Then
Winsock.Connect txtServer.Text, 1234
mess = " Menunggu balasan dari server ..." Else
MsgBox "Masukkan IP Server !", vbCritical Exit Sub
End If
ElseIf Option1.Value Then '3 Lawan Komputer
drawField 'gambar daerah kosong drawFieldcom 'gambar daerah kosong CreateComShip
End If
Perintah di atas merupakan pilihan ketika pertama kali aplikasi Battleship
dijalankan, pada pilihan pemainan antar jaringan terdapat 2 pilihan yang harus di
pilih oleh pemain. Apakah pemain sebagai server atau client, apabila pemain
memilih sebagai server maka pemain akan menunggu pemain lain sebagai client
untuk dapat bermain secara bersamaan melalui jaringan LAN. Berikut ini
merupakan perintah ketika pemain sebagai server akan membuka koneksi untuk
memberikan jalan kepada client.
Winsock.Close
Winsock.LocalPort = 1234
Winsock.Listen
Ketika server telah membuka koneksinya dengan nilai port 1234, maka
server akan menunggu koneksi dari client. Dengan perintah koneksi pada client
sebagai berikut :
Winsock.Connect txtServer.Text, 1234
mess = " Menunggu balasan dari server ..."
Setelah client membuka port 1234 dan memasukkan IP Server, maka
koneksi antara client dan server akan secara langsung terhubung secara bersamaan
pada jaringan LAN yang dapat digunakan pada aplikasi game Battleship dan
fasilitas chatting yang terdapat didalamnya.
Lalu pada pengembangan aplikasi permainan Battleship ini ditambahkan
fasilitas agar pemain dapat bermain dengan komputer, untuk menjalankan
perintah komputer dalam permainan Battleship ini, yang dilakukan oleh komputer
adalah menggunakan fungsi acak variabel ketika menembak kapal pemain.
Diantaranya pada saat pemain memilih untuk bermain bersama komputer, maka
dijalankan perintah fungsi drawField dan drawFieldcom,
perintah /
scriptnya
adalah sebagai berikut :
Sub drawField()
Dim i As Integer 'counter Dim j As Integer 'counter For i = 0 To max - 1
For j = 0 To max - 1
BitBlt field1.hDC, i * 30, j * 30, tile.ScaleWidth, tile.ScaleHeight, tile.hDC, 0, 0, vbSrcCopy
Next j Next i End Sub
Sub drawFieldcom()
Dim i As Integer 'counter Dim j As Integer 'counter For i = 0 To max - 1
For j = 0 To max - 1
BitBlt field2.hDC, i * 30, j * 30, tile.ScaleWidth, tile.ScaleHeight, tile.hDC, 0, 0, vbSrcCopy
Next j Next i End Sub
Fungsi drawfield() pada perintah diatas digunakan untuk membuat
kotak-kotak kosong 21x21 untuk wilayah strategi pemain, sedangkan untuk fungsi
drawfieldcom() digunakan untuk membuat kota-kotak kosong 21x21 untuk
wilayah strategi komputer secara otomatis dan bersamaan.
2. Susun kapal, dilakukan secara manual pada pemain client dan server pada
permainan antar jaringan, sedangkan untuk permainan lawan komputer
menggunakan fungsi random/acak untuk menyusun kapal.
Peletakan kapal pada komputer dilakukan secara acak dengan
menggunakan fungsi CreateComShip(), perintah/scriptnya adalah sebagai berikut:
Sub CreateComShip()
Dim pB As Integer, pX As Single, pY As Single Dim bStat As Boolean
Do
Randomize
pB = Int(Rnd() * (3 - 1) + 1)
pX = (Int(Rnd() * (16 - 1) + 1) * 30) - 15 pY = (Int(Rnd() * (16 - 1) + 1) * 30) - 15 'Set box visible
If Not box.Visible Then box.Visible = True End If
'Cursor di tengah kotak
box.Left = pX - box.Width / 2 box.Top = pY - box.Height / 2 'Kotak tetap di dalam box If box.Left < 0 Then box.Left = 0 End If If box.Top < 0 Then box.Top = 0 End If
If box.Left + box.Width > 2100 Then box.Left = 2100 - box.Width End If
If box.Top + box.Height > 2100 Then box.Top = 2100 - box.Height End If
compShipSet pB, pX, pY bStat = allSetcom() Loop Until bStat = True End Sub
fungsi CreateComShip() tersebut digunakan untuk meletakkan posisi kapal
yang diletakkan pada wilayah strategi komputer secara acak dengan perintah
Rnd() untuk mendapatkan nilai acak, sehingga posisi kapal tidak diketahui oleh
pemain, karena posisinya berubah-ubah setiap kali melakukan permainan dengan
komputer. Setelah mendapatkan nilai untuk posisi x,y dan b sebagai panjang
kapal, kemudian dilanjutkan dengan memanggil fungsi compshipset(), seperti
pada perintah script dibawah ini :
Sub compShipSet(btnSet As Integer, X As Single, Y As Single) If btnSet = 1 Then
'Cari tempat yang masih bisa ditempati kapal di ship array For curShip = 1 To 19
If shipscom(curShip) Is Nothing Then Exit For
End If Next
If checkValiditycom(Int(X / 30), Int((box.Top + 10) / 30), vbKeyDown, mark) Then
'Tandai petak di sekeliling kapal
For i = Int((box.Top + 10) / 30) To Int((box.Top + 10) / 30) + mark - 1
zone3(Int(X / 30), i) = mark Next i
'Set kapal baru
Set shipscom(curShip) = New shipClass shipscom(curShip).setValues Int(X / 30), Else Exit Sub End If End If End If Exit Sub End Sub
fungsi compshipset() digunakan untuk meletakkan kapal-kapal di wilayah
strategi komputer, didalamnya terdapat fungsi checkvalidtycomp untuk mencegah
peletakan kapal-kapal di kotak yang sudah terisi kapal di kotak tersebut.
3. Medan Perang, pada masing-masing wilayah strategi ditentukan dengan
ukuran 21x21 kotak yang dapat diletakkan 20 kapal pada masing-masing
pemain. Sedangkan untuk ukuran kapal dapat ditentukan sesuai keinginan
pemain sebagai strategi permainan.
Agar masing-masing pemain dapat melakukan tembakan ke arah lawan
digunakan perintah fungsi parseCom(), Perintah/scriptnya adalah sebagai berikut :
Sub parseCom(info As String)
msgtype = Left(info, InStr(1, info, ":") - 1) P_Score = InStr(1, info, ";")
If P_Score > 0 Then
msg = Mid(info, InStr(1, info, ":") + 1, P_Score - (InStr(1, info, ":") + 1))
cNilai = Mid(info, InStr(1, info, ";") + 1) lblScore = cNilai
Label27.Caption = cNilai Else
msg = Mid(info, InStr(1, info, ":") + 1) End If
'Proses pesan
If msgtype = "User" Then
MsgBox (msg & " telah bergabung !") user = msg
drawField
ElseIf msgtype = "Shot" Then 'MsgBox "tes" 'Tembak di posisi x, y cX = Left(msg, InStr(1, msg, ",") - 1) cY = Mid(msg, InStr(1, msg, ",") + 1) 'Koordinat_Temp tempX = cX tempY = cY
'zone3(x,y) < 5 - kena tembak
If zone3(cX, cY) > 0 And zone3(cX, cY) < 5 Then zone3(cX, cY) = zone3(cX, cY) + 4
'Cari head_x kapal Do
tempX = tempX - 1 If tempX < 0 Then Exit Do
End If
Loop Until zone3(tempX, cY) = 0 headX = tempX + 1
end if end if End Sub
Pada fungsi parsecomp() terdapat beberapa perintah yang digunakan untuk
arah tembakan kepada lawan dengan kondisi ketika kena tembak atau tidak kena
tembak, kemudian terdapat juga penentuan nilai score pada masing-masing
pemain untuk menetukan menang atau kalah dalam permainan.
4.1.1.2 Tampilan Layar
Tampilan layar merupakan tampilan yang akan digunakan oleh pengguna
sehingga dapat dirasakan manfaatnya. Beberapa tampilannya adalah sebagai
berikut :
1. Tampilan Form Splash
Berikut ini adalah gambar form splash pada Gambar 4.1
Gambar 4.1 Tampilan Form Splash
2. Tampilan Form Utama pengembangan aplikasi permainan Battleship
Berikut ini adalah gambar form utama pengembangan aplikasi permainan
Battleship pada Gambar 4.2
Pada Tampilan layar form utama pengembangan aplikasi permainan
Battleship, pemain akan melihat tampilan untuk pilihan permainan antar jaringan
atau permainan lawan komputer. Lihat Gambar 4.3
3. Tampilan Form Wilayah Strategi Kapal
Berikut ini adalah gambar form wilayah strategi kapal pada Gambar 4.4
Gambar 4.4 Tampilan Form Utama Wilayah Strategi Kapal
Gambar 4.3 Pilih Jenis Permainan
Pada Tampilan layar form wilayah strategi kapal, pemain akan melihat
tampilan untuk menentukan jenis kapal yang akan diletakkan sebanyak 20 kapal.
Tampilannya adalah sebagai berikut : Lihat Gambar 4.5
4. Tampilan Form Medan Perang
Berikut ini adalah gambar form medan perang pada Gambar 4.6
Gambar 4.6 Tampilan Form Medan Perang
Gambar 4.5 Tampilan Form Wilayah Strategi Kapal
4.2 Pengujian
Dalam perancangan sistem perlu dilakukan pengujian sistem sebagai
verifikasi atas sistem yang telah dirancang. Verifikasi dilakukan untuk
mengetahui kemungkinan terjadinya kesalahan dan untuk memastikan
fungsi-fungsi yang terdapat dalam modul modul sistem berjalan dengan baik. Tahapan
pengujian ini meliputi skenario pengujian, hasil pengujian, dan analisis hasil
pengujian.
4.2.1 Lingkup Pengujian
Berikut ini merupakan spesifikasi kebutuhan sistem, dimana sistem dibuat
dan dijalankan.
1. Perangkat keras (hardware):
a. Prosesor Intel Pentium IV 1.80 GHz
b. RAM 512 MB
c. Harddisk
2. Perangkat lunak (software):
a. Visual Basic 6.0 merupakan bahasa pemrograman yang digunakan
untuk pengembangan dan implementasi pengembangan aplikasi
permainan Battleship.
4.2.2 Skenario Pengujian BlackBox
Sebelum pengujian pengembangan aplikasi permainan Battleship akan
dijelaskan pada Tabel 4.1 tentang skenario normal dan tidak normal yang terjadi.
Skenario yang dijelaskan antara lain skenario Setting Koneksi, Susun Kapal dan
Medan Perang.
Tabel 4.1 Skenario Normal dan Tidak Normal.
Skenario Sifat Kondisi Awal Hasil yang diinginkan Setting
Koneksi Multi Player
Normal Terdapat 2 pilihan
permainan diantaranya antar jaringan
Permainan antar jaringan dapat saling terhubung dengan 2 pemain Tidak
Normal
Tidak ada pemain lain untuk permainan antar jaringan
Tetap menunggu pemain lain untuk permainan antar jaringan
Setting Koneksi
Single Player
Normal Terdapat 2 pilihan
permainan diantaranya antar jaringan dan lawan komputer
permainan lawan komputer dapat langsung bermain tanpa pemain lain
Tidak Normal
Memilih koneksi lawan komputer
Tetap menunggu
Susun Kapal
Normal Terdapat kotak 21x21
untuk penyusunan kapal
Kapal-kapal dapat disusun pada wilayah strategi pemain dengan jumlah kapal sebanyak 20 kapal dan jenis kapal dapat ditentukan oleh pemain
Tidak Normal
Tidak ada kotak ukuran 21x21
Masing-masing pemain belum menekan tombol mulai
Medan Perang
Normal Terdapat 21x21 kotak
yang ditutupi oleh animasi air
Animasi air bergerak dan pemain dapat menembak ke arah wilayah strategi lawan untuk tengelamkan seluruh kapal lawan
Tidak Normal
Tidak ada animasi air dan kapal yang tersusun
Masing-masing pemain harus sudah siap bermain
Score Nilai
Normal Masing-masing pemain
memiliki nilai score 0
Setiap pemain akan bertambah nilai score+10 apabila
meneggelamkan kapal lawannya Tidak
Normal
Score tidak nol Nilai score tidak bertambah
walaupun kapal lawan sudah ditenggelamkan
Chatting Kirim Pesan
Normal Pesan belum di
masukkan
Pemain 1 dan pemain 2 dapat saling berkirim pesan Tidak
Normal
4.2.3 Hasil Pengujian BlackBox
Pada Tabel 4.2 akan dijelaskan hasil pengujian dari skenario Setting
Koneksi, Susun Kapal dan Medan Perang.
Tabel 4.2 Hasil Pengujian Blackbox.
Skenario Sifat Kondisi Awal Hasil yang diinginkan Hasil Pengujian Status Akhir Setting Koneksi Multi Player Normal Terdapat 2 pilihan permainan diantaranya antar jaringan Permainan antar jaringan dapat saling terhubung dengan 2 pemain
Permainan antar jaringan dapat saling terhubung dengan 2 pemain Sukses Tidak Normal Tidak ada pemain lain untuk permainan antar jaringan Tetap menunggu pemain lain untuk permainan antar jaringan
Tetap menunggu pemain lain untuk permainan antar jaringan Setting Koneksi Single Player Normal Terdapat 2 pilihan permainan diantaranya antar jaringan dan lawan komputer permainan lawan komputer dapat langsung bermain tanpa pemain lain
permainan lawan komputer dapat langsung bermain tanpa pemain lain
Sukses Tidak Normal Memilih koneksi lawan komputer
Tetap menunggu Tetap menunggu
Susun Kapal
Normal Terdapat kotak
21x21 untuk penyusunan kapal Kapal-kapal dapat disusun pada wilayah strategi pemain dengan jumlah kapal sebanyak 20 kapal dan jenis kapal dapat ditentukan oleh pemain
Kapal-kapal dapat disusun pada wilayah strategi pemain dengan jumlah kapal sebanyak 20 kapal dan jenis kapal dapat ditentukan oleh pemain Sukses Tidak Normal Tidak ada kotak ukuran 21x21 Masing-masing pemain belum menekan tombol mulai Masing-masing pemain belum menekan tombol mulai Medan Perang Normal Terdapat 21x21 kotak yang ditutupi oleh animasi air Animasi air bergerak dan pemain dapat menembak ke arah wilayah strategi lawan untuk tengelamkan seluruh kapal lawan
Animasi air bergerak dan pemain dapat menembak ke arah wilayah strategi lawan untuk tengelamkan seluruh kapal lawan Sukses Tidak Normal Tidak ada animasi air dan kapal yang tersusun
Masing-masing pemain harus sudah siap bermain
Masing-masing pemain harus sudah siap bermain
Score Nilai Normal Masing-masing pemain memiliki nilai score 0
Setiap pemain akan bertambah nilai score+10 apabila meneggelamkan kapal lawannya
Setiap pemain akan bertambah nilai score+10 apabila meneggelamkan kapal lawannya Sukses Tidak Normal
Score tidak nol Nilai score tidak bertambah walaupun kapal lawan sudah ditenggelamkan
Nilai score tidak bertambah walaupun kapal lawan sudah ditenggelamkan Chatting
Kirim Pesan
Normal Pesan belum di
masukkan
Pemain 1 dan pemain 2 dapat saling berkirim pesan
Pemain 1 dan pemain 2 dapat saling berkirim pesan Sukses Tidak Normal Pesan tetap kosong
Pesan tidak ada response
Pesan tidak ada response
4.2.4 Pengujian Whitebox
Whitebox adalah cara pengujian dengan melihat ke dalam modul untuk
meneliti kode-kode program yang ada, dan menganalisis apakah ada kesalahan
atau tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan
proses bisnis yang dilakukan, maka baris program, variable, dan parameter yang
terlibat pada unit tersebut diperbaiki. Lihat Gambar 4.7 dan Gambar 4.8
1 2 3 4 5 6 8 7
1. Splash Screen Game Battleship 2. Pilih Permainan Lawan Komputer 3. Mulai Membuat Strategi
4. Tersusun 21x21 kotak
5. pengulangan variabel i = 0 to 20 dan j=0 to 20, untuk menghasilkan kotak 21x21 . dan komputer menyusun kapal-kapalnya sebanyak 20 kapal secara otomatis 6. Pemain menyusun strategi Kapal 7. Kapal sudah diletakkan
8. Pengulangan varibel untuk status kapal sudah diletakkan, tidak boleh melewati batas area 21x21 kotak yang disediakan 9. Memulai Permainan
10. Animasi air
11. Pengulangan variabel untuk menghasilkan animasi air
12. Menembak ke arah lawan 13. Pergantian menembak
14. Pengulangan varibel untuk menentukan suara tidak kena tembak, kapal yang tertembak sebagiannya, meneggelamkan kapal yang tertembak dan menghasilkan score nilai 11 10 14 13 9 12
Tabel 4.3 Tabel Matrix Pengujian Whitebox
1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 1 2 1 3 1 1 4 1 5 1 1 6 1 7 1 1 8 1 9 1 1 10 1 11 12 13 14Gambar 4.8 Pengujian Whitebox aplikasi game Battleship Multiplayer
1. Splash Screen Game Battleship 2. Pilih Koneksi Server/Client 3. Menunggu Koneksi Server/Client
menggunakan winsock 4. Tersusun 21x21 kotak
5. Pengulangan variabel i = 0 to 20 dan j=0 to 20, untuk menghasilkan kotak 21x21
6. Pemain 1 dan pemain 2 menyusun strategi Kapal
7. Kapal sudah diletakkan
8. Pengulangan varibel untuk status kapal sudah diletakkan, tidak boleh melewati batas area 21x21 kotak yang disediakan
9. Mulai Permainan 10. Animasi air
11. Pengulangan variabel untuk menghasilkan animasi air 12. Menunggu komputer lawan
meletakkan 20 kapalnya 13. Menembak ke arah lawan 14. Pengulangan varibel untuk
menentukan suara tidak kena tembak, kapal yang tertembak sebagiannya, meneggelamkan kapal yang tertembak dan menghasilkan score nilai 1 2 3 4 5 6 8 7 11 10 14 13 9 12