Java 2D|Animasi Java
Dalam Praktikum grafika komputer ke 6 menerapkan Thread(dasar dari animasi) lebih jelasnya baca penjelasan dibawah ini :Definisi ThreadSebuah thread merupakan sebuah pengontrol aliran program. Untuk lebih mudahnya, bayangkanlah thread sebagai sebuah proses yang akan dieksekusi didalam sebuah program tertentu. Penggunaan sistem operasi modern saat ini telah mendukung kemampuan untuk menjalankan beberapa program. Misalnya, pada saat Anda mengetik sebuah dokumen di komputer Anda dengan menggunakan text editor, dalam waktu yang bersamaan Anda juga dapat mendengarkan musik, dan surfing lewat internet di PC Anda. Sistem operasi yang telah terinstal dalam computer Anda itulah yang memperbolehkan Anda untuk menjalankan multitaskting. Seperti itu juga sebuah program (ibaratkan di PC Anda), ia juga dapat mengeksekusi beberapa proses secara bersama-sama(ibaratkan beberapa aplikasi berbeda yang bekerja pada PC Anda). Sebuah contoh aplikasi adalah HotJava browser yang memperbolehkan Anda untuk browsing terhadap suatu page, bersamaan dengan mendownload object yang lain, misalnya gambar, memainkan animasi, dan juga file audio pada saat yang bersamaan.hal tersebut merupakan keunggulan thread, singkatnya jika kita menggunakan thread saat kita melakukan aplikasi lain pada saat bersamaan maka aplikasi kita tidak akan berhenti. jika kita tidak menggunakan thread maka salahsatu aplikasi kita kan berhenti saat kita menjalankan aplikasi lain.
State dari Thread Sebuah thread memungkinkan untuk memiliki beberapa state:1. RunningSebuah thread yang pada saat ini sedang dieksekusi dan didalam control dari CPU.2. Ready to runThread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untukmelakukannya.3. ResumedSetelah sebelumnya di block atau diberhentikan sementara, state ini kemudian siapuntuk dijalankan.4. SuspendedSebuah thread yang berhenti sementara, dan kemudian memperbolehkan CPU untukmenjalankan thread lain bekerja.5. BlockedSebuah thread yang di-block merupakan sebuah thread yang tidak mampu berjalan,karena ia akan menunggu sebuah resource tersedia atau sebuah event terjadi.
PrioritasUntuk menentukan thread mana yang akan menerima control dari CPU dan akan dieksekusi pertama kali, setiap thread akan diberikan sebuah prioritas. Sebuah prioritas adalah sebuah nilai integer dari angka 1 sampai dengan 10, dimana semakin tinggi prioritas dari sebuah thread, berarti semakin besar kesempatan dari thread tersebut untuk dieksekusi terlebih dahulu.
Sebagai contoh, asumsikan bahwa ada dua buah thread yang berjalan bersama-sama. Thread pertama akan diberikan prioritas nomor 5, sedangkan thread yang kedua memiliki prioritas 10. Anggaplah bahwa thread pertama telah berjalan pada saat thread kedua dijalankan. Thread kedua akan menerima control dari CPU dan akan dieksekusi pada saat thread kedua tersebut memiliki prioritas yang lebih tinggi dibandingkan thread yang pada saat itu tengah berjalan. Salah satu contoh dari skenario ini adalah context switch.Sebuah context switch terjadi apabila sebagian dari thread telah dikontrol oleh CPU dari thread yang lain. Ada beberapa skenario mengenai bagaimana cara kerja dari context switch. Salah satu skenario adalah sebuah thread yang sedang berjalan memberikan kesempatan kepada CPU untuk mengontrol thread lain sehingga ia dapat berjalan. Dalam kasus ini, prioritas tertinggi dari thread adalah thread yang siap untuk menerima kontrol dari CPU. Cara yang lain dari context switch adalah pada saat sebuah thread yang sedang berjalan diambil alih oleh thread yang memiliki prioritas tertinggi seperti yang telah dicontohkan sebelumnya.
Hal ini juga mungkin dilakukan apabila lebih dari satu CPU tersedia, sehingga lebih dari satu prioritas thread yang siap untuk dijalankan. Untuk menentukan diantara dua thread yang memiliki prioritas sama untuk menerima kontrol dari CPU, sangat bergantung kepada sistem operasi yang digunakan. Windows 95/98/NT menggunakan time-slicing dan round-robin untuk menangani kasus ini. Setiap thread dengan prioritas yang sama akan diberikan sebuah jangka waktu tertentu untuk dieksekusi sebelum CPU mengontrol thread lain yang memiliki prioritas yang sama. Sedangkan Solaris, ia akan membiarkan sebuah thread untuk dieksekusi sampai ia menyelesaikan tugasnya atau sampai ia secara suka rela membiarkan CPU untuk mengontrol thread yang lain.
Class ThreadConstructorConstructor-constructor ThreadThread()//Membuat sebuah object Thread yang baru.Thread(String name)//Membuat sebuah object thread dengan memberikan penamaan yang spesifik.Thread(Runnable target)//Membuat sebuah object Thread yang baru berdasar pada object Runnable. Targetmenyatakan sebuah object dimana method run dipanggil.Thread(Runnable target, String name)//Membuat sebuah object Thread yang baru dengan nama yang spesifik dan berdasarkanpada object Runnable.
ConstantsClass Thread juga menyediakan beberapa constants sebagai nilai prioritas.berikut ini adalah rangkuman dari class Thread.public final static int MAX_PRIORITY//Nilai prioritas maksimum, 10public final static int MIN_PRIORITY//Nilai prioritas minimum, 1.public final static int NORM_PRIORITY//Nilai default prioritas, 5.
MethodsMethod-method inilah yang disediakan dalam class Thread.public static Thread currentThread()//Mengembalikan sebuah reference kepada thread yang sedang berjalan.public final String getName()//Mengembalikan nama dari thread.public final void setName(String name)//Mengulang pemberian nama thread sesuai dengan argument name. Hal ini dapatmenyebabkan SecurityException.public final int getPriority()//Mengembalikan nilai prioritas yang telah diberikan kepada thread tersebut.public final boolean isAlive()//Menunjukkan bahwa thread tersebut sedang berjalan atau tidak.public final void join([long millis, [int nanos]])//Sebuah overloading method. Sebuah thread yang sedang berjalan, harus menunggusampai thread tersebut selesai (jika tidak ada parameter-parameter spesifik), atausampai waktu yang telah ditentukan habis.public static void sleep(long millis)//Menunda thread dalam jangka waktu milis. Hal ini dapat menyebabkanInterruptedException.public void run()//Eksekusi thread dimulai dari method ini.public void start()//Menyebabkan eksekusi dari thread berlangsung dengan cara memanggil method run.
Contoh Threadimport javax.swing.*;import java.awt.*;class CountDownGUI extends JFrame {JLabel label;CountDownGUI(String title) {super(title);label = new JLabel(“Start count!”);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);getContentPane().add(new Panel(), BorderLayout.getContentPane().add(label);setSize(300,300);setVisible(true);}void startCount() {try {for (int i = 10; i > 0; i–) {Thread.sleep(1000);label.setText(i + “”);}Thread.sleep(1000);label.setText(“Count down complete.”);Thread.sleep(1000);} catch (InterruptedException ie) {}label.setText(Thread.currentThread().toString());}public static void main(String args[]) {CountDownGUI cdg = new CountDownGUI(“Count down GUI”);cdg.startCount();}}
Contoh Program Animasi Java, Seperti Animasi Ball,Animasi Ball Room, Animasi Orang Berjalan, Animasi Grafik, Animasi Tombol, Dll
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.
Berikut Link dan Source Kode Program Animasi. Silahkan Download Animasinya :
0 Komentar:
Posting Komentar