You are on page 1of 11

BAB2

DASARDASARPROGRAMACTIONSCRIPT3.0
Dalambabiniakandibahasmengenai

Babinidimulaidenganpenjelasanmengenaikonsepkonsepdasarpemrogramanbesertadengancontoh
pengkodeannyadalamActionScript.Supayalangsungbisamelihathasilpengkodeananda,buatprojectbarudalam
FlashDevelopandadenganmemilihmenuProjectNewProject,pilihtemplateAS3Project,berinamaproject
andaDasarAS3.Masukpadadirektorisrc,doubleclickfileMain.as,yangakanmemunculkanpackageberikut.
package
{
importflash.display.Sprite;
importflash.events.Event;
/**
*...
*@authorNugrohoAgusH
*/
publicclassMainextendsSprite
{
publicfunctionMain():void
{
if(stage)init();
elseaddEventListener(Event.ADDED_TO_STAGE,init);
}
privatefunctioninit(e:Event=null):void
{
removeEventListener(Event.ADDED_TO_STAGE,init);
//entrypoint
}
}
}
1. Pemberiankomentar.Komentaradalahpotonganpotonganteksyangtidakikutdijalankan//dieksekusioleh
program.Komentarhanyadigunakanuntukdokumentasiprogramsehinggabisadigunakandalam
pendeteksiankesalahanmaupunpengembanganprogram.DalamActionScriptterdapatduatipekomentar,
yaitu:komentardalamsatubarisdankomentardalamsatublokbaris.
1.1. Untukmemberikankomentarhanyadalamsatubarisdigunakantandaduaforwardslash(//),misalnya:
Trace(HelloWorld)//komentarnyaadalahuntukmenampilkantulisanHelloWorld.
1.2. Untukmemberikankomentardalambeberapabarisdiawalidengantanda/*dandiakhiridengantanda
*/,misalnya:
/* copyrightbynugroho
F.TeknologiInformasi
UKDW
*/
2. PenggunaanperintahTrace
PerintahTracedigunakanuntukmenampilkaninformasipadapanelOutput.PanelOutputhanyadigunakan
untukmengujijalannyaprogramsaja,bukansebagaitampilanutamaprogram.Yangmenjaditampilanutama
programadalahStagekita.
Misalnya:
publicfunctionMain():void{
if(stage)init();
elseaddEventListener(Event.ADDED_TO_STAGE,init);
trace(2+5)//akanmenampilkanbilangan7
}
3. PendeklarasianVariabel
Sebuahvariabel(misalnyavariabelxdalampelajaranmatematikayangmenyajikansebuahbilanganyangbisa
diberidengansuatunilai)adalahsebuahpenampunginformasiyangbisadiambilataupundiganti.Variabel
variabelyangakandigunakandalamActionScriptharusdideklarasikanterlebihdahulu.Beberapatipe
data/tipevariabelyangseringdigunakanantaralain:TextField,Number,String,Array,Sprite,Shape,dan
MovieClip.KitajugadapatmembuattipevariabelsendiriberupaobjekClassuntukaplikasikita.Perintah
deklarasivariabelmempunyaibentukumum:
var namaVariabel:TipeVariabel;
ataucarakeduaberikutjugamemberikanhasilyangsama:
var namaVariabel:TipeVariabel=new TipeVariabel();
AndabisamenambahkanprogramberikutkedalamkodeprogramandadidalamlingkupfungsiMain()untuk
memunculkantulisanHelloWorldkedalamStageAnda.
publicfunctionMain():void{
var textSaya:TextField=new TextField();
textSaya.text="Hello World";
stage.addChild(textSaya);
}
LanjutkandenganmengujihasilprogramandadenganmenekanF5atauCtrl+Enter,makaandaakanmelihat
tulisanHelloWorldpadaujungkiriatasStageanda.
Lakukanhalserupauntukcontohcontohselanjutnya,yaitutambahkankodeyanginginandajalankandi
dalamlingkupfungsipublicMain().LanjutkandenganmengujiprogramandadenganmenekanF5.
Namavariabelharusmemenuhiaturanaturanberikut:
Hanyaterdiridarihuruf,angka,karkatergarisbawah,dansimbol$.
Tidakdiawalidenganangka
TidaksamadengankatakhususyangsudahdipakaiolehActionScript(reservedword),sepertivar,Sprite,
danlainlain.
Harusunik
Untukpenulisandalampenamaanvariabel,andadapatmenggunakanmodeKataKapital(CamelCase)yang
merupakanprosespenulisanbeberapakatatanpatandaspasinamundenganmengkapitalisasi(menulis
denganhurufbesar)setiapkatapembentuknya,misalnyatextSaya,radiusBola,dantinggiAwalStage.Untuk
tipedatakompleks(movieClip,button,textField)yangadadalamstageyangdibuatdenganAdobeFlashCS3
Profesional,andadapatmendeklarasikannyadenganmenuliskannyapadanamainstan(instancename)pada
bagianpropertiobjeknya.FlashCS3akanmembuatvariabeldengannamasamadengannamainstantersebut.
4. TipetipeData
ActionScript3.0mempunyaibeberapatipedataprimitifsepertiyangdiberikandalamTabel2.1.Selainitu
ActionScriptjugamempunyaibeberapatipedatakompleksyangdibangundaritipedataprimitifsepertiyang
diberikandalamTabel2.2.Bahkankitabisamembanguntipedatasendiri,dalambahasapemrogramanobjek
seringdikenaldengannamaclassobjek.
Tabel2.1.TipedataprimitifActionScript3.0
TipeData Pengertian Contoh
String Sebuahkarakteratausederet
karakter
vartextSaya:String=HelloWorld,
bisajugaditulisdengan:
vartextSaya:String
textSaya=HelloWorld
Boolean Hanyabernilaibenar(true)atausalah
(false)
varsudahSelesai:Boolean=true
Number Bilanganriilpositifdannegatif varpercepatan:Number=0.01
Int Bilanganbulatpositifdannegatif
(2.147.483.648s.d.2.147.483.647)
varradiusBola:int=10
Uint Bilanganbulatpositif
(0s.d.4.294.967.295)
varwarnaBola:uint=0xFF00FF
* Tipedatasembarang(biasanya
digunakanuntukmenampungdata
yangbelumdiketahuitipenya)
vardataBaru:*=dataSembarang
Tabel2.2.BeberapaTipedatakompleksActionScript3.0
TipeData Pengertian Contoh
MovieClip Sebuahsimbolmovieclip vartokohSaya:MovieClip=newMovieClip()
Sprite SebuahSprite varkotak:Sprite=newSprite()
TextField Sebuahfieldteksyangbertipe
dynamicataufieldteksyangbertipe
vartulisan:TextField=newTextField()
input(secaradefaultakanbertipe
dynamic)
tulisan.text=TulisanDinamis
SimpleButton Sebuahsimbolbutton(tombol) varstart:SimpleButton=newSimpleButton()
Date Datadalamformattanggal varultah:Date=newDate()
Array Larikatauarrayyangdapatmemuat
lebihdarisatunilai
vararrayBilangan:Array=newArray()
arrayBilangan=[2,3,15]
Objek Strukturdasardarisetiapentitas
ActionScript.Objekjugamerupakan
suatubentukvariabelyangbisadiatur
sendiriuntukmenyimoanberbagai
nilaisebagaialternatifdariArray
vargambar:Objek:newObject
gambar.nama=fotoaction
gambar.panjang=600

Untuktipedatakompleksakanlebihmudahdipahamipadasaatnantikitamemakainya.
Apabilaandamulaibekerjadengankonseppemrogramanberorientasiobjekyangmenggunakanbeberapa
Class,andaperlumenggunakanbeberapakatatambahandidepanvariabelyangmenunjukkanruanglingkup
pengaksesanvariabel,misalnya:
publicvarradiusBola:int
PenjelasanmengenaiClassakandibahasdalambab3,namundemikianruanglingkupvariabeldalam
ActionScript3.0akandiberikandiawalkarenasudahkitabutuhkandalampemrogramandengan
FlashDevelop.ActionScript3.0mendefinisikanempatkatauntukmenunjukkanruanglingkupvariabel(atau
punfungsi/method),yaitu:
public:dapatdiaksesolehsemuabagiankodedidalamkeseluruhanaplikasi/projecttempatvariabel
didefinisikan
private:hanyadapatdiaksesolehmethod/fungsitempatvariabeldidefinisikan
internal:dapatdiaksesolehsebarangclassyangdidefinisikandalampackageyangsama.
protected:hanyadapatdiaksesolehmethod/fungsitempatvariabeldidefinisikandanclassyangextend
classtempatvariabeldidefinisikan
5. Operator
Aritmetika(+,,*,/).ActionScriptmengakomodasisemuaoperatoraritmetikasesuaidenganaturan
aturanperhitungannya,denganperkaliandituliskandengan*sedangkanpembagiandituliskandengan/.
Modulo(%).ActionScriptjugamengakomodasioperatormodulodengansimbol%,misal:5%3
//menghasilkan2.
Increment(++)dandecrement().ActionScriptdapatmenambahataumengurangi1darisuatubilangan
denganoperatortunggal(++atau),misalnya:
varbilangan:int=10
bilangan++//menghasilkan11
bilangan//menghasilkan10lagi
Operatormajemuk(+=,=,*=,/=,dan%=).ActionScriptmenyediakanoperatormajemukuntuk
mempersingkatpenulisan,misalnya:
varbilangan:int=10
bilangan+=2//artinyasamadenganbilangan=bilangan+2,menghasilkan12
bilangan/=3//artinyasamadenganbilangan=12/3,menghasilkan4
6. Penggunaanpernyataankondisional
6.1. PernyataanIfdigunakanuntukmengijinkanpemrosesanbagiandariblokActionScripthanyajikakondisi
yangdimintabenar.PernyataanIfmempunyaibentukpenyajiansebagaiberikut:
If(kondisi){
Prosesyangakandikerjakanjikakondisibenar
}
Jikakondisibenar,makaprosesakandijalankan.Silahkanmencobapotonganprogramberikutdalam
FlashDevelopfileDasarAS3anda
publicfunctionMain():void{
varx:Number=2
if(x<3){
trace(xlebihkecildari3)
}
Else{
trace(xlebihbesaratausamadenganxtidakakanditulisapapun)
}
Andadapatmenggunakanoperatorlogikaataupunperbandingansepertidalamtabel2.3
Tabel2.3.SimbolsimbolyangdigunakanuntukmembentukEkspresilogika
Simbol Peterangan Contoh
== Samadengan If(a==1){trace(asamadengan1)}
!= Tidaksamadengan If(a!=1){trace(atidaksamadengan1)}
<,<=,>,>= Perbandingan If(a>=1){trace(alebihbesaratausamadengan1)}
And(&&),atau(||) Operatormajemuk If(a=1&&b=2){trace(a=1danb=2)}

6.2. IfElse.PenambahankataElsesebagaitambahblokpernyataanIfberartiprogramakanmengerjakan
blokprogramdidalamblokElsejikakondisididalampengujianIftidakbenar.
If(a==1){
trace(asamadengan1
}
Else{
trace(atidaksamadengan1)
}

6.3. Switchcase.PernyataanSwitchCasedigunakanuntukmengujibeberapakemungkinankondisi.
PernyataanSwitchmemuatvariabelyangakandiuji,sedangkansetiappernyataanCasemenyatakan
kemungkinannilaiuntukmenguji.DiberikanjugapernyataanBreakuntukmencegahpengerjaaninstruksi
intruksiselanjutnya.Perhatikancontohberikutini.
Switch(a){
case1:trace(satu)
case2:trace(dua)
break}
7. Penggunaankalang(Loop)
7.1. ForPernyataanFordigunakanuntukmengerjakanprosesiterasidalamjumlahtertentu.
for (var i:Number =0; i <3; i++) {
trace(i)
}// akan menampilkan 012
7.2. whileProsesdidalamblokWhileakandiujiselamakondisididalampernyataanWhilebenar.
vari:int=0
while(i<5){
trace(i)
i++
}//akanmenampilkan01234
7.3. doWhile.Prosesdidalamblokdowhileminimalakandikerjakansekali,kemudianakandilanjutkan
pengujiankondisididalampernyataanWhile.Prosesakandijalankanberulangkaliselamakondisimasih
benar.
vari:int=0
do{
trace(i)
i++
}while(i<5)//akanmenampilkan01234
8. BekerjadenganClass
SalahsatukelebihanActionScript3.0adalahdukungannyaterhadappemrogramanmenggunakanclassclass.
Denganpenggunaanclass,andadapatmenerapkankonseppemrogramanberorientasiobjekdalam
pengkodeanprogramanda.Sebuahclassadalahcetakbirudarisebuahobjek.Classmendefinisikanobjek
secarapenuh,meliputidataobjekdanoperasioperasinya.Untukmembuatclassperludiperhatikanbeberapa
halberikutini.
a. PembuatanClassdalamActionScriptharusdiawalidengansebuahpackage.Sebuahpacketadalahgrup
dariclass(bisahanyasatuclassataubeberapaclass).AndabisajugamenambahkannamaFolderdi
belakangkatapackageyangmenunjukkandirektoritempatandamenyimpanclassanda.Misalnyaanda
bisamembuatclassBolayangakanandataruhdalamfolderlibdenganmanambahkankatalibdibelakang
katapackage
b. Dokumendariclassharusdisimpandengannamayangsamadengannamadariclass,misalnya
namaClass.as.MisalnyaclassBolayangandabuatharusandasimpandengannamaBola.as
c. SebaiknyaclassyangandabuatmerujukkeclassyangsudahdimilikiFlash,misalnyaSpriteatauMovie
Clip.GunakantambahankataextendsSpritepadalanjutannamaClassanda,misalnya
publicclassBolaextendsSprite.
d. Andabisajugamenambahkanvariabeldenganruanglingkuppublic,internalataupunyanglainnyasesuai
kebutuhan.Misalnyaandabisamenambahkanvariabelvariabelyangbersifatpublic,seperti:radiusyang
menunjukkanjarijaribola,warnayangmenunjukkanwarnabola,vxyangmenunjukkankecepatanbola
searahsumbux,danvyyangmenunjukkanbolasearahsumbuy.
e. Andabisajugamenambahkanmethodberupafungsidenganruanglingkupyangandainginkan.Didalam
fungsi.Salahsatufungsiyangsebaiknyaadaadalahfungsidengannamafungsisamadengannamaclass
anda.JadibuatlahfungsiBoladenganruanglingkuppublicdengammodelpengirimanparametervariabel
radiusdanwarna.
MisalnyaandadapatmembuatclassBolayangandataruhdidalamFolderlibdariprojectDasarAS3.as3proj
denganlangkahberikutini.BukaprojectDasarAS3yangsudahandabuatsebelumnya.Lanjutkandengan
membuatfileclassAS3melaluimenuFileNewAS3Document.Lanjutkandenganmemberinama
dokumenandamelaluimenuFileSaveAs(Ctrl+Shift+S),pilihsubfolderlibdarifolderDasarAS3,berinama
Bola.as.
Misalkanobjekbolaandamempunyaibeberapavariabelyangbersifatpublic,yaitu:radius,vx,danvy

packagelib{//tambahkanfoldertempatandamenyimpanfileBola.asAndajikamenginginkan,
//misalpackagesport{....isiclass.....}artinyaandamenyimpanfileBola.aspadafoldersport

importflash.display.Sprite;

publicclassBolaextendsSprite{
//deklarasivariabelprivateyanghanyaberlakudandigunakandidalamclassBolasaja
privatevarradius:Number;//jarijaribolayangakandibuat
privatevarcolor:uint;//warnabolayangakandibuat

//deklarasivariabelpublicyangberlakudandigunakanolehfileyanglain.
publicvarvx:Number=0;//kecepatanbolasearahsumbuxdenganrumusvx=v*cosq
publicvarvy:Number=0;//kecepatanbolasearahsumbuydenganrumusvy=v*sinq
publicvarv:Number=0;//kecepatanbola
publicvarmassa:Number=0;
publicvarindeks:Number=0;

publicfunctionBola(radius:Number=40,color:uint=0xff0000){//pemberiannilaidefault
propertibola
this.radius=radius;//menyamakanpropertiboladenganparameterinputdari
fungsibola
this.color=color;//menyamakanpropertiboladenganparameterinputdari
fungsibola
graphics.beginFill(color);//mulaimewarnaibola
graphics.drawCircle(0,0,radius);//mulaimenggambarboladenganpusat(0,0)
danjarijari=radius
graphics.endFill();//mengakhirimewarnaibola
}
}
}
package
{
publicclass
{

}

}
f. packagenamaFolder{
g. publicclassnamaClass{
h. }
i. }
j.

9. Fungsi
10. Event,Listener,danEventHandler
SemuainteraksiuserdidalamFlashdikelolaoleheventeventbeberapacontoheventadalah:mouseclick,
mousemove,inputkeyboard,loadingfile,danlainlain.Dalambukuiniakanbanyakmenggunakan
pengaturaneventuntukmendisaininteraksiuser.
DalamActionScript,suatuobjekbisamendengarkan(listen)eventyangterjadipadadirinyadengan
menggunakanmethodaddEventListenerpadaobjektersebut.Methodinimembutuhkanduaargumen,
yaitu:
Eventapayangakandidengarkan,misalnyaMouseEventataupunKeyboardEvent
Fungsiapayangakansayakerjakanapabilasayamendegarkanevent.
Dalamcontohkita,baris:
tombolMulai.addEventListener(MouseEvent.CLICK,tekanTombol);
function tekanTombol(mevt:MouseEvent):void{
ISI FUNGSI
}
Mempunyaimaksudsebagaiberikut:
TomboldengannamainstancetombolMulaiakanmendengarkaneventMouseClick
(MouseEvent.CLICK)
ApabilatombolMulaidiclickdenganmouse,makafungsitekanTomboolakandipanggildan
dikerjakan.FungsitekanTomboldinamakanEventHandler.Sebuaheventhandlerharusberupa
fungsidengansatunilaiinput(misalnyadalamcontohkitaadalahmevt : MouseEvent )dantidak
mengembalikannilaiapaapa(yaitumempunyaitipekeluaranvoi d).

berinamalayerpertamasebagaiutama
buatsebuahtextstatisdengantulisan"berapajumlahbolayangandalihat?"
buatsebuahtextboxlagidenganmodeinputTextberinamainstace"txtJawab.namatxtJawabiniyangakankita
gunakandalamkodeprogramsebagaivariabelyangmenunjukketextjawaban

buatsebuahlayerlagiberinamascript.disinilahtempatkitaakanmenempatkankodeprogramdalamactionscript
3.0
tambahkansebuahobjekspritedengannamaspPapansebagaitempatmeanruhbolayangakankitatampilkhan.

buatlahsebuahobjekshapeberbentukpapankotakdenganukuran300x300.taruhlahkotaktersebutdidalam
objekSprite,denganmenjadikanshapetersebutsebagaianakdariSpritespPapan
denganmenuliskanspPapan.addChild(shpKotak)

buatfungsiuntukmembuatbolaberinamafungsibuatBoladenganparameterkyangnantinyamenunjukkpada
bolakek

bangkitkanbilanganrandomrkemudianlakukanloopinguntukmembuatbola

buatTombolOKCekuntukmelihatbenartidaknyajawaban

masukkemenuwindowlibrarycommonbuttonpilihtombolbuttonayngandainginkan,misalnyatombollbulat
arcade,sayapilihclassicbuttonarcadebuttonred.berinamatmbCek(diambildarikatatombolCek)

padabuttontmbCektambahkanaddEvenListeneruntukmendengarkanevent,misalnyamouse.Click,dihubungkan
denganfungsicekJawab,artinyajikatombolinidiklikdenganmousemakaakanmengerjakanfungsicekJawab

dalamfungsicekJawab.lakukanpengujianapakahisidaritxtJawabsamadenganjumlahbola,jikaya,maka
keluarkanpesan
jawabanandabenar.denganmenuliskannyadidalamtextdinamiktxtPesan.

varspPapan:Sprite=newSprite();
spPapan.x=20;
spPapan.y=20;
spPapan.graphics.lineStyle(2,0);
spPapan.graphics.beginFill(0xFFFFFF,0.9);
spPapan.graphics.drawRect(0,0,300,300);
spPapan.graphics.endFill();
stage.addChild(spPapan);

varshpBola:Shape=newShape();
functionbuatBola(k:int):void{
shpBola.graphics.lineStyle(2,0);
varindeksWarna:int;
indeksWarna=k*25+255;
varposisiBola:int;
posisiBola=10+k*25;
shpBola.graphics.beginFill(indeksWarna,0.9);
shpBola.graphics.drawCircle(posisiBola,20,10);
shpBola.graphics.endFill();
spPapan.addChild(shpBola);
}

varr:int;
r=1+Math.round(Math.random()*9);
for(vari:int=1;i<=r;i++){
buatBola(i);
}

tmbCek.addEventListener(MouseEvent.CLICK,cekJawab);
functioncekJawab(mevt:MouseEvent):void{
varjawab:int=int(txtJawab.text);
if(jawab==r){
txtPesan.text="AndaBenar";
}
else{
txtPesan.text="Maaf,Salah";
}
}

tmbAcak.addEventListener(MouseEvent.CLICK,acak);
functionacak(mevt:MouseEvent):void{
shpBola.graphics.clear();

r=1+Math.round(Math.random()*9);
for(i=1;i<=r;i++){
buatBola(i);
}
}

You might also like