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 37
38
3.1.1. Peraturan Dasar Catur China CXQ Langkah-langkah yang diperbolehkan dalam catur china: 1. Raja (King) bergerak hanya satu (1) kotak tiap giliran, secara horizontal atau vertikal. Bidak Raja harus selalu berada di “istana”, yang ditandai dengan tanda silang (X).
2. Penjaga (Guard) hanya bergerak satu (1) kotak tiap giliran secara diagonal. Bidak Penjaga juga harus selalu berada di “istana”, seperti bidak Raja.
3. Mentri (M inister) dapat bergerak dua kotak tiap giliran secara diagonal (contoh, 2 kotak ke kiri/kanan, dan dua kotak ke atas/bawah dalam satu gerakan). M ereka harus berada di sisi sungai tempat mereka berada. Jika ada bidak yang berada di tengah posisi awal dan posisi tujuan bidak M entri, maka bidak M entri tidak dapat mengambil langkah tersebut.
4. Benteng (Rook) dapat bergerak satu (1) atau lebih langkah secara horizontal atau vertikal, selama diantara posisi awal dan tujuan tidak ada bidak yang menghalangi.
5. Ksatria (Knight) dapat bergerak dua (2) kotak secara horizontal dan satu (1) kotak secara vertikal (atau dua (2) kotak vertikal dan satu (1) kotak horizontal). Jika ada bidak lain yang berada di sebelah bidak Kuda secara
39
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. Jika 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: Jika salah satu bidak dapat menangkap bidak Raja lawan dan lawannya tersebut tidak dapat menghindarinya, maka pemilik bidak pertamalah yang menang.
•
Stalemate: Jika salah satu dari pemain tidak memiliki langkah yang valid, maka pemain tersebut kalah.
•
Jika 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. Jika kedua pemain melakukan perpetual check atau perpetual chase, maka permainan dianggap seri. Jika 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 analis a game sejenis yang sudah ada:
43
3.2.1. Xiang Qi Training (www.games.co.id) •
Visual/Interface o Tampilan Awal
Gambar 3.2. Tampilan Awal – Xiang Qi Training
Kesan pertama yang diciptakan game ini adalah klasik dan sederhana. Kesan klasik dimunculkan oleh desain bidak-bidaknya yang tampak seperti bidak batu dan juga papannya yang nampak seperti papan batu, seperti yang tampak pada Gambar 3.2. Kesan sederhana dimunculkan oleh warna yang dipilih pembuat game ini tidak banyak. Hanya warna abu-abu untuk backgroundnya, warna light black untuk bidak di sisi kiri, warna coklat kayu untuk bidak di sisi kanan, dan warna stone white untuk papan caturnya. Posisi papan juga sengaja ditaruh miring agar pemain dapat melihat semua
44
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 M elakukan 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. Jika itu bidak kiri, maka bidak akan berubah warna menjadi warna biru, dan jika bidak kanan, maka bidak akan berubah menjadi warna merah. Setelah
45
click, akan muncul possible move yang dapat dilakukan bidak tersebut, tergantung pada posisi awal bidak tersebut. Possible move akan ditunjukkan dengan perubahan warna pada kotak papan yang dapat dilewati bidak. Klik pada satu kotak untuk menentukan kotak tujuan dan maka akan ada efek fade-in dan fade-out pada bidak tersebut, dari kotak awal ke kotak tujuan.
o M elakukan penyerangan
Gambar 3.4. Tampilan setelah menyerang bidak lawan – Xiang Qi Training
Efek fade-in dan fade-out juga digunakan pada saat pemain melakukan gerakan menyerang. Bidak yang menyerang akan fadeout dari posisi awalnya, kemudian bidak yang diserang akan fade-
46
out dari posisinya dan digantikan oleh bidak yang menyerang, dengan efek fade-in.
•
Fungsionalitas Sisi
fungsionalitas
permainan
catur
china
di
website
www.games.co.id tergolong buruk karena hampir semua panel menu yang ada di permainan ini tidak dapat digunakan atau diakses. Hanya panel reset board dan pengatur ukuran yang berfungsi pada game ini. Panel-panel lain yang terdiri dari multiplayer version, news update, about, instructions, rules, dan feedback tidak dapat berfungsi. Panelpanel tersebut merupakan hyperlink menuju halaman web yang lain. Fungsi-fungsi dasar dalam permainan dapat berfungsi dengan baik. Fungsi-fungsi tersebut antara lain fungsi untuk menggerakkan bidak, melihat possible move, dan menyerang bidak lawan.
•
Sound Dari pemilihan panel menu, event pada bidak sampai akhir permainan, tidak ada sound effect yang diberikan pada permainan ini. Ini mengakibatkan permainan menjadi lebih membosankan.
•
Community & Multiplayer function Permainan ini merupakan bagian dari suatu portal game yang memiliki ratusan mini-games yang lain dan memiliki komunitas web.
47
Untuk memainkan permainan ini tidak harus menjadi anggota (member) dari website ini, tetapi jika ingin berkomentar, user harus menjadi member dari komunitas website ini. Pada permainan ini juga, dalam satu game hanya bisa melibatkan satu (1) pemain, yang dapat menggerakkan kedua sisi bidak secara bergantian. Fungsi multiplayer sebenarnya tersedia pada game ini, tetapi sangat disayangkan fungsi tersebut tidak dapat dijalankan. Selain itu juga tidak ada tanda seperti username untuk menunjukkan identitas dari pemain yang sedang bermain di board tersebut. Seluruh permainan bersifat independent dan tidak dapat disaksikan oleh orang lain melalui koneksi jaringan internet.
• Addictive Elements Addictive Elements adalah elemen-elemen pada game yang dapat membuat pemain game tersebut ingin terus memainkan game. Elemen tersebut dapat berupa leveling, pengumpulan item, tabel high score, dan mini-games. Xiang Qi Training tidak memiliki elemen-elemen yang dapat membuat pemainnya akan memainkannya secara terus-menerus. Permainan yang ditampilkan hanya permainan catur china biasa tanpa added value yang dapat meningkatkan daya tarik permainan, seperti tabel high score.
48
3.2.2. Xiang Qi Online (http://www.xiangqionline.com/cotuong/) Web ini dibuat oleh VietSon, sebuah perusahaan Vietnam yang khusus membuat website permainan kartu dan catur china. Pada saat membuka web ini pertama kali, user akan dapat melihat daftar high scores, new levels dan completed quests. Kemudian di sebelah kiri akan ada pilihan PLAY. Ada dua jenis pilihan PLAY disini: PLAY biasa dan PLAY Full Screen. Jika user melakukan klik pada pilihan PLAY biasa, maka halaman web akan berpindah ke http://www.xiangqionline.com/vscc/play.cfm, seperti yang tampak pada Gambar 3.5, sedangkan jika melakukan klik pada PLAY
Full Screen, maka halaman web akan men-generate suatu page baru, seperti pada Gambar 3.6.
•
Tampilan Awal
Gambar 3.5. Halaman login Xiang Qi online – window mode
49
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
User tidak harus memiliki account membership di VietSon untuk bisa bermain. User dapat meng-klik tombol guest pada halaman login untuk memainkan permainan. Tetapi dengan menggunakan fasilitas guest, score yang dicetak user tidak akan tercatat di papan high scores.
Gambar 3.7. Halaman permainan Xiang Qi online – window mode
Gambar 3.8. Halaman permainan Xiang Qi online – full screen mode
51
•
M engambil 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
Lakukan klik sekali lagi pada titik tujuan untuk mengkonfirmasi gerakan. Setelah itu bidak akan bergeser (sliding) ke titik tujuan dan mengeluarkan efek animasi seperti radar juga (Gambar 3.10 dan 3.11).
Gambar 3.10. Halaman permainan Xiang Qi online setelah melakukan move (1)
Gambar 3.11. Halaman permainan Xiang Qi online setelah melakukan move (2)
53
•
Gerakan menyerang bidak lawan Klik pada bidak yang menjadi penyerang, lalu klik bidak lawan yang ingin diserang. Bidak penyerang akan bergeser menuju posisi bidak yang diserang dan kemudian akan ada efek animasi bidak yang hancur seperti ledakan seperti yang tampak pada Gambar 3.12, yang disertai dengan efek suara ledakan.
Gambar 3.12. Tampilan bidak menyerang – Xiang Qi online
•
Keadaan skak adalah ketika bidak Raja pemain berada dalam jangkauan serang bidak lawan. Pada keadaan ini, bidak Raja akan mengeluarkan warna merah jingga di sekitarnya, sedangkan bidak lawan yang dapat melakukan skak mate akan mengeluarkan lingkaran merah jingga di sekitarnya, seperti yang tampak pada Gambar 3.13.
54
Gambar 3.13. Tampilan keadaan skak (check) – Xiang Qi online
3.2.3. Analisa Perbandingan Game S ejenis 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
Tabel 3.1. Tabel Perbandingan Xiang Qi Training dengan Xiang Qi Online
Interface
Xiang Qi Training 3D, sederhana, skala dapat diperbesar atau diperkecil
Fungsionalitas hanya fungsi single player yang dapat dijalankan Sound tidak ada sound Community & Multiplayer function Addictive Elements
Accessibility
terdapat menu multiplayer tetapi tidak dapat dijalankan tidak terdapat addictive element relatif cepat, namun harus melakukan search dengan keyword “chinese chess” dari website sumber (www.games.co.id), dan kemudian melakukan klik pada game chinese chess yang muncul dalam pilihan
Xiang Qi Online 2D, cukup rumit karena banyak fungsi fungsi play, spectator, channel, invite challenger, dan lainnya dapat dijalankan dengan baik terdapat sound untuk tiap move, gerakan menyerang, dan ketika diserang terdapat fungsi invite yang memungkinkan user untuk menantang user lain dalam satu game ada tabel high score yang membuat user berusaha untuk mencatatkan username-nya disana
relatif cepat dan terdapat link langsung dari webpage sumber. Hanya memerlukan dua (2) klik dari website sumber
3.3. Analisa Kuesioner Dalam merancang aplikasi, informasi dari calon user sangat penting agar aplikasi yang dibuat pada akhirnya dapat memenuhi kebutuhan user sehingga dapat digunakan oleh banyak user. Kuesioner dibagikan kepada 30 responden yang merupakan pemain catur china aktif. Berikut ini adalah isi kuesioner beserta hasil analisis kuesioner yang dikelompokkan berdasarkan pertanyaan yang ada.
56
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 Durasi Penggunaan Komputer < 5 jam/minggu 5 ‐ 10 jam/minggu > 10 jam/minggu tidak pernah TOTAL
Jumlah 2 orang ‐ 2 orang 26 orang 30 orang
Persentase 6% 0% 7% 87% 100%
0% 6% 7% < 5 jam/minggu 5‐10 jam/minggu > 10 jam/minggu tidak pernah 87%
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
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. Userfriendly 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 Durasi Penggunaan Internet < 5 jam/minggu 5 ‐ 10 jam/minggu > 10 jam/minggu tidak pernah
Jumlah 2 orang ‐ 2 orang 26 orang
TOTAL
30 orang
Persentase 6% 0% 7% 87% 100%
58 0% 6% 7% < 5 jam/minggu 5‐10 jam/minggu > 10 jam/minggu tidak pernah 87%
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
59
d. > 20 jam/minggu
Tabel 3.4. Tabel Hasil Kuesioner Pertanyaan No. 3 Durasi Permainan Xiang Qi Per Minggu < 7 jam/minggu 7 ‐ 14 jam/minggu 14 ‐ 20 jam/minggu > 20 jam/minggu TOTAL
23%
24%
Jumlah 7 orang 7 orang 9 orang 7 orang 30 orang
Persentase 24% 23% 30% 23% 100%
< 7 jam/minggu 7‐14 jam/minggu 14‐20 jam/minggu
30%
23%
> 20 jam/minggu
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.
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 Lama Mengenal dan Memainkan Xiang Qi < 1 tahun 1 ‐ 5 tahun 5 ‐ 7 tahun > 7 tahun
Jumlah 6 orang 7 orang 3 orang 14 orang
Persentase 20% 23% 10% 47%
TOTAL
30 orang
100%
20% < 1 tahun 47%
1‐5 tahun 5‐7 tahun 23%
> 7 tahun
10%
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
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 Durasi Memainkan Xiang Qi di Komputer sangat sering ( > 14 game/minggu) sering ( < 14 game/minggu) cukup ( < 8 game/minggu) kurang ( < 3 game/minggu) tidak pernah
Jumlah 3 orang ‐ ‐ 1 orang 26 orang
TOTAL
30 orang
Persentase 10% 0% 0% 3% 87% 100%
62
10%
0% 0% 3%
sangat sering (> 14 game/minggu) Sering (< 14 game/minggu Cukup (< 8 game/minggu) Kurang (< 3 game/minggu)
87%
Tidak pernah
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
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
Tingkat prioritas unsur/elemen aplikasi permainan catur china Prioritas (Bobot) Unsur/Elemen 1 2 3 4 5 Total Design Interface 1 0 5 18 6 118 Komunitas 0 1 0 9 20 138 Accessibility 0 3 22 2 3 95 Sound effect 18 10 1 0 1 46 Visual effect 11 16 2 1 0 53 Tabel 3.8. Tabel Penghitungan Bobot Prioritas Elemen Permainan Catur China
160 140 120 100 80 138 60
118 95
40 46
20
53
0 Design Interface
Komunitas
Accessibility
Sound effect Visual effect
Series1
Gambar 3.19. Grafik Hasil Penghitungan Tabel Prioritas Elemen Game Grafik di atas menunjukkan bahwa responden merasa elemen komunitas merupakan elemen yang paling penting di dalam suatu aplikasi permainan catur china. Elemen penting yang kedua adalah design interface, kemudian yang ketiga adalah elemen accessibility. Elemen visual effect dan
65
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. Rancangan Layar 3.4.1.1. Sebelum Login 1. Halaman Index
Gambar 3.20. Rancangan Layar - Halaman Index
Halaman index adalah halaman pertama yang akan muncul ketika user mengakses web (Gambar 3.20). Halaman ini dibuat sederhana, dengan hanya memiliki header yang berisi gambar logo web dan nama website. Bagian tengah akan diisi dengan gambar-gambar yang dapat diisi berita, pengumuman atau promosi, yang ditampilkan secara bergiliran. Bagian kanan akan berisi textbox user login, yang terdiri dari username dan password, serta button login. User belum terdaftar sebagai member dapat melakukan registrasi dengan melakukan klik pada hyperlink yang tersedia di bawah textbox user login.
67
2. Halaman Index - Register
Gambar 3.21. Rancangan Layar - Halaman Index Register
Hyperlink dari halaman index akan mengubah bagian kanan halaman index menjadi sebuah form registrasi yang akan terdiri dari textbox username, password, confirm password, e-mail, dan button register (Gambar 3.21). Hyperlink back terletak di sebelah kanan bawah, berfungsi untuk membawa user kembali ke halaman index. Bagian lain dari halaman index register ini sama seperti halaman index, antara lain memiliki header yang memiliki logo web dan nama website, serta bagian gambar di sebelah kiri form registrasi.
68
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. dailyS core 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. msS erver 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
3.4.2.2. Perancangan Basis Data Logikal Perancangan basis data logikal adalah perancangan database yang menunjukkan hubungan relasional antar kelas, multiplicity dari tiap hubungan relasional, serta tipe data dan length dari tiap entiti yang ada. Pertama-tama yang dilakukan adalah menganalisa fungsionalitas entiti pada rancangan databas e konseptual. Pada rancangan konseptual, terdapat empat buah entiti besar, yaitu msUser, msRoom, msServer dan msHistory. Keempat entiti tersebut merupakan entiti pokok dalam menjalankan fungsi game di dalam website. M enurut rancangan awal, website tidak hanya memiliki fungsi bermain game saja, tetapi juga terdapat fungsi-fungsi pendukung lainnya, seperti send message, chat, add friend, edit profile. Rancangan database konseptual yang telah dibuat tidak memfasilitasi fungsi-fungsi pendukung tersebut, sehingga perlu dilakukan perubahan dan perluasan pada database. Berikut adalah daftar fungsi-fungsi yang belum difasilitasi pada rancangan konseptual dan perlu untuk ditambahkan dalam rancangan logikal: 1. Send message 2. Chat 3. Add and Delete Friend 4. Edit profile 5. High score 6. Player of the Day
81
Fungsi-fungsi pendukung di atas memerlukan entiti dan atribut yang dapat
menyimpan
informasi
yang
dibutuhkan
fungsi-fungsi
tersebut.
Penambahan entiti dan atribut diperlukan untuk memfasilitasi fungsi-fungs i tersebut. Berikut adalah entiti-entiti yang ditambahkan di dalam rancangan database: 1. trMemberActi vity : untuk menyimpan data aktivitas user, seperti status online user, keberadaannya di dalam website, dan waktu login dan logout user. 2. trGame : untuk menyimpan data permainan dan proses yang terjadi di dalam permainan, seperti record score user, perpindahan bidak, informasi server dan room yang digunakan untuk permainan. 3. trFriend : untuk menyimpan data pertemanan user. Entiti ini akan memfasilitasi fungsi yang berkaitan dengan pertemanan, seperti add friend dan unfriend. 4. trMessage : untuk menyimpan data mengenai pesan pribadi. Entiti ini memungkinkan user menggunakan fasilitas pesan pribadi di dalam website. 5. trChat : untuk menyimpan data aktivitas chat. Entiti ini memungkinan user untuk menggunakan fasilitas chat.
Kedua adalah menentukan data atribut dari tiap entiti. Data atribut yang dimaksud antara lain berupa deskripsi fungsi atribut, tipe data atribut, length, dan status null atribut. Tipe data yang biasa digunakan antara lain tipe data character (char, varchar) dan numeric (int, bigint, float). Length menunjukkan banyaknya
82
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
trGame
gameID
Nulls
int(255)
No
int(3)
No
varchar(15) bigint
No No
move grid
Deskripsi atribut yang digunakan untuk membuat setiap transaksi unik kode ruangan yang digunakan untuk permainan kode server yang digunakan untuk permainan kode unik identitas user history langkah user dalam permainan koordinat bidak catur cina
movingPawn
bidak catur cina yang sedang digerakkan
varchar(15)
No
destination
koordinat posisi akhir bidak yang dituju
varchar(15)
No
int(10)
No
varchar(20)
No
varchar(1)
No
varchar(20)
No
int(255)
No
varchar(20)
No
roomID serverID userID
skor yang didapat player score dalam langkah terakhir user yang mengeksekusi auditor data informasi mengenai tipe data yang dieksekusi (insert, trType update, delete) waktu terakhir data lastM odified dieksekusi kode unik untuk setiap trM emberActivity memberActivityID transaksi nama server yang digunakan serverName user
Tipe Data dan Length
int(3) No varchar(255) 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
varchar(20)
No
varchar(20)
No
varchar(1)
No
varchar(20)
No
varchar(255)
No
varchar(20)
No
varchar(20)
No
varchar(20)
No
varchar(20)
No
varchar(1)
No
varchar(20)
No
logoutTime auditor
trType lastM odified trFriend
lastM odified
kode unik user yang ada di dalam daftar teman kode user yang mengirimkan friend request kode user yang merespon friend request keadaan friend request dari teman (request atau approve) user yang mengeksekusi data informasi mengenai tipe data yang dieksekusi (insert, update, delete) waktu terakhir data dieksekusi
messageID
kode unik yang dimiliki setiap pesan pribadi
varchar(255)
No
userID1
kode user yang mengirimkan pesan pribadi
varchar(20)
No
varchar(20)
No
varchar(500)
No
friendID userID1 userID2
status auditor
trType
trM essage
waktu terakhir user melakukan aktifitas logout user yang mengeksekusi data informasi mengenai tipe data yang dieksekusi (insert, update, delete) waktu terakhir data dieksekusi
userID2 messageText
kode user yang menjadi penerima pesan pribadi isi pesan pribadi yang dikirimkan
84
messageTime auditor
trType lastM odified trChat
chatID userID type text time auditor
trType
trRoom
lastM odified roomID roomName serverID userID1 userID2
viewer status auditor
trType
waktu pesan pribadi dikirimkan oleh user user yang mengeksekusi data informasi mengenai tipe data yang dieksekusi (insert, update, delete) waktu terakhir data dieksekusi kode unik untuk setiap chat kode user yang terlibat di dalam chat jenis chat (server chat atau room chat isi pesan yang diketik di dalam window chat waktu pesan dikirimkan lewat window chat user yang mengeksekusi data informasi mengenai tipe data yang dieksekusi (insert, update, delete) waktu terakhir data dieksekusi kode unik setiap ruangan nama ruangan permainan kode server yang digunakan untuk permainan kode unik identitas user pemain pertama kode unik identitas user pemain kedua kode user yang menjadi penonton di ruangan permainan keadaan ruangan pada saat itu (waiting dan playing) user yang mengeksekusi data informasi mengenai tipe data yang dieksekusi (insert, update, delete)
varchar(20)
No
varchar(20)
No
varchar(1)
No
varchar(20)
No
int(255)
No
bigint
No
varchar(10)
No
varchar(50)
No
varchar(20)
No
varchar(20)
No
varchar(1)
No
varchar(20) int(255) int(3)
No No No
int(20)
No
varchar(20)
No
varchar(20)
No
varchar(255)
No
varchar(10)
No
varchar(20)
No
varchar(1)
No
85
lastM odified msServer
serverID auditor
msType lastM odified
msUser
userID password fullName email birthDate gender location profilePicture auditor
msType lastM odified
waktu terakhir data dieksekusi kode server yang dapat digunakan user yang mengeksekusi data informasi mengenai tipe data yang dieksekusi (insert, update, delete) waktu terakhir data dieksekusi kode unik yang digunakan untuk membedakan setiap user kode rahasia yang digunakan user untuk login nama lengkap user alamat email user tanggal lahir user (dd-mmyyyy) jenis kelamin user lokasi user gambar profil user user yang mengeksekusi data informasi mengenai tipe data yang dieksekusi (insert, update, delete) waktu terakhir data dieksekusi
varchar(20)
No
varchar(20)
No
varchar(20)
No
varchar(1)
No
varchar(20)
No
bigint
No
varchar(20) varchar(30) varchar(30)
No No No
varchar(20) varchar(20) varchar(20) varchar(50)
No No Yes Yes
varchar(20)
No
varchar(1)
No
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 msUser trM emberActivity msServer trRoom trGame trFriend trM essage trChat historyLog
Candidate Key userID, email, profilePicture memberActivityID serverID roomID gameID, roomID friendID messageID chatID historyID
Primary Key userID memberLogID serverID roomID gameID friendID messageID chatID 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 trM emberActivity, msServer, trRoom, trFriend, trM essage, 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
Berikut adalah analisa pemilihan primary key dari sejumlah candidate key:
1. Entiti: msUser Candidate Key: userID, email, profilePicture Analisa: Atribut email merupakan atribut yang berasal dari luar website. Email dibuat di website lain sehingga otoritas email tidak terdapat di dalam website catur china. Atribut yang berada di luar otoritas website akan sulit untuk dikendalikan apabila ada sesuatu yang terjadi, misalnya penghapusan email. Primary key yang ideal adalah primary key yang berasal dari internal website, karena primary key itu dapat dikontrol lebih mudah dan apabila ada error yang terjadi, error handling dapat dilakukan langsung dari dalam website. Atribut profilePicture merupakan atribut yang menyimpan foto user. Atribut ini dapat berisi null atau tidak diisi oleh user, sehingga atribut ini tidak dapat dijadikan primary key , walaupun atribut ini termasuk atribut yang unik. Atribut userID merupakan atribut yang berisi kode unik untuk membedakan tiap user. Atribut ini akan digunakan sebagai nama user
selama di dalam website.
Setiap
user
harus
menggunakan userID yang berbeda dengan user yang lain. Atribut ini juga dibuat oleh user di dalam website pada saat mereka mendaftarkan diri sebagai member¸ sehingga atribut ini merupakan
88
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. Jenis-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
Tabel 3.11. Tabel Hubungan Relasional Antar Entiti
Entiti 1
msUser
trM ember Activity msServer
trRoom
trGame
trFriend trM essage trChat
Hubungan Entiti 2 Relasional trM emberActivity 1..1 trFriend 1..* trM essage 1..* trChat 1..* trRoom
1..1
msUser
1..1
trGame
1..*
trRoom
1..*
trGame
1..1
msServer
1..1
msUser
1..*
trRoom
1..1
Keterangan terdapat hanya satu memberlog pada satu user terdapat satu atau lebih teman pada satu user terdapat satu atau lebih pesan pada satu user terdapat satu atau lebih chat pada satu user terdapat hanya satu ruangan yang ditempati satu user terdapat hanya satu user dalam setiap memberactivity terdapat satu atau lebih game di dalam satu server terdapat satu atau lebih ruangan di dalam satu server terdapat hanya satu game di dalam satu ruangan terdapat hanya satu server di dalam satu ruangan terdapat satu atau lebih user di dalam satu ruangan terdapat hanya satu ruangan di dalam satu game
msServer
1..1
terdapat hanya satu server di dalam satu keseluruhan game
msUser
1..1
msUser msUser
1..* 1..*
komunikasi satu orang teman dapat dilakukan kepada satu user (one-to-one communication) terdapat satu atau lebih user di dalam satu pesan terdapat satu atau lebih user di dalam satu chat
Dari analisa terhadap rancangan database konseptual di atas, maka didapatkan rancangan database logikal seperti diagram di bawah ini:
90
Gambar 3.28. Diagram Database - Logikal
91
3.4.2.3.Perancangan Basis Data Fisikal
Gambar 3.29. Entity Relationship Diagram
Tabel database fisikal ini merupakan tabel database yang akan digunakan untuk menjalankan fungsi-fungsi di dalam website. Penambahan entiti historyLog dan penghilangan hubungan relasional dari entiti trFriend menuju msUser merupakan perubahan yang dilakukan dari tabel database logikal menuju
92
tabel database fisikal. Berikut merupakan penjelasan terjadinya kedua perubahan tersebut:
1. Penambahan entiti historyLog Pada tabel database logikal, tidak terdapat entiti yang menyimpan data histori transaksi aktivitas yang dilakukan oleh user. Entiti yang menyimpan data histori tersebut sangat penting untuk mencari tahu aktivitas para user, waktu aktivitas dilakukan, dan apakah aktivitas tersebut dilakukan atas otorisasi user sendiri. Data histori ini dapat digunakan untuk melakukan cross-check apabila ada perubahan data pada user yang nampak mencurigakan, seperti yang mungkin terjadi ketika akun user dibajak (hacked).
2. Penghilangan hubungan relasional dari trFriend ke msUser Penghilangan hubungan relasional dari trFriend ke msUser karena hubungan antara trFriend ke msUser hanya bersifat satu arah, yaitu dari msUser ke trFriend. Hubungan satu arah ini terjadi karena user dapat melihat siapa saja friend yang mereka miliki, tetapi sebaliknya friend dalam hal ini bukanlah aktor aktif yang dapat melihat user, melainkan berperan sebagai objek. Friend dari user di proses yang terpisah akan berperan sebagai user untuk melihat friend yang mereka miliki.
93
3.4.3. Aliran Aplikasi (Application Flow) Pada subbab ini, akan digambarkan State Transition Diagram (STD) untuk sistem rancangan yang dibuat.
3.4.3.1. State Transition Diagram – Index
Gambar 3.30. State Transition Diagram - Index
94
3.4.3.2. State Transition Diagram – Home
Gambar 3.31. State Transition Diagram - Home
95
3.4.3.3.State Transition Diagram – Server
Gambar 3.32. State Transition Diagram - Server
96
3.4.3.4.State Transition Diagram – Lobby
Gambar 3.33. State Transition Diagram - Lobby
97
3.4.3.5.State Transition Diagram – Room
Gambar 3.34. State Transition Diagram - Room
98
3.4.3.6.State Transition Diagram – Profile
Gambar 3.35. State Transition Diagram - Profile