Implementasi Metode N-Gram Untuk Memprediksi Arah Pukulan Bola Pada Game Tenis Meja

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

SOFYAN SEPTYA PUTRA

10109639

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2014


(2)

(3)

(4)

Nama : Sofyan Septya Putra Tempat, Tanggal Lahir : Jakarta, 30 Juli 1991

Jenis kelamin : Laki-Laki

Agama : Islam

Kewarganegaraan : Indonesia

Alamat : Jl. Tubagus Ismail Dalam No.15a

Bandung – Jawa Barat 40134

No. Telp : +6282217150024

E-mail : sofyanseptya@gmail.com

2. RIWAYAT PENDIDIKAN 1996 – 1997

1997 – 2003

: :

Taman Kanak-kanak Islam Mutiara Karawang Sekolah Dasar Negeri 1 Pancawati

2003 – 2006 : Sekolah Menengah Pertama Negeri 1 Klari 2006 – 2009 : Sekolah Menengah Atas Negeri 5 Karawang

2009 – 2014 : Fakultas Teknik dan Ilmu Komputer Jurusan Teknik Informatika Universitas Komputer Indonesia

Bandung

Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan sadar dan tanpa paksaan.

Bandung, 19 Agustus 2014


(5)

v

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... x

DAFTAR SIMBOL ... xi

DAFTAR LAMPIRAN ... xiv

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Perumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 2

1.4 Batasan Masalah ... 2

1.5 Metodologi Penelitian ... 3

1.6 Sistematika Penulisan ... 4

BAB 2 LANDASAN TEORI ... 7

2.1 Tenis Meja ... 7

2.1.1 Sejarah Singkat Tenis Meja ... 7

2.1.2 Peraturan-Peraturan ... 9

2.2 Game ... 10

2.3 AI (Artificial Intelligence)... 11

2.3.1 Konsep Dasar Algoritma ... 11

2.3.2 Action Prediction ... 13

2.3.3 Metode N-Gram ... 13

2.4 Object Oriented and Design (OOAD) ... 15

2.4.1 Konsep-Konsep OOAD ... 16

2.4.2 OOP (Object Oriented Programming) ... 19


(6)

vi

2.7.1 Metode Blackbox ... 27

2.7.2 Metode Whitebox ... 28

BAB 3 ANALISIS DAN PERANCANGAN ... 29

3.1 Analisis Masalah ... 29

3.2 Analisis Game ... 29

3.3 Analisis Masukan ... 30

3.4 Analisis Metode ... 32

3.4.1 Analisis Struktur Data ... 32

3.4.2 Metode N-Gram ... 33

3.4.3 Blok Diagram Metode N-Gram ... 34

3.4.4 Studi Kasus ... 35

3.5 Analisis Kebutuhan Non-Fungsional ... 37

3.5.1 Analisis Kebutuhan Perangkat Lunak ... 37

3.5.2 Analisis Kebutuhan Perangkat Keras ... 37

3.5.3 Spesifikasi Kebutuhan Perangkat Lunak ... 38

3.6 Analisis Kebutuhan Fungsional ... 39

3.6.1 Use Case Diagram ... 39

3.6.2 Use Case Skenario ... 40

3.6.3 Activity Diagram ... 42

3.6.4 Class Diagram ... 45

3.6.5 Sequence Diagram ... 45

3.7 Perancangan Sistem ... 47

3.7.1 Perancangan Antarmuka ... 47

3.8 Perancangan Method ... 50

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 53

4.1 Implementasi ... 53


(7)

vii

4.2.2 Pengujian Blackbox ... 57

4.2.3 Pengujian Whitebox ... 58

4.2.4 Pengujian Metode ... 64

BAB 5 KESIMPULAN DAN SARAN ... 69

5.1 Kesimpulan ... 69

5.2 Saran ... 69


(8)

70

Berbasis OS Mobile, Program Studi Teknik Informatika, Universitas Trunojoyo, Bangkalan.

[2] Hanantasia Dinda Patriawan, 2012, Pengembangan Penilaian Teknik Servis Backspin Forehand Dan Backhand Atlet Tenis Meja Yunior Klub Jusma Table Tenis School. Fakultas Ilmu Keolahragaan, Universitas Negeri Yogyakarta, Yogyakarta.

[3] Sugiyono, 2009, Metode Penelitian Kuantitatif Kualitatif dan R&D, Alfabeta, Bandung.

[4] Rosa A.S, M. Shalahudin, 2011, Modul Pembelajaran (rekayasa perangkat lunak), Modula, Bandung.

[5] Larry Hodges, 2006, Tenis Meja Tingkat Pemula, RajaGrafindo Persada, Jakarta.

[6] Nilwan, 1996, Pemrograman Animasi dan Game Profesional, Elek Media Komputindo, Jakarta.

[7] Ivan C.Sibero, 2009, Langkah Mudah Mebuat Game 3D, Mediakom, Yogyakarta.

[8] Russel, Stuart dan Peter Norvig, 1995, Artificial Intelligence A Modern Approach Second Edition, Pearson Education, Inc., New Jersey.

[9] Iam Millington, John Funge, 2009, Artificial Intellegence For Games, Morgan Kaufmann Publisher, New York.

[10] O’Docherty, M., 2005, Object-Oriented Analysis and Design: Understanding System Development with UML 2.0, John Wiley & Sons. [11] Shalahuddin, M dan Rosa A. S, 2011, Rekayasa Perangkat Lunak

(Terstruktur dan Berorientasi Objek). Bandung : Modula.

[12] Widodo Prabowo, Herlawati, 2011, Menggunakan UML, Penerbit Informatika, Bandung.


(9)

[13] Colin Moock, 2007, Essential ActionScript 3.0, First Edition ed. Sebastopol, CA: O'Reilly Media, Inc.

[14] Andi Offset, 2012, Beragam Desain Game Edukasi dengan Adobe Flash CS5, Wahana Komputer, Yogyakarta.

[15] Pressman, Roger S, 2012, Software Engineering : A Practitioner’s Approach, 7th edition, McGraw Hill Higher Education.


(10)

iii

Puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat serta hidayah-Nya sehingga penulis dapat menyelesaikan penulisan skripsi dengan judul “IMPLEMENTASI METODE N-GRAM UNTUK MEMPREDIKSI ARAH PUKULAN BOLA PADA GAME TENIS MEJA” sebagai salah satu syarat kelulusan pada Program Strata 1 Jurusan Teknik Informatika Fakultas Ilmu dan Teknik Komputer di Universitas Komputer Indonesia.

Dengan selesainya penyusunan laporan tugas akhir ini penulis banyak memperoleh dukungan, masukan dan bimbingan yang sangat bermanfaat dari berbagai pihak selama penulisan laporan tugas akhir ini, oleh karena itu penulis mengucapkan terima kasih kepada :

1. Allah SWT atas rahmat, berkah dan izin-Nya saya bisa menyelesaikan penulisan skripsi ini.

2. Bunda dan ayah sebagai orangtua serta keluarga besar yang telah memberikan dukungan baik secara moril maupun materil dan doa yang tiada hentinya sehingga penulis bisa bertahan dan berpijak hingga saat ini.

3. Bapak Galih Hermawan, S.Kom., M.T. selaku pembimbing, yang telah membimbing penulis dalam menyelesaikan tugas akhir.

4. Ibu Nelly Indriani W, S.Si., M.T. selaku reviewer yang telah banyak memberikan masukan dan arahan.

5. Ibu Utami Dewi W, S.kom. selaku dosen wali IF-14 2009 selama penulis menempuh pendidikan di UNIKOM

6. Sarah Noviyaline, Riki Adam, Ryan Ardian, Muhammad Nur Iman dan Aditya yang selalu ada di samping memberikan dukungan

7. Untuk teman-teman IF-14 2009 seperjuangan dan semua pihak yang membantu dalam menyelesaikan tugas akhir ini yang tidak dapat penulis


(11)

iv

pihak khusunya bagi penulis dan umumnya bagi pembaca.

Bandung, Juli 2014


(12)

1

Pengembangan tentang AI (Artificial Intelligence) pada perilaku NPC (Non Player Character) dalam game, sampai saat ini masih terus dikembangkan. Penerapan AI yang baik pada sebuah game adalah ketika sebuah karakter didalam permainan menunjukan perilaku yang konsisten dan realistis, bereaksi dengan tepat kepada tindakan pemain dan karakter lain seperti halnya manusia. Terdapat banyak AI (Artificial Intelligence) yang dapat diterapkan dalam game salah satunya N-Gram. N-Gram dalam game adalah kecerdasan buatan untuk NPC (Non Player Character) yang digunakan untuk memprediksi perilaku player pada game sehingga dapat memperoleh keputusan yang akan dilakukan [1].

Permainan tenis meja atau yang lebih dikenal dengan istilah “pingpong” merupakan suatu cabang olahraga yang unik dan kreatif. Pengertian tenis meja adalah suatu permainan yang menggunakan meja sebagai lapangan yang dibatasi oleh jaring (net) yang menggunakan bola kecil yang terbuat dari celluloid dan permainannya menggunakan pemukul atau yang disebut bet. Permainan tenis meja adalah suatu permainan dengan menggunakan fasilitas meja dan perlengkapannya serta raket dan bola sebagai alatnya [2]. Pada penelitian ini permainan tenis meja akan disimulasikan dalam game dengan menggunakan metode N-Gram yang diyakini mampu diterapkan pada NPC (Non Player Character) untuk menebak arah pukulan bola.

Game bertema tenis meja saat ini sudah ada beberapa, salah satunya adalah game ping pong mini akan tetapi pada game tersebut belum adanya penerapan AI (Artificial Intelligence) sedangkan metode N-Gram sendiri sudah pernah digunakan pada penelitian untuk membuat game fighting madura, game ini diterapkan pada NPC (Non Player Character) untuk memprediksi gerakan player dengan 6 gerakan yaitu menendang, memukul, bertahan, berjalan mundur ,berjalan maju dan menunduk. Pada penelitian ini game tenis meja menerapkan metode N-Gram sebagai AI (Artificial Intelligence) yang diharapkan untuk


(13)

mengoptimalkan pergerakan NPC agar bisa memprediksi arah pukulan bola yang dipukul oleh player sebelum memprediksi NPC (Non Player Character) hanya akan menebak arah pukulan secara acak akan tetapi game tenis meja ini mempunyai gameplay yang hampir sama dengan game tenis yang lainnya.

Berdasarkan latar belakang tersebut diatas, maka diusulkan dalam sebuah penelitian untuk membuat sebuah game yang memiliki genre olahraga dan menerapkan metode N-Gram sebagai AI untuk memprediksi arah pukulan bola pada NPC. Adapun penelitian tersebut dituangkan dalam penyusunan skripsi dengan judul “Implementasi Metode N-Gram Untuk Memprediksi Arah Pukulan Bola Pada Game Tenis Meja”.

1.2 Perumusan Masalah

Berdasarkan uraian dari latar belakang masalah, maka perumusan masalah dari penelitian ini yaitu bagaimana memberikan kemampuan kepada NPC (Non Player Character) untuk dapat memprediksi arah pukulan bola dari player secara tepat dengan menggunakan metode N-Gram.

1.3 Maksud dan Tujuan

Maksud dari penulisan tugas akhir ini adalah untuk Penelitian pada implementasi metode N-Gram untuk memprediksi arah pukulan bola pada game tenis meja Sedangkan tujuan dari penulisan skripsi ini adalah agar NPC (Non Player Character) dapat memprediksi pergerakan arah pukulan bola dari player secara tepat.

1.4 Batasan Masalah

Batasan masalah dalam membuat aplikasi ini antara lain :

1. Data keluaran berupa pukulan ke arah kiri, kanan dan tengah oleh NPC. 2. AI (Artificial Intelligence) yang akan digunakan adalah Metode N-Gram.

Dimana metode ini akan diterapkan pada NPC sehingga NPC akan memprediksi kemana arah bola yang akan dipukul oleh player.


(14)

4. Pemodelan perancangan sistem menggunakan pemodelan UML.

5. Tools yang digunakan untuk membangun game ini menggunakan bahasa pemrograman Actionscript 3.0 dengan software pembangun Adobe Flash.

1.5 Metodologi Penelitian

Metode penelitian yang digunakan adalah metode deskriptif. Metode deskriptif merupakan metode yang menggambarkan fakta-fakta dan informasi dalam situasi atau kejadian sekarang secara sistematis, faktual dan akurat [3].

1.5.1 Metode pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :

a. Studi Literatur

Pengumpulan data dengan cara mengumpulkan jurnal dan bacaan-bacaan yang ada kaitannya dengan materi penelitian. Khususnya tentang game, tenis meja dan kecerdasan buatan N-Gram untuk game.

b. Observasi

Pengumpulan data dengan penelitian dan peninjauan langsung terhadap metode sejenis dan game sejenis yang sudah ada.

1.5.2 Metode Pengembangan Perangkat Lunak

Metode pengembangan perangkat lunak ilustrasi model waterfall. Model ilustrasi waterfall adalah model sistematik untuk pembangunan perangkat lunak yang mempunyai tahapan-tahapan dalam proses pembangunan perangkat lunaknya mulai dari proses analisis, design, code, sampai proses testing [4]. Gambar 1.1 merupakan gambar model ilustrasi waterfall.

1. Tahap analisis

Tahap analisis mulai mencari fungsionalitas-fungsionalitas yang dibutuhkan untuk membangun game yang dalam hal ini meliputi analisis metode N-Gram, analisis masalah, analisis masukan serta analisis kebutuhan fungsional dan nonfungsional.


(15)

2. Tahap design

Pada tahap ini melakukan perancangan dari game tenis meja yang dibuat meliputi perancangan antarmuka, perancangan sistem, serta mendesain.

3. Tahap code

Tahap code yaitu mulai mengeksekusi perancangan-perancangan yang dilakukan sebelumnya ke dalam bahasa pemrograman actionscript.

4. Tahap testing

Tahap testing bertujuan untuk menemukan kesalahan-kesalahan terhadap perangkat lunak untuk kemudian bisa diperbaiki.

Gambar 1.1 Ilustrasi Model Waterfall [4]

1.6 Sistematika Penulisan

Sistematika penulisan laporan tugas akhir penelitian ini untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini menguraikan tentang latar belakang masalah, rumusan masalah, maksud dan tujuan penelitian, batasan masalah, metodologi penelitian, dan sistematika penulisan.


(16)

BAB 2 LANDASAN TEORI

Bab ini menjelaskan tentang tenis meja dan sejarah dari tenis meja, kecerdasan buatan, metode N-Gram yang akan dipakai untuk game ini dan tools yang akan digunakan dalam penelitian ini.

BAB 3 ANALISIS DAN PERANCANGAN

Bab ini menjelaskan mengenai analisis sistem yang mencakup analisis masalah, analisis game tenis meja, analisis masukan, analisis metode / algoritma, analisis kebutuhan non fungsional serta analisis kebutuhan fungsional.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini menjelaskan tentang implementasi yang mencakup implementasi perangkat keras, implementasi perangkat lunak dan implementasi antarmuka dan juga pengujian sistem seperti skenario pengujian, pengujian blackbox dan metode. BAB 5 KESIMPULAN DAN SARAN

Bab ini menjelaskan tentang kesimpulan dan saran yang diperoleh dari hasil penulis tugas akhir.


(17)

(18)

7

Permainan tenis meja atau yang lebih dikenal dengan istilah “pingpong” merupakan suatu cabang olahraga yang unik dan kreatif. Pengertian tenis meja adalah suatu permainan yang menggunakan meja sebagai lapangan yang dibatasi oleh jaring (net) yang menggunakan bola kecil yang terbuat dari celluloid dan permainannya menggunakan pemukul atau yang disebut bet. Permainan tenis meja adalah suatu permainan dengan menggunakan fasilitas meja dan perlengkapannya serta raket dan bola sebagai alatnya. Tenis meja adalah olaharaga raket yang paling terkenal di dunia dan jumlah partisipannya menempati urutan kedua [5].

2.1.1 Sejarah Singkat Tenis Meja

Negara asal tenis meja yang sebenernya tidak diketahui. Olahraga ini dimulai kira-kira tahun 1890-an sebagai permainan pendatang dan menebarkan keranjingan akan olahraga ini di seluruh kota dan tidak lama kemudian menghilang.

Tenis meja menjadi popular kembali pada tahun 1920-an, dan klub-klub bermunculan diseluruh dunia. Nama alinya, ping-pong, adalah dari nama merk dagang Parker Brothers, dari ping-pong diubah menjadi teni meja. Federasi Tenis Meja Internasional (ITTF) didirikan pada tahun 1926. Asosiasi Tenis Meja Amerika Serikat (USTTA) didirikan pada tahun 1933.

Sebagai permainan pendatang, olahraga ini sering dimainkan dengan bola yang terbuat dari gabus dan bet dari kulit binatang. (bet ini dilengkapi dengan sejenis getah karet yang dilekatkan dikedua sisi bet). Pada tahun 1920-an, bet yang terbuat dari kayu berlapiskan getah karet mulai digunakan. Ini adalah bet getah karet yang pertama, dan jenis yang paling popular hingga tahun 1950.

Pada saat itu terdapat dua tipe permainan yang dominan:hitter dan chopper. Hitter biasanya memukul apa saja sedangkan chopper akan mundur 10


(19)

atau bahkan 20 kaki dari meja, dan mengembalikan bola dengan pukulan backspin. Karena serangan pemain dengan getah karet sangat terbatas, maka tipe chopper mendominasi. Hal ini menimbulakan masalah apabila dua pemain tipe chopper bermain bersamaan: keduanya akan memukul bola bolak-balik selama ber jam-jam, menunggu lawannya untuk menyerang dan membuat kesalahan. Hal ini dihentikan dengan dibuatnya peraturan ekspedit. Peraturan ini membantu pemain menyelesaikan satu set tidak lebih dari 15 menit. Pada saat ekspedit disebutkan, pemain-pemain harus bergantian melakukan servis, dan siapa yang melakukan servis harus menang dalam 13 pukulan, termasuk servis. Wasit menghitung setiap pukulan dengan keras dan memberikan poin pada penerima bola bila ia mengembalikan 13 pukulan secara berurutan. Ini membuat pemain yang melakukan servis memainkan rally yang panjang dan membosankan dengan agresif.

Pada tahun 1952, seorang pemain dari Jepang yang relative tidak terkenal bernama Hiroje Satoh menunjukan jenis bet yang aneh pada Kejuaraan Dunia. Betnya terbuat dari sebilah kayu yang dilapisi dengan selembar spons tebal. Dengan mudah ia memenangkan pertandingan tersebut, dan sejak saat itu terjadi perubahan dalam dunia tenis meja.

Selama 10 tahun berikutnya, hampir seluruh pemain top mengganti betnya. Ada dua tipe yang dikembangkan: inverted dan pip-out. Tipe inverted memungkinkan pemain untuk melakukan pukulan berputar yang lebih jauh dari biasanya, dan kedua tipe ini membuat serangan dan serangan balik lebih mudah dilakukan. Amerika, yang menguasai tenis meja hingga saat ini (urutan pertama pada Kejuaraan Dunia tahun 1952 adalah Marty Reisman dari Amerika), lambat membuat perubahan, dan pada tahun 1960-an hampir menjadi juru kunci dari peringkat dunia.

Pada awal tahun 1960-an, pemain-pemain muli menyempurnakan perminan dengan bet datri spons. Pertama mereka mengembangkan pukulan putar (pukulan topspin yang keras), dan tak nlama kemudian pukulan ini menjadi tipe yang paling popular. Servis spin dikembangkan, seperti gerakan memotong


(20)

(mengembalikan smash dengan sikap bertahan), yang menjadi senjata utama Nobuhika Hasegawa dari Jepang pada Kejuaraan Dunia tahun 1967.

Jepang mendominasi pertandingan selama tahun 1950-an, umurnya karena pemainnya menggunakan bet yang berlapis spons. Mereka juga memperkenalkan penhold grip (cara memegang bet seperti memegang pena), yang membuat mereka mendominasi pukulan forehand. Cina pada awalnya hanya menggunakan penhold grip tapi kemudian juga menggunakan shakehands grip (cara memegang bet seperti berjabat tangan) yang mulai mendominasi pada awal tahun 1960-an. Mereka mendominasi pertandingan hampir berturut-turut hingga Kerajaan Dunia tahun 1989 di mana Swedia menghilangkan masa suram dengan mengalahkan Cina 5-0 untuk kejuaraan beregu. Kedua finalis Tunggal Putra dimenangi oleh Swedia dengan Jan-Ove Waldner mengalahkan Jorgen Persson dengan 3-2. Swedia mengulangi kemenangannnya pada Kejuaraan Dunia tahun 1991, kali ini mengalahkan Yugoslavia di dinal. Waldner dan Persson sekali lagi menjadi finalis, tapii kali ini person menang 3-0. Cina jatuh ke peringkat 7, tapi kebnanyakan hasil turnamen menunjukan mereka bangkit untuk menjadi paling tidak yang kedua terbaik di dunia [5].

2.1.2 Peraturan-Peraturan

Terdapat sejumlah kesalahpahaman dan kesalahan konsepsi mengenai peraturan tenis meja. Berikut ini adalah poin penting yang harus diperhatikan [5]. 1. Penilaian

a. Seorang pemain memperoleh nilai bila lawannya gagal melakukan pengembalian bola yang sah. Ini termasuk memukul bola keluar dari ujung atau sisi meja, memukul bola ke net, atau gagal melakukan servis yang baik.

b. Satu set dimenangkan dengan 21 poin. (Pemain sering melakukan set latihan dengan 11 poin).

c. Satu permainan harus dimenangkan dengan 2 poin.

d. Satu pertandingan selesai dengan 2 kali menang dan 3 set atau 3 kali menang dari 5 set.


(21)

e. Servis berpindah setiap 5 poin, kecuali saat deuce (20-20) di mana pemain melakukan servis bergantian tiap 1 poin.

f. Permainan tidak berhenti pada 7-0 atau skor lainnya kecuali 21 atau deuce. 2. Servis

a. Bola harus diletakan pada tangan yang ditelentangkan, dengan ibu jari direnggangkan dan jari lainnya dirapatkan.

b. Bola harus dilemparkan ke atas sedikitnya 6 inci. Tinggi net adalah 6 inci dan dapat digunakan sebagai perbandingan.

c. Bola harus dipukul setelah bola turun.

d. Kontak harus terjadi di posisi lebih tinggi dari meja dan di belakang garis pinggir atau ketinggian yang telah diperkirakan.

e. Servis let (servis yang terkena net tapi mengenai sisi meja lawan) harus diulangi kembali. Anda melakukan sejumlah servis let tanpa kehilangan poin.

f. Bola harus memantul di kedua sisi meja saat servis. 3. Rally

a. Apabila anda memukul bola sebelum bola memantul di sisi meja anda (volley) anda kehilangan satu poin.

b. Rally terus berlanjut sampai seorang gagal mengembalikan bola.

c. Apabila anda menggerakan atau menyentuh meja dengan tangan yang bebas, anda kehilangan poin.

d. Untuk memulai permainan, satu pemain menyembunyikan bola dalam salah satu telapak tangannya di bawah meja dan pemain lainnya mencoba menerka tangan mana yang memegang bola. Pemenang nya dapat memilih untuk melakukan servis atau menerima servis, atau sisi mana yang harus memulai. Anda juga dapat menggunakan koin.

2.2 Game

Dalam bagian ini akan dibahas pengertian game, Game adalah kegiatan yang memiliki tujuan untuk dicapai dan dibatasi dengan peraturan bagi para pemainnya yang bersifat menyenangkan dan untuk membuat game maka haruslah


(22)

memahami teknik dan metode animasi [6]. Game bertujuan untuk menghibur, biasanya game banyak disukai oleh anak – anak hingga orang dewasa. Game sebenarnya penting untuk perkembangan otak, untuk meningkatkan konsentrasi dan melatih untuk memecahkan masalah dengan tepat dan cepat karena dalam game terdapat berbagai konflik atau masalah yang menuntut untuk dilesaikan dengan cepat dan tepat.

Game merupakan salah satu teknologi yang perkembangannya sangat pesat pada masa kini di mulai dari game sederhana seperti permainan kartu, catur sampai permainan yang di mainkan di beberapa sarana atau perangkat teknologi seperti Playstation 3, Xbox 360, Nintendo Wii, PSP, Nintendo DS, maupun PC dari yang berbasis individu ataupun multiplayer yang lebih kompleks.

2.3 AI (Artificial Intelligence)

Kecerdasan buatan atau dalam bahasa Inggrisnya Artificial Intelligence sering disingkat AI merupakan cabang terpenting dalam dunia komputer. Akhir-akhir ini teknologi AI telah begitu banyak mempengaruhi kehidupan manusia.

AI ialah ilmu dan rekayasa, yang membuat mesin mempunyai intelegensi tertentu khususnya program komputer yang „cerdas’. Intelegensi merupakan bagian kemampuan komputasi untuk mencapai tujuan di dalam dunia. Ada beberapa macam jenis dan derajat intelegensi untuk manusia, binatang dan beberapa mesin.

AI berhubungan dengan penggunaan komputer untuk melaksanakan tugas atau menyelesaikan masalah yang memerluakan kecerdasan atau kepintaran. Pada umumnya komputer memerlukan aplikasi atau software untuk melaksanakan tugas atau menyelesaikan masalah, maka aplikasi atau software yang berdasarkan teknologi AI diperlukan.

Para ahli mendefinisikan AI secara berbeda-beda tergantung pada sudut pandang mereka masing-masing. Ada yang focus pada logika berpikir manusia saja, tetapi ada juga yang mendefinisikan AI secara lebih luas pada tingkah laku manusia. Stuart Russel dan Peter Norvig mengelompokkan definisi AI, yang diperoleh dari beberapa textbook berbeda, ke dalam empat kategori [8], yaitu :


(23)

1. Thinking humanly : the cognitive modeling approach 2. Acting humanly : the Turing test approach

3. Thinking rationally : the laws of thought approach 4. Acting rationally : the rational agent approach

Thinking humanly dan acting humanly adalah dua definisi dalam arti yang sangat luas. Sampai saat ini, pemikiran manusia yang diluar rasio, yakni refleks dan intuitif (berhubungan dengan perasaan), belum dapat ditirukan sepenuhnya oleh komputer. Dengan demikian, kedua definisi ini dirasa kurang tepat untuk saat ini. Jika kita menggunakan definisi ini, maka banyak produk komputasi cerdas saat ini yang tidak layak disebut sebagai produk AI.

Definisi thinking rationally terasa lebih sempit daripada acting rationally. Oleh karena itu, definisi AI yang paling tepat untuk saat ini adalah acting rationally dengan pendekatan rational agent. Hal ini berdasarkan pemikiran bahwa komputer bisa melakukan penalaran secara logis dan juga bisa melakukan aksi secara rasional berdasarkan hasil penalaran tersebut.

2.3.1 Konsep Dasar Algoritma

Algoritma adalah proses langkah-demi-langkah yang menghasilkan solusi untuk masalah AI. Kami akan melihat algoritma yang menghasilkan rute melalui tingkat permainan untuk mencapai tujuan, algoritma yang bekerja keluar arah mana yang harus bergerak untuk mencegat musuh melarikan diri, algoritma yang mempelajari apa yang pemain akan dilakukan selanjutnya, dan banyak lainnya. Struktur data adalah sisi lain dari koin algoritma. Mereka menyimpan data sedemikian rupa bahwa algoritma cepat dapat memanipulasi untuk mencapai solusi. Seringkali, struktur data harus disetel khusus untuk satu algoritma tertentu, dan kecepatan eksekusi mereka secara intrinsik terkait [9].

2.3.2 Action Prediction

Hal ini sering berguna untuk dapat menebak apa yang pemain akan dilakukan selanjutnya. Apakah itu menebak yang bagian mereka akan mengambil, yang senjata mereka akan memilih, atau rute mana mereka akan menyerang dari,


(24)

permainan yang dapat memprediksi tindakan pemain bisa me-mount oposisi lebih menantang.

Manusia terkenal buruk di berperilaku secara acak. Penelitian psikologi telah dilakukan selama puluhan tahun dan menunjukkan bahwa kita tidak dapat secara akurat mengacak tanggapan kita, bahkan jika kita secara khusus mencoba. Pikiran penyihir dan pemain ahli poker memanfaatkan ini. Mereka dapat dengan mudah sering bekerja di luar apa yang akan kita lakukan atau pikirkan berikutnya berdasarkan jumlah yang relatif kecil dari pengalaman apa yang telah kita lakukan di masa lalu. Seringkali, bahkan tidak perlu untuk mengamati tindakan pemain yang sama. Kami telah berbagi karakteristik yang berjalan begitu mendalam bahwa belajar untuk mengantisipasi tindakan satu pemain sering dapat menyebabkan bermain lebih baik melawan pemain yang sama sekali berbeda [9].

2.3.3 Metode N-Gram

N-Gram banyak digunakan dalam berbagai teknik analisis statistik dan juga analisa pendeteksian bahasa. N-gram di dalam game biasanya digunakan untuk action prediction. Teknik pencocokan string jarang dilaksanakan oleh mencocokkan string. Hal ini lebih umum untuk menggunakan satu set probabilitas mirip dengan probabilitas mentah di bagian sebelumnya. ini dikenal sebagai prediktor N-Gram (di mana N adalah salah satu lebih besar dari parameter ukuran jendela, sehingga 3-Gram akan menjadi prediktor dengan ukuran jendela dua dari tiga).

Dalam N-Gram kita mencatat probabilitas membuat setiap langkah yang diberikan semua kombinasi. Di dalam N-gram terdapat window size, sequence length, dan memory concerns [9]. Berikut adalah algoritma metode N-gram pada game:

1. Memasukkan gerakan dari player ke dalam array sehingga terbentuk sequence

2. Memotong-motong sequence yang terbentuk sebanyak n


(25)

4. Setelah didapat key nya, selanjutnya mencocokkan window terakhir dengan key yang ada

5. Setelah ditemukan yang cocok, selanjutnya mengambil dan mencari frekuensi yang paling tinggi

6. Tercipta prediksi akhirnya.

2.3.3.1 Window size

Window size adalah banyak data yang digunakan untuk memprediksi gerakan player selanjutnya. Window size sendiri selalu bernilai n-1. Jadi untuk 3-Gram maka window size nya adalah 2, sementara untuk 4-Gram window sizenya 3, dan seterusnya. Memperbesar window size pada awalnya akan memperakurat prediksi yang dilakukan, namun juga jika semakin besar akan menurunkan keakuratan prediksi, Seperti ditunjukkan pada Gambar 2.1.

Gambar 2.1 Different Window Sizes [9].

Diagram di atas diambil dari hasil eksperimen yang telah dilakukan, dalam 1000 kali trials pada game Left or Right. Akurasi akan optimal jika nilai N nya antara 2 sampai dengan 9. Selebihnya nilai akurasinya justru malah dibawah jika kita melakukan random [9].

2.3.3.2 Memory Concerns

Memory Concerns adalah banyak data yang disimpan dalam N-gram.prediksi akan menajdi lebih akurat jika AI menyimpan banyak data dari hasil aksi seorang player. Jadi AI yang menyimpan 1000 data aksi player tentu


(26)

prediksinya akan lebih akurat dibanding yang hanya menyimpan 100 data. Hanya saja, tentu akan berpengaruh kepada performa game itu sendiri, gamenya menjadi lebih lambat, memakan memory lebih besar, hang ketika si AI melakukan prediksi [9].

2.3.3.3 Sequence Length

Sequence length adalah panjang urutan yang digunakan dalam N-gram. Pada awalnya prediksi tidak akan pernah akurat, ini karena belum ada data yang masuk sehingga semua kemungkinan masih dapat terbentuk, atau masih mempunyai frekuensi yang masih terlalu kecil dan juga nilainya masih sama satu sama lain. Jika nilai N nya besar, maka pembentukan pattern juga akan menjadi lebih lama karena kombinasi pattern nya lebih banyak, sehingga akhirnya proses untuk menuju prediksi yang optimal juga menjadi lebih lambat [9].

2.4 Object Oriented Analysis and Design (OOAD)

Object Oriented Analysis (OOA) adalah metode analisis yang memeriksa requirement (syarat/keperluan yang harus dipenuhi suatu sistem) dan sudut pandang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup permasalahan. Yang menjadi sasaran OOA adalah mengembangkan sederatan model yang menggambarkan perangkat lunak komputer pada saat perangkat itu bekerja untuk memenuhi serangkaian persyaratan yang ditentukan oleh pelanggan. Seperti metode analisis konvensional lainnya .

Object Oriented Design (OOD) adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem. OOD mnerjemahkan model OOA dari dunia nyata kedalam model implementasi spesifik yang dapat direalisasikan di dalam perangkat lunak. Proses OOD dapat digambarkan sebagai piramida yang terdiri dari 4 (empat) lapisan. Lapisan dasar berfokus pada design subsistem yang mengimplementasikan fungsi-fungsi sitem mayor, lapisan kelas mengkhususkan keseluruhan arsitektur objek dan hirarki kelas yang diperlukan untuk mengimplementasi suatu sistem, lapisan pesan menunjukan bagaimana kolaborasi antar objek akan direalisasikan, dan


(27)

lapisan tanggung jawab mengidentifikasikan atribut dan operasi yang menandai masing-masing kelas [10].

2.4.1 Konsep-konsep OOAD

OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaiut analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD). OOA adalah metode analisis yang memerika requirement (syarat/keperluan) yang harus dipenuhi sebuah sistem) dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup perusahaan. Sedangkan OOD adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem. Terdapat beberapa konsep dalam OOAD [10], yaitu :

1. Object

Objek adalah suatu benda, entitas, biasanya berupa kata benda (noun), sesuatu yang dapat diangkat maupun ditendang atau pukul. Beberapa objek berupa benda hidup, dan beberapa tidak. Contoh objek dalam kehidupan nyata sehari-hari adalah sebuah mobil, orang, rumah, meja, seekor anjing, kucing ataupun beruang. Objek memiliki atribut (attributes), misalnya: sebuah mobil memiliki atribut manufaktur, nomor model, warna, dan harga, seekor anjing memiliki atribut umur, warna, tinggi maupun berat. Objek juga memiliki kelakuan (behavior), misalnya: sebuah mobil dapat bergerak dari satu tempat ke tempat lainnya dan seekor anjing dapat menggongong.

2. Enkapsulasi

Enkapsulasi merujuk pada sebuah objek yang menyembunyikan atau mengenkapsulasi atribut-atributnya terhadap operasi yang dikenakan (analoginya objek tersimpan dan terkunci dalam sebuah kapsul, dan operasi berada di tepian luar kapsul tersebut). Atribut yang tersembunyi ini disebut dengan private. Beberapa bahasa pemograman (sebagai contoh, Smalltalk) secara otomatis membuat atribut-atributnya sebagai private dan beberapa tidak (sebagai contoh, Java) membiarkan programmernya menentukan sendiri.


(28)

3. Asosiasi dan Agregasi

Setiap objek memiliki kaitan dengan objek lainnya, baik itu secara langsung maupun tidak langsung, kuat maupun lemah. Dengan mengaitkan tiap objek, membuat objek semakin kuat. Kaitan antar objek mengijinkan untuk membantu menemukan informasi dan kelakuan (behavior) ekstra. Ketika melakukan pemodelan objek, dapat mengaitkan ke dalam 2 prinsip: Asosiasi atau Agregasi. Terkadang memang sulit untuk mencari letak perbedaan antara asosiasi dan agregasi ini. Berikut sedikit penjelasannya :

a. Asosiasi merupakan kaitan yang lemah, objek dapat berupa grup atau kelompok, namun objek ini tidak secara komplit tergantung satu dengan lainnya. Sebagai contoh, bayangkanlah sebuah mobil, seorang supir, seorang penumpang dan satu penumpang lainnya. Ketika supir dan dua penumpang berada dalam mobil, mereka berasosiasi dan mereka semua menuju ke arah atau alamat yang sama, mereka menempati tempat yang sama, yakni di dalam mobil. Namun kaitan asosiasi ini sifatnya lemah, supir dapat menurunkan salah satu atau kedua penumpang pada arah atau alamat yang terpisah, jadi penumpang tersebut tidak lagi berasosiasi dengan objek lainnya.

b. Agregasi berarti menempatkan objek bersama-sama untuk menjadikannya objek yang lebih besar. Barang-barang atau benda-benda manufaktur biasanya merupakan contoh dari bentuk agregasi. Sebagai contoh, sebuah microwave terbentuk dari sebuah cabinet (semacam lemari kaca), sebuah pintu, sebuah panel indikator, sejumlah tombol, sebuah alat pemanas dan lain sebagainya. Agregasi mengimplikasikan kedekatan ketergantungan.

4. Class

Sebuah kelas mengenkaspsulasi karakteristik bawaan ke dalam sebuah kelompok objek (sekumpulan objek). Beberapa programmer mengatakan “objek merupakan instance (diumpamakan) dari sebuah kelas”, oleh karena itu istilah instance bisa dikatakan merupakan persamaan kata (synonym) dari objek. Kelas merupakan sebuah model, pola, atau blueprint (cetak biru) yang


(29)

digunakan untuk menciptakan sebuah objek. Ambil contoh sebuah rumah yang dibuat oleh seorang arsitek. Ada banyak sekali rumah di dunia ini, kesemuanya memiliki karakteristik yang sama. Sebuah cetak biru menggambarkan semua karakteristik yang dimiliki oleh sebuah rumah, misalnya dinding, jendela, saluran listrik, dan lain sebagainya. Dengan menggunakan cetak biru tersebut, maka dapat dibuat banyak rumah. Rumah-rumah yang dibangun dari cetak biru itu disebut dengan instance dari kelas. Instance dari kelas adalah objek yang dibentuk dengan menggunakan kelas sebagai dasar pembentukannya. Rumah-rumah tersebut yang terbentuk dari cetak biru yang ada dapat berbeda satu dengan lainnya, misalnya: lokasi, bahan yang digunakan untuk membangun rumah, bentuk dan ukuran, dan lain sebagainya. Tetepi mereka dapat dikatakan memiliki karakteristik yang sama. 5. Pewarisan (Inheritance)

Pewarisan mengijinkan untuk menspesifikasikan atau mengkhususkan bahwa sebuah kelas bisa memiliki atau mendapatkan beberapa karakteristik dari kelas induknya (parent class) dan menambahkan fitur atau kegunaan khusus atas dirinya sendiri. Kelas anak (subclass) mewariskan (inherits) semua fields, messages, dan methods dari kelas induk utama (superclass). Pewarisan menjadikan kelas dapat di-grupkan atau dikelompokkan ke dalam kelas yang lebih general (umum), oleh sebab itu pewarisan sering disebut juga sebagai bentuk spesialisasi atau generalisasi atas objek. Dalam perspektif pemograman, pewarisan diperlukan karena:

a. Pewarisan mendukung perluasan dan kekuatan yang lebih dalam proses pemodelan perangkat lunak.

b. Pewarisan mengijinkan untuk mendefenisikan informasi atau atribut dan kelakuan (behavior) pada sebuah kelas dan membagikannya (share) kepada kelas anak (subclass) yang berhubungan, sehingga code yang dimiliki akan lebih efisien dan reuseable.

c. Pewarisan merupakan hal yang natural, yang gampang dimengerti dan didefenisikan dalam kehidupan nyata


(30)

Polimorfisme diambil dari bahasa Yunani yang diturunkan dari kata poly, yang berarti banyak, dan morph yang berarti bentuk. Maka dari itu polimorfisme berarti „memiliki banyak bentuk/rupa’. Dalam kehidupan sehari-hari, antara satu objek dengan objek lainnya sering terjadi komunikasi. Satu objek mengirmkan pesan ke objek lainnya untuk mendapatkan sesuatu yang dinginkan, namun tanggapan dari objek-objek tersebut dapat beragam walaupun pesan yang disampaikan adalah pesan yang sama.

2.4.2 OOP (Object Oriented Programming)

OOP (Object Oriented Programming) atau yang dikenal dengan Pemrograman Berorientasi Objek merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus ke dalam kelas-kelas atau objek-objek.

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah tidak harus melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh suatu departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri [11].


(31)

2.4.2.1 Istilah-istilah OOP

Istilah OOP sudah sering didengar dalam ilmu pemrograman. Berikut ini istilah-istilah yang sering kali terdengar dalam teknik pemrograman OOP :

1. Object

Objek memiliki atribut sebagai status (state) dan tingkah laku sebagai behavior. Di dalam OOP, state disimpan pada variabel dan tingkah laku disimpan pada method. Dalam bahasa teoretis OOP, Objek berfungsi untuk membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

2. Class

Class adalah suatu frame yang merupakan definisi yang memuat data dan metod pengolah data. Class juga dapat diartikan sebagai tempat untuk membuat obyek. Di dalam class dideklarasikan variable dan method yang dimiliki oleh obyek. Proses pembuatan obyek dari sebuah class disebut dengan instantiation. Jadi obyek merupakan hasil instansiasi dari class. Obyek disebut juga dengan instance. Class memiliki anggota yang disebut Anggota Class (class member) yaitu atribut dan method.

3. Attributes

Atribut adalah data yang membedakan antara objek satu dengan yang lainnya. Contoh Objek : Volcano Robot (a volcanic exploration vehicle), mempunyai atribut sebagai berikut :

Status  exploring, moving, returning home Speed  in miles per hour

Temperature  in Fahrenheit degrees

Dalam class, atribut sering disebut sebagai variabel. Atribut dibedakan menjadi dua jenis yaitu Instance Variable dan Class Variable. Instance variable adalah atribut untuk tiap objek dari kelas yang sama. Tiap objek mempunyai dan menyimpan nilai atributnya sendiri. Jadi, tiap objek dari class yang sama boleh mempunyai nilai yang sama atau berbeda. Class Variable adalah atribut untuk semua objek yang dibuat dari class yang sama.


(32)

Semua objek mempunyai nilai atribut yang sama. Jadi semua objek dari class yang sama mempunyai hanya satu nilai yang value nya sama.

a. Behavior

Behavior/tingkah laku adalah hal-hal yang bisa dilakukan oleh objek dari suatu class. Behavior dapat digunakan untuk mengubah nilai atribut suatu objek, menerima informasi dari objek lain, dan mengirim informasi ke objek lain untuk melakukan suatu tugas (task).

b. Abstraksi

Abstraksi adalah kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

2.4.2.2 Konsep-konsep OOP

Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:

1. Enkapsulasi

Enkapsulasi berfungsi untuk memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam/dari sebuah objek dengan cara yang tidak layak, hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

2. Pewarisan (Inheritance)

Pewarisan merupakan pewarisan atribut dan method dari sebuah class ke class lainnya. Class yang mewarisi disebut superclass dan Class yang diwarisi disebut subclass. Subclass bisa berlaku sebagai superclass bagi class


(33)

lainya, disebut sebagai multilevel inheritance. Prinsip dasar inheritance yaitu persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan. Keuntungan pewarisan: a. Subclass menyediakan state/behaviour yang spesifik yang membedakan

dengan superclass, sehingga memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada.

b. Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class (abstraksi), untuk mendefinisikan class dengan tingkah laku dan state secara umum.

3. Polimorfisme

Poolimorfisme adalah kemampuan suatu obyek untuk mempunyai lebih dari satu bentuk. Polimorfisme tidak bergantung kepada pemanggilan subrutin. Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim. Sebuah variabel tunggal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama, hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

2.5 UML (Unified Modeling Language)

Pada perkembangan teknik pemrograman berorientasi objek, muncul sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modelling Language (UML). Adapun pengertian dari UML adalah salah satu standar bahasa yang banyak digunakan di dunia industri untuk mendefinisikan requirement, membuat analisis dan desain, serta menggambarkan arsitektur dalam pemrograman berorientasi objek [12].

UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi dari sistem


(34)

perangkat lunak. Dalam hal ini UML merupakan suatu bahasa visual untuk melakukan pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung.

UML menggunakan berbagai macam diagram dengan fungsi masing-masing untuk menggambarkan setiap proses dari sistem berorientasi objek. UML memiliki 13 jenis diagram. Dalam pembangunan game ini dipakai 4 diagram UML diantaranya :

1. Use Case Diagram

Use Case atau diagram use case merupakan pemodelan yang digunakan untuk menggambarkan kelakuan (behavior) dari sistem yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan use case [12].

a. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem yang akan dibuat diluar sistem yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang.

b. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antarunit-unit atau aktor.

Sebuah use case dapat meninclude fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang me-include dieksekusi secara normal. Use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Use case juga dapat me-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. Contoh dari use case diagram dapat dilihat pada gambar berikut.


(35)

2. Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.

Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.

Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertical [12].

3. Sequence Diagram

Diagram sequence adalah diagram yang menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek [12]. Oleh karena itu untuk menggambarkan diagram sequence maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.

Banyaknya diagram sequence yang harus digambarkan adalah sebanyak pendefinisian use case yang memiliki proses itu sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sequence sehingga semakin banyak use case yang didefinisikan maka diagram sequence yang harus dibuat juga semakin banyak.


(36)

4. Class Diagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi.

a. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas b. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas

2.6 Tools Yang Digunakan Untuk Pembuatan Game

Tools yang digunakan dalam penelitian game Penerapan Metode N-gram Untuk Non player character Prediksi arah pukulan bola agar Menggunakan dapat memprediksi arah pukulan yang tepat pada game tenis meja diantaranya adalah ActionScript 3.0 dan Adobe Flash.

2.6.1 ActionScript

ActionScript adalah bahasa pemrograman yang dibuat berdasarkan ECMAScript, yang digunakan dalam pengembangan situs web dan perangkat lunak menggunakan platform Adobe Flash Player. ActionScript juga dipakai pada beberapa aplikasi basis data, seperti Alpha Five. Bahasa ini awalnya dikembangkan oleh Macromedia, tapi kini sudah dimiliki dan dilanjutkan perkembangannya oleh Adobe, yang membeli Macromedia pada tahun 2005.

ActionScript terbaru saat ini adalah ActionScript 3.0 dari edisi yang sebelumnya dikenal dengan ActionScript 2.0. ActionScript 3.0 adalah bahasa berorientasi objek untuk membuat aplikasi dan konten multimedia ber-script untuk pemutaran di runtime Flash client (seperti Flash Player dan Adobe AIR). Dengan sintaks yang mirip dengan Java dan C#. ActionScript 3.0 memiliki beberapa kelebihan dibanding pendahulunya, antara lain fitur yang ditawarkan adalah file pada ActionScript 3.0 dapat dibuat terpisah saat runtime [13].

2.6.1 Adobe Flash

Adobe Flash merupakan sebuah program yang didesain khusus oleh Adobe dan program aplikasi standar authoring tool professional yang digunakan untuk


(37)

membuat animasi dan bitmap yang sangat menarik untuk keperluan pembangunan situs web yang interaktif dan dinamis. Flash didesain dengan kemampuan untuk membuat animasi 2 dimensi yang handal dan ringan sehingga flash banyak digunakan untuk membangun dan memberikan efek animasi pada website, CD Interaktif dan yang lainnya. Selain itu aplikasi ini juga dapat digunakan untuk membuat animasi logo, movie, game, pembuatan navigasi pada situs web, tombol animasi, banner, menu interaktif, interaktif form isian, e-card, screen saver dan pembuatan aplikasi-aplikasi web lainnya.

Dalam Flash, terdapat teknik-teknik membuat animasi, fasilitas action script, filter, custom easing dan dapat memasukkan video lengkap dengan fasilitas playback FLV. Keunggulan yang dimiliki oleh Flash ini adalah ia mampu diberikan sedikit code pemograman baik yang berjalan sendiri untuk mengatur animasi yang ada didalamnya atau digunakan untuk berkomunikasi dengan program lain seperti HTML, PHP, dan Database dengan pendekatan XML, dapat dikolaborasikan dengan web, karena mempunyai keunggulan antara lain kecil dalam ukuran file output-nya.

Flash bekerja dengan bahasa pemprograman yang dinamakan ActionScript. Bahasa ini telah mengalami beberapa kali perkembangan sejak pertama kali diperkenalkan. Versi terakhir adalah ActionScript 3.0 atau disingkat AS3, dengan struktur bahasa yang sangat menyerupai javascript.

Berkas yang dihasilkan dari perangkat lunak ini mempunyai file extension .swf. SWF adalah kependekan dari “Shock Wave Flash”, kata lain yang biasanya memiliki ekstensi .swf dipergunakan untuk menyebutkan file swf adalah Flash Movie. File Flash Movie dan dapat diputar di penjelajah web yang telah dipasangi Adobe Flash Player. File swf juga didapatkan pada file game yang dibuat oleh flash. Dalam Adobe Flash terbaru terdapat fungsi export yang dapat meng-export file kedalam bentuk .apk eksensi yang biasa digunakan dalam android

Flash juga dapat digunakan untuk mengembangkan secara cepat aplikasi- aplikasi web yang kaya dengan pembuatan script tingkat lanjut. Di dalam aplikasinya juga tersedia sebuah alat untuk men-debug script, dengan


(38)

menggunakan code hint untuk mempermudah dan mempercepat pembuatan dan pengembangan isi ActionScript secara otomatis [14].

2.7 Metode Pengujian Sistem

Metode pengujian sistem untuk mengetahui efektifitas dari software yang digunakan selain memberikan kesempatan kepada pengguna untuk mengoperasikan dan melakukan pengecekan terhadap laporan yang dihasilkan melalui software. Metode pengujian sistem terdiri dari Pengujian Whitebox dan Pengujian Blackbox [15].

2.7.1 Pengujian Whitebox

Pengujian whitebox dilakukan untuk menguji prosedur-prosedur yang ada. Lintasan lojik yang dilalui oleh setiap bagian prosedur diuji dengan memberikan kondisi/loop spesifik. Pengujian whitebox menjamin pengujian terhadap semua lintasan yang tidak bergantungan minimal satu kali, mencoba semua keputusan lojik dari sisi „true’ dan „false’, eksekusi semua loop dalam batasan kondisi dan batasan operasionalnya dan pengujian validasi data internal. Konsep Pengujian Basis Path sebagai berikut:

1. Merupakan bagian dari pengujian whitebox dalam hal pengujian prosedur-prosedur.

2. Mempergunakan notasi aliran graph (node, link untuk merepresentasikan sequence, if, while, until dan sebagainya).

3. Konsep kompleksitas cyclomatic antara lain cara perhitungan daerah tertutup pada graph planar dimana dapat menghubungkan batas atas jumlah pengujian yang harus direncanakan dan dieksekusi untuk menjamin pengujian seluruh statement program.

4. Memunculkan kasus-kasus yang akan diuji dengan membuat daftar lintasan kasus pengujian berdasarkan kompleksitas dan cyclomatic yang didapat. 5. Membuat alat bantu graph matriks yang membantu pengawasan pengujian


(39)

2.7.2 Pengujian Blackbox

Pengujian yang dilakukan untuk antarmuka perangkat lunak, pengujian ini dilakukan untuk memperlihatkan bahwa fungsi-fungsi bekerja dengan baik dalam arti masukan yang diterima dengan benar dan keluaran yang dihasilkan benar-benartepat, pengintegrasian dari eksternal data berjalan dengan baik.

Metode pengujian blackbox memfokuskan pada requirement fungsi dari perangkat lunak, pengujian ini merupakan komplenetari dari pengujian whitebox. Pengujian whitebox dilakukan terlebih dahulu pada proses pengujian, sedangkan pengujian blackbox dilakukan pada tahap akhir dari pengujian perangkat lunak. Proses yang terdapat dalam proses pengujian blackbox antara lain sebagai berikut: 1. Pembagian kelas data untuk pengujian setiap kasus yang muncul pada

pengujian whitebox.


(40)

29

Masalah yang diangkat dalam penulisan ini skripsi ini adalah bagaimana implementasi metode N-Gram pada game tenis meja untuk memprediksi arah pukulan bola pada NPC. Analisis masalah sangatlah penting dalam suatu penelitian karena pada tahapan ini merupakan salah satu proses mengidentifikasi masalah-masalah yang timbul dari penerapan sistem yang akan penulis teliti yaitu mengenai metode N-Gram dalam permainan tenis mengenai bagaimana NPC akan memprediksi arah pukulan bola dari player menggunakan metode tersebut.

Seperti telah dijelaskan sebelumnya bahwa teknik metode yang digunakan dalam memprediksi arah pukulan bola adalah metode N-Gram yang biasa digunakan untuk memprediksi perilaku player pada game sehingga dapat memperoleh keputusan yang akan dilakukan. Dengan ini diharapkan metode N-Gram dapat memprediksi arah pukulan bola yang dilakukan player dengan membaca beberapa kali perilaku player sehingga NPC mempunyai kecerdasan buatan yang menunjukan perilaku yang konsisten dan realistis, bereaksi dengan tepat kepada tindakan pemain dan karakter lain seperti halnya manusia.

3.2 Analisis Game

Bagian ini menjelaskan tentang game yang akan digunakan untuk penelitian. Penjelasan terutama untuk bagian-bagian dalam game yang akan diterapkan algoritma. Misalkan jika sebuah karakter NPC yang akan diterapkan algoritma, maka jelaskan bagaimana karakter tersebut akan berperilaku.

Game yang akan dirancang adalah game tenis meja. Game ini dibangun dalam bentuk prototype. Dalam permainan yang akan dirancang dalam penelitian ini, player hanya bisa bergerak ke arah kiri, tengah dan kanan serta memukul bola. Sama halnya dengan player, NPC bisa untuk memukul dan bergerak menahan bola. NPC pada game ini akan diterapkan metode N-Gram untuk bisa


(41)

memprediksi arah pukulan bola. Berikut adalah perilaku NPC yang diterapkan metode N-Gram :

1. Sebelum memprediksi NPC akan melakukan gerakan acak untuk menahan bola.

2. NPC akan memprediksi arah pukulan bola dari player setelah membaca beberapa pukulan dari player.

3. NPC akan melakukan pukulan bola secara acak karena metode N-Gram hanya akan diterapkan untuk menahan pukulan bola dari player.

3.3 Analisis Masukan

Analisis masukan yang dilakukan dalam penelitian ini adalah menganalisis parameter pada game tenis meja, parameter tersebut adalah parameter arah pukulan bola yang akan dilakukan oleh player dan NPC. Terdapat beberapa arah pukulan bola antara lain :

1. Arah pukulan bola dari player

Player memiliki 3 arah pukulan yaitu pukulan ke kanan, tengah dan kiri. Berikut adalah rincian pukulan arah bola dari player :

a. Pukulan ke kanan

Pukulan arah bola ke kanan dari player memiliki titik kordinat x = 250 s.d 350 dan y = 50 s.d 300.

b. Pukulan ke kiri

Pukulan arah bola ke kiri dari player memiliki titik kordinat x = 50 s.d 150 dan y = 50 s.d 300.

c. Pukulan ke tengah

Pukulan arah bola ke tengah dari player memiliki titik kordinat x = 150 s.d 250 dan y = 50 s.d 300.

Berikut adalah gambar arah bola pukulan dari player dapat dilihat pada gambar 3.1.


(42)

Gambar 3.1 Arah pukulan dari player

2. Arah pukulan bola dari NPC ( Non Player Character )

NPC memiliki 3 arah pukulan yaitu pukulan ke kanan, tengah dan kiri. Berikut adalah rincian pukulan arah bola dari NPC :

a. Pukulan ke kanan

Pukulan arah bola ke kanan dari NPC memiliki titik kordinat x = 250 s.d 350 dan y = 300 s.d 570.

b. Pukulan ke kiri

Pukulan arah bola ke kiri dari NPC memiliki titik kordinat x = 50 s.d 150 dan y = 300 s.d 570.

c. Pukulan ke tengah

Pukulan arah bola ke tengah dari NPC memiliki titik kordinat x = 150 s.d 250 dan y = 300 s.d 570.


(43)

Berikut adalah gambar arah bola pukulan dari NPC dapat dilihat pada gambar 3.2.

Gambar 3.2 Arah pukulan dari NPC

3.4Analisis Metode

Analisis metode merupakan salah satu alat yang digunakan untuk membantu proses memprediksi dalam game tenis meja untuk NPC untuk membaca gerakan dari player. Metode yang akan penulis gunakan ialah metode N-Gram.

3.4.1 Analisis Struktur Data

Struktur data pada metode N-gram dalam penelitian ini menggunakan struktur data majemuk yaitu struktur data queue (antrian) merupakan kumpulan data gerakan atau pukulam dari player hanya bisa dilakukan pada suatu ujung yaitu tail atau belakang dan penghapusan melalui ujung yaitu depan. Antrian itu disebut fifo (first in first out) yaitu elemen yang lebih dulu disisipkan merupakan


(44)

elemen yang lebih dulu diambil. Jika pukulan kiri yaitu L, kanan yaitu R dan tengah yaitu C.

Gambar berikut adalah implementasi queue atau antrian aray statis, data masuk dari belakang.

Maxdata

L R L R L R R C L

Depan Belakang

Gambar 3.3 Struktur data Queue 1

Jika maxdata sudah penuh maka pukulan selanjutanya akan masuk dari belakang dan pukulan yang masuk paling pertama atau yang paling depan akan dihapus dari aray seperti gambar berikut.

Maxdata

L R L R L R R C L R

Depan Belakang

Gambar 3.4 Struktur data Queue 2

Maka data atau pukulan yang masuk dalam aray yang baru masuk dari belakang dan yang paling depan akan di hapus seperti pada gambar berikut

Maxdata

R L R L R R C L R

Depan Belakang Gambar 3.5 Struktur data Queue 3

3.4.2 Metode N-gram

N-Gram dalam game adalah kecerdasan buatan untuk NPC yang digunakan untuk memprediksi perilaku player pada game sehingga dapat memperoleh keputusan yang akan dilakukan. Di dalam N-gram terdapat window size, sequence length, dan memory concerns.


(45)

1. Windows size

Windows size adalah banyak data yang digunakan untuk memprediksi gerakan player windows size sendiri selalu bernilai n-1. Pada game ini menggunakan 3-gram karena pada penelitian ini memiliki 3 gerakan yang dapat diprediksi yaitu gerakan pukulan bola ke kanan, ke kiri dan tengah. Karena menggunakan 3-gram maka windows size nya adalah 2.

2. Sequence length

Sequence length adalah panjang urutan yang digunakan dalam N-gram. Pada awalnya prediksi tidak akan pernah akurat, ini karena belum ada data yang masuk sehingga semua kemungkinan masih dapat terbentuk, atau masih mempunyai frekuensi yang masih terlalu kecil dan juga nilainya masih sama satu sama lain.

3. Memory Concerns

Memory concerns adalah banyak data yang disimpan dalam N-gram. Prediksi akan menajdi lebih akurat jika AI menyimpan banyak data dari hasil aksi seorang player. Pada game ini banyak menggunakan memory concerns nya yaitu 10 agar lebih akurat banyak menyimpan data.

3.4.3 Blok Diagram Metode N-Gram

Berikut adalah blok diagram metode N-Gram yang menunjukan alur dari metode N-Gram dapat dilihat pada gambar 3.6 dibawah ini.


(46)

Mulai

Melakukan pukulan, data berupa

string

Masukan ke dalam array

Membentuk sequence

atau key

Hitung frequensi kemunculan

sequence

apakah window terakhir = key

Cari frequensi tertinggi

Tercipta prediksi akhir

End

Random Ya

Tidak

Gambar 3.6 Blok Diagram Metode N-Gram 3.4.4 Studi Kasus

Berikut studi kasus metode N-Gram pada penelitian game tenis meja ini adalah sebagai berikut :


(47)

1. Memasukan gerakan dari player berupa string ke dalam array sehingga terbentuk sequence. Dalam 10 kali throw atau pukulan yang dicoba, maka akan terbentuk sequence :

Tabel 3.1 Data dari player

Data dari player

0 1 2 3 4 5 6 7 8 9

L R L R L R R C L R

2. Memotong-motong sequence menjadi key yang terbentuk sebanyak n. Dalam penelitian ini menggunakan 3-Gram, berarti data akan dibagi sesuai nilai n nya yaitu 3 :

Tabel 3.2 Key yang terbentuk Key yang

terbentuk

012 123 234 345 456 567 678 789 LRL RLR LRL RLR LRR RRC RCL CLR

3. Menghitung frequensi kemunculan pattern yang terbentuk (key). Setelah dibagi sesuai nilai n nya, tinggal hitung frequensinya :

Tabel 3.3 Frequensi kemunculan

Key Frequensi

kemunculan

LRL 2

RLR 2

LRR 1

RRC 1

RCL 1

CLR 1

4. Setelah didapat key nya, selanjutnya mencocokan window terakhir dengan key yang ada. Untuk memprediksi harus menentukan window size nya terlebih dahulu dengan rumus n-1. Karena pada penelitian ini menggunakan 3-Gram maka window size nya adalah 2.

LRL RLR LRL RLR LRR RRC RCL CLR

Yang dilingkari adalah window terakhir yang telah dicocokan yaitu LR. LR


(48)

5. Selanjutnya mengambil dan mencari frequensi yang paling tinggi. Maka setelah mendapat window terakhir yaitu LR, selanjutnya mencari pola sequence yang diawali oleh LR. Dari data yang diperoleh terdapat LRL dengan 2 kemunculan dan LRR dengan 1 kemunculan.

6. Terciptanya prediksi akhirnya setelah menghitung kemunculan frequensi yang tinggi yaitu LRL dengan 2 kemunculan maka selanjutnya NPC akan memprediksi arah pergerakan player akan memukul ke kiri (left).

3.5 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non-fungsional menggambarkan kebutuhan luar sistem yang diperlukan untuk menjalankan aplikasi yang dirancang. Adapun kebutuhan non-fungsional pada implementasi metode N-Gram pada game tenis meja meliputi spesifikasi kebutuhan perangkat lunak, kebutuhan perangkat lunak dan kebutuhan perangkat keras. Analisis kebutuhan non-fungsional bertujuan agar aplikasi yang dibangun dapat digunakan sesuai dengan kebutuhan.

3.5.2 Analisis Kebutuhan Perangkat Lunak

Perangkat lunak atau software merupakan hal yang terpenting dalam mendukung kinerja sebuah sistem. Perangkat lunak digunakan dalam sebuah sistem merupakan perintah-perintah yang diberikan kepada perangkat keras agar dapat saling berinteraksi diantara keduanya. Perangkat lunak yang dibutuhkan sebagai system operasi yang ada pada komputer dan sebagai media pengembangan game tenis meja ini antara lain:

Tabel 3.4 Analisis Kebutuhan Perangkat Lunak

No PerangkatLunak Keterangan 1 SistemOperasi Windows 7 2 Tools Program Adobe Flash CS5

3.5.2 Analisis Kebutuhan Perangkat Keras

Untuk menjalankan suatu aplikasi maka diperlukan perangkat keras yang dapat mendukung proses kerja dari sistem itu sendiri. Pada dasarnya game ini


(49)

dapat dijalankan di semua perangkat komputer/desktop tapi untuk kenyamanan sebaiknya dijalankan di perangkat yang mempunyai spesifikasi sebagai berikut :

Tabel 3.5 Spesifikasi Perangkat Keras yang Dibutuhkan

No PerangkatKeras Spesifikasi

1 Prosesor Kecepatan 2.4 GHz

2 Monitor Monitor 17’’, resolusi 1024x768 3 VGA On-board Kecepatan 512 MB

4 Optical Drive DVD-ROM Standard

5 Keyboard Standard

6 Mouse Standard

7 Memori 1GB

3.5.3 Spesifikasi Kebutuhan Perangkat Lunak

Spesifikasi kebutuhan perangkat lunak dilakukan berdasarkan kebutuhan game. Spesifikasi kebutuhan perangkat lunak akan dibagi kedalam dua bagian yaitu F (Spesifikasi Kebutuhan Perangkat Lunak Fungsional) dan SKPL-NF (Spesifikasi Kebutuhan Perangkat Lunak Non-Fungsional). Spesifikasi kebutuhan perangkat lunak dalam penelitian ini dapat dilihat pada.

Tabel 3.6 SKPL User Requirement

Kode Kebutuhan

SKPL-F1 Perangkat Lunak dapat memproses hasil masukan untuk kemudian dimulai proses gerakan pukulan.

Tabel 3.7 SKPL System Requirement

Kode Kebutuhan

SKPL–F1 Gerakan pukulan berupa pukulan ke kiri, kanan dan tengah.

SKPL-F2 Proses masukan yang diterima system yang kemudian diolah menjadi keluaran sesuai keinginan user.

Tabel 3.8 SKPL Non-Fungsional

Kode Kategori Kebutuhan

SKPL-NF1 Efficiency

(Product Requirement)

Sistem dapat memproses masukan parameter arah pukulan bola. SKPL-NF2 Development

(Organizatonal Requirement)

Untuk menjalankan sistem yang di bangun maka

dibutuhkan :

a. Microsoft Windows sebagai sistem operasi

b. Adobe Flash CS5 sebagai tools


(50)

3.6 Analisis kebutuhan Fungsional

Spesifikasi kebutuhan fungsional adalah spesifikasi tentang hal-hal yang akan dilakukan system ketika diimplementasikan. Analisis kebutuhan ini diperlukan untuk menentukan keluaran yang akan dihasilkan sistem, masukan yang diperlukan sistem, lingkup proses yang digunakan untuk mengolah masukan menjadi keluaran.

3.6.1 Use Case Diagram

Use Case atau diagram use case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use Case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Berikut Use Case pada implementasi metode N-Gram untuk menentukan arah pukulan bola pada game tenis meja ini yaitu :

Gambar 3.7 Use Case Diagram Game Tenis Meja

1. Actor Definition

Actor Definition berfungsi untuk menjelaskan Actor yang terdapat pada Use case diagram. Actor Definition diterangkan pada Tabel 3.6.

Tabel 3.9 Actor Definition

No Actor Deskripsi


(51)

2. Use Case Definition

Use Case Definition berfungsi untuk menjelaskan fungsi Use Case yang terdapat pada Use case diagram. Use Case Definition diterangkan pada Tabel 3.7.

Tabel 3.10 Use Case Definition.

No Use Case Deskripsi

1 Memulai Permainan Proses untuk memulai permainan

2 Pukulan Bola Proses untuk karakter/player memukul bola 3 Keluar Game Proses untuk keluar atau menghentikan game ini.

3.6.2 Use Case Skenario

Skenario use case merupakan bagian pada use case yang menunjukkan proses apa saja yang terjadi pada setiap bagian di dalam use case, dimana pemain memberikan perintah pada setiap bagian dan respon apa yang diberikan oleh sistem kepada pemain setelah pemain memberikan perintah pada setiap bagian-bagian use case. Berikut ini beberapa skenario use case berdasarkan use case yang ada yaitu :

Tabel 3.11 Main Identifikasi

Nomor 1

Nama Main

Tujuan Pemain dapat memulai dan memainkan game ini

Deskripsi Pemain dapat memulai game ini dan bertanding melawan NPC

Aktor Pemain

Skenario Utama

Kondisi Awal Menu utama ditampilkan

Aksi Aktor Reaksi Sistem

1. Pemain masuk ke dalam game/aplikasi ini.

2. Menampilkan layar menu awal game

3. Pemain memilih menu main

4. Menampilkan layar main.


(52)

Tabel 3.12 Pukulan Bola Identifikasi

Nomor 2

Nama Pukulan Bola

Tujuan Untuk menentukan arah pukulan bola

Deskripsi Pemain menggerakan karakter pada game untuk menentukan arah pukulan bola

Aktor Pemain

Skenario Utama

Kondisi Awal Permaianan dimulai

Aksi Aktor Reaksi Sistem

1. Pemain menekan tombol keyboard

untuk menggerakan karakter dan memukul bola. Tombol keyboard yang digunakan adalah A,S dan D.

2. Setelah menekan tombol bola akan mengarah sesuai apa yang pemain tekan. Tombol A untuk pukulan ke kiri, S untuk pukulan ke tengah dan D untuk pukulan ke kanan.

3. Setelah memukul sistem mulai cek gerakan dan memasukan data ke dalam array. Jika terprediksi bola akan tertahan NPC dan jika tidak NPC akan bergerak random.

Kondisi Akhir Pemain akan dapat menentukan arah

pukulan bola.

Tabel 3.13 Keluar Permainan. Identifikasi

No 3

Nama Keluar Permainan

Tujuan Keluar dari permainan

Deskripsi Ketika permainan berakhir atau pemain

ingin mengakhiri game, system harus tahu langkah untuk keluar game berdasarkan jenis keluar dari pemain.

Aktor Pemain

Skenario Utama

Kondisi Awal Menu utama ditampilkan

Aksi Aktor Reaksi Sistem

1. Pemain menekan tombol keluar.

2. Keluar dari game


(53)

3.6.3 Activity Diagram

Activity diagram menggambarkan berbagai alur aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alur berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, dimana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelum (internal processing). Berikut Activity Diagram pada implementasi metode N-Gram untuk menentukan arah pukulan bola pada game tenis meja ini yaitu :

1. Activity Diagram Main

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas main atau memulai permainan yang dapat dilihat pada Gambar 3.8.


(54)

2. Activity Diagram Pukulan Bola

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas pukulan bola yang dapat dilihat pada Gambar 3.9.


(55)

3. Activity Diagram Keluar

Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas keluar game yang dapat dilihat pada Gambar 3.10.


(56)

3.6.4 Class Diagram

Class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang dibuat untuk membangun sistem. Berikut adalah class diagram pada game tenis meja :

Gambar 3.11 Class Diagram

3.6.5 Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan disekitar sistem berupa message yang digambarkan terhadap waktu. Berikut ini beberapa sequence diagram yang terdapat pada game tersebut yaitu :

1. Sequence Diagram Main


(57)

Gambar 3.12 Sequence Diagram Main

2. Sequence Diagram Pukulan Bola

Sequence diagram pukulan bola pada aplikasi ini dapat dilihat pada Gambar 3.13.


(58)

3. Sequence Diagram keluar

Sequence diagram keluar pada aplikasi ini dapat dilihat pada Gambar 3.14.

Gambar 3.14 Sequence Diagram Keluar 3.7 Perancangan Sistem

Perancangan sistem merupakan kegiatan untuk merancang aplikasi yang akan dibangun, tahapannya dimulai dari perancangan komponen permainan, perancangan antarmuka, perancangan pesan dan jaringan semantik dari game tenis meja.

3.7.1 Perancangan antarmuka

Perancangan antarmuka bertujuan untuk memberikan gambaran tentang aplikasi yang akan dibangun, sehingga akan mempermudah dalam mengimplementasikan aplikasi serta akan memudahkan pembuatan aplikasi. Pada bagian ini akan dijelaskan perancangan antarmuka menu utama, perancangan antarmuka menu main.


(59)

3.7.1.1Perancangan Antarmuka Menu Utama

Menu utama merupakan menu yang akan muncul pertama kali pada saat pengguna membuka game. Gambar 3.15 menunjukan perancangan antarmuka menu utama.

Gambar 3.15 Antarmuka menu utama

3.7.1.2Perancangan Antarmuka Menu Main

Antarmuka menu main merupakan perancangan antarmuka yang menampilkan permainan game. Gambar 3.16 merupakan perancangan antarmuka menu main.


(60)

Gambar 3.16 Antarmuka menu main

3.7.1.3Perancangan Antarmuka Point

Antarmuka menu point merupakan perancangan antarmuka yang menampilkan point. Gambar 3.17 merupakan perancangan antarmuka point.


(61)

3.8 Perancangan Method

Perancangan method perlu dirancang untuk mengetahui alur proses dari program.

1. Perancangan Method Main

Gambar 3.18 di bawah ini adalah perancangan method main.

Public function mulaiGame ()

removeChild(mn); pl = new player();

Pl.x = 90; Pl.y = 560; addChild(pl); M= new musuh();

M.x = 80; M.y = 46; addChild(m) Bl = new bola();

Bl.x = 110; Bl.y = 540; addChild(bl) ps = New papanScore();

Ps.x = 8000; Ps.y = 170;

addChild(ps);

Stage.addEventListener(KeyboardEvent.KEY_DOWN,tekan); Stage.addEventListener(KeyboardEvent.KEY_UP,lepas);

addEventListener(Event.ENTER.FRAME, cek)

Keluar

Mulai Pilih menu

main


(62)

2. Perancangan Method Pukulan Bola

Gambar 3.19 di bawah ini adalah perancangan method pukulan bola.

Function masukanGerak(arh)

Bl.cekGerakan(arh0; comAction= getComAction();

M.gerakan(comAction);

Switch (arh)

“kiri” ?

“kanan” ?

“tengah” ?

myCom.addSingleData (KIRI);

myCom.addSingleData (KANAN);

myCom.addSingleData (TENGAH);

Keluar Mulai

N

N

Y

Y

Y


(63)

3. Perancangan Method Keluar

Gambar 3.20 di bawah ini adalah perancangan method keluar.

Public function keluarGame ()

Fscommand(“quit”);

Keluar Mulai Pilih menu

keluar


(64)

53 BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi

Tahap implementasi merupakan tahap penciptaan perangkat lunak dan juga tahap kelanjutan dari kegiatan perancangan aplikasi. Tahap ini merupakan tahap di mana aplikasi siap untuk dioperasikan, yang terdiri dari penjelasan mengenai lingkungan implementasi, baik itu lingkungan perangkat keras, maupun lingkungan perangkat lunak, serta implementasi program.

4.1.1 Implementasi Perangkat Keras

Perangkat keras yang digunakan untuk melakukan implementasi dan pengujian game ini yaitu sebagai berikut :

Tabel 4.1 Implementasi Perangkat Keras

No PerangkatKeras Keterangan

1 Prosesor Kecepatan 2.4 GHz

2 Monitor Monitor 17’’, resolusi 1024x768 3 VGA On-board Kecepatan 512 MB

4 Optical Drive DVD-ROM Standard

5 Keyboard Standard

6 Mouse Standard

7 Memori 1GB

4.1.2 Implementasi Perangkat Lunak

Adapun spesifikasi perangkat lunak yang dibutuhkan untuk mengimplementasikan perangkat lunak diantara lain sebagai berikut :

Tabel 4.2 Implementasi Perangkat Lunak

No PerangkatLunak Keterangan 1 SistemOperasi Windows 7 2 Tools Program Adobe Flash CS5

4.1.3 Implementasi Antarmuka

Implementasi antar muka adalah bagian yang menunjuk bentuk tampilan setiap antar muka pada aplikasi yang sudah dibangun. Pada bagian ini akan ditampilkan implementasi anatrmuka menu utama dan menu main.


(65)

4.1.3.1Implementasi Antarmuka Menu utama

Berikut adalah implementasi antarmuka menu utama yang ditunjukan oleh gambar 4.1.


(66)

4.1.3.2Implementasi Antarmuka Menu main

Berikut adalah implementasi antarmuka menu main yang ditunjukan oleh gambar 4.2.


(1)

No Kasus Uji Yang diharapkan Hasilyang dicapai Keterangan 8

1-2-3-4-5-6-7-8-9-10- 11-12-13-14-15-16- 17-18-19-20-21-22- 23-24-25-26-27-28- 29-30-31-32-33-34- 35-36-37-38-39-40- 41-42-43-44-27-28- 29-30-31-32-33-34- 35-36-37-38-39-40-41-42-43-44 Kembali ke prediksi akhir atau terciptanya prediksi akhir.

Terciptanya prediksi akhir N-Gram.

[√] Berhasil [ ] Tidak Berhasil

4.2.4 Pengujian Metode

Untuk memastikan metode berjalan dengan baik maka akan dilakukan uji coba dengan player melakukan pukulan yang sudah ditentukan sebelumnya. Pukulan yang akan dilakukan player adalah sebanyak 20 gerakan. Berikut ini gerakan player dan aksi yang dilakukan NPC seperti ditunjukkan pada tabel 4.7.

Tabel 4.6 Hasil Uji Coba Metode N-Gram

No Aksi Player Aksi NPC

1 L R

2 L R

3 L L

4 L L

5 C L

6 C C

7 C R

8 R R

9 C C

10 L L

11 L L

12 R L

13 R L

14 R C

15 R L

16 C R

17 C L

18 C C

19 C L

20 C C

Dari tabel 4.6 dapat dianalisa bahwa ketika player melakukan pukulan ke-1 sampai ke-3 NPC melakukan gerakan secara random karena belum tercipta Key


(2)

melakukan pukulan L maka NPC dapat memprediksi secara tepat. Ketika pada pukulan ke-5 player dimasukkan pukulan lain NPC masih memprediksi yang sama seperti sebelumnya karena masih blm tercipta LCC. dari percobaan 20 pukulan player pertama NPC dapat memprediksi 9 gerakan dengan tepat. Ini dikarenakan key yang tercipta masih sedikit. Ketika sudah terbentuk banyak Key

maka NPC lebih banyak memprediksi dengan tepat gerakan lawan seperti ditunjukkan pada tabel 1 yaitu dari 9 prediksi yang tepat 6 diantaranya terdapat pada antara gerakan ke-8 sampai gerakan ke-20.

Uji performansi metode N-Gram pada penelitian ini mempunyai 3 parameter arah prediksi antara lain arah prediksi kanan, kiri dan tengah.


(3)

1. Arah prediksi kanan

Gambar 4.7 Prediksi Pukulan Kanan.

Pada gambar 4.7 dapat dilihat bahwa NPC baru bisa memprediksi arah pukulan kanan setelah player melakukan 3 kali pukulan dan terbentuk sequence LRR.


(4)

Gambar 4.8 Prediksi Pukulan Kiri.

Pada gambar 4.8 dapat dilihat bahwa NPC baru bisa memprediksi arah pukulan kiri setelah player melakukan 3 kali pukulan dan terbentuk sequence CLL.


(5)

3. Arah prediksi tengah

Gambar 4.9 Prediksi Pukulan Tengah.

Pada gambar 4.9 dapat dilihat bahwa NPC baru bisa memprediksi arah pukulan kiri setelah player melakukan 4 kali pukulan dan terbentuk sequence CRCC.


(6)

69

dilakukan pada game tenis meja dapat diambil kesimpulan bahwa metode N-Gram dapat berjalan pada game tenis meja ini. Metode N-Gram yang diterapkan pada NPC (Non Player Character) dapat memprediksi arah pukulan bola dengan tepat setelah membaca beberapa pukulan dari player sesuai dengan window key yang telah ditentukan. Semakin banyak key yang tercipta semakin NPC lebih banyak memprediksi memprediksi dengan tepat pukulan player. Dari hasil uji metode yang dilakukan NPC dapat memprediksi 9 arah pukulan dari 20 pukulan yang telah dilakukan oleh player.

1.2Saran

Game ini belum luput dari kesalahan dan masih banyak kekurangan. Metode N-Gram yang digunakan memiliki nilai n atau window size 3 yang mempunyai nilai akurasi sekitar 50 persen. Metode N-Gram yang digunakan pada game ini agar menjadi lebih baik sebaiknya menggunakan ukuran window kurang dari 5 yang mempunyai nilai akurasi sekitar 70 persen menurut tabel different window size karena memperbesar window size pada awalnya akan memperakurat prediksi yang dilakukan, namun juga jika semakin besar akan menurunkan keakuratan prediksi.