48 4.1 Implementasi
Setelah melakukan analisis dan perancangan terhadap aplikasi permainan Koneksi-4 yang akan dikembangkan, tahapan selanjutnya adalah implementasi dan pengujian. Pada tahapan implementasi terdapat dua cakupan yaitu spesifikasi kebutuhan sistem yang meliputi emulator J2ME dan telepon genggam, implementasi yang meliputi proses pengkodean, desain antarmuka dan hal-hal yang berhubungan dengan pengujian aplikasi.
4.1.1 Pembatasan Implementasi
Pembatasan implementasi dilakukan agar ruang lingkup implementasi menjadi lebih jelas. Batasan implementasi dari aplikasi permainan Koneksi-4 adalah sebagai berikut :
Aplikasi yang dikembangkan berbasis jaringan client-server dengan metode peer to peer namun tidak di implementasikan secara multiplayer, hanya melibatkan 2 pemain.
Proses yang dijelaskan lebih terfokus pada pemrograman.
4.1.2 Pengkodean
Pada subbab ini penulis akan menjelaskan potongan-potongan dari kode sumber (source code) aplikasi permainan Koneksi-4. Potongan-potongan program yang akan dijelaskan mengacu pada analisa bab sebelumnya dimana penulis mengembangkan kode sumber yang ada sebagai berikut:
if (isServer) {
server = new C4Server(this);
server.start();
}else {
client = new C4Client(this);
client.start();
}
Pada kode sumber diatas terdapat kondisi if (isServer) artinya apabila dalam proses pemilihan status pemain memilih pilihan sebagai server, maka sistem akan membuat objek berupa status server (server=new C4Server(this)). Apabila kondisi sebaliknya yaitu pemain memilih sebagai client, maka sistem akan membuat objek client pada kelas client (client = new C4Client(this)).
public void run () { try {
canvas.setStatus("Tunggu client...");
dc = null;
while (dc == null)
dc = (DatagramConnection)Connector.open("datagram://:5555");
Pada kode sumber diatas terdapat kode while (dc == null) artinya selama kondisi varibel dc yang diinisialisasi (dc = null) sama dengan null artinya tidak ada, maka sistem akan melakukan atau membuka koneksi jaringan
DatagramConnection)Connector.open("datagram://:5555"). Kode sumber ini merupakan kode untuk terhubung ke client.
public void run() { try {
canvas.setStatus("Koneksi ke server...");
dc = null;
while (dc == null) dc
(DatagramConnection)Connector.open("datagram://localhost:5555";
Pada kode sumber diatas terdapat kode while (dc == null) artinya selama kondisi variabel dc yang diinisialisasi (dc = null) sama dengan null artinya tidak ada, maka sistem akan melakukan atau membuka koneksi jaringan
DatagramConnection)Connector.open("datagram://localhost:5555").
localhost merupakan nama server lokal, sedangkan 5555 adalah port jaringan yang digunakan. Kode sumber ini merupakan kode untuk terhubung ke server.
private void update() {
if (gameOver) {
int keyState = getKeyStates();
if ((keyState & FIRE_PRESSED) !=0) { newGame();
if (isServer)
server.sendMessage("newGame");
else
client.sendMessage("newGame");
}
return;
Pada kode sumber diatas terdapat fungsi private void update()
artinya untuk proses dimana proses baru akan dilakukan baik oleh server maupun client jika kondisi permainan sudah dalam keadaan berakhir (if (gameOver)).
Pada kondisi ini salah satu pemain dapat mengirimkan pesan untuk memulai permainan dengan yang baru . return berfungsi untuk mengembalikan nilai.
if (!connected)
sendMessage("Client");
public void sendMessage(String message) { try {
byte[] bytes = message.getBytes();
Datagram dg = null;
dg = dc.newDatagram(bytes, bytes.length);
dc.send(dg);
}
catch (Exception e) { }
}
Pada kode sumber diatas merupakan kode program untuk mengirimkan pesan koneksi apabila kondisi belum ada koneksi pada client (sendMessage("Client")). Pengiriman pesan bertujuan untuk menandakan bahwa client sudah terhubung dengan server. Exception digunakan untuk menangani permasalahan apabila proses pengiriman pesan tidak terhubung.
private void updateScore(int player, int x, int y) { for (int i = 0; i < winPlaces; i++)
if (map[x][y][i]) {
score[player][i] <<=1;
score[1 - player][i] = 0;
} }
Pada kode sumber diatas terdapat fungsi score dengan status private(private void updateScore) artinya nilai atau score akan bertambah dan bersifat dinamik pada masing-masing kelas pemain yaitu client dan server.
4.1.3 Antarmuka Pemain
Pada subbab berikut akan dijelaskan implementasi Antarmuka permainan Koneksi-4 yang telah dibangun tersebut dengan menggunakan emulator J2ME.
4.1.4.1 Jendela Inisialisasi
Ketika pemain akan menjalankan aplikasi permainan Koneksi-4 yang telah penulis kembangkan, yang pertama kali ditampilkan kepada pemain adalah
jendela inisialisasi. Pada jendela tersebut pemain dapat memulai memilih status dengan terlebih dahulu menekan tombol keypad navigasi setelah itu baru dilanjutkan menekan tombol bertuliskan ”Play” seperti pada gambar berikut ini.
Gambar 4.1. Jendela Inisialisasi
4.1.4.2 Jendela Permainan
Setelah pemain memasuki jendela inisialisasi, pemain akan dibawa ke jendela awal permainan. Pada jendela awal permainan, pemain yang berstatus server menunggu respon koneksi pemain yang berstatus client untuk memulai permainan. Lihat Gambar 4.2.
Gambar 4.2. Jendela awal permainan.
4.1.4.3 Jendela Setelah Client Terhubung
Setelah client terhubung, server menunggu aktifitas client untuk melangkah atau mengisi pin terlebih dahulu. Lihat Gambar 4.3.
Gambar 4.3. Jendela setelah client terhubung
4.1.4.4 Jendela Mengisi Papan Permainan
Pemain memainkan permainan Koneksi-4 ini dengan mengisi papan dengan pin dengan cara mengontrol arah kolom papan menggunakan keypad navigasi yang akan diisi dengan pin. Lihat Gambar 4.4.
Gambar 4.5. Jendela mengisi papan dengan pin
4.1.4.5 Jendela Permainan berakhir
Permainan Koneksi-4 berakhir jika salah satu pemain telah berhasil menghubungkan pin sebanyak 4 dan terdapat kalimat bertuliskan ”kamu menang”. Lihat Gambar 4.6.
4.2 Pengujian Aplikasi
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 spesifikasi kebutuhan sistem, skenario pengujian, hasil pengujian, dan analisis hasi pengujian, yang akan dijelaskan pada sub bab berikut.
4.2.1 Spesifikasi Kebutuhan Sistem
Berikut spesifikasi kebutuhan sistem dimana sistem dikembangkan dan diimplementasikan pada emulator J2ME dan telepon genggam :
Gambar 4.6. Jendela permainan berakhir
1. Komputer Desktop (hardware) : a. Prosesor Intel Pentium 4 2.4 GHz b. RAM 378 MB
c. Harddisk Maxtor 40 GB 7200 RPM 2. Perangkat Lunak (software) :
a. Microsoft Windows XP Professional Service Pack 3
b. Java Development Kit (JDK) 6 dan Java Runtime Environment 6 (virtual machine java)
c. Java2ME Wireless Toolkit 2.5 (emulator J2ME) 3. Emulator Telepon Genggam (Server-Client) a. Default ( wireless toolkit 2.5)
b. Ukuran layer: 176 x 208 pixel
4.2.2 Metode Black Box Testing
Pengujian dengan metode Black Box Testing dilakukan dengan menjalankan aplikasi permainan Koneksi-4 terlebih dahulu. Kemudian dilakukan pengujian dengan menekan tombol-tombol yang terdapat pada jendela-jendela dari aplikasi permainan tersebut apakah sesuai dengan yang diharapkan.
Selanjutnya pengujian dilakukan ketika permainan sedang berlangsung.
Adapun tahapan pengujian meliputi skenario pengujian, hasil pengujian, dan analisis hasil pengujian.
4.2.2.1 Skenario Pengujian
Pengujian aplikasi permainan meliputi :
1. Proses Pemilihan Status a. Pilih status.
b. Proses validasi pilih status pemain.
Aplikasi akan diuji apakah pilih status pemain berjalan dengan baik.
2. Proses Koneksitifitas jaringan
a. Pembuatan koneksi (Datagram Connection)
Aplikasi akan diuji apakah pemain dapat membuat koneksi untuk kemudian akan dihubungkan dengan pemain lain.
b. Respon koneksi (Connected)
Aplikasi akan diuji apakah pemain dapat melakukan respon koneksi dan sistem juga dapat mendeteksi respon koneksi yang telah dibuat oleh pemain lain sebelumnya.
c. Memainkan permainan
Aplikasi akan diuji apakah user dapat memainkan permainan yang telah berhasil dibuat sebelumnya.
3. Proses Permainan Yang Sedang Berjalan a. Logika permainan
Akan diuji apakah logika permainan berjalan dengan baik.
b. Sinkronisasi
4. Proses Permainan Berakhir
a. Logika kondisi akhir permainan
Akan diuji apakah logika kondisi akhir permainan berjalan dengan baik.
5. Proses Pengulangan Permainan a. Mengulang permainan
Aplikasi akan diuji apakah proses permainan dapat diulang setelah kondisi permainan berakhir.
Tabel 4.1 Hasil Pengujian Aplikasi
Skenario Kelas
Skenario Tindakan Pengujian
Hasil Yang Diharapkan
Hasil Pengujian Pemilihan
Status
Pilih Status Pilih List Exclusive, Pilih status pemain, kemudian play.
Tampilan konfirmasi keberhasilan pilih status
OK
Koneksi Datagram
Klik perintah “yes”, untuk membuat koneksi jaringan.
Tampilan konfirmasi keberhasilan
Koneksi Datagram Koneksifitas OK
Jaringan
Memainkan Permainan
Tunggu respon koneksi, lalu sudah terdeteksi koneksi, kemudian mulai bermain dengan
mengarahkan keypad navigasi ke kolom papan yang akan diisi pin.
Tampilan Papan Permainan
OK
Arahkan keypad navigasi pada kolom pada papan permainan, lalu isi dengan pin pada papan pin yang kosong .
Tampilan Papan Permainan, piece user tersusun mengisi papan permainan.
OK
Isi dengan pin lagi pada box yang terisi.
Tampilan Alert:
Kesalahan perpindahan piece.
OK Logika
Permainan
Isi dengan pin pada papan permainan, lalu koneksikan pin berjumlah 4 dengan posisi pin horisontal, vertikal, dan diagonal.
Tampilan Alert &
konfirmasi: user menang, game over.
OK
Arahkan pada kolom papan permainan dengan kondisi aktif, lalu isi lagi dengan pin pada papan pin yang kosong.
Tampilan Papan Permainan berubah, pin menjadi
bertumpuk/tersusun .
OK Permainan
Sedang Berjalan
Sinkronisasi
Isi dengan pin pada papan permainan yang terisi pin.
Tampilan Papan Permainan tidak berubah (idle)
OK
Pengujian black box berusaha menemukan kesalahan dalam kategori : (1) fungsi-fungsi yang tidak benar atau hilang.
(2) kesalahan interface.
(3) kesalahan dalam struktur data.
(4) kesalahan kinerja.
(5) inisialisasi dan kesalahan terminasi.
4.2.2.2 Analisis Hasil Pengujian
Setelah tahap pengujian maka dapat dianalisa bahwa :
1. Adanya perbedaan tampilan pada kedua alat penguji tersebut (emulator J2ME dengan telepon genggam) jika pada telepon genggam pemain tidak ada halaman memilih menggunakan service jaringan atau tidak tetapi langsung dihadapkan pada halaman awal permainan maka pada emulator pemain harus memilih terlebih dahulu apakah akan menggunakan service jaringan atau tidak baru permainan akan dimulai.
2. Selama pengujian tombol-tombol yang ada pada emulator J2ME dan telepon genggam berfungsi dengan baik
3. Pengujian pada koneksi jaringan bekerja dengan baik dengan sinkronisasi yang teratur.
4. Skenario pilih status berjalan dengan baik. Proses konfirmasi pilih status juga berjalan dengan baik.
5 Skenario koneksifitas jaringan berjalan dengan baik, proses koneksi datagram, alert konfirmasi, memainkan permainan dapat dijalankan sesuai prosedur.
6. Skenario permainan berjalan dengan baik, logika dan sinkronisasi permainan dapat dijalankan sesuai aturan permainan, validasi posisi menang (final position) juga berjalan dengan baik.