i
HALAMAN JUDUL
DESAIN PROTOKOL DAN PROTOTIPE
APLIKASI PERMAINAN SCRABBLE
BERBASIS JARINGAN
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Disusun Oleh:
Cahyo Herdian
055314009
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
THE PROTOCOL DESIGN AND PROTOTYPE
OF NETWORK BASED
SCRABBLE GAME APPLICATION
A THESIS
Presented as Partial Fulfillment of Requirement To Obtain Sarjana Komputer Degree
Program Studi Teknik Informatika
By :
Cahyo Herdian
055314009
INFORMATICS ENGINEERING STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
iii
iv
v
HALAMAN MOTTO DAN PERSEMBAHAN
MOTTO
“Victory Loves Preparations”
PERSEMBAHAN
Kupersembahkan Karya ini untuk:
Yesus Kristus Sang Juru Selamat,
Bunda Maria, Bunda Penolong,
Bapak dan Ibu serta Kedua Saudara
Kandungku tercinta,
Republik Indonesia, Negara dan Tanah Airku,
Universitas Sanata Dharma, tempatku menempa
vi
LEMBAR PERNYATAAN KEASLIAN KARYA
PERNYATAAN KEASLIAN KARYA
Saya menyatakan bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
vii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Cahyo Herdian
NIM : 055314009
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul
DESAIN PROTOKOL DAN PROTOTIPE
APLIKASI PERMAINAN SCRABBLE BERBASIS JARINGAN
beserta perangkat yang diperlukan ( bila ada ). Dengan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan
dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data,
mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain
untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan
royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 10 Agustus 2011
Yang menyatakan,
viii
INTISARI
Dalam bidang teknologi komputer, protokol merupakan sebuah kesepakatan bagaimana komunikasi akan dilakukan agar sebuah sistem dapat berinteraksi/berkomunikasi melalui sebuah jaringan komputer. Protokol aplikasi adalah sebuah protokol pada lapisan aplikasi yang merupakan sebuah kesepakatan komunikasi antar program aplikasi. Salah satu pengembangan dari aplikasi komputer berbasis jaringan adalah aplikasi game multiplayer. Game multiplayer merupakan aplikasi permainan/game komputer yang dapat dimainkan secara bersamaan oleh beberapa pemain.
Di dalam skripsi ini, akan dijelaskan secara detail bagaimana merancang protokol komunikasi sebuah aplikasi permainan. Aplikasi yang akan dibangun adalah aplikasi permainan Scrabble. Aplikasi ini dapat dimainkan oleh 2 sampai 4 pemain dalam komputer secara terpisah dalam lingkungan LAN(Local Area Network). Aplikasi ini berjalan dengan prinsip client-server dimana aplikasi server bertugas mengatur jalannya permainan dan melayani request pesan protokol aplikasi, serta memberikan respons pesan protokol aplikasi kepada client melalui sebuah keyword. Aplikasi client sendiri bertugas untuk memberikan tampilan permainan serta memproses pesan respon yang diterima dari server. Pesan request dan response dikirim dalam bentuk format data text/String dari client ke server maupun sebaliknya. Aplikasi ini dibangun menggunakan teknik pemrograman soket dengan bahasa pemrograman berbasis JAVA. Metodologi yang digunakan dalam membangun aplikasi ini adalah metode RUP(Rational Unified Process). RUP menggunakan konsep objectoriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML).
ix
ABSTRACT
In the field of computer technology, the protocol is an agreement how the communication will be done so that a system can interact / communicate over a computer network. One of the development of network-based computer application is multiplayer gaming applications. Multiplayer game is a game application / computer games that can be played simultaneously by multiple players.
Within this thesis, described in detail how to design the communication protocol of a game application. Applications to be built is the game of Scrabble application. This application can be played by 2 up to 4 players in the computer separately within the LAN (Local Area Network). This application is running with the principle of client-server where the application server is responsible for managing the course of the game and serving requests and the application protocol messages also provide a response protocol message to the client application through a command protocol. Client applications responsible for providing a Graphical User Interface games and process the response message received from the server. Request and response messages are sent as a text or string from client to server or vice versa. This application was built using socket programming techniques with Java-based programming language. The methodology used in constructing these applications is RUP (Rational Unified Process). RUP uses the concept of object-oriented, with activities focused on developing a model using the Unified Model Language (UML).
x
KATA PENGANTAR
Puji dan syukur saya haturkan ke hardirat Bapa di Surga melalui perantaraan Putra-Nya yang terkasih Yesus Kristus serta keluarga Kudus Bunda Maria dan Santo Yosef atas limpahan berkat sehingga penulis dapat menyelesaikan Skripsi yang berjudul ”DESAIN PROTOKOL DAN PROTOTIPE APLIKASI PERMAINAN SCRABBLE BERBASIS JARINGAN” ini. Skrispi ini disusun dan ditulis dalam memenuhi salah satu syarat memperoleh gelar sarjana komputer di Program Studi Teknik Informatika, Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta.
Penulis menyadari bahwa selama proses dalam menyelesaikan skripsi ini mendapat bantuan dari berbagai pihak. Oleh karena itu, dalam kesempatan ini penulis hendak menghaturkan ucapan terima kasih yang sebesar-besarnya kepada
1. Bapak Yosef Agung Cahyanta, S.T., M.T. selaku Dekan Fakultas Sains dan Teknologi.
2. Ibu Ridowati Gunawan, S.Kom, M.T. selaku Ketua Program Studi Teknik Informatika, Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku dosen pembimbing skripsi yang berkenan mencurahkan waktu, tenaga dan pikiran selama proses pengerjaan sehingga skripsi ini dapat terselesaikan dengan maksimal.
xi
5. Bapak Henricus Agung Hernawan, S.T. selaku dosen penguji yang telah meluangkan waktu dan memberikan kritikan serta saran dalam menyempurnakan skripsi ini.
6. Segenap jajaran dosen Program Studi Teknik Informatika yang telah banyak memberi ilmu dan pendidikan untuk penulis selama menjalani masa studi.
7. Segenap jajaran staf dan karyawan Fakultas Sains dan Teknologi atas bantuan dalam hal administratif selama menjalani masa studi.
8. Bapakku Yohanes Sumarman, Ibuku Anastasia Swasti yang tak habisnya mencurahkan segenap kasih cinta serta hidupnya untukku dari saat ku mulai menghirup nafas kehidupan ini hingga saat ini ku beranjak dewasa. Terima kasih atas segala doa dan harapan pada hidupku.
9. Kakakku Stanislaus Apri Hananto Putra yang kubanggakan dan adikku yang kucinta Monica Dyah Kusumawati yang selalu memberiku semangat dan mendampingiku selama menyelesaikan skripsi ini.
10.Segenap keluarga besar Soemadi. Paman dan tante serta saudara-saudaraku yang bersedia mendoakanku serta memberikan semangat dan inspirasi agar aku tetap bertahan selama proses penyelesaian skripsi ini. 11.Sahabat dekatku di prodi Teknik Informatika, Alfonsus Stefan, Aprilia
Devi, Malichah Charitsah, Kingkin Malintang, Nikolas Catur, Ign Dimas, Andriyanto, Andreas Hemawan, Adi Susila, Charlie Saragih. Terima kasih atas semangat dan inspirasinya. Serta teman-teman prodi Teknik Informatika angkatan 2005 yang tak dapat disebutkan satu persatu, dimanapun berada kalian tetap teman dan sahabatku.
12.Romo Tri Wahyono, Pr. yang telah mendampingi langkahku selama proses skripsi ini dengan doa dan dorongan semangat.
xii
Harulito. Terima Kasih atas segala saran dan masukkan serta semangat kehidupan yang kalian inspirasikan kepadaku.
14.Segenap pihak yang telah membantu dalam hal moril maupun materiil selama menyelesaikan proses sutdi dan skripsi ini yang tidak dapat disebutkan satu-persatu.
Penulis menyadari masih banyak kekurangan yang terdapat dalam penyusunan skripsi ini. Oleh karena itu, penulis mengharapkan kritik dan saran dari semua pihak yang berkepentingan dalam penyusunan skripsi ini. Penulis berharap bahwa penyusunan skripsi ini dapat bermanfaat bagi pembaca dan dapat memberikan sumbangan bagi perkembangan ilmu pengetahuan khususnya bidang teknologi informatika.
Yogyakarta, 10 Agustus 2011 Penulis,
xiii
DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
HALAMAN MOTTO DAN PERSEMBAHAN ... v
PERNYATAAN KEASLIAN KARYA ... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH . vii INTISARI ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xiii
DAFTAR GAMBAR ... xvii
DAFTAR TABEL ... xx
Bab 1 PENDAHULUAN ... 1
1.1. Latar Belakang... 1
1.2. Rumusan Masalah ... 2
1.3. Tujuan ... 2
1.4. Batasan Masalah ... 2
1.5. Metodologi Penelitian ... 2
1.6. Sistematika Penulisan ... 3
Bab 2 LANDASAN TEORI ... 5
2.1. Permainan Scrabble ... 5
2.1.1. Pengertian dan Sejarah Permainan Scrabble ... 5
2.1.2. Distribusi Huruf Scrabble ... 6
2.1.3. Tahap Permainan ... 7
xiv
2.2. Konsep Dasar Jaringan Komputer ... 9
2.2.1. IP Address ... 9
2.2.2. Port ... 10
2.2.3. Client Server... 10
2.2.3.1. Client ... 11
2.2.3.2. Server ... 11
2.2.4. Protokol ... 12
2.3. Package Pemrograman JAVA Berbasis Jaringan ... 17
Bab 3 ANALISIS DAN PERANCANGAN SISTEM ... 22
3.1. Deskripsi Umum Aplikasi Permainan Scrabble ... 22
3.2. Desain Protokol Aplikasi Scrabble ... 24
3.2.1. Statechart Diagram Client-Server Permainan Scrabble ... 25
3.2.2. Diagram Alur Protokol Permainan... 27
3.3. Desain Arsitektur Sistem ... 45
3.4. Analisis Sistem ... 46
3.4.1. Model Use Case ... 46
3.4.1.1. Diagram Use Case ... 46
3.4.1.2. Definisi Aktor ... 54
3.4.2. Skenario Use Case... 56
3.4.3. Model Analisis ... 58
3.4.3.1. Realisasi Use Case ... 58
3.4.3.2. Diagram Kelas Analisis Keseluruhan ... 59
3.5. Desain Sistem ... 59
3.5.1. Diagram Kelas Perancangan Keseluruhan ... 59
3.5.2. Kelas Perancangan ... 59
xv
3.5.4. Prototipe Antarmuka ... 62
3.5.5. Rencana Pengujian dan Evaluasi ... 62
Bab 4 IMPLEMENTASI SISTEM ... 65
4.1. Karakteristik Sistem ... 65
4.2. Kebutuhan Sistem ... 65
4.2.1. Kebutuhan Perangkat Keras ... 65
4.2.2. Kebutuhan Perangkat Lunak ... 65
4.3. Implementasi ... 66
4.3.1. Implementasi File ... 66
4.3.2. Implementasi Antarmuka ... 66
4.3.3. Instalasi Program Aplikasi ... 67
Bab 5 ANALISIS HASIL PENGUJIAN ... 68
5.1. Pengujian Sistem ... 68
5.1.1. Pengujian Protokol ... 69
5.1.2. Pengujian Sistem Keseluruhan ... 69
5.2. Analisa Hasil Pengujian ... 69
5.2.1. Analisa Pengujian Protokol ... 69
5.2.2. Analisa Pengujian Sistem Keseluruhan ... 87
5.3. Kelebihan dan Kekurangan Sistem ... 87
5.3.1. Kelebihan Sistem ... 87
5.3.2. Kekurangan Sistem ... 88
Bab 6 PENUTUP ... 89
6.1. Kesimpulan ... 89
6.2. Saran ... 89
DAFTAR PUSTAKA ... 90
xvi
Lampiran I SKENARIO USE CASE ... 92
Lampiran II REALISASI USE CASE ... 120
Lampiran III DIAGRAM KELAS KESELURUHAN... 210
Lampiran IV DIAGRAM KELAS PERANCANGAN ... 211
Lampiran V ATRIBUT DAN METHOD ... 212
Lampiran VI PROTOTYPE ANTARMUKA ... 255
Lampiran VII RENCANA PENGUJIAN ... 258
Lampiran VIII ANTARMUKA ... 303
xvii
DAFTAR GAMBAR
Gambar 2.1 Papan permainan Scrabble………
Gambar 2.2 Daftar huruf-huruf untuk Scrabble Berbahasa Inggris………….. Gambar 2.3 Koneksi Client-Server………... Gambar 2.4 Diagram HTTP Protokol 1………
Gambar 2.4 Diagram HTTP Protokol 2………
Gambar 2.4 Diagram HTTP Protokol 3………
Gambar 2.6 Diagram HTTP Protokol 4………
Gambar 3.1.1 Statechart Diagram Sistem Server……… Gambar 3.1.2 Statechart Diagram Sistem Client………
Gambar 3.2 Arsitektur Aplikasi Game Scrabble Berbasis Jaringan pada konfiurasi LAN(Jaringan Lokal)………...
Gambar 3.3 Diagram Use Case Sistem……….
Gambar 3.4 Detail Use Case Bermain………..
Gambar 3.5 Detail Use Case Mengirim Pesan ke Client………..
Gambar 3.6 Detail Use Case Mengirim Pesan Request ke Server…………...
Gambar 5.1.a. Screenshot pengujian Kasus 1- a………... Gambar 5.1.b. Screenshot pengujian Kasus 1-b……… Gambar 5.1.c. Screenshot pengujian Kasus 1-c……… Gambar 5.1.d. Screenshot pengujian Kasus 1-d………
xviii
Gambar 5.2.a. Screenshot pengujian Kasus 2-a……… Gambar 5.2.b. Screenshot pengujian Kasus 2-b……… Gambar 5.2.c. Screenshot pengujian Kasus 2-c……… Gambar 5.2.d. Screenshot pengujian Kasus 2-d……… Gambar 5.3.a Screenshot pengujian Kasus 3-a……… Gambar 5.3.b Screenshot pengujian Kasus 3-b……… Gambar 5.3.c Screenshot pengujian Kasus 3-c………
Gambar 5.3.d Screenshot pengujian Kasus 3-d……… Gambar 5.3.d Screenshot pengujian Kasus 3-e………
Gambar 5.4.a Screenshot pengujian Kasus 4-a……… Gambar 5.4.b Screenshot pengujian Kasus 4-b……… Gambar 5.5.a Screenshot pengujian Kasus 5-a……… Gambar 5.5.b Screenshot pengujian Kasus 5-b……… Gambar 5.6.a Screenshot pengujian Kasus 6-a……… Gambar 5.6.b Screenshot pengujian Kasus 6-b……… Gambar 5.7.a Screenshot pengujian Kasus 7-a……… Gambar 5.7.b Screenshot pengujian Kasus 7-b……… Gambar 5.8.a Screenshot pengujian Kasus 8-a……… Gambar 5.8.b Screenshot pengujian Kasus 8-b……… Gambar 5.9.a Screenshot pengujian Kasus 9-a………
xix
Gambar 5.9.b Screenshot pengujian Kasus 9-b……… Gambar 5.10 Screenshot pengujian Kasus 10………...
Gambar 5.11.a Screenshot pengujian Kasus 11-a……… Gambar 5.11.a Screenshot pengujian Kasus 11-b……… Gambar 5.12 Screenshot pengujian Kasus 12………..
xx
DAFTAR TABEL
Tabel 2.1 Tabel Construktor Class ServerSocket………..
Tabel 2.2 Tabel Method ServerSocket……….. Tabel 2.3 Tabel Construktor Kelas Socket………
Tabel 2.4 Tabel Method Kelas Socket………..
Tabel 3.1 Tabel rancangan diagram alur protokol………
Tabel 3.2 Tabel kode pesan protokol………
Tabel 3.3 Definisi Use Case Sistem Client………..
Tabel 3.4 Definisi Detail Use Case Bermain………
Tabel 3.5 Definisi Detail Use Case Mengirim Pesan ke Client………
Tabel 3.6 Definisi Use Case Mengirim Pesan Request ke Server………
Tabel 3.7 Tabel Definisi Aktor………. Tabel 3.8 Tabel Skenario Use Case………..
Tabel 3.9 Tabel Realisasi Use Case………..
Tabel 3.10 Tabel Kelas Perancangan………
Tabel 3.11 Tabel Prototype Antarmuka………
Tabel 3.12 Rencana Pengujian Protokol………... Tabel 3.13 Rencana Pengujian Secara Keseluruhan……….
Tabel 4.1 Tabel Implementasi File………
1
Bab 1 PENDAHULUAN
BAB I
PENDAHULUAN
1.1. Latar Belakang
Salah satu hasil dari kemajuan teknologi komputer adalah sistem komputer berbasis jaringan. Kemajuan ini membawa perkembangan bagi kemampuan sebuah aplikasi maupun sistem komputer. Dengan Sistem jaringan komputer, pengguna dapat saling berinteraksi melalui aplikasi komputer dengan pengguna lain.
Adanya sebuah aplikasi sebuah sistem komputer yang berbasis jaringan tidak lepas dari adanya sebuah protokol aplikasi. Protokol aplikasi merupakan sebuah kesepakatan bagaimana komunikasi akan dilakukan agar komunikasi dalam sebuah aplikasi dapat berjalan.
Salah satu pengembangan dari aplikasi komputer berbasis jaringan adalah game multiplayer. Game multiplayer merupakan aplikasi permainan/game komputer yang dapat dimainkan secara bersamaan oleh beberapa pemain. Permainan/game yang dapat dimainkan bersama-sama salah satunya adalah Scrabble. Scrabble adalah permainan menyusun kata pada sebuah media papan. Mengikuti perkembangan teknologi komputer, maka permainan tersebut tidak lagi harus dimainkan dengan media papan konvensional. Dalam hal ini, teknologi komputer dapat menjadi sebuah media alternatif permainan melalui sebuah aplikasi permainan Scrabble berbasis jaringan.
kesepakatan komunikasi antar program aplikasi. Namun, hingga saat ini belum ada rancangan protokol aplikasi yang secara khusus digunakan untuk aplikasi permainan scrabble ini.
1.2. Rumusan Masalah
Dari latar belakang masalah di atas dapat dirumuskan suatu masalah yaitu bagaimana merancang sebuah protokol aplikasi dan membangun prototipe aplikasi permainan/game Scrabble berbasis jaringan.
1.3. Tujuan
Adapun tujuan dari penulisan skripsi ini adalah
1. Merancang desain protokol untuk aplikasi permainan/game Scrabble berbasis jaringan.
2. Membangun prototype aplikasi permainan Scrabble berbasis jaringan sebagai implementasi dari desain protokol.
1.4. Batasan Masalah
Batasan-batasan masalah dalam pengembangan sistem ini adalah sebagai berikut:
1. Pengujian Sistem dilakukan pada jaringan lokal/Local Area Network(LAN).
2. Bahasa yang digunakan dalam kamus permainan Scrabble ini adalah Bahasa Inggris.
3. Aplikasi ini dibangun menggunakan bahasa pemrograman JAVA berbasis jaringan.
1.5. Metodologi Penelitian
a. Permainan Scrabble.
b. Pemrograman Jaringan menggunakan JAVA.
2. Perancangan aplikasi permainan Scrabble menggunakan metodologi Rational Unified Process (RUP). Metode ini meliputi:
a. Fase Inception : Pada tahap ini pengembang mendefinisikan batasan kegiatan, melakukan analisis kebutuhan user, dan melakukan perancangan awal perangkat lunak (perancangan arsitektural dan use case).
b. Fase Elaboration : Pada tahap ini dilakukan perancangan perangkat lunak mulai dari menspesifikasikan fitur perangkat lunak hingga prototipe dari perangkat lunak.
c. Fase Construction : Pengimplementasian rancangan perangkat lunak yang telah dibuat dilakukan pada tahap ini.
d. Fase Transition : Instalasi , deployment dan sosialisasi perangkat lunak dilakukan pada tahap ini.
3. Implementasi prototype aplikasi permainan Scrabble menggunakan bahasa pemrograman JAVA.
1.6. Sistematika Penulisan BAB I : Pendahuluan
Bab ini berisi tentang latar belakang masalah, batasan masalah, tujuan penelitian, manfaat penelitian, rumusan masalah, metodologi penelitian serta sistematika penulisan.
BAB II : Landasan Teori
BAB III : Analisis dan Perancangan Sistem
Bab ini akan mengulas analisa masalah yang berhubungan dengan sistem yang hendak dibangun berikut sistematika perancangan sistem. BAB IV : Implementasi Sistem
Bab ini berisi tentang implementasi dan testing dari program berdasarkan analisa dan perancangan yang telah dilakukan.
BAB V : Pengujian dan Analisis Hasil
Pada bab ini berisi mengenai pengujian sistem beserta tahap analisa dari pengujian sistem sehingga dapat diketahui apakah sistem yang telah dibuat dapat menjawab permasalahan yang ada
BAB VI : Penutup
5
Bab 2 LANDASAN TEORI
BAB II
LANDASAN TEORI
2.1. Permainan Scrabble
2.1.1. Pengertian dan Sejarah Permainan Scrabble
Scrabble adalah permainan papan dan permainan menyusun kata yang dimainkan 2 atau 4 orang yang mengumpulkan poin berdasarkan nilai kata yang dibentuk dari keping huruf di atas papan permainan berkotak-kotak (15 kolom dan 15 baris).
Biji permainan berupa keping berbentuk bujur sangkar yang bertuliskan huruf pada salah satu sisi. Pemain mengambil hingga sebanyak tujuh buah keping huruf dan berusaha menyusun kata secara mendatar atau menurun seperti teka-teki silang.
Permainan Scrabble mulanya diciptakan di tahun 1938 dengan nama “Criss-Crosswords” oleh seorang arsitek bernama Alfred Mosher Butts. Di tahun 1948, pengacara James Brunot, penduduk asal Newtown, Connecticut membeli hak memproduksi permainan “Criss-Crosswords”. Brunot mengganti nama permainan menjadi “Scrabble”, sebuah kata dalam bahasa Inggris yang berarti "berjuang membanting tulang” dengan sedikit mengubah kotak-kotak “bonus” pada papan permainan, dan menyederhanakan aturan permainan.
Permainan dimainkan 2 hingga 4 orang dengan papan permainan berkotak-kotak yang terdiri dari 15 kolom dan 15 baris. Setiap huruf memiliki nilai tertentu (antara 1 sampai 10) yang bergantung pada frekuensi kemunculan huruf tersebut pada tulisan yang standar.
melipat-gandakan jumlah poin. Kotak berwarna merah bertuliskan “triple-word” mengalikan 3 total poin yang didapat dari sebuah kata; kotak berwarna merah jambu “double-word” mengalikan 2 total poin yang didapat dari sebuah kata; kotak biru tua “triple-letter” mengalikan 3 nilai huruf yang diletakkan di atasnya, dan kotak biru muda “double-letter” mengalikan 2 nilai huruf yang diletakkan di atasnya. Kotak di bagian tengah papan permainan (H8) bernilai “double-word” dan diberi tanda bintang atau logo.
Gambar 2.1 Papan permainan Scrabble [5] 2.1.2. Distribusi Huruf Scrabble
Dalam permainan Scrabble edisi bahasa Inggris menggunakan 100 huruf yang mempunyai rincian sebagai berikut:
2 keping kosong (nilai 0)
3 poin: B×2, C×2, M×2, P×2 4 poin: F ×2, H ×2, V ×2, W ×2, Y ×2 5 poin: K ×1
8 poin: J ×1, X ×1 10 poin: Q ×1, Z ×1
Gambar 2.2 Daftar huruf-huruf untuk Scrabble Berbahasa Inggris [6] 2.1.3. Tahap Permainan
Pada setiap giliran, masing-masing pemain mendapat hingga 7 buah huruf. Setiap kata dibuat agar mendapat poin yang sebesar-besarnya dengan menggunakan sebanyak mungkin keping-keping huruf yang dimiliki.
Di awal permainan ketika papan permainan masih kosong, salah satu huruf yang membentuk kata pertama harus diletakkan di atas kotak H8 yang terletak di tepat tengah-tengah papan permainan. Kata yang dibentuk paling tidak harus terdiri dari 2 huruf, bisa mendatar atau menurun. Kotak H8 adalah kotak bonus dan pemain yang mendapat giliran pertama berhak atas bonus "double word".
Kata utama yang disusun harus mengandung satu atau lebih huruf yang sudah diletakkan sebelumnya. Bila kata tersebut ternyata menghasilkan kata (atau kata-kata) baru yang bersambungan dengan kata yang baru disusun, poin yang tercipta dari kata tambahan ini pun ikut dihitung, dan sekaligus bisa juga dipertanyakan.
Keping kosong bisa dimainkan untuk melambangkan huruf apa saja, tapi tidak bernilai poin dan tidak berhak atas bonus yang tertera pada kotak-kotak bonus. Sampai permainan berakhir, keping kosong tetap bertahan sebagai huruf yang ditentukan pemain yang menggunakan keping kosong tersebut. Pada permainan yang bersifat "rekreasi", keping kosong yang sudah diletakkan seorang pemain boleh diambil lagi oleh pemain tersebut setelah ditukar dengan huruf yang dilambangkan keping kosong tersebut.
Setiap kali giliran selesai, pemain mengambil lagi huruf-huruf dari dalam kantong untuk mengisi rak hingga kembali berjumlah 7 buah huruf. Bila huruf yang ada di dalam kantong jumlahnya sudah kurang dari 7 buah, pemain tidak punya pilihan kecuali mengambilnya semua.
Setelah permainan berakhir, total poin masing-masing pemain dikurangi dengan total poin dari huruf-huruf yang tersisa. Total poin dari huruf-huruf yang tersisa di rak lawan ditambahkan sebagai bonus ke total poin milik pemain yang menang dan semua huruf yang dimiliki sudah habis. 2.1.4. Poin
1. Poin yang tertera pada huruf yang diletakkan dikalikan dengan petunjuk kotak bonus, dikalikan 2 untuk “double-letter” atau dikalikan 3 untuk “triple-letter”.
2. Kemudian menambahkan poin-poin yang tertera pada huruf sisanya (huruf yang baru diletakkan atau huruf yang sebelumnya sudah ada), kecuali keping kosong.
3. Bila salah satu huruf yang membentuk kata diletakkan di atas kotak “double-word”, maka total poin untuk kata tersebut dikalikan dua (atau dikalikan 2 lagi)
4. Bila salah satu huruf yang membentuk kata diletakkan di atas kotak “triple-word”, maka total poin untuk kata tersebut dikalikan tiga (atau dikalikan 3 lagi).
5. Petunjuk kotak bonus juga mempengaruhi total poin yang dihitung dari kata tambahan yang terbentuk setelah kata utama disusun, tapi kotak bonus yang sudah dipakai tidak berlaku lagi pada giliran berikutnya. 6. Bila pemain berhasil menggunakan seluruh huruf yang dimiliki (7 huruf
sekaligus), maka pemain tersebut berhak atas bonus 50 poin yang ditambahkan pada total poin kata yang disusun, atau disebut “bingo”.
2.2. Konsep Dasar Jaringan Komputer 2.2.1. IP Address
2.2.2. Port
Port adalah 16-bit nomor dimana mengenal setiap layanan yang ditawarkan oleh server jaringan.[1] Untuk menggunakan layanan khusus dan oleh karena itu, jalur komunikasi yang melewati protokol tertentu, perlu disambungkan pada port yang sesuai. Port dihubungkan dengan nomor dan beberapa nomor bersifat spesifik yang berhubungan dengan jenis layanan khusus. Port dengan layanan pekerjaan tertentu disebut port standar. Sebagai contoh, layanan FTP terletak pada port 21 sedangkan layanan HTTP terletak pada port 80. Jika ingin menggunakan file transfer FTP, perlu terhubung dengan port 21 pada komputer. Semua standar layanan tertentu diberikan nilai port dibawah 1024. Port dengan nilai diatas 1024 disediakan untuk komunikasi custom. Jika terdapat kasus dimana port dengan nilai diatas 1024 telah digunakan oleh beberapa komunikasi custom, harus mencari nilai lain yang tidak digunakan.
2.2.3. Client Server
Konsep Client-Server berarti adanya pembagian kerja pengolahan data antara client dan server. Saat ini, sebagian besar jaringan menggunakan model client/server.[1]
Gambar 2.3 Koneksi Client-Server. [1] 2.2.3.1. Client
User akan membuat permintaan melalui software client. Aplikasi ini berfungsi :
Memberikan interface bagi user untuk melakukan jobs.
Format request data ke bentuk yang dapat dimengerti oleh server
Menampilkan hasil yang diminta pada layar
Komputer client menerima instruksi dari user melalui interface yang disediakan, merubah format instruksi ke bentuk yang dapat dimengerti oleh server, dan mengirimkannya melalui jaringan ke server yang dituju. Server kemudian akan mengolah request, memilih informasi yang sesuai, dan mengirimkan kembali data hasil pengolahan ke client. Client kemudian mengolah data yang diterima untuk ditampilkan sebagai informasi yang berguna melalui interface yang tersedia.
2.2.3.2. Server
pemrosesan, penyimpanan dan manajemen data. Server bertugas menerima request dari client, mengolahnya, dan mengirimkan kembali hasilnya ke client.
Untuk itu, server membutuhkan komputer khusus dengan spesifikasi hardware yang jauh lebih baik dan bertenaga dibandingkan hardware untuk client karena komputer harus mampu melayani :
Request secara simultan dalam jumlah besar.
Aktivitas manajemen jaringan.
Menjamin keamanan pada resource jaringan.
2.2.4. Protokol
Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras.
Protokol perlu diutamakan pada penggunaan standar teknis, untuk menspesifikasi bagaimana membangun komputer atau menghubungkan peralatan perangkat keras. Protokol secara umum digunakan pada komunikasi real-time dimana standar digunakan untuk mengatur struktur dari informasi untuk penyimpanan jangka panjang.
seperti "GET / HTTP/1.1" (yang akan meminta halaman yang sudah
ditentukan), diikuti dengan pesan MIME yang memiliki beberapa informasi kode kepala (header) yang menjelaskan aspek dari permintaan tersebut, diikut dengan badan (body) dari data tertentu. Setelah menerima kode permintaan (dan pesan, bila ada), server mengirim kembali kode jawaban, seperti "200 OK", dan sebuah pesan yang diminta, atau sebuah pesan error
Gambar 2.6 Diagram HTTP Protokol 4
2.3. Package Pemrograman JAVA Berbasis Jaringan
Dalam mengembangkan aplikasi berbasis jaringan dengan menggunakan bahasa pemrograman JAVA perlu diketahui kelas-kelas yang berperan penting. Adapun kelas yang akan digunakan tersebut adalah kelas ServerSocket dan kelas Socket. Pada bagian ini akan menjelaskan secara singkat dari kelas-kelas tersebut.
Kelas ServerSocket
Class ServerSocket menyediakan fungsi-fungsi dasar dari sebuah server. ServerSocket digunakan untuk menangani seluruh request dari socket client. Tabel berikut menjelaskan dua dari empat constructor pada class ServerSocket:
Tabel 2.1 Tabel Construktor Class ServerSocket
Constructor ServerSocket
ServerSocket(int port)
Ketika sebuah server menetapkan suatu port tertentu, sebuah port 0 menugaskan sebuah
server kepada port bebas manapun. Panjang antrian maksimum untuk koneksi yang akan
ServerSocket(int port, int backlog)
Ketika sebuah server menetapkan suatu port tertentu, panjang antrian maksimum untuk
koneksi yang akan datang berdasarkan pada parameter backlog.
Tabel Berikut ini menunjukan beberapa method class pada ServerSocket : Tabel 2.2 Tabel Method ServerSocket
Method ServerSocket
public Socket accept()
Method ini menangani server untuk menunggu dan mendengarkan dari koneksi client,
kemudian menerimanya.
public void close()
Method ini digunakna untuk menutup socket server. Client tidak dapat lagi terhubung ke
server hingga dibuka kembali.
public int getLocalPort()
Method ini digunakan untuk mengembalikan port dimana socket juga membatasi.
public boolean isClosed()
Method ini digunakan untuk mendeteksi apakah socket tertutup atau belum.
Berikut ini adalah cara pendefinisian konstruktor dari class ServerSocket yang akan digunakan untuk menangani koneksi dari Client.
try {
ServerSocket s=new ServerSocket(90);
s.accept();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
koneksi dari client. Konstruktor akan melemparkan exception apabila port yang didefinisikan diatas telah dibuaat sebelumnya.
Kelas Socket
Socket adalah sebuah penghubung antara dua host, yang dapat dibangun dengan tujuh dasar operasi yaitu:
Menghubungkan untuk mengendalikan mesin atau perangkat
Mengirim data
Menerima data
Menutup koneksi
Bergantung pada port
Mendengarkan data yang masuk
Menerima koneksi dari mesin yang dikendalikan berdasarkan sebuah port Class Socket pada Java, digunakan oleh client dan server yang mempunyai method yang menangani keempat operasi diatas. Tiga operasi berikutnya hanya dibutuhkan untuk server yang menunggu client untuk koneksi ke server cukup dengan mengimplementasikan class ServerSocket.
Java.net.Socket adalah JFC yang digunakan untuk melakukan operasi TCP client-side. Untuk mendefinisikan host dapat menggunakan InetAddress atau String sedangkan untuk definisi port menggunakan int mulai dari 0 sampai 65.535. Class Socket memiliki delapan constructor, dua diantaranya siap dipanggil. Tabel berikut menjelaskan dua constructor pada class Socket:
Tabel 2.3 Tabel Construktor Kelas Socket
Socket(String host, int port)
Membuat sebuah socket client dimana dihubungkan dengan diberikan nomor port pada
host tertentu.
Socket(InetAddress address, int port)
Membuat sebuah socket client dimana dihubungkan dengan diberikannya nomor port
pada alamat IP tertentu.
Berikut adalah beberapa dari method class pada Socket : Tabel 2.4 Tabel Method Kelas Socket
Method Socket
public void close() Menutup socket client
public InputStream getInputStream()
Menerima kembali input stream yang berhubungan dengan socket ini. public OutputStream getOutputStream()
Menerima kembali output stream yang berhubungan dengan socket ini. public InetAddress getInetAddress()
Mengembalikan alamat IP kepada socket ini pada saat masih terhubung. public int getPort()
Mengembalikan remote port kepada socket ini pada saat masih terhubung. public boolean isClosed()
Mendeteksi apakah socket telah tertutup atau tidak.
Definisi constructornya dapat dilihat sperti dibawah ini:
try {
Socket koneksi = new Socket(“192.168.12.138”, 80);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
}
22
Bab 3 ANALISIS DAN PERANCANGAN SISTEM
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Deskripsi Umum Aplikasi Permainan Scrabble
Aplikasi game Scrabble berbasis jaringan ini adalah aplikasi permainan yang menggunakan konsep client-server yang dibangun dalam jaringan komputer lokal/LAN. Aplikasi server berfungsi untuk memproses pesan/perintah dari client yang dimengerti oleh server. Aplikasi client berfungsi untuk menjalankan permainan.
Sesuai dengan aturan jumlah pemain dalam permainan scrabble, setiap permainan dimainkan oleh minimal 2 orang pemain dan maksimal 4 orang pemain. Permainan Scrabble ini menggunakan papan kotak berukuran 15 kolom dan 15 baris. Papan permainan ditandai dengan kotak-kotak “bonus” yang melipat-gandakan jumlah poin. Kotak berwarna merah dengan nama “triple-word” mengalikan 3 total poin yang didapat dari sebuah kata; kotak berwarna merah jambu “double-word” mengalikan 2 total poin yang didapat dari sebuah kata; kotak biru tua “triple-letter” mengalikan 3 nilai huruf yang diletakkan di atasnya, dan kotak biru muda “double-letter” mengalikan 2 nilai huruf yang diletakkan di atasnya. Kotak di bagian tengah papan permainan (H8) bernilai “double-word” dan diberi tanda bintang atau logo. Jumlah keping huruf yang digunakan berdasarkan jumlah kepingan huruf edisi bahasa Inggris berjumlah 100 keping huruf.
permainan.
Ketika sistem server telah dibangkitkan oleh admin permainan, maka sistem server akan menunggu sebuah permintaan koneksi dari sistem client. Admin permainan dapat menentukan kapan permainan dimulai. Setelah permainan dimulai, sistem server akan mengirimkan status pemain kepada setiap client. Untuk pemain yang mendapat giliran bermain disebut dengan ”playing player” dan untuk pemain lain disebut dengan ”spectator player”. Pada setiap giliran, di rak masing-masing pemain terdapat 7 huruf atau kurang yang bisa digunakan untuk membentuk sebuah kata. Ketika tiba gilirannya, pemain bisa memilih untuk: (1) melewatkan giliran karena tidak bisa membuat kata, dan tidak mendapat poin; (2) menukarkan satu atau lebih huruf yang dimiliki dengan huruf yang ada di dalam kantong, dan tidak mendapat poin (hanya boleh dilakukan kalau di dalam kantong tersisa paling sedikit 7 buah huruf); (3) menyusun kata di papan permainan dan mendapat poin.
Setiap pemain yang telah berhasil menyusun sebuah kata ke dalam papan permainan Scrabble, diharuskan untuk menekan tombol ”submit” untuk menyelesaikan permainan. Secara otomatis setelah menerima pesan submit kata dari client, server akan melakukan pengecekan dalam kamus. Bila kata-kata yang diperoleh oleh client dinyatakan ada dalam kamus, maka server akan mengkorfimasi kata tersebut ada dalam kamus permainan. Setelah susunan-susunan kata yang diperoleh tervalidasi, aplikasi client akan mengupdate hasil permainan dan mengirimkannya ke pemain/client lain. Namun, bila salah satu kata yang diperoleh dari rangkaian huruf yang dikirim oleh client tersebut tidak terdapat dalam kamus permainan maka server akan mengirim pesan bahwa kata tersebut tidak terdapat dalam kamus dan pemain mengulangi kembali permainannya.
permainan. Bila permainan telah dinyatakan selesai, maka sistem server akan memberi informasi bahwa permainan telah selesai/dihentikan kemudian secara otomatis koneksi client ke server terputus dan aplikasi server berhenti.
3.2. Desain Protokol Aplikasi Scrabble
Dalam dokumen ini, server didefinisikan sebagai sebuah aplikasi yang melayani dan memproses perintah dari aplikasi lain. Aplikasi lain yang berfungsi untuk mengirim permintaan ini disebut aplikasi client.
3.2.1. Statechart Diagram Client-Server Permainan Scrabble
Connection Establish Connection found
Read Stream
Connection Closed Write Stream
success
success
failure
Idle Do nothing
success Process Command failure
failure
Connection Establish
Success
Read Stream
Connection Closed Write Stream
success
failure success
failure Idle
Do nothing
Send request message Connect to Server
failure
Process a command Send a request
message
3.2.2. Diagram Alur Protokol Permainan
Tabel 3.1 rancangan diagram alur protokol
Diagram Alur Protokol Keterangan
Client 1(Admin)
Client 2 server
Join(playerName)
addPlayer(playerID, playerName) GAME SERVER CREATED
Client 2 Join a game
Membangkitkan Server dan Bergabung ke permainan.
Admin game membangkitkan server permainan.
Client Admin bergabung ke permainan Server konfirmasi permintaan join. Server memberikan ID kepada Client Server konfirrmasi penambahan pemain ke
admin
Client 2 bergabung ke permainan konfirmasi permintaan join.
Server memberikan ID kepada Client Server konfirrmasi penambahan pemain ke
admin dan client 2
Client 3 bergabung ke permainan konfirmasi permintaan join.
Server memberikan ID kepada Client
Client 1(Admin)
Client 2 server
Client 1 is playing Client 3
setPlayerStatus(playing)
confirmPlayerStatus(playing) Setting player status to start turn the game (Client 1 playing, Client 2 & 3 as spectator)
setGameStatus(start)
setGameStatus(start)
setGameStatus(start) startGame() Starting The Game
updatePlayerTurn(playerID) confirmReadyToPlay()
confirmReadyToPlay()
confirmReadyToPlay()
updatePlayerTurn(playerID) updatePlayerTurn(playerID)
Memulai Permainan
Client 1 sebagai Admin memulai permainan.
Server memberi informasi permainan dimulai ke admin, client 2 dan client 3.
Client dan Admin Client mengirim pesan konfirmasi untuk siap bermain.
Pembagian status pemain (client 1 sebagai pemain, pemain lain sebagai spectator) Client 1 sebagai pemain
Client 1 mengkonfirmasi siap bermain Server mengupdate informasi giliran
pemain kepada Client/pemain lain
Client 1(Admin)
Client 2 server
requestLetter() Client 1 request letter
Client 3
sendLetter(Letter)
Request Letter Meminta Huruf
Client 1 meminta huruf ke Server Server mengirimkan pesan untuk
Client 1(Admin)
Client 2 server
Client 1 submit a word Client 3 Submit Playing Result
confirmWordAvailable(word,OK)
Client 1 mengirim hasil Permainan
Client 1 mengirim update papan game Client 1 selesai mengirim update papan Server mengirim konfirmasi legal move
permainan
Server mengirim konfirmasi hasil uji kata ke Client 1
Server mengirimkan pesan konfirmasi submit permainan
Server mengirim update papan permainan kepada semua client
Client 1 mengirim update poin permainan kepada pemain/client lainnya.
Client 1(Admin)
Client 2 server
Client 2 is playing
Client 1 as spectator
Client 3
Playing status substitution (Client 2 playing)
setPlayerStatus(spectator)
confirmAsSpectator()
setPlayerStatus(playing)
confirmAsPlaying()
updatePlayerTurn(playerID)
updatePlayerTurn(playerID)
updatePlayerTurn(playerID)
Pergantian Giliran Pemain
Client 1 sebagai spectator
Client 1 mengkonfirmasi sebagai spectator.
Client 2 sebagai pemain
Client 2 mengkonfirmasi sebagai pemain Server mengupdate giliran pemain kepada
Client 1(Admin)
Client 2 server
Client 3
Last Game( Client 3 playing)
Closing a Game
setGameStatus(finish)
setGameStatus(finish) Client 3 Quit
Client 2 Quit
Client 1 Quit
Server Off
Client 3 submit a word
updateBoard(letter,posX,posY)
Berikut ini adalah kondisi permainan untuk giliran pemain terakhir.
Permainan berakhir pada giliran terakhir Client 3 telah berhasil mengirimkan hasil
permainan ke server
Server mengirim update pada papan permainan ke semua client
Client 3 mengirim update poin permainan ke semua client.
Client 3 mengirim update info permainan berupa hasil susunan huruf yang didapat ke semua client.
Server mengirimkan pesan status permainan berakhir ke Client 3. Client 3 keluar dari permainan. Server mengirimkan pesan status
permainan berakhir ke client 2. Client 2 keluar dari permainan. Server mengirimkan pesan status
Client 1(Admin)
Client 2 server
Game Stoped by admin
stopGame()
Game End
Client 2
setGameStatus(finish)
Client 2 Quit
Client 3 Quit
Client 1 Quit
Server Off setGameStatus(finish)
setGameStatus(finish)
Permainan dihentikan oleh admin game.
Admin mengirim pesan untuk menghentikan permainan ke server. Server mengirim pesan ke Client 2 bahwa
permainan dihentikan/selesai. Client 2 keluar.
Server mengirim pesan ke Client 3 bahwa permainan dihentikan/selesai.
Client 3 keluar.
Server mengirim pesan ke Client 1bahwa permainan dihentikan/selesai.
Client 1(Admin)
Client 2 server
Quit()
removePlayer(playerID)
Client 3
Quit From Game (Client 3 Quit from game while in “Playing” status)
removePlayer(playerID)
Client 1 is playing
setPlayerStatus(playing) Client 3 Quit
Game Continue with the next player (Playing status Subtitution)
confirmPlayerStatus(playing) Client 3 Quit From Game
Keluar dari permainan
Client 3 mengirim pesan untuk keluar kepada server
Server mengirim perintah ke client lain untuk menghapus client 3 dari daftar pemain.
Client 3 keluar dari permainan.
Client 1(Admin)
Client 2 server
Quit()
removePlayer(playerID)
Client 3
Game stoped by server
removePlayer(playerID)
Client 3 Quit
Client 3 Quit From Game
confirmQuit()
removePlayer(playerID)
confirmQuit() Client 2 Quit From Game Quit()
setGameStatus(finish) permainan dihentikan karena jumlah pemain kurang dari jumlah minimal pemain.
Permainan dihentikan oleh server.
Client 3 mengirim pesan untuk keluar kepada server
Server mengirim perintah untuk menghapus client 3 dari daftar pemain. Server mengirimkan pesan konfirmasi
keluar darri permainan
Client 2 mengirim pesan untuk keluar kepada server
Server mengirim perintah untuk menghapus client 2 dari daftar pemain. Server mengirimkan pesan konfirmasi
keluar darri permainan
Client 1(Admin)
Client 2 server
passGame() Client 2 pass the game
Client 2 is playing Client 3
Player Pass the game (Client 2 playing)
setPlayerStatus(playing)
Client 3 is playing
Client 2 as spectator
setPlayerStatus(spectator)
confirmAsSpectator()
setPlayerStatus(playing)
Game Continue with the next player
chatMessage(message) confirmAsPlaying()
confirmAsPlaying()
chatMessage(message) chatMessage(message)
Berikut ini adalah kondisi dimana pemain meminta untuk dilewati dari giliran permainan.
Melewatkan Giliran Bermain
Client 2 sebagai pemain.
Client 2 mengkonfirmasi siap bermain. Client 2 mengirimkan perintah untuk
melewatkan giliran kepada server.
Server mengirim update info bahwa Client 2 melewatkan giliran permainan
Client 2 sebagai spectator
Client 2 mengkonfirmasi sebagai spectator.
Client 1(Admin)
Client 2 server
Client 2 change a letter Client 2 is playing Client 3
Player change letters (Client 2 playing)
setPlayerStatus(playing)
Client 3 is playing
Client 2 as spectator
setPlayerStatus(spectator)
confirmAsSpectator()
setPlayerStatus(playing) changeLetter(letter)
sendLetter(letters) confirmPlayerStatus(playing)
confirmAsPlaying()
Game Continue with the next player (Playing status Subtitution)
Menukarkan Huruf
Client 2 sebagai pemain.
Client 2 mengkonfirmasi siap bermain. Client 2 mengirimkan pesan untuk
menukar huruf kepada server. Server mengirimkan huruf baru.
Server mengirimkan pesan untuk mengupdate status Client 2 menjadi spectator
Client 2 mengkonfirmasi sebagai spectator. Permainan dilanjutkan ke urutan pemain
Client 1(Admin)
Client 2 server
Client 3
Send chat message
sendChatMessage(message)
sendChatMessage(message) sendChatMessage(message)
Mengirim Pesan Obrolan/Chatting
Client 1 mengirim pesan Chatting ke server.
Server meneruskan pesan
Berdasarkan rancangan protokol di atas, ditetapkan beberapa kasus penting yang akan digunakan sebagai acuan dalam pengujian protokol. Kasus-kasus protokol tersebut adalah sebagai berikut :
1. Membangkitkan server dan bergabung ke permainan. 2. Memulai permainan.
3. Mengirimkan hasil permainan. 4. Pergantian giliran pemain.
5. Permainan berakhir pada giliran terakhir. 6. Permainan dihentikan oleh admin game. 7. Permainan dihentikan oleh server. 8. Keluar dari permainan.
9. Melewatkan permainan. 10.Meminta huruf.
11.Menukarkan huruf.
12.Mengirimkan pesan obrolan/chatting.
Dari diagram alur protokol di atas, dapat ditetapkan beberapa Operasi yang berhubungan dengan sistem client-server. Berikut daftar Operasi Client-Server tersebut:
1. Operasi Client:
a. confrimJoin(joinStatus)
deskripsi : operasi ini digunakan untuk menangani pesan konfirmasi bahwa permintaan client untuk bergabung ke server diterima/ditolak b. setPlayerID(playerID)
deskripsi : operasi ini digunakan untuk menangani pesan men-set nomer id player kepada client.
c. addPlayer(playerID, playerName)
seorang pemain baru ke dalam daftar pemain. d. setGameStatus(statusGame)
deskripsi : operasi ini digunakan untuk menangani pesan men-set status jalannya permainan.
e. setPlayerStatus(statusPlayer)
deskripsi : operasi ini digunakan untuk menangani pesan pengaturan status pemain.
f. updatePlayerTurn(playerID)
deskripsi : operasi ini digunakan untuk menangani pesan update pemain yang sedang mendapat giliran bermain.
g. sendLetter(letter)
deskripsi : operasi digunakan untuk menangani pesan pengiriman huruf dari server ke client
h. confirmLegalMove(legalMoveStatus)
deskripsi : operasi ini digunakan untuk menangani pesan hasil uji langkah permainan(legal move).
i. confirmWordAvailable(word, checkStatus)
deskripsi : operasi ini digunakan untuk menangani pesan hasil uji kata. j. confirmFinishSubmit()
deskripsi : operasi ini digunakan untuk menangani pesan konfirmasi bahwa pemain telah berhasil mengirimkan hasil permainan.
k. updateBoard(letter,posX,posY)
l. updateScore(playerID,poin)
deskripsi : operasi ini digunakan untuk menangani update skor yang diperoleh seorang pemain/client.
m. chatMessage(message)
deskripsi : operasi ini digunakan untuk menangani pesan informasi dalam permainan.
n. removePlayer(playerID)
deskripsi : operasi ini digunakan menghapus seorang client dari daftar pemain.
o. confirmQuit()
deskripsi : operasi ini digunakan menangani pesan konfirmasi keluar dari permainan.
2. Operasi Server: a. join(playerName)
deskripsi : operasi ini digunakan untuk menangani permintaan join dalam permainan.
b. startGame()
deskripsi : operasi ini digunakan untuk menangani permintaan agar permainan dimulai dari admin client ke server
c. confirmReadyToPlay()
deskripsi : operasi ini digunakan untuk menangani pesan konfirmasi untuk siap bermain.
deskripsi : operasi ini digunakan untuk menangani pesan konfirmasi status pemain sebagai spectator.
e. confirmAsPlaying()
deskripsi : operasi ini digunakan untuk menangani pesan konfirmasi status dari pemain pemain yang mendapat giliran bermain.
f. requestLetter()
deskripsi : operasi ini digunakan untuk menangani pesan permintaan huruf oleh client.
g. changeLetter(Letter)
deskripsi : operasi ini digunakan untuk menangani permintaan menukar sebuah huruf oleh client.
h. updateBoard(letter,posX,posY)
deskripsi : operasi ini digunakan untuk menangani pesan untuk mengupdate papan permainan.
i. finishUpdateBoard()
deskripsi : operasi ini digunakan untuk menangani pesan bahwa pemain selesai mengupdate papan permainan.
j. chatMessage(message)
deskripsi : operasi ini digunakan untuk menangani pengiriman pesan obrolan/chat.
k. stopGame()
deskripsi : operasi ini digunakan untuk menangani permintaan untuk menghentikan permainan oleh admin.
deskripsi : operasi ini digunakan untuk menangani permintaan untuk melewatkan giliran permainan.
m. quit()
deskripsi : operasi ini digunakan untuk menangani permintaan keluar dari permainan.
Dari operasi-operasi di atas, ditetapkan beberapa kode pesan yang akan dipertukarkan antara client dan server. Kode pesan tersebut digunakan oleh client untuk mengirimkan pesan dan kemudian diproses oleh server. Pesan-pesan tersebut diimplementasikan dalam bentuk karakter angka yang membentuk bilangan-bilangan kode pesan. Berikut adalah daftar kode pesan yang disajikan dalam tabel.
Tabel 3.2 Tabel kode pesan protokol
No. Daftar Operasi Kode
Dasar Format Kode Pesan
1 join(playerName) 100 100#PLAYER NAME
2 quit() 101 101
3 setPlayerID(playerID) 102 102#PLAYER ID
4 addPlayer(playerID, playerName)
103 103#PLAYER ID^PLAYER
NAME
5 removePlayer(playerID) 104 104#PLAYER ID
6 setGameStatus(statusGame)
105
105#GAME STATUS
GAME STATUS :
20=START; 21=READY;
22=FINISH; 23=LAST
7 setPlayerStatus(statusPlayer)
106
106#PLAYER STATUS
PLAYER STATUS :
30=PLAYING; 31=SPECTATOR
8 updatePlayerTurn(playerID) 107 107#PLAYER ID
9 startGame() 200 200
No. Daftar Operasi Kode
Dasar Format Kode Pesan
11 requestLetter() 202 202
12 sendLetter(letter)
203
203#LETTER
LETTER:
Empty character=0;
A=1;
B=2: … Z=26
13 changeLetter(letter) 204 204#LETTER
14 updateBoard(letter,posX,posY) 205 205#LETTER^X^Y
15 updateScore(playerID,poin) 206 206#PLAYER ID^POIN
16 passGame() 207 207
17 finishUpdateGame () 208 208
18 confirmAsSpectator() 300 300
19 confirmAsPlaying() 301 301
20 confrimJoin(joinStatus)
302
302#JOIN STATUS
JOIN STATUS :
10= OK; 11=NOT_OK
21 confirmReadyToPlay() 303 303
22 confirmWordAvailable(word,
checkStatus)
304
304#WORD^CHECK STATUS
CHECK STATUS:
10= OK; 11=NOT_OK
23 confirmLegalMove(legalMoveStatus)
305
305#LEGAL MOVE STATUS
LEGAL MOVE STATUS :
1=LEGAL MOVE
0,2-7=ILLEGAL MOVE
24 confirmFinishSubmit() 306 306
25 confirmQuit() 307 307
26 chatMessage(message) 400 400#CHAT MESSAGE
27 unknownMessage 900 900
3.3. Desain Arsitektur Sistem
Berikut ini disajikan desain arsitektur sistem yang akan diimplementasikan dalam konfigurasi jaringan lokal atau LAN.
`
Client 1
Game Server
`
Client 2
`
Client 3
3.4. Analisis Sistem 3.4.1. Model Use Case 3.4.1.1. Diagram Use Case
Player
Bergabung ke Permainan Keluar dari permainan
Mengirim pesan obrolan
<<include>>
Membangkitkan Server Permainan Admin Game
Memulai Permainan
Menghentikan permainan
Sistem Server
Bermain
<<include>>
<<include>> Sistem Client
Sistem Server Mengirim Pesan ke Client
Sistem Client
Mengirim Pesan ke Server
Tabel 3.3 Definisi Use Case Sistem Client
Use Case/package Keterangan
Membangkitkan server permainan
Use case ini menggambarkan proses pembangkitan Sistem Server yang dilakukan oleh Admin Game.
Memulai permainan Use case ini menggambarkan proses untuk memulai permainan oleh Admin Game. Menghentikan permainan Use case ini menggambarkan proses untuk
menghentikan permainan oleh Admin Game Bergabung ke permainan Use case ini menggambarkan proses
bergabung ke server permainan oleh Player
Bermain Use case ini menggambarkan proses bermain
game Scrabble.
Keluar dari permainan Use case ini menggambarkan proses untuk keluar dari permainan yang dilakukan oleh Player.
Mengirim pesan obrolan Use case ini menggambarkan proses pengiriman sebuah pesan obrolan.
Package Mengirim Pesan Ke Client
Package ini menggambarkan proses untuk mengirimkan pesan dari Aktor Sistem Server. Package Mengirim Pesan Request
Ke Server
Package ini menggambarkan proses untuk mengirimkan pesan request dari Aktor Sistem Client.
1. Diagram Use Case Sistem Client
Detail Use Case Bermain
Mengambil huruf dari rack
Mengganti Huruf Kosong Bermain
Mengambil huruf dari box Meletakan huruf ke box
Meletakan huruf ke rack
<<uses>>
<<uses>>
<<uses>>
<<uses>>
<<uses>>
Mengirim hasil permainan
Gambar 3.4 Detail Use Case Bermain
Tabel 3.4 Definisi Detail Use Case Bermain
Use Case/package Keterangan
Bermain Use case ini menggambarkan proses bermain
game Scrabble meliputi case meminta huruf, menukarkan huruf, meletakkan huruf ke box, mengambil huruf dari box, mengambil huruf dari rack, meletakkan huruf ke rack, mengganti huruf kosong, mengirim hasil permainan, melewatkan giliran
Meminta Huruf Use case ini menggambarkan proses untuk meminta huruf.
Menukarkan huruf Use case ini menggambarkan proses untuk menukarkan huruf.
Meletakkan huruf ke box Use case ini menggambarkan proses meletakkan sebuah huruf ke dalam box papan permainan scrabble.
Mengambil Huruf dari Box Use case ini menggambarkan proses menggambil kembali sebuah huruf yang telah diletakkan saat menyusun sebuah kata dari dalam box papan permainan scrabble.
Use Case/package Keterangan
dalam posisi on hand(posisi saat pemain memegang huruf) ke dalam box papan permainan scrabble.
Mengambil Huruf dari Rack Use case ini menggambarkan proses mengambil sebuah huruf yang tersedia di rack huruf.
Mengganti Huruf Kosong Use case ini menggambarkan proses mengganti sebuah keping huruf kosong. Mengirim hasil permainan Use case ini menggambarkan proses
mengirim hasil susunan kata untuk kemudian diuji, poin, dan informasi hasil kata yang diperoleh dari permainan.
Melewatkan giliran Use case ini menggambarkan proses untuk melewatkan giliran permainan.
Detail Use Case Mengirim Pesan Ke Client
Use case ini menggambarkan detail interaksi yang dilakukan oleh aktor Sistem Server terhadap sistem client.
Mengirim pesan Untuk mengupdate Player ID Mengirim pesan
Untuk menambah pemain
Mengirim pesan Untuk menghapus pemain Mengirim pesan
Untuk mengupdate status permainan
Mengirim pesan Untuk mengupdate
status pemain
Mengirim pesan Untuk mengupdate
giliran pemain
Mengirim pesan Untuk menerima huruf Mengirim pesan
Untuk mengupdate Papan permainan
Mengirim pesan Untuk mengupdate
Skor pemain Mengirim pesan
Konfirmasi bergabung Ke permainan
Mengirim pesan Konfirmasi Uji Kata
Mengirim pesan Obrolan/chat Mengirim pesan ke Client
<<uses>>
Mengirim pesan konfirmasi Uji langkah permainan
Mengirim pesan Konfirmasi Telah mengirim hasil permainan
<<uses>>
<<uses>>
Mengirim pesan Konfirmasi Keluar dari permainan
<<uses>>
Tabel 3.5 Definisi Detail Use Case Mengirim Pesan ke Client
Use Case/package Keterangan
Mengirim Pesan ke Client Use case ini menggambarkan proses mengirim pesan reponse ke client. Mengirim pesan konfirmasi bergabung
ke permainan
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan konfirmasi bergabung ke permainan dari server.
Mengirim pesan untuk mengupdate skor pemain
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan mengupdate skor pemain dari server. Mengirim pesan untuk mengupdate
papan permainan.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan untuk mengupdate papan permainan.
Mengirim pesan konfirmasi uji kata. Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan konfirmasi uji kata.
Mengirim Pesan Konfirmasi Uji Langkah Permainan
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan konfirmasi uji langkah permainan/ legal-move permainan.
Mengirim Pesan Konfirmasi Telah Berhasil Mengirim Hasil Permainan
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan konfirmasi mengirim hasil permainan. Mengirim Pesan Konfirmasi Keluar
dari Permainan.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan konfirmasi permintaan keluar dari permainan.
Mengirim pesan untuk mengupdate giliran pemain.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan untuk mengupdate giliran pemain.
Mengirim pesan untuk mengupdate status pemain.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan untuk mengupdate status pemain.
Use Case/package Keterangan
Mengirim pesan untuk mengupdate status permainan.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan untuk mengupdate status permainan.
Mengirim pesan untuk menghapus pemain.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan untuk menghapus pemain.
Mengirim pesan untuk menambah pemain.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan untuk menambah pemain.
Mengirim pesan untuk mengupdate Player ID.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan untuk mengupdate Player ID.
Mengirim pesan untuk mengupdate obrolan/chat.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Server dalam mengirim pesan obrolan.
2. Diagram Use Case Sistem Server
Detail Use Case Mengirim Pesan Request ke Server
Mengirim pesan request memulai permainan Mengirim pesan request
Bergabung ke permainan
Mengirim pesan request Keluar dari permainan
Mengirim pesan request Meminta huruf Mengirim pesan request
Menghentikan permainan
Mengirim pesan request menukarkan huruf
Mengirim pesan request Mengupdate papan permainan Mengirim pesan request
Melewatkan giliran Mengirim pesan request
mengakhiri giliran Mengirim pesan request
Konfirmasi Status Pemain
Mengirim pesan request Konfirmasi memulai permainan
Mengirimkan pesan request Mengupdate obrolan/chat
Mengirim pesan request Ke Server
<<uses>>
Mengirim pesan request Mengakhiri update papan permainan
Gambar 3.6 Detail Use Case Mengirim Pesan Request ke Server
Tabel 3.6 Definisi Use Case Mengirim Pesan Request ke Server
Use Case/package Keterangan
Mengirim Pesan request ke Server Use case ini menggambarkan mengirim pesan request oleh aktor Sistem Client ke sistem server.
Mengirim pesan request bergabung ke permainan.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Client dalam mengirimkan pesan permintaan bergabung ke permainan.
Mengirim pesan request keluar dari permainan.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Client dalam mengirim pesan permintaan keluar dari permainan.
Mengirim pesan request memulai permainan.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Client dalam mengirim pesan permintaan untuk memulai permainan.
Mengirim pesan request menghentikan permainan.
Use case ini menggambarkan proses yang dilakukan oleh aktor Sistem Client dalam mengirim pesan permintaan untuk menghentikan permainan.