APLIKASI ALGORITMA GREEDY DAN PROGRAM DINAMIS (DYNAMIC PROGRAMMING) PADA PERMAINAN GREDDY SPIDERS.

(1)

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

APLIKASI ALGORITMA GREEDY DAN PROGRAM DINAMIS (DYNAMIC PROGRAMMING) PADA PERMAINAN GREDDY SPIDERS

SKRIPSI

Diajukan untuk Memenuhi Sebagian dari Syarat untuk Memperoleh Gelar Sarjana Sains

Program Studi Matematika Konsentrasi Terapan

Oleh

IKA ZULHIDAYATI 0900626

PROGRAM STUDI MATEMATIKA JURUSAN PENDIDIKAN MATEMATIKA

FAKULTAS PENDIDIKAN MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS PENDIDIKAN INDONESIA


(2)

ii

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu IKA ZULHIDAYATI

APLIKASI ALGORITMA GREEDY DAN PROGRAM DINAMIS (DYNAMIC PROGRAMMING) PADA PERMAINAN GREEDY SPIDERS

DISETUJUI DAN DISAHKAN OLEH

PEMBIMBING : Pembimbing 1

Kartika Yulianti, S.Pd., M.Si NIP : 198207282005012001

Pembimbing II

Utari Wijayanti, S.Kom., M.Si NIP : 197608202010122003

Mengetahui

Ketua Jurusan Pendidikan Matematika

Drs. Turmudi, M.Ed., M.Sc., Ph.D. NIP : 196101121987031003


(3)

iii

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

APLIKASI ALGORITMA GREEDY DAN PROGRAM DINAMIS (

DYNAMIC

PROGRAMMING

) PADA PERMAINAN

GREEDY SPIDERS

Oleh Ika Zulhidayati

Sebuah skripsi yang diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana pada Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam

© Ika Zulhidayati 2013 Universitas Pendidikan Indonesia

Agustus 2013

Hak Cipta dilindungi undang-undang.

Skripsi ini tidak boleh diperbanyak seluruhya atau sebagian, dengan dicetak ulang, difoto kopi, atau cara lainnya tanpa ijin dari penulis.


(4)

viii

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

ABSTRAK

Semakin pesatnya perkembangan teknologi, perkembangan games pun semakin maju. Greedy Spiders merupakan salah satu game untuk smartphone yang berbasis seperti Android yang dikembangkan oleh Blyts sebuah software house. Pada game ini terdapat laba-laba yang ingin memakan serangga yang terjebak di jaring laba-laba tersebut. Laba-laba tersebut merupakan Artificial Intelligence (AI) pada permainan ini, yang akan menjadi lawan bagi pemain dalam menyelesaikan permainan ini. Tugas pemain adalah menyelamatkan serangga yang terjebak sehingga laba-laba tidak dapat memakan serangga tersebut dengan cara memutuskan beberapa sisi pada jaring laba-laba. Algoritma Greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. Algoritma Greedy membentuk solusi langkah per langkah. Program Dinamis (Dynamic Programming) adalah suatu metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage) sedemikian sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. Pada program dinamis, rangkaian keputusan yang optimal dibuat dengan menggunakan Prinsip Optimalitas, dengan prinsip optimalitas ini dijamin bahwa pengambilan keputusan pada suatu tahap adalah keputusan yang benar untuk tahap-tahap selanjutnya. Algoritma Greedy digunakan untuk mengetahui pergerakan laba-laba, kemudian program dinamis (dynamic programming) pada permainan Greedy Spiders digunakan untuk mencari solusi optimal dari pergerakan laba-laba ke serangga, yaitu mencari jalur terpendek dari pergerakan laba-laba ke serangga sehingga pemain dapat memutuskan jaring mana yang akan dipotong untuk memperoleh hasil yang maksimal atau dalam hal ini pemain dapat memperoleh skor tertinggi.

Kata Kunci: Algoritma Greedy, Program Dinamis (Dynamic Programming), serangga, jaring laba-laba, laba-laba.


(5)

ix

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

ABSTRACT

As the technology rapidly develops, the development of games follows. Greedy Spiders is a game for smartphone with such system as Android developed by Blyts, a software house. There is spider in this game wishing to eat insects that are trapped on a spider web. The spider is an Artificial Intelligence (AI) in this

game, which will be the opponent of player in completing this game. Player’s duty

is to save the trapped insects, so that the spider will not get any chance to eat those insects. The step is to cut the spider web by tapping it. Greedy algorithm is one most popular method in solving optimization problems. It provides step by step solution. Dynamic programming is a problem shooting method which disentangles solutions into a set of steps in such a way, so that the solution of the problem is known as a combination of interrelated conclusions. On dynamic programming, an optimum combination of conclusions is made by applying principle of optimally, this principle guarantees that a conclusion taken on one step will be the correct conclusion on the following steps. Greedy algorithm is

used in noticing the spider’s movement, while, dynamic programming on Greedy Spiders game is used to find the optimal solution of it, which is to find the shortest path between spider and insects so the player can decide which nets to cut in which it aims at getting the best result, or, in this case to get the highest score. Keywords: Greedy Algorithm, Dynamic Programming, insects, spider web, spider.


(6)

x

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

DAFTAR ISI

PERNYATAAN ... iv

KATA PENGANTAR ... vi

UCAPAN TERIMA KASIH ... vii

ABSTRAK ... viii

ABSTRACT ... ix

DAFTAR ISI ... x

DAFTAR GAMBAR ... xii

DAFTAR ISTILAH ... xiii

BAB IPENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 4

1.3 Batasan Masalah ... 4

1.4 Tujuan Penulisan ... 4

1.5 Manfaat Penulisan ... 4

1.6 Definisi Operasional ... 5

1.7 Sistematika Penulisan ... 5

BAB II KAJIAN PUSTAKA ... 7

2.1 Greedy Spiders ... 7

2.1.1 Level ... 9

2.1.2 Serangga ... 10

2.2 Konsep Dasar Teori Graf ... 11

2.2.1 Definisi Graf ... 11

2.3 Lintasan ... 12

2.4 Sisi Pemotong ... 13

2.5 Keterhubungan sisi ... 14


(7)

xi

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

3.1 Algoritma Greedy ... 17

3.1.1 Skema Umum Algoritma Greedy ... 17

3.2 Program Dinamis (Dynamic Programming) ... 19

3.2.1 Konsep Dasar ... 19

3.2.2 Skema Umun Program Dinamis ... 23

3.2.2.1 Prinsip Optimalitas 23 3.2.2.2 Karakteristik Persoalan Program Dinamis 24 3.2.2.3 Dua Pendekatan Program Dinamis 25 3.2.2.4 Langkah-langkah Pengembangan Algoritma Program Dinamis 26 BAB IV STUDI KASUS ... 30

4.1 Deskripsi Masalah ... 30

4.2 Aplikasi Algoritma Greedy dan Program Dinamis ... 32

4.2.1 Level 1-6 ... 32

4.2.2 Level 1-7 ... 36

4.2.3 Level 1-10 ... 42

4.2.4 Level 1-13 ... 48

4.2.5 Level 1-17 ... 54

4.3 Tampilan Hint dengan Program Delphi ... 57

4.3.1 Tampilan Hint pada Level 1-6 ... 57

4.3.2 Tampilan Hint pada Level 1-7 ... 59

4.3.3 Tampilan Hint pada Level 1-10 ... 60

BAB V PENUTUP ... 62

5.1 Kesimpulan ... 62

5.2 Saran ... 63

DAFTAR PUSTAKA ... 64


(8)

xii

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

DAFTAR GAMBAR

Gambar 2- 1 Menu Utama pada Game Greedy Spiders ... 8

Gambar 2- 2 Empat Level Utama pada Game Greedy Spiders ... 9

Gambar 2- 3 Contoh Interface pada Game Greedy Spiders ... 9

Gambar 2- 4 Jenis Serangga pada Game Greedy Spiders ... 10

Gambar 2- 5 Tap pada Jaring Laba-laba ... 11

Gambar 2- 6 Representasi Graf ... 12

Gambar 2- 7 Graf Sederhana dan Graf Terhubung ... 12

Gambar 2- 8... 13

Gambar 2- 9... 14

Gambar 2- 10... 15

Gambar 2- 11... 16

Gambar 3- 1... 20

Gambar 3- 2... 21

Gambar 3- 3... 23

Gambar 3- 4 Graf Multitahap (multistage graph) ... 25

Gambar 3- 5 Lintasan Terpendek (shortest path) ... 26

Gambar 4- 1 Titik Kemungkinan Terbesar ... 31

Gambar 4- 2 Titik Kemungkinan Terbesar pada Level 1-6 ... 33

Gambar 4- 3 Tiga Sisi yang Berjarak Satu Langkah dari Serangga ... 33

Gambar 4- 4 Titik Kemungkinan Terbesar pada Level 1-7 ... 36

Gambar 4- 5 Enam Sisi yang Berjarak Satu Langkah dari Serangga ... 37

Gambar 4- 6 Titik Kemungkinan Terbesar pada Level 1-10 ... 42

Gambar 4- 7 Lima Sisi yang Berjarak Satu Langkah dari Serangga ... 42

Gambar 4- 8 Titik Kemungkinan Terbesar pada Level 1-13 ... 48

Gambar 4- 9 Lima Sisi yang Berjarak Satu Langkah dari Serangga ... 49

Gambar 4- 10 Titik Kemungkinan Terbesar pada Level 1-17 ... 55

Gambar 4- 11 Dua Sisi yang Berjarak Satu Langkah dari Serangga ... 55

Gambar 4- 12... 58

Gambar 4- 13... 58

Gambar 4- 14... 59

Gambar 4- 15... 60

Gambar 4- 16... 60


(9)

xiii

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu DAFTAR ISTILAH

Smartphone : Smartphone atau telepon pintar adalah telepon genggam yang mempunyai kemampuan tingkat tinggi, kadang-kadang dengan fungsi yang menyerupai komputer.

Entry-level : Smartphone Android versi Entry-level biasanya disajikan dengan spesifikasi terbaik dengan OS Android versi menengah hingga paling baru.

High-end : Smartphone Android level High-end adalah smartphone yang memiliki kelebihan dari segi fitur, hardware, dan teknologi serta versi OS Android tertinggi.

Platform : Sistem operasi, atau tempat suatu aplikasi dijalankan.

Android : Android adalah sistem operasi yang berbasis Linux untuk telepon seluler seperti telepon pintar dan komputer tablet.

iOS : iOS (sebelumnya iPhone OS) adalah sistem operasi perangkat bergerak yang dikembangkan dan didistribusikan oleh Apple Inc.

Blackberry : Perangkat genggam nirkabel yang dikembangkan oleh perusahaan Blackberry.

Windows Phone 7 : Ponsel yang menggunakan sistem operasi windows (mobile).

Gadget : Sebuah obyek atau barang elektronik teknologi kecil yang memiliki fungsi khusus.

Game : Permainan.


(10)

xiv

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

Personal Computer (PC) : Istilah yang sering digunakan sehari-hari untuk komputer.

Vendor : lembaga, perorangan atau pihak ketiga yang menyediakan bahan, jasa, produk.

Konsol : Istilah yang digunakan untuk sebuah mesin atau sistem yang dirancang khusus untuk memainkan game.

Multiplayer : Mode permainan yang anggota pemainnya lebih dari satu dan dapat berbentuk sebuah tim.

LAN : Local Area Network merupakan suatu jenis jaringan komputer dengan mencakup wilayah lokal.

Bluetooth : Spesifikasi industri untuk jaringan kawasan pribadi tanpa kabel dengan jarak terbatas.

Wi-Fi : Wireless Fidelity adalah koneksi tanpa kabel seperti handphone dengan menggunakan teknologi radio.

Fitur : Suatu aspek, kualitas atau ciri yang menonjol sehingga menjadi daya tarik suatu produk.

Portabilitas : Kemampuan sebuah program untuk berjalan pada lebih dari satu jenis sistem komputer tanpa modifikasi.

Fleksibilitas : Kemampuan untuk bekerja dengan efektif dalam situasi yang berbeda.

Joystick : Suatu perangkat input yang terdiri dari tongkat yang berporos di pangkalan dan pada sudut pangkal terdapat terdapat tombol perangkat untuk mengarahkan atau mengendalikan.

Online : On yang dimaksud di sini adalah hidup di dalam dunia maya dengan sebutan online.

Game Online : Jenis permainan komputer yang memanfaatkan jaringan komputer (LAN atau internet), sebagai medianya.


(11)

xv

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

Puzzle game : Permainan teka-teki yang membutuhkan logika dan menantang kecerdasan seperti matematika.

Software : Istilah umum yang digunakan untuk semua jenis program komputer , menggambarkan koleksi program, prosedur dan dokumentasi komputer yang melakukan beberapa tugas pada sebuah sistem komputer.

Software house : Suatu perusahaan yang memproduksi berbagai keperluan software tertentu.

AI : Artificial Intelligent atau kecerdasan buatan adalah suatu cabang dalam bidang sains komputer yang mengkaji tentang bagaimana melengkapi sebuah komputer dengan kemampuan atau kepintaran seperti manusia. Seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer dan game.

Interface : Sarana atau sistem operasi yang digunakan untuk menghubungkan antara perangkat mikroprosesor agar dapat berkomunikasi dengan pengguna (user).


(12)

1

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Pesatnya perkembangan teknologi diikuti pula dengan semakin tingginya kebutuhan akan penggunaan perangkat telepon pintar (smartphone) dengan mulai dari entry-level hingga high-end. Smartphone dengan berbagai platform, mulai dari Android, iOS, BlackBerry hingga Windows Phone 7 telah merambah di pasar gadget di seluruh belahan dunia, termasuk Indonesia. Kehadiran berbagai perangkat smartphone ternama berbasis Android dipasaran tampaknya sudah berhasil menjangkau berbagai kalangan pengguna. Android merupakan sistem operasi besutan Google. Sebanyak 39,63 persen pembuat games yang disurvei mengaku tertarik untuk mengembangkan game pada sistem operasi tersebut (tekno.liputan6.com).

Seiring majunya perkembangan teknologi, perkembangan games pun seolah tidak mau ketinggalan. Para vendor bersaing membuat games yang dapat merebut hati para gamers melalui games besutannya. Para penyuka games pun semakin mewabah dan memasuki berbagai kalangan umur.

Awalnya games berupa konsol dengan layar televisi sebagai audionya. Lalu, games pun ikut muncul di komputer atau personal computer (pc), tak ketinggalan juga telepon seluler mulai meyuguhkan aplikasi games. Lalu, games yang biasanya hanya bisa dimainkan seorang diri yang melawan komputer berkembang menjadi multiplayer, yang dapat dimainkan lebih dari satu orang dengan pc yang berbeda dengan memanfaatkan LAN (Local Area Network). Dan sekarang games pada smartphone, yang tidak hanya dapat dibawa kemana-mana namun dapat juga bermain multiplayer dengan memanfaatkan bantuan bluetooth, LAN ataupun wifi.

Selain karena nyaman dengan fitur-fitur yang menunjang, games pada smartphone mendapat tempat tersendiri bagi pecinta games dikarenakan


(13)

2

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

portabilitas dan fleksibilitasnya serta kemampuan yang tak kalah dari games konsol, dan juga ada beberapa jenis smartphone yang kini menyediakan joystick ke dalam smartphone mereka sehingga memanjakan para pecinta game untuk bermain. Smartphone yang diduga menjadi saingan games konsol ini adalah smartphone berbasis Android dan iOS. Kedua smartphone ini menyuguhkan games dalam tampilan yang menakjubkan seperti halnya tampilan yang disuguhkan oleh games konsol, dengan adanya perangkat pendukung grafis maka tampilan games pada smartphone pun semakin tidak kalah dengan games konsol. Terlebih lagi dengan adanya koneksi wifi ataupun fungsi bluetooth yang membuat para gamers dapat “berperang” melawan gamers lainnya dalam satu permainan. Bahkan bukan hanya dua orang namun dapat lebih banyak lagi sesuai dengan games-nya, dan fungsi internet yang membuat pemain dapat menjangkau pemain lainnya yang jauh seperti games online. Selain itu, banyak aplikasi-aplikasi lain yang membuat smartphone lebih unggul dibanding games konsol yang hanya menyediakan permainan saja.

Greedy Spiders merupakan salah satu game untuk smartphone yang berbasis seperti Android. Pada game ini terdapat laba-laba yang ingin memakan serangga yang terjebak di jaring laba-laba tersebut. Laba-laba tersebut merupakan Artificial Intelligence (AI) pada permainan ini yang akan menjadi lawan bagi pemain dalam menyelesaikan permainan ini. Tugas pemain adalah menyelamatkan serangga yang terjebak sehingga laba-laba tidak dapat memakan serangga tersebut.

Dalam kehidupan sehari-hari, banyak persoalan yang menuntut pencarian solusi optimum. Persoalan optimasi adalah persoalan yang tidak hanya sekedar mencari solusi, melainkan mencari solusi terbaik. Solusi terbaik adalah solusi yang memiliki nilai minimum atau maksimum dari sekumpulan alteranatif solusi yang mungkin. Algoritma Greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. Algoritma Greedy membentuk solusi langkah per langkah. Prinsip Greedy adalah “take what you can get now.” Secara harfiah greedy artinya rakus atau tamak, sifat yang akan mengambil sebanyak mungkin


(14)

3

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

atau mengambil langkah yang paling bagus atau yang paling mahal. Sesuai dengan arti tersebut, algoritma ini akan mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan. Masalah seperti memilih beberapa jenis investasi atau mencari jalur tersingkat yang sering ditemui sehari-hari dapat diselesaikan dengan menggunakan algoritma greedy.

Program Dinamis (Dynamic Programming) adalah suatu metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage) sedemikian sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. Pemograman dinamis menggambarkan proses pemecahan masalah untuk menemukan suatu keputusan yang terbaik. Program dinamis akan memecahkan masalah, kemudian solusi optimal yang dihasilkan dapat dipandang sebagai suatu deret keputusan dari masalah tersebut. Pada program dinamis, rangkaian keputusan yang optimal dibuat dengan menggunakan prinsip optimalitas, dengan prinsip optimalitas ini dijamin bahwa pengambilan keputusan pada suatu tahap adalah keputusan yang benar untuk tahap-tahap selanjutnya. Persoalan partisi merupakan persoalan yang sering diterapkan dalam kehidupan sehari-hari seperti misalnya pada persoalan pembagian pekerjaan. Persoalan membagi pekerjaan untuk dikerjakan oleh n pekerja secara efisien sedemikian sehingga setiap pekerja mendapat pekerjaan yang relatif sama. Penyelesaian persoalan ini salah satunya dengan menggunakan algoritma program dinamis. Suatu pekerjaan yang berskala besar seringkali harus dikerjakan oleh banyak pekerja. Pekerjaan skala besar itu biasanya dapat dibagi-bagi menjadi beberapa dibagi-bagian pekerjaan yang masing-masing dibagi-bagian memiliki bobot tertentu. Pembagian bobot pekerjaan selayaknya relatif sama (perbedaan bobot yang diterima setiap pekerja dibuat seminimum mungkin) untuk setiap pekerja. Cara pembagian dengan memperhitungkan bobot tersebut dapat mengefisienkan waktu pengerjaan dan juga mendapatkan hasil yang optimal.

Berdasarkan uraian di atas, penulis tertarik untuk mengkaji penggunaan dan aplikasi algoritma greedy dan program dinamis (dynamic programming) pada


(15)

4

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

game Greedy Spiders karena untuk menyelesaikan suatu game dibutuhkan logika permainan yang tinggi, berbeda dengan persoalan yang sering ditemui dalam kehidupan sehari-hari. Logika untuk menyelesaikan game lebih rumit, untuk selanjutnya skripsi ini diberi judul “Aplikasi Algoritma Greedy dan Program Dinamis (Dynamic Programming) pada Permainan Greedy Spiders.”

1.2 Rumusan Masalah

Berdasarkan latar belakang masalah di atas, permasalahan yang akan diangkat dalam skripsi ini dapat dirumuskan sebagai berikut:

1. Bagaimana kajian secara teoritis tentang algoritma greedy dan program dinamis?

2. Bagaimana aplikasi dari algoritma greedy dan program dinamis pada permainan Greedy Spiders?

1.3 Batasan Masalah

Dalam penulisan ini, aplikasi algoritma greedy dan program dinamis pada permainan Greedy Spiders dibatasi hanya pada permasalahan untuk menentukan pergerakan spiders dan mencari solusi optimal pada level dasar (time to eat) yang memiliki titik kemungkinan terbesar.

1.4 Tujuan Penulisan

Berdasarkan rumusan masalah di atas, maka tujuan penulisan skripsi ini sebagai berikut:

1. Mengetahui kajian secara teoritis tentang algoritma greedy dan program dinamis.

2. Mengetahui aplikasi dari algoritma greedy dan program dinamis pada permainan Greedy Spiders.

1.5 Manfaat Penulisan

Adapun manfaat dari penulisan skripsi ini dibagi menjadi dua, yaitu: 1. Manfaat Teoritis


(16)

5

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

Penulisan skripsi ini diharapkan dapat memberikan pengetahuan mengenai konsep-konsep algoritma greedy dan program dinamis yang akan diaplikasikan pada permainan Greedy Spiders.

2. Manfaat Praktis

Secara praktis, penulisan skripsi ini diharapkan dapat menjadi masukan tentang bagaimana mengaplikasikan algoritma greedy dan program dinamis. Sehingga diperoleh hint untuk menyelesaikan game Greedy Spiders dengan skor tertinggi.

1.6 Definisi Operasional

Solusi optimal yang dimaksud dalam penulisan ini adalah usaha untuk mencapai skor tertinggi dalam menyelesaikan suatu level dengan cara pemutusan jaring laba-laba seminimal mungkin.

1.7 Sistematika Penulisan

Adapun sistematika penulisan untuk skripsi ini adalah:

BAB I PENDAHULUAN

Mengemukakan latar belakang masalah, rumusan masalah, batasan masalah, tujuan penulisan, manfaat penulisan dan sistematika penulisan.

BAB II KAJIAN PUSTAKA

Mengemukakan landasan teori yang mendukung BAB III diantaranya menjelaskan konsep dasar dari teori graf, lintasan, sisi pemotong, keterhubungan sisi, dan permainan Greedy Spiders itu sendiri.

BAB III ALGORITMA GREEDY DAN PROGRAM DINAMIS

Mengemukakan kajian teoritis tentang Algoritma Greedy dan Program Dinamis (Dynamic Programming).


(17)

6

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

Berisikan deskripsi masalah, penggunaan serta aplikasi dari Algoritma Greedy menentukan pergerakan spiders dan Program Dinamis (Dynamic Programming) untuk mencari solusi optimal pada permainan, dan tampilan hint permainan dengan menggunakan program Delphi.

BAB V KESIMPULAN DAN SARAN

Mencoba merangkum keselurahan hasil pembahasan dalam bentuk kesimpulan dan saran.

DAFTAR PUSTAKA LAMPIRAN


(18)

17

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

BAB III

ALGORITMA GREEDY DAN PROGRAM DINAMIS

3.1 Algoritma Greedy

Algoritma Greedy merupakan metode yang paling populer dalam memecahkan persoalan optimasi. Hanya ada dua macam persoalan optimasi, yaitu maksimasi dan minimasi. Algoritma Greedy adalah algoritma yang memecahkan masalah langkah per langkah. Algoritma Greedy membentuk solusi langkah per langkah. Pada setiap langkah, terdapat banyak pilihan yang perlu dieksplorasi. Oleh karena itu, pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan. Pada setiap langkahya merupakan pilihan, untuk membuat langkah optimum lokal (local optimum) dengan harapan bahwa langkah sisanya mengarah ke solusi optimum global (global optimum). Prinsip Greedy adalah

take what you can get now”, mengambil pilihan yang terbaik yang dapat

diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan (Munir). 3.1.1 Skema Umum Algoritma Greedy

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

1. Himpunan kandidat, C.

Himpunan ini berisi elemen-elemen pembentuk solusi. Pada setiap langkah, satu buah kandidat diambil dari himpunannya.

2. Himpunan solusi, S.

Himpunan ini berisi kandidat-kandidat yang terpilih sebagai solusi persoalan. Dengan kata lain, himpunan solusi adalah himpunan bagian dari himpunan kandidat.

3. Fungsi seleksi (selection function)

Fungsi ini dinyatakan dengan predikat seleksi. Merupakan fungsi yang pada setiap langkah memilih kandidat yang paling memungkinkan


(19)

18

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

mencapai solusi optimal. Kandidat yang sudah dipilih pada suatu langkah tidak pernah dipertimbangkan lagi pada langkah selanjutnya. 4. Fungsi kelayakan (feasible)

Fungsi ini dinyatakan dengan predikat layak. Fungsi kelayakan ini 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 (constraints) yang ada. Kandidat yang layak dimasukkan ke dalam himpunan solusi, sedangkan yang tidak layak dibuang dan tidak pernah dipertimbangkan lagi.

5. Fungsi obyektif

Fungsi obyektif ini merupakan sebuah fungsi yang memaksimumkan atau meminimumkan nilai solusi.

Dengan kata lain, algoritma greedy melibatkan pencarian sebuah himpunan bagian, S, dari himpunan kandidat, C; yang dalam hal ini, S harus memenuhi beberapa kriteria yang ditentukan, yaitu menyatakan suatu solusi dan S dioptimasi oleh fungsi obyektif.

Adakalanya, solusi optimum global yang diperoleh dari algoritma greedy yang diharapakan sebagai solusi optimum dari persoalan, belum tentu merupakan solusi optimum (terbaik), tetapi solusi sub-optimum atau pseudo-optimum. Hal ini dikarenakan algoritma greedy tidak beroperasi secara menyeluruh terhadap semua alternatif solusi yang ada dan terdapat beberapa fungsi seleksi yang berbeda, yaitu jika fungsi seleksi tidak identik dengan fungsi obyektif karena fungsi seleksi biasanya didasarkan pada fungsi obyektif. Sehingga harus dipilih fungsi yang tepat jika menginginkan algoritma menghasilkan solusi optimal atau nilai yang optimum. Jadi, pada sebagian masalah algoritma greedy tidak selalu berhasil memberikan solusi yang benar-benar optimum, tetapi algoritma greedy pasti memberikan solusi yang mendekati (approximation) nilai optimum.


(20)

19

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

Jika jawaban terbaik mutlak tidak diperlukan, maka algoritma greedy sering berguna untuk menghasilkan solusi hampiran (approximation), daripada menggunakan algoritma yang lebih rumit untuk menghasilkan solusi yang eksak. Bila algoritma greedy optimum, maka keoptimalannya itu dapat dibuktikan secara matematis (Munir).

3.2 Program Dinamis (Dynamic Programming)

Di dalam ilmu matematika dan ilmu komputer, program dinamis (dynamic programming) didefinisikan sebagai suatu metode penyelesaian masalah untuk permasalahan yang memiliki sifat-sifat overlapping subproblems dan optimal substructure. Istilah dynamic programming pertama kali digunakan pada era 1940-an oleh Richard Bellman.

Program Dinamis digunakan untuk menggambarkan proses penyelesaian masalah dimana solusi yang diinginkan harus benar-benar paling optimum atau biasanya disebut sebagai optimum global (global optimum). Pada Dynamic

Programming, istilah “programming” sama sekali tidak ada hubungannya dengan

pemograman komputer (computer programming). Penggunaan kata

programming” justru berasal dari istilah “mathematical programming”, yang

merupakan sinonim untuk kata “optimization”. Dengan demikian, kata

programming” disini berarti rencana yang optimal (optimal plan) untuk aksi-aksi

yang dihasilkan. Sehingga “programming” bisa diartikan sebagai pencarian rencana aksi-aksi yang dapat diterima (Suyanto, 2010).

3.2.1 Konsep Dasar

Optimal substructure berarti bahwa solusi optimal untuk submasalah-submasalah (subproblems) dapat digunakan untuk menemukan solusi optimal yang utuh untuk masalah yang dihadapi. Sebagai contoh, dalam suatu graf, jalur terpendek (shortest path) dari suatu simpul asal (misalnya S) menuju goal (misalnya G) dapat ditemukan dengan terlebih dulu menghitung sub jalur terpendek dari semua simpul tetangga S menuju goal, dan selanjutnya


(21)

20

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

menggunakan sub jalur terpendek tersebut untuk mendapatkan jalur terpendek yang utuh. Perhatikan Gambar 3-1 di bawah ini

40 30

60 25

70

20

100

15

Gambar 3-1 (Suyanto, 2010)

Gambar di atas merupakan contoh pencarian jalur terpendek (shortest path) dalam suatu graf menggunakan optimal substructure. Garis yang tebal menunjukkan suatu busur tunggal antara dua simpul. Sedangkan garis putus-putus menunjukkan shortest path antara dua simpul, dimana simpul-simpul yang berada diantara kedua simpul tersebut tidak diperlihatkan. Garis tebal menyatakan shortest path yang utuh dari simpul asal S ke simpul tujuan G.

Secara umum, untuk menyelesaikan suatu masalah dengan optimal substructure dapat digunakan tiga langkah berikut :

1. Pecah masalah menjadi submasalah-submasalah yang lebih kecil A

S

B

C

D


(22)

21

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

2. Selesaikan submasalah-submasalah secara optimal menggunakan tiga langkah ini secara rekursif

3. Gunakan solusi-solusi optimal untuk submasalah-submasalah tersebut untuk membangun solusi optimal yang utuh untuk masalah yang dihadapi.

Setiap submasalah diselesaikan dengan cara membaginya kedalam submasalah-submasalah yang lebih kecil, dan seterusnya, sampai mencapai suatu kasus sederhana yang dapat diselesaikan dalam waktu singkat dan konstan.

Suatu masalah dikatakan memiliki overlapping subproblems jika subproblems yang sama digunakan untuk menyelesaikan banyak masalah lain yang lebih besar. Sebagai contoh, perhatikan gambar deret fibonacci pada Gambar 3-2 dibawah ini.

1 1 2 3 5 8 ...

F0 F1 F2 F3 F4 F5 ...

... F5

F4 F3

F1

F0 F2


(23)

22

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu Gambar 3-2

(Suyanto, 2010)

Gambar di atas merupakan graf subproblem untuk deret fibonacci yang menunjukkan adanya overlapping subproblems. Pada deret ini, F0 = F1 = 1. Selanjutnya, F2 = F1 + F0, F3 = F2 + F1, F4 = FF3 + F2, dan seterusnya. Secara umum, deret ini dapat dirumuskan sebagai F0 = F1 = 1 dan = F(n - 1) + F(n - 2) untuk n lebih dari atau sama dengan 2.

Pada deret di atas, F3 = F1 + F2 dan F4 = F2 + F3. Penghitungan F3 dan F4 memerlukan penghitungan F2. Karena F3 dan F4 diperlukan untuk menghitung F5, metode naif untuk menghitung F5 mungkin memerlukan penghitungan F2 sebanyak 2 kali atau lebih. Hal ini dilakukan setiap kali muncul subproblems. Dengan demikian, metode naif akan menghabiskan banyak waktu penghitungan, secara berulang-ulang, solusi-solusi optimal untuk subproblems yang sebenarnya sudah diselesaikan.

Untuk mencegah hal ini, solusi-solusi untuk submasalah-submasalah yang sudah diselesaiakan dapat disimpan. Selanjutnya, jika perlu untuk menyelesaikan masalah yang sama, dapat mengambil dan menggunakan solusi tersebut. Pendekatan ini disebut memoization (bukan memorization, meskipun istilah ini juga sesuai). Jika yakin bahwa tidak akan membutuhkan solusi yang disimpan tersebut, solusi tersebut dapat dihapus untuk menghemat memory. Bahkan dalam beberapa kasus, dapat dihitung terlebih dahulu solusi-solusi mana yang akan dibutuhkan untuk submasalah-submasalah yang diketahui yang nantinya akan diperlukan.

Program dinamis biasanya menggunakan salah satu dari dua pendekatan berikut ini :

Top-down

Masalah dipecah menjadi beberapa submasalah, kemudian submasalah-submasalah tersebut diselesaikan dan solusi-solusinya diingat (dicatat)


(24)

23

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

agar dapat digunakan kembali. Dalam hal ini, recursion dan memoization dikombinasikan secara bersamaan.

Bottom-up

Semua submasalah-submasalah, yang mungkin diperlukan, diselesaikan terlebih dahulu dan kemudian digunakan untuk membangun solusi-solusi untuk masalah-masalah yang lebih besar. Pendekatan ini sedikit lebih baik dalam hal ruang tumpukan (stack space) dan jumlah function calls, tetapi kadang-kadang tidak intuitif untuk menggambarkan semua submasalah yang diperlukan untuk menyelesaikan masalah yang diberikan (Suyanto, 2010).

3.2.2 Skema Umun Program Dinamis

Program Dinamis (Dynamic Programming) merupakan suatu metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage) sedemikian sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. Karakteristik penyelesaian persoalan dengan program dinamis:

1. Terdapat sejumlah berhingga pilihan yang mungkin

2. Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya 3. Menggunakan persyaratan optimasi dan kendala untuk membatasi

sejumlah pilihan yang harus dipertimbangkan pada suatu tahap (Munir).

3.2.2.1 Prinsip Optimalitas

Pada program dinamis, rangkaian keputusan yang optimal dibuat dengan menggunakan Prinsip Optimalitas, dengan prinsip optimalitas ini dijamin bahwa pengambilan keputusan pada suatu tahap adalah keputusan yang benar untuk tahap-tahap selanjutnya. Dikatakan prinsip optimalitas, jika solusi total optimal, maka bagian solusi sampai tahap ke-k juga optimal. Prinsip optimalitas berarti


(25)

24

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

bahwa jika dari tahap k ke tahap k+1, dapat menggunakan hasil optimal dari tahap k tanpa harus kembali ke tahap awal.

Ongkos pada tahap k+1 = (ongkos yang dihasilkan pada tahap k) +

(ongkos dari tahap k ke tahap k+1)

Gambar 3-3 (Munir)

Dengan prinsip optimalitas ini dijamin bahwa pengambilan keputusan pada suatu tahap adalah keputusan yang benar untuk tahap-tahap selanjutnya. Perbedaan antara algoritma greedy dan program dinamis adalah pada metode greedy hanya satu rangkaian keputusan yang pernah dihasilkan, sedangkan pada metode program dinamis lebih dari satu rangkaian keputusan yang memenuhi prinsip optimalitas yang akan dihasilkan (Munir).

3.2.2.2 Karakteristik Persoalan Program Dinamis

Ada beberapa karakteristik persoalan yang dalam penyelesaian dengan menggunakan program dinamis yaitu:

1. Persoalan dapat dibagi menjadi beberapa tahap (stage), yang pada setiap tahap hanya diambil satu keputusan.

2. Masing-masing tahap terdiri dari sejumlah status (state) yang berhubungan dengan tahap tersebut. Secara umum, status merupakan bermacam kemungkinan masukan yang ada pada tahap tersebut.

... ...

1 2 k n

...

k+1


(26)

25

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

3. Hasil dari keputusan yang diambil pada setiap tahap ditransformasikan dari status yang bersangkutan ke status berikutnya pada tahap berikutnya.

4. Ongkos (cost) pada suatu tahap meningkat secara teratur (steadily) dengan bertambahnya jumlah tahapan.

5. Ongkos pada suatu tahap bergantung pada ongkos tahap-tahap yang sudah berjalan dan ongkos pada tahap tersebut.

6. Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang dilakukan pada tahap sebelumnya.

7. Adanya hubungan rekursif yang menidentifikasikan keputusan terbaik untuk setiap status pada tahap k memberikan keputusan terbaik untuk setiap status pada tahap k+1.

8. Prinsip optimalitas berlaku pada persoalan tersebut.

Gambar 3-4 Graf Multitahap (multistage graph) (Munir)

1

3 2

4

6

7

8

9

11 10

5

12


(27)

26

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

Pada gambar di atas, tiap simpul didalam graf tersebut menyatakan status, sedangkan , , ... menyatakan tahap (Munir).

3.2.2.3 Dua Pendekatan Program Dinamis

Dua pendekatan yang digunakan dalam program dinamis: 1. Program dinamis maju (forward atau up-down)

2. Program dinamis mundur (backward atau bottom-up)

Misalkan , , ..., menyatakan peubah (variable) keputusan yang harus dibuat masing-masing untuk tahap 1, 2, ..., n. Maka,

1. Program dinamis maju. Program dinamis bergerak mulai dari tahap 1, terus maju ke tahap 2, 3, dan seterusnya sampai tahap n. Runtunan peubah keputusan adalah , , ..., .

2. Program dinamis mundur. Program dinamis bergerak mulai dari tahap n, terus mundur ke tahap n-1, n-2, dan seterusnya sampai tahap 1. Runtunan peubah keputusan adalah , , ..., .

 Prinsip optimalitas pada program dinamis maju:

ongkos pada tahap k+1 = (ongkos yang dihasilkan pada tahap k)

+

(ongkos dari tahap k ke tahap k+1), dengan k = 1, 2, ..., n-1.

 Prinsip optimalitas pada program dinamis mundur:

ongkos pada tahap k = (ongkos yang dihasilkan pada tahap k+1) +

(ongkos dari tahap k+1 ke tahap k), dengan k = n, n-1, ..., 1 (Munir).


(28)

27

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

3.2.2.4 Langkah-langkah Pengembangan Algoritma Program Dinamis Adapun bagaimana langkah-langkah dalam pengembangan algoritma program dinamis:

1. Karakteristikkan struktur solusi optimal. 2. Definisikan secara rekursif nilai solusi optimal. 3. Hitung nilai solusi optimal secara maju atau mundur. 4. Konstruksi solusi optimal.

Contoh kasus

Tentukan lintasan terpendek dari simpul 1 ke simpul 10 :

Gambar 3-5 Lintasan Terpendek (shortest path) (Munir)

Penyelesaian dengan menggunakan program dinamis mundur

 Misalkan , , ..., adalah simpul-simpul yang dikunjungi pada tahap k (k = 1, 2, 3, 4).

 Maka rute yang dilalui adalah

1 , yang dalam hal ini = 10. Pada persoalan ini,

Tahap (k) adalah proses memilih simpul tujuan berikutnya (ada 4 tahap).

1 3 2 4 5 6 7 8 9 10 7 2 4 3 1 3 4 5 3 3 3 6 4 1 4 6 4 3 2 4


(29)

28

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

 Status (s) yang berhubungan dengan masing-masing tahap adalah simpul-simpul didalam graf.

Relasi rekurens berikut menyatakan lintasan terpendek dari status s ke pada tahap k:

(s) = (basis)

(s) = { + ( )}, (rekurens) k = 1, 2, 3

Keterangan:

: peubah keputusan pada tahap k (k = 1, 2, 3).

: bobot (cost) sisi dari s ke

(s, ) : total bobot lintasan dari s ke (s) : nilai minimum dari (s, )

Tujuan program dinamis mundur: mendapatkan (s), dengan mencari (s), (s), (s) terlebih dahulu.

Tahap 4: (s) =

s Solusi Optimum

(s)

8 3 10

9 4 10

Catatan: adalah nilai yang meminimumkan (s, ). Tahap 3:

(s) = { + ( )}

s (s, ) = + ( ) Solusi Optimum

8 9 (s)


(30)

29

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

6 9 7 7 9

7 6 7 6 7

Tahap 2:

(s) = { + ( )}

s (s, ) = + ( ) Solusi Optimum

5 6 (s)

2 11 11 12 5 atau 6

3 7 9 10 5

4 8 8 11 5 atau 6

Tahap 1:

(s) = { + ( )}

s (s, ) = + ( ) Solusi Optimum

2 3 4 (s)

1 13 11 11 11 3 atau 4

Solusi optimum dapat dibaca pada tabel dibawah ini:

Panjang Lintasan Terpendek

1 3 5 8 10 11


(31)

30

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

6 9 10 11

Jadi ada tiga lintasan terpendek dari 1 ke 10, yaitu: 1 3 5 8 10

1 4 5 8 10 1 4 6 9 10


(32)

62

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

BAB V

PENUTUP

5.1 Kesimpulan

Berdasarkan hasil dari aplikasi algoritma greedy dan program dinamis (dynamic programming) pada permainan Greedy Spiders yang telah dibahas pada bab-bab sebelumnya,diperoleh bahwa :

1. Pada metode algoritma greedy hanya satu rangkaian keputusan yang pernah dihasilkan, oleh karena itu mengapa algoritma greedy digunakan untuk menentukan bagaimana pergerakan laba-laba yang merupakan AI dalam permainan Greedy Spiders. Sedangkan pada metode program dinamis lebih dari satu rangkaian keputusan yang dihasilkan. Hanya rangkaian keputusan yang memenuhi prinsip optimalitas yang akan dihasilkan, oleh karena itu mengapa program dinamis digunakan untuk mencari solusi optimal, yaitu usaha untuk mencapai skor tertinggi dalam menyelesaikan suatu level dengan cara pemutusan jaring laba-laba seminimal mungkindalam menyelesaikan permainan ini. Sehingga pemain dapat menyelesaikan permainan ini dengan skor tertinggi yaitu memperoleh 3 bintang pada setiap levelnya.

2. Jaring laba-laba diasumsikan sebagai graf yang memiliki bobot yang sama. Laba-laba akan mencari jarak terpendek dari titik dia berada ke titik dimana serangga berada dan bergerak ke titik dimana kemungkinan dia dapat memakan serangga lebih besar. Pemain akan memutuskan jaring laba-laba yang mungkin akan dilalui oleh laba-laba tersebut. Titik dimana laba-laba memiliki kemungkinan memakan serangga lebih besar adalah ketika laba-laba berada pada titik dimana dia memiliki dua atau lebih serangga yang dapat dimangsa dalam satu waktu dengan sekali langkah. Apabila laba berada di titik tersebut dengan sekali langkah lagi, laba-laba dapat memilih dua serangga untuk dimakan yang dapat menyebabkan


(33)

63

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

permainan berakhir dan pemain gagal dalam menyelesaikan level tersebut. Oleh karena itu digunakan algoritma greedy, untuk mengetahui titik-titik tersebut dalam setiap level permainan pada level dasar time to eat. Semakin tinggi suatu level, terdapat level-level yang memiliki titik kemungkinan terbesar lebih dari satu titik. Setelah mengetahui titik-titik tersebut dengan menggunakan algoritma greedy, dengan begitu jalur terpendek yang akan dilalui oleh laba-laba untuk mencapai titik tersebut dapat diketahui. Maka pemain dapat memutuskan jaring mana yang akan dipotong sehingga laba-laba tidak dapat mendekati titik tersebut. Memilih jaring mana yang terbaik untuk dipotong dimaksudkan agar, jaring yang dipotong dapat seminimal mungkin sehingga pemain dapat menyelamatkan semua serangga dan dapat memperoleh point tertinggi. Untuk itulah digunakan program dinamis (dynamic programming) untuk mencari jalur terpendek dengan begitu pemotongan jaring dapat dilakukan seminimal mungkin.

5.2 Saran

Berdasarkan hasil dari aplikasi algoritma greedy dan program dinamis (dynamic programming) pada permainan Greedy Spiders yang telah dibahas pada bab-bab sebelumnya, penulis mengajukan beberapa saran sebagai berikut :

1. Pada penulisan ini penerapan algortima greedy dan progam dinamis hanya pada level dasar permainan yaitu, time to eat yang memiliki titik kemungkinan terbesar. Pada penulisan skripsi selanjutnya kedua algoritma di atas dapat diterapkan atau diaplikasikan pada level-level berikutnya.

2. Untuk penulisan skripsi selanjutnya, algoritma greedy dan program dinamis dapat diterapkan pada permainan lainnya, tidak hanya pada

game smartphone, dan dalam menyelesaikannya dapat


(34)

64

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

DAFTAR PUSTAKA

Anonim.(2013).[Online].Tersedia:http://tekno.liputan6.com/read/527945/dibandin g-android-ios-lebih-diminati-pengembang-game.

Kusuma, Y. (1997). Matematika Diskrit. Bandung : Bahan Ajar IKIP Bandung dan University Press : Tidak diterbitkan.

Jungnickel, D. (2008). Graphs, Network and Algorithms Third Edition. Germany : Springer.

J. A. Bondy and Murty, U. S. R. (1976). Graph Teory with Application. Ontario: North-Holland

Munir, R. Diktat Kuliah IF2251 (Algortima Greedy) Strategi Algoritmik. Bandung : Program Studi Informatika Sekolah Teknik Elektro dan Informatika ITB : Tidak diterbitkan.

Bednorz, W. (2008). Advances in Greedy Algorithms. Croatia : In-Teh.

Neapolitan, R dan Naimipour, K. (2011). Foundations of Algorithms Fourth Edition. Canada : Jones and Bartlett Publishers, LLC.

Munir, R. Diktat Kuliah IF3051 (Program Dinamis) Strategi Algoritmik. Bandung : Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika ITB : Tidak diterbitkan.

Suyanto. Algoritma Optimasi Deterministik atau Probabilitik. (2010). Yogyakarta : Graha Ilmu.

Bellman, R. (1957). Dynamic Programming. New Jersey : Princeton University Press.


(1)

28

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

 Status (s) yang berhubungan dengan masing-masing tahap adalah simpul-simpul didalam graf.

Relasi rekurens berikut menyatakan lintasan terpendek dari status s ke pada tahap k:

(s) = (basis)

(s) = { + ( )}, (rekurens) k = 1, 2, 3

Keterangan:

: peubah keputusan pada tahap k (k = 1, 2, 3). : bobot (cost) sisi dari s ke

(s, ) : total bobot lintasan dari s ke (s) : nilai minimum dari (s, )

Tujuan program dinamis mundur: mendapatkan (s), dengan mencari (s), (s), (s) terlebih dahulu.

Tahap 4: (s) =

s Solusi Optimum (s)

8 3 10

9 4 10

Catatan: adalah nilai yang meminimumkan (s, ). Tahap 3:

(s) = { + ( )}

s (s, ) = + ( ) Solusi Optimum

8 9 (s)


(2)

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

6 9 7 7 9

7 6 7 6 7

Tahap 2:

(s) = { + ( )}

s (s, ) = + ( ) Solusi Optimum

5 6 (s)

2 11 11 12 5 atau 6

3 7 9 10 5

4 8 8 11 5 atau 6

Tahap 1:

(s) = { + ( )}

s (s, ) = + ( ) Solusi Optimum

2 3 4 (s)

1 13 11 11 11 3 atau 4

Solusi optimum dapat dibaca pada tabel dibawah ini:

Panjang Lintasan Terpendek

1 3 5 8 10 11


(3)

30

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

6 9 10 11

Jadi ada tiga lintasan terpendek dari 1 ke 10, yaitu: 1 3 5 8 10

1 4 5 8 10 1 4 6 9 10


(4)

62

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

BAB V

PENUTUP

5.1 Kesimpulan

Berdasarkan hasil dari aplikasi algoritma greedy dan program dinamis (dynamic programming) pada permainan Greedy Spiders yang telah dibahas pada bab-bab sebelumnya,diperoleh bahwa :

1. Pada metode algoritma greedy hanya satu rangkaian keputusan yang pernah dihasilkan, oleh karena itu mengapa algoritma greedy digunakan untuk menentukan bagaimana pergerakan laba-laba yang merupakan AI dalam permainan Greedy Spiders. Sedangkan pada metode program dinamis lebih dari satu rangkaian keputusan yang dihasilkan. Hanya rangkaian keputusan yang memenuhi prinsip optimalitas yang akan dihasilkan, oleh karena itu mengapa program dinamis digunakan untuk mencari solusi optimal, yaitu usaha untuk mencapai skor tertinggi dalam menyelesaikan suatu level dengan cara pemutusan jaring laba-laba seminimal mungkindalam menyelesaikan permainan ini. Sehingga pemain dapat menyelesaikan permainan ini dengan skor tertinggi yaitu memperoleh 3 bintang pada setiap levelnya.

2. Jaring laba-laba diasumsikan sebagai graf yang memiliki bobot yang sama. Laba-laba akan mencari jarak terpendek dari titik dia berada ke titik dimana serangga berada dan bergerak ke titik dimana kemungkinan dia dapat memakan serangga lebih besar. Pemain akan memutuskan jaring laba-laba yang mungkin akan dilalui oleh laba-laba tersebut. Titik dimana laba-laba memiliki kemungkinan memakan serangga lebih besar adalah ketika laba-laba berada pada titik dimana dia memiliki dua atau lebih serangga yang dapat dimangsa dalam satu waktu dengan sekali langkah. Apabila laba berada di titik tersebut dengan sekali langkah lagi, laba-laba dapat memilih dua serangga untuk dimakan yang dapat menyebabkan


(5)

63

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

permainan berakhir dan pemain gagal dalam menyelesaikan level tersebut. Oleh karena itu digunakan algoritma greedy, untuk mengetahui titik-titik tersebut dalam setiap level permainan pada level dasar time to eat. Semakin tinggi suatu level, terdapat level-level yang memiliki titik kemungkinan terbesar lebih dari satu titik. Setelah mengetahui titik-titik tersebut dengan menggunakan algoritma greedy, dengan begitu jalur terpendek yang akan dilalui oleh laba-laba untuk mencapai titik tersebut dapat diketahui. Maka pemain dapat memutuskan jaring mana yang akan dipotong sehingga laba-laba tidak dapat mendekati titik tersebut. Memilih jaring mana yang terbaik untuk dipotong dimaksudkan agar, jaring yang dipotong dapat seminimal mungkin sehingga pemain dapat menyelamatkan semua serangga dan dapat memperoleh point tertinggi. Untuk itulah digunakan program dinamis (dynamic programming) untuk mencari jalur terpendek dengan begitu pemotongan jaring dapat dilakukan seminimal mungkin.

5.2 Saran

Berdasarkan hasil dari aplikasi algoritma greedy dan program dinamis (dynamic programming) pada permainan Greedy Spiders yang telah dibahas pada bab-bab sebelumnya, penulis mengajukan beberapa saran sebagai berikut :

1. Pada penulisan ini penerapan algortima greedy dan progam dinamis hanya pada level dasar permainan yaitu, time to eat yang memiliki titik kemungkinan terbesar. Pada penulisan skripsi selanjutnya kedua algoritma di atas dapat diterapkan atau diaplikasikan pada level-level berikutnya.

2. Untuk penulisan skripsi selanjutnya, algoritma greedy dan program dinamis dapat diterapkan pada permainan lainnya, tidak hanya pada game smartphone, dan dalam menyelesaikannya dapat membandingkan dengan algoritma lain selain kedua algoritma di atas.


(6)

64

Ika Zulhidayati, 2013

Aplikasi Algoritma Greedy Dan Program Dinamis (Dynamic Programming) Pada Permainan Greedy Spiders

Universitas Pendidikan Indonesia | repository.upi.edu| perpustakaan.upi.edu

DAFTAR PUSTAKA

Anonim.(2013).[Online].Tersedia:http://tekno.liputan6.com/read/527945/dibandin g-android-ios-lebih-diminati-pengembang-game.

Kusuma, Y. (1997). Matematika Diskrit. Bandung : Bahan Ajar IKIP Bandung dan University Press : Tidak diterbitkan.

Jungnickel, D. (2008). Graphs, Network and Algorithms Third Edition. Germany : Springer.

J. A. Bondy and Murty, U. S. R. (1976). Graph Teory with Application. Ontario: North-Holland

Munir, R. Diktat Kuliah IF2251 (Algortima Greedy) Strategi Algoritmik. Bandung : Program Studi Informatika Sekolah Teknik Elektro dan Informatika ITB : Tidak diterbitkan.

Bednorz, W. (2008). Advances in Greedy Algorithms. Croatia : In-Teh.

Neapolitan, R dan Naimipour, K. (2011). Foundations of Algorithms Fourth Edition. Canada : Jones and Bartlett Publishers, LLC.

Munir, R. Diktat Kuliah IF3051 (Program Dinamis) Strategi Algoritmik. Bandung : Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika ITB : Tidak diterbitkan.

Suyanto. Algoritma Optimasi Deterministik atau Probabilitik. (2010). Yogyakarta : Graha Ilmu.

Bellman, R. (1957). Dynamic Programming. New Jersey : Princeton University Press.