DESAIN PROTOKOL DAN PROTOTIPE APLIKASI PERMAINAN SCRABBLE BERBASIS JARINGAN

  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

  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

HALAMAN PERSETUJUAN

  HALAMAN PENGESAHAN

  

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

  

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.

  Yogyakarta, 10 Agustus 2011

  

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

  

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

  

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

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

  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

  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,

  

DAFTAR ISI

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

DAFTAR GAMBAR

  6

  45

  26

  25

  17

  16

  15

  14

  11

  7

Gambar 3.3 Diagram Use Case Sistem……………………………………….Gambar 2.1 Papan permainan Scrabble………………………………………Gambar 3.2 Arsitektur Aplikasi Game Scrabble Berbasis Jaringan pada konfiurasi LAN(Jaringan Lokal)……………………………………………...Gambar 3.1.2 Statechart Diagram Sistem Client……………………………

  Diagram Sistem Server……………………………

Gambar 3.1.1 StatechartGambar 2.6 Diagram HTTP Protokol 4………………………………………Gambar 2.4 Diagram HTTP Protokol 3………………………………………Gambar 2.4 Diagram HTTP Protokol 2………………………………………Gambar 2.4 Diagram HTTP Protokol 1………………………………………Gambar 2.3 Koneksi Client- Server…………………………………………...Gambar 2.2 Daftar huruf- huruf untuk Scrabble Berbahasa Inggris…………..

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

  72

  73

  73

  73

  74

  75

  75

  76

  76

  77

  77

  78

  79 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 Screensho t pengujian Kasus 12………………………………..

  83

  84

  85

  86

  86

  

DAFTAR TABEL

Tabel 2.1 Tabel Construktor Class ServerSocket……………………………..

  19

  54

  53

  51

  49

  47

  43

  27

  20

  18

Tabel 2.2 Tabel Method ServerSocket………………………………………..

  17

Tabel 3.8 Tabel Skenario Use Case…………………………………………..Tabel 3.7 T abel Definisi Aktor……………………………………………….Tabel 3.6 Definisi Use Case Mengirim Pesan Request ke Server……………Tabel 3.5 Definisi Detail Use Case Mengirim Pesan ke Client………………Tabel 3.4 Definisi Detail Use Case Bermain…………………………………Tabel 3.2 Tabel kode pesan protokol………………………………………… Tabel 3.3 Definisi Use Case Sistem Client…………………………………..Tabel 3.1 Tabel rancangan diagram alur protokol……………………………Tabel 2.3 Tabel Construktor Kelas Socket…………………………………… Tabel 2.4 Tabel Method Kelas Socket………………………………………..

  56

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

  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 Dalam bab ini berisi kesimpulan dan saran dari hasil analisa, perancangan, dan implementasi sistem.

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

   3 poin : B ×2 , C ×2 , M ×2 , P ×2  ×2 ×2 ×2 ×2 ×2

  4 poin : F , H , V , W , Y

   5 poin : K ×1

   8 poin : J ×1 , X ×1  ×1 ×1

  10 poin : Q , Z

Gambar 2.2 Daftar huruf-huruf untuk Scrabble Berbahasa Inggris [6]

2.1.3. Tahap Permainan

  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.

  1. Poin yang tertera pada huruf yang diletakkan dikalikan dengan petunjuk kotak bonus, di kalikan 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

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

  GET / HTTP/1.1

  seperti " " (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,

  200 OK

  seperti " ", dan sebuah pesan yang diminta, atau sebuah pesan error atau pesan lainnya. Berikut ini adalah contoh diagram protokol HTTP dengan kasus membuka halaman www.eventhelix.com :

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.

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

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

  }

  Jika host tidak ditemukan atau tidak berfungsi maka konstructor akan melemparkan UnknownHostException tetapi jika socket tidak dapat dibuka maka akan dilemparkan ke IOException ada beberapa hal yang menyebabkan permintaan koneksi gagal misalnya host tujuan mungkin tidak menerima koneksi, koneksi dial-up terputus atau permasalahan routing menolak host tujuan(rejected). Selain metode diatas definisi socket dapat dilakukan dengan menggunakan class InetAddress.

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 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, dihar uskan untuk menekan tombol ”submit” untuk menyelesaikan permainan. Secara otomatis setelah menerima pesan submit kata dari client, server akan melakukan pengecekan dalam kamus. 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.

  Berikut ini disajikan arsitektur protokol permainan scrabble yang akan dibuat.

3.2.1. Statechart Diagram Client-Server Permainan Scrabble

  Connection found Connection Establish

  Do nothing failure Read Stream success

  Idle failure Process Command success success Write Stream failure

  Connect to Server Success failure Do nothing Connection Establish Idle Read Stream success failure Send a request message success Process a command Write Stream Send request message failure Connection Closed

3.2.2. Diagram Alur Protokol Permainan

Tabel 3.1 rancangan diagram alur protokol Client 3 Client 2 Client 1(Admin) server Diagram Alur Protokol

  Keterangan Membangkitkan Server dan Bergabung ke Join a game permainan. GAME SERVER CREATED  Admin game membangkitkan server setPlayerID(playerID) Join(playerName)  Client Admin bergabung ke permainan confirmJoin(OK)  Server konfirmasi permintaan join. permainan. addPlayer(playerID, playerName)  Server memberikan ID kepada Client Client 2 Join a game  Server konfirrmasi penambahan pemain ke Join(playerName) admin confirmJoin(OK)  Client 2 bergabung ke permainan setPlayerID(playerID)  konfirmasi permintaan join. Client 3 Join a game Join(playerName) addPlayer(playerID, playerName) addPlayer(playerID, playerName) admin dan client 2 addPlayer(playerID, playerName)  Server konfirrmasi penambahan pemain ke  Server memberikan ID kepada Client confirmJoin(OK)  Client 3 bergabung ke permainan setPlayerID(playerID)  konfirmasi permintaan join. addPlayer(playerID, playerName)  Server konfirrmasi penambahan pemain ke addPlayer(playerID, playerName) addPlayer(playerID, playerName)  Server memberikan ID kepada Client addPlayer(playerID, playerName) addPlayer(playerID, playerName) admin, client 2 dan client 3 Client 3 Client 2 Client 1(Admin) server Memulai Permainan

  Starting The Game  Client 1 sebagai Admin memulai

startGame()

permainan.

setGameStatus(start)

   Server memberi informasi permainan confirmReadyToPlay() dimulai ke admin, client 2 dan client 3.

setGameStatus(start)

confirmReadyToPlay()

setGameStatus(start)

   Client dan Admin Client mengirim pesan confirmReadyToPlay() konfirmasi untuk siap bermain.

  Setting player status to start turn the game (Client 1 playing, Client 2 & 3 as spectator)  Pembagian status pemain (client 1 sebagai pemain, pemain lain sebagai spectator)  Client 1 sebagai pemain

setPlayerStatus(playing)

   Client 1 mengkonfirmasi siap bermain

confirmPlayerStatus(playing)

updatePlayerTurn(playerID)

   Server mengupdate informasi giliran pemain kepada Client/pemain lain updatePlayerTurn(playerID) updatePlayerTurn(playerID)

   Client 1 mulai bermain Client 1 is playing Client 3 Client 2 Client 1(Admin) server Request Letter

  Meminta Huruf Client 1 request letter

requestLetter()

   Client 1 meminta huruf ke Server

sendLetter(Letter)

   Server mengirimkan pesan untuk menerima hururf Client 1(Admin) Client 2 server

  Client 1 submit a word Client 3

confirmLegalMove(legalMoveStatus)

updateScore(playerID,poin)

updateScore(playerID,poin)

updateBoard(letter,posX,posY)

updateScore(playerID,poin)

chatMessage(message)

chatMessage(message)

Submit Playing Result

confirmWordAvailable(word,OK)

updateBoard(letter,posX,posY)

updateBoard(letter,posX,posY)

finishUpdateBoard()

chatMessage(message)

confirmFinishSubmit()

updateBoard(letter,posX,posY)

  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 mengirim update info permainan berupa hasil kata yang diperoleh dari permainan kepada pemain/client lainnya melalui pesan obrolan. Client 3 Client 2 Client 1(Admin) server Playing status substitution (Client 2 playing)

  Pergantian Giliran Pemain Client 1 as spectator setPlayerStatus(spectator)

   Client 1 sebagai spectator  Client 1 mengkonfirmasi sebagai spectator. confirmAsSpectator() Client 2 is playing

setPlayerStatus(playing)

   Client 2 sebagai pemain confirmAsPlaying()

   Client 2 mengkonfirmasi sebagai pemain updatePlayerTurn(playerID)

   Server mengupdate giliran pemain kepada updatePlayerTurn(playerID) Client/pemain lain. updatePlayerTurn(playerID) Client 3 Client 2 Client 1(Admin) server Last Game( Client 3 playing) Berikut ini adalah kondisi permainan Client 3 submit a word updateBoard(letter,posX,posY) untuk giliran pemain terakhir.

  Permainan berakhir pada giliran terakhir . . .

   Client 3 telah berhasil mengirimkan hasil .. confirmFinishSubmit() .

  . . updateBoard(letter,posX,posY) permainan ke server updateBoard(letter,posX,posY)  Server mengirim update pada papan updateScore(playerID, poin) updateBoard(letter,posX,posY) updateScore(playerID, poin) permainan ke semua client updateScore(playerID, poin)  Client 3 mengirim update poin permainan chatMessage(message) chatMessage(message) ke semua client. chatMessage(message)  Client 3 mengirim update info permainan chatMessage(message) berupa hasil susunan huruf yang didapat ke Closing a Game setGameStatus(finish)  Server mengirimkan pesan status semua client. Client 3 Quit permainan berakhir ke Client 3. setGameStatus(finish)  Client 3 keluar dari permainan.

   Server mengirimkan pesan status Client 2 Quit setGameStatus(finish) permainan berakhir ke client 2.  Client 2 keluar dari permainan. Client 1 Quit  Server mengirimkan pesan status Server Off permainan berakhir ke client 1.  Client 1 keluar dari permainan.  Server Off. Client 2 Client 2 Client 1(Admin) server Permainan dihentikan oleh admin game.

  Game Stoped by admin  Admin mengirim pesan untuk menghentikan permainan ke server. stopGame()

   Server mengirim pesan ke Client 2 bahwa setGameStatus(finish) permainan dihentikan/selesai.

   Client 2 keluar.

  Client 2 Quit  Server mengirim pesan ke Client 3 bahwa setGameStatus(finish) permainan dihentikan/selesai.

   Client 3 keluar. setGameStatus(finish)

   Server mengirim pesan ke Client 1bahwa Client 3 Quit permainan dihentikan/selesai.

   Client keluar.

  Client 1 Quit  Server berhenti.

  Server Off  Permainan berakhir. Game End 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.  Permainan dilanjutkan ke giliran pemain berikutnya.

  Berikut ini adalah kondisi dimana permainan dihentikan karena jumlah Client 3 Client 2 Client 1(Admin) server pemain kurang dari jumlah minimal pemain. Permainan dihentikan oleh server.

  Game stoped by server Client 3 Quit From Game  Client 3 mengirim pesan untuk keluar

  Quit() kepada server

removePlayer(playerID)

   Server mengirim perintah untuk menghapus client 3 dari daftar pemain.

removePlayer(playerID)

   Server mengirimkan pesan konfirmasi

confirmQuit()

keluar darri permainan

  Client 3 Quit Quit()

   Client 2 mengirim pesan untuk keluar Client 2 Quit From Game kepada server

removePlayer(playerID)

   Server mengirim perintah untuk

confirmQuit()

Client 2 menghapus client 2 dari daftar pemain.

  Quit  Server mengirimkan pesan konfirmasi keluar darri permainan

  Game Finish  Server mengirimkan pesan bahwa

setGameStatus(finish)

permainan berakhir kepada admin

   Server Off Server Off

  Client 3 Client 2 Client 1(Admin) server Berikut ini adalah kondisi dimana pemain meminta untuk dilewati dari giliran permainan.

  Player Pass the game (Client 2 playing) Melewatkan Giliran Bermain

  Client 2 is playing

setPlayerStatus(playing)

 Client 2 sebagai pemain. confirmAsPlaying()  Client 2 mengkonfirmasi siap bermain. Client 2 pass the game

   Client 2 mengirimkan perintah untuk passGame() melewatkan giliran kepada server. chatMessage(message) chatMessage(message)

   Server mengirim update info bahwa Client chatMessage(message)

  2 melewatkan giliran permainan Client 2 as spectator

setPlayerStatus(spectator)

   Client 2 sebagai spectator confirmAsSpectator()  Client 2 mengkonfirmasi sebagai spectator.

  Client 3 is playing setPlayerStatus(playing) confirmAsPlaying()

   Permainan dilanjutkan ke giliran pemain berikutnya Game Continue with the next player Client 3 Client 2 Client 1(Admin) server Player change letters (Client 2 playing)

  Menukarkan Huruf Client 2 is playing

setPlayerStatus(playing)

   Client 2 sebagai pemain. confirmPlayerStatus(playing)  Client 2 mengkonfirmasi siap bermain. Client 2 change a letter

   Client 2 mengirimkan pesan untuk changeLetter(letter) menukar huruf kepada server.

sendLetter(letters)

 Server mengirimkan huruf baru.

  Game Continue with the next player (Playing status Subtitution) Client 2 as spectator  Server mengirimkan pesan untuk

setPlayerStatus(spectator)

mengupdate status Client 2 menjadi

confirmAsSpectator()

spectator  Client 2 mengkonfirmasi sebagai spectator.

  Client 3 is playing setPlayerStatus(playing)

   Permainan dilanjutkan ke urutan pemain confirmAsPlaying() berikutnya 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 Obrolan/Chatting ke semua Client. 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: 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.