• Tidak ada hasil yang ditemukan

DESAIN PROTOKOL DAN PROTOTIPE APLIKASI PERMAINAN SCRABBLE BERBASIS JARINGAN

N/A
N/A
Protected

Academic year: 2019

Membagikan "DESAIN PROTOKOL DAN PROTOTIPE APLIKASI PERMAINAN SCRABBLE BERBASIS JARINGAN"

Copied!
374
0
0

Teks penuh

(1)

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

(2)

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

(3)

iii

(4)

iv

(5)

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

(6)

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.

(7)

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,

(8)

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).

(9)

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).

(10)

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.

(11)

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.

(12)

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,

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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………

(18)

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………

(19)

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………..

(20)

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………

(21)

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.

(22)

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

(23)

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

(24)

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

(25)

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.

(26)

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)

(27)

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.

(28)

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

(29)

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

(30)

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]

(31)

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

(32)

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.

(33)

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

(34)
(35)
(36)
(37)

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

(38)

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();

}

(39)

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

(40)

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

(41)

}

(42)

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.

(43)

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.

(44)

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.

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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.

(51)

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

(52)

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

(53)

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.

(54)

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.

(55)

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

(56)

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.

(57)

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

(58)

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

(59)

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)

(60)

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)

(61)

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.

(62)

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.

(63)

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

(64)

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

(65)

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

(66)

3.4. Analisis Sistem 3.4.1. Model Use Case 3.4.1.1. Diagram Use Case

(67)

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

(68)

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

(69)

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.

(70)

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>>

(71)

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.

(72)

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

(73)

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.

Gambar

Gambar 5.10 Screenshot pengujian Kasus 10………………………………...
Gambar 2.1 Papan permainan Scrabble [5]
Gambar 2.2 Daftar huruf-huruf untuk Scrabble Berbahasa Inggris [6]
Gambar 2.3 Koneksi Client-Server. [1]
+7

Referensi

Dokumen terkait

Pangkalan militer berbentuk “support facilities base” untuk tentara angkatan laut China yaitu, The People’s Liberation Army-Navy (PLAN) yang akan beroperasi di

Nasution, Bismar, Metode Penelitian Hukum Normatif dan Perbandingan Hukum, disampaikan pada dialog interaktif tentang penelitian hukum dan hasil penulisan

Pada bagian penutup ini panitia pembangunan masjid at-Taqwa Mantoeng, mengucapkan terima kasih kepada semua pihak yang telah mendermakan baik harta, pikiran maupun tenaga,

Faktor lingkungan internal dan eksternal perlu diantisipasi, dipantau, dinilai, dan disertakan sedemikian rupa ke dalam proses pengambilan keputusan eksekutif. Para

bahwa dengan berlakunya Undang-Undang Nomor 28 Tahun 2009 tentang Pajak Daerah dan Retribusi Daerah dan dalam rangka meningkatkan pelayanan kepada masyarakat serta

Pada ruang pendidikan memperlihatkan lantai 1 yaitu lobby yang langsung menuju ruang pengelola, pada lantai lantai 2 menunjukan ruang tunggu untuk ruang pengajar, pada

Persepsi guru terhadap pelaksanaan ujian semester berbasis android pada mata pelajaran sejarah adalah sudah positif, hal ini ditunjukan guru melihat bahwa ujian

Hasil penelitian yang penulis lakukan mengenai ukuran efektivitas menunjukkan bahwa Pengelolaan BUMNag Bungo Satangkai sudah cukup baik dengan adanya rencana jangka