LAPORAN TUGAS BESAR LAPORAN TUGAS BESAR
DASAR ALGORITMA & PEMOGRAMAN DASAR ALGORITMA & PEMOGRAMAN
JUDUL PROGRAM JUDUL PROGRAM “2048” “2048” BIDANG KEGIATAN: BIDANG KEGIATAN: MATH GAMES MATH GAMES
Diusulkan oleh:
Diusulkan oleh:
Dhia Aziz
Dhia Aziz Rizqi Arrahman
Rizqi Arrahman (Ketua/13011
(Ketua/1301140364/2014)
40364/2014)
Lann
Lann !e"tiani
!e"tiani (An##ota1/1301
(An##ota1/1301144034/20
144034/2014)
14)
Renal$
Renal$ %ar$anto
%ar$anto (An##ota2/1301
(An##ota2/1301144334/20
144334/2014)
14)
&u$i
&u$i !antiko
!antiko (An##ota3/1301
(An##ota3/1301144404/20
144404/2014)
14)
UNIVERSITAS TELKOM UNIVERSITAS TELKOM BANDUNG BANDUNG 2014 2014 1 1
RINGKASAN RINGKASAN
'roek an# kami uat untuk tu#as esar mata kuliah Dasar al#oritma "emo#raman kali
'roek an# kami uat untuk tu#as esar mata kuliah Dasar al#oritma "emo#raman kali
ini a$alah *ame+ ,u$ul #ame ini a$alah -204.+ *ame ini termasuk kate#ori #ame "uzzle
ini a$alah *ame+ ,u$ul #ame ini a$alah -204.+ *ame ini termasuk kate#ori #ame "uzzle
matematika an# uku" menarik $an $a"at memuat "en##unana keta#ihan+ !elain $a"at
matematika an# uku" menarik $an $a"at memuat "en##unana keta#ihan+ !elain $a"at
men#hiur #ame ini u#a interakti $an
men#hiur #ame ini u#a interakti $an $a"at men#asah kemam"uan erhitun# "en##unana+
$a"at men#asah kemam"uan erhitun# "en##unana+
Di$alam #ame ini "emain harus men#um"ulkan eera"a an#ka hin##a erumlah 204.+
Di$alam #ame ini "emain harus men#um"ulkan eera"a an#ka hin##a erumlah 204.+
An#ka an# $ise$iakan hana an#ka an#ka #ena" saa+
A
A.. JJUUDDUULL
,u$ul #ame an# kami aukan a$alah
,u$ul #ame an# kami aukan a$alah
2048.2048.B.
B. LALATTAR BAR BELAELAKANKANG MASAG MASALAHLAH
!aat ini teknolo#i su$ah san#at erkeman#+ &e#itu "ula er$am"ak "a$a #ame#ame an#
!aat ini teknolo#i su$ah san#at erkeman#+ &e#itu "ula er$am"ak "a$a #ame#ame an#
$ita5arkan "a$a #a$#et an$a+ A"aila kita menari #ame maka akan anak ermunulan
$ita5arkan "a$a #a$#et an$a+ A"aila kita menari #ame maka akan anak ermunulan
anak
anak u$ul
u$ul #ame
#ame an#
an# tentuna
tentuna memiliki
memiliki iri
iri khas
khas masin#masin#+
masin#masin#+ Dari
Dari sekian
sekian anak
anak
#ame an# su$ah a$a saat ini eera"a $iantarana $a"at $iuat melalui "ro#ram "asal+
#ame an# su$ah a$a saat ini eera"a $iantarana $a"at $iuat melalui "ro#ram "asal+
er
ermas
masuk salah
uk salah sat
satu
u #am
#ame
e an
an#
# uk
uku" menari
u" menarik
k ak
akni
ni #am
#amee
20482048+ *ame ini se$erhana
+ *ame ini se$erhana
namun $a"at memuat "en##unana keta#ihan untuk ermain+ !elain menarik #ame ini u#a
namun $a"at memuat "en##unana keta#ihan untuk ermain+ !elain menarik #ame ini u#a
$a"at men#asah kemam"uan erhitun# an$a+ !ehin##a kami memutuskan untuk memuat
$a"at men#asah kemam"uan erhitun# an$a+ !ehin##a kami memutuskan untuk memuat
#ame 204. ini untuk tu#as Dasar al#oritma "emo#raman kali ini+
#ame 204. ini untuk tu#as Dasar al#oritma "emo#raman kali ini+
C.
C. RURUMUMUSAN SAN MAMASALSALAHAH
1
1++ A
A"
"a i
a ittu #
u #aam
mee
2048204877
2+
2+ &a
&a#a
#aim
iman
ana ar
a ara mem
a memu
uat #a
at #ame
me
20482048men##unakan "asal7
men##unakan "asal7
D
D.. TTUUJJUUAANN
1+
1+ 8nt
8ntuk me
uk men#e
n#etah
tahui le
ui leih $a
ih $alam me
lam men#e
n#enai #a
nai #ame
me
204820482+
2+ 8nt
8ntuk m
uk men#
en#etah
etahui
ui ara m
ara mem
emuat
uat #am
#amee
20482048melalui "asal
melalui "asal
3 3
E.
E. PEPERSRSOAOALLAANN
8ntuk memenuhi tu#as Dasar al#oritma "emo#raman kami memuat seuah "ro#ram
8ntuk memenuhi tu#as Dasar al#oritma "emo#raman kami memuat seuah "ro#ram
#
#am
ame
e $e
$en
n#a
#an
n u
u$
$ul
ul
20482048+
+ *
*aam
mee
22004488a$
a$ala
alah
h se
seua
uah
h #a
#ame
me "u
"uzzl
zzle
e mat
matem
emati
atika
ka a
an#
n#
memutuhkan strate#i untuk mena"ai an#ka
memutuhkan strate#i untuk mena"ai an#ka
20482048+ Dalam #ame ini terse$ia eera"a kotak
+ Dalam #ame ini terse$ia eera"a kotak
koson# an# nantina eera"a kotak akan $iisi oleh an#ka 2 atau 4 seara ran$om+ Kotak
koson# an# nantina eera"a kotak akan $iisi oleh an#ka 2 atau 4 seara ran$om+ Kotak
akan er#eser ketika
akan er#eser ketika "emain menekan salah
"emain menekan salah satu tomol arah
satu tomol arah "a$a keoar$
"a$a keoar$+ An#kaan
+ An#kaan#ka
#ka
$alam kotak terseut hana isa $iumlahkan $en#an an#ka an# sama (misalkan an#ka 2
$alam kotak terseut hana isa $iumlahkan $en#an an#ka an# sama (misalkan an#ka 2
hana isa $iumlahkan $en#an an#ka 2 la#i an# akan men#hasilkan an#ka 4 "a$a satu
hana isa $iumlahkan $en#an an#ka 2 la#i an# akan men#hasilkan an#ka 4 "a$a satu
kotak) $an seterusna+ uuan $ari #ame ini a$alah menumlahkan an#ka an#ka an# a$a
kotak) $an seterusna+ uuan $ari #ame ini a$alah menumlahkan an#ka an#ka an# a$a
"a$a
"a$a kotak
kotak hin##a
hin##a munul
munul kotak
kotak $en#an
$en#an umlah
umlah an#ka
an#ka
20482048+ An#ka 2 atau 4 akan munul
+ An#ka 2 atau 4 akan munul
seara
seara
randomrandomketika "emain menekan tomol arah+
ketika "emain menekan tomol arah+
'a"an skor $ikanan atas akan terus mem"erarui skor "emain+ !kor "emain era5al $ari
'a"an skor $ikanan atas akan terus mem"erarui skor "emain+ !kor "emain era5al $ari
an#ka nol lalu ertamah ketika $ua kotak er#aun# $an mementuk kotak ernomor aru
an#ka nol lalu ertamah ketika $ua kotak er#aun# $an mementuk kotak ernomor aru
$an seterusna seirin# $en#an kotak kotak an# erhasil $iumlahkan+ !e"erti "ermainan
$an seterusna seirin# $en#an kotak kotak an# erhasil $iumlahkan+ !e"erti "ermainan
arcade
arcade
lainna skor teraik "emain akan $itam"ilkan ersan$in#an $en#an skor saat itu+
lainna skor teraik "emain akan $itam"ilkan ersan$in#an $en#an skor saat itu+
'emain aru menan# ketika seuah kotak ernomor
'emain aru menan# ketika seuah kotak ernomor
20482048munul $i "a"an+ !etelah mena"ai
munul $i "a"an+ !etelah mena"ai
skor tar#et "emain masih isa
skor tar#et "emain masih isa terus ermain hin##a mena"ai skor an#
terus ermain hin##a mena"ai skor an# tin##
tin##i+ 'ermainan
i+ 'ermainan
akan terhenti ketika ti$ak a$a la#i ruan# koson# an# isa $i#eserkan karena an#ka an#ka $i
akan terhenti ketika ti$ak a$a la#i ruan# koson# an# isa $i#eserkan karena an#ka an#ka $i
"a"an ti$ak isa la#i $iumlahkan+
F
F.. FUFUNGNGSIOSIONANALILITTAASS 9ena5
9ena5a "ersoalan a "ersoalan $iata$iatas s kami memuakami memuat suatu "ro#ram an# memilikt suatu "ro#ram an# memiliki un#sionali un#sionalitas sea#aiitas sea#ai erikut :
erikut : 1
1++ nn""uut t DDiirreettioionn 'erintah an# $iin"utkan oleh user untuk menentukan arah sea#ai 'erintah an# $iin"utkan oleh user untuk menentukan arah sea#ai lan#kah selanutna
lan#kah selanutna 2+
2+ A$A$$ $e$ $eleletete e$i e$it nilt nilai taai tallee 'erintah untuk menamahkan nilai "a$a tale koson# 'erintah untuk menamahkan nilai "a$a tale koson# men#e$it nilai kolom ernilai sa
men#e$it nilai kolom ernilai sama $an men#ha"uskan taael "enumlah seelumna+ma $an men#ha"uskan taael "enumlah seelumna+ 3+
3+ 'en'en#i#isiasian tan tale kosle kosonon# se# searara rana ran$o$omm erisi "erintah untuk men#eek "osisi"osisi erisi "erintah untuk men#eek "osisi"osisi tael an# memiliki nilai koson# kemu$ian men#in"utkan nilai 2 atau 4 seara ran$om $i tael an# memiliki nilai koson# kemu$ian men#in"utkan nilai 2 atau 4 seara ran$om $i salah satu tael koson# ta$i+
salah satu tael koson# ta$i+ 4
4++ 220044..;; "erintah an# $ilakukan seara erkala untuk men#eek a$a ti$akna kolom "erintah an# $ilakukan seara erkala untuk men#eek a$a ti$akna kolom an# ernilai 204. an# meru"akan kon$isi untuk
an# ernilai 204. an# meru"akan kon$isi untuk men#akhiri #ame+men#akhiri #ame+ <
<++ !!oorree meru"akan "erintah untuk menamah sore $ari "eruatan sesuai kolomkolommeru"akan "erintah untuk menamah sore $ari "eruatan sesuai kolomkolom an
an# # salsalin# in# $i $i umumlahlahkankan+ + A"A"aiaila la teltelah ah menmenemuemukan kan a#na#nka ka 204204. . akaakan n $i$ieri eri sosorere tamahan+
tamahan+ 6
6++ ==iiee5 r5 raannkkiinn##'erintah untuk menam"ilkan urutan sore an# tersi'erintah untuk menam"ilkan urutan sore an# tersi m"an+m"an+ >
>++ **amame e oo??eerr 'erintah untuk "en#eekan kon$isi #ame 'erintah untuk "en#eekan kon$isi #ame telah erakhir atau tu$ak telah erakhir atau tu$ak
5 5
*+
*+ SPESIFIKASI PENJELASAN PROGRAM DASPESIFIKASI PENJELASAN PROGRAM DA N FUNGSIONALITASN FUNGSIONALITAS
'a$a "ro#ram ini an#kaan#ka #ena" an# akan $imainkan $isim"an $alam arra $ua $imensi 'a$a "ro#ram ini an#kaan#ka #ena" an# akan $imainkan $isim"an $alam arra $ua $imensi an# ter$i
an# ter$iri $ari 4 uah kolom $an 4 uah aris+ ri $ari 4 uah kolom $an 4 uah aris+ !e$an#!e$an#kan "roekan "roe$ure $an un$ure $an untion $iuation $iuatt er$asarkan @un#sionalitas an# telah $itentukan
er$asarkan @un#sionalitas an# telah $itentukan akni:akni: 1+
1+ nn"u"ut Dt Dirireetitioonn 'ro
'roe$e$ure ure nDnDireiretiotion n 'ro'roe$e$ure ure anan# # ererisi isi "er"erintintah ah untuntuk uk menmen#in#in"ut"utkankan arah(u"$o5nletri#ht) sea#ai lan#kah selanutna $alam "ermainan+
arah(u"$o5nletri#ht) sea#ai lan#kah selanutna $alam "ermainan+
@untion BekA?ailale @un#si erti"e an# men#emalikan nilai oolean untuk @untion BekA?ailale @un#si erti"e an# men#emalikan nilai oolean untuk men#eek a"akah ter$a"at kolom an# ias koson# $an isa $iumlahkan sesuai men#eek a"akah ter$a"at kolom an# ias koson# $an isa $iumlahkan sesuai ketentuan a"aila alse maka akan men#ulan#
ketentuan a"aila alse maka akan men#ulan# ke "roe$ure nDiretion+ke "roe$ure nDiretion+
2+
2+ A$A$$ $$ $eleletete ee e$i$it nit nilalai tai talele
er$iri $ari un#si a$$ tale an# men#emalikan nilai inte#er $ari tael koson# er$iri $ari un#si a$$ tale an# men#emalikan nilai inte#er $ari tael koson# men
mena$a$i i erernilnilai ai unun#si #si e$ie$it t tatale le anan# # menmen#em#emalalikaikan n nilnilai ai intinte#ee#er r $en$en#an#an menumlahkan antara 2 uah tael $an un#si $elete tael an# men#emalikan nilai menumlahkan antara 2 uah tael $an un#si $elete tael an# men#emalikan nilai inte#er $en#an meruah tael an# menumlahkan mena$i nol+
inte#er $en#an meruah tael an# menumlahkan mena$i nol+ 3+
3+ 'en'en#is#isian ian tatale kle kosooson# n# seaseara rra ran$an$omom Den#a
Den#an n memanmemanaatkaaatkan n "roe"roe$ure $ure siRasiRan$om an# n$om an# men#hmen#hasilkan nilai asilkan nilai inte#inte#er er "a$a"a$a salah satu tael an# ernilai koson# untuk $imasukkan nilai 2 atau 4 seara ran$om salah satu tael an# ernilai koson# untuk $imasukkan nilai 2 atau 4 seara ran$om aik "emilihan taelna atau"un "emilihan an
aik "emilihan taelna atau"un "emilihan an#kana+#kana+ 4
4++ 220044..;; &eris
&erisi i @un#s@un#si i Bek2Bek204. an# 04. an# eruerun#si untuk n#si untuk men#men#eek keera$aaeek keera$aan n kolom an#kolom an# ernilai
ernilai 204. 204. a"aila a"aila ter$a"at ter$a"at nilai nilai 204. 204. maka maka #ame #ame akan akan erakhir erakhir $en#an $en#an kon$isikon$isi menan#+
menan#+ <
<++ !!oorree !o
!ore re mermeru"au"akan kan tuutuuan an anan# # $i$iari ari "a$"a$a a #am#ame e iniini untuntuk uk memen$an$a"at"atkan kan sosorere $i#unakan un#si sumsore an# men#emalikan nilai inte#er $en#an menumlahkan $i#unakan un#si sumsore an# men#emalikan nilai inte#er $en#an menumlahkan sore itu sen$iri er$asarkan "enumlah kolom an# $i"roses "a$a un#si e$it tale sore itu sen$iri er$asarkan "enumlah kolom an# $i"roses "a$a un#si e$it tale seelumna+ !ore $imulai $ari nilai nol+ !ore $isim"an $alam entuk
seelumna+ !ore $imulai $ari nilai nol+ !ore $isim"an $alam entuk ile se$erhanaile se$erhana eru"a entuk teks+
eru"a entuk teks+ 6
6++ ==iiee5 r5 raannkkiinn##
&erisi "roe$ure =ie5Rank untuk memunulkan $ata rankin# er$asarkan sore &erisi "roe$ure =ie5Rank untuk memunulkan $ata rankin# er$asarkan sore an#an# telah $isortin# $ari tin##i ke ren$ah seelumna+ Rankin# hana menam"un# 10 $ata telah $isortin# $ari tin##i ke ren$ah seelumna+ Rankin# hana menam"un# 10 $ata a$i $ata an# terkeil akan tereleminasi+
a$i $ata an# terkeil akan tereleminasi+
>
&eris
&erisi i "roe"roe$ure Bek!te" untuk $ure Bek!te" untuk men#men#eek masih eek masih ter$ater$a"at lan#kah atau "at lan#kah atau ti$ak untuk ti$ak untuk melanutkan "ermainan ini an# $iek a$alah a$a ti$akna ilan#an an# $a"at melanutkan "ermainan ini an# $iek a$alah a$a ti$akna ilan#an an# $a"at $iumlah $an anakna kotak koson# a"aila ti$ak ter$a"at ilan#an an# $a"at $iumlah $an anakna kotak koson# a"aila ti$ak ter$a"at ilan#an an# $a"at $iumlah $an semua kotak "enuh maka
$iumlah $an semua kotak "enuh maka #ame akan erkahir+#ame akan erkahir+
'ro#ram $alam al#oritma:
'ro#ram $alam al#oritma:
7 7
9 9
11 11
'ro#ram ketika $i Run
'ro#ram ketika $i Run
13 13