BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Kebutuhan Sistem
Pada analisis kebutuhan sistem ini, akan dilakukan analisis terhadap arena permainan dan analisis algoritma.
3.1.1 Analisis Arena Permainan
Pada aplikasi yang akan dibangun, permainan congklak ini akan dimainkan oleh dua pihak, yaitu seorang pengguna yang dinamakan dengan pemain dan sebuah
kecerdasan buatan yang pada aplikasi ini dinamakan dengan Btrack.
Arena permainan pada papan congklak ini akan terbagi atas 3 daerah, yaitu: daerah permainan yang terdiri dari daerah permainan pemain dan daerah permainan
Btrack serta daerah target yaitu lumbung pemain dan lumbung Btrack. Hal ini dapat dilihat pada Gambar 3.1.
Apemain[1..7] Acomp[1..7]
Lpemain Lcomp
Gambar 3.1 Papan permainan congklak
Universitas Sumatera Utara
Keterangan :
1. Apemain[1..7] : merupakan daerah permainan pemain yang terdiri dari 7
buah lubang. Setiap lubang akan terisi 7 buah biji pada saat awal permainan. Daerah ini digunakan pemain untuk pemilihan langkah
permainan dan melakukan tembak.
2. Acomp[1..7] : merupakan daerah permainan Btrack yang terdiri dari 7 buah
lubang. Setiap lubang akan terisi 7 buah biji pada saat awal permainan. Daerah ini digunakan Btrack untuk pemilihan langkah permainan dan
melakukan tembak. Proses ini nantinya akan menggunakan algoritma backtracking untuk melakukan pemilihan tersebut.
3. Lpemain : merupakan daerah lumbung atau target pemain. Lubang ini
hanya dapat diisi oleh pemain tersebut. Banyaknya isi pada Lpemain akan menjadi skor untuk si pemain tersebut.
4. Lcomp : merupakan daerah lumbung atau target Btrack. Lubang ini hanya
dapat diisi oleh Btrack tersebut. Banyaknya isi pada Lcomputer akan menjadi skor untuk Btrack tersebut.
3.1.2 Analisis Algoritma
Seperti yang telah dipaparkan pada bab sebelumnya, algoritma yang digunakan untuk membangun aplikasi ini adalah algoritma Runut-balik Backtraking. Algoritma ini
nantinya, akan digunakan oleh agen kecerdesan buatan yaitu Btrack untuk memilih langkah permainan.
Pada algoritma Backtracking, ada beberapa properti yang perlu dipertimbangkan yaitu properti solusi persoalan, properti komponen vektor solusi dan
properti kriteria pembatas. Berikut ini adalah penjabaran properti-properti tersebut.
Universitas Sumatera Utara
1. Properti solusi persoalan
Properti solusi persoalan merupakan properti yang berisikan simpul-simpul solusi dari persoalan. Pada permainan congklak ini, simpul-simpul persoalan
merupakan lubang permainan yang tersedia pada papan congklak. Lubang- lubang tersebut diberi simbol C1 – C7 untuk lubang daerah permainan Btrack
dan simbol P1 – P7 untuk lubang daerah permainan pemain. Untuk lubang besar atau lumbung diberi simbol L.
S = {C1,C2,C3,C4,C5,C6,C7,P1,P2,P3,P4,P5,P6,P7,L}
2. Properti komponen vektor solusi.
Properti komponen vektor sulusi merupakan parameter yang digunakan untuk mengarahkan penelusuran simpul menuju ke arah solusi. Parameter ini terdiri
atas dua, yaitu x dan y. x untuk menyatakan jumlah biji yang diperoleh untuk dimasukkan ke lumbung dan y menyatakan jumlah biji simpul sebelumnya.
3. Properti kriteria pembatas
Properti kriteria pembatas merupakan properti yang berupa fungsi untuk menentukan apakah simpul-simpul mengarah ke solusi. Kriteria pembatas
yang diterapkan pada algoritma backtracking ini, mengacu pada strategi yang akan dipakai pada kecerdasan buatan pada permainan congklak. Strategi
tersebut, yaitu :
a Langkah langsung menuju lumbung. Pemilihan langkah ini diambil
berdasarkan jumlah biji pada arena Btrack yang langsung berhenti pada lubang besar. Langkah ini diambil membuat giliran permainan
berlanjut dengan memilih lubang yang lain pada arena sendiri dan membuat biji pada lumbung bertambah.
Universitas Sumatera Utara
b Langkah melakukan tembak. Pemilihan langkah ini terjadi apabila biji
permainan habis dan jatuh di daerah sendiri dan diseberang lubang tersebut terdapat biji biji 0 atau melakukan pemilihan lubang yang
dapat melakukan tembak pada arena sendiri. Langkah ini diambil membuat biji yang akan dimasukkan ke lumbung pada setiap giliran
menjadi lebih besar.
Pada kriteria pembatas ini, strategi a menjadi prioritas utama untuk kriteria pembatas ini. Sedangkan strategi b dilakukan jika strategi a tidak diperoleh
pada saat penelusuran simpul.
Berikut ini adalah pseudocode penerapan algoritma Backtracking pada permainan congklak.
Stop ←
false
nodeComp ← 1
While nodeComp
≤ 7
and not stop do
begin biji
← isi[nodeComp] if biji = 0 then
nodeComp ← nodeComp+1
else begin
cek ←
false while not cek do
begin nextNode
← deepNodebiji,nodeComp if nextNode = L then
begin stop
← true step
← nextNode
end else if deep
≤ 10 then
begin stop
← false nodeComp
← nextNode biji
← isi[nextNode] cek
← false pointdeep
← isiL
end else
begin cek
← true nodeComp
← nodeComp+1 stop
← false end
end
Universitas Sumatera Utara
end end
if not found L then maxpointdeep
Pada pseudocode diatas, dapat dilihat bahwa penelusuran simpul dimulai dari lubang milik Btrack C1 s.d C7 yaitu nodeComp. Jika isi nodeComp sama dengan nol
maka akan dilakukan backtracking menuju nodeComp berikutnya. Jika berisi, maka akan dilakukan penelusuran simpul berikutnya sampai deepNode ditemukan simpul
yang berbiji kosong atau sampai kedalaman 10. Jika ditemukan nextNode sama dengan L, maka penelusuran dihentikan dan simpul tersebut menjadi langkah yang
akan diambil Btrack untuk melakukan permainan. Jika tidak, maka langkah yang diambil adalah nodeComp yang memiliki maxpointdeep yang terbesar.
Berikut ini adalah contoh kasus penelusuran algoritma Backtracking pada permainan congklak.
1. Contoh kasus untuk pemilihan strategi a.
Berikut ini adalah gambar keadaan papan permainan congklak yang dapat dilihat pada Gambar 3.2.
C7 C6
C5 C4
C3 C2
C1
P1 P2
P3 P4
P5 P6
P7
Gambar 3.2 Keadaan papan permainan congklak untuk strategi a
Pada gambar di atas, hasil dari penelusuran algoritma backtracking adalah memilih lubang C7 karena langkah lubang tersebut langsung menuju
lumbung. Hasil penelusurannya dapat dilihat pada Gambar 3.3.
Universitas Sumatera Utara
C1 C2
C3 C6
C5 C4
C7 P2
C1 P3
C2 P4
C3 P5
C4 P6
C5 P7
C6 L
B B
B B
B B
1,7 1,7
1,7 1,7
1,7 1,7
9,8 1,7
9,8 9,8
9,8 9,8
9,8
Gambar 3.3 Pohon penelusuran backtracking untuk hasil C7
2. Contoh kasus untuk pemilihan strategi b.
Berikut ini adalah gambar keadaan papan permainan congklak yang dapat dilihat pada Gambar 3.4.
C7 C6
C5 C4
C3 C2
C1
P1 P2
P3 P4
P5 3
P6 2
P7 1\
Gambar 3.4 Keadaan papan permainan congklak untuk strategi b
Pada gambar di atas, hasil dari penelusuran algoritma backtracking adalah memilih lubang C2 karena langkah lubang tersebut memiliki jumlah
poin yang lebih besar dari lubang lainnya. Hasil penelusurannya dapat dilihat pada Gambar 3.5.
Universitas Sumatera Utara
C1 C2
C3 C6
C5 C4
C7
P5
P1 C7
B
B 1,8
1,15
P6
C7
1,3
C6
C4
C2
P3 P3
P5
P1
C5
P4
C5
15,6
P6
C7
C6
C4
C2 P2
C2
3,7
B B
B B
B
P1
0,6
1,16 0,2
0,2
1,7 1,15
1,5
0,4
0,3 1,9
1,5
0,6
1,16
0,2
0,2
1,8 0,4
14,3
Gambar 3.5 Pohon penelusuran backtracking untuk hasil C2
3.2 Perancangan Sistem