80
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.
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;
//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);
}
prosesSoal(); }
};
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._width-food._width)/food._width)*Math.random())*food._width
food._y = snakepit._y + Math.floor(((snakepit._height-food._height)/food._height)*Math.random())*food._height
bodypart0._x = snakepit._x + Math.floor(((snakepit._width-food._width)/food._width)*Math.random())*food._width
bodypart0._y = snakepit._y + Math.floor(((snakepit._height-food._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 } }
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._width-food._width)/food._width)*Math.random())*food._width
food._y = snakepit._y + Math.floor(((snakepit._height-food._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]; };