SlideShare a Scribd company logo
1 of 5
Download to read offline
ALGORITMA RUNUT-BALIK (BACKTRACKING ALGORITHM)
                       PADA MASALAH KNIGHT’S TOUR

                                                     Fahmi Mumtaz

                                                         13506045
                                       Teknik Informatika Institut Teknologi Bandung
                            e-mail: if16045@students.if.itb.ac.id; mumtaz_banget@yahoo.co.uk;


ABSTRAK                                                        memecahkan masalah guna mencapai tujuan yang
                                                               ditentukan, yang dalam hal ini deskripsi metode atau
Makalah ini membahas tentang algoritma untuk                   teknik tersebut dinyatakan dalam suatu urutan langkah-
menyelesaikan permasalahan pada aplikasi teori graf            langkah penyelesaian.
di permainan catur papan. Permasalahan yang                      Secara umum, strategi pemecahan masalah dapat
dibahas pada makalah ini adalah masalah knight’s               dikelompokan menjadi:
tour. Ada banyak algoritma yang dapat dipakai untuk              1. Strategi solusi langsung (direct solution strategies)
menyelesaikan permasalahan tersebut. Tapi dalam                       Metode yang termasuk ke dalam strategi ini adalah:
makalah ini, algoritma yang dipilih oleh penulis                      - Algoritma Brute Force
adalah algorima runut-balik (backtracking algorithm).                 - Algoritma Greedy
                                                                 2. Strategi berbasis pencarian pada ruang status (state-
Kata kunci: Knight’s Tour, Algoritma, Algoritma runut-                space bace strategies)
balik (backtracking algorithm), strategi algoritmik, graf.            Metode yang termasuk ke dalam strategi ini adalah:
                                                                      - Algoritma Backtracking
                                                                      - Algoritma Branch and Bound
                                                                 3. Strategi solusi atas-bawah (top-down solution
                                                                      strategies)
1. PENDAHULUAN                                                        Metode yang termasuk ke dalam strategi ini adalah
                                                                      algoritma Divide and Conquer.
   Di dalam kehidupannya, manusia selalu menemui                 4. Strategi solusi bawah-atas (bottom-up solution
masalah atau persoalan. Hal ini mungkin didasarkan dari               strategies)
sifat dasar manusia itu sendiri yang selalu ingin tahu                Metode yang termasuk ke dalam strategi ini adalah
tentang segala sesuatu. Deskripsi dari masalah menurut                Dynamic Programming.
[NEA96] adalah pertanyaan atau tugas yang kita cari            Strategi yang akan dipakai dalam pemecahan masalah
jawabannya.                                                    dalam makalah ini adalah strategi berbasis pencarian pada
   Dalam       menghadapi       permasalahan,       untuk      ruang status (state-space bace strategies). Secara spesifik,
menyelesaikannya manusia memerlukan langkah-langkah            metode yang digunakan adalah algoritma runut-balik
yang benar sehingga permasalahan tersebut dapat                (Backtracking algorithm).
terselesaikan. Urutan langkah-langkah untuk memecahkan           Permasalahan yang dibahas disini adalah permasalahan
suatu masalah tersebutlah yang dinamakan dengan                dari aplikasi teori graf pada permainan catur papan yang
algoritma. Definisi lain dari algoritma adalah deretan         bernama Knight’s Tour. Permasalahan ini akan dibahas
langkah-langkah komputasi yang mentransformasikan              lebih lanjut dalam bab selanjutnya.
data masukan menjadi keluaran [COR92].
   Dalam      menentukan     langkah-langkah      tersebut
diperlukan suatu strategi agar langkah-langakah yang
dipakai tersebut dapat menyelesaikan permasalahan secara       2. KNIGHT’S TOUR
mangkus (efisien). Strategi menurut Kamus Besar Bahasa
Indonesia (KBBI) edisi tahun 1998 adalah rencana yang            Knight’s Tour adalah suatu aplikasi dari teori graf pada
cermat mengenai kegiatan untuk mencapai sasaran                permainan catur papan. Suatu Knight’s Tour pada papan
khusus. Rencana itu sendiri dapat berisi suatu metode atau     catur adalah rangkaian perjalanan kuda catur pada papan
teknik yang digunakan untuk mencapai sasaran khusus            catur sehingga seluruh kotak terlewati kuda tepat satu kali.
tersebut.                                                      Aturan langkah kuda pada permainan catur adalah sebagai
   Dengan pengertian algoritma dan strategi tersebut, kita     berikut :
dapat mendefinisikan strategi algoritmik (algorithm                • Melangkah dua persegi ke arah horisontal
strategies) sebagai kumpulan metode atau teknik untuk                    kemudian satu persegi ke arah vertikal, atau




  MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
•    Melangkah dua persegi ke arah vertikal              dihemat. Runut-balik lebih alami dinyatakan dalam
         kemudian satu persegi ke arah horisontal, atau      algoritma rekursif. Kadang-kadang disebutkan pula bahwa
    • Melangkah dua persegi ke arah vertikal                 runut-balik merupakan bentuk tipikal dari algoritma
         kemudian satu persegi ke arah horisontal, atau      rekursif.
    • Melangkah satu persegi ke arah vertikal                  Istilah runut-balik pertama kali diperkenalkan oleh D.H.
         kemudian dua persegi ke arah horisontal.            Lehmer pada tahun 1950. Selanjutnya, R. J. Walker,
  Jika dalam Knight’s Tour setiap persegi dari papan catur   Golomb, dan Baumert menyajikan uraian umum tentang
dapat dilewati tepat satu kali dan kuda kembali pada         runut-balik dan penerapannya pada berbagai persoalan
persegi semula maka disebut langkah kuda tertutup            [HOR78].
(Closed Knight’s Tour). Namun, jika semua persegi telah
dilewati dan kuda tidak dapat kembali ke posisi semula       3.1 Properti Umum Metode Runut-balik
maka disebut langkah kuda yang terbuka (Open Knight’s
Tour)                                                          Untuk menerapkan metode runut-balik, properti berikut
                                                             didefinisikan:
                                                                 1. Solusi persoalan.
                                                                    Solusi dinyatakan sebagai vektor n-tuple:
                                                                         X=(x1, x2, ..., xn), xi anggota himpunan
                                                                         berhingga Si . Mungkin saja S1 = S2 = ... = Sn.
                                                                    Contoh: Si = {0,1}
                                                                              Si = 0 atau 1
                                                                 2. Fungsi pembangkit nilai xk
                                                                    Dinyatakan sebagai:
                                                                      T(k)
                                                                    T(k) membangkitkan nilai untuk xk, yang
                                                                    merupakan komponen vektor solusi
                                                                 3. Fungsi pembatas (fungsi kriteria)
                                                                    Dinyatakan sebagai:
                                                                      B(x1, x2, ..., xk)
         Gambar 1. Contoh Closed Knight’s Tour                      Fungsi pembatas menentukan apakah (x1, x2, ..., xk)
            pada papan catur ukuran 8 x 8                           mengarah ke solusi. Jika ya, maka pembangkitan
                                                                    nilai untuk xk+1 dilanjutkan, tetapi jika tidak, maka
   Di atas adalah contoh dari Knight’s Tour. Angka 1-64             (x1, x2, ..., xk) dibuang dan tidak dipertimbangkan
menandakan urutan kotak yang dilewati oleh kuda catur               lagi dalam pencarian solusi.
tersebut. Langkah yang diambil oleh kuda urut dari 1
sampai dengan 64.                                            3.2 Prinsip Pencarian Solusi dengan Metode
   Banyak ilmuwan yang tertarik dengan permasalahan ini
diantaranya adalah Leonhard Euler, Paul de Hijo, Sainte-         Runut-balik
Marie, Louis Posa, Allen Schwenk, Mark R. Keen, M.
Kraitchik, Sloane’s, Wegener, dan masih banyak ilmuan          Di sini penulis hanya akan meninjau pencarian solusi
lainnya.                                                     pada pohon ruang status yang dibangun secara dinamis.
                                                             Langkah-langkah pencarian solusi adalah sebagai berikut:
                                                                 1. Solusi dicari dengan membentuk lintasan dari akar
                                                                    ke daun. Aturan pembentukan yang dipakai adalah
3. ALGORITMA RUNUT BALIK                                            mengikuti metode pencarian mendalam (DFS).
   (BACKTRACK)                                                      Simpul-simpul yang sudah dilahirkan dinamakan
                                                                    simpul hidup (live node). Simpul hidup yang
   Algoritma runut-balik (backtracking algorithm) adalah            sedang diperluas dinamakan simpul-E (Expand-
algoritma yang berbasis pada DFS untuk mencari solusi               node). Simpul dinomori dari atas ke bawah sesuai
persoalan secara lebih mangkus. Runut-balik, yang                   dengan urutan kelahirannya (sesuai prinsip DFS).
merupakan perbaikan dari algoritma bruteforce, secara            2. Tiap kali simpul-E diperluas, lintasan yang
sistematis mencari solusi persoalan di antara semua                 dibangun olehnya bertambah panjang. Jika lintasan
kemungkinan solusi yang ada. Dengan metode ini, kita                yang sedang dibentuk tidak mengarah ke solusi,
tidak perlu memeriksa semua kemungkinan solusi yang                 maka simpul-E “dibunuh” sehingga menjadi
ada. Hanya pencarian yang mengarah ke solusi saja yang              simpul mati (dead node). Fungsi yang digunakan
selalu dipertimbangkan. Akibatnya, waktu pencarian dapat            untuk membunuh simpul-E adalah dengan




 MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
menerapkan fungsi pembatas (bounding function).          Pada tiap kotak pada papan catur, kita akan membuat
       Simpul yang sudah mati tidak akan pernah              daftar kotak yang dapat dilalui oleh kuda pada langkah
       diperluas lagi.                                       selanjutnya.
    3. Jika pembentukan lintasan berakhir dengan simpul         Pada kasus ini, ada dua kemungkinan langkah, yaitu
       mati, maka proses pencarian diteruskan dengan         kotak (2,3) dan (3,2).
       membangkitkan simpul anak yang lainnya. Bila             Pertama kita coba (2,3). Jika langkah pada kotak ini
       tidak ada lagi simpul anak yang dapat                 tidak menuju solusi, maka kita akan runut-balik dan
       dibangkitkan, maka pencatian solusi dilanjutkan       mencoba kotak (3,2).
       dengan melakukan runut-balik ke simpul hidup
       terdekat (simpul orangtua). Selanjutnya simpul ini                      1
       menjadi simpul-E yang baru. Lintasan baru
       dibangun kembali sampai lintasan tersebut                                            2
       membentuk solusi.
    4. Pencarian dihentikan bila kita telah menemukan
       solusi atau tidak ada lagi simpul hidup untuk runut
       balik.                                                                      Gambar 3.
                                                               Dari kotak ini, ada dua kemungkinan langkah, yaitu
4. APLIKASI ALGORITMA RUNUT                                  (1,1) dan (3,1). Namun karena kotak (1,1) sudah pernah
                                                             dilewati, maka kita akan mencoba kotak (3,1).
   -BALIK PADA KNIGHT’S TOUR
                                                                               1
   Algoritma runut-balik (backtracking algorithm) dapat
dipakai untuk menyelesaikan permasalahan dari Knight’s                                      2
Tour. Ide dasar dari algoritma runut balik adalah dengan
membangun solusi-solusi parsial dari masalah (dalam hal                        3
ini jalan selangkah pada papan) lalu mencoba memperluas
                                                                                   Gambar 4.
solusi tersebut. Jika solusi yang telah dikembangkan gagal     Dari kotak ini, ada dua kemungkinan langkah, yaitu
(langkah selanjutnya tidak menuju solusi) maka akan          (2,3) dan (1,2). Namun karena kotak (2,3) sudah pernah
dilakukan runut-balik dan mencoba solusi parsial lainnya.    dilewati, maka kita akan mencoba kotak (1,2).
   Algoritma runut-balik yang dipakai adalah:
   1. Dari kotak tempat kuda tersebut berada,                                  1     4
        dibangkitkan langkah-langkah berikutnya yang
        memungkinkan dilalui oleh kuda tersebut.                                            2
   2. Salah satu langkah (kotak) dipilih untuk diperluas.
   3. Kuda melangkah ke kotak yang dipilih tersebut.                           3
   4. Kembali ke langkah satu sampai langkah yang                                  Gambar 5.
        diperluas tidak dapat mencapai solusi (kuda tidak      Dari kotak ini, ada dua kemungkinan langkah, yaitu
        dapat melangkah lagi).                               (3,1) dan (3,3). Namun karena kotak (3,1) sudah pernah
   5. Pencarian langkah dilakukan dengan melakukan           dilewati, maka kita akan mencoba kotak (3,3).
        runut balik ke langkah yang telah dilalui terdekat
        dan kuda melangkah balik ke kotak tersebut dan                         1     4
        kembali ke langkah satu.
   6. Pencarian langkah dihentikan bila telah melakukan                                     2
        solusi atau tidak ada langkah yang memungkinkan
        lagi bagi kuda catur tersebut.                                         3            5
   Contoh pada papan 3x3:                                                          Gambar 6.
   Dengan menggunakan langkah-langkah yang sudah               Dari kotak ini, ada dua kemungkinan langkah, yaitu
ditentukan pada algoritma runut-balik di atas maka dapat     (2,1) dan (1,2). Namun karena kotak (1,2) sudah pernah
ditemukan:                                                   dilewati, maka kita akan mencoba kotak (2,1).
   Kondisi awal kuda berada pada (1,1)
                                                                               1     4
             1
                                                                               6            2

                                                                               3            5

                                                                                    Gambar 7.

                 Gambar 2.




 MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
Dari kotak ini, ada dua kemungkinan langkah, yaitu          Tidak ada langkah yang memungkinkan. Maka kita
(1,3) dan (3,3). Namun karena kotak (3,3) sudah pernah      kembali akan melakukan runut-balik.
dilewati, maka kita akan mencoba kotak (1,3).
                                                                                   1
                   1     4      7
                                                                                                    2
                   6            2
                                                                                   3
                   3            5
                                                                                       Gambar 14.
                       Gambar 8.                              Tidak ada langkah yang memungkinkan. Maka kita
  Dari kotak ini, ada dua kemungkinan langkah, yaitu        kembali akan melakukan runut-balik.
(2,1) dan (3,2). Namun karena kotak (2,1) sudah pernah
dilewati, maka kita akan mencoba kotak (3,2).                                      1

                   1     4      7                                                                   2

                   6            2

                   3     8      5                                                      Gambar 15.
                                                              Langkah lainnya yang memungkinkan adalah kotak
                       Gambar 9.                            (1,1). Namun kotak tersebut sudah pernah dilalui oleh
  Dari kotak ini, ada dua kemungkinan langkah, yaitu        kuda. Maka runut-balik kembali dilakukan.
(1,1) dan (1,3). Kotak (2,1) sudah pernah dilewati. Kotak
(1,3) juga sudah pernah dilewati.                                                  1
  Tidak ada langkah yang memungkinkan. Maka kita
akan melakukan runut-balik.
                   1     4      7
                                                                                       Gambar 16.
                   6            2                              Kotak (3,2) adalah pilihan lain dari kotak (1,1) yang
                   3            5                           belum pernah dicoba. Maka kuda melangkah ke kotak
                                                            tersebut.
                       Gambar 10.                              Proses dilakukan lagi. Ketika telah berada di akhir
  Tidak ada langkah yang memungkinkan. Maka kita            proses, semua kemungkinan langkah telah dicoba. Dan
kembali akan melakukan runut-balik.                         setelah dicoba dengan langkah apapun papan dengan
                                                            ukuran 3x3 selalu menghasilkan satu kotak yang tidak
                   1     4                                  pernah dilalui oleh kuda. Maka proses dihentikan dan
                                                            dapat diketahui bahwa pada papan 3x3 tidak ditemukan
                   6            2                           adanya Closed Knight’s Tour.
                                                               Algoritma runut-balik ini dapat ditulis ke dalam pseudo
                   3            5
                                                            code sebagai berikut:
                       Gambar 11.
  Langkah lainnya yang memungkinkan adalah kotak              {
(3,3). Namun kotak tersebut sudah pernah dilalui oleh             papan berukuran nxn
kuda. Maka runut-balik kembali dilakukan.                         (x,y) adalah koordinat (baris,kolom) dari kotak
                                                                  langkah adalah nomer kotak yang telah dikunjungi
                   1     4                                        ok adalah Boolean yang menandakan sukses atau
                                                                  gagal
                                2
                                                              }
                   3            5                             type papan_catur is array (1..n,1..n) of integer;
                                                              procedure benteng(papan: in out papan_catur;
                       Gambar 12.                                                  x,y,langkah: in out integer;
  Tidak ada langkah yang memungkinkan. Maka kita                                   ok: in out boolean) is w,z: integer;)
kembali akan melakukan runut-balik.                           begin
                                                                  if langkah = n^2+1 then
                   1     4                                           ok := ((x,y) = (1,1));
                                2                                 elseif papan(x,y) /= 0 then

                   3

                       Gambar 13.


 MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
ok := false;                                       REFERENSI
      else
        papan(x,y) := langkah;                             [1] Mumtaz, Fahmi. “Aplikasi Teori Graf pada Knight’s Tour”,
        loop                                                   2007.
            (w,z) := Langkah berikutnya dari (x,y);        [2] Munir, Rinaldi. “Diktat Kuliah IF2251 Strategi
            benteng(papan, w, z, langkah+1, ok);               Algoritmik”, Program Studi Teknik Informatika STEI ITB,
            exit when (ok or tidak ada langkah lain);          2006.
        end loop;                                          [3] Lewandowski, Gary. “Project 1: The Knight’s Tour Gary
                                                               Lewandowski”, CSCI 220, fall 2001
        if not ok then
                                                           [4] http://www.csc.liv.ac.uk/%7Eped/algor_complete.html
            papan (x,y) ;= 0; - - Backtracking                 Tanggal akses: 19 Mei 2008 pukul 14:23
        end if;                                            [5] http://www.daniweb.com/forums/post609524.html Tanggal
      end if;                                                  akses: 19 Mei 2008 pukul 17:12
  end papan;                                               [6] http://web.telia.com/~u85905224/knight/eknight.htm
                                                               Tanggal akses: 19 Mei 2008 pukul 21:45

   Algoritma runut-balik ini juga bisa diaplikasikan
terhadap papan catur dengan ukuran yang lebih besar lagi
dengan salah dua dari kemungkinan hasil yang didapat
adalah sebagai berikut:
                 10      5     12     1

                 13      2     9      6

                  8     11     4     15

                  3     14     7

       Gambar 17. Papan 4 x 4 tidak pernah terjadi
                  Closed Knight Tour

           10    31     16     23     8     1

           17    24      9     2     15     22

           32    11     30     21    36     7

           25    18      3     12    29     14

           4     33     20     27     6     35

           19    26      5     34    13     28

     Gambar 18. Salah satu dari 6 Closed Knight Tour
                  pada Papan 6 x 6 s



5. KESIMPULAN
   Knight’s Tour adalah salah satu masalah dari aplikasi
teori graf pada permainan catur papan. Ada banyak
strategi algoritmik yang dapat diterapkan untuk
menentukan Knight’s Tour pada permainan tersebut. Salah
satunya dapat menggunakan algoritma runut-balik
(backtracking algorithm).




 MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008

More Related Content

What's hot

materi dan soal limit (lks)
materi dan soal limit (lks)materi dan soal limit (lks)
materi dan soal limit (lks)Lam RoNna
 
Bahan ajar 3.31 (turunan fungsi aljabar)
Bahan ajar 3.31 (turunan fungsi aljabar)Bahan ajar 3.31 (turunan fungsi aljabar)
Bahan ajar 3.31 (turunan fungsi aljabar)Eko Agus Triswanto
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerohohervin
 
Diferensiabel kontinu
Diferensiabel kontinuDiferensiabel kontinu
Diferensiabel kontinubobbyrey
 
Dasar dasar matematika teknik optimasi (matrix hessian)
Dasar dasar matematika teknik optimasi (matrix hessian)Dasar dasar matematika teknik optimasi (matrix hessian)
Dasar dasar matematika teknik optimasi (matrix hessian)Muhammad Ali Subkhan Candra
 
Pertemuan 1-fungsi-invers-eksponensial-logaritma-dan-trigonometri
Pertemuan 1-fungsi-invers-eksponensial-logaritma-dan-trigonometriPertemuan 1-fungsi-invers-eksponensial-logaritma-dan-trigonometri
Pertemuan 1-fungsi-invers-eksponensial-logaritma-dan-trigonometriadi darmawan
 

What's hot (10)

materi dan soal limit (lks)
materi dan soal limit (lks)materi dan soal limit (lks)
materi dan soal limit (lks)
 
Bahan ajar 3.31 (turunan fungsi aljabar)
Bahan ajar 3.31 (turunan fungsi aljabar)Bahan ajar 3.31 (turunan fungsi aljabar)
Bahan ajar 3.31 (turunan fungsi aljabar)
 
Paper turunan
Paper turunanPaper turunan
Paper turunan
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
 
Diferensiabel kontinu
Diferensiabel kontinuDiferensiabel kontinu
Diferensiabel kontinu
 
Dasar dasar matematika teknik optimasi (matrix hessian)
Dasar dasar matematika teknik optimasi (matrix hessian)Dasar dasar matematika teknik optimasi (matrix hessian)
Dasar dasar matematika teknik optimasi (matrix hessian)
 
TURUNAN
TURUNAN TURUNAN
TURUNAN
 
Pertemuan 1-fungsi-invers-eksponensial-logaritma-dan-trigonometri
Pertemuan 1-fungsi-invers-eksponensial-logaritma-dan-trigonometriPertemuan 1-fungsi-invers-eksponensial-logaritma-dan-trigonometri
Pertemuan 1-fungsi-invers-eksponensial-logaritma-dan-trigonometri
 
R5 h kel 2 kalk1 2
R5 h kel 2 kalk1 2R5 h kel 2 kalk1 2
R5 h kel 2 kalk1 2
 
Aturan Rantai Pada Turunan
Aturan Rantai Pada TurunanAturan Rantai Pada Turunan
Aturan Rantai Pada Turunan
 

Similar to ALGORITMA STRATEGI

Algoritma Backtracking
Algoritma BacktrackingAlgoritma Backtracking
Algoritma BacktrackingAjeng Savitri
 
Software Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses BelajarSoftware Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses BelajarPrandita Sega
 
1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptxwikirezi
 
Analisa Rangkaian Listrik Menggunakan MATLAB
Analisa Rangkaian Listrik Menggunakan MATLABAnalisa Rangkaian Listrik Menggunakan MATLAB
Analisa Rangkaian Listrik Menggunakan MATLABAndry Saftiawan
 
Pengambilan keputusan dalam kondisi pasti
Pengambilan keputusan dalam kondisi pastiPengambilan keputusan dalam kondisi pasti
Pengambilan keputusan dalam kondisi pastiindra wahyudi
 
Rpp matematika sma xii peminatan bab 1 (penerapan matriks)
Rpp matematika sma xii peminatan bab 1 (penerapan matriks)Rpp matematika sma xii peminatan bab 1 (penerapan matriks)
Rpp matematika sma xii peminatan bab 1 (penerapan matriks)eli priyatna laidan
 
76110863 matlab
76110863 matlab76110863 matlab
76110863 matlabJose Costa
 
Aljabar matriks-its
Aljabar matriks-itsAljabar matriks-its
Aljabar matriks-itsMasnia Siti
 

Similar to ALGORITMA STRATEGI (20)

Buat persentasi
Buat persentasiBuat persentasi
Buat persentasi
 
Algoritma Backtracking
Algoritma BacktrackingAlgoritma Backtracking
Algoritma Backtracking
 
Software Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses BelajarSoftware Matematika Sebagai Penunjang Proses Belajar
Software Matematika Sebagai Penunjang Proses Belajar
 
Praktikum p-fisika
Praktikum p-fisikaPraktikum p-fisika
Praktikum p-fisika
 
Konsep Array_sns
Konsep Array_snsKonsep Array_sns
Konsep Array_sns
 
metode greedy
metode greedymetode greedy
metode greedy
 
1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx
 
Pertemuan3&4
Pertemuan3&4Pertemuan3&4
Pertemuan3&4
 
Limit fungsi aljabar hotma purba SMAN 3 bungo
Limit fungsi aljabar hotma purba SMAN 3 bungoLimit fungsi aljabar hotma purba SMAN 3 bungo
Limit fungsi aljabar hotma purba SMAN 3 bungo
 
Analisa Rangkaian Listrik Menggunakan MATLAB
Analisa Rangkaian Listrik Menggunakan MATLABAnalisa Rangkaian Listrik Menggunakan MATLAB
Analisa Rangkaian Listrik Menggunakan MATLAB
 
Pengambilan keputusan dalam kondisi pasti
Pengambilan keputusan dalam kondisi pastiPengambilan keputusan dalam kondisi pasti
Pengambilan keputusan dalam kondisi pasti
 
Bab 2-kalkulus-ok1
Bab 2-kalkulus-ok1Bab 2-kalkulus-ok1
Bab 2-kalkulus-ok1
 
Heuristics
HeuristicsHeuristics
Heuristics
 
Riset operasi
Riset operasiRiset operasi
Riset operasi
 
Integral
IntegralIntegral
Integral
 
EKMA4413 - Riset Operasi - Modul 3
EKMA4413 - Riset Operasi - Modul 3EKMA4413 - Riset Operasi - Modul 3
EKMA4413 - Riset Operasi - Modul 3
 
Rpp matematika sma xii peminatan bab 1 (penerapan matriks)
Rpp matematika sma xii peminatan bab 1 (penerapan matriks)Rpp matematika sma xii peminatan bab 1 (penerapan matriks)
Rpp matematika sma xii peminatan bab 1 (penerapan matriks)
 
Praktikum p-fisika
Praktikum p-fisikaPraktikum p-fisika
Praktikum p-fisika
 
76110863 matlab
76110863 matlab76110863 matlab
76110863 matlab
 
Aljabar matriks-its
Aljabar matriks-itsAljabar matriks-its
Aljabar matriks-its
 

Recently uploaded

Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxssuser50800a
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5KIKI TRISNA MUKTI
 
tugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarantugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarankeicapmaniez
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfCandraMegawati
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxsdn3jatiblora
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDNurainiNuraini25
 
contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptxHR MUSLIM
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxIrfanAudah1
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7IwanSumantri7
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxazhari524
 
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docxTugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docxmawan5982
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxJamhuriIshak
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxIgitNuryana13
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxadimulianta1
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSovyOktavianti
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxmawan5982
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CAbdiera
 

Recently uploaded (20)

Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptxKontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5
 
tugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajarantugas karya ilmiah 1 universitas terbuka pembelajaran
tugas karya ilmiah 1 universitas terbuka pembelajaran
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
Aksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptxAksi nyata Malaikat Kebaikan [Guru].pptx
Aksi nyata Malaikat Kebaikan [Guru].pptx
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
 
contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptx
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptx
 
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docxTugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
Tugas 1 ABK di SD prodi pendidikan guru sekolah dasar.docx
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptxBAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
BAHAN SOSIALISASI PPDB SMA-SMK NEGERI DISDIKSU TP. 2024-2025 REVISI.pptx
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptx
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
 

ALGORITMA STRATEGI

  • 1. ALGORITMA RUNUT-BALIK (BACKTRACKING ALGORITHM) PADA MASALAH KNIGHT’S TOUR Fahmi Mumtaz 13506045 Teknik Informatika Institut Teknologi Bandung e-mail: if16045@students.if.itb.ac.id; mumtaz_banget@yahoo.co.uk; ABSTRAK memecahkan masalah guna mencapai tujuan yang ditentukan, yang dalam hal ini deskripsi metode atau Makalah ini membahas tentang algoritma untuk teknik tersebut dinyatakan dalam suatu urutan langkah- menyelesaikan permasalahan pada aplikasi teori graf langkah penyelesaian. di permainan catur papan. Permasalahan yang Secara umum, strategi pemecahan masalah dapat dibahas pada makalah ini adalah masalah knight’s dikelompokan menjadi: tour. Ada banyak algoritma yang dapat dipakai untuk 1. Strategi solusi langsung (direct solution strategies) menyelesaikan permasalahan tersebut. Tapi dalam Metode yang termasuk ke dalam strategi ini adalah: makalah ini, algoritma yang dipilih oleh penulis - Algoritma Brute Force adalah algorima runut-balik (backtracking algorithm). - Algoritma Greedy 2. Strategi berbasis pencarian pada ruang status (state- Kata kunci: Knight’s Tour, Algoritma, Algoritma runut- space bace strategies) balik (backtracking algorithm), strategi algoritmik, graf. Metode yang termasuk ke dalam strategi ini adalah: - Algoritma Backtracking - Algoritma Branch and Bound 3. Strategi solusi atas-bawah (top-down solution strategies) 1. PENDAHULUAN Metode yang termasuk ke dalam strategi ini adalah algoritma Divide and Conquer. Di dalam kehidupannya, manusia selalu menemui 4. Strategi solusi bawah-atas (bottom-up solution masalah atau persoalan. Hal ini mungkin didasarkan dari strategies) sifat dasar manusia itu sendiri yang selalu ingin tahu Metode yang termasuk ke dalam strategi ini adalah tentang segala sesuatu. Deskripsi dari masalah menurut Dynamic Programming. [NEA96] adalah pertanyaan atau tugas yang kita cari Strategi yang akan dipakai dalam pemecahan masalah jawabannya. dalam makalah ini adalah strategi berbasis pencarian pada Dalam menghadapi permasalahan, untuk ruang status (state-space bace strategies). Secara spesifik, menyelesaikannya manusia memerlukan langkah-langkah metode yang digunakan adalah algoritma runut-balik yang benar sehingga permasalahan tersebut dapat (Backtracking algorithm). terselesaikan. Urutan langkah-langkah untuk memecahkan Permasalahan yang dibahas disini adalah permasalahan suatu masalah tersebutlah yang dinamakan dengan dari aplikasi teori graf pada permainan catur papan yang algoritma. Definisi lain dari algoritma adalah deretan bernama Knight’s Tour. Permasalahan ini akan dibahas langkah-langkah komputasi yang mentransformasikan lebih lanjut dalam bab selanjutnya. data masukan menjadi keluaran [COR92]. Dalam menentukan langkah-langkah tersebut diperlukan suatu strategi agar langkah-langakah yang dipakai tersebut dapat menyelesaikan permasalahan secara 2. KNIGHT’S TOUR mangkus (efisien). Strategi menurut Kamus Besar Bahasa Indonesia (KBBI) edisi tahun 1998 adalah rencana yang Knight’s Tour adalah suatu aplikasi dari teori graf pada cermat mengenai kegiatan untuk mencapai sasaran permainan catur papan. Suatu Knight’s Tour pada papan khusus. Rencana itu sendiri dapat berisi suatu metode atau catur adalah rangkaian perjalanan kuda catur pada papan teknik yang digunakan untuk mencapai sasaran khusus catur sehingga seluruh kotak terlewati kuda tepat satu kali. tersebut. Aturan langkah kuda pada permainan catur adalah sebagai Dengan pengertian algoritma dan strategi tersebut, kita berikut : dapat mendefinisikan strategi algoritmik (algorithm • Melangkah dua persegi ke arah horisontal strategies) sebagai kumpulan metode atau teknik untuk kemudian satu persegi ke arah vertikal, atau MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
  • 2. Melangkah dua persegi ke arah vertikal dihemat. Runut-balik lebih alami dinyatakan dalam kemudian satu persegi ke arah horisontal, atau algoritma rekursif. Kadang-kadang disebutkan pula bahwa • Melangkah dua persegi ke arah vertikal runut-balik merupakan bentuk tipikal dari algoritma kemudian satu persegi ke arah horisontal, atau rekursif. • Melangkah satu persegi ke arah vertikal Istilah runut-balik pertama kali diperkenalkan oleh D.H. kemudian dua persegi ke arah horisontal. Lehmer pada tahun 1950. Selanjutnya, R. J. Walker, Jika dalam Knight’s Tour setiap persegi dari papan catur Golomb, dan Baumert menyajikan uraian umum tentang dapat dilewati tepat satu kali dan kuda kembali pada runut-balik dan penerapannya pada berbagai persoalan persegi semula maka disebut langkah kuda tertutup [HOR78]. (Closed Knight’s Tour). Namun, jika semua persegi telah dilewati dan kuda tidak dapat kembali ke posisi semula 3.1 Properti Umum Metode Runut-balik maka disebut langkah kuda yang terbuka (Open Knight’s Tour) Untuk menerapkan metode runut-balik, properti berikut didefinisikan: 1. Solusi persoalan. Solusi dinyatakan sebagai vektor n-tuple: X=(x1, x2, ..., xn), xi anggota himpunan berhingga Si . Mungkin saja S1 = S2 = ... = Sn. Contoh: Si = {0,1} Si = 0 atau 1 2. Fungsi pembangkit nilai xk Dinyatakan sebagai: T(k) T(k) membangkitkan nilai untuk xk, yang merupakan komponen vektor solusi 3. Fungsi pembatas (fungsi kriteria) Dinyatakan sebagai: B(x1, x2, ..., xk) Gambar 1. Contoh Closed Knight’s Tour Fungsi pembatas menentukan apakah (x1, x2, ..., xk) pada papan catur ukuran 8 x 8 mengarah ke solusi. Jika ya, maka pembangkitan nilai untuk xk+1 dilanjutkan, tetapi jika tidak, maka Di atas adalah contoh dari Knight’s Tour. Angka 1-64 (x1, x2, ..., xk) dibuang dan tidak dipertimbangkan menandakan urutan kotak yang dilewati oleh kuda catur lagi dalam pencarian solusi. tersebut. Langkah yang diambil oleh kuda urut dari 1 sampai dengan 64. 3.2 Prinsip Pencarian Solusi dengan Metode Banyak ilmuwan yang tertarik dengan permasalahan ini diantaranya adalah Leonhard Euler, Paul de Hijo, Sainte- Runut-balik Marie, Louis Posa, Allen Schwenk, Mark R. Keen, M. Kraitchik, Sloane’s, Wegener, dan masih banyak ilmuan Di sini penulis hanya akan meninjau pencarian solusi lainnya. pada pohon ruang status yang dibangun secara dinamis. Langkah-langkah pencarian solusi adalah sebagai berikut: 1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan pembentukan yang dipakai adalah 3. ALGORITMA RUNUT BALIK mengikuti metode pencarian mendalam (DFS). (BACKTRACK) Simpul-simpul yang sudah dilahirkan dinamakan simpul hidup (live node). Simpul hidup yang Algoritma runut-balik (backtracking algorithm) adalah sedang diperluas dinamakan simpul-E (Expand- algoritma yang berbasis pada DFS untuk mencari solusi node). Simpul dinomori dari atas ke bawah sesuai persoalan secara lebih mangkus. Runut-balik, yang dengan urutan kelahirannya (sesuai prinsip DFS). merupakan perbaikan dari algoritma bruteforce, secara 2. Tiap kali simpul-E diperluas, lintasan yang sistematis mencari solusi persoalan di antara semua dibangun olehnya bertambah panjang. Jika lintasan kemungkinan solusi yang ada. Dengan metode ini, kita yang sedang dibentuk tidak mengarah ke solusi, tidak perlu memeriksa semua kemungkinan solusi yang maka simpul-E “dibunuh” sehingga menjadi ada. Hanya pencarian yang mengarah ke solusi saja yang simpul mati (dead node). Fungsi yang digunakan selalu dipertimbangkan. Akibatnya, waktu pencarian dapat untuk membunuh simpul-E adalah dengan MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
  • 3. menerapkan fungsi pembatas (bounding function). Pada tiap kotak pada papan catur, kita akan membuat Simpul yang sudah mati tidak akan pernah daftar kotak yang dapat dilalui oleh kuda pada langkah diperluas lagi. selanjutnya. 3. Jika pembentukan lintasan berakhir dengan simpul Pada kasus ini, ada dua kemungkinan langkah, yaitu mati, maka proses pencarian diteruskan dengan kotak (2,3) dan (3,2). membangkitkan simpul anak yang lainnya. Bila Pertama kita coba (2,3). Jika langkah pada kotak ini tidak ada lagi simpul anak yang dapat tidak menuju solusi, maka kita akan runut-balik dan dibangkitkan, maka pencatian solusi dilanjutkan mencoba kotak (3,2). dengan melakukan runut-balik ke simpul hidup terdekat (simpul orangtua). Selanjutnya simpul ini 1 menjadi simpul-E yang baru. Lintasan baru dibangun kembali sampai lintasan tersebut 2 membentuk solusi. 4. Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi simpul hidup untuk runut balik. Gambar 3. Dari kotak ini, ada dua kemungkinan langkah, yaitu 4. APLIKASI ALGORITMA RUNUT (1,1) dan (3,1). Namun karena kotak (1,1) sudah pernah dilewati, maka kita akan mencoba kotak (3,1). -BALIK PADA KNIGHT’S TOUR 1 Algoritma runut-balik (backtracking algorithm) dapat dipakai untuk menyelesaikan permasalahan dari Knight’s 2 Tour. Ide dasar dari algoritma runut balik adalah dengan membangun solusi-solusi parsial dari masalah (dalam hal 3 ini jalan selangkah pada papan) lalu mencoba memperluas Gambar 4. solusi tersebut. Jika solusi yang telah dikembangkan gagal Dari kotak ini, ada dua kemungkinan langkah, yaitu (langkah selanjutnya tidak menuju solusi) maka akan (2,3) dan (1,2). Namun karena kotak (2,3) sudah pernah dilakukan runut-balik dan mencoba solusi parsial lainnya. dilewati, maka kita akan mencoba kotak (1,2). Algoritma runut-balik yang dipakai adalah: 1. Dari kotak tempat kuda tersebut berada, 1 4 dibangkitkan langkah-langkah berikutnya yang memungkinkan dilalui oleh kuda tersebut. 2 2. Salah satu langkah (kotak) dipilih untuk diperluas. 3. Kuda melangkah ke kotak yang dipilih tersebut. 3 4. Kembali ke langkah satu sampai langkah yang Gambar 5. diperluas tidak dapat mencapai solusi (kuda tidak Dari kotak ini, ada dua kemungkinan langkah, yaitu dapat melangkah lagi). (3,1) dan (3,3). Namun karena kotak (3,1) sudah pernah 5. Pencarian langkah dilakukan dengan melakukan dilewati, maka kita akan mencoba kotak (3,3). runut balik ke langkah yang telah dilalui terdekat dan kuda melangkah balik ke kotak tersebut dan 1 4 kembali ke langkah satu. 6. Pencarian langkah dihentikan bila telah melakukan 2 solusi atau tidak ada langkah yang memungkinkan lagi bagi kuda catur tersebut. 3 5 Contoh pada papan 3x3: Gambar 6. Dengan menggunakan langkah-langkah yang sudah Dari kotak ini, ada dua kemungkinan langkah, yaitu ditentukan pada algoritma runut-balik di atas maka dapat (2,1) dan (1,2). Namun karena kotak (1,2) sudah pernah ditemukan: dilewati, maka kita akan mencoba kotak (2,1). Kondisi awal kuda berada pada (1,1) 1 4 1 6 2 3 5 Gambar 7. Gambar 2. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
  • 4. Dari kotak ini, ada dua kemungkinan langkah, yaitu Tidak ada langkah yang memungkinkan. Maka kita (1,3) dan (3,3). Namun karena kotak (3,3) sudah pernah kembali akan melakukan runut-balik. dilewati, maka kita akan mencoba kotak (1,3). 1 1 4 7 2 6 2 3 3 5 Gambar 14. Gambar 8. Tidak ada langkah yang memungkinkan. Maka kita Dari kotak ini, ada dua kemungkinan langkah, yaitu kembali akan melakukan runut-balik. (2,1) dan (3,2). Namun karena kotak (2,1) sudah pernah dilewati, maka kita akan mencoba kotak (3,2). 1 1 4 7 2 6 2 3 8 5 Gambar 15. Langkah lainnya yang memungkinkan adalah kotak Gambar 9. (1,1). Namun kotak tersebut sudah pernah dilalui oleh Dari kotak ini, ada dua kemungkinan langkah, yaitu kuda. Maka runut-balik kembali dilakukan. (1,1) dan (1,3). Kotak (2,1) sudah pernah dilewati. Kotak (1,3) juga sudah pernah dilewati. 1 Tidak ada langkah yang memungkinkan. Maka kita akan melakukan runut-balik. 1 4 7 Gambar 16. 6 2 Kotak (3,2) adalah pilihan lain dari kotak (1,1) yang 3 5 belum pernah dicoba. Maka kuda melangkah ke kotak tersebut. Gambar 10. Proses dilakukan lagi. Ketika telah berada di akhir Tidak ada langkah yang memungkinkan. Maka kita proses, semua kemungkinan langkah telah dicoba. Dan kembali akan melakukan runut-balik. setelah dicoba dengan langkah apapun papan dengan ukuran 3x3 selalu menghasilkan satu kotak yang tidak 1 4 pernah dilalui oleh kuda. Maka proses dihentikan dan dapat diketahui bahwa pada papan 3x3 tidak ditemukan 6 2 adanya Closed Knight’s Tour. Algoritma runut-balik ini dapat ditulis ke dalam pseudo 3 5 code sebagai berikut: Gambar 11. Langkah lainnya yang memungkinkan adalah kotak { (3,3). Namun kotak tersebut sudah pernah dilalui oleh papan berukuran nxn kuda. Maka runut-balik kembali dilakukan. (x,y) adalah koordinat (baris,kolom) dari kotak langkah adalah nomer kotak yang telah dikunjungi 1 4 ok adalah Boolean yang menandakan sukses atau gagal 2 } 3 5 type papan_catur is array (1..n,1..n) of integer; procedure benteng(papan: in out papan_catur; Gambar 12. x,y,langkah: in out integer; Tidak ada langkah yang memungkinkan. Maka kita ok: in out boolean) is w,z: integer;) kembali akan melakukan runut-balik. begin if langkah = n^2+1 then 1 4 ok := ((x,y) = (1,1)); 2 elseif papan(x,y) /= 0 then 3 Gambar 13. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008
  • 5. ok := false; REFERENSI else papan(x,y) := langkah; [1] Mumtaz, Fahmi. “Aplikasi Teori Graf pada Knight’s Tour”, loop 2007. (w,z) := Langkah berikutnya dari (x,y); [2] Munir, Rinaldi. “Diktat Kuliah IF2251 Strategi benteng(papan, w, z, langkah+1, ok); Algoritmik”, Program Studi Teknik Informatika STEI ITB, exit when (ok or tidak ada langkah lain); 2006. end loop; [3] Lewandowski, Gary. “Project 1: The Knight’s Tour Gary Lewandowski”, CSCI 220, fall 2001 if not ok then [4] http://www.csc.liv.ac.uk/%7Eped/algor_complete.html papan (x,y) ;= 0; - - Backtracking Tanggal akses: 19 Mei 2008 pukul 14:23 end if; [5] http://www.daniweb.com/forums/post609524.html Tanggal end if; akses: 19 Mei 2008 pukul 17:12 end papan; [6] http://web.telia.com/~u85905224/knight/eknight.htm Tanggal akses: 19 Mei 2008 pukul 21:45 Algoritma runut-balik ini juga bisa diaplikasikan terhadap papan catur dengan ukuran yang lebih besar lagi dengan salah dua dari kemungkinan hasil yang didapat adalah sebagai berikut: 10 5 12 1 13 2 9 6 8 11 4 15 3 14 7 Gambar 17. Papan 4 x 4 tidak pernah terjadi Closed Knight Tour 10 31 16 23 8 1 17 24 9 2 15 22 32 11 30 21 36 7 25 18 3 12 29 14 4 33 20 27 6 35 19 26 5 34 13 28 Gambar 18. Salah satu dari 6 Closed Knight Tour pada Papan 6 x 6 s 5. KESIMPULAN Knight’s Tour adalah salah satu masalah dari aplikasi teori graf pada permainan catur papan. Ada banyak strategi algoritmik yang dapat diterapkan untuk menentukan Knight’s Tour pada permainan tersebut. Salah satunya dapat menggunakan algoritma runut-balik (backtracking algorithm). MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008