DAFTAR PUSTAKA Sunyoto, A. (2010). Adobe Flash + XML = Rich Multimedia Application. Yogyakarta : Andi Offset. Binanto, I. (2010). Multimedia Digital Dasar Teori dan Pengembangannya. Yogyakarta : Andi. Dharwiyanti, S dan Wahono, S. (2003). Pengantar Unified Modelling Language (UML). From http://ilmukomputer.com. Diakses, 20 September 2012. Suhendar, Gunadi H (2002). Visual Modeling Menggunakan UML dan Rational Rose, Bandung: Informatika Bandung. Fowler, M. (2005). UML Distilled. Yogyakarta : Andi dan Sommerville. Hofstetter, F T. (2001). Multimedia Literacy. Third Edition. McGraw-Hill International Edition, New York. Surya, M. (2004). Psikologi Pembelajaran dan Pengajaran. Bandung : Pustaka Bani Quraisi. Oemar, H. (2003). Perencanaan Pengajaran Berdasarkan Pendekatan Sistem. Jakarta : PT. Bumi Aksara. Suetopo, A H. (2003). Metode Pengembangan Multimedia. Yogyakarta : Graha ilmu. Suhendar, A dan Gunadi, H. (2002). Visual Modeling Menggunakan UML dan Rational Rose. Informatika : Bandung. 80
Zaki, A dan Smitdev. (2008). SPP AJAX Untuk Pemula. Jakarta : PT Elex Media Komputindo. Dradjad P. (2008). MATH TRICK (trik cepat mengerjakan soal perkalian). Jakarta : PT Bhuana Ilmu Populer.
LAMPIRAN Halaman Menu Utama Actionscript untuk frame utama sebagai berikut: //supaya tidak jalan kemana-mana stop(); //stop semua suara stopallsounds(); //menuju materi on(press) gotoandstop(2); //menuju soal on(press) gotoandstop(40); //menuju video on(press) gotoandstop(46); //menuju game on(press) gotoandstop(52); //menuju admin on(press) gotoandstop(38); //menuju profil on(press) gotoandstop(54); //untuk keluar on (release) fscommand("quit");
Halaman Soal Actionscript untuk frame soal sebagai berikut: //supaya ngga jalan kemana-mana stop(); score = 0; //menuju halaman utama soal startbutton.onpress = function() nextframe(); ; //deklarasi objek soal var arraysoal:array = new Array(); //waktu var time = 1800; //deklarasi XML var myxml:xml = new XML(); myxml.ignorewhite = true; myxml.load("soal.xml"); myxml.onload = function(success) if (success) var mynode = myxml.firstchild.childnodes; for (i=0; i<mynode.length; i++) //mengambil data dari XML var soal = mynode[i].childnodes[0].firstchild; var jawaban1 = mynode[i].childnodes[1].attributes.label; var jawaban2 = mynode[i].childnodes[2].attributes.label; var jawaban3 = mynode[i].childnodes[3].attributes.label; var jawaban4 = mynode[i].childnodes[4].attributes.label; var jawabanbenar = mynode[i].childnodes[5].attributes.no; prosessoal(); //memasukkannya ke dalam object var obj = new Object(); obj.soal = soal; obj.jawaban1 = jawaban1; obj.jawaban2 = jawaban2; obj.jawaban3 = jawaban3; obj.jawaban4 = jawaban4; obj.jawabanbenar = jawabanbenar; //memasukkan ke dalam array arraysoal.push(obj); ; //counter digunakan sebagai nomor soal
var counter = 0; //jawaban benar akan terisi pada proses soal var jawabanbenar = 0; //nilai awal var nilai = 0; function prosessoal() //jika soal masih ada if (counter<arraysoal.length) //mengambil soal pada nomor ke-counter var obj = arraysoal[counter]; //mengubah tampilan pertanyaan_txt.text = obj.soal; JwbA.text = obj.jawaban1; JwbB.text = obj.jawaban2; JwbC.text = obj.jawaban3; JwbD.text = obj.jawaban4; jawabanbenar = obj.jawabanbenar; JwbA.selected = false; JwbB.selected = false; JwbC.selected = false; JwbD.selected = false; //meingkatkan counter counter++; else //jika soal habis, maka menuju ke halaman 42 gotoandstop(42); function ceksoal(jawaban:number) if (jawaban == jawabanbenar) //menambah nilai nilai += 4; trace("benar"); prosessoal(); var listenerobject:object = new Object(); listenerobject.click = function(eventobj:object) //saat di-klik if (eventobj.target == radio1) ceksoal(1); else if (eventobj.target == radio2) ceksoal(2); else if (eventobj.target == radio3) ceksoal(3);
else if (eventobj.target == radio4) ceksoal(4); ; //memberikan event click pada button radio1.addeventlistener("click",listenerobject); radio2.addeventlistener("click",listenerobject); radio3.addeventlistener("click",listenerobject); radio4.addeventlistener("click",listenerobject); waktu.onenterframe=function() if (_root.time==0) _root.gotoandplay(44); _root.time =0; // Simpan nilai function simpannilai (nilai,name) DataNilai = SharedObject.getLocal("masukkanSkor"); if (!DataNilai.data.siswa) DataNilai.data.siswa = new Array(); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:nilai, namax:name); DataNilai.flush(); kirim.onrelease = function() simpannilai(nilai, nama); gotoandstop(43); ; //Tabel nilai stop(); tampil_nama = ""; tampil_nilai = ""; DataNilai = SharedObject.getLocal("masukkanskor");
DataNilai.data.siswa.sortOn("nilaix", Array.DESCENDING Array.NUMERIC); if (!DataNilai.data.siswa) DataNilai.data.siswa = new Array(); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.push(nilaix:0, namax:"none"); DataNilai.data.siswa.sortOn("nilaix", Array.DESCENDING Array.NUMERIC); for (i=0; i<8; i++) tampil_nilai += DataNilai.data.siswa[i].nilaix+newline; for (i=0; i<8; i++) tampil_nama += DataNilai.data.siswa[i].namax+newline; kembali.onrelease = function() gotoandstop(1); ; // Kembali awal stop(); kembali.onrelease = function() gotoandstop(40); ;
Halaman admin Actionscript untuk frame admin sebagai berikut: //supaya tidak jalan kemana-mana stop(); //deklarasi XML var myxml:xml = new XML(); myxml.ignorewhite = true; myxml.load("admin.xml"); myxml.onload = function(success) if (success) var nama = myxml.firstchild.childnodes[0].firstchild.tostring(); var pasword = myxml.firstchild.childnodes[1].firstchild.tostring(); cek.onrelease = function() if (nama == username.text && pasword == passinput.text) trace("betul"); admin = true; gotoandstop(39); //masukkan apa yang diinginkan jika benar else trace("salah"); wrning.text="pasword atau username Salah"; //masukkan apa yang diinginkan jika salah ; ; //tombol cancel cncl.onrelease = function() gotoandstop(1); buka.onrelease=function() fscommand("exec","soal.bat")
// soal.bat adalah nama file pemanggil file yang akan dibuka lewat flash ganti.onrelease=function() fscommand("exec","admin.bat") // soal.bat adalah nama file pemanggil file yang akan dibuka lewat flash out.onrelease = function () admin = false; gotoandstop(38); ; Halaman Game Actionscript untuk frame game sebagai berikut: //awal game setupgame() function setupgame() bodypart0.gotoandstop(1) direction = '' if (bodypartsy) for (i=bodypartsy.length-1;i > 0; i--) removemovieclip(eval('bodypart'+i)) popup._visible = false bodypart._visible = false do food._x = snakepit._x + Math.floor(((snakepit._widthfood._width)/food._width)*Math.random())*food._width food._y = snakepit._y + Math.floor(((snakepit._heightfood._height)/food._height)*Math.random())*food._height bodypart0._x = snakepit._x + Math.floor(((snakepit._widthfood._width)/food._width)*Math.random())*food._width bodypart0._y = snakepit._y + Math.floor(((snakepit._heightfood._height)/food._height)*Math.random())*food._height while(bodypart0._x == food._x && bodypart0._y == food._y); framecount = 0; score = 0 game = true; bodypartsx = new Array(); bodypartsy = new Array(); bodypartsx.push(bodypart0._x) bodypartsy.push(bodypart0._y) this.onenterframe = function () if (game)
if (framecount/5 == Math.ceil(framecount/5)) if (!(bodypart0._y <= snakepit._y && direction == 'up') &&!(bodypart0._y+bodypart0._height >= snakepit._y+snakepit._height-2 && direction=='down') &&!(bodypart0._x+bodypart0._width >= snakepit._x+snakepit._width - 2 && direction =='right') &&!(bodypart0._x <= snakepit._x && direction == 'left')) bodypartsy[0] = bodypart0._y bodypartsx[0] = bodypart0._x for (i=bodypartsy.length-1;i > 0; i--) eval('bodypart'+i)._y = bodypartsy[(i-1)] eval('bodypart'+i)._x = bodypartsx[(i-1)] bodypartsy[i] = eval('bodypart'+i)._y bodypartsx[i] = eval('bodypart'+i)._x if (food._x == bodypart0._x && food._y == bodypart0._y) eat() if (direction) if (direction == 'up') if (bodypart0._y <= snakepit._y) dead() else bodypart0._y-= bodypart0._width else if (direction == 'down') if (bodypart0._y+bodypart0._height >= snakepit._y+snakepit._height-2) dead() else bodypart0._y+= bodypart0._width else if (direction == 'right') if (bodypart0._x+bodypart0._width >= snakepit._x+snakepit._width - 2) dead() else bodypart0._x+= bodypart0._width else if (direction == 'left')
if (bodypart0._x <= snakepit._x) dead() else bodypart0._x-= bodypart0._width if (game) if (insidesnake(bodypart0._x,bodypart0._y,true)) dead() framecount++ keylistener = new Object(); keylistener.onkeydown = function () keycode = Key.getCode() if (keycode == 37) direction = 'left' else if (keycode == 38) direction = 'up' else if (keycode == 39) direction = 'right' else if (keycode == 40) direction = 'down' ; Key.addListener(keyListener); function dead() popup.score = 'score: '+(bodypartsx.length-1) popup.swapdepths(this.getnexthighestdepth()) popup._visible = true bodypart0.gotoandstop(2) game = false; function eat() duplicatemovieclip(bodypart,'bodypart'+bodypartsy.length,this.getnexthi ghestdepth()) bodypart0.swapdepths(this.getnexthighestdepth()) eval('bodypart'+bodypartsy.length)._y = eval('bodypart'+(bodypartsy.length-1))._y
eval('bodypart'+bodypartsx.length)._x = eval('bodypart'+(bodypartsy.length-1))._x bodypartsy.push(eval('bodypart'+bodypartsy.length)._y) bodypartsx.push(eval('bodypart'+bodypartsx.length)._x) do food._x = snakepit._x + Math.floor(((snakepit._widthfood._width)/food._width)*Math.random())*food._width food._y = snakepit._y + Math.floor(((snakepit._heightfood._height)/food._height)*Math.random())*food._height while(insidesnake(food._x,food._y)); score = bodypartsx.length-1 function insidesnake(xneedle, yneedle,skiphead) if (skiphead) startat = 1; else startat = 0; for (q=startat; q<bodypartsx.length; q++) //each entry is compared to the required value if (bodypartsx[q] == xneedle) if (bodypartsy[q] == yneedle) //true is returned when found return true; //otherwise, false is returned return false; popup.againbutton.onrelease = function() setupgame()
Halaman Video Actionscript untuk video game sebagai berikut: // memuat file xml xmldata = new XML(); xmldata.ignorewhite = true; xmldata.onload = loadxml; xmldata.load("videos.xml"); // memasukkan xml ke dalam array function loadxml() vidarray = new Array(); anode = this.firstchild.childnodes; len = anode.length; for(var n=0;n!=len;n++) vidarray[n] = anode[n].attributes.url; ; // tombol pemanggil video video1_btn.onrelease = function() trace(vidarray[0]); // video yang di putar videoobj_1.contentpath = vidarray[0]; ; video2_btn.onrelease = function() trace(vidarray[1]); // video yang di putar videoobj_2.contentpath = vidarray[1]; ; video3_btn.onrelease = function() trace(vidarray[2]); // video yang di putar videoobj_3.contentpath = vidarray[2]; ;