PENERAPAN ALGORITMA
GREEDY
PADA PERMAINAN
MILL BERBASIS
ANDROID
SKRIPSI
SUANDO H SIMANJUNTAK
091402035
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
PENERAPAN ALGORITMA
GREEDY
PADA PERMAINAN MILL
BERBASIS
ANDROID
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
ii
PERSETUJUAN
Judul : PENERAPAN ALGORITMA GREEDY PADA
PERMAINAN MILL BERBASIS ANDROID
Kategori : SKRIPSI
Nama : SUANDO H SIMANJUNTAK
Nomor Induk Mahasiswa : 091402035
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI Diluluskan di
Medan, Februari 2015
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
PERNYATAAN
PENERAPAN ALGORITMA GREEDY PADA PERMAINAN MILL BERBASIS ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Februari 2015
iv
UCAPAN TERIMA KASIH
Segala puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas segala berkat dan pengasihanNya yang sungguh berlimpah, sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
Penyelesaian skripsi ini tidak terlepas dari bantuan dari berbagai pihak, untuk itu, penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:
1. Kedua orangtua penulis yang telah memberikan dukungan moril dan spiritual, terlebih ayah penulis, Theo Simanjuntak, SE., MM. (+) yang terlebih dahulu meninggalkan dunia saat masa akhir perkuliahan penulis. Penulis juga mengucapkan terima kasih untuk ibu penulis, Rony Herawati Siahaan yang selalu sabar dalam membesarkan dan mendidik penulis hingga saat ini.
2. Ibu Dr. Erna Budhiarti Nababan, M.IT dan Ibu Maya Silvi Lydia, B.Sc., M.Sc selaku pembimbing yang telah banyak meluangkan waktu dan pikirannya, memotivasi dan memberikan kritik dan saran kepada penulis.
3. Bapak Dedy Arisandi, ST., M.Kom dan Bapak Baihaqi Siregar, S.Si., M.T yang telah bersedia menjadi dosen pembanding yang telah memberikan kritik dan saran kepada penulis.
4. Ketua dan Sekretaris Program Studi Teknologi Informasi, Bapak M. Anggia Muchtar, ST.,MM.IT dan Bapak M. Fadly Syahputra, B.Sc.,M.Sc.IT.
5. Terima kasih juga penulis ucapkan kepada teman-teman, Dessy, Jhoannes, Toni, Boho, Leo, Boho, Robert, Ganesha, Anggreiny, Sion, Stella, Cynthia, Riska, Rogate dan seluruh teman-teman seperjuangan yang tidak dapat disebutkan.
ABSTRAK
Permainan Mill adalah pengembangan dari penggabungan konsep permainan Tic Tac Toe dan permainan Twelve Men's Morris. Permainan mill menggunakan aturan dan konsep permainan Tic Tac Toe yang bertujuan menempatkan 3 bidak masing-masing pemain dalam suatu garis lurus yang dapat berupa garis horisontal, vertikal, ataupun diagonal. Algoritma greedy adalah algoritma yang membentuk solusi langkah demi langkah. Pada setiap langkahnya terdapat banyak pilihan yang perlu dieksplorasi dan pada setiap langkahnya harus dibuat keputusan yang terbaik dalam menentukan pilihan. Maksud dari prinsip tersebut adalah pada setiap langkah dalam Algoritma Greedy diambil keputusan yang paling optimal untuk langkah tersebut tanpa memperhatikan konsekuensi pada langkah selanjutnya. Fungsi prioritas adalah fungsi yang dipadukan dengan algoritma Greedy yang menjadi strategi peletakan bidak oleh komputer di path
yang tersedia pada papan permainan. Tujuan penelitian ini yaitu membangun AI
yang dapat melakukan langkah terbaik peletakan bidak pada papan permainan. Hasil yang diperoleh dari aplikasi yang dibangun yaitu penerapan algoritma
Greedy yang dipadukan fungsi prioritas dapat membangun AI yang kompetitif untuk melawan pemain.
vi
THE IMPLEMENTATION OF GREEDY ALGORITHM IN MILL GAME
ON ANDROID
ABSTRACT
Mill game is the developement of merging concepts Tic Tac Toe game and Twelve Men's Morris game. Mill game using rules and concepts of Tic Tac Toe and Twelve Men's Morris game. Mill game using rules and concepts of Tic Tac Toe game that the aims to put three pawns of each player in a straight line which can be horizontal, vertical, or diagonal lines. Greedy algorithm is an algorithm that form the solution step by step. At each step there are many options that need to be explored and every step should be made the best decision in determining the choice. The intent of this principle is at each step in the Greedy algorithm is taken decision that the optimal for such a step without regard to the consequences in the next step. Priority Function is a function which combined with Greedy algorithm that become pawns by computer laying on the path provided on the game board. The purpose of this research is to build AI that can do the best move laying pawns on the game board. The result obtained from the application built is application the greedy algorithm that combined with priority function which can build a competitive AI to fight against player.
DAFTAR ISI
Hal
PERSETUJUAN ii
PERNYATAAN iii
UCAPAN TERIMA KASIH iv
ABSTRAK V
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
BAB II LANDASAN TEORI 6
2.1 Kecerdasan Buatan (Artificial Intelligence) 6
2.2 Game Playing 6
2.3 Mobile Games 7
2.4 Permainan Mill 7
2.5 Algoritma Greedy 8
2.6 Android 9
2.7 UML (Unified Modeling Language) 12
viii
BAB III ANALISIS DAN PERANCANGAN 14
3.1 Analisis Permainan 14
3.2 Fungsi Prioritas dan Analisis Algoritma Greedy 15
3.2.1 Fungsi Prioritas 15
3.2.2 Analisis Algoritma Greedy 16
3.3 Perancangan Sistem 22
3.3.1 Flowchart algoritma Greedy 23
3.3.2 Flowchart Aplikasi 24
3.3.3 Pemodelan Visual menggunakan UML 25
3.4 Transisi Layar dan Antarmuka 35
3.4.1 Transisi Layar 35
3.4.2 Antarmuka 35
BAB IV IMPLEMENTASI DAN PENGUJIAN 40
4.1 Implementasi 40
4.1.1 Spesifikasi Perangkat Lunak 40
4.1.2 Spesifikasi Perangkat Keras 40
4.2 Tanpilan Aplikasi 41
4.2.1 Tmpilan Halaman Utama 41
4.3.2 Pengujian Antarmuka Aplikasi 50 4.3.3 Pengujian Penggunaan Aplikasi 53
BAB V KESIMPULAN DAN SARAN 56
5.1 Kesimpulan 56
5.2 Saran 56
x
DAFTAR TABEL
Hal
Tabel 3.1 Fungsi Prioritas 15
Tabel 3.2 Giliran ke-1 (Pemain) 17
Tabel 3.3 Giliran ke-2 (Komputer) 18
Tabel 3.4 Giliran ke-3 (Pemain) 19
Tabel 3.5 Giliran ke-4 (Komputer) 19
Tabel 3.6 Giliran ke-5 (Pemain) 20
Tabel 3.7 Giliran ke-6 (Komputer) 21
Tabel 3.8 Giliran ke-7 (Pemain) 21
Tabel 3.9 Giliran ke-8 (Komputer) 22
Tabel 3.10 Use Case Mulai Lawan Kmputer 26
Tabel 3.11 Use Case Mulai Lawan Teman 28
Tabel 3.12 Use Case memilih Duluan Main,Level dan Jlh Putaran 29
Tabel 3.13 Use Case Bermain 30
Tabel 3.14 Use Case Evaluasi Langkah 31
Tabel 3.15 Use Case Statistik 32
Tabel 3.16 Use Case Panduan 33
Tabel 3.17 Use Case Tentang 34
Tabel 4.1 Kategori Pemberian Nilai 51
Hal
Gambar 2.1 Papan Permainan Mill 8
Gambar 2.2 Aristektur platform android 10
Gambar 3.1 Giliran ke-1 (Pemain) 17
Gambar 3.2 Giliran ke-2 (Komputer) 18
Gambar 3.3 Giliran ke-3 (Pemain) 18
Gambar 3.4 Giliran ke-4 (Komputer) 19
Gambar 3.5 Giliran ke-5 (Pemain) 20
Gambar 3.6 Giliran ke-6 (Komputer) 20
Gambar 3.7 Giliran ke-7 (Pemain) 21
Gambar 3.8 Giliran ke-8 (Komputer) 22
Gambar 3.9 Flowchart Algoritma Greedy 23
Gambar 3.10 Flowchart Aplikasi 24
Gambar 3.11 Use Case Aplikasi 26
Gambar 3.12 Activity Diagram Lawan Komputer 27
Gambar 3.13 Activity Diagram Lawan Teman 28
Gambar 3.14 Memilih Duluan Main, Level dan Jumlah Putaran 29
Gambar 3.15 Activity Diagram Bermain 30
Gambar 3.16 Activity Diagram Evaluasi Langkah 31
Gambar 3.17 Activity Diagram Statistik 32
Gambar 3.18 Activity Diagram Panduan 33
Gambar 3.19 Activity Diagram Tentang 34
Gambar 3.20 Transisi Layar 36
Gambar 3.21 Antarmuka Halaman Menu Utama 36
Gambar 3.22 Antarmuka Lawan Komputer dan Lawan Teman 37
Gambar 3.23 Antarmuka Statistik 37
Gambar 3.24 Antarmuka Halaman Panduan 38
Gambar 3.25 Antarmuka Halaman Tentang 38
Gambar 3.26 Antarmuka Papan Permainan 39
Gambar 4.1 Tampilan Halaman Menu Utama 41
Gambar 4.2 Halaman Lawan Komputer 42
Gambar 4.3 Pilihan Lomba 1 Mill Lawan Komputer 43
xii
Gambar 4.4 Pilihan Lomba Banyak Mill Lawan Komputer 43
Gambar 4.5 Halaman Lawan Teman 44
Gambar 4.6 Pilihan Lomba 1 Mill Lawan Teman 45
Gambar 4.7 Pilihan Lomba Banyak Mill Lawan Teman 45
Gambar 4.8 Papan Permainan 46
Gambar 4.9 Notifikasi -1 47
Gambar 4.10 Notifikasi -2 47
Gambar 4.11 Notifikasi -3 48
Gambar 4.12 Notifikasi -4 48
Gambar 4.13 Halaman Statistik 48
Gambar 4.14 Halaman Panduan 49
ABSTRAK
Permainan Mill adalah pengembangan dari penggabungan konsep permainan Tic Tac Toe dan permainan Twelve Men's Morris. Permainan mill menggunakan aturan dan konsep permainan Tic Tac Toe yang bertujuan menempatkan 3 bidak masing-masing pemain dalam suatu garis lurus yang dapat berupa garis horisontal, vertikal, ataupun diagonal. Algoritma greedy adalah algoritma yang membentuk solusi langkah demi langkah. Pada setiap langkahnya terdapat banyak pilihan yang perlu dieksplorasi dan pada setiap langkahnya harus dibuat keputusan yang terbaik dalam menentukan pilihan. Maksud dari prinsip tersebut adalah pada setiap langkah dalam Algoritma Greedy diambil keputusan yang paling optimal untuk langkah tersebut tanpa memperhatikan konsekuensi pada langkah selanjutnya. Fungsi prioritas adalah fungsi yang dipadukan dengan algoritma Greedy yang menjadi strategi peletakan bidak oleh komputer di path
yang tersedia pada papan permainan. Tujuan penelitian ini yaitu membangun AI
yang dapat melakukan langkah terbaik peletakan bidak pada papan permainan. Hasil yang diperoleh dari aplikasi yang dibangun yaitu penerapan algoritma
Greedy yang dipadukan fungsi prioritas dapat membangun AI yang kompetitif untuk melawan pemain.
vi
THE IMPLEMENTATION OF GREEDY ALGORITHM IN MILL GAME
ON ANDROID
ABSTRACT
Mill game is the developement of merging concepts Tic Tac Toe game and Twelve Men's Morris game. Mill game using rules and concepts of Tic Tac Toe and Twelve Men's Morris game. Mill game using rules and concepts of Tic Tac Toe game that the aims to put three pawns of each player in a straight line which can be horizontal, vertical, or diagonal lines. Greedy algorithm is an algorithm that form the solution step by step. At each step there are many options that need to be explored and every step should be made the best decision in determining the choice. The intent of this principle is at each step in the Greedy algorithm is taken decision that the optimal for such a step without regard to the consequences in the next step. Priority Function is a function which combined with Greedy algorithm that become pawns by computer laying on the path provided on the game board. The purpose of this research is to build AI that can do the best move laying pawns on the game board. The result obtained from the application built is application the greedy algorithm that combined with priority function which can build a competitive AI to fight against player.
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Permainan atau lebih sering dikenal dengan istilah game semakin banyak diminati oleh masyarakat pada saat ini. Mulai dari game yang dapat dimainkan pada
platform komputer hingga game pada platform mobile. Game biasanya digunakan untuk sekedar menghibur diri, mengisi waktu senggang dan sarana dalam pembelajaran.
Android adalah sistem operasi mobile yang mulai populer dan berkembang pada saat ini . Perkembangan tersebut mengakibatkan meningkatnya aplikasi-aplikasi mobile berbasis android. Salah satu dari aplikasi - aplikasi tersebut adalah mobilegame. Di awal tahun 2010, mobile game berkembang sangat pesat (terutama di smartphone) hingga dapat mengimbangi portable game device
sehingga mobile game menjadi sangat diminati (Zechner, 2011).
Penulis memilih perangkat smartphone android untuk menjalankan game
didasari oleh pertimbangan keleluasan interaksi pengguna terhadap layar sentuh serta harga smartphone android yang relatif terjangkau. Penulis juga mengharapkan bahwa game yang dibuat dalam perangkat smartphoneandroid ini bersifat menghibur, menarik dan berpotensi membantu proses edukasi.
2
perkembangan game berbasis android ini. Game tersebut menerapkan
AI(Artificial intelligence) untuk melawan pemain agar pemain berusaha berpikir untuk mengalahkan AI. Contoh game berbasis android yang menerapkan AI
adalah chess, checkers, reversi dan mill.
Dari sekian banyak game android yang menerapkan kecerdasan buatan (artificial intelligence), salah satu yang menarik untuk dijadikan objek penelitian yaitu permainan Mill.
Mill adalah sebuah permainan papan (board game) yang sudah sangat tua, bahkan salah satu yang tertua sepanjang sejarah. Permainan ini banyak ditemukan di berbagai negara. Permainan Mill menggunakan 12 bidak untuk masing-masing pemain (pemain dan AI ). Pemain yang menang adalah pemain yang berhasil menempatkan 3 bidak masing-masing pemain dalam suatu garis lurus yang dapat berupa garis horisontal, vertikal, ataupun diagonal.
Dalam penelitian ini penulis akan menggunakan algoritma Greedy pada permainan Mill ini. Hal ini dikarenakan penggunaan algoritma Greedy
memecahkan masalah langkah per langkah yang dalam setiap langkahnya mengambil pilihan terbaik yang terdapat pada saat itu tanpa mempedulikan konsekuensi ke depannya, dalam hal ini adalah peletakan bidak oleh AI . Hal ini disebut sebagai optimum lokal. Harapan dari algoritma ini dapat membentuk suatu penyelesaian atau optimum global suatu masalah dari optimum lokalnya.
Beberapa penelitian yang menggunakan algoritma Greedy antara lain Hayati (2007) pada permainan Congklak , Kemit (2011) pada permainan Ludo.
1.2. Rumusan Masalah
1.3. Batasan Masalah
Agar penelitian terarah dari apa yang sudah dirumuskan maka diperlukan batasan masalah. Batasan masalah dalam penelitian ini :
1. Permainan Mill dimainkan oleh 2 pemain (Pemain dan AI)
Tujuan dari penelitian ini adalah sebagai berikut :
1. Menerapkan algoritma Greedy pada permainan Mill untuk mendapatkan langkah terbaik yang dilakukan AI.
2. Mengimplementasi permainan Mill dalam bentuk permainan mobile phone
berbasis android.
1.5. Manfaat Penelitian
Manfaat dari penelitian ini adalah mengasah intiusi/strategi bermain pemain untuk melawan AI pada permainan Mill.
1.6. Metodologi Penelitian
Metodologi penelitian yang digunakan untuk menyelesaikan tugas akhir ini adalah sebagai berikut :
1. Studi Literatur
Pada tahap ini dilakukan studi literatur mengenai permainan Mill, algoritma Greedy dan android dari berbagai buku, jurnal maupun internet.
2. Analisis
4
3. Perancangan dan Implementasi Sistem
Pada tahap ini dilakukan perancangan sesuai dengan hasil dari analisis sistem serta mengimplementasikan hasil dari analisis dan perancangan ke dalam sistem.
4. Pengujian
Pada tahap ini dilakukan pengujian sistem apakah aplikasi berjalan sesuai dengan tujuan penelitian atau tidak.
5. Penyusunan Laporan
Pada tahap ini dilakukan dokumentasi hasil penerapan Greedy pada permainan Mill yang bertujuan untuk menunjukkan hasil penelitian ini.
1.7. Sistematika Penulisan
Adapun bagian utama dari sistematika penulisan skripsi ini yaitu :
BAB 1. PENDAHULUAN
Bab ini berisi latar belakang diangkatnya judul skripsi, perumusan masalah yang diambil, batasan-batasan masalahnya, tujuan dan manfaat penelitian, metodologi penulisan, dan sistematika penulisan dari penyusunan skripsi ini.
BAB 2. LANDASAN TEORI
Bab ini menjelaskan mengenai landasan teori dari penelitian.
BAB 3. ANALISIS DAN PERANCANGAN
Bab ini menjelaskan mengenai analisis algoritma Greedy untuk pencarian langkah terbaik AI dan perancangan aplikasi pada permainan Mill berbasis android.
BAB 4. IMPLEMENTASI DAN PENGUJIAN APLIKASI
BAB 5. KESIMPULAN DAN SARAN
BAB 2
LANDASAN TEORI
2.1. Kecerdasan Buatan (Artificial intelligence)
Kecerdasan buatan atau artificial intelligence merupakan salah satu bagian ilmu komputer yang membuat agar mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan jaman, maka peran komputer semakin mendominasi kehidupan umat manusia. Komputer tidak lagi hanya digunakan sebagai alat hitung, lebih dari itu, komputer diharapkan untuk dapat diberdayakan untuk mengerjakan segala sesuatu yang bisa dikerjakan oleh manusia (Kusumadewi,2003).
2.2. Game Playing
Dalam beberapa tahun terakhir Ar tificia l intelligence (AI) telah menjadi garis depan dalam industri game. Hampir semua game sekarang membutuhkan AI
untuk membuat komputer seolah-olah tampak cerdas. Konsep cerdas dibutuhkan untuk mengontrol dan mengklasifikasi karakter pemain atau bukan. Program pertama yang dibuat AI adalah ga me pla ying. Sejarah teori game dimulai dari tahun 1950, ketika komputer mulai dapat diprogram. Ga me
pertama yang menggunakan AI adalah catur. Inisiator teori game dalam AI
adalah Konard Zuse, Claude Shannon, Norbert Wiener, dan Alan Turing. Sejak saat itu, mulai ada kemajuan dalam standard bermain game, sampai-sampai komputer dapat mengalahkan manusia dalam permainan catur, dan dalam banyak game kompetitif lainnya(Sutojo,2011).
kedua pemain. Game P la ying merupakan problem pencarian yang didefinisikan oleh beberapa komponen berikut ini.
1. Keadaan awal (initial state), yaitu keadaan yang mendefinisikan konfigurasi awal permainan dan mengidentifikasi pemain pertama yang bergerak.
2. Fungsi Penerus (successor function), yang bertugas mengidentifikasi kemungkinan-kemungkinan yang dapat dicapai dari keadaan saat ini. 3. Goa l test, yang bertugas untuk memeriksa apakah suatu keadaan
tertentu adalah kedaan tujuan atau bukan.
4. P a th Cost, yang memberikan nilai numerik untuk keadaan-keadaan dalam permainan.
2.3. Mobile Games
Mobile games secara garis besar diartikan sebagai permainan yang dimainkan pada perangkat mobile seperti telepon genggam, PDA, smartphone, ataupun perangkat permainan portabel (contoh Nintendo Gameboy dan PlayStation Portable).
Penelitian, pengembangan, dan pengujian terhadap mobile games telah membawa masalah dan pertanyaan yang tidak bisa diselesaikan oleh model desain lama. Mobile games mengubah hubungan antara manusia dan komputer yang berakibat tidak hanya dari cara bermain tetapi desain antarmuka dan juga interaksi struktur juga berubah. Kegiatan pemain berubah. Pemain tidak duduk di depan perangkat mereka lagi tetapi benar-benar bisa bergerak bebas sambil bermain (Grueter et al, 2005).
2.4. Permainan Mill
8
bentuk papan permainan yang sama dengan papan permainan Twelve Men's Morris Twelve Men's Morris yang terbentuk dari 24 node, 8 path horisontal, 8
path vertikal, dan 4 path diagonal. Untuk lebih jelasnya berikut tampilan papan permainan Mill.
Gambar 2.1 Papan Permainan Mill
2.5. Algoritma Greedy
Secara bahasa, greedy memiliki arti rakus atau tamak. Algoritma greedy adalah algoritma yang membentuk solusi langkah demi langkah. Pada setiap langkahnya terdapat banyak pilihan yang perlu dieksplorasi dan pada setiap langkahnya harus dibuat keputusan yang terbaik dalam menentukan pilihan. Prinsip Algoritma
Greedy adalah ”take what you can get now!”. Maksud dari prinsip tersebut adalah pada setiap langkah dalam Algoritma Greedy diambil keputusan yang paling optimal untuk langkah tersebut tanpa memperhatikan konsekuensi pada langkah selanjutnya. Hal ini disebut sebagai optimum lokal. Harapan dari algoritma ini dapat membentuk suatu penyelesaian atau optimum global suatu masalah dari optimum lokalnya.(Munir,2007).
Dalam penerapan algoritma greedy diperlukan elemen-elemen sebagai berikut:
1. Himpunan Kandidat
Merupakan Himpunan yang telah berisi solusi-solusi yang telah diterima sebagai langkah penyelesaian atau optimum lokal.
3. Fungsi Seleksi
Merupakan fungsi pembatas yang mensortir himpunan kandidat menjadi calon himpunan solusi
4. Fungsi Kelayakan
merupakan fungsi yang memeriksa apakah suatu kandidat yang telah dipilih dapat memberikan solusi yang layak, yakni kandidat tersebut bersama-sama dengan himpunan solusi yang sudah terbentuk tidak melanggar kendala yang ada.
5. Fungsi Obyektif
Fungsi yang memaksimalkan nilai solusi sesuai dengan permasalahannya
2.6. Android
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi (Safaat, 2012). Android
merupakan generasi baru platform mobile, platform yang memberikan pengembang untuk melakukan pengembangan sesuai dengan yang diharapkannya. Sistem operasi yang mendasari Android dilisensikan dibawah GNU, yang sering dikenal dengan 'copyleft' lisensi dimana setiap perbaikan pihak ketiga harus terus jatuh dibawah terms. Android didistribusikan dibawah Lisensi Apache Software(ASL/Apache2), yang memungkinkan untuk distribusi kedua dan seterusnya. Pengembang aplikasi Android diperbolehkan untuk mendistribusikan aplikasi mereka dibawah skema lisensi apapun yang mereka inginkan.
Kelebihan android (Gargenta, 2011) :
1. Comprehensive platform, yang artinya softwarenya lengkap pada mobile devices.
2. Open source platform, pengembang dapat menggunakan dan
mengembangkannya secara gratis dan memiliki akses terhadap source code platform tersebut.
10
Arsitektur platform Android dapat dilihat pada gambar 2.2
Gambar 0.2 Arsitektur platformAndroid (Zechner, 2011)
a. Applications
Applications merupakan program yang langsung berhubungan dengan user. Baik program yang merupakan bawaan dari Android sendiri maupun program yang dibuat oleh developer menggunakan bahasa pemrograman java. Contoh program bawaan dari platform Android sendiri adalah email client, program SMS,
calendar, maps, web browser, contact dan sebagainya.
b. Application Framework
Lapisan ini berisi sekumpulan API yang dapat digunakan oleh programmer
maupun core application dari android. Lapisan ini dirancang untuk memudahkan penggunaan komponen dari Android sendiri. Aplikasi manapun dalam Android
dapat berbagi fungsi sehingga aplikasi lain dapat memanfaatkannya.
Aplikasi pada Android disusun atas beberapa komponen :
1. Sekumpulan views. Digunakan untuk mengatur tampilan pada aplikasi. Contohnya adalah lists, grid, text box, button, bahkan embeddable web browser.
3. Resource manager. Menyediakan akses kepada resource non-code seperti
localized string, dan file layout.
4. Notification manager. Memungkinkan agar suatu aplikasi dapat menampilkan peringatan yang dapat dikustomasi pada status bar.
5. Activity manager. Mengatur siklus aplikasi dan navigasi antar aplikasi yang sedang berjalan.
c. Libraries
Android mendukung beberapa library C/C++ yang digunakan pada berbagai komponen Android. Kemampuan ini dapat diakses oleh developer melalui
Androidapllication framework.
d. AndroidRuntime
Tiap aplikasi pada Android memiliki proses nya masing-masing. Tiap aplikasi tersebut memiliki instans dari Dalvik virtual machine (VM). Dalvik virtual machine dirancang agar suatu perangkat dapat menjalankan beberapa VM secara efisien. Dalvik VM mengeksekusi file dengan format Dalvik executable format
(.dex) yang dirancang untuk meminimalkan memoryfootprint.
Dalvik VM berbasis register dan dapat menjalankan kelas-kelas yang dikompilasi dengan bahasa pemrograman java dan ditransformasikan menjadi format .dex. Dalvik VM sendiri bergantung pada kernel Linux untuk fungsi dasarnya, seperti threading dan manajemen memori secara low-level.
e. Linux Kernel
12
manajemen proses, manajemen jaringan, dan driver model. Kernel juga berfungsi sebagai layer abstrak antara hardware dan lapisan lainnya pada software stack.
2.7. UML (Unified Modelling Language)
UML digunakan untuk menggambarkan perancangan awal dari sistem yang akan dibangun. UML memiliki banyak jenis permodelan, tetapi hanya beberapa yang digunakan saja yang akan dibahas. UML merupakan suatu bahasa. Suatu bahasa terdiri dari kata-kata, dan memiliki aturan untuk menggabungkan kata-kata tersebut, sehingga tercipta komunikasi. Sebuah permodelan bahasa adalah suatu bahasa dimana kata-kata dan aturannya berfokus pada penggambaran sistem secara konseptual dan fisik. Sebuah permodelan bahasa seperti UML telah menjadi bahasa standar untuk merencanakan suatu aplikasi (Booch,2005).
Hasil dari permodelan tadi adalah pengertian dari suatu sistem. Satu model saja tidak cukup untuk menggambarkan sistem secara keseluruhan, maka dibutuhkan banyak model yang berhubungan satu dengan yang lainnya untuk memberikan pengertian pada dasar dari sistem.
Keuntungan UML sebagai berikut :
- Sebagai bahasa pemodelan yang general-purpose, difokuskan pada pokok himpunan konsep yang dapat dipakai bersama dan menggunakan pengetahuan bersama dengan mekanisme perluasan.
- Sebagai bahasa pemodelan yang mudah diaplikasikan, dapat diaplikasikan untuk bermacam tipe sistem (software dan non-software), domain dan metode atau proses.
2.8. Penelitian Terdahulu
Algoritma greedy telah banyak diterapkan dalam penelitian untuk program-program game. Beberapa penelitian yang pernah dilakukan untuk menyelesaikan permasalahan dari suatu game (permainan) dengan menggunakan algoritma
greedy antara lain untuk permainan Congklak(Hayati,2007) dan permainan Ludo(Kemit,2011).
Hayati menggunakan algoritma greedy pada pencarian beberapa solusi optimum dalam permaianan congklak. Permainan congklak adalah sejenis permainan tradisional yang cukup dikenal di berbagai daerah. Permainan ini bertujuan untuk mendapatkan sebanyak-banyaknya biji congklak. Dengan algoritma greedy akan ditentukan lubang yang akan dimainkan untuk menembak lubang lawan dan mendapatkan biji terbanyak.
Kemit menggunakan algoritma greedy pada penentuan langkah dalam permainan ludo. Permainan ludo adalah sebuah permainan papan yang dimainkan hampir seluruh belahan dunia. Permainan ini dimenangkan dengan memindahkan pion-pion yang kita miliki menuju kotak tujuan. Berbagai taktik dapat digunakan untuk mencapai tujuan tersebut. Dengan algoritma greedy akan ditentukan langkah pion untuk memajukan pion, memukul pion lawan, menghalangi pion lawan.
Tabel 2.1 Penelitian Terdahulu
No Peneliti Algoritma Kasus Tahun
1 Hayati Greedy Penentuan langkah
permainan Congklak
2007
2 Kemit Greedy Penentuan langkah
permaianan Ludo
BAB 3
ANALISIS DAN PERANCANGAN
Dalam bab ini akan dibahas mengenai analisis sistem dan perancangan aplikasi permaian Mill. Penulis mencoba membuat suatu aplikasi permainan Mill yang menerapkan kecerdasan buatan pada komputer yang akan dilawan . Penulis juga mencoba menjelaskan bagaimana cara kerja kecerdasan buatan pada permainan
Mill. Dalam hal ini, penulis menggunakan algoritma Greedy.
3.1. Analisis Permainan
Berikut ini aturan permainan yang ditetapkan oleh penulis untuk aplikasi permainan Mill :
1. Pemain berlomba membentuk 3 bidak segaris (Mill) di path yang tersedia pada papan permainan.
2. Pemain dapat memilih mode melawan komputer atau teman.
3. Pemain dapat memilih mode permainan Lomba 1 Mill atau Lomba Banyak
Mill.
4. Untuk mode melawan komputer, pemain dapat memilih tingkat kesulitan mudah,menengah atau sulit.
5. Pemain dapat memilih siapa yang terlebih dahulu main(pemain atau komputer) dan jumlah putaran permainan yang diinginkan (untuk mode Lomba Banyak
Mill).
6. Untuk mode Lomba 1 Mill , pemain berlomba dengan komputer untuk membentuk sebuah Mill di path yang tersedia. Permainan selesai saat pemain atau komputer telah membentuk sebuah Mill di salah satu path. Permainan juga selesai saat seluruh path pada permaian telah terisi bidak.
3.2. Fungsi Prioritas dan Analisis Algoritma Greedy
3.2.1. Fungsi Prioritas
Untuk membangun kecerdasan buatan pada komputer, penulis membuat sebuah fungsi prioritas berdasarkan strategi yang diterapkan. Fungsi prioritas inilah yang menjadi strategi peletakan bidak oleh komputer di path yang tersedia pada papan permainan. Berikut tabel fungsi prioritas yang digunakan oleh penulis :
Tabel 3.1 Fungsi Prioritas
16
Penulis memberikan nilai prioritas berbeda pada No.3 dan No.6 dikarenakan penulis bertujuan agar komputer bisa menyerang dan lebih memilih meletakkan bidaknya pada path yang berisi 2 bidaknya (No.6) untuk membentuk
mill karena nilai prioritasnya (200) lebih besar daripada harus bertahan untuk memblockpath berisi 2 bidak pemain (No.3) yang nilai prioritasnya (100) lebih kecil. Sama halnya dengan No.2 dan No.5 ,komputer akan memilih meletakkan bidaknya pada path yang bernilai prioritas lebih tinggi. Untuk No.1 penulis memberikan nilai prioritas 0 untuk semua path yang belum terisi bidak sama sekali. Untuk no.4 penulis memberikan nilai prioritas 1 saat 1 bidak pemain dan 1 bidak komputer ada di path tersebut.
3.2.2. Analisis Algoritma Greedy
Penulis membangun kecerdasan buatan (AI) komputer dengan menerapkan algoritma Greedy . Algoritma Greedy dipadukan dengan fungsi prioritas yang sudah disebutkan sebelumnya untuk penelusuran kemungkinan langkah terbaik yang akan dipilih komputer. Adapun elemen-elemen algoritma Greedy yang digunakan daladalah sebagai berikut :
1. Himpunan Kandidat (HK) : himpunan path yang ada dalam papan permainan Mill yaitu H1, H2, H3, H4, H5, H6, H7, H8, V1, V2, V3, V4, V5, V6, V7, V8, D1, D2, D3, D4.
2. Fungsi Prioritas (FP) : seperti penjelasan pada Tabel 3.1.
3. Himpunan Solusi (HS) : Himpunan path yang tidak bernilai prioritas 0 (berisi bidak)
4. Fungsi Seleksi dan Kelayakan (FSK) : seleksi path yang bernilai prioritas paling tinggi dari Himpunan Solusi.
Penulis mengambil sebuah sampel permainan untuk dianalisis menggunakan algoritma greedy. Penjelasan analisis terebut adalah sebagai berikut
Gambar 3.1 Giliran ke-1 (Pemain)
Pada gambar 3.1 penulis dapat membuat tabel penjelasan penerapan algoritma greedy sebagai berikut
Tabel 3.2 Giliran ke-1 (Pemain)
HK H1 H2 H3 H4 H5 H6 H7 H8 V1 V2 V3 V4 V5 V6 V7 V8 D1 D2 D3 D4
FP 10 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 10 0 0 0
HS H1, V1, D1
FSK H1, V1, D1
FO V1
18
Gambar 3.2 Giliran ke-2 (Komputer)
Tabel 3.3 Giliran ke-2 (Komputer)
Gambar 3.3 Giliran ke-3 (Pemain)
HK H1 H2 H3 H4 H5 H6 H7 H8 V1 V2 V3 V4 V5 V6 V7 V8 D1 D2 D3 D4
FP 10 0 0 20 0 0 0 0 1 0 0 0 0 0 0 0 10 0 0 0
HS -
FSK -
FO -
Tabel 3.4 Giliran ke-3 (Pemain)
HK H1 H2 H3 H4 H5 H6 H7 H8 V1 V2 V3 V4 V5 V6 V7 V8 D1 D2 D3 D4
FP 100 0 0 20 0 0 0 0 1 0 0 10 0 0 0 0 10 0 0 0
HS H1, H4, V1, V4, D1
FSK H1
FO H1
Ket Komputer memilih meletakkan bidak pada node yang ada di path H1 (lihat Gambar 3.4)
Gambar 3.4 Giliran ke-4 (Komputer)
Tabel 3.5 Giliran ke-4 (Komputer)
HK H1 H2 H3 H4 H5 H6 H7 H8 V1 V2 V3 V4 V5 V6 V7 V8 D1 D2 D3 D4
FP - 0 0 20 0 0 0 0 1 0 0 10 0 0 0 20 10 20 0 0
HS -
FSK -
FO -
20
Gambar 3.5 Giliran ke-5 (Pemain)
Tabel 3.6 Giliran ke-5 (Pemain)
Gambar 3.6 Giliran ke-6 (Komputer)
HK H1 H2 H3 H4 H5 H6 H7 H8 V1 V2 V3 V4 V5 V6 V7 V8 D1 D2 D3 D4
FP - 0 0 20 0 10 0 0 1 0 0 10 10 0 0 20 10 20 0 0
HS H4, H6, V1, V4, V5, V8, D1, D2
FSK H4, V8, D2
FO D2
Tabel 3.7 Giliran ke-6 (Komputer)
HK H1 H2 H3 H4 H5 H6 H7 H8 V1 V2 V3 V4 V5 V6 V7 V8 D1 D2 D3 D4
FP - 20 0 20 0 10 0 0 1 0 0 10 10 0 20 20 10 200 0 0
HS -
FSK -
FO -
Ket Komputer menunggu langkah pemain selanjutnya untuk dievaluasi ( Lihat Gambar 3.7 )
Gambar 3.7 Giliran ke-7 (Pemain)
Tabel 3.8 Giliran ke-7 (Pemain)
HK H1 H2 H3 H4 H5 H6 H7 H8 V1 V2 V3 V4 V5 V6 V7 V8 D1 D2 D3 D4
FP - 1 0 20 0 10 0 0 1 0 0 100 10 0 20 20 10 200 0 0
HS H2, H4, H6, V1, V4, V5, V7, V8, D1, D2
FSK D2
FO D2
22
Gambar 3.8 Giliran ke-8 (Komputer)
Tabel 3.9 Giliran ke-8 (Komputer)
Pada Gambar 3.8 terlihat Komputer berhasil membuat Mill pada path D2. Dengan demikian Komputer berhasil mengalahkan Pemain pada giliran ke-8.
3.3. Perancangan Sistem
Pada bagian ini penulis akan menguraikan gambaran aplikasi yang akan dirancang dan sebagai tahapan persiapan sebelum penerapan dan pengimplementasian di
Android.
HK H1 H2 H3 H4 H5 H6 H7 H8 V1 V2 V3 V4 V5 V6 V7 V8 D1 D2 D3 D4
FP - 1 20 20 0 10 0 0 1 0 0 100 10 20 20 20 10 - 0 0
HS -
FSK -
FO -
3.3.1 Flowchart Algoritma Greedy
Flowchart Algoritma Greedy yang diterapkan dalam permainan Mill menunjukkan proses evaluasi terhadap penentuan langkah terbaik yang dapat dilakukan AI. Flowchart Algoritma Greedy tersebut dapat dilihat pada gambar
START
Gambar 3.9 Flowchart Algoritma Greedy
3.3.2 Flowchart Aplikasi
24
salah satu dari menu tersebut, aplikasi akan menampilkan halaman lainnya. Alur
(flowchart) dari aplikasi permainan dapat dilihat pada gambar START
3.3.3 Pemodelan Visual Menggunakan UML
Dalam perancangan aplikasi permainan, penulis menggunakan bahasa pemodelan UML. Model UML yang digunakan antara lain use case diagram dan activity diagram.
Use Case adalah deskripsi fungsi sebuah sistem dari perspektif pengguna.
Use case bekerja dengan cara mendeskripsikan tipikal interaksi antara user(pengguna) dengan sistem itu sendiri melalui sebuah cerita bagaimana sistem dipakai. User (pengguna) biasanya disebut dengan actor. Actor yang berperan dalam sistem ini adalah pemain dan AI.
Untuk mendapatkan use case dari actor ,maka terlebih dahulu ditentukan interaksi apa saja yang dapat dilakukan actor terhadap sistem. Berikut interaksi yang dapat dilakukan actor terhadap sistem :
1. Mulai Lawan Komputer 2. Mulai Lawan Teman 3. Melihat Statistik 4. Melihat Panduan 5. Melihat Tentang
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
26
Gambar 3.11 Use Case Aplikasi
Tabel dokumentatif dan Activity Diagram dari Use Case aplikasi pada Gambar 3.10 adalah sebagai berikut
Tabel 3.10 Use Case Mulai Lawan Komputer
Nama Use Case Mulai Lawan Komputer
Aktor Pemain
Deskripsi Use case ini berfungsi untuk memulai permainan
Pre Condition Pemain memilih menu Lawan Komputer pada Menu Utama
Flow Of Events Kegiatan Aktor Respon Sistem
- Pemain menekan tombol Lawan Komputer pada halaman Menu Utama
Activity diagram untuk use case Mulai Lawan Komputer dapat dilihat pada gambar 3.12
Pemain Sistem
Menekan Tombol Lomba 1 Mill/Banyak Mill
Menampilkan pilihan duluan main,level,jlh putaran
Menekan Tombol "Back"
Menutup Halaman Lawan Komputer
Gambar 3.12 Activity Diagram Mulai Lawan Komputer
28
Tabel 3.11 Use Case Mulai Lawan Teman
Pemain Sistem
Menekan Tombol "Lawan Teman"
Menampilkan Pilihan Lomba 1 Mill dan Banyak Mill
Menekan Tombol "Back"
Menutup Halaman Lawan Teman
Gambar 3.13 Activity Diagram Mulai Lawan Teman Nama Use Case Mulai Lawan Teman
Aktor Pemain
Deskripsi Use case ini berfungsi untuk memulai permainan
Pre Condition Pemain memilih menu Lawan Teman pada Menu Utama
Flow Of Events Kegiatan Aktor Respon Sistem
- Pemain menekan tombol Lawan Teman pada halaman Menu Utama
- Pilhan mode Lomba 1 Mill dan Lomba Banyak Mill ditampilkan
Tabel 3.12 Use Case Memilih Duluan Main, Level dan Jumlah Putaran
Pemain Sistem
Menekan Tombol Lomba 1 Mill/Banyak Mill
Menampilkan pilihan duluan main,level,jlh putaran
Menekan Tombol "Back"
Menutup Halaman Lomba 1 Mill / Banyak Mill
Gambar 3.14 Activity Diagram Memilih Duluan Main, Level dan Jumlah Putaran Nama Use Case Memilih Duluan Main, Level dan Jumlah Putaran
Aktor Pemain
Deskripsi Use case ini berfungsi untuk memilih konfigurasi sebelum bermain
Pre Condition Pemain memilih menu Lomba 1 Mill atau Lomba Banyak Mill
Flow Of Events Kegiatan Aktor Respon Sistem
- Pemain menekan tombol Lomba 1 Mill tau Lomba Banyak Mill
- Pilihan konfigurasi Duluan Main, Level dan Jumlah Putaran ditampilkan
30
Tabel 3.13 Use Case Bermain
Pemain Meletakkan Bidak
Mengupdate papan permainan
Pemain Sistem
Gambar 3.15 Activity Diagram Bermain
Nama Use Case Bermain
Aktor Pemain
Deskripsi Use case ini berfungsi untuk memulai permainan dengan meletakkan bidak ke papan permainan Mill
Pre Condition Papan permainan sudah ditampilkan di layar
Flow Of Events Kegiatan Aktor Respon Sistem
-Pemain dan komputer mulai meletakkan bidak di papan permainan
-Sistem mengupdate papan permainan
Tabel 3.14 Use Case Evaluasi Langkah
Cek papan permainan
Evaluasi Nilai Langkah
Memilih Langkah Terbaik
AI Meletakkan Bidak
Mengupdate Papan Permainan
AI Sistem
Gambar 3.16 Activity Diagram 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 bidaknya
Flow Of Events Kegiatan Aktor Respon Sistem
-AI mengecek papan permainan -AI mengevaluasi nilai langkah -AI memilih langkah terbaik -AI meletakkan bidak
- Sistem mengupdate papan permainan
32
Tabel 3.15 Use Case Statistik
Menekan Tombol "Statistics"
Menampilkan Halaman Statistics
Menekan Tombol "Back"
Menutup Halaman Statistics
Pemain Sistem
Gambar 3.17 Activity Diagram Statistik Nama Use Case Lihat Statistik
Aktor Pemain
Deskripsi Use case ini berfungsi untuk melihat statistik menang/kalah pemain melawan AI
Pre Condition Pemain memilih menu Statistics pada halaman Menu Utama
Flow Of Events Kegiatan Aktor Respon Sistem
-Pemain menekan tombol Statistics pada halaman menu utama
-Menampilkan Halaman Statistik
Tabel 3.16 Use Case Panduan
Menekan Tombol "Panduan"
Menampilkan Halaman Panduan
Menekan Tombol "Back"
Menutup Halaman Panduan
Pemain Sistem
Gambar 3.18 Activity Diagram Panduan Nama Use Case Lihat Panduan
Aktor Pemain
Deskripsi Use case ini berfungsi untuk melihat bantuan dan tata cara bermain aplikasi Mill
Pre Condition Pemain memilih menu Panduan pada halaman Menu Utama
Flow Of Events Kegiatan Aktor Respon Sistem
-Pemain menekan tombol Panduan pada halaman menu utama
-Sistem menampilkan halaman Panduan
- Menutup halaman Panduan
34
Tabel 3.17 Tabel Use Case Tentang
Menekan Tombol "Tentang"
Menampilkan Halaman Tentang
Menekan Tombol "Back"
Menutup Halaman Tentang
Pemain Sistem
Gambar 3.19 Activity Diagram Tentang Nama Use Case Lihat Tentang
Aktor Pemain
Deskripsi Use case ini berfungsi untuk melihat tentang latar belakang game yang dibuat.
Pre Condition Pemain memilih menu Tentang pada halaman Menu Utama
Flow Of Events Kegiatan Aktor Respon Sistem
-Pemain menekan tombol Tentang pada halaman menu utama
-Sistem menampilkan halaman Tentang
3.4. Transisi Layar dan Antarmuka
3.4.1 Transisi Layar
Transisi layar merupakan pergantian layar atau halaman permainan dari satu halaman ke halaman lain. Transisi layar terjadi sesaat setelah user menekan tombol yang tampak di layar.
Penulis menggambarkan diagram transisi layar yang dapat terjadi di dalam sistem. Berikut diagram transisi layar pada sistem. Pada Menu Utama terdiri dari 5 tombol antara lain tombol Lawan Komputer, Lawan Teman, Statistik, Panduan, dan Tentang yang jika diklik salah satunya akan mentransisi ke halaman baru.
Menu Utama Lawan Komputer
Panduan Lawan Teman
Statistik Tentang
Gambar 3.20 Transisi Layar
3.4.2 Antarmuka
36
a. Halaman Menu Utama
Halaman ini adalah halaman yang pertama muncul saat aplikasi dijalankan. Pada layar perangkat akan muncul halaman Menu Utama yang menampilkan logo,
background image, dan beberapa tombol antara lain tombol Lawan Komputer, tombol Lawan Teman, tombol Statistik, tombol Panduan, dan tombol Tentang. Berikut rancangan tampilan halaman Menu Utama.
LOGO
Lawan Komputer
Lawan Teman
Statistik
Panduan
Tentang
Gambar 3.21 Antarmuka Halaman Menu Utama
b. Halaman Lawan Komputer dan Lawan Teman
Lomba 1 MIll
Lomba Banyak MIll
LOGO
Gambar 3.22 Antarmuka Lawan Komputer dan Lawan Teman
c. Halaman Statistik
Berikut rancangan tampilan halaman Statistik.
PEMENANG LEVEL
KOMPUTER PEMAIN LEVEL
Gambar 3.23 Antarmuka Halaman Statistik
d. Halaman Panduan
38
PANDUAN
Gambar 3.24 Antarmuka Halaman Panduan
e. Halaman Tentang
Berikut rancangan tampilan halaman Tentang.
TENTANG
Gambar 3.25 Antarmuka Halaman Tentang
f. Papan Permainan
LOGO
Papan Permainan
Bidak
Player 12 12 Bidak AI
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Implementasi dan pengujian sistem sesuai dengan analisis dan perancangan sistem pada bab sebelumnya akan dijelaskan pada bab ini. Penjelasan tentang implementasi sistem dilakukan untuk mengetahui hasil dari aplikasi yang dirancang dan pengujian sistem dilakukan untuk membuktikan jika aplikasi dapat berjalan baik pada perangkat Android.
4.1 Implementasi
Implementasi aplikasi Permainan Mill dibuat menggunakan bahasa pemrograman
Java berbasis Android dengan menggunakan Android Developer Tool (ADT) Eclipse JunoBuild: v21.1.0-569685.
4.1.1 Spesifikasi Perangkat Lunak
Adapun spesifikasi perangkat lunak yang digunakan dalam membangun dan menjalankan software adalah :
1. Windows 7 Home Premium 64-bit
2. Eclipse Juno
3. Android Operating System versi 4.2.2 (Jelly Bean)
4. CorelDRAW X4
Untuk perangkat android digunakan adalah LG G2.
4.1.2 Spesifikasi Perangkat Keras
Adapun spesifikasi perangkat keras yang digunakan dalam membangun dan menjalankan software adalah :
1. Processor: Intel(R)Core(TM)i7-2677M CPU T6500 @1.80GHz(4 CPUs).
2. Memory(RAM): 6 GB
3. Hard Disk 125 GB
4.2 Tampilan Aplikasi
4.2.1 Tampilan Halaman Menu Utama
Pada halaman menu utama ditampilkan tombol-tombol menu yang dapat dipilih pemain diantaranya menu lawan komputer untuk melawan AI, menu lawan teman untuk melawan pemain lain secara bergantian (bermain dalam 1 perangkat) , dan menu statistik untuk melihat riwayat hasil pertandingan sebelumnya dari pemain baik melawan AI ataupun melawan teman. Tampilan halaman menu utama pada permainan Mill dapat dilihat pada gambar 4.1.
Gambar 4.1 Tampilan Halaman Menu Utama
4.2.2 Tampilan Halaman Menu Lawan Komputer
42
sebanyak-banyaknya hingga akhir putaran permainan. Menu Tampilan halaman menu lawan komputer dapat dilihat pada gambar 4.2
Gambar 4.2 Halaman Lawan Komputer
4.2.2.1 Pilihan Lomba 1 Mill lawan komputer
Gambar 4.3 Pilihan Lomba 1 Mill Lawan Komputer
4.2.2.2 Pilihan Lomba Banyak Mill lawan komputer
Tampilan pilihan lomba banyak mill pada halaman lawan komputer hampir sama dengan tampilan pilihan lomba 1 mill tetapi dalam kotak dialog pilihan lomba banyak mill ini, penulis menambahkan pilihan jumlah putaran yang akan dimainkan. Tampilan pilihan lomba banyak mill lawan komputer dapat dilihat pada gambar 4.4
44
4.2.3 Tampilan Halaman Menu Lawan Teman
Tampilan halaman menu lawan teman hampir sama dengan tampilan halaman lawan komputer tetapi dalam menu lawan teman ini, lomba 1 mill dan lomba banyak mill diperlombakan untuk 2 pemain yang menggunakan perangkat. Tampilan halaman menu lawan teman dapat dilihat pada gambaar 4.5
Gambar 4.5 Halaman Lawan Teman
4.2.3.1 Pilihan Lomba 1 Mill Lawan Teman
Tampilan pilihan lomba 1 Mill berisi kotak dialog yang hanya berisi pilihan siapa terlebih dahulu main ( pemain 1 atau pemain 2). Tampilan pilihan lomba 1 mill
Gambar 4.6 Pilihan Lomba 1 Mill Lawan Teman
4.2.3.2 Pilihan Lomba Banyak Mill Lawan Teman
Tampilan pilihan lomba banyak mill berisi kotak dialog yang berisi jumlah putaran permainan yang dimainkan dan pilihan siapa terlebih dahulu main (pemain 1 atau pemain 2). Tampilan pilihan lomba 1 mill lawan teman dapat dilihat pada gambar 4.7
46
4.2.4 Halaman Papan Permainan
Halaman papan permainan menampilkan papan permainan yang terbentuk dari 24 node yang akan diisi oleh bidak pemain maupun komputer. Pada papan permainan ini , penulis sudah menentukan pemain akan memakai bidak putih, sedangkan
komputer akan menggunakan bidak merah. Permainan dilakukan secara bergiliran dimulai dari pemain ataupun AI. Pada halaman papan permainan juga ditampilkan jumlah batu yang tersisa di bawah papan permainan, dimana setiap pemain maupun AI diberikan 12 batu masing-masing sebelum permaianan dimulai. Sedangkan setelah menekan tombol pilihan perangkat, akan muncul reset board
yang berguna mengkosongkan semua node yang berisi bidak. Tampilan halaman papan permainan dapat dilihat pada gambar 4.8
Gambar 4.8 Papan Permainan
Pemain dan komputer saling meletakkan bidak di papan, dan tampilan jumlah batu di bawah papan permainan pun berkurang. Pada permainan lomba 1 mill
yang berisi pemain atau komputer telah menang serta tombol menu untuk kembali ke menu utama dan tombol main lagi untuk memulai permainan baru. Tampilan notifikasi tersebut dapat dilihat pada gambar 4.9 dan gambar 4.10
Gambar 4.9 Notifikasi-1 Gambar 4.10 Notifikasi-2
48
Gambar 4.11 Notifikasi-3 Gambar 4.12 Notifikasi-4
4.2.5 Halaman Statistik
Halaman Statistik menampilkan riwayat permainan yang telah dimainkan oleh pemain. Tampilan halaman statistik dapat dilihat pada gambar 4.13
4.2.6 Halaman Panduan
Halaman Panduan menampilkan panduan cara bermain mill dapat dilihat pada gambar 4.14
Gambar 4.14 Halaman Panduan
4.2.7 Tentang
Halaman tentang menampilkan informasi pengembang aplikasi permainan mill
dapat dilihat pada gambar 4.15
50
4.3 Pengujian
Pengujian aplikasi merupakan proses pemeriksaan atau evaluasi sistem untuk mengetahui apakah aplikasi yang dibangun sudah dapat berjalan sesuai dengan yang diharapkan penulis dan pengguna. Pengujian aplikasi permainan mill
dilakukan pada LG G2. Adapun spesifikasi LG G2 yang digunakn adalah : 1. Sistem Operasi Android (Jelly Bean).
2. Layar sentuh 5.2"
3. Resolusi layar (1920 X 1080)
4.3.1 Pengujian Integrasi
Pada tahapan pengujian ini dilakukan evaluasi pada setiap proses dalam aplikasi permainan mill. Metode yang digunakan pada tahap pengujian aplikasi 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 ini , hasil eksekusi aplikasi akan dibandingkan dengan hasil yang diharapkan oleh penulis. Jika hasil eksekusi aplikasi sesuai dengan yang diharapkan, maka aplikasi dianggap berhasil. Sebaliknya, jika hasil eksekusi tidak sesuai harapan maka diperlukan perbaikan terhadap aplikasi.
4.3.2 Pengujian Antarmuka Aplikasi
Tabel 4.1 Kategori Pemberian Nilai
Untuk lebih jelasnya ,hasil kuesioner dapat dilihat pada lampiran B. Hasil penilaian antarmuka aplikasi yang diperoleh dapat dilihat pada Tabel 4.2
Tabel 4.2 Sasaran Penilaian antarmuka aplikasi
No. Sasaran Penilaian Sangat
Baik Baik Cukup Buruk
Dari hasil kuesionar antarmuka tersebut, kemudian dapatdihitung nilai setiap sasaran penilaian dengan menggunakan persamaan (1)
Qk = (f/N) * Ik (1)
dimana :
Qk = nilai setiap k (k=sangat baik ,baik,cukup,buruk dan sangat buruk)
No. Pilihan Jawaban Bobot Nilai
1. Sangat Baik 5
2. Baik 4
3. Cukup 3
4. Buruk 2
52
f = total responden dalam k N = jumlah responden Ik = nilai k
Berikut perhitungan terhadap sasaran penilaian berdasarkan persamaan (1).
1. Desain Aplikasi Secara Umum
Qsangat baik + Qbaik + Qcukup + Qburuk + Qsangat buruk = (1/8)*5 + (3/8)*4 + (4/8)*3 + (0/8)*2 + (0/8)*1 = 3,625
2. Tampilan papan permainan
Qsangat baik + Qbaik + Qcukup + Qburuk + Qsangat buruk = (4/8)*5 + (4/8)*4 + (0/8)*3 + (0/8)*2 + (0/8)*1 = 4,5
3. Warna papan permainan dan bidak
Qsangat baik + Qbaik + Qcukup + Qburuk + Qsangat buruk = (1/8)*5 + (5/8)*4 + (2/8)*3 + (0/8)*2 + (0/8)*1 = 3,875
4. Tampilan animasi permainan
5. Desain Tombol Menu
Qsangat baik + Qbaik + Qcukup + Qburuk + Qsangat buruk = (0/8)*5 + (2/8)*4 + (4/8)*3 + (2/8)*2 + (0/8)*1 = 2,9
Kemudian dapat dihitung nilai total keseluruhan dari aspek antarmuka dengan menggunakan persamaan (2).
Qtotal = ∑Qk/n (2)
dimana :
Qtotal = Nilai untuk keseluruhan penilaian n = jumlah sasaran penilaian
Sehingga diperoleh nilai keseluruhan sebagai berikut : Qtotal = (3,625 + 4,5 + 3,875 + 2,65 + 2,9) / 5
= 3,51
Qtotal yang didapatkan bernilai 3,51 yang berarti bahwa hasil penilaian pengguna terhadap aspek antar muka pengguna aplikasi permainan mill adalah 'Cukup' .
4.3.3 Pengujian Penggunaan Aplikasi
54
Tabel 4.3 Sasaran Penilaian penggunaan aplikasi
No. Sasaran Penilaian Sangat
Baik Baik Cukup Buruk
Dari hasil kuesionar penggunaan aplikasi tersebut, kemudian dapatdihitung nilai setiap sasaran penilaian. Berikut perhitungan terhadap sasaran penilaian berdasarkan persamaan (1).
1. Kemudahan menjalankan aplikasi
= (1/8)*5 + (5/8)*4 + (2/8)*3 + (0/8)*2 + (0/8)*1 = 3,875
Kemudian dapat dihitung nilai total keseluruhan dari aspek penggunaan aplikasi dengan menggunakan persamaan (2).
Qtotal = ∑Qk/n (2)
dimana :
Qtotal = Nilai untuk keseluruhan penilaian n = jumlah sasaran penilaian
Sehingga diperoleh nilai keseluruhan sebagai berikut : Qtotal = (4,375 + 4,75 + 3,875) / 3
= 4,33
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil analisa dan pengujian yang dilakukan pada bab sebelumnya, maka kesimpulan yang dapat diambil adalah sebagai berikut:
1. Algoritma Greedy dapat diterapkan dalam menemukan langkah terbaik yaitu peletakan bidak oleh AI.
2. Fungsi Prioritas yang dipadukan dengan Algoritma Greedy menjadikan AI
lebih kompetitif baik dalam memprioritaskan untuk membentuk Millnya sendiri ataupun untuk menghalangi pemain membentuk Mill.
5.1. Saran
Beberapa saran yang dapat penulis berikan untuk pengembangan selanjutnya antara lain :
1. Menggunakan algoritma lain yang lebih efisien dalam hal pencarian langkah terbaik membentuk Mill dibanding algoritma Greedy.
2. Menambah jumlah node dan path yang lebih banyak sehingga ruang pencarian lebih luas.
DAFTAR PUSTAKA
Booch, G. Rumbaugh, J. Jacobsoon, I. (2005). Unified Modelling Language User Guide. Addison-Wesley Professional.
Coppin, Ben. 2004. Artificial intelligence Illuminated. United States of America: Jones and Bartlett.
Gargenta, M. 2011. Learning Android. United States of America: O’Reilly Media. Hayati, A. 2007. Beberapa implementasi algoritma greedy dalam permainan
congklak.
Kemit, L. 2011. Penentuan Langkah dengan Greedy dalam Permainan Ludo.
Kusumadewi, S., Artificial intelligence (Teknik dan Aplikasinya), Yogyakarta: Graha Ilmu, 2003
Munir, R. 2007. Strategi Algoritma . Teknik Informatika: Bandung.
Prasetyo, R.M.K. Penyelesaian Permainan Checkers Pada Mobile Device Berbasis Android Menggunakan Algoritma Iterative Deepening Search. Skripsi. Universitas Sumatera Utara
Russell, S. J. dan Norvig, P. 2010. Artificial intelligence: A Modern Approach.
Third Edition. New Jersey: Pearson Education.
Safaat H, N. 2012. Pemrograman Aplikasi Mobile Smartphone Dan Tablet PC Berbasis Android. Bandung: Informatika Bandung.
Samuel, J. 2007. Analisa penggunaan algoritma greedy pada permainan “fivelink” T. Sutojo, S.Si., M.Kom., Edy Mulyanto, S.Si., M.Kom., Dr. Vincent
Suhartono, Kecerdasaan Buatan, Yogyakarta : Andi, 2011 Zechner, M. 2011. Beginning Android Games. New York: Apress.
58
LAMPIRAN LISTING PROGRAM
int prioritas[] = new int[arrayMil.length];
for (int i = 0; i < arrayMil.length; i++) {
if (jumlahPemainPadaPathTarget[i] == 0
&& jumlahKomputerPadaPathTarget[i] == 0) {
prioritas[i] = 0;
} else if (jumlahPemainPadaPathTarget[i] == 1
&& jumlahKomputerPadaPathTarget[i] == 0) {
prioritas[i] = 10;
} else if (jumlahPemainPadaPathTarget[i] == 2
&& jumlahKomputerPadaPathTarget[i] == 0) {
prioritas[i] = 100;
} else if (jumlahPemainPadaPathTarget[i] == 1
&& jumlahKomputerPadaPathTarget[i] == 1) {
prioritas[i] = 1;
60
&& jumlahKomputerPadaPathTarget[i] == 1) {
prioritas[i] = 20;
} else if (jumlahPemainPadaPathTarget[i] == 0
&& jumlahKomputerPadaPathTarget[i] == 2) {
prioritas[i] = 200;
}
}
3.Listing Program Fungsi Seleksi dan Kelayakan
int path_prioritas_tertinggi = 0;
int id_prioritas_tertinggi = -1;
// cari prioritas tertinggi (FUNGSI SELEKSI DAN KELAYAKAN)
for (int i = 0; i < arrayMil.length; i++) {
if (path_prioritas_tertinggi < prioritas[i]) { path_prioritas_tertinggi = prioritas[i];
int random_tertinggi = new Random().nextInt(size);
// random_tertinggi jadikan id prioritas tertinggi (FUNGSI OBJEKTIF) id_prioritas_tertinggi = daftar_prioritas_tertinggi
62
Nama : Jurusan : Angkatan : Tanda tangan :
Judul : Penerapan Algoritma Greedy Pada Permainan Mill Berbasis Android
Responden menilai dengan cara men-check list (√)
A. Penilaian aspek antar muka
No Penilaian aspek antar muka Sangat baik
Baik Cukup Buruk Sangat buruk 1 Desain aplikasi secara umum
2 Tampilan Papan Permainan 3 Warna Papan dan bidak 4 Tampilan animasi permainan 5 Desain tombol menu
B. Penilaian aspek pengguna aplikasi
No Penilaian aspek pengguna aplikasi
Sangat baik
Baik Cukup Buruk Sangat buruk 1 Kemudahan Menjalankan
Aplikasi
2 Kesesuaian tingkat kesulitan AI
3 Aturan Permainan .