A-1
LISTING PROGRAM
1. Cek gerak ke kiri, kanan, bawah, atas
function gerakKiri() {
var cekx = Math.round(((_root["tokoh"]._x - 15 - 1) - 50) / 30); var ceky1 = Math.round(((_root["tokoh"]._y - 10) - 50) / 30); var ceky2 = Math.round(((_root["tokoh"]._y) - 50) / 30); var ceky3 = Math.round(((_root["tokoh"]._y + 10) - 50) / 30); if ((_root.map[0][ceky1][cekx] != 1) &&
(_root.map[0][ceky2][cekx] != 1) && (_root.map[0][ceky3][cekx] != 1)) {
_root["tokoh"]._x = _root["tokoh"]._x - 10; }
}
function gerakKanan() {
var cekx = Math.round(((_root["tokoh"]._x + 15 + 1) - 50) / 30); var ceky1 = Math.round(((_root["tokoh"]._y - 10) - 50) / 30); var ceky2 = Math.round(((_root["tokoh"]._y) - 50) / 30); var ceky3 = Math.round(((_root["tokoh"]._y + 10) - 50) / 30); if ((_root.map[0][ceky1][cekx] != 1) &&
(_root.map[0][ceky2][cekx] != 1) && (_root.map[0][ceky3][cekx] != 1)) {
_root["tokoh"]._x = _root["tokoh"]._x + 10; }
}
function gerakAtas()
A-2
{
var ceky = Math.round(((_root["tokoh"]._y - 15 - 1) - 50) / 30); var cekx1 = Math.round(((_root["tokoh"]._x - 10) - 50) / 30); var cekx2 = Math.round(((_root["tokoh"]._x) - 50) / 30); var cekx3 = Math.round(((_root["tokoh"]._x + 10) - 50) / 30); if ((_root.map[0][ceky][cekx1] != 1) &&
(_root.map[0][ceky][cekx2] != 1) && (_root.map[0][ceky][cekx3] != 1)) {
_root["tokoh"]._y = _root["tokoh"]._y - 10; }
}
function gerakBawah() {
var ceky = Math.round(((_root["tokoh"]._y + 15 + 1) - 50) / 30); var cekx1 = Math.round(((_root["tokoh"]._x - 10) - 50) / 30); var cekx2 = Math.round(((_root["tokoh"]._x) - 50) / 30); var cekx3 = Math.round(((_root["tokoh"]._x + 10) - 50) / 30); if ((_root.map[0][ceky][cekx1] != 1) &&
(_root.map[0][ceky][cekx2] != 1) && (_root.map[0][ceky][cekx3] != 1)) {
_root["tokoh"]._y = _root["tokoh"]._y + 10; }
}
2. Hitung jika belok ke kiri, kanan, atas dan bawah. angka perhitungan berubah jika pemain bergeser
function cekbelok(ex:Number, ye:Number, direk:Number, angkamap:Number) { var jmlarah = 0;
var atas = [0,0]; var bawah = [0,0];
A-3
var kanan = [0,0]; var kiri = [0,0];
var arah = [ [0,0,0,0,0], [0,0,0,0,0], [0,0,0,0,0] ];
atas = [Math.round((ye-50)/30)-1,Math.round((ex-50)/30)]; bawah = [Math.round((ye-50)/30)+1,Math.round((ex-50)/30)]; kanan = [Math.round((ye-50)/30),Math.round((ex-50)/30)+1]; kiri = [Math.round((ye-50)/30),Math.round((ex-50)/30)-1]; if (_root.map[angkamap][atas[0]][atas[1]]!=1 && direk!=2){
arah[jmlarah][0] = atas[0]; arah[jmlarah][1] = atas[1]; arah[jmlarah][2] = 3; jmlarah++;
}
if (_root.map[angkamap][bawah[0]][bawah[1]]!=1 && direk!=3){ arah[jmlarah][0] = bawah[0];
arah[jmlarah][1] = bawah[1]; arah[jmlarah][2] = 2;
jmlarah++; }
if (_root.map[angkamap][kanan[0]][kanan[1]]!=1 && direk!=1) { arah[jmlarah][0] = kanan[0];
arah[jmlarah][1] = kanan[1]; arah[jmlarah][2] = 0;
jmlarah++; }
if (_root.map[angkamap][kiri[0]][kiri[1]]!=1 && direk!=0) { arah[jmlarah][0] = kiri[0];
arah[jmlarah][1] = kiri[1]; arah[jmlarah][2] = 1; jmlarah++;
}
if (jmlarah>=2) {
return cektitik(arah, angkamap);
A-4
} else {
return arah[0][2]; }
}
3. Hitung bawah, kiri, kanan, atas dengan evaluasi djikstra heuristik dengan titik pemain.
function cektitik(arah:Array, angkamap:Number) { var cekjmlarah = 0;
var i=0; var direk=0; var coba=1; var tempdirek; var tempx = 0; var tempy = 0;
var tempjarak = 1000; var tempdir=0;
var cekatas = [0,0]; var cekbawah = [0,0]; var cekkanan = [0,0]; var cekkiri = [0,0];
// mencari titik yang mungkin dilalui while (i<3) {
if (arah[i][0]!=0) { cekjmlarah = 0; direk = arah[i][2]; coba=0;
while (cekjmlarah<2) { tempdirek = direk; cekjmlarah=0;
cekatas = [arah[i][0]-1,arah[i][1]];
A-5
cekbawah = [arah[i][0]+1,arah[i][1]]; cekkanan = [arah[i][0],arah[i][1]+1]; cekkiri = [arah[i][0],arah[i][1]-1];
If(_root.map[angkamap][cekatas[0]][cekatas[1]]!=1&&tempdirek!=2) { cekjmlarah++;
if (cekjmlarah==1) direk=3; }
if(_root.map[angkamap][cekbawah[0]][cekbawah[1]]!=1&&tempdirek!=3) { cekjmlarah++;
if (cekjmlarah==1) direk=2; }
if(_root.map[angkamap][cekkanan[0]][cekkanan[1]]!=1&&tempdirek!=1) { cekjmlarah++;
if (cekjmlarah==1) direk=0; }
if(_root.map[angkamap][cekkiri[0]][cekkiri[1]]!=1 &&tempdirek!=0) {
cekjmlarah++;
if (cekjmlarah==1) direk=1; }
if (cekjmlarah==1) { switch (direk) {
case 0: arah[i][0]=cekkanan[0]; arah[i][1]=cekkanan[1]; break; case 1: arah[i][0]=cekkiri[0]; arah[i][1]=cekkiri[1]; break; case 2: arah[i][0]=cekbawah[0]; arah[i][1]=cekbawah[1]; break;
case 3: arah[i][0]=cekatas[0]; arah[i][1]=cekatas[1]; break; }
}
if (coba>6) cekjmlarah=2;
// menambah g(n) / jarak ai ke titik
A-6
arah[i][3]++; coba++; }
}
//mencari h(n) / heuristik titik dg pemain
if(Math.round((_root["tokoh"]._x-50)/30)>arah[i][1])
arah[i][4] = Math.sqrt(Math.pow(tempx,2)+Math.pow(tempy,2)); i++;
}
Putuskan arah yang diambil oleh musuh i=0;
tempjarak = 1000; while (i<3){
if (arah[i][4]!=0 && arah[i][4]<tempjarak) { tempdir = arah[i][2];
tempjarak = arah[i][4]; }
i++; }
return tempdir; }
C-1
CURRICULUM VITAE
Nama : Nurkholija Harahap
Tempat/ Tanggal Lahir : Gunungtua, 26 September 1993
Alamat : Jl. Mesjid Raya Pasar Gunungtua Lk III Kec. Padang Bolak Kab. Padang Lawas Utara
Jenis Kelamin : Perempuan
Agama : Islam
Status Anak : Anak ke 2 dari 6 bersaudara
Tinggi : 150 cm
No. Telp/Hp : 085275698447
Email : nurkholijaharahap@gmail.com
1. Sekolah Dasar Negeri 1 (101080) Padang Bolak (1999-2005)
2. SMP Negeri 3 Padang Bolak (2005-2008)
3. SMA Negeri 1 Padang Bolak (2008-2011)
1. Peserta seminar nasional “Seminar Nasional Bidang Komputer 2011” Universitas Sumatera Utara ( Medan, 21 September 2011 ).
2. Peserta workshop “Photography bu Penggila photo” Artechno Festival 2011 (Medan, 17 November 2011 ).
3. Peserta workshop “Earn Money From Design” Artechno Festival 2011 (Medan, 17 November 2011 ).
4. Peserta workshop “Animation Revolution” Dream Arch 2011 (Medan, 26 November 2011 ).
5. Peserta seminar “How to Build Augmented Reality for Mobile Application” (Medan , 19 Desember 2012
PENDIDIKAN FORMAL
Seminar/Kegiatan
C-2
6. Peserta Lomba “Application” IMILKOM contest 2012 ( Medan, 20 Desember 2012 )
7. Peserta Seminar dan Kuliah Umum “Menuju Teknologi 5G : Tantangan dan peluang bagi Perguruan tinggi” Ikatan Mahasiswa Teknik Elektro - FT USU ( Medan, 25 Februari 2013)
8. Peserta workshop “Pengenalan DreamWeaver CS6” WEBMEDIA Training center ( Medan, 27 April 2013)
9. Peserta seminar nasional “Pencaplokan Budaya”dalm rangka Kongres Nasional Ikatan Lembaga Penalaran dan Penelitian Mahasiswa Indonesia (ILP2MI)IV Universitas Sumatera Utara ( Medan , 8 Mei 3013 )
10. Peserta seminar nasional “Creative Animation and Caming Imdustry” ( Medan, 14 Desember 2013 )
11. Peserta dalam acara IMILKOM Contest dan Seminar Open BTS “ICONS” 2014 Fasilkom-TI USU ( Medan ,7 Juni 2014 )
12. Peserta seminar nasional “Seminar Nasional Literasi Informasi (SENARAI) 2014” Fasilkom-TI USU (Medan , 1 Desember 2014 )
1. Pembelajaran Berbantuan Kompur (PBK) 2. Database Mysql
Demikian curriculum vitae ini saya perbuat dengan sebenar-benarnya untuk digunakan sesuai kebutuhan.
Hormat Saya,
Nurkholija Harahap Kemampuan