• Tidak ada hasil yang ditemukan

Implementasi Algoritma Greedy Pada Game Summy

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Greedy Pada Game Summy"

Copied!
87
0
0

Teks penuh

(1)

LAMPIRAN A

LAMPIRAN HASIL EVALUASI GAME SUMMY DENGAN METODE BLACK

BOX TESTING

a. Hasil evaluasi pada Tampilan Halaman Menu Utama

Tabel Hasil Evaluasi Tampilan Halaman Menu Utama

No. Sasaran

Aplikasi berhenti Aplikasi berhasil berhenti

Valid

b. Hasil Evaluasi pada Tampilan Halaman Game

Tabel Hasil Evaluasi Tampilan Halaman Game

(2)
(3)
(4)

11. Pemilihan

c. Hasil Evaluasi Tampilan Halaman Bantuan

Tabel Hasil Evaluasi Tampilan Halaman Bantuan

(5)

d. Hasil Evaluasi Tampilan Halaman Tentang

Tabel Hasil Evaluasi Tampilan Halaman Tentang

No. Sasaran Pengujian

Hasil yang Diharapkan

Hasil Pengujian Kesimpulan 1. Tampilan

halaman Tentang

Aplikasi dapat menampilkan halaman Tentang

Aplikasi berhasil menampilkan halaman Tentang

Valid

2. Tutup halaman Bantuan

Aplikasi dapat menutup halaman Tentang ketika area luar halaman Tentang diklik

Aplikasi dapat menutup halaman Tentang ketika area luar halaman Tentang diklik

Valid

e. Hasil Evaluasi Resolusi Layar Monitor terhadap Tampilan Summy 1. Resolusi Layar Monitor 800 x 600 Pixel (Terpotong)

(6)

2. Resolusi Layar Monitor 1024 x 720 Pixel (Terpotong)

Gambar Tampilan Summy pada resolusi monitor 1024 x 720 pixel

3. Resolusi Layar Monitor 1280 x 720 Pixel (Terpotong)

(7)

4. Resolusi Layar Monitor 1366 x 768 Pixel (Tidak Terpotong)

Gambar Tampilan Summy pada resolusi monitor 1366 x 768 pixel

f. Hasil Evaluasi Performa pada Game Summy

Spesifikasi beberapa komputer yang akan digunakan dalam percobaan adalah sebagai berikut:

1. Operating System : Windows 7 Ultimate 32-bit SP1

CPU : Intel Mobile Core 2 Duo T5870 @ 2.00GHz

RAM : 2,00GB

Motherboard : ASUSTeK Computer Inc. K40IN

Graphics : Generic PnP Monitor (1366x768@62Hz) 512MB NVIDIA GeForce G102M

Storage : 232GB Seagate ST9250315AS ATA Device (SATA)

2. Operating System : Windows 7 Ultimate 64-bit SP1 CPU : Intel Core i3 2310M @ 2.10GHz

RAM : 4,00GB Dual-Channel DDR3 @ 665MHz Motherboard : ASUSTeK Computer Inc. K43E (CPU 1) Graphics : Generic PnP Monitor (1366x768@60Hz)

Intel HD Graphics 3000

(8)

CPU : Intel Core i5 4200U @ 1.60GHz

RAM : 8,00GB Dual-Channel DDR3 @ 798MHz Motherboard : ASUSTeK COMPUTER INC. X450LCP Graphics : Generic PnP Monitor (1366x768@60Hz)

Intel HD Graphics Family (ASUStek Computer Inc) 2047MB NVIDIA GeForce GT 720M

Storage : 465GB Hitachi HGST HTS545050A7E680

Tabel Hasil Evaluasi Performa pada Game Summy yang Dicoba pada Beberapa

Komputer Berbeda

Kotak di

tangan Kotak di papan

Hasil

Bentuk Komputer Waktu

(9)

1,3,5,7,9,+,-,= 93-78=15

1 0,217 24

2 0,017 32

3 0,017 56

1,2,3,4,5,6,7,= 76-45=31

1 1,850 12

2 3,117 20

3 3,567 56

4,5,6,7,8,9,=,+ 679+5=684

1 1,950 32

2 1,100 48

(10)

LAMPIRAN B

LAMPIRAN PETUNJUK CARA BERMAIN PADA GAME SUMMY

Cara bermain pada game Summy:

(11)

2. Jika pemain ingin menukarkan salah satu kotak miliknya dengan kotak yang lain, pemain dapat melakukan drag and drop kotak yang dimaksud ke menu Tukar.

(12)
(13)

5. Pemain dapat mengakhiri gilirannya jika telah menyusun bentuk yang valid untuk memperoleh poin atau jika ingin melewati gilirannya dengan cara mengklik menu Lanjut.

(14)
(15)
(16)
(17)

LAMPIRAN C

Private Function PermutasiDikurangi(Data() As String, DaftarYangDihapus As String) As String()

Private Function PisahNumerik(Data() As String) As JenisList Dim T As List(Of String) = Data.ToList

Friend Sub SusunKandidatParalelDanSetUpHasil(Data() As String, KandidatSource As GamePlay.KandidatCPUBaseKoordinat, Kpbntu As List(Of

Vector2), IsHorizontal As Boolean, TileYangDipegang As TileBoard(), TileBoard As TileBoard(,), loopState As ParallelLoopState)

Dim TempData = Data

If AktifCPU AndAlso Not CPUPlaceSet AndAlso

CInt(TimeSpan.FromSeconds(WaktuTungguBerjalan).ToString("mm")) <

BatasWaktuTunggu Then

(18)

Array.Reverse(TempData)

Private Sub SusunKandidatDanSetUpHasilnya(Data() As String, KandidatSource As GamePlay.KandidatCPUBaseKoordinat, Kpbntu As List(Of Vector2), IsHorizontal

As Boolean, TileYangDipegang As TileBoard(), TileBoard As TileBoard(,),

(19)

End If + CDbl(B(j).Replace("/", "")) = CDbl(C(k).Replace("/", "")) Then

'OPTerpakai.Append(OP)

Dim tempstr As StringBuilder = New StringBuilder

- CDbl(B(j).Replace("/", "")) = CDbl(C(k).Replace("/", "")) Then

'OPTerpakai.Append(OP)

Dim tempstr As StringBuilder = New StringBuilder

(20)

If CDbl(A(i).Replace("/", "")) * CDbl(B(j).Replace("/", "")) = CDbl(C(k).Replace("/", "")) Then

'OPTerpakai.Append(OP)

Dim tempstr As StringBuilder = New StringBuilder

/ CDbl(B(j).Replace("/", "")) = CDbl(C(k).Replace("/", "")) Then

'OPTerpakai.Append(OP)

Dim tempstr As StringBuilder = New StringBuilder

(21)

End If Next End Sub

Friend Function Permutasi(NPermutasi As Integer, Data() As String) As List(Of String)

Private Sub SusunPermutasi(ByRef FPermutasi As Boolean, ByRef Banyak() As

Integer, ByRef DPermutasi As List(Of String), ByVal Data() As String, ByVal

Layak As Boolean) AndAlso TemP.ToString.Substring(0, 1) <> "0") Then

DPermutasi.Add(TemP.ToString) End If

End If

(22)

If i > 0 Then

Private Sub CekKePapanPermainan(Solusi As String, KandidatSource As

GamePlay.KandidatCPUBaseKoordinat, KPbntu As List(Of Vector2), IsHorizontal As

Boolean, TileYangDipegang As TileBoard(), TileBoard As TileBoard(,), loopState

As ParallelLoopState)

Dim avb = AvaibleFormula(Solusi, KandidatSource, KPbntu, TileBoard) Dim Cocok As Boolean = False

KandidatSource.Koordinat, Solusi, IsHorizontal, TileYangDipegang, TileBoard) loopState.Stop()

Private Function AvaibleFormula(HasilSolusi As String, KandidatSource As GamePlay.KandidatCPUBaseKoordinat, KPembantu As List(Of Vector2), TileBoard As TileBoard(,)) As Integer

Private Function KelayakanCPU(avb As UInt16, Koordinat As Vector2, Solusi

As String, KPembantu As List(Of Vector2), IsBaris As Boolean, Player As

TileBoard(), TileBoard As TileBoard(,)) As Boolean Dim Cocok As Boolean = False

(23)

Dim Sol As List(Of Char) = Solusi.ToList Koordinat.Y - If(IsBaris, 1, 0)).Value <> 127 Then

Return False If(IsBaris, Koordinat.Y - k.Y, Koordinat.X - k.X) = avb - i Then

Kpem.Remove(k) Koordinat.Y, Koordinat.X) - (avb - i) >= 0) AndAlso

(TileBoard(Koordinat.X - If(Not IsBaris, (avb - i), 0), Koordinat.Y - If(IsBaris, (avb - i), 0)).Value = 127 And

Not TileBoard(Koordinat.X - If(Not IsBaris, (avb - i), 0), Koordinat.Y - If(IsBaris, (avb - i), 0)).IsBlocked) Then Plyr.Remove(p)

(24)

End If Koordinat.Y + If(IsBaris, 1, 0)).Value <> 127 Then

Return False Koordinat.X) + 1 < TileBoard.GetLength(0) Then

For i = avb + 1 To Solusi.Length - 1 If i = Solusi.Length - 1 Then

If If(IsBaris, Koordinat.Y, Koordinat.X) + (i + 1 - avb) < TileBoard.GetLength(0) Then

If TileBoard(Koordinat.X + If(Not IsBaris, (i + 1 - avb), 0), Koordinat.Y + If(IsBaris, (i + 1 - avb), 0)).Value <> 127 Then

Return False If(IsBaris, k.Y - Koordinat.Y, k.X - Koordinat.X) = i - avb Then

Kpem.Remove(k) avb), 0), Koordinat.Y + If(IsBaris, (i + 1 - avb), 0)).Value <> 127 Then

Return False Koordinat.Y, Koordinat.X) + (i - avb) < TileBoard.GetLength(0)) AndAlso

(TileBoard(Koordinat.X + If(Not IsBaris, i - avb, 0), Koordinat.Y + If(IsBaris, i - avb, 0)).Value = 127 And

(25)

Plyr.Remove(p)

Private Sub CPU_LetakHasilTervalidasi(avb As UInt16, Koordinat As Vector2, Solusi As String, IsHorizontal As Boolean, TileYangDipegang As TileBoard(), TileBoard As TileBoard(,))

Dim Plye = TileYangDipegang.ToArray Koordinat.Y, Koordinat.X) - (avb - i) >= 0) AndAlso

(TileBoard(Koordinat.X - If(Not IsHorizontal, (avb - i), 0), Koordinat.Y - If(IsHorizontal, (avb - i), 0)).Value = 127 And

Not TileBoard(Koordinat.X - If(Not IsHorizontal, (avb - i), 0), Koordinat.Y - If(IsHorizontal, (avb - i), 0)).IsBlocked) Then p.IsBlocked = True

TileYangDipegang(Array.IndexOf(Plye, p)).IsBlocked = True

TileBoard(Koordinat.X - If(Not IsHorizontal, (avb - i), 0), Koordinat.Y - If(IsHorizontal, (avb - i), 0)).Value = p.Value

Exit For Koordinat.X) + 1 < TileBoard.GetLength(0) Then

For i = avb + 1 To Solusi.Length - 1

'Letak Tile yang ada ditangan Player CPU ke papan permainan

For Each p In Plye

If Not p.IsBlocked Then

If (Solusi(i) = p.CharValue And If(IsHorizontal, Koordinat.Y, Koordinat.X) + (i - avb) < TileBoard.GetLength(0)) AndAlso

(TileBoard(Koordinat.X + If(Not IsHorizontal, i - avb, 0), Koordinat.Y + If(IsHorizontal, i - avb, 0)).Value = 127 And

Not TileBoard(Koordinat.X + If(Not IsHorizontal, i - avb, 0), Koordinat.Y + If(IsHorizontal, i - avb, 0)).IsBlocked) Then

p.IsBlocked = True

TileYangDipegang(Array.IndexOf(Plye, p)).IsBlocked = True

(26)

Exit For End If End If Next Next End If

(27)

(REZA HIDAYAT BAYU PRABOWO)

DATA PRIBADI

Nama Lengkap : Reza Hidayat Bayu Prabowo Nama Panggilan : Reza

Tempat/Tanggal Lahir: Labuhan Deli / 19 Januari 1991 Jenis Kelamin : Pria

Agama : Islam Warga Negara : Indonesia

Alamat : Jl. Seser No. 48, Medan

HP : 081534974535

E-mail : rh.bayu.prabowo@outlook.com Status : belum menikah

RIWAYAT PENDIDIKAN

Sekolah Menengah Atas

SMA Negeri 3 Medan 2005-2008

Sekolah Menengah Pertama

SMP Negeri 45 Medan 2002-2005

Sekolah Dasar

SD Negeri 066657 Medan 1996-2002

Programming: C++, C#, VB.Net Database : MySQL

IDE : Visual Studio 2015, Visual Studio Code Software : Ms. Office

(28)

PENGALAMAN KERJA

No Instansi/Lembaga Jabatan/Posisi Tahun

1 Freelancer Programmer 2013-2015

SEMINAR

No. Seminar Tahun

1 Seminar Demo Software dan Diskusi Panel Integrasi Agent Based Model

(ABM) dan Geographic Information System (GIS) 2011

(29)

DAFTAR PUSTAKA

Budiharto, W. 2012. Kecerdasan Buatan, Kini dan Akan Datang. (Online) http://socs.binus.ac.id/2012/06/06/mengenal-kecerdasan-buatan-kini-dan-akan-datang (15 November 2015).

Chen, M. 2008. A Greedy Algorithm with Forward-Looking Strategy. Greedy Algorithms. Witold Bednorz (Ed.). ISBN: 978-953-7619-27-5. InTech. (Online)

http://www.intechopen.com/books/greedy_algorithms/a_greedy_algorithm_ with_forward-looking_strategy (17 Oktober 2014)

Kristanto, A. 2004. Kecerdasan Buatan. Edisi Pertama. Yogyakarta : Graha Ilmu.

Kusumadewi, S. 2003. Artificial Intelligence. Edisi Pertama. Yogyakarta : Graha Ilmu

van Moorsel, C. 2014. Summy. (Online) http://www.cwali.nl/summy/summy.htm (15

November 2015)

Pawardita, B. 2015. Aplikasi Permainan Fill-In Numbers Pada Platform Android. Skripsi, Medan, Indonesia : Universitas Sumatera Utara.

Putra, A.G. 2014. Analisis Perbandingan Algoritma Greedy dan Brute Force dalam Pencarian Kartu Tertinggi Pada Kartu Remi. Skripsi, Medan, Indonesia : Universitas Sumatera Utara.

Putra, M.R. 2009. Penerapan Algoritma Greedy Dalam Permainan Congklak. Jurnal Teknik Informatika ITB. Hal. 1-2.

Simanjuntak, S.H. 2015. Penerapan Algoritma Greedy Pada Permainan Mill Berbasis Android. Skripsi, Medan, Indonesia : Universitas Sumatera Utara.

(30)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

Dalam bab ini akan dibahas mengenai analisis sistem dan perancangan aplikasi game Summy. Penulis mencoba membuat suatu aplikasi game Summy yang menerapkan kecerdasan buatan pada komputer yang akan dilawan. Penulis juga mencoba menjelaskan bagaimana cara kerja kecerdasan buatan pada game Summy. Dalam hal ini penulis menggunakan algoritma greedy.

3.1. Analisis Game Summy

Game Summy merupakan bentuk lain dari game Scrabble. Perbedaannya adalah pada game Scrabble pemain ditugaskan untuk mencari poin sebanyak-banyaknya dengan menyusun huruf-huruf menjadi bentuk kata dalam bahasa inggris, sedangkan pada game Summy pemain menyusun angka-angka dan operator aritmetika menjadi bentuk penjumlahan, pengurangan, perkalian, atau pembagian.

Gambar 3.1 Kotak-Kotak yang Disusun pada Game Summy

(31)

sebanyak 127 kotak. Kumpulan kotak-kotak ini akan disebut sebagai tumpukkan kotak. Tugas pemain adalah menyusun penjumlahan, pengurangan, perkalian

Berikut ini aturan game yang ditetapkan oleh penulis untuk game Summy: 1. Game dapat dimainkan oleh satu orang, namun pemain melawan komputer

sebagai lawan tanding.

2. Ukuran papan game 25 x 25 kotak.

3. Terdapat 127 kotak yang tersedia, yaitu terdiri dari: a. terdapat masing-masing 8 kotak untuk angka 0 – 9

b. terdapat masing-masing 7 kotak untuk operator numerik ‘+’, ‘-’, ‘x’

dan ‘:’

c. terdapat masing-masing 19 kotak untuk operator numerik ‘=

4. Pemain mencari poin sebanyak-banyaknya dengan menyusun secara horizontal atau vertikal bentuk penjumlahan, pengurangan, perkalian, atau pembagian dari kotak-kotak yang dimiliki oleh pemain dan sekurang-kurangnya satu kotak yang telah berada pada papan game sebelumnya. 5. Poin didapatkan dengan menjumlahkan semua digit angka pada kotak-kotak

yang menyusun bentuk penjumlahan, pengurangan, perkalian, atau pembagian.

6. Komputer memiliki batas waktu 5 menit bermain pada gilirannya 7. Pemain tidak memiliki batas waktu bermain pada gilirannya. 8. Urutan giliran awal main ditentukan secara acak pada awal game.

9. Setiap awal game semua kotak-kotak yang tersedia akan diacak dan kotak

‘=’ diambil dari tumpukkan kotak dan ditempatkan di tengah-tengah papan game.

10.Setiap pemain diberikan masing-masing delapan kotak yang dapat berisi angka, operator aritmetika, atau operator penugasan.

11.Pemain diberikan kesempatan menukar kotak yang dimilikinya dengan kotak yang berada pada tumpukan kotak sebanyak delapan kali pada saat gilirannya. Dan kotak yang akan ditukarkan akan dibuang.

(32)

13.Kotak-kotak milik pemain yang telah digunakan untuk membentuk penjumlahan, pengurangan, perkalian, atau pembagian yang valid tidak dapat digunakan lagi dan tetap berada pada papan game. Namun, akan digantikan dengan kotak-kotak yang baru yang diambil dari tumpukan kotak.

14.Game dinyatakan berakhir apabila tidak ada tumpukan kotak yang tersisa lagi dan pemain atau komputer tidak dapat lagi menyusun penjumlahan, pengurangan, perkalian, atau pembagian pada gilirannya sebanyak dua kali berturut-turut.

15.Pemain dinyatakan pemenang apabila mengumpulkan poin lebih banyak daripada komputer pada saat game dinyatakan berakhir.

Bentuk penjumlahan, pengurangan, perkalian, atau pembagian dapat dilihat pada Tabel 3.1

Tabel 3.1 Bentuk Penjumlahan, Pengurangan, Perkalian, atau Pembagian

Operator Bentuk Contoh

Penjumlahan ‘+’ N + N = N 32 + 12 = 44

Pengurangan ‘-’ N - N = N 10 – 5 = 5

Perkalian ‘x’ N x N = N 4 x 9 = 36

Pembagian ‘:’ N : N = N 18 : 3 = 6

3.2. Analisis Algoritma Greedy pada Game Summy

Pada game Summy yang dibangun, algoritma greedy digunakan oleh komputer (AI) untuk menyusun kotak-kotak miliknya agar membentuk penjumlahan, pengurangan, perkalian, atau pembagian dengan jumlah poin yang optimum. Adapun elemen-elemen greedy yang digunakan adalah sebagai berikut:

1. Himpunan Kandidat : himpunan permutasi dari kotak-kotak yang dimiliki komputer dan himpunan kotak acuan yang berada pada papan game.

2. Himpunan Solusi : himpunan bentuk penjumlahan, pengurangan, perkalian atau pembagian yang memiliki poin terbanyak optimum.

(33)

4. Fungsi kelayakan : memeriksa apakah bentuk penjumlahan, pengurangan, perkalian, atau pembagian yang dibentuk apakah sudah memenuhi syarat valid

5. Fungsi objektif : waktu minimum yang digunakan untuk membentuk penjumlahan, pengurangan, perkalian, atau pembagian.

Berikut ini merupakan sebuah sampel game yang telah ditentukan untuk dianalisis menggunakan algoritma greedy. Pada Gambar 3.2 terlihat set awal game Summy.

Gambar 3.2 Kotak Milik Komputer pada Set Awal Game Summy

Pada saat awal game pemain dan komputer akan mendapatkan masing-masing delapan kotak secara acak dari tumpukkan kotak. Dan pada tengah-tengah papan game

diletakkan kotak ‘=’ seperti yang terlihat pada Gambar 3.2. Berikut ini adalah contoh kasus pencarian solusi algoritma greedy pada game Summy.

(34)

himpunan kotak acuan pada tengah-tengah papan game: {‘=’} merupakan himpunan kandidat, sehingga himpunan kandidat: {‘2’, ‘3’, ‘1’, ‘:’, ‘4’, ‘=’,

‘x’, ‘+’, ‘=’}. Selanjutnya anggota himpunan kandidat akan dipisahkan berdasarkan apakah termasuk angka, operator aritmetika, atau operator penugasan, sehingga diperoleh hasil seperti pada Tabel 3.2.

Tabel 3.2 Pengelompokan Himpunan Kandidat Berdasarkan Tipe

Himpunan Kandidat ‘2’, ‘3’, ‘1’, ‘:’, ‘4’, ‘=’, ‘x’, ‘=’

Tipe

Numerik ‘2’, ‘3’, ‘1’, ‘4’

Operator ‘:’, ‘x’

Penugasan ‘=’, ‘=’

2. Langkah (2) dimulai dengan melakukan permutasi anggota himpunan numerik berturut-turut dari permutasi 3 dari n anggota sampai permutasi 1 dari n anggota numerik. Namun sebelum itu anggota numerik akan diurutkan terlebih dahulu dari yang terbesar ke yang terkecil. N={‘2’, ‘3’, ‘1’, ‘4’} akan diurutkan menjadi N={‘4’, ‘3’, ‘2’, ‘1’}. Hasil permutasinya dapat dilihat pada Tabel 3.3.

Tabel 3.3 Hasil Permutasi Himpunan Numerik (Menjadi Himpunan A)

Permutasi Hasil dari Permutasi N={‘4’, ‘3’,’2’,’1’} Banyak

3 dari 4

432 431 423 421 413 412 342 341 324 321 314 312 243 241 234 231 214 213 143 142 134 132 124 123

24

2 dari 4 43 42 41 34 32 31

24 23 21 14 13 12 12

1 dari 4 4 3 2 1 4

Total 40

(35)

3. Pada langkah (3) akan dimulai dengan memilih satu anggota A dari yang terbesar ke yang terkecil yang setiap digit elemennya akan dihapus dari himpunan numerik. Sebagai contoh ketika akan memilih ‘12’ anggota A ke-36

dari yang terbesar. Maka ‘1’, dan ‘2’ akan dihapus dari anggota himpunan

numerik, sehingga awalnya N = {‘4’, ‘3’,‘2’, ‘1’} menjadi N = {‘4’, ‘3’}. Lalu akan dilakukan permutasi anggota himpunan numerik berturut-turut dari permutasi 3 dari n anggota sampai permutasi 1 dari n anggota numerik. Hasil permutasinya dapat dilihat pada Tabel 3.4.

Tabel 3.4 Hasil Permutasi Himpunan Numerik (Menjadi Himpunan B)

Permutasi Hasil dari Permutasi N={‘4’, ‘3’} Banyak

3 dari 2 - -

2 dari 2 43 34 2

1 dari 2 4 3 2

Total 4

Pada Tabel 3.4 terlihat bahwa permutasi tidak dimulai dari permutasi 3 dari n jumlah anggota numerik karena anggotanya saat ini berjumlah lebih kecil dari 3. Permutasi 2 dari 2 anggota numerik saat ini adalah sebanyak 2. Permutasi 1 dari 2 anggota numerik saat ini adalah sebanyak 2. Total semuanya adalah sebanyak 4. Hasil permutasi tersebut selanjutnya akan disebut himpunan B. Sehingga B = {43, 34, 4, 3}

4. Jika pada langkah (3) tidak dapat dilakukan permutasi maka akan kembali ke langkah (2) dengan memilih anggota A selanjutnya.

5. Langkah (5) dimulai dengan memilih satu anggota B dari yang terbesar ke yang terkecil yang setiap digit elemennya akan dihapus dari himpunan numerik. Sebagai contoh ketika akan memilih ‘4’ anggota ke-3 dari yang terbesar. Maka

(36)

Tabel 3.5 Hasil Permutasi Himpunan Numerik (Menjadi Himpunan C)

Permutasi Hasil dari Permutasi N={‘3’} Banyak

3 dari 1 - -

2 dari 1 - -

1 dari 1 3 1

Total 1

Pada Tabel 3.5 terlihat bahwa permutasi tidak dimulai dari permutasi 3 maupun permutasi 2 dari n jumlah anggota numerik karena anggotanya saat ini berjumlah lebih kecil dari 2. Permutasi 1 dari 1 anggota numerik saat ini adalah sebanyak 1. Dan hasil permutasi tersebut selanjutnya akan disebut himpunan C. Sehingga C = {3}

6. Jika pada langkah (5) tidak dapat dilakukan permutasi maka akan kembali ke langkah (3) dengan memilih anggota B selanjutnya.

7. Jika himpunan A, B, dan C telah didapatkan maka langkah (7) akan membentuk penjumlahan, pengurangan, perkalian, atau pembagian dengan menggabungkan setiap anggota A, B, dan C dengan aturan seperti pada Tabel 3.1.

Tabel 3.6 Hasil Pembentukan Bentuk Perkalian dan Pembagian

A(36) Operator B(1) Penugasan C(1) Hasil Valid

12 ‘x’ 4 ‘=’ 3 12x4=3 Salah

12 ‘:’ 4 ‘=’ 3 12:4=4 Benar

Pada Tabel 3.6 terlihat bahwa setiap anggota yang terdapat pada himpunan operator akan dicoba untuk disusun untuk membentuk penjumlahan, pengurangan, perkalian, atau. Karena pada himpunan operator hanya terdapat

‘x’ atau ‘:’ maka hanya bisa dibentuk perkalian atau pembagian saja. Pada saat dicoba ‘x’ bentuk perkalian tersebut tidak valid karena hasil dari 12x4 adalah 48 bukan 3. Pada saat dicoba ‘:’ bentuk pembagian tersebut valid karena hasil 12:4 adalah 3.

(37)

secara horizontal atau vertikal pada papan game berdasarkan acuan kotak ‘=’ yang ada di tengah-tengah papan game seperti yang ditunjukkan Gambar 3.3

Gambar 3.3 Cek Papan Game

Pada Gambar 3.3 terlihat bahwa kotak ‘=’ yang merupakan salah satu anggota dari himpunan kandidat akan dijadikan acuan. Kotak ‘=’ akan dicek tetangga horizontalnya dan tetangga vertikalnya. Karena tetangga horizontal dan vertikal

(38)

Gambar 3.4 Kotak Milik Komputer Dicocokkan ke Papan Game

Gambar 3.5 Kotak Milik Komputer Setelah Diletakkan Pada Papan Game

(39)

3.3. Perancangan Sistem

Pada bagian ini penulis akan menguraikan Gambaran aplikasi yang akan dirancang dan sebagai tahapan persiapan dan pengimplementasian dengan XNA.

3.3.1. Flowchart Algoritma Greedy

Flowchart Algoritma Greedy yang diterapkan dalam game Summy menunjukkan proses evaluasi untuk menentukan bentuk penjumlahan, pengurangan, perkalian, atau pembagian yang terbaik yang mungkin didapatkan oleh komputer.

START

Input HimpunanKandidat

Declare variable: Numerik, Operator, A, B, C

Pisah HimpunanKandidat berdasarkan jenis numerik atau operator. Simpan hasilnya pada variabel Numerik atau Operator

Urutkan menurun Numerik

Permutasikan Numerik sebanyak 3 unsur + sebanyak 2 unsur + sebanyak 1 unsur.

Simpan hasilnya pada variabel A

i=0

i < Count(A) ?

Permutasikan Numerik yang telah dikurangi oleh elemen A(i) sebanyak 3 unsur + sebanyak

2 unsur + sebanyak 1 unsur. Simpan hasilnya pada variabel B

j=0

j < Count(B) ?

Permutasikan Numerik yang telah dikurangi oleh elemen A(i) dan B(j) sebanyak 3 unsur + sebanyak

2 unsur + sebanyak 1 unsur. Simpan hasilnya pada variabel C

(40)

k=0

Cek hasil TempSolusi ke papan per mainan. Sim pan hasil ny a pada variabel TempCek

Declare variabl e: Tem pCek

Gambar 3.7 Flowchart Algoritma Greedy pada Game Summy (Lanjutan)

3.3.2 Perancangan Aplikasi Game

(41)

Berikut ini adalah proses yang terjadi pada aplikasi game congklak yang dapat dilihat pada Gambar 3.8.

Start

Output Screen Main Menu

Menu Yang Terpilih ?

Output Screen Bantuan Output Screen

Tentang

Output Screen Main

End

Terpilih Keluar Terpilih Tentang Terpilih Bantuan Terpilih Main

Bermain SUMMY

Permainan berakhir

Output Pemenang

Main Lagi ?

Ya Tidak

Gambar 3.8 Flowchart Game Summy

3.3.3 Pemodelan Visual Menggunakan UML

(42)

aplikasi game secara eksternal dalam sebuah sistem. Berikut ini merupakan use case diagram pada game Summy.

Activity diagram adalah teknik untuk mendeskripsikan logika prosedural, proses bisnis dan aliran kerja dalam banyak kasus. Activity diagram mempunyai peran seperti halnya flowchart, akan tetapi perbedaannya dengan flowchart adalah activity diagram bisa mendukung perilaku paralel sedangkan flowchart tidak bisa. Penulis merancang use case aplikasi tersebut seperti pada Gambar 3.9.

Pengguna AI

Mulai Bermain

Melihat Tentang

Melihat Bantuan

Evaluasi Langkah Bermain <<include>>

<<extend>>

Gambar 3.9 Use Case Diagram Summy

Use Case Specification Mulai Bermain dapat dilihat pada Tabel 3.7.

Tabel 3.7 Use Case Spesification Mulai Bermain

Nama Use Case Mulai Bermain

Aktor Pemain

Deskripsi Use case ini berfungsi untuk memulai game Pre Condition Pemain memilih menu Mulai Bermain

Flow Of Events Kegiatan Aktor Respons Sistem

Pengguna menekan tombol Mulai Bermain pada halaman Menu Utama

Sistem menampilkan halaman Game

(43)

Activity Diagram untuk Mulai Bermain dapat dilihat pada Gambar 3.10.

Menekan tombol Mulai Bermain

Menampilkan halaman Permainan

Gambar 3.10 Activity Diagram Mulai Bermain

Use Case Specification Bermain dapat dilihat pada Tabel 3.8.

Tabel 3.8 Use Case Specification Bermain

Nama Use Case Bermain

Aktor Pemain

Deskripsi Use case ini berfungsi untuk memulai game dengan meletakkan kotak miliknya ke papan game Summy Pre Condition Papan game sudah ditampilkan di layar

Flow Of Events Kegiatan Aktor Respons Sistem

Pemain dan komputer mulai meletakkan kotak miliknya ke papan game

Sistem meng-update papan game

Post Condition Papan game Summy telah terisi kotak milik pemain dan game berlanjut

(44)

Pemain Meletakkan Kotak

Mengupdate papan permainan

Gambar 3.11 Activity Diagram Bermain

Use Case Specification Evaluasi Langkah dapat dilihat pada Tabel 3.9.

Tabel 3.9 Use Case Specification Evaluasi Langkah

Nama Use Case Evaluasi Langkah

Aktor AI

Deskripsi Use case ini berfungsi untuk mengevaluasi langkah AI yang akan dijalankan pada gilirannya.

Pre Condition Pemain telah meletakkan kotak-kotak miliknya Flow Of Events Kegiatan Aktor Respon Sistem

- AI mengecek papan game

- AI menyusun langkah yang mungkin

- AI memilih langkah dengan nilai terbesar - AI meletakkan

kotak-kotak miliknya

Sistem mengupdate papan game

Post Condition Papan game Summy telah terisi kotak milik AI dan game berlanjut

(45)

Cek Papan Permainan

Evaluasi Penyusunan Langkah

Memilih Bentuk Terbaik

Meletakkan Kotak Mengupdate Papan Permainan

Gambar 3.12 Activity Diagram Evaluasi Langkah

Use Case Specification Lihat Tentang dapat dilihat pada Tabel 3.10.

Tabel 3.10 Use Case Specification Lihat Tentang

Nama Use Case Lihat Tentang

Aktor Pemain

Deskripsi Use case ini berfungsi untuk melihat halaman tentang Pre Condition Pemain memilih menu Tentang pada halaman Menu

Utama

Flow Of Events Kegiatan Aktor Respons Sistem

Pemain menekan tombol Tentang pada halaman Menu Utama

- Menampilkan halaman Tentang

- Menutup halaman Tentang

Post Condition -

(46)

Menekan Tombol "Tentang"

Manampilkan halaman Tentang

Menekan Tombol "Back"

Menutup halaman Tentang

Gambar 3.13 Activity Diagram Lihat Tentang

Use Case Specification Lihat Bantuan dapat dilihat pada Tabel 3.11.

Tabel 3.11 Use Case Specification Lihat Bantuan

Nama Use Case Lihat Bantuan

Aktor Pemain

Deskripsi Use case ini berfungsi untuk melihat halaman bantuan dan tata cara bermain aplikasi Summy

Pre Condition Pemain memilih menu Bantuan pada halaman Menu Utama

Flow Of Events Kegiatan Aktor Respons Sistem

Pemain menekan tombol Bantuan pada halaman Menu Utama

- Menampilkan halaman Bantuan

- Menutup halaman Bantuan

Post Condition -

(47)

Menekan Tombol "Bantuan"

Manampilkan halaman Bantuan

Menekan Tombol "Back"

Menutup halaman Bantuan

Gambar 3.14 Activity Diagram Lihat Bantuan

3.4 Perancangan Transisi Halaman dan Antarmuka

Perancangan antarmuka dan transisi halaman aplikasi game merupakan tahap penting, karena akan menentukan interaksi yang akan dilakukan oleh pemain dengan aplikasi game ini.

3.4.1 Transisi Halaman

Transisi halaman merupakan pergantian halaman game dari satu halaman ke halaman lain pada layar. Transisi halaman terjadi sesaat setelah pemain menekan tombol yang tampak di layar.

(48)

Menu Utama Tentang

Permainan

Bantuan

Gambar 3.15 Transisi Halaman

3.4.2 Antarmuka

Berdasarkan transisi halaman pada Gambar 3.15, penulis membuat antarmuka dari empat halaman. Berikut ini adalah perancangan antarmuka tiap halaman yang digambarkan secara sederhana.

1. Halaman Menu Utama

Halaman ini adalah halaman yang pertama kali muncul saat aplikasi dijalankan. Pada halaman ini terdapat tulisan logo Summy dan beberapa tombol seperti tombol Mulai Bermain, tombol Bantuan, tombol Tentang, dan tombol Keluar. Berikut ini adalah rancangan antarmuka halaman Menu Utama seperti pada Gambar 3.16.

SUMMY

Mulai Bermain

Bantuan

Tentang

Keluar 1

2

3

4

5

(49)

Komponen yang digunakan pada rancangan pada Gambar 3.16 adalah: 1) Objek gambar (Sprite) yang digunakan sebagai judul game

2) Sprite yang digunakan sebagai tombol menu Main yang berfungsi untuk menampilkan halaman Main ketika diklik.

3) Sprite yang digunakan sebagai tombol menu Bantuan yang berfungsi untuk menampilkan halaman Bantuan ketika diklik.

4) Sprite yang digunakan sebagai tombol menu Tentang yang berfungsi untuk menampilkan halaman Tentang ketika diklik.

5) Sprite yang digunakan sebagai tombol menu Keluar yang berfungsi untuk keluar dari aplikasi ketika diklik.

2. Halaman Game

(50)

Papa n Pe rma inan

Gambar 3.17 Antarmuka Halaman Game

Komponen yang digunakan pada rancangan pada Gambar 3.17 adalah:

1) Sprite yang digunakan untuk menampilkan skor dan waktu yang telah dilalui oleh AI pada saat gilirannya bermain.

2) Sprite yang digunakan untuk menampilkan selot kotak-kotak milik AI. 3) Sprite yang digunakan untuk menampilkan langkah terbaik dan 8 langkah

terakhir yang dilakukan oleh AI.

4) Sprite yang digunakan untuk menampilkan berapa kotak-kotak yang tersisa dari tumpukkan kotak.

5) Sprite yang digunakan sebagai papan game. Kotak-kotak yang akan dimainkan akan disusun dan diletakkan pada Sprite ini.

6) Sprite yang digunakan untuk menampilkan selot kotak-kotak yang dimiliki oleh pemain dan dapat dipindahkan ke papan game maupun ditukarkan. 7) Sprite yang digunakan sebagai menu Remove / Swap untuk menukarkan

(51)

8) Sprite yang digunakan sebagai menu Cancel untuk mengembalikan kotak yang baru saja diletakkan pada papan game kembali ke selot pemain ketika diklik.

9) Sprite yang digunakan sebagai menu Next untuk mengakhiri giliran pemain ketika diklik.

10)Sprite yang digunakan sebagai menu Home untuk menghentikan permainan sementara dan menampilkan menu jika hendak kembali ke halaman Menu Utama ketika diklik.

11)Sprite yang digunakan untuk menampilkan langkah terbaik dan 8 langkah terakhir yang dilakukan pemain.

12)Sprite yang digunakan untuk menampilkan skor dan waktu yang telah dilalui oleh pemain pada saat gilirannya bermain.

3. Halaman Bantuan

Halaman ini berisi tentang tata cara bermain Summy dan aturan di dalam game Summy. Berikut ini adalah rancangan antarmuka halaman Bantuan seperti pada

Gambar 3.18.

Bantuan

Keluar 1

2

Gambar 3.18 Antarmuka Halaman Bantuan

Komponen yang digunakan pada rancangan pada Gambar 3.18 adalah:

(52)

2) Sprite yang digunakan untuk menu keluar dari halaman Bantuan ketika diklik.

4. Halaman Tentang

Halaman ini berisi tentang versi aplikasi game, informasi pembuat aplikasi, dan informasi sumber aset yang dipakai pada aplikasi. Berikut ini adalah rancangan antarmuka halaman Tentang seperti pada Gambar 3.19.

Tentang

Keluar 1

2

Gambar 3.19 Antarmuka Halaman Tentang

Komponen yang digunakan pada rancangan pada Gambar 3.19 adalah:

1) Sprite yang digunakan untuk menampilkan informasi pembuat aplikasi dan aset-aset yang digunakan dalam pembangunan aplikasi.

(53)

BAB IV

IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini akan dijelaskan implementasi dan pengujian sistem sesuai dengan analisis dan perancangan sistem pada bab sebelumnya. Penjelasan tentang implementasi sistem dilakukan untuk mengetahui hasil dari aplikasi yang dirancang dan pengujian sistem dilakukan untuk membuktikan jika aplikasi dapat berjalan baik.

4.1 Implementasi Sistem

Implementasi aplikasi game Summy dibuat menggunakan bahasa pemrograman VB.Net dengan menggunakan XNA Game Studio 4.0 sebagai game framework.

4.1.1 Spesifikasi Perangkat Lunak

Spesifikasi perangkat lunak yang digunakan untuk membangun dan menjalankan aplikasi adalah:

1. Windows 7 Ultimate 32-bit 2. Visual Studio 2015 Update 2 3. .Net Framework 4.0

4. XNA Game Studio 4.0 5. Corel Draw X7

4.1.2 Spesifikasi Perangkat Keras

Spesifikasi perangkat keras yang digunakan untuk membangun dan menjalankan aplikasi adalah :

1. Operating System : Windows 7 Ultimate 32-bit SP1

2. CPU : Intel Mobile Core 2 Duo T5870 @ 2.00GHz

3. RAM : 2,00GB

(54)

5. Graphics : Generic PnP Monitor (1366x768@62Hz) 512MB NVIDIA GeForce G102M

6. Storage : 232GB Seagate ST9250315AS ATA Device

4.2 Tampilan Aplikasi

4.2.1 Tampilan Halaman Menu Utama

Sesuai dengan perancangan aplikasi game sebelumnya, tampilan antarmuka halaman menu utama pada game Summy dapat dilihat pada Gambar 4.1. Halaman antarmuka ini akan muncul pertama kali saat aplikasi game dijalankan. Pada halaman ini ditampilkan menu-menu yang dapat dipilih oleh pemain yaitu menu Main untuk memulai game, menu Bantuan untuk melihat panduan bermain, menu Tentang untuk melihat info aplikasi, dan menu Keluar untuk menutup aplikasi game.

Gambar 4.1 Halaman Menu Utama

4.2.2 Tampilan Halaman Game

(55)

sisa kotak yang tersisa dari 127 kotak yang tersedia, kotak-kotak yang dimiliki pemain dan komputer, dan menu-menu yang dapat dipilih pemain, yaitu menu Next untuk mengakhiri giliran pemain, Cancel untuk mengembalikan kotak-kotak yang pernah diletakkan pemain pada papan game kembali ke selot kotak miliknya, Swap/Delete untuk menukar satu kotak milik pemain dengan yang ada pada sisa tumpukkan kotak, dan Home untuk kembali ke halaman menu utama.

Gambar 4.2 Halaman Game

Gambar 4.3 merupakan tampilan ketika pemain sedang bermain pada gilirannya. Pemain meletakkan kotak miliknya ke papan game dengan cara drag and drop. Setelah pemain meletakkan kotak-kotak miliknya dan merupakan bentuk valid, pemain dapat memilih menu Next untuk mengakhiri gilirannya.

(56)

Gambar 4.4 merupakan tampilan pada saat komputer telah berhasil memilih bentuk terbaik dengan algoritma greedy. Setelah itu komputer akan mengakhiri gilirannya dan game berlanjut dengan giliran pemain.

Gambar 4.4 Komputer Telah Memilih Bentuk Terbaik dengan Algoritma Greedy

Gambar 4.5 merupakan tampilan saat game telah berakhir dan komputer telah mengalahkan pemain. Pemain mendapatkan pilihan untuk memulai ulang game atau kembali ke halaman menu utama.

(57)

4.2.3 Tampilan Halaman Bantuan

Halaman Bantuan berisi tentang aturan dan cara bermain game Summy. Tampilan halaman bantuan dapat dilihat pada Gambar 4.6.

Gambar 4.6 Halaman Bantuan

4.2.4 Tampilan Halaman Tentang

Halaman ini berisi tentang informasi tentang pengembang aplikasi dan aset yang digunakan dalam aplikasi game. Tampilan halaman tentang dapat dilihat pada Gambar 4.7.

(58)

4.3 Pengujian Sistem

Pengujian aplikasi merupakan proses evaluasi aplikasi yang bertujuan untuk mengetahui apakah aplikasi yang dibangun telah memenuhi tujuan atau kebutuhan yang telah ditentukan. Pengujian yang dilakukan pada aplikasi game Summy adalah dengan membandingkan hasil eksekusi aplikasi dengan hasil yang diharapkan pada masing-masing sasaran pengujian.

Pada tahap pengujian ini dilakukan evaluasi pada setiap proses dalam aplikasi Summy. Metode yang digunakan pada tahap pengujian ini adalah metode black box. Dengan metode black box pengujian hanya dilakukan pada representasi sistem yang terlihat tanpa perlu mengetahui bagaimana cara kerja sistem tersebut.

Dengan metode black box hasil eksekusi akan dibandingkan dengan hasil yang diharapkan. Bila hasil eksekusi sesuai dengan yang diharapkan, maka aplikasi dianggap berhasil. Sebaliknya jika hasil eksekusi tidak sesuai dengan hasil yang diharapkan maka diperlukan perbaikan pada aplikasi.

Hasil pengujian yang telah dilakukan dengan menggunakan metode black box dapat dilihat pada Lampiran A.

(59)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan yang dapat diambil berdasarkan pembahasan pada bab-bab sebelumnya adalah sebagai berikut:

1. Algoritma greedy dapat diterapkan dalam menemukan langkah terbaik pada permainan Summy yaitu pemilihan bentuk penjumlahan, pengurangan, perkalian atau pembagian dengan skor terbaik oleh AI.

2. Jika kotak-kotak pada papan permainan semakin banyak, maka algoritma greedy akan membutuhkan waktu yang lebih lama untuk menemukan langkah terbaik.

3. Penerapan komputasi paralel pada algoritma greedy akan jauh meningkatkan waktu pencarian langkah terbaik dibandingkan dengan tidak menerapkan komputasi paralel.

4. Waktu tercepat algoritma greedy untuk menemukan langkah terbaik jika hanya dicari dari 8 kotak yang tersedia adalah sekitar 0.017 detik sedangkan waktu terlama adalah 0.283 detik.

5. Aplikasi akan tetap berjalan pada resolusi kurang atau lebih dari 1366 x 768 pixel, namun tampilan tidak akan maksimal.

5.2 Saran

Beberapa saran yang dapat penulis berikan untuk pengembangan selanjutnya antara lain:

1. Menambahkan fitur multiplayer online pada aplikasi game Summy sehingga dapat dimainkan melawan pemain lain.

(60)

3. Membuat antarmuka yang lebih menarik dengan animasi yang lebih baik. 4. Menambahkan suara dan lagu tema agar aplikasi jauh lebih menarik.

5. Menggunakan algoritma yang lebih baik dan lebih efisien dalam pencarian langkah terbaik dibandingkan dengan algoritma greedy.

(61)

BAB II

LANDASAN TEORI

2.1. Kecerdasan Buatan

Kecerdasan buatan atau Artificial Intelligence (AI) adalah suatu bidang ilmu yang mempelajari tentang bagaimana membangun sistem komputer yang menerapkan kecerdasan dalam beberapa cara. Kecerdasan buatan telah banyak menghasilkan banyak terobosan dalam ilmu komputer. Banyak topik penelitian dalam ilmu komputer hari ini merupakan hasil dari penelitian tentang kecerdasan buatan. Sebagai contoh, jaringan saraf tiruan, komputasi evolusioner, machine learning, natural language processing, pemrograman berorientasi objek, dan lainnya. Dalam banyak kasus, fokus utama dari topik penelitian ini bukan lagi pengembangan kecerdasan buatan, mereka menjadi disiplin ilmu sendiri, dan pada beberapa kasus, bukan lagi berhubungan dengan kecerdasan buatan. Kecerdasan buatan sendiri terus berkembang menciptakan terobosan baru yang masih dibutuhkan (Teahan, 2010).

Kecerdasan buatan merupakan bagian dari ilmu pengetahuan komputer yang khusus ditujukan dalam perancangan otomatisasi tingkah laku cerdas dalam sistem kecerdasan komputer. Sistem memperlihatkan sifat-sifat khas yang dihubungkan dengan kecerdasan dalam kelakuan atau tindak-tanduk yang sepenuhnya bisa menirukan beberapa fungsi otak manusia, seperti pengertian bahasa, pengetahuan, pemikiran, pemecahan masalah dan lain-lain (Kristianto, 2004).

(62)

membekali komputer dengan kedua komponen tersebut agar komputer bisa menjadi mesin yang pintar. Lebih detailnya, pengertian kecerdasan buatan dapat dipandang dari berbagai sudut pandang, antara lain:

1. Sudut pandang kecerdasan.

Kecerdasan Buatan akan membuat mesin menjadi ‘cerdas’ (mampu berbuat seperti apa yang dilakukan oleh manusia).

2. Sudut pandang penelitian.

Kecerdasan Buatan adalah suatu studi bagaimana membuat agar komputer dapat melakukan sesuatu sebaik yang dikerjakan oleh manusia. Domain yang sering dibahas oleh para peneliti meliputi:

a. Mundane task

- Persepsi (vision & speech).

- Bahasa alami (understanding, generation & translation). - Pemikiran yang bersifat commonsense.

- Robot control. b. Formal task

- Permainan/games.

- Matematika (geometri, logika, kalkulus integral, pembuktian). c. Expert task

- Analisis finansial. - Analisis medikal.

- Analisis ilmu pengetahuan.

- Rekayasa (desain, pencarian kegagalan, perencanaan manufaktur). 3. Sudut pandang bisnis.

Kecerdasan buatan adalah kumpulan peralatan yang sangat powerful dan metodologis dalam menyelesaikan masalah-masalah bisnis.

4. Sudut pandang pemrograman.

Kecerdasan buatan meliputi studi tentang pemrograman simbolik, penyelesaian masalah (problem solving) dan pencarian (searching). Untuk melakukan aplikasi kecerdasan buatan ada 2 bagian utama yang sangat dibutuhkan (Gambar 2.1), yaitu:

(63)

b. Motor Inferensi (Inference Engine), yaitu kemampuan menarik kesimpulan berdasarkan pengalaman.

Gambar 2.1 Penerapan Konsep Kecerdasan Buatan di Komputer

Kecerdasan buatan tidak hanya dominan di bidang ilmu komputer (informatika), namun juga sudah merambah di berbagai disiplin ilmu yang lain. Interseksi antara psikologi dan kecerdasan buatan melahirkan sebuah area yang dikenal dengan nama cognition & psycolinguistics. Interseksi antara teknik elektro dengan kecerdasan buatan melahirkan berbagai ilmu seperti: pengolahan citra, teori kendali, pengenalan pola dan robotika.

Secara garis besar bidang ilmu yang dipelajari dalam bidang AI bisa dilihat pada Gambar 2.2 berikut ini :

Gambar 2.2 Domain Area

Basis

Pengetahuan

Motor

Inferensi Input:

masalah,

pertanyaan,

Output:

jawaban,

solusi,

(64)

1. Natural Language Processing (NLP)

NLP mempelajari bagaimana bahasa alami itu diolah sedemikian hingga user dapat berkomunikasi dengan komputer. Konsentrasi ilmu ini adalah interaksi antara komputer dengan bahasa natural yang digunakan manusia, yakni bagaimana komputer melakukan ekstraksi informasi dari input yang berupa natural language dan atau menghasilkan output yang juga berupa natural language.

2. Computer Vision

Cabang ilmu ini erat kaitannya dengan pembangunan arti/makna dari image ke obyek secara fisik. Yang dibutuhkan di dalamnya adalah metode-metode untuk memperoleh, melakukan proses, menganalisis dan memahami image. Apabila cabang ilmu ini dikombinasikan dengan Artificial Intelligence secara umum akan mampu menghasilkan sebuah visual intelligence system.

3. Robotika dan Sistem Navigasi

Bidang ilmu inilah yang mempelajari bagaimana merancang robot yang berguna bagi industri dan mampu membantu manusia, bahkan yang nantinya bisa menggantikan fungsi manusia. Robot mampu melakukan beberapa task dengan berinteraksi dengan lingkungan sekitar. Untuk melakukan hal tersebut, robot diperlengkapi dengan actuator seperti lengan, roda, kaki, dll.

4. Game Playing

Game biasanya memiliki karakter yang dikontrol oleh user, dan karakter lawan yang dikontrol oleh game itu sendiri. Di mana kita harus merancang aturan-aturan yang nantinya akan dikerjakan oleh karakter lawan. Game akan menjadi menarik apabila karakter lawan (non-player) bereaksi dengan baik terhadap apa yang dilakukan oleh player. Hal ini akan memancing penasaran user dan membuat game menarik untuk dimainkan. Tujuan intinya adalah membuat non-player memiliki strategi yang cerdas untuk mengalahkan non-player. Pada bidang ini, AI dibutuhkan, yaitu untuk merancang dan menghasilkan game yang fun serta antarmuka antara man-machine yang cerdas dan menarik untuk dimainkan. 5. Sistem Pakar

(65)

Dengan sistem ini, permasalahan yang seharusnya hanya bisa diselesaikan oleh para pakar/ahli, dapat diselesaikan oleh orang biasa/awam. Sedangkan, untuk para ahli, sistem pakar juga akan membantu aktivitas mereka sebagai asisten yang seolah-olah sudah mempunyai banyak pengalaman (Budiharto, 2012).

2.2. Algoritma Greedy

Algoritma greedy merupakan metode yang paling populer untuk memecahkan masalah optimasi. Secara harfiah, greedy berarti tamak atau rakus. Prinsip dari algoritma greedy adalah mengambil setiap kesempatan yang ada saat itu juga, tanpa memperhatikan konsekuensi ke depannya.

Algoritma greedy tidak selalu memperoleh solusi optimum untuk keseluruhan permasalahan yang ditangani, dikarenakan algoritma greedy tidak melakukan operasi secara exhaustive kepada semua data, dan sering kali tidak mementingkan solusi optimum global. Akan tetapi, algoritma greedy merupakan solusi yang baik digunakan dikarenakan algoritma greedy bekerja dengan cepat dan sering memberikan perkiraan nilai optimum yang baik di setiap langkahnya. Dan tidak jarang dapat menghasilkan solusi optimum global pada suatu permasalahan dari pengambilan solusi optimum lokal di setiap langkahnya. Akan tetapi algoritma greedy cukup kuat dan bekerja dengan baik untuk berbagai masalah (Putra, 2009).

Elemen-elemen algoritma greedy dalam persoalan optimasi adalah sebagai berikut:

1. Himpunan kandidat.

Himpunan ini berisi elemen-elemen pembentuk solusi. 2. Himpunan solusi.

Himpunan ini berisi kandidat-kandidat yang terpilih sebagai solusi persoalan. Himpunan solusi merupakan himpunan bagian dari himpunan kandidat.

3. Fungsi seleksi.

Fungsi seleksi dinyatakan sebagai predikat seleksi merupakan fungsi yang pada setiap langkah memilih kandidat yang paling mungkin untuk mendapatkan solusi optimal.

(66)

Fungsi kelayakan dinyatakan sebagai predikat layak merupakan fungsi yang memeriksa apakah suatu kandidat yang dipilih dapat memberikan solusi yang layak, yaitu kandidat tersebut tidak melanggar aturan yang ada. 5. Fungsi objektif.

Fungsi objektif merupakan fungsi yang memaksimumkan atau meminimalkan nilai solusi.

Pseudo-code algoritma greedy adalah sebagai berikut (Chen, 2008) :

Procedure Greedy (partial solution S, sub-problem P) Begin

return the quality of the resulting complete solution; End

2.3. Permainan (Game)

Games merupakan salah satu bidang terapan dalam kecerdasan buatan. Penyelesaian games dilakukan dengan cara menelusuri pohon permainan (game tree). Pohon permainan adalah sebuah graf yang memperlihatkan semua kemungkinan keadaan dalam permainan yang dilakukan oleh pemain. Pohon permainan melukiskan node dan jalan yang mengarah dari keadaan awal menuju tujuan atau keadaan saat game dimenangkan.

Ada beberapa alasan mengapa games merupakan domain yang baik untuk dieksplor dalam bidang kecerdasan buatan (Kusumadewi, 2003), yaitu :

1. Sangat mudah untuk menentukan ukuran kesuksesan dan kegagalannya (menang atau kalah).

2. Tidak membutuhkan terlalu banyak pengetahuan. Permainan dapat diselesaikan dengan melakukan pencarian dari arah start sampai posisi menang.

3. Ruang keadaannya mudah direpresentasikan.

(67)

5. Sebagian besar game dapat dimodelkan dengan mudah.

6. Sangat mungkin untuk dibandingkan dengan kemampuan manusia.

2.4. Game Summy

Summy merupakan sebuah board game yang dibuat oleh Cwali (Corné van Moorsel) dan merupakan sejenis game Scrable untuk penjumlahan, pengurangan, perkalian atau pembagian. Pemain akan mendapatkan poin dengan membuat penjumlahan, pengurangan, perkalian atau pembagian pada gilirannya. Penjumlahan, pengurangan, perkalian atau pembagian ini dibuat dengan menyusun angka dan operator numerik pada papan permainan. Pemain hanya dapat membuat penjumlahan, pengurangan, perkalian atau pembagian yang valid untuk memperoleh poin dengan kotak yang mereka miliki dan dikombinasikan dengan kotak yang telah ada pada papan permainan. Pemain tidak dapat memindahkan kotak yang telah ada pada papan permainan (Moorsel, 2014).

Gambar 2.3 Game Summy

Berikut ini merupakan penjumlahan, pengurangan, perkalian atau pembagian yang valid pada game Summy :

1. Harus terdapat satu ‘=’ pada setiap penjumlahan, pengurangan, perkalian atau pembagian.

(68)

4. Sebuah bilangan yang terdiri lebih dari dua digit angka tidak boleh diawali

dengan ‘0’

5. Dalam satu penjumlahan, pengurangan, perkalian atau pembagian bisa terdapat beberapa operator aritmetika pada setiap di antara dua angka. 6. Operator perkalian dan pembagian lebih dahulu diutamakan daripada

operator penambahan dan pengurangan.

7. Perkalian dan pembagian dijalankan sesuai urutan pembacaan, begitu pula dengan penambahan dan pengurangan.

Gambar 2.4 Penjumlahan, Pengurangan, Perkalian atau Pembagian Valid pada

Summy

Untuk menghitung poin pada game Summy dapat dilakukan dengan menjumlahkan semua digit (0-9) dari penjumlahan, pengurangan, perkalian atau pembagian valid yang dilakukan. Poin dari penjumlahan, pengurangan, perkalian atau pembagian valid tersebut diperoleh dari digit kotak yang pemain letakkan dan semua kotak yang telah ada pada papan permainan. Untuk lebih jelas dapat dilihat pada Gambar 2.5.

(69)

2.6. Penelitian Terdahulu

Penelitian mengenai aplikasi game Summy sebelumnya belum ada, karena game ini merupakan varian dari game Scrabble dan tidak dikenal luas. Namun beberapa penelitian yang pernah dilakukan berkaitan dengan menyelesaikan permasalahan dari suatu game (permainan) dengan menggunakan algotitma greedy antara lain untuk permainan Mill (Simanjuntak, 2015), permainan Kartu Remi (Putra, 2014) dan permainan Fill-In Number (Pawardita, 2015).

Tabel 2.1 Penelitian Terdahulu

No. Nama Judul Penelitian Ringkasan

1 Simanjuntak, 2015

Penerapan Algoritma Greedy Pada

Permainan Mill Berbasis Android

(70)

Tabel 2.2 Penelitian Terdahulu (Lanjutan)

2 Putra, 2014 Analisis Perbandingan Algoritma Greedy Dan Brute Force Dalam Percarian Kartu Tertinggi Pada Kartu Remi

Pada penelitian ini algoritma greedy digunakan pada pencarian kartu

Sedangkan pada corak dimulai dai sekop, hati, keriting dan wajik.

3 Pawardita, 2015

Aplikasi Permainan Fill-In Numbers Pada Platform Android

Pada penelitian ini algoritma greedy digunakan pada pencarian solusi pada permainan Fill-In Number. Fill-In Numbers dikenal juga sebagai crusadex atau cruzadex ini

merupakan suatu permainan puzzle dari varian teka-teki silang

(71)

BAB I

PENDAHULUAN

1.1. Latar Belakang

Permainan atau sering disebut game merupakan sebuah sarana hiburan atau rekreasi yang diminati dan dimainkan oleh banyak mulai dari kalangan anak-anak, remaja, hingga dewasa dengan tujuan bersenang-senang, mengisi waktu luang maupun sebagai olahraga. Dalam pembagian kategori game terdapat 5 jenis kategori, yaitu, Board Game, Card Game, Athetic Game, Children Game, dan Computer Game.

Summy adalah sebuah board game yang diciptakan oleh Corné van Moorse dan merupakan varian dari game Scrabble untuk penjumlahan, pengurangan, perkalian atau pembagian angka-angka. Summy dapat dimainkan oleh dua pemain. Pemain mendapatkan poin dengan membuat penjumlahan, pengurangan, perkalian atau pembagian pada gilirannya. Pemain hanya dapat membuat sebuah penjumlahan, pengurangan, perkalian atau pembagian hanya dengan kotak (block) miliknya yang dikombinasikan dengan kotak lain yang telah ada pada papan game. Penjumlahan, pengurangan, perkalian atau pembagian harus lengkap dan pemain tidak dapat mengambil kembali atau memindahkan kotaknya dari papan game. Setelah giliran pemain usai, pemain mendapatkan kotak-kotak baru secara acak untuk dimainkan kembali.

Kecerdasan buatan merupakan bagian bidang ilmu yang dapat menirukan tingkah laku dan fungsi otak manusia. Hal ini menyebabkan lahirnya berbagai teknologi yang dapat dikatakan bersifat cerdas, khususnya pada perkembangan computer game. Untuk itu, penulis tertarik untuk merancang dan membangun aplikasi dari board game Summy. Game ini dapat dimainkan oleh dua pemain yang salah satu pemainnya adalah

(72)

sementara ini dikenal dengan istilah local maximum. Pada kebanyakan kasus, algoritma Greedy tidak akan menghasilkan solusi paling optimal, begitu pun algoritma Greedy biasanya memberikan solusi yang mendekati nilai optimum dalam waktu yang cukup cepat.

Berdasarkan pemahaman singkat yang telah diberikan, maka penulis ingin

melakukan suatu penelitian yang berjudul “IMPLEMENTASI ALGORITMA GREEDY PADA GAME SUMMY”.

1.2. Rumusan Masalah

Berdasarkan latar belakang yang telah dikemukakan sebelumnya, maka yang menjadi rumusan masalah pada penelitian ini yaitu bagaimana mengimplementasikan algoritma Greedy sebagai kecerdasan buatan pada game Summy.

1.3. Batasan Penelitian

Batasan masalah yang menjadi acuan dalam pengerjaan skripsi ini adalah sebagai berikut:

1. Algoritma Greedy sebagai agen kecerdasan buatan.

2. Bilangan pembentuk penjumlahan, pengurangan, perkalian atau pembagian disusun maksimal 3 digit angka.

3. Agen kecerdasan buatan hanya dapat menggunakan satu operator numerik (‘+’,

‘-’, ‘:’ atau ‘x’) untuk menyusun penjumlahan, pengurangan, perkalian atau

pembagian.

4. Papan game berukuran 25 x 25 kotak.

5. Game dapat dimainkan oleh 2 pemain, yaitu seorang pengguna dan sebuah agen kecerdasan buatan.

6. Terdapat 127 kotak dari kumpulan angka dan operator numerik pada game ini, yang terdiri dari :

a. terdapat masing-masing 8 kotak untuk angka 0 - 9

b. terdapat masing-masing 7 kotak untuk operator numerik ‘+’, ‘-’, ‘:’ dan ‘x’ c. terdapat masing-masing 19 kotak untuk operator numerik ‘=’

(73)

1.4. Tujuan Penelitian

Tujuan dari penelitian ini adalah sebagai berikut :

1. Menerapkan algoritma Greedy pada game Summy untuk mendapatkan langkah terbaik yang dilakukan agen kecerdasan buatan.

2. Untuk mengimplementasikan game Summy dalam bentuk computer game.

1.5. Manfaat Penelitian

Manfaat dari penelitian ini diharapkan dapat membangun perangkat lunak game Summy yang mengimplementasikan algoritma Greedy sebagai agen kecerdasan buatan, sehingga pemain mendapatkan lawan bermain.

1.6. Metode Penelitian

Tahapan yang dilakukan dalam penelitian ini adalah: 1. Studi Literatur

Penulisan tugas akhir ini di awali dengan melakukan pembelajaran literatur pada sejumlah buku, artikel, paper, jurnal, makalah, maupun situs internet mengenai konsep kecerdasan buatan, algoritma Greedy, game Summy, pembuatan aplikasi dengan VB.Net dan XNA Framework dan referensi lain yang berkaitan dengan penelitian ini.

2. Analisis dan Perancangan Sistem

Pada tahap ini dilakukan analisis mengenai cara bermain Summy dan bagaimana solusi penyelesaiannya dengan menerapkan Algoritma Greedy dan dilakukan perancangan aplikasi game mengenai tugas akhir ini, seperti: penggambaran flowchart, perancangan aplikasi, dan perancangan antarmuka (interface). 3. Implementasi Sistem

Pada tahap ini akan dilakukan pengkodean dan menerapkan perancangan aplikasinya tersebut ke dalam bahasa pemrograman VB.Net dan XNA Framework.

(74)

Dalam tahap ini dilakukan pengujian terhadap aplikasi game Summy yang telah dibangun untuk menguji apakah semuanya telah bekerja sesuai dengan tujuan yang diinginkan.

5. Dokumentasi

Dalam tahapan ini akan dilakukan penulisan laporan mengenai aplikasi tersebut untuk menunjukkan hasil penelitian ini.

1.7. Sistematika Penulisan

Untuk membuat penulisan lebih terstruktur, maka penulisan ini dibagi menjadi lima bab, yaitu sebagai berikut :

BAB 1 : PENDAHULUAN

Pada bab ini membahas tentang latar belakang masalah, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Pada bab ini membahas tentang teori yang berhubungan dengan penelitian, di antaranya tentang kecerdasan buatan, algoritma Greedy, game Summy, dan teori lainnya yang berkaitan.

BAB 3 : ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini membahas tentang analisis algoritma Greedy untuk pencarian langkah terbaik AI dan perancangan aplikasi pada game Summy.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini membahas tentang implementasi dari analisis yang dilakukan dan pengujian terhadap aplikasi.

BAB 5 : KESIMPULAN DAN SARAN

(75)

ABSTRAK

Summy adalah sebuah board game yang diciptakan oleh Corné van Moorse dan merupakan varian dari game Scrabble. Game ini dapat dimainkan oleh dua orang pemain atau lebih dengan menyusun angka-angka dan operator aritmatika menjadi bentuk penjumlahan, pengurangan, perkalian, atau pembagian. Dan setiap pemain akan mendapatkan poin berdasarkan jumlah total angka-angka yang digunakan pada saat membentuk penjumlahan, pengurangan, perkalian, atau pembagian yang valid pada setiap gilirannya. Tujuan penelitian ini adalah membangun sebuah agen kecerdasan buatan yang dapat menyusun angka-angka dan operator aritmatika menjadi bentuk penjumlahan, pengurangan, perkalian, atau pembagian dengan jumlah poin maksimum pada setiap gilirannya sebagai lawan tanding pemain dalam bentuk computer game. Metodologi yang digunakan yaitu algoritma greedy yang merupakan algoritma yang menggunakan pendekatan penyelesaian masalah dengan mencari nilai maksimum pada setiap langkahnya tanpa memedulikan konsekuensi pada langkah selanjutnya. Hasil yang diperoleh dari computer game yang dibangun adalah penerapan algoritma greedy dalam membangun agen kecerdasan buatan dapat memberikan lawan tanding yang cukup kompetitif bagi pemain.

(76)

THE IMPLEMENTATION OF GREEDY ALGORITHM IN SUMMY GAME

ABSTRACT

Summy is a board game created by Corné van Moorse and is a variant of the game Scrabble. This game can be played by two or more persons by compiling the numbers and arithmetic operators into the shape of addition, subtraction, multiplication, or division. And each player will earn points based on the total number of figures used at the time of forming addition, subtraction, multiplication, or division valid at every turn. The purpose of this research is to build an artificial intelligence agent who could arrange the numbers and arithmetic operators to form the summing, subtraction, multiplication, or division with the maximum number of points on each turn as a rival in the form of computer game players. The methodology used is the greedy algorithm is an algorithm that uses a problem-solving approach to find the maximum value at every step of ignoring the consequences for the next step. The results of the computer game built greedy algorithm is the application of artificial intelligence in the build agent can provide sufficient competitive opponent for the player.

(77)

SKRIPSI

REZA HIDAYAT BAYU PRABOWO

091401068

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(78)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah

Sarjana Ilmu Komputer

REZA HIDAYAT BAYU PRABOWO

091401068

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(79)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA GREEDY PADA GAME SUMMY

Kategori : SKRIPSI

Nama : REZA HIDAYAT BAYU PRABOWO

Nomor Induk Mahasiswa : 091401068

Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Siti Dara Fadilla, S.Si, M.T Dr. Syahril Efendi, S.Si, M.IT NIP. 197705162005012001 NIP. 196711101996021001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(80)

PERNYATAAN

IMPLEMENTASI ALGORITMA GREEDY PADA GAME SUMMY

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 24 Januari 2017

Gambar

Gambar 3.1 Kotak-Kotak yang Disusun pada Game Summy
Gambar 3.2 Kotak Milik Komputer pada Set Awal Game Summy
Gambar 3.3 Cek Papan Game
Gambar 3.4 Kotak Milik Komputer Dicocokkan ke Papan Game
+7

Referensi

Dokumen terkait

Tabel 2.2 Penelitian Terdahulu (Lanjutan) 14 Tabel 3.1 Bentuk Penjumlahan, Pengurangan, Perkalian, atau Pembagian 17 Tabel 3.2 Pengelompokan Himpunan Kandidat Berdasarkan Tipe

yang diperoleh dari computer game yang dibangun adalah penerapan algoritma greedy. dalam membangun agen kecerdasan buatan dapat memberikan lawan tanding

Analisis Perbandingan Algoritma Greedy dan Brute Force dalam Pencarian Kartu Tertinggi Pada Kartu Remi.. Skripsi, Medan, Indonesia : Universitas

Komputer gagal menemukan solusi pada saat gilirannya Aplikasi dapat menampilkan informasi jika kesempatan skip miliknya telah berkurang 1 kali dan giliran permainan

Pada gambar 7 scene menu Drag n Drop Puzzle adalah scene dimana dimana pemain harus mencocokan potongan gambar dengan cara menarik potongan menggunakan cursor mouse

Dengan strategi greedy by price, maka manajer melakukan penjualan untuk pemain yang memiliki harga paling besar, yaitu dalam hal ini adalah Gilar dengan nilai harga

 Jika pemain pertama yang diberi pertanyaan tidak memiliki jawaban (tidak ada kartu evidence yang cocok dengan pertanyaan) tanyakan kepada pemain selanjutnya disebelah

Pada gambar 7 scene menu Drag n Drop Puzzle adalah scene dimana dimana pemain harus mencocokan potongan gambar dengan cara menarik potongan menggunakan cursor mouse