Professional Documents
Culture Documents
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1. Peraturan Catur China
Catur China merupakan permainan yang cukup terkenal dan dimainkan oleh berbagai
komunitas pencinta catur china. Berikut adalah peraturan catur china yang dibuat oleh
Club Xiang Qi (CXQ):
Peraturan Catur China CXQ terdiri dari tiga (3) bagian:
1. Peraturan dasar mengenai langkah-langkah yang diperbolehkan.
2. Peraturan lanjutan yang melarang beberapa langkah tertentu demi permainan
yang adil.
3. Peraturan undi untuk mencegah permainan yang terlalu lama.
Gambar 3.1. Papan Catur China
38
horizontal atau vertikal, maka bidak Kuda tidak dapat mengambil langkah
tersebut.
6. Meriam (Cannon) dapat bergerak satu (1) atau lebih kotak secara horizontal
atau vertikal seperti bidak Benteng. Tetapi, dalam gerakan menangkap, harus
ada tepat satu kotak yang tidak kosong di antara posisi awal dan posisi akhir.
Dalam gerakan biasa, kotak di antara posisi awal dengan posisi tujuan harus
kosong.
7. Pion (Pawn) dapat bergerak satu (1) kotak tiap giliran. J ika sebuah pion
belum melewati sungai, ia hanya dapat bergerak maju secara vertikal. Setelah
ia melewati sungai, pion juga dapat bergerak secara horizontal.
8. Menangkap: Ketika satu bidak bergerak ke kotak yang sedang dikuasai oleh
bidak lawan, ia dapat menangkap bidak lawan tersebut. Bidak yang
ditangkap tersebut akan dikeluarkan dari papan.
9. Ruang gerak Raja: Kedua raja di atas papan tidak boleh berada di satu garis
vertikal yang sama tanpa ada bidak lain di antara mereka. Sebuah gerakan
yang membuat kedua raja pada posisi tersebut merupakan gerakan yang
ilegal/dilarang.
40
10. Keamanan Raja: Pemain tidak boleh membiarkan Raja ditangkap oleh
lawan pada gerakan selanjutnya. Gerakan yang secara sengaja membuat
bidak Raja pada posisi tersebut merupakan gerakan yang ilegal/dilarang.
Kondisi permainan berakhir: Permainan selesai ketika salah satu dari
situasi ini terjadi:
Checkmate: J ika salah satu bidak dapat menangkap bidak Raja lawan dan
lawannya tersebut tidak dapat menghindarinya, maka pemilik bidak
pertamalah yang menang.
Stalemate: J ika salah satu dari pemain tidak memiliki langkah yang valid,
maka pemain tersebut kalah.
J ika salah satu pihak atau kedua pihak melanggar Aturan Lanjutan
(Advanced Rules).
3.1.2. Aturan Lanjutan Catur China CXQ
Sejumlah pola langkah tidak diperbolehkan untuk memastikan
permainan berlangsung dengan adil. Singkatnya, peraturan CXQ melarang
seorang pemain untuk mengancam bidak lawan dengan menggunakan
bidaknya secara terus-menerus. Gerakan seperti itu merupakan perpetual
checks (jika bidak Raja yang terancam) atau perpetual chases (jika bidak
yang tidak dilindungi selain bidak Raja, yang terancam).
Terminologi: untuk membuat peraturannya jelas, istilah-istilah berikut ini
digunakan:
41
1. Check: sebuah gerakan dari bidak manapun yang menyebabkan bidak Raja
pihak lawan terancam untuk ditangkap pada gerakan berikutnya.
2. Same type sacrifice/trade: sebuah bidak bergerak pada posisi dimana ia
dapat menangkap bidak lawan yang tipenya sama dan pada giliran
berikutnya, bidak lawan yang lain dapat menangkap bidak tersebut.
3. Chase: sebuah bidak bergerak pada posisi dimana ia dapat menangkap bidak
lawan, yang bukan bidak Raja, pada gerakan berikutnya. Sebuah bidak
bergerak dan menyebabkan sebuah bidak meriam menyerang bidak lawan
juga disebut chase. Ada beberapa pengecualian:
apabila bidak Raja atau bidak Pion yang mengancam posisi bidak lain
tidak disebut chase.
apabila salah satu bidak mengancam untuk menangkap sebuah bidak Pion
sebelum bidak tersebut menyeberangi sungai tidak disebut chase.
same type sacrifice/trade bukanlah sebuah chase.
4. Protected: sebuah bidak terlindungi apabila ada sebuah bidak yang dapat
menangkap bidak apapun, menangkap bidak yang dilindungi tersebut. Ada
pengecualian ketika bidak Benteng tidak pernah dianggap terlindungi ketika
bidak tersebut terancam oleh bidak meriam atau ksatria milik lawan.
Semua gerakan yang mengikuti aturan dasar diperbolehkan kecuali:
1. Perpetual Check: melakukan check secara terus-menerus pada bidak lawan
dengan menggunakan satu atau lebih bidak.
42
2. Perpetual Chase: mengejar satu bidak lawan yang tidak dilindungi secara
terus-menerus dengan menggunakan satu atau lebih bidak.
Pemain yang melanggar Aturan Lanjutan akan dianggap kalah. J ika kedua
pemain melakukan perpetual check atau perpetual chase, maka permainan
dianggap seri. J ika salah satu pemain melakukan perpetual check, sedangkan
lawannnya melakukan perpetual chases, maka pemain yang melakukan
perpetual check-lah yang kalah.
CXQ membatasi seorang pemain untuk melakukan check/chase sebanyak
enam (6) kali dengan menggunakan satu bidak, dua belas (12) kali
menggunakan dua (2) bidak, dan delapan belas (18) kali jika menggunakan
tiga (3) bidak, sebelum gerakan tersebut dianggap sebagai perpetual
check/chase.
3.2. Analisa Game Sejenis
Sebagai perbandingan dan referensi untuk pembuatan game catur china,
maka diperlukan analisa dari game-game yang sejenis, sehingga aplikasi yang
dibuat pada akhirnya dapat menjadi aplikasi game yang sama baiknya atau lebih
baik dari game-game sejenis yang sudah ada di pasaran. Berikut adalah analisa
game sejenis yang sudah ada:
43
bidak yang ada di atas papan dengan jelas. Di sebelah kiri atas
terdapat panel-panel menu, dan di sebelah bawah window juga
terdapat note mengenai keadaan akhir permainan atau disebut
checkmate.
o Melakukan move
Gambar 3.3. Tampilan ketika melakukan move Xiang Qi
Training
Pemain harus melakukan single click pada bidak yang ingin
digerakkan untuk melakukan suatu move. Pada saat mouse on pada
salah satu bidak, bidak akan berubah warna. J ika itu bidak kiri,
maka bidak akan berubah warna menjadi warna biru, dan jika bidak
kanan, maka bidak akan berubah menjadi warna merah. Setelah
45
Gambar 3.6. Halaman login Xiang Qi online full screen mode
Dalam tampilan permainan Xiang Qi online, terdapat papan catur china
beserta bidak-bidaknya di sebelah kiri, sedangkan di sebelah kanan terdapat
papan skor permainan, news, daftar penonton (spectators), dan tab-tab untuk
fungsi chat, profile dan settings. Di bagian bawah halaman permainan, terdapat
tombol untuk restart, resign, dan undo. Bagian paling bawah window terdapat
informasi mengenai channel dan room dimana user sekarang berada. Terakhir,
terdapat tombol change channels untuk pindah ke channel yang lain dan change
rooms untuk pindah ke room yang lain (Gambar 3.7 dan Gambar 3.8).
Bidak dua sisi dibedakan oleh dua warna yang berbeda, warna merah
untuk bidak yang berada di sisi bawah papan, dan warna hitam untuk bidak yang
berada di sisi atas papan. Nama user yang sedang bermain di room tersebut akan
ditampilkan pada room information panel yang terletak di bagian tengah atas.
50
Mengambil move
Lakukan klik pada bidak yang ingin dipindahkan untuk
melakukan move. Bidak yang di-klik akan memunculkan animasi
seperti berdetak. Kemudian arahkan kursor ke titik tujuan bidak
tersebut. Berbeda dengan Xiang Qi Training, Xiang Qi Online tidak
memberikan penanda possible move dengan perubahan warna pada arah
legal move. Pada Xiang Qi Online, legal move ditandai dengan
perubahan titik tujuan menjadi lingkaran-lingkaran berwarna merah
yang memiliki efek animasi seperti radar militer (Gambar 3.9).
Gambar 3.9. Halaman permainan Xiang Qi online pada saat melakukan move
52
Gambar 3.13. Tampilan keadaan skak (check) Xiang Qi online
3.2.3. Analisa Perbandingan Game Sejenis
Game Xiang Qi Training pada www.games.co.id dan Xiang Qi
Online pada www.xiangqionline.com pada dasarnya memiliki perbedaan
yang cukup jelas. Pertama adalah pada bentuk bidak yang digunakan pada
kedua game tersebut. Pada Xiang Qi Training, bentuk bidak dibuat seperti
fungsi bidak tersebut. Contoh, untuk bidak benteng, maka bidak pada Xiang
Qi Training akan berbentuk seperti benteng atau dinding benteng, sama
bentuknya dengan pion catur konvensional, sedangkan pada Xiang Qi Online,
semua bidak memiliki bentuk yang sama yaitu bulat seperti koin. Untuk
membedakan sisi, tulisan yang diberikan di atas bidak memiliki warna yang
berbeda, dan untuk menentukan fungsi, setiap bidak diberikan tulisan
namanya di atas bidak. Permainan Catur china pada umumnya menggunakan
bidak yang bulat dan memiliki tulisan di atasnya.
55
Pertanyaan pertama :
1. Seberapa lama Bapak/Ibu/Saudara/Saudari menggunakan komputer?
a. <5 jam/minggu
b. 5 - 10 jam/minggu
c. >10 jam/minggu
d. Tidak pernah
Tabel 3.2. Tabel Hasil Kuesioner Pertanyaan No. 1
DurasiPenggunaanKomputer Jumlah Persentase
<5jam/minggu 2orang 6%
510jam/minggu 0%
>10jam/minggu 2orang 7%
tidakpernah 26orang 87%
TOTAL 30orang 100%
Gambar 3.14. Grafik Hasil Kuesioner Pertanyaan No. 1
Analisis: Hasil dari kuesioner yang menunjukkan hanya 13% calon user saja
yang pernah menggunakan komputer membuktikan bahwa sebagian besar dari
calon user memiliki kemampuan menggunakan komputer yang lemah. Di sisi
6%
0%
7%
87%
<5jam/minggu
510jam/minggu
>10jam/minggu
tidakpernah
57
positifnya, statistik ini menunjukkan besarnya pangsa pasar yang dimiliki oleh
permainan catur china online di masyarakat. Hobby bermain catur china dapat
menjadi motivasi calon user untuk belajar menggunakan komputer. User-
friendly interface akan mempermudah calon user dalam belajar menggunakan
komputer secara umum, dan website catur china secara khususnya.
Pertanyaan kedua :
2. Seberapa lama Bapak/Ibu/Saudara/Saudari menggunakan teknologi internet?
a. <5 jam/minggu
b. 5 - 10 jam/minggu
c. >10 jam/minggu
d. Tidak pernah
Tabel 3.3. Tabel Hasil Kuesioner Pertanyaan No. 2
DurasiPenggunaanInternet Jumlah Persentase
<5jam/minggu 2orang 6%
510jam/minggu 0%
>10jam/minggu 2orang 7%
tidakpernah 26orang 87%
TOTAL 30orang 100%
58
Gambar 3.15. Grafik Hasil Kuesioner Pertanyaan No. 2
Analisis: Hasil dari pertanyaan nomor dua berbanding lurus dengan hasil dari
pertanyaan nomor satu. Ini menunjukkan bahwa penggunaan komputer saat
ini hampir selalu diikuti oleh penggunaan internet oleh user. Seseorang yang
menggunakan komputer hampir bisa dipastikan juga merupakan pengguna
internet. Durasi penggunaan internet pun dapat disimpulkan bervariasi,
dengan seimbangnya jumlah responden yang memilih pilihan a dan c. Hasil
ini menunjukkan potensi yang besar untuk meningkatkan durasi penggunaan
internet oleh user, yang digunakan untuk bermain catur china online.
Pertanyaan ketiga :
3. Seberapa lama Bapak/Ibu/Saudara/Saudari bermain Xiang Qi?
a. <7 jam/minggu
b. 7 - 14 jam/minggu
c. 14 - 20 jam/minggu
6%
0%
7%
87%
<5jam/minggu
510jam/minggu
>10jam/minggu
tidakpernah
59
d. >20 jam/minggu
Tabel 3.4. Tabel Hasil Kuesioner Pertanyaan No. 3
DurasiPermainanXiangQiPerMinggu Jumlah Persentase
<7jam/minggu 7orang 24%
714jam/minggu 7orang 23%
1420jam/minggu 9orang 30%
>20jam/minggu 7orang 23%
TOTAL 30orang 100%
Gambar 3.16. Grafik Hasil Kuesioner Pertanyaan No. 3
Analisa: Hasil dari pertanyaan nomor tiga menunjukkan jawaban yang cukup
seimbang dari keempat pilihan yang ada. Hasil ini menunjukkan keberagaman
tingkat adiktif permainan catur china terhadap setiap orang dan alokasi waktu
yang mereka berikan untuk bermain catur china. Berdasarkan hasil ini, dapat
diperkirakan bahwa website permainan catur china yang dikembangkan pada
akhirnya dapat memiliki tingkat akses yang beragam dari user, dan juga
hampir dapat dipastikan dikunjungi oleh user minimal satu (1) kali dalam satu
(1) minggu untuk melakukan hobi bermain catur chinanya dari mana saja
dengan koneksi internet.
24%
23%
30%
23%
<7jam/minggu
714jam/minggu
1420jam/minggu
>20jam/minggu
60
Pertanyaan keempat :
4. Sudah berapa lama Bapak/Ibu/Saudara/Saudari memainkan Xiang Qi?
a. <1 tahun
b. 1 5 tahun
c. 5 7 tahun
d. >7 tahun
Tabel 3.5. Hasil Kuesioner Pertanyaan No. 4
LamaMengenaldanMemainkanXiangQi Jumlah Persentase
<1tahun 6orang 20%
15tahun 7orang 23%
57tahun 3orang 10%
>7tahun 14orang 47%
TOTAL 30orang 100%
Gambar 3.17. Grafik Hasil Kuesioner Pertanyaan No. 4
Analisa: Hasil pertanyaan nomor empat menunjukkan hampir setengah dari
responden memiliki pengalaman bermain catur china yang sudah lebih dari
20%
23%
10%
47%
<1tahun
15tahun
57tahun
>7tahun
61
tujuh (7) tahun. Kesimpulan yang dapat diambil dari statistik ini adalah
tingkat kesetiaan pemain catur china yang sangat tinggi, serta tingkat adiktif
permainan catur china yang kuat sehingga dapat membuat pemainnya terus
bermain hingga bertahun-tahun. Ini tentu saja merupakan informasi
menunjukkan bahwa website catur china dapat memiliki user yang stabil dan
loyal, sehingga penurunan jumlah member website akan relatif jarang terjadi.
Pertanyaan kelima :
5. Apakah Bapak/Ibu/Saudara/Saudari sering memainkan Xiang Qi di komputer
(offline atau online)?
a. Sangat sering (>14 game/minggu)
b. Lama (<14 game/minggu)
c. Cukup (<8 game/minggu)
d. Kurang (<3 game/minggu)
e. Tidak pernah
Tabel 3.6. Tabel Hasil Kuesioner Pertanyaan No. 5
DurasiMemainkanXiangQidiKomputer Jumlah Persentase
sangatsering(>14game/minggu) 3orang 10%
sering(<14game/minggu) 0%
cukup(<8game/minggu) 0%
kurang(<3game/minggu) 1orang 3%
tidakpernah 26orang 87%
TOTAL 30orang 100%
62
Gambar 3.18. Grafik Hasil Kuesioner Pertanyaan No. 5
Analisis: Hasil dari pertanyaan nomor lima menunjukkan hampir semua
pemain catur china tidak pernah memainkan permainan catur china melalui
komputer. Kesimpulan yang dapat diambil adalah permainan catur china yang
sudah ada saat ini belum dapat menarik perhatian para pemain catur china
untuk memainkannya dengan media komputer. Kurangnya kemampuan
pemain catur china untuk mengoperasikan komputer juga menjadi salah satu
penyebab rendahnya durasi permainan catur china melalui media komputer.
Pertanyaan keenam :
6. Apa yang Bapak/Ibu/Saudara/Saudari harapkan dari permainan Xiang Qi
berbasis web?
Pertanyaan nomor enam bersifat optional, yang berarti responden dapat
mengosongkan kolom jawaban pertanyaan nomor enam. Dari 30 responden
yang mengisi kuesioner, hanya ada satu responden yang mengisi kolom
10%
0%
0%
3%
87%
sangatsering(>14
game/minggu)
Sering(<14
game/minggu
Cukup(<8
game/minggu)
Kurang(<3
game/minggu)
Tidakpernah
63
jawaban nomor enam. Harapan dari responden itu adalah kecepatan akses
yang baik, kemudahan untuk sign-up, murah (volume-based), memiliki history
langkah permainan, dapat memilih bahasa tertentu, dapat meng-upload foto,
dan ada fasilitas set-up.
Setelah lima (5) pertanyaan pilihan ganda dan satu (1) pertanyaan
optional di atas, responden diminta untuk mengisi tabel prioritas elemen
permainan catur china. Berikut adalah tabelnya dan hasil statistik yang
didapatkan dari 30 responden.
Tabel 3.7. Tabel Prioritas Elemen Permainan Catur China
Unsur/Elemen Aplikasi
Permainan Catur China
Skala prioritas
(5 =paling penting, 1 =tidak penting)
Design Interface
Komunitas
Accessibility
Sound Effect
Visual Effect
Penghitungan statistik untuk tabel prioritas dilakukan dengan cara
mengkalikan jumlah orang yang memilih elemen tersebut dengan bobot yang
diberikan (dari satu sampai lima). Berikut adalah statistik yang didapatkan
dari penghitungan hasil kuesioner.
64
sound effect menempati prioritas yang keempat dan kelima, yang merupakan
dua urutan terakhir dalam prioritas elemen aplikasi permainan catur china. Ini
menunjukkan ketiadaan unsur sound effect dan visual effect pada aplikasi
permainan catur china tidak akan mempengaruhi keinginan responden untuk
menggunakan aplikasi permainan.
3.4. Rancangan Aplikasi
Rancangan aplikasi dibuat berdasarkan analisa terhadap kebutuhan user
yang diketahui melalui kuesioner dan analisa terhadap aplikasi sejenis yang sudah
beredar di masyarakat. Rancangan aplikasi terbagi menjadi tiga bagian, yaitu
rancangan layar, rancangan database, dan aliran aplikasi (application flow).
Rancangan layar merupakan rancangan awal dari desain antar muka (interface)
yang akan digunakan pada aplikasi. Rancangan layar akan meliputi semua
halaman yang akan ada pada aplikasi, baik antar muka sebelum user login, dan
setelah user login. Rancangan database merupakan rancangan awal database yang
meliputi primary key tiap tabel database dan relasinya secara logical, physical,
dan conceptual. Aliran aplikasi (application flow) adalah rancangan awal peta
aplikasi. Rancangan ini akan menggambarkan dengan jelas hubungan antara tiap
halaman dan fungsi di dalam aplikasi.
66
3.4.1.2. Setelah Login
1. Halaman Home
Gambar 3.22. Rancangan Layar - Halaman Home
Halaman Home adalah halaman pertama yang akan muncul setelah user
melakukan proses login (Gambar 3.22). Halaman ini memiliki header yang memiliki
gambar logo dan nama website. Tab-tab pilihan menuju halaman home, play, profile,
69
dan untuk logout berada di sebelah kanan bawah header. Kata sambutan welcome dan
username akan muncul di sebelah kanan tab logout.
Bagian tengah atas berisi profil singkat dari Top Champion dan Player of the
day, yang terdiri dari foto user, username, dan skor akumulatif tertinggi yang dimiliki
Top Champion dan Player of the day. Tabel high scorer di bagian tengah bawah akan
menampilkan sepuluh (10) user dengan high score tertinggi sejak web mulai digunakan.
Tabel tersebut menampilkan username dan skor akumulatif user tersebut. Bagian kiri
atas terdapat informasi umum dari user seperti username dan foto user. Fasilitas
message dan tombol quickplay diletakkan tepat di bawah bagian informasi umum user.
2. Halaman Server
Gambar 3.23. Rancangan Layar - Halaman Server
70
Halaman server akan muncul ketika user melakukan klik pada tab play. Halaman
server ini ditujukan untuk menampilkan pilihan server yang tersedia kepada user. User
diminta untuk memilih server yang ingin dikunjungi dari daftar yang ada. Logo dan
nama aplikasi pada halaman ini terletak pada bagian header, seperti yang tampak pada
Gambar 3.23. Tab-tab home, profile, play dan logout terletak di bagian kanan bawah
header. Di bagian tengah akan ada daftar server yang tersedia. Copyright akan menjadi
footer pada halaman server ini.
3. Halaman Lobby
Gambar 3.24. Rancangan Layar - Halaman Lobby
71
Halaman lobby akan muncul apabila user telah memilih server di halaman server
(Gambar 3.24). Header di halaman ini serupa dengan header yang ada di halaman lain,
tetap memiliki dua bagian yaitu bagian satu adalah gambar logo web dan bagian kedua
adalah nama website. Bagian ketiga dari halaman ini adalah Room List yang merupakan
daftar ruang permainan yang available dan yang sudah penuh. Bagian keempat adalah
chat room yang merupakan tempat user untuk melakukan chat dengan user lain di
server yang sama. Bagian kelima adalah server information yang memberikan informasi
mengenai server yang sedang digunakan. Bagian keenam adalah online player list, yang
merupakan daftar user yang sedang online di server yang sama. Bagian ketujuh adalah
bagian general info player, yang berisi informasi umum mengenai user, antara lain
username, foto user, high score user, dan jumlah game yang sudah dimainkan. Bagian
kedelapan adalah online friend list yang merupakan bagian yang berisi daftar dari user
lain yang telah berstatus friend dengan user utama. Bagian kesembilan adalah
commercial space, dimana iklan-iklan yang bersifat komersial dapat ditampilkan.
Bagian iklan ditampilkan di halaman ini karena user akan banyak melakukan aktivitas di
halaman lobby ini, seperti chatting, memilih server, dan edit profile.
72
4. Halaman Room
Gambar 3.25. Rancangan Layar Halaman Room
Halaman Room didominasi oleh papan permainan catur china yang berada di
sebelah kiri rancangan tampilan. Bagian atas merupakan tempat bidak-bidak berwarna
hitam, sedangkan bagian bawah adalah tempat bidak-bidak berwarna merah. Di bagian
kanan rancangan tampilan seperti pada Gambar 3.25, terdapat info umum seperti
username dan foto dari pemain di ruangan tersebut, bagian kiri untuk pemain yang
memainkan bidak merah, dan sebelah kanan untuk pemain yang memainkan bidak
hitam. Informasi mengenai waktu yang sudah berjalan dan giliran permainan
73
ditampilkan tepat di bawah informasi pemain. Bagian berikutnya adalah kotak chat yang
terletak di bawah informasi waktu dan giliran. Pemain atau penonton dapat keluar dari
ruangan dengan melakukan klik pada tombol exit yang diletakkan di bawah kotak chat.
Commercial space disediakan di sudut kanan bawah pada halaman room ini.
5. Halaman Profile
Gambar 3.26. Rancangan Layar Halaman Profile
74
Halaman profile akan muncul ketika user melakukan klik pada tab Profile di
sudut kanan atas setiap halaman. Header yang dimiliki halaman profile sama dengan
header di halaman-halaman yang sebelumnya. Foto user ditampilkan di sebelah kiri
atas, dan informasi umum serta catatan permainan user ditampilkan tepat di sebelah
kanan foto user. Daftar teman yang dimiliki user berada di bawah foto dan bagian
informasi umum user. Footer berada di baris paling bawah di halaman profile, sama
seperti footer yang ada di halaman lain.
3.4.2. Rancangan Database
Perancangan database pada aplikasi permainan catur china berbasis web ini
dibagi menjadi tiga (3) tahap, yaitu:
1. Perancangan basis data konseptual
2. Perancangan basis data logikal
3. Perancangan basis data fisikal
3.4.2.1. Perancangan Basis Data Konseptual
Perancangan basis data konseptual merupakan suatu proses perancangan
model informasi yang akan digunakan aplikasi permainan catur china berbasis
web ini. Pertama-tama yang dilakukan adalah menentukan kelas yang ada di
dalam database. Berdasarkan hasil analisa awal terhadap kebutuhan web, maka
terdapat empat (4) macam kelas yang diperlukan di dalam database, antara lain:
75
1. msUser
Kelas ini merupakan kelas yang menyimpan informasi lengkap mengenai
user. Kelas ini berisi sembilan (9) entiti yang merupakan informasi mengenai
user, diantaranya adalah:
a. serverName
Entiti ini digunakan untuk menyimpan informasi mengenai server yang
ditempati oleh user selama permainan. Entiti ini dapat berubah nilainya
apabila user melakukan perpindahan server tempat user bermain.
b. password
Entiti ini digunakan untuk menyimpan informasi mengenai kata sandi
yang digunakan user untuk mengkonfirmasi proses login. Password harus
berisi angka [0-9] dan/atau huruf [A-Z, a-z] dan tidak boleh berisi spasi [
] dan tidak boleh dikosongkan.
c. fullName
Entiti ini digunakan untuk menyimpan informasi mengenai nama lengkap
user.
d. email
Entiti ini digunakan untuk menyimpan informasi mengenai alamat e-mail
yang dimiliki user. Alamat e-mail user harus mengandung karakter [@]
untuk menjadikannya alamat e-mail yang valid.
e. gender
Entiti ini digunakan untuk menyimpan informasi mengenai jenis kelamin
user. Entiti ini dapat diisi oleh dua jenis nilai, yaitu male dan
female.
76
f. server
Entiti ini digunakan untuk menyimpan informasi mengenai server yang
ditempati oleh user.
g. room
Entiti ini digunakan untuk menyimpan informasi mengenai ruangan
permainan catur china yang sedang ditempati oleh user, baik sebagai
viewer ataupun player.
h. score
Entiti ini digunakan untuk menyimpan informasi mengenai skor yang
berhasil didapatkan user pada langkah terakhirnya di permainan catur
china terakhir yang user mainkan.
i. dailyScore
Entiti ini digunakan untuk menyimpan informasi mengenai jumlah skor
yang telah didapatkan user dari semua permainannya dalam rentang
waktu satu (1) hari. Entiti ini akan berubah nilainya apabila user bermain
pada hari setelahnya. Nilainya akan digantikan oleh skor yang didapatkan
user pada hari yang baru itu.
2. msRoom
Kelas ini merupakan kelas yang digunakan untuk menyimpan informasi
mengenai ruangan permainan catur china. Semua informasi yang digunakan
di dalam permainan disimpan pada kelas database ini. Entiti yang dimiliki
oleh kelas ini ada lima (5) entiti, antara lain:
77
a. room
Entiti ini digunakan untuk menyimpan informasi mengenai kode ruangan
permainan catur china. Setiap ruangan permainan memiliki kode yang
berbeda-beda (unik).
b. server
Entiti ini digunakan untuk menyimpan informasi mengenai server tempat
ruangan catur china yang sedang ditempati user.
c. player1
Entiti ini digunakan untuk menyimpan informasi mengenai user yang
menjadi player 1 di ruangan permainan.
d. player2
Entiti ini digunakan untuk menyimpan informasi mengenai user yang
menjadi player 2 di ruangan permainan.
e. viewer
Entiti ini digunakan untuk menyimpan informasi mengenai user yang
menjadi viewer (penonton) di ruangan permainan.
3. msServer
Kelas ini merupakan kelas yang digunakan untuk menyimpan informasi
mengenai server. Kelas msServer memiliki dua (2) entiti, yaitu:
a. server
Entiti ini digunakan untuk menyimpan informasi mengenai lokasi server
tersebut.
78
b. userOnline
Entiti ini digunakan untuk menyimpan informasi mengenai jumlah user
yang online di dalam setiap server yang aktif.
4. msHistory
Kelas ini merupakan kelas yang digunakan untuk menyimpan informasi
mengenai histori permainan. Kelas ini akan sangat berguna terutama untuk
kejadian-kejadian yang tidak diinginkan seperti koneksi internet yang putus
pada saat permainan sedang berjalan. Kelas ini memiliki 7 (tujuh) entiti di
dalamnya, antara lain:
a. room
Entiti ini digunakan untuk menyimpan informasi mengenai ruangan yang
sebelumnya digunakan oleh user.
b. server
Entiti ini digunakan untuk menyimpan informasi mengenai server yang
sebelumnya digunakan oleh user.
c. player
Entiti ini digunakan untuk menyimpan informasi mengenai username
player yang bermain di dalam ruangan permainan.
d. movingPawn
Entiti ini digunakan untuk menyimpan informasi mengenai bidak catur
china yang hendak digerakkan oleh player.
79
e. pawnFrom
Entiti ini digunakan untuk menyimpan informasi mengenai koordinat
awal bidak catur china yang hendak digerakkan oleh player.
f. destination
Entiti ini digunakan untuk menyimpan informasi mengenai koordinat
tujuan bidak catur china yang hendak digerakkan oleh player.
g. grid
Entiti ini digunakan untuk menyimpan informasi mengenai koordinat
setiap bidak catur china yang ada di papan permainan ruangan tersebut.
Hubungan relasional antar kelas ditunjukkan oleh diagram konseptual berikut ini:
Gambar 3.27. Diagram Konseptual Hubungan Relasional antar Entiti
80
digit angka yang mampu ditampung oleh atribut tersebut. Status null
menunjukkan apakah atribut tersebut dapat diberikan nilai null atau tidak.
Berikut adalah kamus data atribut dari entiti yang telah didefinisikan:
3.4.2.2.1. Kamus Data Atribut
Tabel 3.9. Tabel Kamus Data Atribut
Nama Entiti Atribut Deskripsi
Tipe Data
dan Length Nulls
trGame gameID
atribut yang digunakan
untuk membuat setiap
transaksi unik int(255) No
roomID
kode ruangan yang
digunakan untuk permainan int(3) No
serverID
kode server yang digunakan
untuk permainan varchar(15) No
userID kode unik identitas user bigint No
move
history langkah user dalam
permainan int(3) No
grid koordinat bidak catur cina varchar(255) No
movingPawn
bidak catur cina yang
sedang digerakkan varchar(15) No
destination
koordinat posisi akhir bidak
yang dituju varchar(15) No
score
skor yang didapat player
dalam langkah terakhir int(10) No
auditor
user yang mengeksekusi
data varchar(20) No
trType
informasi mengenai tipe
data yang dieksekusi (insert,
update, delete) varchar(1) No
lastModified
waktu terakhir data
dieksekusi varchar(20) No
trMemberActivity memberActivityID
kode unik untuk setiap
transaksi int(255) No
serverName
nama server yang digunakan
user varchar(20) No
83
roomName
nama ruangan yang
digunakan user varchar(20) No
serverID
kode server yang digunakan
untuk permainan varchar(20) Yes
status
keadaan user pada saat itu
(offline atau online) varchar(3) No
room
kode ruangan yang
digunakan untuk permainan varchar(3) Yes
loginTime
waktu terakhir user
melakukan aktifitas login varchar(20) No
logoutTime
waktu terakhir user
melakukan aktifitas logout varchar(20) No
auditor
user yang mengeksekusi
data varchar(20) No
trType
informasi mengenai tipe
data yang dieksekusi (insert,
update, delete) varchar(1) No
lastModified
waktu terakhir data
dieksekusi varchar(20) No
trFriend friendID
kode unik user yang ada di
dalam daftar teman varchar(255) No
userID1
kode user yang
mengirimkan friend request varchar(20) No
userID2
kode user yang merespon
friend request varchar(20) No
status
keadaan friend request dari
teman (request atau
approve) varchar(20) No
auditor
user yang mengeksekusi
data varchar(20) No
trType
informasi mengenai tipe
data yang dieksekusi (insert,
update, delete) varchar(1) No
lastModified
waktu terakhir data
dieksekusi varchar(20) No
trMessage messageID
kode unik yang dimiliki
setiap pesan pribadi varchar(255) No
userID1
kode user yang
mengirimkan pesan pribadi varchar(20) No
userID2
kode user yang menjadi
penerima pesan pribadi varchar(20) No
messageText
isi pesan pribadi yang
dikirimkan varchar(500) No
84
messageTime
waktu pesan pribadi
dikirimkan oleh user varchar(20) No
auditor
user yang mengeksekusi
data varchar(20) No
trType
informasi mengenai tipe
data yang dieksekusi (insert,
update, delete) varchar(1) No
lastModified
waktu terakhir data
dieksekusi varchar(20) No
trChat chatID kode unik untuk setiap chat int(255) No
userID
kode user yang terlibat di
dalam chat bigint No
type
jenis chat (server chat atau
room chat varchar(10) No
text
isi pesan yang diketik di
dalam window chat varchar(50) No
time
waktu pesan dikirimkan
lewat window chat varchar(20) No
auditor
user yang mengeksekusi
data varchar(20) No
trType
informasi mengenai tipe
data yang dieksekusi (insert,
update, delete) varchar(1) No
lastModified
waktu terakhir data
dieksekusi varchar(20) No
trRoom roomID kode unik setiap ruangan int(255) No
roomName nama ruangan permainan int(3) No
serverID
kode server yang digunakan
untuk permainan int(20) No
userID1
kode unik identitas user
pemain pertama varchar(20) No
userID2
kode unik identitas user
pemain kedua varchar(20) No
viewer
kode user yang menjadi
penonton di ruangan
permainan varchar(255) No
status
keadaan ruangan pada saat
itu (waiting dan playing) varchar(10) No
auditor
user yang mengeksekusi
data varchar(20) No
trType
informasi mengenai tipe
data yang dieksekusi (insert,
update, delete) varchar(1) No
85
lastModified
waktu terakhir data
dieksekusi varchar(20) No
msServer serverID
kode server yang dapat
digunakan varchar(20) No
auditor
user yang mengeksekusi
data varchar(20) No
msType
informasi mengenai tipe
data yang dieksekusi (insert,
update, delete) varchar(1) No
lastModified
waktu terakhir data
dieksekusi varchar(20) No
msUser userID
kode unik yang digunakan
untuk membedakan setiap
user bigint No
password
kode rahasia yang
digunakan user untuk login varchar(20) No
fullName nama lengkap user varchar(30) No
email alamat email user varchar(30) No
birthDate
tanggal lahir user (dd-mm-
yyyy) varchar(20) No
gender jenis kelamin user varchar(20) No
location lokasi user varchar(20) Yes
profilePicture gambar profil user varchar(50) Yes
auditor
user yang mengeksekusi
data varchar(20) No
msType
informasi mengenai tipe
data yang dieksekusi (insert,
update, delete) varchar(1) No
lastModified
waktu terakhir data
dieksekusi varchar(20) No
3.4.2.2.2. Mengidentifikasi candidate key dan primary key
Langkah berikutnya adalah mengidentifikasi candidate key
dan primary key dari tiap entiti. Candidate key adalah atribut yang
berpotensi untuk menjadi primary key, sedangkan primary key adalah
atribut unik yang digunakan sebagai pembeda tiap proses di entiti
tersebut. Identifikasi dilakukan terhadap kamus data atribut yang
terdapat pada bagian 3.4.2.2.1.
86
Tabel 3.10. Tabel Candidate Key dan Primary Key
Nama Entiti Candidate Key Primary Key
msUser userID, email, profilePicture userID
trMemberActivity memberActivityID memberLogID
msServer serverID serverID
trRoom roomID roomID
trGame gameID, roomID gameID
trFriend friendID friendID
trMessage messageID messageID
trChat chatID chatID
historyLog historyID historyID
Beberapa entiti yang hanya memiliki satu candidate key
sehingga candidate key tersebut secara otomatis menjadi primary key
entiti tersebut. Entiti yang hanya memiliki satu candidate key antara lain
trMemberActivity, msServer, trRoom, trFriend, trMessage, trChat dan
historyLog. Terdapat dua (2) entiti lain yang memiliki lebih dari satu
candidate key. Entiti tersebut adalah msUser dan trGame. Pemilihan
primary key berdasarkan dari dua kriteria, yaitu atribut harus unik dan
tidak null.
87
atribut yang berasal dari dalam website dan hanya terpengaruh oleh
faktor-faktor internal website. Ini membuat atribut userID akan
lebih mudah untuk diatur dan dijamin ketersediaannya, dan
menjadikannya atribut yang paling cocok untuk menjadi primary
key dari entiti msUser.
2. Entiti: trGame
Candidate Key: gameID, roomID
Analisa:
Atribut roomID merupakan atribut yang menjadi primary key di
dalam entiti trRoom, sehingga menjadikan atribut ini berperan
sebagai foreign key di dalam entiti trGame. Atribut gameID juga
merupakan atribut yang unik di dalam entiti trGame, karena
fungsinya yang membedakan setiap game yang ada. Atribut
gameID belum primary key di entiti yang lain, sehingga atribut ini
dapat dijadikan primary key entiti trGame.
3.4.2.2.3. Menentukan hubungan relasional antar entiti
Hubungan relasional antar entiti penting untuk diidentifikasi
sebelum kita membuat diagram hubungan database logikal. J enis-jenis
hubungan relasional antar entiti ada empat (4), yaitu one-to-one (1..1),
one-to-many (1..*), zero-to-many (0..*), dan many-to-many (*..*).
Berikut adalah tabel hubungan relasional antar entiti yang terjadi di
dalam database:
89
Gambar 3.28. Diagram Database - Logikal
91