Implementasi Algoritma Greedy Untuk Penentuan Langkah Pion Pada Permainan Ludo

(1)

(2)

(3)

RIWAYAT HIDUP

1. Data Pribadi

Nama Primarani Dyah Bestari

Tempat/Tanggal Lahir Bandung, 14 November 1991

Jenis Kelamin Perempuan

Warga Negara Indonesia

Agama Islam

Status Belum Menikah

Tinggi/Berat Badan 153cm/47kg

Alamat Jl. Kacapiring no 64/122 rt 05 rw 03 Bandung

Email kuyasipit@gmail.com

No. Handphone 089631218116

2. Pendidikan Formal

1995-1997 TK YWKA Bandung

1997-2001 2001-2003

SD Negeri Soka 6 Bandung SD Negeri 1 Banda Aceh 2003-2004

2004-2006

SMP Negeri 7 Banda Aceh SMP Negeri 20 Bandung

2006-2009 SMA Pasundan 1 Bandung

2009-2014 Program Studi S1 Teknik Informatika

Universitas Komputer Indonesia (UNIKOM) Bandung

3. Pendidikan Non Formal

2012-2013 English First Bandung


(4)

(5)

v

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... ix

DAFTAR TABEL ... xi

DAFTAR SIMBOL ... xiii

DAFTAR LAMPIRAN ... xvii

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 2

1.4 Batasan Masalah ... 2

1.5 Metodologi Penelitian ... 2

1.5.1 Metode Pengumpulan Data ... 3

1.5.2 Metode Pengembangan Perangkat Lunak ... 3

1.6 Sistematika Penulisan ... 4

BAB 2 LANDASAN TEORI ... 5

2.1 Algoritma Greedy ... 5

2.1.1 Skema Umum Algoritma Greedy ... 5

2.2 Permainan Ludo ... 7

2.2.1 Sejarah Permainan Ludo... 8

2.2.2 Bagian Bagian Pada Papan Ludo ... 8

2.2.3 Aturan Permainan Ludo ... 9


(6)

vi

2.3.1 Unity ... 10

2.4 Bahasa Pemrograman JavaScript ... 11

BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA ... 12

3.1 Analisis Masalah ... 12

3.2 Analisis Game ... 12

3.2.1 Gameplay ... 13

3.3 Analisis Masukan ... 14

3.4 Analisis Algoritma ... 14

3.4.1 Greedy by Hitter ... 15

3.4.2 Greedy No One Left Behind ... 15

3.4.3 Greedy by Quick Move ... 16

3.4.4 Greedy by Blocking ... 16

3.5 Spesifikasi Kebutuhan Perangkat Lunak ... 22

3.5.1 Analisis Kebutuhan Non-Fungsional ... 22

3.5.1.1 Analisis Kebutuhan Perangkat Keras ... 22

3.5.1.2 Analisis Kebutuhan Perangkat Lunak ... 22

3.5.1.3 Analisis User ... 23

3.5.1.4 Karakteristik Pengguna ... 23

3.5.2 Analisis Kebutuhan Fungsional ... 23

3.1.1.1 Usecase Diagram... 23

3.1.2.1 Skenario Use Case ... 25

3.1.3.1 Activity Diagram... 31

3.1.4.1 Sequence Diagram ... 36

3.1.5.1 Class Diagram ... 43

3.6 Perancangan Sistem ... 48


(7)

vii

3.6.2 Struktur Menu ... 49

3.6.3 Perancangan Antarmuka ... 49

3.6.4 Perancangan Pesan ... 51

3.7 Jaringan Semantik ... 52

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 53

4.1 Implementasi ... 53

4.1.1 Implementasi Perangkat Keras ... 53

4.1.2 Implementasi Perangkat Lunak ... 53

4.1.3 Implementasi Aplikasi ... 53

4.1.4 Skenario Pengujian Aplikasi... 54

4.1.4.1 Kasus dan Hasil Pengujian Blackbox ... 54

4.1.4.2 Kasus dan Hasil Pengujian Whitebox ... 55

4.2 Kesimpulan Pengujian ... 66

BAB 5 KESIMPULAN DAN SARAN ... 67

5.1 Kesimpulan ... 67

5.2 Saran ... 67


(8)

68

DAFTAR PUSTAKA

[1] Lio Franklyn Kemit. Penentuan Langkah dengan Greedy dalam Permainan Ludo, 2012

[2] Dr. Juliansyah Noor, S.E., M.M., Metode Penelitian Skripsi, Thesis, Disertasi, dan Karya Ilmiah.: KENCANA PRENADA MEDIA GROUP, 2012

[3] Andi Setiya Wardana (2013, Oktober). Pengembangan Sistem Dengan Metode

Waterfall [online]. Available :

http://andisetiya.blog.widyatama.ac.id/2013/10/02/pengembangan-sistem-informasi-dengan-metode-waterfall/ (Diakses 8 Juni 2014 23:45)


(9)

iv

KATA PENGANTAR

Assalamualaikum Wr. Wb.

Segala puji dan syukur penulis panjatkan atas kehadirat Allah SWT yang telah melimpahkan berkat, rahmat dan inayahnya, sehingga penulis dapat menyelesaikan skripsi yang berjudul “IMPLEMENTASI ALGORITMA GREEDY UNTUK PENENTUAN LANGKAH PION PADA PERMAINAN LUDO”. Dan tidak lupa shalawat serta salam kepada Rasulullah SAW,

sahabatnya, dan kepada umatnya hingga akhir jaman.

Skripsi ini dibuat untuk memenuhi salah satu syarat dalam menyelesaikan jenjang pendidikan Strata 1 Program Studi Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia. Penulis sadari bahwasanya skripsi ini masih banyat terdapat kekurangan dan berkat bantuan dari semua pihak akhirnya skripsi ini dapat diselesaikan tepat pada waktunya.

Denggan rasa syukur penulis ingin menyampaikan rasa terimakasih yang sebesar-besarnya kepada :

1. Allah SWT, yang telah memberikan rahmat dan hidayah-nya kepada penulis sehingga dapat menyelesaikan skripsi ini dengan baik.

2. Nabi Muhammad SAW sebagai junjungan yang telah menyampaikan wahyu Allah.

3. Kedua orang tua, Bapak Ir. Suprihartono dan Ibu Eny Yuningsih, yang selalu senantiasa mendoakan penulis sepanjang waktu, memberikan pengertian diantara kekhawatirannya, dan memberikan semangat dibarengi dengan do’a yang tidak ada hentinya serta memberikan dorongan baik moril maupun materil.

4. Yth. Ibu Ednawati Rainarli, S.Si., M.Si., selaku dosen pembimbing yang telah memberikan pengarahan dan masukan-masukan yang berharga kepada penulis dalam penyusunan Skripsi ini.

5. Yth. Ibu Tati Harihayati M., S.T., M.T., selaku dosen reviewer serta ketua penguji yang telah memberikan masukan dan saran-saran dalam penyusunan penelitian tugas akhir ini.


(10)

iv

6. Yth. Ibu Istiqomah, S. Kom., M. Kom selaku dosen penguji 3 yang telah memberikan masukan dan saran.

7. Yth. Bapak Eko Budi Setiawan, S.Kom, M.T., selaku dosen wali kelas IF6 angkatan 2009.

8. Adik adik tercinta Priandani Sri Mahanani dan Prikartika Endang Lestari yang selalu memberikan semangat dan doa.

9. Kepada Yogaswara M Yunus yang selalu memberikan semangat, keceriaan, dukungan dan doa.

10.Teman-teman B.A.A.B tercinta (mper, yeti, teh sasih, tebuntet, tekha, ipeh dan lainnya) yang selalu memberikan keceriaan serta dukungan.

11.Kepada mper (Ferawati), kang Desta dan kang Bule (rizki) yang telah membantu penulis dalam pengerjaan skripsi ini.

12.Rekan-rekan mahasiswa Program Studi Teknik Informatika angkatan 2009 khususnya rekan-rekan mahasiswa dari kelas IF6 (FOREX™).

13.Seluruh dosen pengajar dan staff tata usaha.

14.Google yang senantiasa membantu penulis dalam mencari materi mengenai skripsi yang dilakukan.

15.Terimakasih kepada ONE OK ROCK, CNBLUE, dan beberapa grup KPOP (2NE1, B.A.P, BEAST, GIRL’S DAY, SISTAR, SNSD, T-ARA, TEEN TOP, VIXX) yang telah menemani dan menambah semangat penulis dalam mengerjakan skripsi.

16.Semua pihak yang telah membantu dalam menyelesaikan skripsi ini yang tidak bisa disebutkan satu persatu oleh penulis.

Akhir kata penulis hanya berharap semoga skripsi ini dapat bermanfaat bagi penulis dan para pembaca umumnya. Wassalamu’alaikum Wr. Wb.

Bandung, Agustus 2014 Penulis


(11)

1

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Algoritma greedy merupakan jenis algoritma yang menggunakan pendekatan penyelesaian masalah dengan mencari nilai maksimum sementara pada setiap langkahnya[1]. Salah satu persoalan yang bisa diselesaikan dengan Greedy yaitu permaian Ludo. Setiap langkah terdapat banyak pilihan yang perlu dieksplorasi, oleh karena itu, pada setiap langkah harus dibuat keputusan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan, berharap bahwa dengan memilih optimum lokal pada setiap langkah akan berakhir dengan optimum global.

Ludo berasal dari kata Latin ”ludus” yang artinya permainan (game)[1]. Permainan Ludo adalah permainan jenis board game yang dimainkan minimal oleh dua orang, bisa pemain melawan pemain atau pemain melawan komputer. Permainan Ludo bisa diselesaikan dengan menggunakan algoritma Greedy, algoritma ini sering digunakan untuk memecahkan persoalan pencarian solusi untuk mendapatkan hasil.

Menurut penelitian sebelumnya[1], untuk menyelesaikan permainan Ludo digunakan empat buah algortima Greedy sebagai penentuan langkah pion. Greedy by Hitter kondisi dimana pion dapat memakan pion lawan yang berada di depannya, Greedy No One Left Behind kondisi dimana pion yang berada paling belakang yang menjadi prioritas, Greedy by Quick Move kondisi dimana pion yang berada paling dekat dengan finish yang menjadi prioritas, Greedy by Blocking kondisi dimana pion dapat bergabung dengan pion yang berwarna sama (pion kawan) untuk menghalangi jalan pion lawan. Namun pada penelitian sebelumnya dikatakan bahwa keempat algoritma tersebut diimplementasikan secara terpisah.

Dari hasil penelitian tersebut dituliskan bahwa keempat algoritma tersebut dapat digabungkan menjadi satu sehingga menghasilkan algoritma yang lebih baik dalam menentukan langkah pion. Oleh karena itu maka dalam penelitian ini akan dilakukan penggabungan keempat algoritma Greedy tersebut menjadi satu.


(12)

2

1.2 Rumusan Masalah

Berdasarkan uraian pada latar belakang, maka rumusan masalah dari penelitian ini adalah bagaimana mengimplementasikan keempat algoritma Greedy menjadi satu algoritma pada permainan Ludo dari hasil penelitian sebelumnya.

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang akan diteliti, maka maksud dari penelitian ini adalah mengimplementasikan algoritma Greedy pada permainan Ludo. Tujuan yang akan dicapai dalam penelitian ini adalah menggabungkan keempat algoritma Greedy tersebut.

1.4 Batasan Masalah

Batasan masalah dalam implementasi algoritma agar penelitian ini dapat dilakukan secara lebih mendalam tidak semua masalah yang telah didefinisikan akan diteliti dalam penelitian ini sebagai berikut :

1. Implementasi algoritma pada penelitian ini adalah untuk menggabungkan keempat algoritma sebagai penentuan langkah pion.

2. Algoritma yang digunakan untuk mencari solusi adalah empat algoritma Greedy, yaitu Greedy by Hitter, Greedy No One Left Behind, Greedy by Quick Move, dan Greedy by Blocking, yang digabungkan menjadi satu algoritma.

3. Parameter pengujian adalah perbandingan efisiensi penerapan algoritma sebelum dan sesudah digabungkannya keempat algoritma tersebut.

4. Implementasi algoritma dalam penelitian ini menggunakan bahasa pemrograman JavaScript.

1.5 Metodologi Penelitian

Metodologi yang digunakan dalam penelitian ini adalah deskriptif. Metodologi Deskriptif adalah metode penelitian penelitian yang berusaha mendeskripsikan suatu gejala, peristiwa, kejadian yang sedang terjadi saat sekarang[2]. Penelitian deskriptif memusatkan perhatian pada masalah aktual sebagaimana adanya pada saat penelitian berlangsung. Metodologi Deskriptif berusaha mendeskripsikan peristiwa dan kejadian yang menjadi pusat perhatikan


(13)

3

tanpa memberikan perlakuan khusus terhadap peristiwa tersebut. Variabel yang diteliti bisa tunggal bisa juga lebih dari satu variabel.

1.5.1 Metode Pengumpulan Data

Metode pengumpulan data yang digunakan pada penelitian ini adalah: a. Studi Literatur

Pengumpulan data dengan cara mengumpulkan literatur, jurnal, makalah dan bacaan-bacaan yang ada kaitannya dengan penelitian yang dilakukan. b. Observasi

Pengumpulan data dengan mengadakan peninjauan secara langsung maupun tidak langsung terhadap hal-hal yang berkaitan dengan penelitian.

1.5.2 Metode Pengembangan Perangkat Lunak

Metode pengembangan perangkat lunak yang digunakan pada penelitian ini adalah motode Waterfall menurut referensi Pressman. Secara garis besar metode Waterfall meliputi beberapa proses, diantaranya adalah :

1. Requirement Analysis

Tahap ini dilakukan analisis metode, algoritma dan kebutuhan yang diperlukan dalam pembangunan sistem. Analisis yang dilakukan anatara lain adalah analisis game, analisis masukan, analisis algoritma yang akan diimplementasikan pada sistem, analisis non-fungsional yang meliputi kebutuhan perangkat keras dan perangkat lunak, serta analisis fungsional yang meliputi usecase diagram, class diagram, activity diagram, dan sequence diagram.

2. System Design

Tahap ini dilakukan sebelum melakukan koding. Tahap ini bertujuan untuk memberikan gambaran apa yang seharusnya dikerjakan dan bagaimana tampilannya, seperti perancangan storyboard dan perancangan antarmuka sistem. 3. Implementation

Tahap ini dilakukan pemrograman pada sistem yang dibungun, dalam tahap ini dilakukan implementasi algoritma pada sistem yang dibangun. Tahap ini juga dilakukan pemeriksaan terhadap sistem yang dibuat, apakah sudah memenuhi fungsi yang diinginkan atau belum.


(14)

4

Di tahap ini dilakukan pengujian untuk mengetahui apakah sistem yang dibuat telah sesuai dengan desainnya dan masih terdapat kesalahan atau tidak.

Gambar 1.1 Waterfall Pressman[3] 1.6 Sistematika Penulisan

BAB 1 PENDAHULUAN

Bab ini menjelaskan tentang latar belakang masalah mengenai hal-hal yang menjadi kajian penelitian, merumuskan masalah, menentukan batasan masalah, mengutarakan maksud dan tujuan serta menjelaskan mengenai metode penelitian dan sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab ini menjelaskan tentang permainan Ludo, algoritma Greedy, game engine yang digunakan yaitu Unity, serta bahasa pemrograman yang digunakan berikut konsep dasar dan teori-teori yang berhubungan dengan dengan topik penelitian yang akan dilakukan.

BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA

Bab ini menjelaskan mengenai analisis masalah yang memaparkan proses identifikasi masalah game yang akan dibangun, analisis kebutuhan non-fungsional, analisis kebutuhan fungsional dan perancangan antar muka yang menggambarkan rancangan game yang akan dibangun.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini menjelaskan mengenai implementasi, kebutuhan perangkat lunak, implementasi aplikasi, dan pengujian sistem.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang diperoleh dari hasil implementasi dari pengembangan game yang telah dibuat, serta saran-saran untuk perbaikan.


(15)

5 BAB 1 A

BAB 2

LANDASAN TEORI

2.1 Algoritma Greedy

Algoritma Greedy merupakan jenis algoritma yang menggunakan pendekatan penyelesaian masalah dengan mencari nilai maksimum sementara pada setiap langkahnya. Nilai maksimum sementara ini dikenal dengan istilah maximum local. Kebanyakan kasus, algoritma Greedy tidak akan menghasilkan solusi paling optimal, algoritma Greedy biasanya memberikan solusi yang mendekati nilai optimum dalam waktu yang cukup tepat.

Dalam banyak kasus, strategi algoritma Greedy tidak menghasilkan solusi optimal, tetapi Greedy dapat menghasilkan solusi optimal lokal yang mendekati solusi optimal global dalam waktu yang wajar. Secara bahasa Greedy artinya “rakus”. Algoritma Greedy membentuk solusi langkah per langkah. Untuk setiap langkah, terdapat banyak pilihan yang perlu dieksplorasi. Oleh karena itu, pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan. Setiap langkah mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan (prinsip “take what you can get now!”), berharap bahwa dengan memilih optimum lokal pada setiap langkah akan berakhir dengan optimum global.

2.1.1 Skema Umum Algoritma Greedy

Persoalan optimasi dalam konteks algoritma greedy disusun oleh elemen-elemen sebagai berikut :

1. Himpunan Kandidat=C

Himpunan ini berisi elemen-elemen pembentuk solusi, pada setiap langkahnya satu buah kandidat dari himpunannya.

2. Himpunan Solusi=S

Merupakan himpunan dan kandidat-kandidat yang terpilih sebagai solusi persoalan. Himpunan solusi adalah himpunan bagian dari himpunan kandidat. 3. Fungsi Seleksi=select()


(16)

6

Fungsi yang memilih kandidat yang paling memungkinkan dari himpunan kandidat untuk dimasukkan ke dalam himpunan solusi agar solusi optimal terbentuk. Kandidat yang sudah terpilih pada suatu langkah tidak akan dipertimbangkan lagi pada langkah selanjutnya.

4. Fungsi Kelayakan=feasible()

Fungsi yang memeriksa apakah suatu kandidat yang terpilih akan menimbulkan solusi yang layak, yaitu kandidat tersebut bersama dengan himpunan solusi yang terpilih tidak akan melanggar kendala yang berlaku pada masalah.

5. Fungsi Solusi=solution()

Merupakan fungsi yang mengembalikan nilai Boolean. True jika himpunan yang sudah terbentuk merupakan solusi yang lengkap, false jika himpunan solusi belum lengkap.

6. Fungsi Objektif=objective()

Fungsi yang memaksimalkan atau meminimalkan nilai solusi. Berikut adalah pseudocode algoritma Greedy secara umum :

Tabel 1. 1 Pseudocode Umum Al gori tma Greedy[1]

Skema umum dari algoritma Greedy dapat dituliskan sebagai berikut : 1. Inisiasi S dengan kosong.


(17)

7

3. Kurangi C dengan kandidat yang terpilih.

4. Periksa apakah kandidat yang dipilih tersebut bersama-sama dengan S membentuk solusi yang layak (dengan feasible()). Jika ya, masukkan kandidat ke S; jika tidak, buang kandidat tersebut dan tidak perlu ditelaah lagi.

5. Periksa apakah S yang sudah terbentuk telah memberikan solusi yang lengkap (dengan solution()). Jika ya, berhenti; jika tidak, ulangi dari langkah dua.

Pembahasan pada penelitian ini adalah beberapa algoritma Greedy yang dapat memecahkan persoalan. Terdapat empat algoritma Greedy yang akan diimplementasikan untuk menentukan langkah pion, yaitu :

1. Greedy by Hitter

Pion pemain akan melangkah sesuai dengan angka yang dihasilkan oleh dadu, apabila di depan pion pemain terdapat pion lawan maka pion pemain tersebut akan memakan pion lawan yang berada di depannya.

2. Greedy No One Left Behind

Pion pemain akan melangkah sesuai dengan angka yang dihasilkan oleh dadu, apabila posisi pion pemain berada di paling belakang, maka pion pemain tersebut akan melangkah agar tidak berada di paling belakang.

3. Greedy by Quick Move

Pion pemain akan melangkah sesuai dengan angka yang dihasilkan oleh dadu, apabila posisi pion pemain berada dekat dengan finish, maka pion pemain tersebut akan melangkah agar segera mencapai finish.

4. Greedy by Blocking

Pion pemain akan melangkah sesuai dengan angka yang dihasilkan oleh dadu, apabila di deoan pion pemain terdapat pion pemain lain maka pion tersebut akan melangkah dan bertumpuk dengan pion kawan yang berada di depannya.

2.2 Permainan Ludo

Ludo adalah sejenis papan permainan yang dimainkan oleh 2-4 pemain, dimana para pemain berlomba menjalankan empat pion mereka dari start sampai finish berdasarkan lemparan dadu.


(18)

8

2.2.1 Sejarah Permainan Ludo

Ludo berasal dari kata Latin ”ludus”yang artinya permainan (game)[1]. Permainan ini biasanya dimainkan dua sampai empat orang. Ludo sebenarnya adalah permainan yang berasal dari orang India, Pachisi. Pachisi sendiri diperkirakan sudah dimainkan sejak 500 tahun sebelum masehi. Tetapi, Ludo yang muncul sekitar tahun 1896 telah dipatenkan di Inggris.

Area khusus pada papan Ludo biasanya berwarna kuning, hijau, merah dan biru. Setiap pemain mendapatkan empat buah pion sesuai dengan warna yang dipilih. Papan Ludo berbentuk persegi dengan jalur mengikuti arah jarum jam, bagian tengah terdapat kolom berwarna yang merupakan kolom “rumah” pemain, pada bagian ujung kolom berwarna terdapat kolom berbentuk persegitiga, itulah finish dari permainan ini.

2.2.2 Bagian Bagian Pada Papan Ludo

Bagian-bagian ludo dapat dilihat pada gambar 2.1, dimana terdapat nomor dan akan dijelaskan per-poin.

Gambar 2.1 Papan Permainan Ludo

Papan permainan Ludo berbentuk persegi empat, di setiap sudutnya terdapat home base dengan empat warna berbeda yaitu merah, hijau, kuning, dan biru, pada gambar 2.1 diberi tanda dengan angka 1 (satu). Setiap home base memiliki empat buah pion dengan warna yang sama dengan home base masing-masing.

Pion berjalan memutar sesuai arah jarum jam, bisa dilihat pada gambar 2.1 arah laju permainan Ludo ditandai dengan tanda panah. Apabila pion telah


(19)

9

berputar sebanyak satu purtaran maka pion tersebut masuk ke dalam jalur yang berada di tengah sesuai dengan warna home base dan pion masing-masing, seperti pada gambar 2.1 yang ditandai dengan angka 2 (dua).

Pada gambar 2.1 yang ditandai dengan angka 3 (tiga) adalah finish atau tujuan pion setelah berputar dan masuk ke line berwarna yang berada di tengah.

2.2.3 Aturan Permainan Ludo

Permainan Ludo dimainkan oleh dua hingga empat orang. Setiap pemain mendapatkan empat buah pion dengan warna sesuai dengan pilihan masing-masing, pion-pion tersebut digerakkan searah dengan jarum jam, berjalan memutar sesuai dengan jalur yang ada pada papan, untuk mencapai kotak tujuan yang berada di tengah papan, seperti yang telah dijelaskan pada gambar 2.1.

Setiap daerah atau Negara memiliki aturan ludo yang berbeda-beda, namun pada penelitian ini peraturan pada permainan Ludo adalah sebagai berikut. 1. Pemain memilih warna yang akan dimainkan, kemudian meletakkan empat

pion yang sesuai dengan warna home base yang dipilih. 2. Pemain melemparkan dadu secara bergantian.

3. Untuk dapat mengeluarkan pion ke jalur permainan, pemain harus mendapatkan angka enam dari dadu yang dilemparkan.

4. Pemain menggerakkan pion yang sudah berada di jalur permainan sesuai dengan angka yang dihasilkan dadu.

5. Jika pemain mendapatkan angka enam lagi, maka pemain dapat memilih untuk menggerakkan pion yang berada di jalur atau mengeluarkan pion yang berada di home base.

6. Apabila angka enam muncul pemain dapat melempat dadu lagi, dan tidak ada batasan apabila dadu yang dilempar menghasilkan angka enam berturut-turut.

7. Jika pion pemain berhenti di tempat yang telah terisi pion lawan maka pion milik lawan tersebut mati dan masuk kembali ke home base milik lawan. 8. Jika pion pemain berhenti di tempat yang terisi pion milik sendiri, maka

pion tersebt akan bertumpuk membuat benteng dan pion lawan tidak dapat lewat berapapun angka yang dihasilkan oleh dadu.


(20)

10

9. Pion yang sudah melewati satu putaran masuk ke dalam jalur berwarna sesuai dengan warna pion.

10. Pion tidak akan bergerak apabila angka yang dihasilkan dadu belum sesuai untuk masuk ke dalam finish. Contoh: pion hanya perlu tiga langkah lagi menuju finish, namun angka yang dihasilkan dadu adalah empat, maka pion akan maju tiga langkah dan mundur satu langkah. Begitu seterusnya hingga pion berhasil masuk finish.

2.3 Game Engine

Game Engine adalah sistem perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.

2.3.1 Unity

Unity adalah game engine dengan built-in IDE yang dikembangkan oleh Unity Technologies. Game engine ini digunakan untuk mengembangkan game dengan platform desktop, konsol, dan perangkat mobile. Tampilan antarmuka Unity dapat dilihat pada gambar 2.2.

Gambar 2.2 Unity

Scripting dari game engine Unity adalah implementasi dari NET Framework. Pemrograman dapat menggunakan UnityScript, C#, atau Boo (yang terinspirasi dari bahasa Python). Dimulai dengan dirilisnya versi 3.0. Unity


(21)

11

mendukung penyebaran ke berbagai platform. Pengembang dapat membuat ke perangkat mobile, web browser, desktop, atau konsol. Unity juga memungkinkan spesifikasi kompresi tekstur dan pengaturan resolusi setiap platform.

2.4 Bahasa Pemrograman JavaScript

JavaScript adalah bahasa skrip yang populer di internet dan dapat bekerja di sebagian besar penjelajah web populer. JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape dibawah nama Mocha, yang nantinya namanya diganti menjadi LiveScript, dan akhirnya menjadi JavaScript.

JavaScript bisa digunakan untuk banyak tujuan, misalnya untuk membuat efek rollover baik di gambar maupun teks, dan yang penting juga adalah untuk membuat AJAX. JavaScript adalah bahasa yang digunakan untuk AJAX.


(22)

67 BAB 1 A BAB 2 A BAB 3 BAB 4 A

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil dari pengujian dan implementasi permainan Ludo, maka dapat diambil kesimpulan sebagai berikut. Penerapan algoritma Greedy pada permainan ini telah sesuai dengan apa yang diharapkan, langkah pion sesuai dengan algoritma yang diimplementasikan, yaitu algoritma Greedy yang telah digabungkan dapat menentukan langkah pion apabila terjadi kasus dengan kondisi tertentu.

5.2 Saran

Permainan Ludo ini masih dapat dikembangkan lebih lanjut dengan perkembangan spesifikasi kebutuhan pengguna sistem yang harus dipenuhi dalam mencapai tahap yang lebih tinggi dan kinerja sistem yang lebih baik. Algoritma yang diterapkan dapat dibuat lebih random dalam menentukan langkah pion


(23)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

45

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

IMPLEMENTASI ALGORITMA GREEDY UNTUK PENENTUAN

LANGKAH PION PADA PERMAINAN LUDO

Primarani Dyah Bestari

Teknik Informatika – Universitas Komputer Indonesia Jl. Dipatiukur 112-114 Bandung

E-mail : kuyasipit@gmail.com

ABSTRAK

Ludo is a kind of board game played by two to four players take turns playing a pieces to reach the finish. In addition to playing with other players, the game can also be played with computers. For a computer to complete the game used greedy algorithm, there are four greedy algorithm to solve the ludo game Greedy by Hitter, No One Left Behind Greedy, Greedy by Quick Move, and Greedy by Blocking. These four algorithms will be combined to become a complete algorithm to determine the steps pieces to be played by computer.

In ludo game with a greedy algorithm to implement this using a waterfall methodology research software. Greedy algorithm with predefined scenarios dice, after it performed analysis and system design and analysis of algorithms and implementations. Applications created using Unity game then tested the algorithm implementation in order to know whether the implementation is done already as expected.

Testing is done by playing a game that has been built with the implementation of four algorithms which have been combined with algorithmic game that has not been combined. From the observation and testing found that playing on the fourth ludo greedy algorithm which has been incorporated, pieces reaches the finish faster.

Keyword : greedy algorithm, game, ludo

1. PRELIMINARY

Greedy algorithm is an algorithm that uses a type of problem-solving approach to find the maximum value while at every step. One of the problems that can be solved by the Greedy permaian Ludo. Ludo is derived from the Latin word "ludus", which means the game (games) [1]. Ludo game board game is a game type being played at least two people, players can fight against computer players or players. Ludo game can be solved by using a greedy algorithm, this algorithm is often used to solve the problem of finding solutions to get the results.

From previous research it is written that the four algorithms can be combined into one so as to

produce a better algorithm in determining the pawn move. Therefore, in this study will be the fourth merger Greedy algorithms into one.

1.1 Greedy Algorithm

Greedy algorithm is an algorithm that uses a type of problem-solving approach to find the maximum value while at every step. While the maximum value is known as the local maximum. Most cases, the Greedy algorithm will not produce the most optimal solution, Greedy algorithms usually provide a solution that approaches the optimum value in quite right.

In many cases, the strategy Greedy algorithm does not produce an optimal solution, but Greedy may produce locally optimal solutions that approach the global optimal solution in a reasonable time. In language Greedy means "greedy". Greedy algorithms form the solution step by step. For each step, there are many options that need to be explored. Therefore, at each step must be made the best decision in determining the choice. Each step took the best option that can be obtained at the time without regard to future consequences (the principle of "take what you can get now!"), Hoping that by choosing a local optimum at each step will end up with a global optimum.

Four Greedy algorithms are implemented to determine the pawn steps, namely:

1 Greedy by Hitter

Pion players will move according to figures produced by the dice, if there is a player in front of the pawn pawn pawn opponent then the player will take the opponent pawn in front of her.

2 Greedy No One Left Behind

Pion players will move according to figures produced by the dice, if the pawn position players are in the rear, then pawn the player will move so as not to be in the rear.

3 Greedy by Quick Move

Pion players will move according to figures produced by the dice, if the pawn position players are close to the finish, then pawn the player will move to immediately reach the finish.

4 Greedy by Blocking

Pion players will move according to figures produced by the dice, if there is a player in deoan


(24)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

46

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

pawn pawn pawn then the other players will step up and piled with pawn in front of her friends.

1.2 Ludo Game

Ludo is a kind of board game played by 2-4 players, where players compete to run their four pawns from start to finish based on the roll of the dice. Ludo is derived from the Latin word "ludus" which means game.

Figure 1 Board Games Ludo

Ludo board game or rectangular, in each corner there is a home base with four different colors, namely red, green, yellow, and blue, in Figure 2.1 are marked with the number 1 (one). Each home base has four pieces of the same color to the home base, respectively.

Pion runs clockwise rotating accordance, can be seen in Figure 2.1 the direction of the rate Ludo game marked by arrows. If the pawn has been spun as a purtaran then the pawn go into the lane in the middle according to the color of a home base and a pawn, respectively, as shown in figure 2.1 which is marked with the number 2 (two).

In Figure 2.1 are marked with the number 3 (three) is the finish or pawn goal after spinning and into the colored line in the middle.

1.3 Ludo Game Rules

Ludo game is played by two to four people. Each player gets four pieces with colors according to their own preferences, pawns are moved clockwise, turning to walk along the track is on board, to achieve the goal box in the middle of the board. Each region or country has different rules depending ludo, but in this study the rules in the game of Ludo is as follows.

1 Players choose a color that will be played, then put the four pieces that match the color of the selected home base.

2 Players roll the dice in turn.

3 To remove the pawns into the path of the game, the player must earn six figures of dice being thrown.

4 Players move the pawn has been on the game in accordance with the numbers generated dice. 5. If players earn six figures again, then the player can choose to move the pawns are on track or remove pieces that are in a home base.

6 When the number appears players can melempat six dice again, and there is no limit if the dice are thrown generate consecutive sixes.

7 If the player stops at a pawn that has filled the opponents pawn pawns belonging to the opponents

die and go back to home base belonging to the opponent.

8 If the player stops at a pawn filled with self-owned pawn, pawn tersebt then be stacked to make forts and opponents pawns can not pass any numbers generated by the dice.

9. Pion already passed one round into the corresponding colored lines with color pawns. 10 Pion will not move if the resulting figure is not appropriate dice to get into the finish. Example: pawn only need three more steps toward the finish, but the resulting number is four dice, then the pawn will be three steps forward and one step backward. And so on until the pawn gets in the finish.

1.4 Research Methods

Software development methods used in this study is the Waterfall method possible by reference Pressman. Broadly speaking, the Waterfall method includes several processes, which are:

1.requirement Analysis

This stage of analysis methods, algorithms and the needed resources to the development of the system. The analysis is carried out among other games analysis, feedback analysis, analysis algorithms will be implemented on the system, the analysis of non-functional requirements which include hardware and software, as well as functional analysis covering usecase diagrams, class diagrams, activity diagrams, and sequence diagrams .

2.system Design

This phase is done before coding. This stage aims to provide an overview of what should be done and how it looks, like a storyboard design and system interface design.

3.Implementation

This stage of the programming is done on the system dibungun, in this stage of the algorithm implementation on a system built. This stage also conducted an examination of the system are made, whether it meets the desired function or not.

4.Integration and Testing

At this stage of testing to determine whether the system has been made in accordance with the design and there are errors or not.

Gambar 2 Waterfall Pressman[3]

2. CONTENTS RESEARCH

Problems are found when the analysis was done in previous research that there are four written Greedy algorithms are used. In this study, four pawns step in determining the algorithm will be combined into one.


(25)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

47

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033 2.1 Analysis of Feedback

Greedy algorithms will be applied to the determination of the case analysis pawn move, the Ludo game is to search for a pawn is a priority for the step being examined.

Under conditions of a pawn that has some possibility to move, the Greedy algorithm is suitable to find the best solution. Every pawn is on the path of the game will see the status of pawns Which will be the top priority for the step.

Gambar 1 Feedback Analysis

A dan C adalah pion yang berwarna sama, sedangkan B adalah pion lawan dengan warna yang berbeda. Untuk penerapan algoritma Greedy, A dapat melangkah memakan B atau bertumpuk dengan C, kemungkinan lain adalah A melangkah mendahului C atau C melangkah semakin jauh mendekati finish.

2.2Analisis Algoritma

Greedy by Hitter

Berikut ini adalah langkah-langkah pergerakan pion dalam menjalankan algoritma Greedy by Hitter : 1. Sistem mengecek giliran pion mana yang akan bermain

2. Pion hitam mendapatkan giliran bermain

3. Pion hitam mengocok dadu dan menghasilkan angka tiga

4. Sistem mengecek pion hitam dengan menggunakan perulangan apakah ada pion hitam yang dapat digerakkan dan terdapat pion lawan (pion merah) pada kotak jalur tujuan pion hitam

5. Jika ya maka pion hitam tersebut menjadi prioritas untuk melakukan algoritma Greedy by Hitter 6. Pion hitam maju tiga langkah lalu memakan pion merah.

Greedy No One Left Behind

Berikut ini adalah langkah-langkah pergerakan pion dalam menjalankan algoritma Greedy No One Left Behind :

1. Sistem mengecek giliran pion mana yang akan bermain

2. Pion hitam mendapatkan giliran bermain

3. Pion hitam mengocok dadu dan menghasilkan angka lima

4.Sistem mengecek pion hitam dengan

menggunakan perulangan apakah ada pion yang berada paling belakang atau tidak

5. Jika ya maka pion tersebut menjadi prioritas untuk melakukan algoritma Greedy No One Left Behind

6. Pion hitam maju lima langkah sesuai dengan angka yang dihasilkan oleh dadu.

Greedy by Quick Move

Berikut ini adalah langkah-langkah pergerakan pion dalam menjalankan algoritma Greedy by Quick Move :

1. Sistem mengecek giliran pion mana yang akan bermain

2. Pion hitam mendapatkan giliran bermain

3 .Pion hitam mengocok dadu dan menghasilkan angka enam

4. Sistem mengecek pion hitam dengan menggunakan perulangan apakah ada pion yang berada dekat dengan finish atau tidak

5. Jika ya maka pion tersebut menjadi prioritas untuk melakukan Greedy by Quick Move

6. Pion hitam maju enam langkah sesuai dengan angka yang dihasilkan oleh dadu.

Greedy by Blocking

Berikut ini adalah langkah-langkah pergerakan pion dalam menjalankan algoritma Greedy by Blocking : 1. Sistem mengecek giliran pion mana yang akan bermain

2. Pion hitam mendapatkan giliran bermain

3. Pion hitam mengocok dadu dan menghasilkan angka empat

4. Sistem mengecek pion hitam dengan menggunakan perulangan apakah pada kotak jalur tujuan terdapat pion hitam lainnya atau tidak

5. Jika yam aka pion hitam tersebut menjadi prioritas untuk melakukan Greedy by Blocking

6. Pion hitam maju empat langkah lalu bertumpuk dengan pion hitam lainnyauntuk menghalangi jalan pion lawan.

Berikut ini adalah penjelasan dari

pengimplementasian keempat algoritma Greedy pada permainan Ludo.

1. Himpunan kandidat = C, Himpunan kandidat (C) adalah pion-pion yang akan dimainkan. Terdapat empat warna pion masing-masing memiliki empat buah pion untuk dimainkan, total pion dalam permainan adalah enam belas.

C={1, 2. 3, 4, 5, 6, 7, 8, 9, 10 ,11 ,12 ,13 ,14 ,15 ,16} Keterangan:

C={1, 2, 3, 4} adalah pion berwarna merah C={5, 6, 7, 8} adalah pion berwarna biru C={9, 10, 11, 12} adalah pion berwana hijau C={13, 14, 15, 16} adalah pion berwana kuning 2. Himpunan solusi=S

Himpunan solusi (S) adalah kotak jalur yang akan dilalui oleh pion.

banyaknya kotak jalur yang akan dilalui pion selama permainan adalah lima puluh enam kotak kotak jalur.

S={f1 ,f2 ,f3 ,f4 ,f5 ,.., f56} Keterangan:

F1 hingga f56 adalah kotak kotak jalur yang akan dilalui pion dari awal hingga finish.


(26)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

48

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

Mengambil sebuah kandidat dari Himpunan Kandidat (C).

4. Fungsi kelayakan

Memeriksa apakah ada pion berdasarkan kandidat yang dipilih ada di dalam kotak jalur. Dilakukan dengan cara sistem melakukan perulangan apakah ada pion yang layak untuk digerakkan atau tidak. Jika ada maka pion tersebut akan bergerak, jika tidak maka sistem akan mencari kandidat lain untuk digerakkan.

5. Fungsi solusi

Jika angka yang dihasilkan dadu sama dengan kotak jalur tujuan pion, maka pion tersebut akan bergerak sesua angka yang dihasilkan oleh dadu.

6. Fungsi obyektif

Jika kotak jalur yang dituju terdapat pion lawan maka dilakukanlah Greedy by Hitter, jika kotak jalur yang dituju kosong namun pion berada paling belakang maka dilakukanlah Greedy No One Left Behind, jika kotak jalur yang dituju kosong namu pion berada dekat dengan finish maka dilakukanlah Greedy by Quick Move, jika kotak jalur yang dituju terdapat pion yang berwarna sama maka dilakukanlah Greedy by Blocking.

Berapapun angka yang dihasilkan oleh dadu membuka kemungkinan

2.3Contoh Kasus

3.Untuk Greedy by Hitter pion 2 akan maju empat langkah dan memakan pion 11 yang berada di depannya.

4.S=

5.Untuk Greedy No One Left Behind pion 2 akan maju empat langkah agar tidak berara di paling belakang.

6.S=

7.Untuk Greedy by Quick Move pion 2 akan maju empat langkah untuk mencapai finish.

8.S=

9.Untuk Greedy by Blocking pion 2 akan maju empat langkah dan bergabung dengan pion 3 yang berada di depannya.

10. S=

Berikut ini adalah contoh kasus jika di dalam kotak jalur terdapat empat pion sekaligus. Diasumsikan dadu menghasilkan angka tiga dan semua pion merah berada di dalam kotak jalur.

Gambar 3.4 Contoh Kasus 1 Sistem akan mengecek pion mulai dari yang paling dekat dengan home base secara berurutan, pada gambar 3.4 ditandai dengan pion merah bernomor satu. Sistem mengecek pion merah satu apakah pion tersebut berada dekat dengan home base, atau apakah ada pion lawan di depannya, atau apakah ada pion kawan di depannya, atau apakah pion tersebut berada dekat dengan finish. Pengecekan berulang hingga pion merah empat, setelah sistem selesai mengecek semua pion maka didapatkan pion merah tiga yang menjadi prioritas untuk melangkah dan melakukan Greedy by Hitter. Pion merah satu tidak melangkah karena pion tersebut berada dekat dengan home base namun angka yang dihasilkan oleh dadu tidak sesuai dengan Greedy No One Left Behind dimana pion yang paling belakang akan melangkah apabila dadu menghasilkan angka lima atau enam. Pion merah dua tidak melangkah karena pion tersebut berada jauh dari home base atau finish dan tidak ada pion kawan ataupun lawan di depannya. Pion merah empat tidak melangkah karena pion tersebut sama dengan pion merah dua meskipun pion berada paling depan namun untuk melakukan Greedy by Quick Move pion harus berada minimal sepuluh kotak kotak jalur dari kotak pertama kotak jalur aman.

2.2 Spesifikasi Kebutuhan Perangkat Lunak

Analisis perangkat lunak untuk

mengimplementasikan algoritma Greedy pada penelitian ini akan dibagi kedalam dua bagian, yaitu analisis kebutuhan non-fungsional dan analisis kebutuhan fungsional.

2.3 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non-fungsional menggambarkan kebutuhan sistem yang menitik beratkan pada property prilaku yang dimiliki oleh sistem, diantaranya kebutuhan perangkat keras, kebutuhan perangkat lunak, serta kebutuhan user sebagai bahan analisis kebutuhan yang harus dipenuhi dalam perancangan sistem yang akan diterapkan.

1.Analisis Kebutuhan Perangkat Keras

Komputer terdiri dari perangkat keras dan perangkat lunak yang saling berinteraksi.

Table 1 Analisis Kebutuhan Perangkat Keras


(27)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

49

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033 Prosesor AMD E-350 1.60 GHz

Memory 4 GB

Resolusi layar 1366 x 178 pixel Harddisk 320 GB Keyboard dan mouse -

2.4Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan agar sistem dapat berjalan dengan baik serta sesuai dengan kebutuhan.

2.2.1 Usecase

Usecase diagram merupakan gambaran fungsional dari interaksi antara actor dengan sistem

Gambar 2 Usecase

Definisi use case berfungsi untuk memperjelas proses yang terdapat pada setiap use case.

Table 2 Defin isi Use Case N

o

Use Case Deskripsi

1 Masuk ke menu utama Proses dimana

pemain masuk ke

dalam menu

utama permainan

2 Memilih warna dan

jumlah pemain

Proses pemilihan pion dan jumlah pemain yang akan bermain

3 Start game Proses measuk ke

dalam area

permainan

4 Memainkan permainan Proses

memainkan permainan

5 Pause Proses

menghentikan permainan sementara 6 Melakukan Greedy by

Hitter

Proses menjalankan greedy by hitter 7 Melakukan Greedy No

One Left Behind

Proses menjalankan greedy no one left behind

8 Melakukan Greedy by Quick Move

Proses menjalankan

greedy by Quick move

9 Melakukan Greedy by Blocking

Proses menjalankan

greedy by

blocking 1

0

Keluar permainan Keluar dari

permainan Tabel 3 Skenario Usecase Pause

Identifikasi

Nama Pause

Tujuan Menghentikan permainan

sementara

Deskripsi Proses menghentikan

permainan sementara

Aktor Pemain

Kondisi Awal Pemain berada di area

permainan

Kondisi Akhir Pemain berada di area

permainan

Pemain keluar permainan

Skenario Utama

Aksi Aktor Reaksi Sistem

1.Menekan

tombol “esc”

pada keyboard

2.Menampilkan menu pesan “continue” dan “quit”

3a.Memilih menu pesan

“continue”

3b.Memilih menu pesan

“quit”

4a.kembali menjalankan

permainan

4b.menampilkan menu pesan “yes” dan “no”

5a.memilih menu pesan

“no”

5b.memilih menu pesan

“yes”

6a.kembali menampilkan

menu pesan “continue” dan “quit”


(28)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

50

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

2.2.2 Class Diagram

Class diagram digunakan untuk menampilkan kelas-kelas dan paket-paket di dalam sistem.

Gambar 3 Class Diagram

2.3Skenario Pengujian

Skenario pengujian menjelaskan pengujian terhadap sistem yang ada pada aplikasi permainan Ludo. Skenario pengujian dari aplikasi permainan Ludo dapat dilihat pada tabel 4.2.

Table 4.2 Skenario Pengujian

No Komponen

yang Dijuji Butir Uji

Jenis Pengujian

1 Menu Utama Masuk ke menu

utama Blackbox 2 Memilih warna dan pemain Memilih tombol dadu Blackbox Memilih pemain "CPU" Blackbox Mematikan pemain Blackbox

3 Main

Permainan Memilih tombol start Blackbox Memilih tombol dadu Blackbox

Memilih pion Blackbox

4 Pause

permainan Memilih tombol continue Blackbox Memilih tombol quit Blackbox Memilih tombol yes Blackbox Memilih tombol no Blackbox

5 Algoritma Greedy

Greedy by Hitter Whitebox Greedy No One

Left Behind

Whitebox Greedy by Quick

Move

Whitebox Greedy by Blocking Whitebox 1.Blackbox

Tabel 1 Pengujian Blackbox Kasus Dan Hasil Uji

Masukan Keluaran

yang Diharapkan

Pengamatan Kesimpula n Tekan tombol “esc” Sistem melakukan proses Sistem mem-pause permainan [√] Berhasil pada keyboard untuk mem-pause permainan dan menampilk an pesan “quit” dan “continue” dan menampilk an pesan “quit” dan “continue”

[ ] Tidak berhasil Klik tombol “continue ” Sistem melakukan proses untuk menampilk an papan permainan Sistem menampilk an papan permainan [√] Berhasil [ ] Tidak berhasil Klik tombol “quit” Sistem melakukan proses untuk menampilk an pesan “yes” dan “no” Sistem menampilk an pesan “yes” dan “no” [√] Berhasil [ ] Tidak berhasil Klik tombol “no” Sistem melakukan proses untuk menampilk an kembali pesan “quit” dan “continue” Sistem menampilk an kembali pesan “quit” dan “continue” [√] Berhasil [ ] Tidak berhasil Klik tombol “yes” Sistem melakukan proses untuk menutup aplikasi Sistem menutup aplikasi [√] Berhasil [ ] Tidak berhasil

2.Whitebox

Bagian ini merupakan kasus algoritma Greedy untuk menguji aplikasi yang sudah dibangun

dengan menggunakan metode Whitebox,

berdasarkan skenario pengujian aplikasi yang sudah dijabarkan. Pengujian algoritma Greedy merupakan proses dimana akan diuji terhadap pion-pion dalam pemilihan langkah pada permainan Ludo. Berikut ini adalah algoritma Greedy yang diimplementasikan pada permainan Ludo dengan menggunakan bahasa pemrograman JavaScript.

function EatPiece(a:int,b:int){ var ts : String; 1 switch(a){ 2 case 1:

ts = "P1"; break; 3 case 2:


(29)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

51

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

break; 4 case 3:

ts = "P3"; break; 5 case 4:

ts = "P4"; break; }

var gos : GameObject[];

gos = GameObject.FindGameObjectsWithTag(ts); 6 for(var go in gos){

var tv : int;

tv = go.GetComponent.<piece1>().cField; 7 if(tv == b){

go.GetComponent.<piece1>().cField = 0;

go.GetComponent.<piece1>().road = 0;

go.GetComponent.<piece1>().nearHome = false; go.GetComponent.<piece1>().pMode = PieceMode.base;

var bp : int; var bs : String; var bpos : Vector3;

bp =

go.GetComponent.<piece1>().baseField;

8 switch(a){

9 case 1:

bs =

gameScript.p1base[bp];

break;

10 case 2:

bs =

gameScript.p2base[bp];

break;

11 case 3:

bs =

gameScript.p3base[bp];

break;

12 case 4:

bs =

gameScript.p4base[bp];

break;

}

bpos =

GameObject.Find(bs).transform.position;

go.transform.position = bpos; toEatP = 0;

toEatF = 0; return; }

13 }

}

Flowgraph algoritma Greedy by Blocking dan Greedy by Hitter

Gambar 4. Flowgraph Greedyby Hitter Keterangan :

= Menggambarkan kondisi = Menggambarkan aksi Cyclomatc Complexity V(G)

Dari gambar 4.10 dapat dihitung cyclomatic complexity sebagai berikut :

V(G) = E – N + 2

Di mana E adalah edge, dan N adalah node V(G) = E – N + 2

= 16 – 13 + 2 = 5

3 PENUTUP

Berdasarkan hasil pengujian implementasi antarmuka yang dilakukan, algoritma Greedy yang diterapkan pada permainan Ludo telah sesuai dengan apa yang diharapkan, yaitu menentukan langkah pion apabila terjadi kondisi-kondisi tertentu. Begitu pula pengujian whitebox yang dilakukan, masing-masing independent path yang dihasilkan bisa dijalankan dan dieksekusi serta tidak ada perulangan yang tak berhingga

3.1 Kesimpulan

Berdasarkan hasil dari pengujian dan implementasi permainan Ludo, maka dapat diambil kesimpulan sebagai berikut. Penerapan algoritma Greedy pada permainan ini telah sesuai dengan apa yang diharapkan, langkah pion sesuai dengan algoritma yang diimplementasikan, yaitu algoritma Greedy yang telah digabungkan dapat menentukan langkah pion apabila terjadi kasus dengan kondisi tertentu. 3.2 Saran

Permainan Ludo ini masih dapat dikembangkan lebih lanjut dengan perkembangan spesifikasi kebutuhan pengguna sistem yang harus dipenuhi dalam mencapai tahap yang lebih tinggi dan kinerja sistem yang lebih baik. Algoritma yang diterapkan dapat dibuat lebih random dalam menentukan langkah pion.

DAFTAR PUSTAKA

[1] Lio Franklyn Kemit. Penentuan Langkah dengan Greedy dalam Permainan Ludo, 2012

[2] Dr. Juliansyah Noor, S.E., M.M., Metode Penelitian Skripsi, Thesis, Disertasi, dan Karya Ilmiah.: KENCANA PRENADA MEDIA GROUP, 2012


(30)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

52

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

[3] Andi Setiya Wardana (2013, Oktober). Pengembangan Sistem Dengan Metode Waterfall

[online]. Available :

http://andisetiya.blog.widyatama.ac.id/2013/10/02/p engembangan-sistem-informasi-dengan-metode-waterfall/ (Diakses 8 Juni 2014 23:45)


(1)

2.1 Analysis of Feedback

Greedy algorithms will be applied to the determination of the case analysis pawn move, the Ludo game is to search for a pawn is a priority for the step being examined.

Under conditions of a pawn that has some possibility to move, the Greedy algorithm is suitable to find the best solution. Every pawn is on the path of the game will see the status of pawns Which will be the top priority for the step.

Gambar 1 Feedback Analysis

A dan C adalah pion yang berwarna sama, sedangkan B adalah pion lawan dengan warna yang berbeda. Untuk penerapan algoritma Greedy, A dapat melangkah memakan B atau bertumpuk dengan C, kemungkinan lain adalah A melangkah mendahului C atau C melangkah semakin jauh mendekati finish.

2.2Analisis Algoritma

Greedy by Hitter

Berikut ini adalah langkah-langkah pergerakan pion dalam menjalankan algoritma Greedy by Hitter : 1. Sistem mengecek giliran pion mana yang akan bermain

2. Pion hitam mendapatkan giliran bermain

3. Pion hitam mengocok dadu dan menghasilkan angka tiga

4. Sistem mengecek pion hitam dengan menggunakan perulangan apakah ada pion hitam yang dapat digerakkan dan terdapat pion lawan (pion merah) pada kotak jalur tujuan pion hitam

5. Jika ya maka pion hitam tersebut menjadi prioritas untuk melakukan algoritma Greedy by Hitter 6. Pion hitam maju tiga langkah lalu memakan pion merah.

Greedy No One Left Behind

Berikut ini adalah langkah-langkah pergerakan pion dalam menjalankan algoritma Greedy No One Left Behind :

1. Sistem mengecek giliran pion mana yang akan bermain

2. Pion hitam mendapatkan giliran bermain

3. Pion hitam mengocok dadu dan menghasilkan angka lima

4.Sistem mengecek pion hitam dengan menggunakan perulangan apakah ada pion yang berada paling belakang atau tidak

5. Jika ya maka pion tersebut menjadi prioritas untuk melakukan algoritma Greedy No One Left Behind

6. Pion hitam maju lima langkah sesuai dengan angka yang dihasilkan oleh dadu.

Greedy by Quick Move

Berikut ini adalah langkah-langkah pergerakan pion dalam menjalankan algoritma Greedy by Quick Move :

1. Sistem mengecek giliran pion mana yang akan bermain

2. Pion hitam mendapatkan giliran bermain

3 .Pion hitam mengocok dadu dan menghasilkan angka enam

4. Sistem mengecek pion hitam dengan menggunakan perulangan apakah ada pion yang berada dekat dengan finish atau tidak

5. Jika ya maka pion tersebut menjadi prioritas untuk melakukan Greedy by Quick Move

6. Pion hitam maju enam langkah sesuai dengan angka yang dihasilkan oleh dadu.

Greedy by Blocking

Berikut ini adalah langkah-langkah pergerakan pion dalam menjalankan algoritma Greedy by Blocking : 1. Sistem mengecek giliran pion mana yang akan bermain

2. Pion hitam mendapatkan giliran bermain

3. Pion hitam mengocok dadu dan menghasilkan angka empat

4. Sistem mengecek pion hitam dengan menggunakan perulangan apakah pada kotak jalur tujuan terdapat pion hitam lainnya atau tidak

5. Jika yam aka pion hitam tersebut menjadi prioritas untuk melakukan Greedy by Blocking

6. Pion hitam maju empat langkah lalu bertumpuk dengan pion hitam lainnyauntuk menghalangi jalan pion lawan.

Berikut ini adalah penjelasan dari pengimplementasian keempat algoritma Greedy pada permainan Ludo.

1. Himpunan kandidat = C, Himpunan kandidat (C) adalah pion-pion yang akan dimainkan. Terdapat empat warna pion masing-masing memiliki empat buah pion untuk dimainkan, total pion dalam permainan adalah enam belas.

C={1, 2. 3, 4, 5, 6, 7, 8, 9, 10 ,11 ,12 ,13 ,14 ,15 ,16} Keterangan:

C={1, 2, 3, 4} adalah pion berwarna merah C={5, 6, 7, 8} adalah pion berwarna biru C={9, 10, 11, 12} adalah pion berwana hijau C={13, 14, 15, 16} adalah pion berwana kuning 2. Himpunan solusi=S

Himpunan solusi (S) adalah kotak jalur yang akan dilalui oleh pion.

banyaknya kotak jalur yang akan dilalui pion selama permainan adalah lima puluh enam kotak kotak jalur.

S={f1 ,f2 ,f3 ,f4 ,f5 ,.., f56} Keterangan:

F1 hingga f56 adalah kotak kotak jalur yang akan dilalui pion dari awal hingga finish.


(2)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033 Mengambil sebuah kandidat dari Himpunan

Kandidat (C).

4. Fungsi kelayakan

Memeriksa apakah ada pion berdasarkan kandidat yang dipilih ada di dalam kotak jalur. Dilakukan dengan cara sistem melakukan perulangan apakah ada pion yang layak untuk digerakkan atau tidak. Jika ada maka pion tersebut akan bergerak, jika tidak maka sistem akan mencari kandidat lain untuk digerakkan.

5. Fungsi solusi

Jika angka yang dihasilkan dadu sama dengan kotak jalur tujuan pion, maka pion tersebut akan bergerak sesua angka yang dihasilkan oleh dadu.

6. Fungsi obyektif

Jika kotak jalur yang dituju terdapat pion lawan maka dilakukanlah Greedy by Hitter, jika kotak jalur yang dituju kosong namun pion berada paling belakang maka dilakukanlah Greedy No One Left Behind, jika kotak jalur yang dituju kosong namu pion berada dekat dengan finish maka dilakukanlah Greedy by Quick Move, jika kotak jalur yang dituju terdapat pion yang berwarna sama maka dilakukanlah Greedy by Blocking.

Berapapun angka yang dihasilkan oleh dadu membuka kemungkinan

2.3Contoh Kasus

3.Untuk Greedy by Hitter pion 2 akan maju empat langkah dan memakan pion 11 yang berada di depannya.

4.S=

5.Untuk Greedy No One Left Behind pion 2 akan maju empat langkah agar tidak berara di paling belakang.

6.S=

7.Untuk Greedy by Quick Move pion 2 akan maju empat langkah untuk mencapai finish.

8.S=

9.Untuk Greedy by Blocking pion 2 akan maju empat langkah dan bergabung dengan pion 3 yang berada di depannya.

10. S=

Berikut ini adalah contoh kasus jika di dalam kotak jalur terdapat empat pion sekaligus. Diasumsikan dadu menghasilkan angka tiga dan semua pion merah berada di dalam kotak jalur.

Gambar 3.4 Contoh Kasus 1 Sistem akan mengecek pion mulai dari yang paling dekat dengan home base secara berurutan, pada gambar 3.4 ditandai dengan pion merah bernomor satu. Sistem mengecek pion merah satu apakah pion tersebut berada dekat dengan home base, atau apakah ada pion lawan di depannya, atau apakah ada pion kawan di depannya, atau apakah pion tersebut berada dekat dengan finish. Pengecekan berulang hingga pion merah empat, setelah sistem selesai mengecek semua pion maka didapatkan pion merah tiga yang menjadi prioritas untuk melangkah dan melakukan Greedy by Hitter. Pion merah satu tidak melangkah karena pion tersebut berada dekat dengan home base namun angka yang dihasilkan oleh dadu tidak sesuai dengan Greedy No One Left Behind dimana pion yang paling belakang akan melangkah apabila dadu menghasilkan angka lima atau enam. Pion merah dua tidak melangkah karena pion tersebut berada jauh dari home base atau finish dan tidak ada pion kawan ataupun lawan di depannya. Pion merah empat tidak melangkah karena pion tersebut sama dengan pion merah dua meskipun pion berada paling depan namun untuk melakukan Greedy by Quick Move pion harus berada minimal sepuluh kotak kotak jalur dari kotak pertama kotak jalur aman.

2.2 Spesifikasi Kebutuhan Perangkat Lunak

Analisis perangkat lunak untuk mengimplementasikan algoritma Greedy pada penelitian ini akan dibagi kedalam dua bagian, yaitu analisis kebutuhan non-fungsional dan analisis kebutuhan fungsional.

2.3 Analisis Kebutuhan Non-Fungsional

Analisis kebutuhan non-fungsional menggambarkan kebutuhan sistem yang menitik beratkan pada property prilaku yang dimiliki oleh sistem, diantaranya kebutuhan perangkat keras, kebutuhan perangkat lunak, serta kebutuhan user sebagai bahan analisis kebutuhan yang harus dipenuhi dalam perancangan sistem yang akan diterapkan.

1.Analisis Kebutuhan Perangkat Keras

Komputer terdiri dari perangkat keras dan perangkat lunak yang saling berinteraksi.

Table 1 Analisis Kebutuhan Perangkat Keras Komputer Spesifikasi Perangkat Keras


(3)

Prosesor AMD E-350 1.60 GHz

Memory 4 GB

Resolusi layar 1366 x 178 pixel

Harddisk 320 GB

Keyboard dan mouse -

2.4Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan agar sistem dapat berjalan dengan baik serta sesuai dengan kebutuhan.

2.2.1 Usecase

Usecase diagram merupakan gambaran fungsional dari interaksi antara actor dengan sistem

Gambar 2 Usecase

Definisi use case berfungsi untuk memperjelas proses yang terdapat pada setiap use case.

Table 2 Defin isi Use Case N

o

Use Case Deskripsi

1 Masuk ke menu utama Proses dimana pemain masuk ke dalam menu utama permainan 2 Memilih warna dan

jumlah pemain

Proses pemilihan pion dan jumlah pemain yang akan bermain

3 Start game Proses measuk ke dalam area permainan 4 Memainkan permainan Proses

memainkan permainan

5 Pause Proses

menghentikan permainan sementara 6 Melakukan Greedy by

Hitter

Proses menjalankan greedy by hitter 7 Melakukan Greedy No

One Left Behind

Proses menjalankan greedy no one left behind

8 Melakukan Greedy by Quick Move

Proses menjalankan

greedy by Quick move

9 Melakukan Greedy by Blocking

Proses menjalankan

greedy by

blocking 1

0

Keluar permainan Keluar dari permainan Tabel 3 Skenario Usecase Pause

Identifikasi

Nama Pause

Tujuan Menghentikan permainan sementara

Deskripsi Proses menghentikan permainan sementara

Aktor Pemain

Kondisi Awal Pemain berada di area permainan

Kondisi Akhir Pemain berada di area permainan

Pemain keluar permainan

Skenario Utama

Aksi Aktor Reaksi Sistem 1.Menekan

tombol “esc” pada keyboard

2.Menampilkan menu pesan “continue” dan “quit”

3a.Memilih menu pesan “continue” 3b.Memilih menu pesan “quit”

4a.kembali menjalankan permainan

4b.menampilkan menu pesan “yes” dan “no”

5a.memilih menu pesan “no”

5b.memilih menu pesan “yes”

6a.kembali menampilkan menu pesan “continue” dan “quit”


(4)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

2.2.2 Class Diagram

Class diagram digunakan untuk menampilkan kelas-kelas dan paket-paket di dalam sistem.

Gambar 3 Class Diagram

2.3Skenario Pengujian

Skenario pengujian menjelaskan pengujian terhadap sistem yang ada pada aplikasi permainan Ludo. Skenario pengujian dari aplikasi permainan Ludo dapat dilihat pada tabel 4.2.

Table 4.2 Skenario Pengujian

No Komponen

yang Dijuji Butir Uji

Jenis Pengujian 1 Menu Utama Masuk ke menu

utama Blackbox 2 Memilih warna dan pemain Memilih tombol dadu Blackbox Memilih pemain "CPU" Blackbox Mematikan pemain Blackbox

3 Main Permainan Memilih tombol start Blackbox Memilih tombol dadu Blackbox Memilih pion Blackbox

4 Pause permainan Memilih tombol continue Blackbox Memilih tombol quit Blackbox Memilih tombol yes Blackbox Memilih tombol no Blackbox

5 Algoritma Greedy

Greedy by Hitter Whitebox Greedy No One

Left Behind

Whitebox Greedy by Quick

Move

Whitebox Greedy by Blocking Whitebox 1.Blackbox

Tabel 1 Pengujian Blackbox Kasus Dan Hasil Uji Masukan Keluaran

yang Diharapkan

Pengamatan Kesimpula n Tekan tombol “esc” Sistem melakukan proses Sistem mem-pause permainan [√] Berhasil pada keyboard untuk mem-pause permainan dan menampilk an pesan “quit” dan “continue” dan menampilk an pesan “quit” dan “continue”

[ ] Tidak berhasil Klik tombol “continue ” Sistem melakukan proses untuk menampilk an papan permainan Sistem menampilk an papan permainan [√] Berhasil [ ] Tidak berhasil Klik tombol “quit” Sistem melakukan proses untuk menampilk an pesan “yes” dan “no” Sistem menampilk an pesan “yes” dan “no” [√] Berhasil [ ] Tidak berhasil Klik tombol “no” Sistem melakukan proses untuk menampilk an kembali pesan “quit” dan “continue” Sistem menampilk an kembali pesan “quit” dan “continue” [√] Berhasil [ ] Tidak berhasil Klik tombol “yes” Sistem melakukan proses untuk menutup aplikasi Sistem menutup aplikasi [√] Berhasil [ ] Tidak berhasil

2.Whitebox

Bagian ini merupakan kasus algoritma Greedy untuk menguji aplikasi yang sudah dibangun dengan menggunakan metode Whitebox, berdasarkan skenario pengujian aplikasi yang sudah dijabarkan. Pengujian algoritma Greedy merupakan proses dimana akan diuji terhadap pion-pion dalam pemilihan langkah pada permainan Ludo. Berikut ini adalah algoritma Greedy yang diimplementasikan pada permainan Ludo dengan menggunakan bahasa pemrograman JavaScript.

function EatPiece(a:int,b:int){ var ts : String;

1 switch(a){

2 case 1:

ts = "P1";

break;

3 case 2:


(5)

break;

4 case 3:

ts = "P3";

break;

5 case 4:

ts = "P4";

break;

}

var gos : GameObject[];

gos = GameObject.FindGameObjectsWithTag(ts);

6 for(var go in gos){

var tv : int;

tv = go.GetComponent.<piece1>().cField;

7 if(tv == b){

go.GetComponent.<piece1>().cField = 0;

go.GetComponent.<piece1>().road = 0;

go.GetComponent.<piece1>().nearHome = false; go.GetComponent.<piece1>().pMode = PieceMode.base;

var bp : int;

var bs : String;

var bpos : Vector3;

bp =

go.GetComponent.<piece1>().baseField;

8 switch(a){

9 case 1:

bs =

gameScript.p1base[bp];

break;

10 case 2:

bs =

gameScript.p2base[bp];

break;

11 case 3:

bs =

gameScript.p3base[bp];

break;

12 case 4:

bs =

gameScript.p4base[bp];

break;

}

bpos =

GameObject.Find(bs).transform.position;

go.transform.position = bpos;

toEatP = 0;

toEatF = 0;

return;

}

13 }

}

Flowgraph algoritma Greedy by Blocking dan Greedy by Hitter

Gambar 4. Flowgraph Greedyby Hitter Keterangan :

= Menggambarkan kondisi = Menggambarkan aksi Cyclomatc Complexity V(G)

Dari gambar 4.10 dapat dihitung cyclomatic complexity sebagai berikut :

V(G) = E – N + 2

Di mana E adalah edge, dan N adalah node V(G) = E – N + 2

= 16 – 13 + 2 = 5

3

PENUTUP

Berdasarkan hasil pengujian implementasi antarmuka yang dilakukan, algoritma Greedy yang diterapkan pada permainan Ludo telah sesuai dengan apa yang diharapkan, yaitu menentukan langkah pion apabila terjadi kondisi-kondisi tertentu. Begitu pula pengujian whitebox yang dilakukan, masing-masing independent path yang dihasilkan bisa dijalankan dan dieksekusi serta tidak ada perulangan yang tak berhingga

3.1 Kesimpulan

Berdasarkan hasil dari pengujian dan implementasi permainan Ludo, maka dapat diambil kesimpulan sebagai berikut. Penerapan algoritma Greedy pada permainan ini telah sesuai dengan apa yang diharapkan, langkah pion sesuai dengan algoritma yang diimplementasikan, yaitu algoritma Greedy yang telah digabungkan dapat menentukan langkah pion apabila terjadi kasus dengan kondisi tertentu. 3.2 Saran

Permainan Ludo ini masih dapat dikembangkan lebih lanjut dengan perkembangan spesifikasi kebutuhan pengguna sistem yang harus dipenuhi dalam mencapai tahap yang lebih tinggi dan kinerja sistem yang lebih baik. Algoritma yang diterapkan dapat dibuat lebih random dalam menentukan langkah pion.

DAFTAR PUSTAKA

[1] Lio Franklyn Kemit. Penentuan Langkah dengan Greedy dalam Permainan Ludo, 2012

[2] Dr. Juliansyah Noor, S.E., M.M., Metode Penelitian Skripsi, Thesis, Disertasi, dan Karya Ilmiah.: KENCANA PRENADA MEDIA GROUP, 2012


(6)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

[3] Andi Setiya Wardana (2013, Oktober). Pengembangan Sistem Dengan Metode Waterfall

[online]. Available :

http://andisetiya.blog.widyatama.ac.id/2013/10/02/p engembangan-sistem-informasi-dengan-metode-waterfall/ (Diakses 8 Juni 2014 23:45)