2008-01-27

Dasar Pembuatan Animasi Sederhana Dengan Java

Tips & Trik IlmuKomputer.Com
Copyright © 2005 IlmuKomputer.Com
Fajar Yusran Zebua
fajarzebua@yahoo.com
Lisensi Dokumen:
Copyright © 2005 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan
secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap
dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
terlebih dahulu dari IlmuKomputer.Com.
DASAR ANIMASI
Animasi pada dasarnya adalah membuat objek seolah-olah bergerak sehingga
terjadi pergerakan yang membuat mata kita memandangnya sebagai sebuah
kesatuan utuh. Padahal dibalik itu, animasi dibuat berdasarkan pada bagian-bagian
tertentu (terpisah) dan baru kemudian akan disatukan untuk mendapatkan
pergerakan yang sempurna.
Untuk membuat animasi, terlebih dahulu kita harus membuat satu per satu bagian-
bagian tertentu tadi. Hal ini merupakan hal yang sangat berat dalam membuat
animasi mengingat kita harus memikirkan bagaimana desain atau bagian dari
animasi yang kita buat tersebut supaya benar-benar mendapatkan hasil yang
sempurna jika disatukan.
DASAR ANIMASI DENGAN JAVA
Java merupakan bahasa pemrograman yang sangat ampuh sekali. Ini bisa
dibuktikan dengan kemampuannya yang tidak bergantung pada platform. Artinya
Java dapat dijalankan pada sembarang komputer dan bahkan pada sembarang
sistem operasi (sering disebut dengan istilah portabilitas). Yang menarik, tingkat
portabilitas Java tidak hanya sebatas pada program sumber (source code),
melainkan juga pada tingkat kode biner yang disebut bytecode. Ini berarti, bila
Anda telah mengkompilasi program Java pada komputer bersistem operasi
Windows, maka Anda dapat menjalankan hasil kompilasi pada komputer
bersistem operasi Linux tanpa perlu mengkompilasi ulang lagi.
1

Tips & Trik IlmuKomputer.Com
Copyright © 2005 IlmuKomputer.Com
Untuk membuat animasi di Java, kita juga harus membuat bagian-bagian yang
kemudian akan kita satukan untuk mendapatkan pergerakan (animasi).
Ok’s, langsung saja Penulis akan memberikan salah satu contoh animasi
sederhana yang akan memunculkan tanda bintang secara bergantian dan akan
berjalan dari kiri ke kanan.
Kode program :
//*********************************
//Nama File : animasiSederhana.java
//*********************************
//Animasi di Java
//Untuk menampilkan animasi bintang
//*********************************
import java.awt.*;
import java.awt.event.*;
public class animasiSederhana extends Frame implements Runnable {
Thread animation;
// Mengatur waktu delay
int frameDelay = 100;
// Objek yang akan ditampilkan
String frames[] = {"*","**","***","****","*****","****","***","**","*"};
// Menentukan variabel yang diperlukan
int numFrames = frames.length;
int currentFrame = 0;
long lastDisplay = 0;
int screenWidth = 200; //lebar layar
int screenHeight = 200; //tinggi layar
public static void main(String args[]) {
animasiSederhana app = new animasiSederhana();
}
public animasiSederhana() {
super("Animasi Sederhana");
setup();
setSize(screenWidth,screenHeight);
addWindowListener(new WindowEventHandler());
show();
animation = new Thread(this);
animation.start();
}
void setup() {
setupMenuBar();
setFont(new Font("default",Font.BOLD,18)); //mengatur font
}
void setupMenuBar() {
MenuBar menuBar = new MenuBar();
Menu fileMenu = new Menu("File");
MenuItem fileExit = new MenuItem("Tutup");
fileExit.addActionListener(new MenuItemHandler());
fileMenu.add(fileExit);
menuBar.add(fileMenu);
setMenuBar(menuBar);
}
public void paint(Graphics g) {
g.drawString(frames[currentFrame],60,60); //membuat frame
}
public void run() {
2

Tips & Trik IlmuKomputer.Com
Copyright © 2005 IlmuKomputer.Com
// membuat animasi (perulangan)
do {
long time = System.currentTimeMillis();
if(time - lastDisplay > frameDelay) {
repaint();
try {
Thread.sleep(frameDelay); //berhenti selama frameDelay=100
}catch(InterruptedException ex){
}
++currentFrame;
currentFrame %= numFrames;
lastDisplay = time;
}
} while (true);
}
class MenuItemHandler implements ActionListener, ItemListener {
public void actionPerformed(ActionEvent ev){
String s=ev.getActionCommand();
if(s=="Exit"){
System.exit(0);
}
}
public void itemStateChanged(ItemEvent e){
}
}
//Kelas yang digunakan agar tombol close pada frame bisa berfungsi
class WindowEventHandler extends WindowAdapter {
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
}
Output program :
ANIMASI DENGAN GRAFIK
Untuk membuat animasi dengan grafik, maka terlebih dahulu kita harus
menyiapkan gambar-gambar atau yang sejenisnya agar kita dapat menyatukannya
3

Tips & Trik IlmuKomputer.Com
Copyright © 2005 IlmuKomputer.Com
dengan mudah. Untuk contoh kali ini, penulis menggunakan empat buah gambar
yang akan disatukan untuk mendapatkan animasi gambar manusia yang bergerak.
Gambar 1 :
stickman1.gif
Gambar 2 :
stickman2.gif
Gambar 3 :
stickman3.gif
Gambar 4 :
stickman4.gif
4

Tips & Trik IlmuKomputer.Com
Copyright © 2005 IlmuKomputer.Com
Kode Program :
//*********************************
//Nama File : animasiGrafik.java
//*********************************
//Animasi di Java
//Untuk menampilkan animasi manusia
//File gambar stickman1.gif, dst
//disimpan satu direktori dengan
//animasiGrafik.java
//*********************************
import java.awt.*;
import java.awt.event.*;
public class animasiGrafik extends Frame implements Runnable {
Thread animation;
int frameDelay = 100;
Image frames[];
int numFrames;
int currentFrame = 0;
long lastDisplay = 0;
int screenWidth = 400;
int screenHeight = 400;
public static void main(String args[]) {
animasiGrafik app = new animasiGrafik ();
}
public animasiGrafik () {
super("Animasi Grafik");
setup();
setSize(screenWidth,screenHeight);
addWindowListener(new WindowEventHandler());
show();
animation = new Thread(this);
animation.start();
}
void setup() {
setupMenuBar();
setFont(new Font("default",Font.BOLD,18));
Toolkit toolkit = getToolkit();
frames = new Image[4];
// objek yang akan ditampilkan
frames[0] = toolkit.getImage("stickman1.gif");
frames[1] = toolkit.getImage("stickman2.gif");
frames[2] = toolkit.getImage("stickman3.gif");
frames[3] = toolkit.getImage("stickman4.gif");
numFrames = frames.length;
}
void setupMenuBar() {
MenuBar menuBar = new MenuBar();
Menu fileMenu = new Menu("File");
MenuItem fileExit = new MenuItem("Exit");
fileExit.addActionListener(new MenuItemHandler());
fileMenu.add(fileExit);
menuBar.add(fileMenu);
setMenuBar(menuBar);
}
public void paint(Graphics g) {
g.drawImage(frames[currentFrame],125,80,this);
}
5

Tips & Trik IlmuKomputer.Com
Copyright © 2005 IlmuKomputer.Com
public void run() {
// Perulangan animasi
do {
long time = System.currentTimeMillis();
if(time - lastDisplay > frameDelay) {
repaint();
try {
Thread.sleep(frameDelay);
}catch(InterruptedException ex){
}
++currentFrame;
currentFrame %= numFrames;
lastDisplay = time;
}
} while (true);
}
class MenuItemHandler implements ActionListener, ItemListener {
public void actionPerformed(ActionEvent ev){
String s=ev.getActionCommand();
if(s=="Exit"){
System.exit(0);
}
}
public void itemStateChanged(ItemEvent e){
}
}
//Kelas yang digunakan agar tombol close pada frame bisa berfungsi
class WindowEventHandler extends WindowAdapter {
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
}
Output program :
Referensi :
1. http://pbs.mcp.com/
6

Tips & Trik IlmuKomputer.Com
Copyright © 2005 IlmuKomputer.Com
Biografi Penulis
Fajar Yusran Zebua. Dilahirkan di Nias pada tanggal 25 Juni
2005. Lulus dari SMU Negeri 1 Gunungsitoli Kabupaten NIAS
pada tahun 2002.Sekarang kuliah pada Jurusan Teknik Informatika
Institut Sains dan Teknologi AKPRIND Yogyakarta (semester VI).
Mulai mengenal komputer pada umur 10 tahun dan pada saat itu
tertarik belajar Sistem Operasi UNIX. Penulis aktif dalam kegiatan
kemahasiswaan seperti Himpunan Mahasiswa Informatika
(HUMANIKA) ISTA. Saat ini sedang mendalami database (khususnya oracle),
jaringan komputer dan juga pemrograman Java.
Informasi lebih lanjut mengenai penulis ini bisa didapat melalui :
fajarzebua@yahoo.com

Comments :

4 comments to “Dasar Pembuatan Animasi Sederhana Dengan Java”

Gwaaa... keren abis artikelnya... ^o^ helpful dah... sayang gak ada screenshotnya.

Anonymous said...
on 

Tulisannya bagus, tapi bingung baca source codenya. Bagaimana jika bagian source code dibuatkan blok khusus (agak maju misalnya, atau warna lain) ^_^

Umar Faisol said...
on 

oh gitu ya pa?

Rani Fitriyani said...
on 

thanks info , ane coba dulu Gan !!

gokilbanget.koko said...
on 

Post a Comment

Informasi Pilihan Identitas:
Google/Blogger : Khusus yang punya Account Blogger.
Lainnya : Jika tidak punya account blogger namun punya alamat Blog atau Website.
Anonim : Jika tidak ingin mempublikasikan profile anda (tidak disarankan).