1
1.1 Latar Belakang
Game tendangan penalti ( penalty kick) adalah permainan yang dilakukan dengan tendangan bebas tepat didepan penjaga gawang tanpa boleh dihalangi oleh
siapapun. Game ini ber-genre sport game, yaitu salah satu genre game yang dibuat
dari olahraga yang ada dikehidupan nyata. Salah satu penelitian sejenis yang
ber-genre sport game adalah game tenis meja. Dimana pada game tenis meja tersebut diterapkan metode N-Gram pada NPC untuk memprediksi arah pukulan bola yang
dilakukan oleh player. Arah yang diprediksi yaitu kiri, kanan, dan tengah. Pukulan
dari player tersebut disimpan didalam sebuah struktur data antrian (queue). Permasalahannya adalah jika struktur data antrian masih kosong, maka NPC akan
memprediksi arah secara acak [1]. Oleh karena itu metode N- Gram kurang optimal
untuk diterapkan pada penelitian ini. Maka dari itu dibutuhkan suatu metode untuk
memprediksi arah sehingga NPC penjaga gawang dapat menentukan tindakan
dengan tepat dengan cara pengklasifikasian dari data traning sebelumnya dengan
data baru yaitu parameter masukan.
Salah satu metode pengklasifikasian adalah metode naïve bayes. Metode naive bayes merupakan pengklasifikasian dengan metode probabilitas dan statistik yang dikemukan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi peluang
di masa depan berdasarkan pengalaman dimasa sebelumnya sehingga dikenal
sebagai teorema bayes. Teorema tersebut dikombinasikan dengan naive dimana diasumsikan kondisi antar atribut saling bebas. Klasifikasi naive bayes diasumsikan
bahwa ada atau tidak ciri tertentu dari sebuah kelas tidak ada hubungannya dengan
ciri dari kelas lainnya . [2].
tersebut maka terdapat sembilan arah bola yang akan diprediksi oleh NPC penjaga
gawang yaitu kiri bawah, kiri tengah, kiri atas, tengah bawah, tengah – tengah, tegah
atas, kanan bawah, kanan tengah, dan kanan atas. Untuk pengklasifikasian dari tiga
parameter input tersebut yaitu menggunakan metode naïve bayes maka dibutuhkan
data traning sebelumnya, dan data baru yaitu berupa parameter masukan seperti arah bola, tinggi bola, dan kekuatan tendangan.
Berdasarkan penjelasan yang telah dipaparkan sebelumnya, maka diharapkan
dengan metode naïve bayes yang diterapkan pada NPC penjaga gawang dapat mengambil tindakan secara tepat dan optimal dalam memprediksi arah bola yang
ditendang oleh player.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang diuraikan sebelumnya, maka perumusan
masalahnya adalah bagaimana memberikan kecerdasan buatan kepada NPC
penjaga gawang untuk menentukan tindakan yang akan diambil dengan tepat
menggunakan metode naïve bayes.
1.3 Maksud Dan Tujuan
Maksud dari penelitian tugas akhir ini adalah implementasi metode naïve bayes untuk menentukan tindakan NPC penjaga gawang pada simulasi game penalty kick, Sedangkan tujuan dari penelitian tugas akhir ini adalah agar NPC penjaga gawang dapat menentukan tindakan yang akan diambil ketika player menembakkan bola kearah gawang.
1.4 Batasan Masalah
Untuk menghindari pembahasan yang meluas, maka penulis hanya membatasi
permasalahan sebagai berikut :
1. Tindakan yang akan diambil oleh NPC penjaga gawang adalah menangkap
bola ke arah kiri bawah, kiri tengah, kiri atas, tengah bawah, tengah –
2. Player menendang bola kearah gawang dengan menginputkan tiga parameter yaitu arah, tinggi, dan kekuatan tendangan.
3. Analisis dan pemodelan yang digunakan dalam membangun perangkat
lunak ini adalah OOAD ( Object Oriented Analysis Design ).
4. Media penyimpanan data traning yaitu menggunakan file text.
1.5 Metodologi Penelitian
Metode penelitian adalah cara untuk mencapai suatu tujuan di dalam sebuah
penelitian. Untuk penelitian ini penulis menggunakan metode penelitian deskriptif.
Metode penelitian deskriptif adalah sebuah penelitian yang bertujuan untuk
memberikan atau menjabarkan suatu keadaan atau fenomena yang terjadi saat ini
dengan menggunakan prosedur ilmiah untuk menjawab masalah secara aktual.
1.5.1 Metode Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah
dengan melakukan studi literature. Studi literatur adalah mengumpulkan data
melalui buku-buku, hasil penelitian, jurnal, situs internet, artikel terkait dengan
materi penelitian. Khususnya tentang game, tendangan penalti, kecerdasan buatan
naïve bayes, tools yang digunakan, dan juga pemodelan dengan UML.
1.5.2 Metode Pembangunan Perangkat Lunak
Metode analisis data dalam pembuatan perangkat lunak menggunakan
metode agile [3]. Pada penelitian ini, tahapan pembuatan perangkat lunak dibatasi
sampai pada tahap testing. Adapun penjelasan dari tiap tahapannya sebagai berikut
:
a. Planning
Pada tahap ini mulai mencari fungsionalitas- fungsionalitas yang dibutuhkan
untuk membangun game yang meliputi analisis masalah, analisis algoritma naïve bayes, analisis kebutuhan fungsinonal dan non-fungsional.
b. Design
c. Coding
Pada tahap ini akan dilakukan implementasi dari perancangan yang telah
dilakukan pada tahap design kedalam bahasa pemrograman C#.
d. Test
Pada tahap ini dilakukan pengujian terhadap game yang telah dibuat dan pengujian dari metode yang diterapkan. Tujuan testing sendiri bertujuan untuk
menemukan kesalahan – kesalahan terhadap perangkat lunak untuk kemudian
bisa diperbaiki.
Berikut ini merupakan metode agile yang ada pada gambar 1.1 :
Gambar 1.1 Metode Agile [3]
1.6 Sistematika Penulisan
Sistematika penulisan penelitian ini disusun untuk memberikan gambaran
umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini
adalah sebagai berikut :
BAB 1 PENDAHULUAN
Bab ini membahas mengenai latar belakang , identifikasi masalah, maksud dan
tujuan, batasan masalah, metode penelitian, serta sistematika penulisan untuk
BAB 2 LANDASAN TEORI
Pada bab ini akan membahas berbagai konsep dasar dan teori-teori yang berkaitan
dengan topik penelitian seperti tendangan penalti dan sejarah dari tendangan
penalti, kecerdasan buatan, metode naïve bayes, UML (Unified Modeling Language), dan Unity 3D.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini menjelaskan mengenai analisis sistem yang mencakup perancangan
tampilan game, dan analisis bagaimana implementasi metode naïve bayes untuk menentukan tindakan NPC penjaga gawang pada simulasi game penalty kick.
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini menjelaskan tentang implementasi yang mencakup implementasi perangkat
keras, implementasi perangkat lunak dan implementasi antarmuka. Bab ini juga
merupakan pengujian sistem seperti skenario pengujian, pengujian blackbox dan
metode.
BAB 5 KESIMPULAN DAN SARAN
Bab ini berisi mengenai kesimpulan yang diperoleh dari hasil pengujian sistem serta
7
2.1 Game
Game adalah permainan yang menggunakan media elektronik, yaitu sebuah hiburan berbentuk multimedia yang dibuat semenarik mungkin agar pemain bisa
mendapatkan sesuatu sehingga adanya kepuasan batin. Game sendiri bertujuan untuk menghibur, biasanya game banyak disukai oleh anak – anak hingga orang dewasa. Berikut ini merupakan jenis – jenis game sesuai dengan genre-nya [4] :
1. Simulation
Simulation Adalah genre yang mementingkan realisme. Segala faktor pada game ini sangat diperhatikan agar semirip didunia nyata. Segala nilai, material,referensi, dan faktor lainnya adalah berdasarkan dunia nyata. Cara
memainkannya juga berbeda, karena biasanya kontrol yang dimiliki cukup
rumit.
2. Strategy
Strategy adalah genre game yang memiliki gameplay untuk mengatur suatu unit atau pasukan untuk menyerang markas musuh dalam rangka memenangkan
permainan. biasanya di dalam game strategy, kita dituntut untuk mencari gold
untuk membiayai pasukan kita.
3. Action Adventure
Action adventure adalah game berupa petualangan salah seorang karakter yang penuh dengan penuh aksi yang akan terus ada hingga game tersebut tamat.
4. RPG (Role Playing Game)
RPG adalah salah satu game yang mengandung unsur experience atau leveling dalam gameplay-nya. Biasanya dalam game ini kita memiliki kebebasan untuk menjelajah dunia game tersebut.
5. FPS (First Person Shooting)
FPS adalah game yang tembak menembak yang memiliki ciri utamanya adalah penggunaan sudut pandang orang pertama yang membuat kita
6. TPS (Third Person Shooter)
TPS adalah game yang mirip dengan FPS yaitu memiliki gameplay tembak
menembak hanya saja sudut pandang yang digunakan dalam game ini adalah
orang ketiga.
7. Tycoon
Tycoon adalah game yang menjadikan kita sebagai seorang businessman yang akan mengembangkan sesuatu property untuk dikembangkan hingga laku
di pasaran.
8. Racing
Racing game adalah game sejenis racing yang memungkinkan kita untuk mengendalikan sebuah kendaraan untuk memenangkan sebuah balapan.
9. Arcade
Arcade game adalah genre game yang tidak terfokus pada cerita, melainkan hanya dimainkan "just for fun" atau untuk kejar-mengejar point atau highscore.
10.Fighting
Fighting adalah genre game bertarung. Seperti dalam arcade, pemain dapat mengeluarkan jurus-jurus ampuh dalam pertarungannya.
11.Sport
Sport adalah genre bertema permainan olahraga. Sistem permainan akan berbeda-beda tergantung jenis olahraga yang menjadi tema game tersebut.
Dari beberapa genre game yang telah dijelaskan, maka dalam penelitian ini
akan dibangun sebuah game simulasi tendangan penalti (penalty kick) dalam bentuk
2.2 Tendangan Penalti
Tendangan penalti (penalty kick) adalah tendangan yang dilakukan apabila
salah satu pemain tim melakukan pelanggaran di dalam kotak wilayah penjaga
gawang tim sendiri. Tendangan diberikan kepada pemain lawan dan dilakukan
dengan menendang bola dari titik yang telah di buat di tengah kotak dalam wilayah
penjaga gawang, tanpa dijaga oleh pemain lawan , dengan jarak kira-kira 12 kaki
dari garis gawang [5]. Adapun untuk ukuran gawang, gawang diletakkan di tengah
masing-masing garis gawang. Bentuknya terdiri dari dua tiang berdiri dan sebuah
mistar yang terpasang di atasnya, dimana ukuran tingginya 2,44 m sedangkan
panjangnya 7,32 m. Adapun jaring gawang memiliki ukuran lubang sebesar 10 cm
[6].
Tantangan yang akan dihadapi oleh pemain yang akan melakukan tendangan
penalti adalah memasukkan bola kearah gawang sehingga menciptakan goal sedangkan penjaga gawang memprediksi arah bola yang ditendang oleh pemain
yang melakukan tendangan penalti sehingga penjaga gawang dapat mengambil
tindakan. Berikut merupakan ilustrasi dari tendangan penalti yang ada pada gambar
2.1.
2.2.1 Sejarah Tendangan Penalti
Sebelum tahun 1976, pemenang pertandingan Piala Eropa ditentukan
dengan sistem yang melelahkan jika hingga perpanjangan waktu usai belum juga
ada tim yang unggul. Ketika itu, selesainya Piala Eropa pun tak bisa dipastikan dan
muncul kerisauan turnamen tersebut diperpanjang tanpa kejelasan batas waktu.
Pada Piala Eropa 1976, adu penalti untuk menentukan pemenang digelar
pertama kalinya dalam final di Stadion Crvena Zvezda, Beograd, pada 20 Juni.
Jerman Barat dan Cekoslowakia berebut gelar juara.
Peraturan mengenai adu penalti ditetapkan Federasi Asosiasi Sepak Bola
Internasional (FIFA) mulai tahun 1970. Piala Eropa 1976 merupakan salah satu
pesta sepak bola akbar paling awal yang pesertanya melakukan adu penalti.
Pada Piala Dunia 1982 menjadi pesta sepak bola yang menerapkan adu
penalti saat Jerman Barat menghadapi Perancis di semifinal. Adu penalti berakhir
dengan skor 5-4 untuk kemenangan Jerman Barat. Selanjutnya, adu penalti lazim
diadakan dalam berbagai turnamen sepak bola, termasuk Piala Eropa [7].
2.2.2 Game Penalty Kick
Game penalty kick adalah permainan yang dilakukan dengan tendangan bebas tepat didepan penjaga gawang tanpa boleh dihalangi oleh siapapun. Game ini
ber-genre sport game, yaitu salah satu genre game yang dibuat dari olahraga yang
ada dikehidupan nyata. Berikut merupakan salah satu contoh game penalty kick yang ada pada gambar 2.2 .
Dari hasil penjelasan tentang tendangan penalti yang nantinya akan
diimplementasikan dalam simulasi game, dan berdasarkan contoh game penalty kick maka terdapat 3 parameter input yaitu arah bola, tinggi bola, dan kekuatan tendangan yang akan digunakan untuk klasifikasi metode naïve bayes, sedangkan
penjaga gawang berperan sebagai NPC (non – player character). NPC adalah karakter pada game yang sepenuhnya dikendalikan oleh komputer dan tidak dapat
mainkan oleh pemain. Oleh sebab itu dibutuhkan AI (Artificial Intelligence)
terhadap NPC penjaga gawang dalam memprediksi arah bola yang ditendang oleh
pemain sehingga penjaga gawang dapat mengambil tindakan.
2.3 AI (Artificial Intelligence)
Sebagian kalangan menerjemahkan AI (Artificial Intelligence) sebagai
kecerdasan buatan, kecerdasan artifisial, intelijensia artifisial, atau intelijensia
buatan. Para ahli mendefinisikan AI secara berbeda – beda tergantung pada sudut
pandang mereka masing – masing. Ada yang fokus 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, kedalam empat kategori [8], yaitu :
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 reflex 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.
dengan pendekatan rationally agent. Hal ini berdasarkan pemikiran bahwa komputer bisa melakukan penalaran secara logis dan juga bisa melakukan aksi
secara rasional berdasarkan hasil penalaran tersebut.
Terdapat empat teknik yang ada di AI, yaitu :
1. Searching
Teknik searching digunakan untuk pencarian rute optimum. Contoh produk
AI yang menggunakan teknik searching adalah TomTom, yang digunakan untuk membantu wisatawan untuk menjelajahi tempat – tempat menarik di
berbagai kota di Eropa, Amerika dan Australia.
2. Reasoning
Teknik reasoning digunakan untuk penalaran. Contoh produk AI yang menggunakan teknik reasoning adalah MedicWare, yang digunakan untuk merekam catatan medis pasien.
3. Planning
Teknik planning digunakan untuk perencanaan. Contoh produk AI yang menggunakan teknik planning adalah Optimum-AIV, yang digunakan untuk membuat perencanaan dan untuk memonitor eksekusi terhadap perencanaan –
perencanaan tersebut.
4. Learning
Teknik learning telah digunakan pada berbagai bidang seperti transportasi,
speech processing, computer vision, robotics, dan sebagainya. Contoh produk AI yang menggunakan teknik learning adalah ALVINN, yaitu sebuah sistem
auto driver.
Salah satu metode yang ada dalam AI adalah metode naïve bayes. Maka
dalam penelitian tugas akhir ini akan digunakan metode naïve bayes sebagai AI
2.4 Metode Naïve Bayes
Metode naïve bayes merupakan salah satu metode yang terdapat pada teknik
klasifikasi. Naïve bayes merupakan pengklasifikasian dengan metode probabilitas
dan statistik yang dikemukakan oleh ilmuwan inggris Thomas Bayes, yaitu
memprediksi peluang dimasa depan berdasarkan pengalaman sebelumnya sehingga
dikenal sebagai teorema bayes. Teori keputusan bayes adalah pendekatan statistik
yang fundamental dalam pengenalan pola (pattern recognition). Pendekatan ini
didasarkan pada kuantifikasi trade-off antara berbagai keputusan klasifikasi dengan
menggunakan probabilitas dan ongkos atau konsekuensi yang ditimbulkan dalam
keputusan – keputusan tersebut [2]. Berikut merupakan pendekatan bayesian untuk
estimasi probabilitas yang ada pada persamaan 2.1 :
�(� | � ) = � ++ .
Keterangan :
: Jumlah data traning dimana � = �.
� : Jumlah data traning dimana � = � dan � = �.
� : Prior estimate untuk �(� | � ). : Ukuran sampel ekuivalen.
Cara yang biasa digunakan untuk memilih nilai P jika informasi lain tidak ada
adalah asumsi keseragaman, yaitu jika ada K nilai yang mungkin maka P = 1/k. Jika
m bernilai nol maka m-estimate akan ekuivalen dengan ��
� . Jika n dan m keduanya
tidak nol, maka fraksi yang diamati adalah ��
� dan probabilitas prior p akan dikombinasikan menurut bobot m. Jadi alasannya mengapa m dinamakan ukuran sampel ekuivalen bahwa dalam persamaan 2.1 terjadi penguatan observasi aktual n
dengan tambahan sampel virtual m yang terdistribusi menurut p. Aturan bayes bisa
ditetapkan sebagai berikut :
Jika � � | x < � � | x , maka x diklasifikasikan sebagai �
Naïve bayes didasarkan pada asumsi penyederhanaan bahwa nilai atribut
diberikan nilai output, probabilitas mengamati secara bersama adalah produk dari
probabilitas individu. Sebagai contoh data mobil tercuri pada tabel 2.1 sebagai
berikut :
Tabel 2.1 Data Mobil Tercuri
WARNA
�
TIPE
�
ASAL
�
TERCURI
�
merah sport domestik ya
merah sport domestik tidak
merah sport domestik ya
kuning sport domestik tidak
kuning sport import ya
kuning SUV import tidak
kuning SUV import ya
kuning SUV domestik tidak
merah SUV import tidak
merah sport import ya
Pada tabel 2.1, data mobil yang tercuri bisa dilihat dari atribut warna, tipe,
dan asal. Misalkan kita ingin mengelompokkan mobil warna merah, tipe SUV, dan
asal domestik. Dari tabel 2.1 kita tidak melihat mobil dengan nilai atribut ini. Untuk
menentukan kelompok mobil ini kita akan hitung :
1. Menghitung mobil tercuri � �
Untuk menghitung � � menggunakan persamaan 2.2 sebagai berikut :
�(� ) =ju ahN (2.2)
Keterangan :
�(� ) : Probabilitas hipotesis � (prior).
A.� ya
� ya = = .
B.� tidak
� tidak = = .
2. Menghitung peluang konditional masing – masing kejadian
Semua atribut masing – masing mempunyai 2 nilai, sehingga p = 1/2. Nilai
m bisa diberi nilai sembarang, misalnya 3, tetapi konsisten untuk semua atribut. Kita hitung peluang konditional masing – masing kejadian sebagai
berikut :
A.Tercuri (ya)
a. Warna
warna = merah
n =5
� = p = 0.5
� �ℎ | �� = + +∗ . = .
b. Tipe
Tipe = SUV
n =5
� = p = 0.5
� SUV| �� = + ∗ .
c. Asal
asal = domestic
n =5
� = p = 0.5
� domestik| �� = + +∗ . = .
P(ya) * � �ℎ | ya *� � |ya * � �� | ya = . * . * . * . = 0.037
B. Tercuri (tidak)
a. Warna
warna = merah
n =5
� =
p = 0.5
� �ℎ | � �� = + +∗ . = .
b. Tipe
Tipe = SUV
n =5
� = p = 0.5
� SUV| � �� = + +∗ . = .
c. Asal
asal = domestic
n =5
� domestik| � �� = + +∗ . = .
P(tidak) * � �ℎ | � �� *� � | � �� *
� �� | � ��
= . * . * . * . = 0.069
Karena nilai 0.069 > 0.037, kita simpulkan data ini dalam kelompok tidak.
Dari hasil penjelasan, metode naïve bayes merupakan salah satu metode yang
ada dalam teknik klasifikasi, maka dalam penelitian ini, pengklasifikasian
berdasarkan tiga parameter inputan yaitu arah bola, tinggi bola, dan kekuatan
tendangan. Hasil klasifikasi nantinya yang akan menentukan tindakan yang akan
diambil oleh NPC penjaga gawang. Maka dalam penelitian tugas akhir ini akan di
implementasikan metode naïve bayes untuk menentukan tindakan NPC penjaga
gawang pada simulasi game penalty kick. Adapun tahapan analisis dan pemodelan
yang digunakan untuk pembangunan perangkat lunak ini menggunakan OOAD
(Object Oriented Analysis Design).
2.5 Object Oriented
Dibanyak metode analisis dan perancangan tradisional, fungsi, data dan aliran
data adalah konsep kunci. Konsep – konsep ini cocok untuk mendeskripsikan
fenomena di kantor dan sistem komputerisasi. Object, keadaan sesaat (state) dan perilaku (behavior) adalah konsep umum yang cocok untuk mendeskripsikan
kebanyakan fenomena yang diekspresikan dengan bahasa natural (alami) [9].
Kekuatan utama object oriented atau OO adalah jelasnya informasi dalam konteks sistem. Metode Tradisional sangat efektif pada sistem modeling pada tahap
awal yang bertujuan untuk otomatisasi pemrosesan pekerjaan yang berkaitan
dengan buruh. Sedangkan kebanyakan sistem sekarang ini dikembangkan untuk
menyelesaikan masalah, berkomunikasi dan koordinasi. Fungsi sistem baru ini
mendistribusikan data khusus ke seluruh organisasi. Karena itu sangat penting
menggunakan metode yang berfokus baik pada sistem maupun konteksnya [9].
Kekuatan lain dari metode object oriented adalah sangat dekatnya hubungan
antara OO analisis, OO design, OO user interface dan OO berupa kondisi sosial. Berikut adalah aspek – aspek penting yang sering dibahas di UML yang berkaitan
dengan object [9] :
2.5.1 Abstraksi
Abstraksi bertujuan untuk memfilter properties dan operation pada suatu object, sehingga hanya tinggal properties dan operation yang dibutuhkan saja. Seringkali masalah yang berbeda membutuhkan sejumlah informasi yang berbeda
pula pada areal yang sama.
2.5.2 Inheritance
Object adalah contoh instan dari sebuah class. Hal ini mempunyai konsekuensi yang penting yaitu sebagai instance sebuah class, sebuah object mempunyai semua karakteristik dari class-nya. Inilah yang disebut dengan inheritance (pewarisan sifat). Dengan demikian apapun attribute dan operation dari class akan dimiliki pula oleh semua object yang disinherit / diturunkan dari class tersebut. Sifat ini tidak hanya berlaku untuk object terhadap class, akan tetapi juga
berlaku untuk class terhadap class lainnya.
2.5.3 Polimorphisme
Polimorphisme adalah konsep yang sangat handal bagi pengembang perangkat lunak untuk memisahkan secara jelas diantara sub sistem yang berbeda.
Dengan demikian sebuah sistem akan bisa dimodifikasi secara mudah karena hanya
dibutuhkan interface antar class.
2.5.4 Encapsulation
Encapsulation sering disebut dengan penyembunyian informasi. Konsep ini lebih didasari pada fakta yang ada di dunia nyata bahwa tidak semua hal perlu
diperlihatkan. Jika kesalahan / error terjadi pada suatu object, kita mungkin hanya
2.5.5 Association
Association (asosiasi) adalah hubungan antar object yang saling membutuhkan. Hubungan ini bisa satu arah ataupun lebih dari satu arah.
Multiplicity adalah sebuah aspek yang penting dalam asosiasi antar object. Ini berkaitan dengan sejumlah object dalam satu class yang saling berasosiasi.
2.6 UML
UML (Unified Modelling Language) adalah salah satu alat bantu yang sangat
handal di dunia pengembangan sistem berorientasi object. Hal ini disebabkan karena UML menyediakan bahasa pemodelan visual yang memungkinkan bagi
pengembang sistem untuk membuat cetak biru atas visi mereka dalam bentuk yang
baku, mudah dimengerti serta dilengkapi dengan mekanisme yang efektif untuk
berbagai (sharing) dan mengkomunikasikan rancangan mereka dengan yang lain.
Setiap pendekatan untuk pemodelan memiliki kelebihan dan kekurangan
yang berbeda, namun UML memiliki enam keuntungan utama yaitu:
1. UML adalah bahasa formal
Setiap elemen dari bahasa memiliki makna didefinisikan kuat, sehingga
anda dapat yakin bahwa ketika anda memodelkan sebuah aspek tertentu dari
sistem anda tidak akan salah paham.
2. UML singkat
Seluruh bahasa terdiri dari notasi yang sederhana dan mudah.
3. Kompherensif
Ini menggambarkan semua aspek penting dari sebuah sistem.
4. Terukur
Dimana dibutuhkan, bahasa yang cukup untuk menangani proyek-proyek
pemodelan sistem besar formal, tetapi juga skala ke proyek-proyek kecil, untuk
menghindari berlebihan.
5. Dibangun diatas pembelajaran
UML adalah puncak dari praktek-praktek terbaik dalam komunitas
berorientasi objek selama 15 tahun terakhir.
UML dikendalikan oleh kelompok standar terbuka dengan kontribusi aktif
dari kelompok di seluruh dunia vendor dan akademisi, yang fends off "vendor lock-in." Standar memastikan UML transformability dan interoperabilitas, yang berarti Anda tidak terikat dengan suatu produk tertentu.
Didalam UML sendiri terdapat beberapa diagram yang digunakan yaitu use case diagram, use case scenario, activity diagram, class diagram, statechart diagram, dan sequence diagram [9] .
2.6.1 Use Case Diagram
Use case diagram digunakan untuk menggambarkan fungsionalitas dari sebuah sistem. Use case diagram yaitu mendeskripsikan apa yang sistem lakukan
tanpa mendeskripsikan bagaimana sistem menyelesaikannya. Pada gambar 2.3
contoh use case diagram.
Berikut ini beberapa simbol yang ada didalam sebuah use case diagram dapat dilihat pada tabel 2.2 :
Tabel 2.2 Simbol Use Case Diagram
Simbol Nama Simbol Fungsi
Aktor Aktor menggambarkan orang, system
atau external entitas yang menyediakan atau menerima informasi dari system.
Use case Menggambarkan fungsionalitas dari
sistem.
Assosiation Menggambarkan interaksi antara
aktor dengan use case.
Sistem boundary Menggambarkan ruang lingkup atau batasan dari suatu sistem.
Terdapat beberapa relasi didalam use case diagram sebagai berikut :
1. Relasi Include
Relasi include hanya digunakan antar use case saja. Satu use case bisa meng-include use case yang lain. Pada gambar 2.4 contoh penggunaan relasi
include pada diagram use case.
Gambar 2.4 Contoh Penggunaan Relasi Include [10]
Pada gambar 2.4 use case “Acquire armor “ meng-include use case “Bargain with merchant”, dimana ketika use case “Acquire armor “ dieksekusi maka use case “Bargain with merchant” juga dieksekusi. Relasi include direpresentasikan dengan garis putus – putus dengan bertuliskan
“<<include>>”.
2. Relasi Extend
Relasi extend hanya digunakan antar use case saja. Satu use case bisa
meng-extend use case lainnya. Pada gambar 2.5 contoh penggunaan relasi extend pada use case diagram.
Gambar 2.5 Contoh Penggunaan Relasi Extend [10]
Pada gambar 2.5 use case “Select armor “ di extend oleh use case “Select armor with trade”, dimana ketika use case “Select armor “ dieksekusi maka use case “Select armor with trade” sifatnya opsional. Relasi extends direpresentasikan dengan garis putus – putus dengan bertuliskan
3. Relasi Generalization
Relasi generalization digunakan untuk use case dan actor. Relasi ini merepresentasikan suatu use case atau actor lebih spesifik. Pada gambar 2.6 contoh penggunaan relasi generalization.
Gambar 2.6 Contoh Penggunaan Relasi Generalization [10]
2.6.2 Use Case Scenario
Use case scenario adalah hasil instansiasi dan penjelasan dari setiap use case. Pada Gambar 2.7 contoh use case scenario.
2.6.3 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. Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem secara ekstra, tetapi lebih menggambarkan proses-proses
dan jalur-jalur aktivitas dari level atas secara umum. Menggambarkan proses bisnis
dan urutan aktivitas dalam sebuah proses. Dipakai pada business modeling untuk
memperlihatkan urutan aktifitas proses bisnis. Struktur diagram ini mirip flowchart
atau Data Flow Diagram pada perancangan terstruktur. Sangat bermanfaat apabila
kita membuat diagram ini terlebih dahulu dalam memodelkan sebuah proses untuk
membantu memahami proses secara keseluruhan. Activity diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram. Pada gambar 2.8 contoh activity diagram.
2.6.4 Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (object yang
terkait). Pada gambar 2.9 contoh sequence diagram.
Gambar 2.9 Contoh Sequence Diagram [10]
2.6.5 Class Diagram
Class diagram merupakan salah satu diagram utama dari Unified Modelling Language (UML) untuk menggambarkan class atau blueprint object pada sebuah sistem. Pada class diagram juga digambarkan bagaimana interaksi hubungan antar
class dalam sebuah konstruksi piranti lunak seperti hubungan asosiasi, agregasi, komposisi, dan inheritance. Standarisasi pemakaian class diagram yang ter up to date pada diagram UML 2.0.
Class memiliki tiga area pokok : 1. Nama
2. Atribut
3. Metoda
Atribut dan metoda dapat memiliki salah satu sifat berikut :
2. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya.
3. Public, dapat dipanggil oleh class siapa saja.
Pada gambar 2.10 klasifikasi sifat atribut dan metoda.
Gambar 2.10 Klasifikasi Sifat Atribut dan Metoda [10]
Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Pada gambar 2.11 contoh interface.
Gambar 2.11 Contoh Interface [10]
Interface tidak dapat langsung diinstansiasi, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface pendukung resolusi metoda pada saat run-time.
Adapun hubungan antar class sebagai berikut :
1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan
class yang memiliki atribut berupa class lain, atau class memiliki atribut
2. Agregasi, yaitu hubungan yang menyatakan bagian. Beberapa Class dapat
mempunyai hubungan agregasi jika salah salah satu Class berisi
atribut-atribut yang ada pada class lain.
3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari
class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang
diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
4. Hubungan dinamis, yaitu rangkaian pesan yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram.
Pada gambar 2.12 merupakan contoh class diagram :
Gambar 2.12 Contoh Class Diagram [10]
2.6.6 Statechart Diagram
Statechart diagram menggambarkan transisi dan perubahan keadaan suatu objek pada sistem sebagai akibat dari stimulus yang diterima. Pada umumnya
Gambar 2.13 Contoh Statechart Diagram [10]
Dari beberapa diagram UML yang telah dijelaskan, maka pada penelitian
tugas akhir ini untuk pemodelannya menggunakan beberapa diagram yaitu use case
diagram, use case scenario, activity diagram, class diagram, dan sequence diagram.
Adapun tools yang digunakan untuk pembangunan perangkat lunak menggunakan
unity.
2.7 Unity
Unity adalah sebuah game engine yang berbasis cross-platform. Unity dapat digunakan untuk membuat sebuah game yang bisa digunakan pada perangkat komputer, android, ios, blackberry, windows store, windows phone 8, xbox 360,
box one, PS3, PS Vita, PS4, dan playstation mobile. Unity adalah sebuah tools yang
terintegrasi untuk membuat game, arsitektur bangunan dan simulasi. Unity bisa untuk PC games, mobile games, dan online games. Untuk online games diperlukan
sebuah plugin, yaitu Unity Web Player. Fitur scripting yang disediakan, mendukung
3 bahasa pemrograman, JavaScript, C#, dan Boo [11].
Dari penjelasan tentang unity, maka pada penelitian tugas akhir ini game yang
2.8 Bahasa C#
C# adalah bahasa pemrograman baru yang diciptakan oleh Microsoft
(dikembangkan dibawah kepemimpinan Anders Hejlsberg yang notabene juga telah
menciptakan berbagai macam bahasa pemrograman termasuk Borland Turbo C++
dan Borland Delphi). Bahasa C# juga telah di standarisasi secara internasional oleh
ECMA [12].
Seperti halnya bahasa pemrograman yang lain, C# bisa digunakan untuk
membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis windows
(desktop) dan aplikasi berbasis web serta aplikasi berbasis web services [13].
Adapun kelebihan dari Bahasa pemrograman C# yaitu :
1. Sederhana yaitu C# menghilangkan beberapa hal yang bersifat kompleks
yang terdapat dalam beberapa macam bahasa pemrograman seperti Java dan
C++, termasuk diantaranya mengilangkan macro, templates, multiple inheritance dan virtual base classes. Hal-hal tersebut yang dapat menyebabkan kebingunan pada saat menggunakannya, dan juga
berpotensial dapat menjadi masalah bagi para programmer C++.
2. C# bersifat sederhana, karena bahasa ini didasarkan kepada Bahasa C dan
C++.
3. Modern karena adanya beberapa fitur seperti exception handling, garbage
collection, extensible data types, dan code security (keamanan kode/bahasa pemrograman). Dengan adanya fitur-fitur tersebut, menjadikan bahasa C#
sebagai Bahasa pemrograman yang modern.
4. Powerfull dan fleksibel, C# bisa digunakan untuk membuat berbagai macam aplikasi, seperti aplikasi pengolah kata, grapik, spreadsheets, atau bahkan membuat kompiler untuk sebuah Bahasa permrograman.
5. Efisien, C# adalah bahasa pemrograman yang menggunakan jumlah
kata-kata yang tidak terlalu banyak. C# hanya berisi kata-kata-kata-kata yang biasa disebut
Adapun untuk menentukan panjang dan tinggi gawang dalam game yang akan
dibangun menggunakan rumus skala.
2.9 Skala
Skala adalah perbandingan antara jarak pada gambar dengan jarak yang
sebenarnya. Sebagai contoh untuk menggambar lebar jalan, dimana diketahui lebar
jalan 1 m dan skala yang digunakan yaitu 1 : 20. Skala 1 : 20 berarti setiap satu
centi meter pada gambar akan mewakili ukuran 20 cm benda sesungguhnya [14].
Adapun rumus yang digunakan untuk menghitung lebar jalan yang ada pada gambar
dapat dilihat pada persamaan 2.3 sebagai berikut :
JP = JS x S (2.3) Keterangan :
JP : Jarak pada gambar JS : Jarak sebenarnya
S : Skala
Dari persamaan 2.3, maka dapat dihitung lebar jalan pada gambar sebagai
berikut :
JP = x ( ) =
Jadi lebar jalan pada gambar dengan jarak 5cm. Sedangkan untuk menguji
perangkat lunak dan metode yang digunakan, maka diperlukan pengujian perangkat
2.10 Pengujian Perangkat Lunak
Ujicoba software merupakan elemen yang kritis dari Software Quality Assurance (SQA) dan merepresentasikan tinjauan ulang yang menyeluruh terhadap spesifikasi,desain dan pengkodean. Ujicoba merepresentasikan ketidaknormalan
yang terjadi pada pengembangan software [15].
Para pengembang membuat serangkaian uji kasus yang bertujuan untuk
”membongkar” software yang mereka bangun. Kenyataannya, ujicoba merupakan salah satu tahapan dalam proses pengembangan software yang dapat dilihat (secara
psikologi) sebagai destruktif, dari pada sebagai konstruktif.
Pengembang software secara alami merupakan orang konstruktif. Ujicoba
yang diperlukan oleh pengembang adalah untuk melihat kebenaran dari software yang dibuat dan konflik yang akan terjadi bila kesalahan tidak ditemukan. Dari
sebuah buku, Glen Myers menetapkan beberapa aturan yang dapat dilihat sebagai
tujuan dari ujicoba:
1. Ujicoba merupakan proses eksekusi program dengan tujuan untuk
menemukan kesalahan.
2. Sebuah ujicoba kasus yang baik adalah yang memiliki probabilitas yang
tinggi dalam menemukan kesalahan-kesalahan yang belum terungkap.
3. Ujicoba yang berhasil adalah yang mengungkap kesalahan yang belum
ditemukan.
Sehingga tujuan dari ujicoba ini adalah mendesain serangkaian tes yang
secara sistematis mengungkap beberapa jenis kesalahan yang berbeda dan
melakukannya dalam waktu dan usaha yang minimum. Jika pengujian
diselenggarakan dengan sukses, maka akan membongkar kesalahan yang ada
didalam perangkat lunak, manfaat lain dari pengujian adalah menunjukkan bahwa
fungsi perangkat lunak telah bekerja sesuai dengan spesifikasi, dan kebutuhan
fungsi telah tercapai. Sebagai tambahan, data yang dikumpulkan pada saat
pengujian dilaksanakan akan menyediakan suatu indikasi keandalan perangkat
2.10.1 Alur Informasi Test
Berikut ini adalah gambar alur informasi test (Test Information Flow):
Gambar 2.14 Alur Informasi Test
Alur informasi untuk ujicoba mengikuti pola seperti gambar diatas. Dua
kategori input yang disediakan untuk proses ujicoba adalah:
1. Software configuration yang terdiri dari spesifikasi kebutuhan software, spesifikasi desain dan kode sumber;
2. Test configuration yang terdiri dari rencana dan prosedur ujicoba, Tools ujicoba apapun yang dapat digunakan, dan kasus ujicoba termasuk hasil
yang diharapkan. Pada kenyataannya, konfigurasi ujicoba merupakan
subset dari konfigurasi software.
2.11 Desain Kasus Uji Coba
Desain ujicoba untuk software atau produk teknik lainnya sama sulitnya dengan desain inisial dari produk itu sendiri. Dengan tujuan dari ujicoba itu sendiri
yaitu, mendesain ujicoba yang tingkat kemungkinan penemuan kesalahan yang
tinggi dengan jumlah waktu dan usaha yang sedikit [15].
Selama beberapa dekade, metode desain ujicoba kasus telah dikembangkan.
Metode ini menyediakan pendekatan sistematik untuk ujicoba. Hal yang lebih
penting yaitu, metode-metode ini menyediakan mekanisme yang dapat membantu
memastikan kelengkapan ujicoba dan menyediakan tingkat kemungkinan yang
Semua produk yang dikembangkan (engineered) dapat diujicoba dengan
salah satu cara dari 2 cara berikut:
1. Mengetahui fungsi-fungsi yang dispesifikasikan pada produk yang didesain
untuk melakukannya, ujicoba dapat dilakukan dengan mendemonstrasikan
setiap fungsi secara menyeluruh.
2. Mengetahui cara kerja internal dari produk, ujicoba dapat dilakukan untuk
memastikan bahwa seluruh operasi internal dari produk dilaksanakan
berdasarkan pada spesifikasi dan komponen internal telah digunakan secara
tepat.
Pendekatan pertama adalah black-box testing dan yang kedua adalah
white-box testing. Black-white-box testing menyinggung ujicoba yang dilakukan pada interface software. Walaupun didesain untuk menemukan kesalahan, ujicoba black-box digunakan untuk mendemonstrasikan fungsi software yang dioperasikan. Ujicoba black-box memeriksa beberapa aspek sistem, tetapi memeriksa sedikit mengenai struktur logikal internal software.
White-box testing didasarkan pada pemeriksaan detail prosedural. Alur logikal suatu software diujicoba dengan menyediakan kasus ujicoba yang melakukan sekumpulan kondisi dan/atau perulangan tertentu. Status dari program
dapat diperiksa pada beberapa titik yang bervariasi untuk menentukan apakah status
yang diharapkan atau ditegaskan sesuai dengan status sesungguhnya.
Sepintas seolah-olah white-box testing akan menghasilkan program yang 100% benar, yang diperlukan hanyalah mendefinisikan alur logikal, membangun
kasus uji untuk memeriksa software tersebut dan mengevaluasi hasil yang
diperoleh. Sayangnya, ujicoba yang menyeluruh ini menghadirkan masalah logikal
tertentu. Untuk sebuah program sederhana sekalipun, terdapat banyak alur logikal
yang memungkinkan. Sehingga white-box testing sebaiknya hanya dilakukan pada
alur logikal yang penting. Struktur data yang penting dapat diujikan dengan uji
validitas. Atribut dari black-box testing dan white-box testing dapat dikombinasikan
2.12 White Box Testing
Ujicoba Whitebox merupakan metode desain uji kasus yang menggunakan
struktur kontrol dari desain prosedural untuk menghasilkan kasus-kasus uji. Dengan
menggunakan metode ujicoba whitebox, para pengembang software dapat
menghasilkan kasus-kasus uji yang [15].
1. Menjamin bahwa seluruh independent paths dalam modul telah dilakukan
sedikitnya satu kali,
2. Melakukan seluruh keputusan logikal baik dari sisi benar maupun salah,
3. Melakukan seluruh perulangan sesuai batasannya dan dalam batasan
operasionalnya
4. Menguji struktur data internal untuk memastikan validitasnya
Mengapa menghabiskan banyak waktu dan usaha dengan menguji logikal software
? Hal ini dikarenakan sifat kerusakan alami dari software itu sendiri, yaitu:
1. Kesalahan logika dan kesalahan asumsi secara proposional terbalik dengan
kemungkinan bahwa alur program akan dieksekusi. Kesalahan akan selalu
ada ketika mendesain dan implementasi fungsi, kondisi atau kontrol yang
keluar dari alur utama. Setiap harinya pemrosesan selalu berjalan dengan
baik dan dimengerti sampai bertemu ”kasus spesial” yang akan
mengarahkannya kepada kehancuran.
2. Sering percaya bahwa alur logikal tidak akan dieksekusi ketika
dikenyataannya, mungkin akan dieksekusi dengan basis regular. Alur logika
program biasanya berkebalikan dari intuisi, yaitu tanpa disadari asumsi
mengenai alur kontrol dan data dapat mengarahkan pada kesalahan desain
yang tidak dapat terlihat hanya dengan satu kali ujicoba.
3. Kesalahan typographical (cetakan) bersifat random. Ketika program diterjemahkan kedalam kode sumber bahasa pemrograman, maka akan
terjadi kesalahan pengetikan. Banyak yang terdeteksi dengan mekanisme
pemeriksaan sintaks, tetapi banyak juga yang tidak terdeteksi sampai
dengan dimulainya ujicoba.
Karena alasan tersebut diatas, maka ujicoba whitebox testing diperlukan
2.12.1 Ujicoba Berbasis Alur (Basis Path Testing)
Ujicoba berbasis alur merupakan teknik ujicoba whitebox pertama yang
diusulkan oleh Tom McCabe. Metode berbasis alur memungkinkan perancang
kasus uji untuk menghasilkan ukuran kompleksitas logikal dari desain prosedural
dan menggunakan ukuran ini untuk mendefinisikan himpunan basis dari alur
eksekusi. Kasus uji dihasilkan untuk melakukan sekumpulan basis yang dijamin
untuk mengeksekusi setiap perintah dalam program, sedikitnya satu kali selama
ujicoba [15].
2.12.2 Notasi graf Alur (Path Graph Notation)
Notasi sederhana untuk merepresentasikan alur kontrol disebut graf alur
(flow graph), seperti gambar 2.15 dibawah ini:
Gambar 2.15 Flow Graph Notation
Untuk mengilustrasikan kegunaan dari diagram alir dapat dilihat pada
gambar dibawah ini. Gambar bagian (a) digunakan untuk menggambarkan struktur
kontrol program, sedangkan gambar bagian (b) setiap lingkaran disebut dengan flow
graph node, merepresentasikan satu atau lebih perintah prosedural. Urutan dari simbol proses dan simbol keputusan dapat digambarkan menjadi sebuah node, sedangkan anak panah disebut edges, menggambarkan aliran dari kontrol sesuai dengan diagram alir.
Sebuah edge harus berakhir pada sebuah node walaupun tidak semua node
Gambar 2.16 Flow Chart(a) dan Flow Graph(b)
2.12.3 Cyclomatic Complexity
Cyclomatic complexity merupakan software metric yang menyediakan ukuran kuantitatif dari komplesitas logikal suatu program. Ketika digunakan dalam
konteks metode ujicoba berbasis alur, nilai yang dikomputasi untuk kompleksitas
cyclomatic mendefinisikan jumlah independent path dalam himpunan basis suatu program dan menyediakan batas atas untuk sejumlah ujicoba yang harus dilakukan
untuk memastikan bahwa seluruh perintah telah dieksekusi sedikitnya satu kali.
Independent path adalah alur manapun dalam program yang memperkenalkan sedikitnya satu kumpulan perintah pemrosesan atau kondisi baru.
Contoh independent path dari gambar flow graph diatas:
Path 2 : 1 – 2 – 3 – 4 – 5 – 10 – 1 – 11
Path 3 : 1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11
Path 4 : 1 – 2 – 3 – 6 – 7 – 9 – 10 – 1 – 11
Misalkan setiap path yang baru memunculkan edge yang baru, dengan path:
1 - 2 – 3 – 4 – 5 – 10 - 1 - 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11
Path diatas tidak dianggap sebagai independent path karena kombinasi path diatas telah didefinisikan sebelumnya. Ketika ditetapkan dalam graf alur, maka
independent path harus bergerak sedikitnya 1 edge yang belum pernah dilewati sebelumnya. Kompleksitas cyclomatic dapat dicari dengan salah satu dari 3 cara berikut :
1. Jumlah region dari graf alur mengacu kepada komplesitas cyclomatic
2. Kompleksitas cyclomatic untuk graf alur G didefinisikan pada persamaan 2.4 sebagai berikut:
V G = E − N + (2.4) Keterangan :
E = jumlah edge
N = jumlah node
3. Kompleksitas cyclomatic untuk graf alur G didefinisikan pada persamaan 2.5 sebagai berikut:
V G = P + (2.5) Keterangan :
P = jumlah predicates nodes
Berdasarkan flow graph gambar (b) diatas, maka kompleksitas cyclomatic-nya dapat di hitung sebagai berikut:
1. Flow graph diatas mempunyai 4 region 2. V(G) = 11 edges – 9 nodes + 2 = 4
3. V(G) = 3 predicates nodes + 1 = 4
Hasil kompleksitas cyclomatic menggambarkan banyaknya path dan batas atas
sejumlah ujicoba yang harus dirancang dan dieksekusi untuk seluruh perintah
2.13 Pengujian Metode
Pengujian metode digunakan untuk menguji tingkat akurasi dari metode yang
digunakan. Uji coba ini dilakukan untuk mengetahui apakah aplikasi yang dibuat
sesuai dengan tujuan [16].
Adapun untuk menghitung akurasinya menggunakan persamaan 2.6 sebagai
berikut :
Akurasi = Jumlah data keseluruhan x Jumlah data benar % .
Sebagai contoh, diketahui jumlah data yang di uji 180, jumlah data yang di
prediksi benar 133. Dengan menggunakan persamaan 2.6 maka dapat dihitung nilai
akurasinya sebagai berikut :
Akurasi = x % = , %
Jadi nilai akurasi dengan data uji 180 dan jumlah data yang di prediksi benar
97
5.1 Kesimpulan
Berdasarkan penelitian mengenai implementasi metode naïve bayes untuk
menentukan tindakan NPC penjaga gawang dapat disimpulkan bahwa metode naïve
bayes dapat diterapkan pada NPC penjaga gawang dengan ketepatan dalam
mengambil tindakan sebesar 77,78 % .
5.2 Saran
Adapun saran setelah peneliti melakukan penelitian dan menganalisa sistem,
dan bagi yang berminat untuk mengembangkan aplikasi ini dimasa yang akan
datang maka peneliti mencoba memberikan saran sebagai berikut :
1. Untuk parameter tinggi bola perlu ditambah variabel linguistik yaitu
variabel sangat tinggi.
2. Untuk parameter kekuatan tendangan perlu dilakukan perubahan yaitu
Nama : Abdul Tholib
NIM : 10111298
Tempat/Tanggal Lahir : Semata, 7 Desember 1992
Jenis Kelamin : Laki-laki
Agama : Islam
Alamat : Dusun Karya Bhakti RT.007 RW.004 Semata,
Tangaran, Sambas, Kalimantan Barat, 79465
No. Telp : +6289663387742
Email : Tholib92@gmail.com
2. Riwayat Pendidikan
1999-2005 : SD NEGERI 48
2005-2008 : SMP NEGERI 2 TELUK KERAMAT
2008-2011 : SMK NEGERI 1 TELUK KERAMAT
2011-2015 : Universitas Komputer Indonesia (UNIKOM)
Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam
keadaan sadar tanpa paksaan.
Bandung, 19 Agustus 2015
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
ABDUL THOLIB
10111298
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
v
ABSTRACT ... ii KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... x
DAFTAR SIMBOL ... xi
DAFTAR LAMPIRAN ... xiii
BAB 1 PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Maksud Dan Tujuan ... 2
1.4 Batasan Masalah ... 2
1.5 Metodologi Penelitian ... 3
1.5.1 Metode Pengumpulan Data ... 3
1.5.2 Metode Pembangunan Perangkat Lunak ... 3
1.6 Sistematika Penulisan ... 4
BAB 2 LANDASAN TEORI ... 7
2.1 Game ... 7
2.2 Tendangan Penalti ... 9
2.2.1 Sejarah Tendangan Penalti ... 10
2.2.2 Game Penalty Kick ... 10
2.3 AI (Artificial Intelligence) ... 11
2.4 Metode Naïve Bayes ... 13
2.5 Object Oriented ... 17
2.5.1 Abstraksi ... 18
2.5.2 Inheritance ... 18
2.5.3 Polimorphisme ... 18
2.5.4 Encapsulation ... 18
2.5.5 Association ... 19
vi
2.6.5 Class Diagram ... 25
2.6.6 Statechart Diagram ... 27
2.7 Unity ... 28
2.8 Bahasa C# ... 29
2.9 Skala ... 30
2.10 Pengujian Perangkat Lunak ... 31
2.10.1 Alur Informasi Test ... 32
2.11 Desain Kasus Uji Coba ... 32
2.12 White Box Testing ... 34
2.12.1 Ujicoba Berbasis Alur (Basis Path Testing) ... 35
2.12.2 Notasi graf Alur (Path Graph Notation) ... 35
2.12.3 Cyclomatic Complexity ... 36 2.13 Pengujian Metode ... 38
BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 39
3.1 Analisis Masalah ... 39
3.2 Analisis Game ... 39
3.3 Analisis Masukan ... 42
3.3.1 Parameter Arah... 42
3.3.2 Parameter Tinggi ... 43
3.3.3 Parameter Kekuatan ... 43
3.3.4 Rule ... 44
3.4 Analisis Metode ... 45
3.4.1 Proses Pelatihan Naïve Bayes ... 45
3.4.2 Proses Klasifikasi Naïve Bayes ... 47
3.5 Analisis Kebutuhan Non-Fungsional ... 59
3.5.1 Analisis Kebutuhan Perangkat Lunak ... 59
3.5.2 Analisis Kebutuhan Perangkat Keras ... 59
3.6 Analisis Kebutuhan Fungsional ... 60
3.6.1 Use Case Diagram ... 60
vii
3.7.1 Perancangan Antarmuka ... 77
3.7.2 Perancangan Jaringan Semantik ... 79
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 81
4.1 Implementasi ... 81
4.1.1 Implementasi Perangkat Keras ... 81
4.1.2 Implementasi Perangkat Lunak ... 81
4.1.3 Implementasi Class ... 82
4.1.4 Implementasi Antarmuka ... 83
4.2 Pengujian Sistem ... 85
4.2.1 Rencana Pengujian ... 85
4.2.2 Pengujian Black Box ... 86
4.2.3 Pengujian White Box ... 89
4.2.4 Pengujian Metode... 93
BAB 5 KESIMPULAN DAN SARAN ... 97
5.1 Kesimpulan ... 97
5.2 Saran ... 97
98
Pukulan Bola Pada Game Tenis Meja. Skripsi Teknik Informatika,
Universitas Komputer Indonesia. Bandung.
[2] S. Budi, 2007, Teknik Pemanfaatan Data Untuk Keperluan Bisnis,
Yogyakarta : Graha Ilmu.
[3] R. S. Pressman, 2012, Rekayasa Perangkat Lunak Pendekatan Praktis,
Yogyakarta: Andi.
[4] T. Apperley, 2006, Toward a critical approach to video game genres. Genre
and Game Studies.
[5] Football Penalty Kick. Di akses 20 april 2015,
http://www.football-bible.com/soccer-info/soccer-penalty-kick.html.
[6] K. H. Kjetil, 2010, The Penalty Kick-Some Game Theoretical Considerations,
Norwey : Molde University College.
[7] The history of the penalty. Di akses 10 agustus 2015,
http://www.fifa.com/news/y=2012/m=10/news=the-history-the-penalty-1715302.html.
[8] Suyanto, 2014, Artificial Intelligence Searching, Reasoning, Planning dan
Learning, Bandung : Informatika Bandung.
[9] Munawar, 2005, Pemodelan Visual Dengan UML, Yogyakarta : Graha Ilmu.
[10] J. P. Flynt dan O. Salem, 2004, Software Engineering For Game Developers,
Boston: Stacy L. Hiquet.
[11] W. Goldstone, 2011, Unity 3.x Game Development Essentials : Game
Development With C# and Javascript. Birmingham : Packt Publishing Ltd.
[12] M. Ali, 2014, Kitab Belajar Pemogramman C#, Jakarta: Ebook.
[14] Menghitung Skala. Di akses 21 mei 2015,
http://www.rumahbangun.com/cara-menghitung-skala-saat-menggambar-bangunan-atau-rumah.
[15] Ayuliana, 2009, Teknik Pengujian Perangkat Lunak, Jurnal Teknik
Informatika, Universitas Gunadarma.
[16] A. Kusmian,2015, Implementasi Algoritma Naïve Bayes Untuk Klasifikasi
Citra Berdasarkan Ekstraksi Ciri Tekstur Dengan Metode Matriks
SIMULASI GAME PENALTY KICK
Abdul Tholib1
1 Program Studi Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia Jl. Dipatiukur No 112-116 Bandung - Indonesia
E-mail : abdul.tholib@outlook.com
ABSTRAK
Game tendangan penalti ( penalty kick) adalah permainan yang dilakukan dengan tendangan bebas tepat didepan penjaga gawang tanpa boleh dihalangi oleh siapapun. Game ini ber-genre sport game, yaitu salah satu genre game yang dibuat dari olahraga yang ada dikehidupan nyata. Salah satu penelitian sejenis yang ber-genre sport game adalah game tenis meja. AI (Artificial Intelligence) yang diterapkan pada NPC untuk memprediksi arah pukulan bola didalam game tenis meja tersebut adalah metode N-Gram. Arah yang diprediksi yaitu kiri, kanan, dan tengah. Pukulan dari player tersebut disimpan didalam sebuah struktur data antrian (queue). Permasalahannya adalah jika struktur data antrian masih kosong, maka NPC akan memprediksi arah secara acak. Oleh karena itu metode N- Gram kurang optimal untuk diterapkan pada penelitian ini. Maka dari itu peneliti menggunakan metode naïve bayes yang diterapkan pada NPC penjaga gawang untuk memprediksi arah bola sehingga dapat memperoleh tindakan yang akan dilakukan. Metode naïve bayes merupakan salah satu metode yang menggunakan teknik klasifikasi yang mengacu kepada data training yang sudah ada, sehingga NPC penjaga gawang tidak memprediksi arah bola secara acak melainkan berdasarkan hasil klasifikasi naïve bayes.
Perancangan sistem pada game ini menggunakan metode agile dan dibangun menggunakan analisis berorientasi objek dengan UML untuk tools-nya. Pembuatan game ini menggunakan software Unity. Pengujian game ini menggunakan pengujian blackbox, dan pengujian metode naïve bayes untuk menguji akurasinya.
Hasil pengujian dari game ini menunjukan bahwa fungsionalitas dari game berjalan dengan baik serta hasil pengujian metode naïve bayes dapat diterapkan pada NPC penjaga gawang dengan tingkat akurasi dalam mengambil tindakan sebesar 77,78 % dengan prediksi benar 21 dari 27 rule yang telah dibuat.
Kata kunci : algoritma, naïve bayes, game penalty
kick, artificial intelligence
1. PENDAHULUAN
Game tendangan penalti ( penalty kick) adalah permainan yang dilakukan dengan tendangan bebas tepat didepan penjaga gawang tanpa boleh dihalangi oleh siapapun. Game ini ber-genre sport game, yaitu salah satu genre game yang dibuat dari olahraga yang ada dikehidupan nyata. Salah satu penelitian sejenis yang ber-genre sport game adalah game tenis meja. Dimana pada game tenis meja tersebut diterapkan metode N-Gram pada NPC untuk memprediksi arah pukulan bola yang dilakukan oleh player. Arah yang diprediksi yaitu kiri, kanan, dan tengah. Pukulan dari player tersebut disimpan didalam sebuah struktur data antrian (queue). Permasalahannya adalah jika struktur data antrian masih kosong, maka NPC akan memprediksi arah secara acak [1]. Oleh karena itu metode N- Gram kurang optimal untuk diterapkan pada penelitian ini. Maka dari itu dibutuhkan suatu metode untuk memprediksi arah sehingga NPC penjaga gawang dapat menentukan tindakan dengan tepat dengan cara pengklasifikasian dari data traning sebelumnya dengan data baru yaitu parameter masukan.
Salah satu metode pengklasifikasian adalah metode naïve bayes. Metode naive bayes merupakan pengklasifikasian dengan metode probabilitas dan statistik yang dikemukan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi peluang di masa depan berdasarkan pengalaman dimasa sebelumnya sehingga dikenal sebagai teorema bayes. Teorema tersebut dikombinasikan dengan naive dimana diasumsikan kondisi antar atribut saling bebas. Klasifikasi naive bayes diasumsikan bahwa ada atau tidak ciri tertentu dari sebuah kelas tidak ada hubungannya dengan ciri dari kelas lainnya . [2].
bawah, kanan tengah, dan kanan atas. Untuk pengklasifikasian dari tiga parameter input tersebut yaitu menggunakan metode naïve bayes maka dibutuhkan data traning sebelumnya, dan data baru yaitu berupa parameter masukan seperti arah bola, tinggi bola, dan kekuatan tendangan.
Berdasarkan penjelasan yang telah dipaparkan sebelumnya, maka diharapkan dengan metode naïve bayes yang diterapkan pada NPC penjaga gawang dapat mengambil tindakan secara tepat dan optimal dalam memprediksi arah bola yang ditendang oleh player.
2. ISI PENELITIAN
2.1 Game Penalty Kick
Game penalty kick adalah permainan yang dilakukan dengan tendangan bebas tepat didepan penjaga gawang tanpa boleh dihalangi oleh siapapun. Game ini ber-genre sport game, yaitu salah satu genre game yang dibuat dari olahraga yang ada dikehidupan nyata. Berikut merupakan salah satu contoh gamepenaltykick yang sudah ada sebelumnya, dapat dilihat pada gambar 1.
Gambar 1 Contoh Game Penalty Kick Berdasarkan contoh gamepenaltykick yang telah ada maka dalam penelitian ini terdapat 3 parameter input yaitu arah bola, tinggi bola, dan kekuatan tendangan yang akan digunakan untuk klasifikasi metode naïve bayes, sedangkan penjaga gawang berperan sebagai NPC (non – player character). NPC adalah karakter pada game yang sepenuhnya dikendalikan oleh komputer dan tidak dapat mainkan oleh pemain. Oleh sebab itu dibutuhkan AI (Artificial Intelligence) terhadap NPC penjaga gawang dalam memprediksi arah bola yang ditendang oleh pemain sehingga penjaga gawang dapat mengambil tindakan.
2.2Metode Naïve Bayes
Metode naïve bayes merupakan salah satu metode yang terdapat pada teknik klasifikasi. Naïve bayes merupakan pengklasifikasian dengan metode probabilitas dan statistik yang dikemukakan oleh ilmuwan inggris Thomas Bayes, yaitu memprediksi
statistik yang fundamental dalam pengenalan pola (pattern recognition). Pendekatan ini didasarkan pada kuantifikasi trade-off antara berbagai keputusan klasifikasi dengan menggunakan probabilitas dan ongkos atau konsekuensi yang ditimbulkan dalam keputusan – keputusan tersebut [2]. Berikut merupakan pendekatan bayesian untuk estimasi probabilitas yang ada pada persamaan 2.1 :
Keterangan :
: Jumlah data traning dimana = .
: Jumlah data traning dimana = dan = .
: Prior estimate untuk . : Ukuran sampel ekuivalen.
Cara yang biasa digunakan untuk memilih probabilitas prior p akan dikombinasikan menurut bobot m. Jadi alasannya mengapa m dinamakan ukuran sampel ekuivalen bahwa dalam persamaan 2.1 terjadi penguatan observasi aktual n dengan tambahan sampel virtual m yang terdistribusi menurut p. Aturan bayes bisa ditetapkan sebagai berikut :
Jika maka x
diklasifikasikan sebagai .
Dari hasil penjelasan, metode naïve bayes merupakan salah satu metode yang ada dalam teknik klasifikasi, maka dalam penelitian ini, pengklasifikasian berdasarkan tiga parameter inputan yaitu arah bola, tinggi bola, dan kekuatan tendangan. Hasil klasifikasi nantinya yang akan menentukan tindakan yang akan diambil oleh NPC penjaga gawang. Maka dalam penelitian tugas akhir ini akan di implementasikan metode naïve bayes untuk menentukan tindakan NPC penjaga gawang pada simulasi game penalty kick.
2.3 Analisis Game
Analisis game merupakan penguraian penjelasan dari bagian – bagian pada game yang akan dirancang. Penjelasan terutama untuk bagian – bagian dalam game yang akan diterapkan algoritma.
Game yang akan dirancang adalah game penalty kick. Game ini dibangun dalam bentuk
gawang. Metode naïve bayes adalah salah satu metode yang menerapkan teknik klasifikasi. Karena metode naïve bayes menerapkan teknik klasifikasi, maka dalam penelitian tugas akhir ini pengklasifikasian berdasarkan nilai linguistic dari 3 parameter input yaitu arah bola, tinggi bola dan kekuatan tendangan. Adapun nilai linguistic dari parameter arah bola yaitu kiri, tengah, dan kanan. Nilai linguistic dari parameter tinggi bola yaitu tinggi, sedang, dan rendah. Nilai linguistic dari parameter kekuatan tendangan yaitu kuat, normal, dan lemah.
Game penalty kick yang akan di bangun terdiri dari 2 proses utama yaitu proses pelatihan naïve bayes dan klasifikasi naïve bayes. Proses pelatihan naïve bayes yaitu proses yang dilakukan untuk membentuk model probabilistik dari data
traning untuk setiap tindakan NPC penjaga gawang. Adapun proses klasifikasi naïve bayes adalah untuk mengklasifikasi data baru yang nantinya digunakan untuk menentukan tindakan yang akan diambil oleh NPC penjaga gawang. Pada gambar 2 merupakan
flowchart dari game penalty kick.
Mulai
Memasukkan para meter input
Pelatihan Naïve Bayes
Klasifikas i Naïve Bayes
Tindakan NPC
Selesai
Gambar 2 Flowchart Game Penalty Kick
Untuk menentukan posisi titik bola didapat berdasarkan arah horizontal dan vertikal. Untuk arah horizontal yaitu kiri, tengah, dan kanan. Sedangkan untuk arah vertikal yaitu bawah, tengah, dan atas maka didapat posisi titik bola yaitu kiri atas, kiri tengah, kiri bawah, tengah atas, tengah – tengah, tengah bawah, kanan atas, kanan tengah, dan kanan
Gambar 3 Ilustrasi Titik Bola
2.4Analisis Masukan
Analisis masukan yang dilakukan dalam penelitian ini adalah menganalisis parameter masukan pada game penalty kick, parameter tersebut adalah parameter arah, tinggi, dan kekuatan tendangan serta rule atau aturan yang dibuat didalam game penalty kick ini untuk dijadikan sebagai acuan data training dari beberapa aturan yang ada.
2.4.1 Parameter Arah
Player bisa menginputkan kekuatan tendangan bola dengan 3 nilai linguistic yaitu lemah, normal, dan kuat. Adapun untuk detailnya dapat dilihat pada tabel 1:
Tabel 1 Parameter Arah
ARAH TITIK KOORDINAT X
Kiri -3 s.d -1
Tengah -1 s.d 1
Kanan 1 s.d 3
Adapun titik koordinat x berfungsi untuk menentukan arah bola. Sedangkan nilai linguistic kiri, tengah, dan kanan berfungsi sebagai parameter input arah yang digunakan untuk klasifikasi naïve bayes.
2.4.2 Parameter Tinggi
Player bisa menginputkan tinggi bola dengan 3 nilai linguistic yaitu rendah, sedang, dan tinggi. Adapun untuk detailnya dapat dilihat pada tabel 2:
Tabel 2 Parameter Tinggi
TINGGI TITIK KOORDINAT Y
Tinggi 1.5 s.d 2
Sedang 0.5 s.d 1.5
Rendah 0 s.d 0.5
Adapun titik koordinat y berfungsi untuk menentukan tinggi bola. Sedangkan nilai linguistic tinggi, sedang, dan rendah berfungsi sebagai parameter input tinggi yang digunakan untuk klasifikasi naïve bayes.
2.4.3 Parameter Kekuatan