SELAMAT DATANG DI RIDWANMUNAWARCRUZER.BLOGSPOT.COM

Selasa, 12 April 2011

Animasi


BAB I
PENDAHULUAN

1.1  Latar Belakang Masalah
Animasi merupakan salah satu media untuk berkomunikasi. Dalam kehidupan sehari-hari pun ada semacam teknik dan etika berkomunikasi sehingga pembicaraan tidak hanya berisi proses penyampaian pesan saja melainkan juga terdapat unsur menghibur. Teknik animasi diharapkan dapat menunjang terhadap tujuan berkomunikasi seperti yang disebutkan di atas, yakni penyampaian pesan dan menghibur. Dalam dunia informatika, pengolahan animasi merupakan sesuatu yang tidak mudah dimana seorang informatikawan harus mampu menciptakan sebuah perangkat lunak yang dapat mengakomodasi kebutuhan pembuatan animasi. Pascal merupakan salah satu bahasa pemrograman yang bisa mengakomodasi dalam pembuatan perangkat lunak termasuk animasi.
Kenapa harus pascal? Pascal menjadi bahasa pemrograman yang dipakai untuk pembuatan perangkat lunak aplikasi karena lebih dekat dengan algoritma sehingga seorang programmer lebih mudah memindahkan hasil rancangan algoritmanya ke dalam bahasa pascal. Selain daripada itu pascal adalah salah satu bahasa pemrograman yang mendukung pembuatan program berbasis grafik.
Atas dasar pemikiran di atas, penulis mencoba membuat sebuah analisis tentang bagaimana proses terjadinya sebuah animasi.

1.2  Tujuan Pembuatan Makalah
Tujuan dari pembuatan makalah ini adalah untuk mengetahui lebih dekat tentang bagaimana proses terjadinya sebuah animasi dalam hal ini khususnya dengan bahasa pemrograman pascal. Sebagai salah satu pembanding maka penulis menggunakan program aplikasi Macromedia Flash sebagai pembanding.


1.3  Rumusan Masalah
1.      Apa itu animasi?
2.      Seperti apa konsep animasi?
3.      Bagaimana proses terjadinya animasi di dalam pascal?
4.      Perbandingan dengan software aplikasi Macromedia Flash MX?

1.4  Batasan Masalah
Dalam pembuatan makalah ini penulis membatasi masalah yaitu hanya melakukan analisis terjadinya proses animasi dari mulai perancangan sampai translasi ke dalam bahasa pemrograman, dalam hal ini khususnya bahasa pemrograman pascal dan macromedia flash sebagai pembanding.





















BAB II
PEMBAHASAN

2.1 Animasi
Animasi mulai dikenal secara luas sejak populernya media televisi yang dapat menyajikan gambar bergerak hasil rekaman kegiatan makhluk hidup, manusia atau hewan. Dibandingkan dengan gambar foto  yang diam atau tidak bergerak animasi lebih  disukai karena dapat membangkitkan antusiasme dan emosi penonton. Hampir semua media seperti televisi, film, komputer sudah menggunakan teknik-teknik animasi.

2.1.1 Sejarah
         Ditemukannya berbagai artefak dan lukisan gua pada peradaban Mesir Kuno 2000 tahun sebelum masehi, manusia sudah mencoba membuat ilustrasi gerakan yang akhirnya berkembang menjadi animasi.
         Dalam salah satu ilustrasi Leonardo da Vinci yang terkenal, dilukiskan anggota tubuh manusia dalam berbagai posisi. Seorang artis Italy Gioto, juga melukiskan malaikat dalam posisi terbang dengan repitisi gerakan.
         Ditemukannya prinsip dasar dari karakter mata manusia yaitu : persistance of vision (pola penglihatan yang teratur). Paul Roget, Joseph Plateau dan Pierre Desvigenes, melalui peralatan optik yang mereka ciptakan, berhasil membuktikan bahwa mata manusia cenderung menangkap urutan gambar-gambar pada tenggang waktu tertentu sebagai suatu pola.

2.1.2 Pengertian Animasi
         Secara harfiah, Animasi berarti menghidupkan atau membuat bergerak.
         Menganimasi memiliki makna menggerakkan obyek agar menjadi hidup / bergerak.
         Membuat animasi dapat berupa menggerakkan gambar / lukisan sketsa tangan, boneka atau obyek tiga dimensi.
Secara garis besar, menurut Ir. P. Insap Santosa, M.Sc., dalam bukunya yang berjudul GRAFIKA KOMPUTER dan ANTARMUKA GRAFIS disebutkan bahwa animasi atau gambar bergerak merupakan salah satu bagian dari grafika computer yang menjanjikan tampilan-tampilan yang sangat atraktif.

2.2 Konsep Animasi
Menurut sumber yang didapat dari http://www-viz.tamu. edu/courses/viza615/97spring/pjames/history/main.html , sumber tersebut menyebutkan bahwa Prinsip Dasar Animasi adalah sebagai berikut :
         Untuk membuat animasi dibutuhkan sejumlah gambar yang pengerjaannya dilakukan dengan pergerakan gambar (frame) satu per satu.
         Satuan yang digunakan adalah frame per second/fps(gambar  per detik) yang menunjukkan kualitas animasi yang akan dibuat. Jumlah fps bisa 15, 16, 20, 24 atau berapa saja.
         Semakin tinggi nilai fps maka akan semakin baik kualitas animasi, namun akan dibarengi dengan semakin banyak jumlah gambar (frame) yang dibutuhkan. 
         Jika nilai fps adalah 24, dan durasi animasi adalah 1 menit, maka jumlah gambar (frame)= 24 ´ 60 = 1.440 frame.
Jika durasi animasi yang ingin dibuat adalah 30 menit (setengah jam) maka dibutuhkan 1440 ´ 30 = 43.200 gambar (frame).








2.3 Animasi Pada Pascal
Dalam pembuatan animasi di pascal, dikenal beberapa prosedur yaitu sebagai berikut :
1.      Imagesize
2.      Getmem
3.      Getimage
4.      Putimage
5.      Cleardevice

a.      Prosedur imagesize
Prosedur ini digunakan untuk proses penentuan ukuran citra. Prosedur imagesize bentuk umum sebagai berikut :

Imagesize(x1,y1,x2,y2:integer);

Dimana (x1,y1) merupakan koordinat titik kiri atas citra, sedangkan (x2,y2) merupakan koordinat titik kanan bawah citra.

b.      Prosedur getmem
Setelah ukuran citra diperoleh, perubah dinamis segera dapat dialokasikan. Perubah dinamis bias dialokasikan dengan menggunakan prosedur getmem  dengan bentuk umum sebagai berikut :

Getmem(var P:pointer;size:word);

Dimana P adalah variable perubah dinamis yang akan dialokasikan, sedangkan size merupakan prosedur imagesize yang sudah ditentukan sebelumnya.




c.       Prosedur getimage
Prosedur ini berfungsi menyimpan gambar yang sudah diatur ukuran beserta alokasi perubahnya. Pada intinya prosedur ini digunakan untuk menangkap gambar. Prosedur ini memiliki bentuk umum sebagai berikut :

Getimage(x1,y1,x2,y2:integer;var P);

Dimana (x1,y1) adalah koordinat titik kiri atas dari citra yang akan ditangkap. Sedangkan (x2,y2) adalah koordinat titik kanan bawah dari citra yang akan ditangkap, dan P merupakan variabel perubah dinamis yang sudah ditentukan sebelumnya.

d.      Prosedur putimage
Prosedur ini berfungsi untuk menampilkan serta menghilangkan citra pada layar graph. Prosedur inilah yang akan mengakibatkan permulaan terjadinya animasi. Bentuk umum dari prosedur putimage adalah sebagai berikut:

Putimage(x1,y1:integer;var P;teknikAnimasi:word);

Dimana :
X1,y1 adalah koordinat penggambaran ulang;
P adalah alokasi perubah dinamis yang sudah ditentukan sebelumnya;
teknikAnimasi adalah teknik yang digunakan dalam proses penggambaran ulang.







Ø  Macam-macam teknik penggambaran ulang adalah sebagai berikut :

Nilai Konstanta
Nama Konstanta
Fungsi
GAMBAR
0

Copyput

Menampilkan citra seperti apa adanya.

1
Xorput


Setiap bit dari citra pada layar dan citra yang akan ditampilkan ulang dioperasikan berdasarkan operasi logika XOR(exclusive OR).

2
Orput


Setiap bit dari citra pada layar dan citra yang akan ditampilkan ulang dioperasikan berdasarkan operasi logika OR.

3
Andput


Setiap bit dari citra pada layar dan citra yang akan ditampilkan ulang dioperasikan berdasarkan operasi logika AND.

4
notput
Citra akan ditampilkan ulang secara inverse video.



Pada kenyataanya, animasi tidak hanya dapat dibentuk oleh keempat prosedur di atas. Salah satu prosedur yang juga bias digunakan untuk pembuatan animasi adalah prosedur cleardevice.

e.       Prosedur cleardevice
Prosedur ini berfungsi untuk membersihkan layar graph. Prosedur ini akan mengakibatkan suatu animasi ketika digabungkan dengan looping for, repeat atau while-do. Bentuk umum prosedur ini adalah :

cleardevice;

salah satu contoh penggunaan prosedur cleardevice untuk pembuatan animasi adalah sebagai berikut :

program animasi_lingkaran;
uses
crt,graph;
var
dg,mg,x,i:integer;
begin
initgraph(dg,mg,’’);
x:=25;
for  i:=1 to getmaxX do
begin
circle(x,50,15);
                        x:=x+1;
                        cleardevice;
            end;
readln;
end.


Posisi awal                                            
Posisi akhir

2.4 Perancangan Animasi Pada Pascal
Setelah kita mengetahui konsep dari prosedur-prosedur yang digunakan dalam pembuatan animasi di pascal maka berikut adalah implementasi dari pemakaian prosedur-prosedur animasi pascal. Animasi yang akan dibuat terbagi menjadi 2 bagian, yaitu :
1.      Animasi penggunaan prosedur imagesize, getmem, getimage, dan putimage;
2.      Animasi penggunaan prosedur cleardevice.

a.      Animasi penggunaan prosedur imagesize, getmem, getimage, dan putimage.
Animasi yang akan dibuat menggunakan prosedur imagesize, getmem, getimage, dan putimage berjudul “Rocket 2012”. Secara gambaran umum, gambar yang akan dibuat adalah terdiri dari :
1.      Decrement hitungan mundur
2.      Rocket
3.      Api
a)      Algoritma system
1.      Mulai
2.      Membuat decrement hitungan mundur
3.      Membuat rocket
4.      Membuat api
5.      Membuat Pergerakan Rocket
6.      Membuat pergerakan api
7.      Selesai
b)     Translasi ke dalam bahasa pascal
Source code :
program rocket;
uses
crt,graph;
var
w,y1,y,dg,mg:integer;
size:word;
P:pointer;

d:integer;
procedure rocket;

begin
setcolor(green);

//badan rocket
rectangle(400,500,450,650);
//warna rocket
setfillstyle(solidfill,yellow);
floodfill(425,575,green);

//bokong rocket
setcolor(green);
setfillstyle(solidfill,white);
line(450,650,470,670);
line(470,670,380,670);
line(380,670,400,650);
line(400,650,450,650);
floodfill(460,660,green);

//knalpot
setfillstyle(solidfill,lightred);
rectangle(400,670,420,680);
floodfill(410,675,green);
setfillstyle(solidfill,lightred);
rectangle(430,670,450,680);
floodfill(440,675,green);

//moncong rocket
setlinestyle(solidln,1,thickwidth);
setcolor(green);
setfillstyle(solidfill,lightred);
line(400,500,425,450);
line(425,450,450,500);
line(450,500,400,500);
floodfill(430,490,green);

setcolor(Lightblue);
//NASA
settextstyle(sansseriffont,horizdir,3);
outtextxy(415,515+10,'N');
outtextxy(415,545+10,'A');
outtextxy(415,575+10,'S');
outtextxy(415,605+10,'A');
end;

procedure hitung_mundur;
var
o:shortstring;
c:integer;
begin
delay (0);
setlinestyle(solidln,100,thickwidth);

sound(1000);
nosound;

for c:=1 to 100 do
begin
o:=':10';
circle(240,120,80);

settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
o:='::9';
circle(240,120,80);
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
o:='::8';
circle(240,120,80);
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
o:='::7';
circle(240,120,80);
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
o:='::6';
circle(240,120,80);
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
o:='::5';
circle(240,120,80);
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
o:='::4';
circle(240,120,80);
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
o:='::3';
circle(240,120,80);
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
o:='::2';
circle(240,120,80);
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
circle(240,120,80);
o:='::1';
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;


cleardevice;
sound(1000);
nosound;
for c:=1 to 100 do
begin
setcolor(lightgreen);
o:='GO!';
circle(240,120,80);
settextstyle(sansseriffont,horizdir,4);
outtextxy(200,100,o);
end;
cleardevice;

end;

procedure api;
var
c,a:integer;
api:pointer;
begin
c:=1;   settextstyle(sansseriffont,horizdir,1);
        setcolor(white);
        outtextxy(395,685,'_^^^^^^_');
        outtextxy(400,688,' ****');
        getmem(api,imagesize(400,685,450,688));
        getimage(400,685,450,688,api^);

for a:=1 to 1000 do
        begin
        delay(0);
        setcolor(c);
        putimage(400,685,api^,xorput);

        putimage(400,685,api^,xorput);
        c:=c+2;
        end;
end;
procedure splash;
var
a:integer;
begin
for a:=1 to 500 do
        begin

        settextstyle(sansseriffont,horizdir,4);
        outtextxy(100,100,'ANIMASI GRAFIK KOMPUTER');
        settextstyle(sansseriffont,horizdir,2);
        outtextxy(100,140,'Oleh :');
        outtextxy(100,160,'Dani Ginanjar, NPM : 0806026');
        outtextxy(100,180,'Kharisma Wiati Gusti NPM : 0806052');
        outtextxy(100,200,'Ridwan Munawar NPM : 0806068');
        end;
        cleardevice;
end;

procedure closing;
var
a:integer;
begin

cleardevice;
for a:=1 to 50 do
        begin
        delay(90);
        settextstyle(sansseriffont,horizdir,5);
        outtextxy(350 ,200,'2012');
        settextstyle(sansseriffont,horizdir,3);
        outtextxy(360,250,'Part 2');
        end;

cleardevice;
for a:=1 to 50 do
        begin
        delay(90);
        settextstyle(sansseriffont,horizdir,2);
        outtextxy(100 ,200,'Directed By Pangeran Heckter');
        end;

cleardevice;
for a:=1 to 50 do
        begin
        delay(90);
        settextstyle(sansseriffont,horizdir,3);
        outtextxy(230 ,200,'Thank Us For Watching');
        end;

end;


begin
clrscr;
initgraph(dg,mg,'');
splash;
hitung_mundur;
rocket;
api;

size:=imagesize(380,450,470,680);
getmem(P,size);
getimage(380,450,470,680,P^);
putimage(380,450,P^,xorput);

y:=450;
y1:=680;
w:=2;
while y>-680 do
        begin
        delay(0);
        putimage(380,y,P^,xorput);
        putimage(380,y,P^,xorput);

        y:=y-5;
        w:=w + 2;
        setcolor(w);
        outtextxy(400,y1,'///\\\');
        setcolor(white);
        setlinestyle(solidln,20,thickwidth);
        line(440,680,440,y1);


        outtextxy(435,y1,'#*');
        outtextxy(400,y1,'*###');
        y1:=y1-5;
        end;
closing;
closegraph;
readln;
end.
c)      Output Program
1.      Decrement hitungan mundur
2.      Tampilan rocket

3.      Pergerakan rocket

b.      Animasi penggunaan prosedur cleardevice.
Animasi yang akan dibuat menggunakan prosedur cleardevice berjudul “My Sweet Superman”. Secara gambaran umum, gambar yang akan dibuat adalah terdiri dari :
1.      Superman
2.      Jalan
3.      Gedung-gedung
4.      Monas
5.      Balon terbang U.S.A
6.      Ledakan
7.      Kuburan

a)      Algoritma system
1.      Mulai
2.      Membuat superman, jalan, gedung-gedung.
3.      Membuat pergerakan jalan, dan gedung.
4.      Membuat monas dan balon udara U.S.A.
5.      Membuat pergerakan superman, monas, dan balon udara U.S.A.
6.      Membuat ledakan.
7.      Membuat kuburan.
8.      Selesai.

b)     Translasi ke dalam bahasa pascal
Source code :
program my_sweet_superman;
uses
crt,graph;
var
a,p,i,dg,mg,x,y:integer;
procedure tamat;
        begin
                x:=0; //inisialisasi pengubah koordinat x (maju ke kanan)
                p:=0; // inisialisasi pengubah koordinat x (maju ke kiri)
                repeat
                delay(0);
                sound(1000);
         //My sweet superman
                circle(x+100,100,5);
                line(x+95,100,x+95-70,100);
                line(x+95-10,100,x+100+20,100);
                line(x+95-10,100,x+95-20,100+10);
                line(x+95-20,100+10,x+95-20+20,100+10);
                line(x+95-30,100,x+95-30,100+17);
                line(x+95-30,100+17,x+95-50,100+5);
                x:=x+10;
         //garis-garis jalan
                setcolor(yellow);
                settextstyle(sansseriffont,horizdir,5);
                outtextxy(getmaxx-14*p,getmaxy-285,'_            ');
                outtextxy((500+getmaxx)-14*p,getmaxy-285,'_      ');
                outtextxy((1000+getmaxx)-14*p,getmaxy-285,'_      ');
                outtextxy((1500+getmaxx)-14*p,getmaxy-285,'_     ');
                p:=p+1;
        //batas atas bawah jalan
                setlinestyle(solidln,50,thickwidth);
        //bawah
                line(0,getmaxy-200,getmaxx,getmaxy-200);
        //atas
                line(0,getmaxy-300,getmaxx,getmaxy-300);
                setcolor(white);
        //monas
                line((getmaxx+1300-400)-14*p,getmaxy-300,(getmaxx+1300-50-400)-14*p,getmaxy-300-60);
                line((getmaxx+1250-400)-14*p,getmaxy-360,(getmaxx+1250+200-400)-14*p,getmaxy-360);
                line((getmaxx+1250+200-400)-14*p,getmaxy-360,(getmaxx+1250+200-50-400)-14*p,getmaxy-360+60);
                line((getmaxx+1250+50-400)-14*p,getmaxy-360,(getmaxx+1250+100-400)-14*p,getmaxy-300-350);
                line((getmaxx+1250+100-400)-14*p,getmaxy-300-350,(getmaxx+1250+150-400)-14*p,getmaxy-360);
                rectangle((getmaxx+1250+100-10-400)-14*p,getmaxy-300-350,(getmaxx+1250+100+15-400)-14*p,getmaxy-300-350-10);
                line((getmaxx+1250+100+15-5-400)-14*p,getmaxy-300-350-10,(getmaxx+1250+100+15-10-400)-14*p,getmaxy-300-350-10-20);
                line((getmaxx+1250+100+15-10-400)-14*p,getmaxy-300-350-10-20,(getmaxx+1250+100+15-5-13-400)-14*p,getmaxy-300-350-10);
      
 //pesawat balon U.S.A
                settextstyle(sansseriffont,horizdir,3);
                outtextxy((getmaxx+1500-400-40)-16*p,100-10,'U.S.A');
                ellipse((getmaxx+1500-400)-16*p,100,0,360,100,35);
                line((getmaxx+1500-400+100-4)-16*p,100+20,(getmaxx+1500-400+100+20)-16*p,100-30);
                line((getmaxx+1500-400+100+20)-16*p,100-30,(getmaxx+1500-400+100-4)-16*p,100-30);
                line((getmaxx+1500-400+100-4)-16*p,100-30,(getmaxx+1500-400+100-4-20)-16*p,100-30);

        //seconds from disaster
                if ((getmaxx+1500-400)-16*p)-50 = ((getmaxx+1250+50-400)-14*p) then
                        begin
                        for a:=1 to 30 do
                                begin
                                        delay(100);
                                        settextstyle(sansseriffont,horizdir,2);
                                        outtextxy(750,40,' Tidaaaaaaak....!!!');
                                end;
                        cleardevice;
                        delay(0);
                        //My sweet superman maju ke kanan
                                circle(x+100,100,5);
                                line(x+95,100,x+95-70,100);
                                line(x+95-10,100,x+100+20,100);
                                line(x+95-10,100,x+95-20,100+10);
                                line(x+95-20,100+10,x+95-20+20,100+10);
                                line(x+95-30,100,x+95-30,100+17);
                                line(x+95-30,100+17,x+95-50,100+5);
                                x:=x+10;
                        //garis-garis jalan
                                setcolor(yellow);
                                settextstyle(sansseriffont,horizdir,5);
                                outtextxy(getmaxx-14*p,getmaxy-285,'_            ');
                              outtextxy((500+getmaxx)-14*p,getmaxy-285,'_    ');
                              outtextxy((1000+getmaxx)-14*p,getmaxy-285,'_  ');
                              outtextxy((1500+getmaxx)-14*p,getmaxy-285,'_  ');
                                p:=p+1;
                        end

                else if ((getmaxx+1500-400)-16*p) < ((getmaxx+1250+50-400)-14*p) then
                        begin
                                x:=1250-400;
                        end;

                cleardevice;
                until x=1250-400;
                cleardevice;
                settextstyle(sansseriffont,horizdir,5);


        //DUAAAARRR......!!!!
                for a:=1 to 80 do
                        begin
                        delay(25);
                        setcolor(red);
                        settextstyle(sansseriffont,horizdir,5);
                        outtextxy(getmaxx-700,100 ,'DUAAAARRRR....!!!');
                        setcolor(5+a);
                        settextstyle(sansseriffont,horizdir,1);
                        outtextxy(getmaxx-700-40,100-40,'*    .       `      .      /     #     % &     &*      (^      !@#$ !         %       *       @!@#$   &*()   )');
                        settextstyle(sansseriffont,horizdir,1);
                        outtextxy(getmaxx-700-20,100-20,'   %     \      |     *     ^          .      /     #     % &     &*      (^      !@ !         %       *');
                        settextstyle(sansseriffont,horizdir,1);
                        outtextxy(getmaxx-700-40,100+40,'*    .       `      .      /     #     % &     &*      (^      !@#$ !         %       *       @!@#$   &*()   )');
                        settextstyle(sansseriffont,horizdir,1);
                        outtextxy(getmaxx-700-20,100+20,'   %     \      |     *     ^          .      /     #     % &     &*      (^      !@ !         %       *');
                        cleardevice;
                        end;
        //kuburan
                for a:=1 to 200 do
                        begin
                        delay(0);
                        setcolor(white);
                        setlinestyle(solidln,15,thickwidth);
                        arc(500,500,0,180,100);
                        line(400,500,600,500);
                        arc(500,500-90-10-20,0,180,50);
                        line(550,410,550,410-10-20);
                        line(450,410,450,410-10-20);
                        settextstyle(sansseriffont,horizdir,2);
                        outtextxy(500-25-8,410-20-15-10,'R.I.P');
                        cleardevice;
                        end;
                        cleardevice;
        //Closing
                for a:=1 to 250 do
                        begin
                        delay(0);
                        setcolor(yellow);
                        settextstyle(triplexfont,horizdir,5);
                        outtextxy(300-100-100,400-200,'THE END');

                        cleardevice;
                        end;
        //Closing 2
                for a:=1 to 250 do
                        begin
                        delay(0);
                        setcolor(yellow);
                        settextstyle(triplexfont,horizdir,5);
                        outtextxy(300-100-100,400-200,'MY SWEET SUPERMAN');
                        settextstyle(triplexfont,horizdir,2);
                        outtextxy(305-100-100+100,400+50-200,'Directed By Pangeran Heckter');
                        cleardevice;
                        end;
        //Closing 3
                 for a:=1 to 200 do
                        begin
                        delay(0);
                        setcolor(white);
                        settextstyle(triplexfont,horizdir,4);
                        outtextxy(300-100-100,400-200,'Thank Us For Watching');
                        settextstyle(gothicfont,horizdir,2);
                        outtextxy(310-100-100,400+50-200,'visit our site : www.liftones.blogspot.com');
                        cleardevice;
                        end;
        //menutup graph
                        closegraph;
                        readln;
         end;
begin
clrscr;
initgraph(dg,mg,'');   //inisialisasi graph

x:=0;
p:=0;
setlinestyle(solidln,50,thickwidth);

//splash screen

for a:=65 downto 1 do
begin
delay(150);

settextstyle(sansseriffont,horizdir,4);
outtextxy(200,300,'ANIMASI GRAFIKA KOMPUTER');
settextstyle(sansseriffont,horizdir,3);
outtextxy(200,300+85,'Oleh :');
settextstyle(sansseriffont,horizdir,3);
outtextxy(200,300+85+45,'  Dani Ginanjar              NPM : 0806026');
settextstyle(sansseriffont,horizdir,3);
outtextxy(200,300+85+45+45,'  Kharisma Wiati Gusti       NPM : 08060');
settextstyle(sansseriffont,horizdir,3);
outtextxy(200,300+85+45+45+45,'  Ridwan Munawar             NPM : 0806068');
end;

repeat
if p=0 then
        begin
                repeat

                delay(0);
                setcolor(yellow);

        //garis-garis jalan
                settextstyle(sansseriffont,horizdir,5);
                outtextxy(getmaxx-14*p,getmaxy-285,'_            ');
                outtextxy((500+getmaxx)-14*p,getmaxy-285,'_      ');
                outtextxy((1000+getmaxx)-14*p,getmaxy-285,'_      ');
                outtextxy((1500+getmaxx)-14*p,getmaxy-285,'_     ');
                p:=p+1;

        //batas atas bawah jalan
                setlinestyle(solidln,50,thickwidth);
                //bawah
                line(0,getmaxy-200,getmaxx,getmaxy-200);
                //atas
                line(0,getmaxy-300,getmaxx,getmaxy-300);
                setcolor(white);

        //My sweet superman
                circle(100,100,5);
                line(95,100,95-70,100);
                line(95-10,100,100+20,100);
                line(95-10,100,95-20,100+10);
                line(95-20,100+10,95-20+20,100+10);
                line(95-30,100,95-30,100+17);
                line(95-30,100+17,95-50,100+5);

        //gedung
                rectangle((getmaxx+500)-14*y,getmaxy-300,(getmaxx+600)-14*y,getmaxy-600);
                rectangle((getmaxx+500+100)-14*y,getmaxy-300,(getmaxx+600+200)-14*y,getmaxy-600-20);
                rectangle((getmaxx+500+400)-14*y,getmaxy-300,(getmaxx+600+700)-14*y,getmaxy-600-50);
                rectangle((getmaxx+500+850)-14*y,getmaxy-300,(getmaxx+600+820)-14*y,getmaxy-600-33);
                 rectangle((getmaxx+500+850+140)-14*y,getmaxy-300,(getmaxx+600+820+300)-14*y,getmaxy-600-33+100);
                 rectangle((getmaxx+500+850+400+20)-14*y,getmaxy-300,(getmaxx+600+820+550)-14*y,getmaxy-600-33+55);
                 rectangle((getmaxx+500+850+400+20+300)-14*y,getmaxy-300,(getmaxx+600+820+550+500)-14*y,getmaxy-600-33+55-105);
                y:=y+1;
                setcolor(lightgray);
                settextstyle(sansseriffont,horizdir,2);
                outtextxy((getmaxx+500+105)-14*i,getmaxy-600+45,'ASIA TOSERBA');
                setcolor(white);
                settextstyle(sansseriffont,horizdir,3);
                outtextxy((getmaxx+500+105+450)-14*i,getmaxy-600+25,'STTG');
                setcolor(lightgreen);
                outtextxy((getmaxx+500+105+450+500)-14*i,getmaxy-600+100,'BRI');
                setcolor(lightred);
                outtextxy((getmaxx+500+105+650+500+400)-14*i,getmaxy-600-45,'GARUT PLAZA');
                i:=i+1;
                x:=x+10;
                if x=11500 then tamat; //Menuju CLosing
                cleardevice;
                until p>300;
        end
else if p>300 then
        begin
                p:=0;
                y:=0;
        end;
until keypressed;
readln;
end.






c)      Output program
1.      Pergerakan jalan dan gedung

2.      Pergerakan superman, monas dan balon udara U.S.A.

3.      Ledakan
4.      Kuburan

2.5 Animasi Pada Macromedia Flash MX
Di bawah ini merupakan window dari Flash MX yang digunakan dalam pekerjaan pembuatan animasi, baik itu berupa graphic atau animasi bergerak (cartoon).
Jendela Macromedia Flash Mx










A.    Timeline, digunakan untuk mengatur dan mengontrol isi keseluruhan movie Anda.
B.     Stage, merupakan tempat dimana Anda bekerja dalam membuat sebuah animasi.
C.     Tools Box, berisi alat-alat yang digunakan untuk menggambar objek pada stage.
Keterangan :
1.   Arrow Tool
Tool ini digunakan untuk memilih suatu objek atau untuk memindahkannya.
2.   Subselection Tool
Tool ini digunakan untuk merubah suatu objek dengan edit points.
3.   Line Tool
Tool ini digunakan untuk membuat suatu garis di stage.
4.   Lasso Tool
Tool ini digunakan untuk memilih daerah di objek yang akan diedit.
5.   Pen Tool
Tool yang digunakan untuk menggambar dan merubah bentuk suatu objek dengan menggunakan edit points (lebih teliti & akurat).
6.   Text Tool
Tool ini digunakan untuk menuliskan kalimat atau kata-kata.
7.   Oval Tool
Tool yang digunakan untuk menggambar sebuah lingkaran.
8.   Rectangle Tool
Tool yang digunakan untuk menggambar sebuah segiempat.
9.   Pencil Tool
Tool ini digunakan untuk menggambar sebuah objek sesuai dengan yang Anda sukai. Tetapi setiap bentuk yang Anda buat akan diformat oleh Flash MX menjadi bentuk sempurna.
10.  Brush Tool
Tool ini sering digunakan untuk memberi warna pada objek bebas.
11.  Free Transform Tool
Tool ini digunakan untuk memutar (rotate) objek yang Anda buat atau mengubah bentuk objek menjadi bentuk lain.
12.  Fill Transform Tool
Tools ini digunakan untuk memutar suatu objek yang diimport dari luar lingkungan Flash MX, serta untuk mengatur efek warna.
13.  Ink Bottle Tool
Tool ini digunakan untuk mengisi warna pada objek yang bordernya telah hilang (tidak ada).
14.  Paint Bucket Tool
Tool ini digunakan untuk mengisi warna pada objek yang dipilih.
15.  Eraser Tool
Tool ini digunakan untuk menghapus objek yang Anda bentuk.

D.    Color Window, merupakan window yang digunakan untuk mengatur warna pada objek yang Anda buat.
Color Window terdiri dari:
1.      Color Mixer, digunakan untuk mengatur warna pada objek sesuai dengan keinginan Anda. Ada 5 pilihan tipe warna, yaitu: None, Solid, Linear, Radial, Bitmap.
2.      Color Swatches, digunakan untuk memberi warna pada objek yang Anda buat sesuai dengan yang warna pada window.
E.     Actions – Frame, merupakan window yang digunakan untuk menuliskan Action Script untuk Flash MX. Biasanya Action Script digunakan untuk mengendalikan objek yang Anda buat sesuai dengan keinginan Anda.
F.      Properties, merupakan window yang digunakan untuk mengatur property dari objek yang Anda buat.
G.    Components, digunakan untuk menambahkan objek untuk web application yang nantinya di publish ke internet.

2.5.1        Pembuatan Animasi
pembuatan animasi dalam macromedia flash MX, secara sederhana adalah menggunakan tool box dan pengaturan timeline. Dimana tool box sebagai alat gambar object dan timeline sebagai pengatur kemunculan object. Output bisa langsung kita lihat di stage. Macromedia flash MX member kemudahan kepada user dalam pembuatan animasi, berbeda seperti di pascal, user tidak perlu berurusan sintak error dan hal lainnya seperti rumitnya pascal, user dapat melakukan proses pembuatan animasi cukup dengan klik dan drag. Hasil yang didapat juga sangat memuaskan, kualitas animasi yang halus dan alokasi memori yang lebih kecil daripada pascal.

2.5.1.1 Pembuatan Animasi Rocket 2012
1.      pembuatan decrement hitungan mundur luncur rocket
2.      pembuatan rocket
3.      membuat rocket bergerak
2.5.1.2 Pembuatan Animasi My Sweet Superman
1. Pembuatan gambar superman.
2. pembuatan jalan dan gedung-gedung.
3. membuat jalan dan gedung bergerak.
4. pembuatan monas dan balon udara U.S.A.
5. membuat monas dan balon udara U.S.A bergerak.
6. membuat ledakan.
7. membuat kuburan.

Bab III
Kesimpulan

Tidak ada komentar:

Posting Komentar