Analisis Kebutuhan Aplikasi Analisis Dan Implementasi Algoritma Minimax Dengan Optimasi Alpha Beta Pruning .

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

3.1 Analisis Kebutuhan Aplikasi

Analisis sistem adalah proses menentukan kebutuhan sistem, apa yang harus dilakukan sistem untuk memenuhi kebutuhan klien user Sutopo, 2001. Tahapan analisis kebutuhan merupakan tahap awal untuk membangun sebuah sistem atau aplikasi. Dengan adanya analisis ini diharapkan agar nantinya dihasilkan aplikasi yang baik dan sesuai dengan kebutuhan.

3.1.1 Representasi Lingkungan

Lingkungan merupakan tempat agen melakukan interaksi. Lingkungan permainan Five in Row berupa papan board yang direpresentasikan sebagai berikut. 10 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 10 Gambar 3.1 Papan Five in Row Universitas Sumatera Utara

3.1.1 Representasi Material

Material permainan Five in Row yang berupa kepingan piece direpresentasikan sebagai berikut: No piece = 0, User piece = 1, dan Computer piece = 2. Kepingan pemain user piece akan berwarna hitam, sedangkan kepingan komputer computer piece akan berwarna putih. 2 1 1 2 1 1 1 1 2 2 1 2 2 2 1 1 2 2 Gambar 3.2 Representasi Material

3.1.2 Flowchart Aplikasi

Flowchart diagram alir merupakan diagram yang memperlihatkan aliran kontrol seluruh sistem termasuk program, input, output, dan database Whitten, 1998. Dengan adanya flowchart, maka runtutan proses berjalannya suatu aplikasi dapat dilihat lebih jelas. Universitas Sumatera Utara Start Interface Aplikasi Mulai Bermain? User Piece Computer Piece Permainan Berakhir? New Game? Stop Pilih Level? Exit? About Tampilan Game Play Five In Row Yes yes no No yes no yes no yes no yes no Gambar 3.3 Flowchart Aplikasi Five in Row Untuk lebih jelasnya, proses aplikasi Five in Row akan dipaparkan sebagai berikut. 1. User menjalankan aplikasi permainan, kemudian komputer akan membangkitkan interface papan permainan sekaligus level default, yaitu 2. 2. Jika user langsung ingin bermain melawan komputer maka silakan meletakkan keping piece pada kotak yang diinginkan. Setelah itu komputer akan membangkitkan gerakan kemudian menampilkan posisi computer piece yang akan membendung gerakan user. 3. Selama permainan berlangsung komputer akan membangkitkan fungsi terminal test untuk mengecek apakah permainan telah berakhir atau belum. Universitas Sumatera Utara Apabila belum permainan akan terus berlanjut. Jika permainan telah berakhir maka user boleh memilih untuk memulai permainan baru ataupun tidak. 4. Level default adalah level 2, namun user boleh memilih level permainan sesuai keinginan. Level dua dijadikan default sebab level satu dirasa terlalu mudah untuk dikalahkan. 5. Jika user ingin mengetahui informasi mengenai Five in Row, user dapat memilih menu about.

3.1.3 Analisis Algoritma

Seperti yang telah dipaparkan pada bab sebelumnya, algoritma yang digunakan untuk membangun aplikasi ini adalah Minimax dan Alpha Beta Pruning. Algoritma Minimax tidak digunakan secara tunggal sebab algoritma tersebut dirasa kurang efisien. Minimax akan mengevaluasi seluruh node yang ada pada pohon pencarian satu persatu hingga selesai, sedangkan jumlah node yang akan dievaluasi tidaklah sedikit. Berikut adalah tabel jumlah node yang akan dievaluasi menurut tingkat kedalamannya, dimana branching factor b adalah jumlah pergerakan maksimum masing-masing node dan depth d adalah kedalaman pohon pencarian. Tabel 3.1 Hubungan Kedalaman dan Jumlah Node Kedalaman Jumlah node Ob d 1 100 2 10000 3 1000000 4 100000000 5 10000000000 Ukuran papan permainan Five in Row adalah 10 x 10 yang berarti berjumlah 100 kotak. Dengan demikian jumlah pergerakan maksimum yang dimiliki masing- masing node adalah 100, sebab Five in Row tidak memiliki illegal move seperti halnya permainan catur ataupun Othello. Yang dimaksud dengan illegal move adalah gerakan ilegal atau batasan pergerakan pemain, misalnya kuda hanya boleh melangkah sesuai Universitas Sumatera Utara dengan huruf L pada catur. Jumlah pergerakan maksimum ini akan dijadikan percabangan pada pohon pencarian. Dengan adanya Alpha Beta Pruning diharapkan waktu pencarian akan jauh lebih singkat karena tujuan utama dari algoritma ini adalah mengabaikan subtree atau percabangan yang tidak mempengaruhi hasil akhir. Berikut beberapa ketentuan dalam algoritma Alpha Beta Pruning. 1. Alpha α merupakan nilai batas bawah maksimum atau nilai terbaik sementara pada max. Alpha digunakan pada node min dan diset pada node max. 2. Beta β merupakan nilai batas atas minimum atau nilai terbaik sementara pada min. Beta digunakan pada node max dan diset pada node min. 3. Max bertujuan untuk memaksimalkan nilai dengan cara memilih node anak dengan nilai paling besar. Nilai awal max adalah – ∞ dan akan bertambah seiring dengan pencarian. 4. Min bertujuan untuk meminimalkan nilai dengan cara memilih node anak dengan nilai paling kecil. Nilai awal min adalah + ∞ dan akan berkurang seiring dengan berjalannya pencarian. 5. Max adalah agen yang mewakili komputer, sedangkan min adalah agen yang mewakili gerakan lawan dalam hal ini user. Berikut adalah pseudocode algoritma Minimax dengan optimasi Alpha Beta Pruning. int alphaBetaMax int alpha, int beta, int depthleft { if depthleft == 0 return evaluate; for all moves { score = alphaBetaMin alpha, beta, depthleft - 1 ; if score = beta return beta; beta-cutoff if score alpha alpha = score; Alpha bertindak sebagai max } return alpha; } int alphaBetaMin int alpha, int beta, int depthleft { if depthleft == 0 return -evaluate; for all moves { score = alphaBetaMax alpha, beta, depthleft - 1 ; if score = alpha Universitas Sumatera Utara return alpha; alpha-cutoff if score beta beta = score; beta bertindak sebagai Min } return beta; } Berikut adalah flowchart algoritma Minimax dengan optimasi Alpha Beta Pruning. Start Terminal State? Successor Node = MaxNode α ß Max α ≥ β β ß Min β ≤ α Hitung Value Stop Tidak Ya Ya Tidak Tidak Tidak Ya Ya Gambar 3.4 Flowchart Algoritma Minimax dengan Optimasi Alpha Beta Pruning Flowchart di atas memperlihatkan bagaimana algoritma Minimax dan Alpha Beta Pruning mengevaluasi setiap node pada pohon permainan. Pada awal permainan akan diperiksa terlebih dahulu apakah node yang diperiksa merupakan terminal state atau tidak, jika ya maka fungsi evaluasi akan Universitas Sumatera Utara mengevaluasi nilai yang diperoleh dan menghentikan pencarian. Sebaliknya jika tidak maka successor akan dibangkitkan untuk mengevaluasi node anak yang ada pada kedalaman selanjutnya. Jika yang dievaluasi adalah node max maka nilai node tersebut akan diperiksa. Jika nilainya maksimal maka akan ditetapkan menjadi α. Apabila nilai α lebih besar atau sama dengan β, maka evaluasi dihentikan. Dengan demikian node di bawahnya tidak perlu dievaluasi. Sebaliknya jika yang dievaluasi adalah node min maka akan terus diperiksa selama nilai β tidak lebih kecil atau sama dengan α. Apabila nilai β ditemukan bernilai lebih kecil atau sama dengan nilai α maka evaluasi dihentikan. Berikut ini akan dipaparkan tahapan optimasi Alpha Beta Pruning secara singkat. 1. Dapatkan nilai Alpha dan Beta. Alpha adalah nilai maksimum yang ditemukan. Beta adalah nilai minimum yang ditemukan. 2. Pada node max, sebelum mengevaluasi node anak, bandingkan terlebih dahulu nilai yang didapatkan dengan nilai Beta. Jika nilainya lebih besar, batalkan pencarian untuk node tersebut. 3. Pada node min, sebelum mengevaluasi node anak bandingkan terlebih dahulu nilai yang didapatkan dengan nilai Alpha. Jika nilainya lebih kecil, batalkan pencarian untuk node tersebut. Algoritma Minimax ini bersifat depth first search, yang berarti proses pengecekan akan dilakukan hingga ke kedalaman tertentu sesuai level permainan kemudian beralih ke tingkat atas. Untuk lebih jelasnya proses depth first search akan digambarkan sebagai berikut. Universitas Sumatera Utara -10 -3 1 10 5 -3 3 1 A B C D E F G H I J K L M N O P Q R S T 19 21 20 24 25 32 31 28 29 34 35 1 2 7 3 14 4 5 6 8 13 12 11 9 10 15 16 17 18 23 22 38 26 37 27 30 33 36 Gambar 3.5 Proses Pencarian Depth First Search Awal pencarian akan dimulai dari node root yaitu node A, dimana node ini memiliki tiga anak yaitu node B, node C dan node D. Yang pertama diperiksa adalah node B beserta turunannya yaitu node E dan node F, namun node E yang memiliki anak node K dan L harus dievaluasi terlebih dahulu kemudian nilai dikembalikan ke node E, lalu node E mengembalikan nilai pada node induknya yaitu node B. Karena node B masih memiliki node anak yang belum diperiksa maka proses evaluasi terus berlangsung terhadap node F beserta turunannya. Setelah seluruh cabang pada node B selesai diperiksa maka nilai akan dikembalikan kepada node A. Demikian seterusnya hingga proses pencarian seluruh pohon selesai dijalankan. Proses evaluasi pohon pencarian sesuai dengan arah dan nomor pada anak panah. Universitas Sumatera Utara Gambar 3.6 Diagram Pohon Pencarian Diagram di atas memperlihatkan bahwa pada baris max nilai alpha α selulu - ∞, sedangkan pada baris min nilai beta β selalu +∞. Sebenarnya nilai α dan β yang terdapat pada diagram di atas bukanlah nilai alpha dan beta selama proses berlangsung. Nilai di atas hanya memperlihatkan bahwa pada node max fungsi evaluasi hanya boleh mengubah nilai alpha dan sebaliknya pada node min fungsi evaluasi hanya boleh mengubah nilai beta. Untuk lebih jelasnya mengenai proses evaluasi pada pohon tersebut, akan dipaparkan lebih lanjut dalam bentuk tabel berikut ini. Universitas Sumatera Utara Tabel 3.2 Proses Pencarian Alpha Beta Pruning No Node Yang dievaluasi Node yang dipanggil Nilai α Nilai β Nilai Node Fungsi Keterangan 1. A B - ∞ + ∞ - Node A B, - ∞, +∞ Pada awal permainan nilai α = -∞ sedangkan nilai β = +∞. 2. B E - ∞ + ∞ - Node B E, - ∞, +∞ 3. E K - ∞ + ∞ 3 Node E K, - ∞, +∞ Nilai 3 ditetapkan menjadi nilai α 4. E L 3 + ∞ 3 Node E L, 3, + ∞ Nilai node L node K, dengan demikian node E max tetap akan memiliki nilai 3. 5. E Selesai α = 3 β = +∞ E = 3 Node E telah selesai dievaluasi, dengan demikian proses akan beralih ke tingkat atas yaitu node B. 6. B F - ∞ 3 3 Node B F, - ∞, 3 Nilai 3 yang diperoleh dari node E diset menjadi nilai β, sedangkan nilai α kembali menjadi -∞. Universitas Sumatera Utara No. Node yang di evaluasi Node yang dipanggil Nilai α Nilai β Nilai Node Fungsi Keterangan 7. F M - ∞ 3 5 Node F M, - ∞, 3 Nilai 5 berasal dari node M yang kemudian ditetapkan menjadi nilai α. 8. F Selesai α = 5 β = 3 F = 5 Node N tidak perlu diperiksa sebab nilai α ≥ β. α = 5 sedangkan β = 3. 9. B Selesai - ∞ β = 3 B = 3 Nilai 3 diperoleh dari node E yang bernilai lebih kecil dari node F. 10. A C 3 + ∞ Node A C, 3, + ∞ Nilai node A sementara adalah 3. 11. C G 3 + ∞ G = 1 Node C G, 3, + ∞ Node G bernilai 1. 12. C Selesai α = 3 β = 1 C = 1 Node H tidak perlu diperiksa karena didapati bahwa node C node B. 13. A D 3 + ∞ A = 3 D = - Node A D, 3, + ∞ Node A masih bernilai 3 karena node C node B, sehingga tidak mempengaruhi nilai awal. 14. D I 3 + ∞ D = - Node D I, 3, + ∞ Tabel 3.2 Proses Pencarian Alpha Beta Pruning Sambungan Universitas Sumatera Utara No. Node yang di evaluasi Node yang dipanggil Nilai α Nilai β Nilai Node Fungsi Keterangan 15. I O 3 + ∞ I = 1 Node I O, 3, + ∞ Nilai 1 diperoleh dari node O, kemudian ditetapkan menjadi nilai α. 16. I P 3 + ∞ I = 1 Node I P, 3, + ∞ Nilai node I tetap 1. 17. I Selesai α = 1 + ∞ I = 1 18. D Selesai β = 1 D = 1 Node J tidak perlu diperiksa karena node D node B 19. A Selesai α = 3 β = +∞ 3 Jadi, fungsi evaluasi mendapatkan nilai 3 untuk node A. Tabel 3.2 Proses Pencarian Alpha Beta Pruning Sambungan Universitas Sumatera Utara

3.1.4 Nilai Formasi

Nilai formasi mutlak diperlukan sebagai bobot dari pohon pencarian yang akan dibangkitkan. Nilai formasi merupakan nilai yang diperoleh berdasarkan jumlah keping yang ada dalam satu baris, kolom ataupun diagonal pada papan permainan. Dua atau tiga buah kepingan yang berada pada satu baris ataupun kolom tentunya berbeda nilainya dengan keping tunggal, begitu pula halnya dengan sederetan kepingan yang tidak terbendung lawan tentunya memiliki nilai lebih unggul dibandingkan dengan yang terbendung. Berikut adalah tabel nilai formasi pada permainan Five in Row dengan ‘X’ adalah user piece dan ‘O’ adalah computer piece. Tabel 3.3 Nilai Formasi Nama Formasi Nilai Bentuk Formasi Comp_capped2 5 _OOX_ User_capped2 5 _XXO_ Comp_uncapped2 10 _OO_ User_uncapped2 10 _XX_ Comp_capped3 20 _OOOX User_capped3 30 _XXXO Comp_uncapped3 100 _OOO_ User_uncapped3 120 _XXX_ Comp_capped4 500 _OOOOX User_capped4 500 _XXXXO Nilai formasi tersebut diperoleh dengan mempertimbangkan prioritas formasi yang akan dipilih oleh agen, misalnya apabila ditemukan formasi comp_uncapped3 dan user_uncapped3 tentunya harus diprioritaskan penutupan pada formasi user_uncapped3 sebab dikhawatirkan user dapat memenangkan permainan terlebih dahulu karena mendapat giliran pertama melangkah. Universitas Sumatera Utara

3.1.5 Fungsi Evaluasi

Fungsi evaluasi berfungsi sebagai penghitung nilai dari setiap node yang terdapat pada pohon permainan. Nilai yang telah didapat akan dijadikan acuan pergerakan selanjutnya. Formasi yang dibentuk oleh keping permainan akan menghasilkan nilai yang akan dijadikan bobot nilai pohon. Secara matematik, fungsi evaluasi diekspresikan sebagai berikut: ����� = � 1 � 1 � + � 2 � 2 � + … + � � � � � = � � � � � � � �=1 Dalam catur, w adalah bobot tiap buah catur dan f adalah jumlah buah catur tersebut pada papan catur. Sedangkan dalam Five in Row, w adalah bobot formasi dan f adalah jumlah formasi yang terbentuk. ����� = � �2 . � �2 + � �� 2 . � �� 2 + � �3 . � �3 + � �� 3 . � �� 3 + � �4 . � �4 Dimana C 2 adalah capped2, UC 2 adalah uncapped2, C 3 adalah capped 3, UC 3 adalah uncapped3 dan C 4 J I H G F E D C B A 1 2 3 4 5 6 7 8 9 10 adalah capped4. Berikut adalah contoh perhitungan fungsi evaluasi pada aplikasi ini. Gambar 3.7 Posisi Permainan Sementara Universitas Sumatera Utara Yang pertama kali dilakukan adalah pemeriksaan formasi keping putih computer piece. Pada baris B terdapat 3 keping putih, namun ini tidak bisa dihitung sebagai solusi sebab telah terbendung oleh keping hitam. Begitu pula dengan diagonal yang diisi pada kotak F5, G6, H7 dan I8 yang tidak bisa dianggap solusi. 1. Pada baris F terdapat uncapped2 yaitu F3 dan F5. Nilainya = 5. 2. Pada kolom 3 terdapat capped2 yaitu F3 dan C3. Nilainya = 5. 3. Pada kolom 5 terdapat capped2 yaitu E5 dan F5. Nilainya = 5. 4. Pada kolom 7 terdapat capped4 yaitu F7, D7, C7, B7. Nilainya = 500. 5. Pada diagonal terdapat uncapped2 yaitu G6 dan F7. Nilainya = 5. 6. Diagonal lain terdapat capped2 yaitu E5 dan C3. Nilainya = 5. 7. Keping B6 dan C7 juga membentuk capped2. Nilainya = 5. Dengan demikian jumlah uncapped2 ada 2 formasi, capped2 ada 4 formasi dan capped4 1 formasi. Maka jumlah valuenya adalah: Value Max = 25 + 45+ 500 = 530. Sekarang akan dicari value dari keping hitam atau user piece. Seperti langkah di atas, pertama kali harus dilakukan evaluasi posisi. 1. Pada baris D terdapat capped2 yaitu D5 dan D6. Nilainya = 5. 2. Pada kolom 4 terdapat uncapped2 yaitu C4 dan E4. Nilainya = 5. 3. Pada diagonal terdapat capped2 yaitu F6 dan G7. Nilainya = 5. 4. Pada diagonal lain terdapat uncapped2 yaitu C5 dan D6. Nilainya = 5. Maka jumlah formasi capped2 ada 2, begitu pula dengan formasi uncapped2. Sehingga jumlah valuenya adalah: Value Min = 25 + 25 = 20 Universitas Sumatera Utara Sehingga value total: Value Total = 530 – 20 = 490 Yang artinya posisi di atas sangat menguntungkan bagi pemain putih computer. Jika giliran putih bermain, maka tidak diragukan lagi formasi capped4 akan segera dijadikan formasi kemenangan. Sebaliknya apabila giliran hitam maka user akan segera mengambil tindakan dengan menutup kotak E7 dengan keping hitam sehingga jalan kemenangan putih tertutup.

3.1.6 Proses Evaluasi Formasi

Proses untuk mendapat bobot nilai pada pohon permainan tidaklah singkat. Mulanya komputer akan menelusuri kemungkinan pergerakan langkah yang akan dilakukan dan asumsi pergerakan lawan. Kemudian hasil dari formasi yang terbentuk dari masing-masing kemungkinan akan dihitung sesuai dengan fungsi evaluasi. Berikut akan dibahas sebuah contoh kasus proses evaluasi formasi yang terdapat pada pohon permainan Five in Row. Gambar 3.8 Contoh Kondisi Permainan Gambar di atas adalah sebuah keadaan yang terjadi pada pertengahan permainan yang akan dibahas proses evaluasinya. Posisi seperti gambar di atas akan dijadikan root pada pohon permainan yang selanjutnya akan ditelusuri kemungkinan pergerakannya. Universitas Sumatera Utara Gambar 3.9 Analisis Pohon Permainan Universitas Sumatera Utara Gambar di atas memperlihatkan pohon permainan dimana posisi teratas merupakan root atau posisi awal yang akan dievaluasi, sedangkan kedalaman pertama adalah beberapa asumsi gerakan user min yang dievaluasi oleh komputer dan kedalam kedua adalah langkah-langkah yang diambil oleh komputer max. Gambar bintang berwarna hitam merupakan kemungkinan pergerakan langkah yang dilakukan oleh lawan user, dan gambar bintang berwarna merah merupakan kemungkinan langkah yang diambil oleh komputer. Tentu saja jumlah node yang diperiksa sebenarnya lebih banyak, namun pada gambar di atas hanya ditampilkan beberapa node sebagai contoh. Berikutnya, masing-masing kondisi pada kedalaman kedua dihitung nilainya value berdasarkan fungsi evaluasi yang ada, dengan memperhatikan seluruh formasi yang terbentuk seperti yang terlihat pada tabel 3.3. Pada contoh di atas, kedalaman kedua merupakan terminal state yang ada pada permainan level dua. Apabila user memilih level tiga, berarti terminal state-nya adalah kedalaman ketiga dan seterusnya. Berikut adalah hasil penghitungan value dari masing- masing kondisi. Tabel. 3.4 Value Tiap Node No. Node yang Dievaluasi Value 1. -570 2. -630 Universitas Sumatera Utara Tabel. 3.4 Value Tiap Node Sambungan No. Node yang Dievaluasi Value 3. -95 4. -165 5. -145 6. -170 7. -190 Apabila dilihat dari hasil perhitungan value di atas, maka peluang komputer menang relatif kecil bila dibandingkan dengan peluang kemenangan user dengan asumsi user bermain secara maksimal. Nilai-nilai yang telah didapat di atas kemudian dijadikan sebagai bobot dari masing-masing node pada pohon pencarian tersebut. Dengan adanya bobot dari masing-masing node maka proses penelusuran pohon pencarian mulai Universitas Sumatera Utara dilakukan, disinilah letak tugas dari algoritma Minimax dan Alpha Beta Pruning. Minimax dan Alpha Beta Pruning akan menelusuri node-node tersebut hingga diperoleh hasil maksimal yang terdapat pada pohon permainan. Namun ada kalanya terdapat beberapa kondisi yang perlu dilakukan beberapa pengecualian, misalnya ada kondisi permainan yang memiliki value total yang sama, sehingga agen harus mengambil keputusan yang tepat dengan melakukan memilih prioritas. Berikut adalah beberapa parameter yang perlu diterapkan untuk kondisi khusus. 1. Apabila ada dua value yang sama, dan keduanya merupakan nilai terbaik maka agen akan memilih node yang terlebih dahulu didapatkan atau ditelusuri. 2. Jika agen menemukan formasi empat, misalnya comp_capped4 atau comp_uncapped4, maka tidak perlu lagi dilakukan penghitungan value. Agen akan langsung membentuk Five In Row.

3.2 Perancangan Aplikasi