MATCH GAME Target Praktikum :

dokumen-dokumen yang mirip
MATCH GAME. Yuliana Setiowati Politeknik Elektronika Negeri Surabaya D4 PENS-ITS

Praktikum JTable. Gambar 1

BAB I PROJECT NETBEANS DAN GUI SEDERHANA

Praktikum 6a Melakukan koneksi dengan basis data

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

Aplikasi Web Cam dengan Java Media Framework APLIKASI WEBCAM DENGAN JAVA MEDIA FRAMEWORK

Prosedur dan Fungsi. Ciri prosedur pada java selalu dimulai dengan : private/public void namaprosedur ( tipedataparameter1 namaparameter1,

game yang dibangun lebih semakin hidup dan terasa nyata, hal ini juga yang membuat para pemain lebih tertarik, bayangkan apabila di dalam suatu

BAB 5 Mendapatkan Input dari Keyboard

BAB V JTable. JTable () Default menciptakan JTable yang diawali dengan model default data, model kolom default, dan model pilihan default.

BAB 5 Mendapatkan Input dari Keyboard

Permainan Remi Sederhana

Membuat Menu Login Sederhana [Full Coding]

Materi : GUI AWT & SWING.

APLIKASI PEMBENTUKAN BADAN DAN BERAT IDEAL MENGGUNAKAN SOFTWARE NETBEANS Hafit Risky bin Hatim Dosen Pembimbing: Suhartini, S.

Menghubungkan Database Access Menggunakan Netbeans Oleh : Yuliana Setiowati

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

BAB IX MEMBUAT FORM 9.1 Membuat Form Secara Konvensional

1. Silahkan anda buka project dari modul 4 anda yang sudah anda selesaikan 2. Tambahkan 1 buah view dengan nama FormMain

Pemrograman Berorientasi Obyek. Ramos Somya

INSTRUKSI PENCABANGAN

Membuat User Interface dengan Swing. Program yang dibuat sebelumnya selalu berbasis console User lebih senang berinteraksi dengan

LAPORAN TUGAS MINGGUAN III PEMBUATAN KALKULATOR ( MENGHITUNG TOTAL TRANSAKSI) BERBASIS JAVA

Pemrograman Java III

APLIKASI PERHITUNGAN NILAI MAHASISWA. Untuk membuat aplikasi nilai mahasiswa, langkah-langkahnya adalah sebagai berikut :

BAB Argument Command-Line dan System Properties

BAB I PERSYARATAN PRODUK

GUI (Grapichal User Interface)

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

Pengenalan JavaScript

J2ME GUI dan Manajemen Event

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

Membuat Program Aplikasi Akademik dengan Menggunakan NetBeans 6.9

GUI & Event Handling. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

PEMBUATAN GAME DEBEPE DENGAN MENGGUNAKAN JAVA DI NETBEANS IDE Oleh : Rachmat Yulianto ( ) Pembimbing : Suhartini, S.

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Pemrograman Java III

Modul Pengembangan Aplikasi Android Berbasis Client- Server Aplikasi sederhana android Versi 1.0

JAVA SWING. Swing merupakan library pada java untuk membuat sebuah tampilan seperti

BAHASA PEMROGRAMAN JAVA

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

GUI & Event Handling. Viska Mutiawani, M.Sc

PEMROGRAMAN LANJUTAN JAVA. Dasar-Dasar Netbeans

Materi 5 Pemrograman Visual

PEMROGRAMAN I. By : Sri Rezeki Candra Nursari

Aplikasi Grafik Menggunakan Netbeans

Percobaan 7 GUI(Graphical User Interface )

Pemrograman Web Lanjut

Gambar 1. Single Linked List

Membangun GUI (dengan AWT & Swing) OOP Java

Program Penghitungan II Dengan Java

BAB 8 Argumen dari Command-line

Pengenalan APLIKASI DATABASE

BAB 2 INPUT DARI KEYBOARD

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

BAB 8 Argumen dari Command-line

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM. Tahap implementasi merupakan prosedur yang harus. dilakukan untuk menyelesaikan desain sistem yang ada pada


BAB I PENDAHULUAN 1.2. Latar Belakang Masalah

Modul 2. [access specifier] [tipe data] [nama variabel];

Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum

TIPE DATA Pertemuan (K-03/L-03)

BAB IV HASIL DAN UJI COBA

DIK-020 Pemograman Berorientasi Objek 5/24/2012

GRAPHICAL USER INTERFACE (GUI)

Bahasa Pemrograman :: Dasar Pemrograman Java

BAB II LANDASAN TEORI

Graphical User Interface (GUI)

A. TUJUAN PEMBELAJARAN

Topik. Stream I/O Cara menggunakan Stream Hierarchy Java I/O Membaca File Menulis File Menghapus File Cara membaca isi Direktori dalam file

LAPORAN RESMI. PRAKTIKUM TEKNOLOGI WEB Pengenalan JavaScript

Modul 9: antarmuka grafis (GUI) dalam window

PERTEMUAN 1 Membuat Project & Komponen Swing [PBO II JAVA] dosen : SOPINGI, S.Kom

Badiyanto, S.Kom.,M.Kom. Tujuan Intruksional. Mampu menjelaskan dan menggunakan komponen pemilihan JListbox. pemilihan JComboBox

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

2.1 if Jenis-jenis Percabangan if adalah if, if else, If else if else if - else

visit :

PERCOBAAN 6 EXCEPTION

GUI Event Handling. minggu 13. Wednesday, 16 May 12

MODUL VI ACTION SCRIPT

MODUL PRAKTIKUM KE 3 A.

PRAKTIKUM 7 DASAR INPUT OUTPUT

Pengenalan Java, Tipe Data, Variabel dan Operator. Putu Putra Astawa

Modul Praktikum Pemrograman

BONUS. Dasar Java Mobile. Mengenal Java Mobile Mengenal MIDlet Mobile Grafis Mobile Animasi Latihan Soal

BAB 1 KONSEP DASAR JAVA

LISTING PROGRAM. Program animasi Frame by Frame dalam bahasa pemrograman Java

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Modul Praktikum 1 Pemograman Berorientasi Objek

Pengenalan Visual Basic

Pemrograman Java III

(JCOMBOBOX) Pulut Suryati

Cara Membaca File Text di JAVA

PRAKTIKUM 6 SPINNER. 1. Aktifkanlah project baru, File New Project Android Application Project. Modul 6 Spinner Page 1

Modul 08. User Interface 01

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

Transkripsi:

MATCH GAME Target Praktikum : Mahasiswa dapat membuat aplikasi pembacaan file. Mahasiswa dapat menggunakan ImageIcon, Menu Bar, ProgressBar. Mahasiswa dapat menggunakan JDialog, membuka dan menutup JDialog. Mahasiswa dapat menggunakan Java Media Framework. Pada praktikum ini mahasiswa membuat aplikasi tentang Match Game. User harus mencocokkan gambar acuan dengan 6 gambar yang ada dan harus memilih mana yang sama. Jika user benar dalam melakukan pencocokan maka tampilkan suara Kamu Hebat (suara sesuai keinginan), jika user salah maka tampilkan suara Masih Salah Coba Lagi (suara sesuai keinginan). Kategori gambar dan data gambar tergantung dari keinginan user (bisa ditambahkan maupun dikurangi). Kategori gambar dan nama gambar tersimpan dalam file text. Pada aplikasi terdapat menu bar File dan Edit. Isi menu File adalah : New Game dan Exit, sedangkan isi menu Edit adalah Kategori. Tampilan utama ditunjukkan pada gambar 1, sedangkan isi dari menu File dan Edit ditunjukkan pada gambar 2 dan 3. Pada menu Edit, jika kita pilih menu item kategori untuk mengubah kategori dari gambar maka muncul seperti gambar 4. Hasil ditunjukkan pada gambar 5. 1

Gambar 1 Gambar 2 2

Gambar 3 Gambar 4 3

Gambar 5 Pembacaan file Objek2 gambar disimpan pada objek Vector Lakukan random untuk menampilkan 6 gambar berdasarkan kategori, selanjutkan pilih 1 bagian sebagai gambar acuan Tampilkan suara (benar atau salah) User melakukan pemilihan Dalam pembuatan aplikasi Match Game, variabel-variabel penting adalah : o Vector datagambar : objek datagambar berupa Vector. Objek datagambar ini digunakan untuk menyimpan objek-objek Gambar, pada saat pembacaan file txt pada baris kedua dan baris selanjutnya. o Vector kategori : objek kategori bertipe Vector, digunakan untuk menyimpan kategori gambar. Isi dari objek kategori berupa String. Penyimpanan ini dilakukan pada saat pembacaan file txt, data pada baris pertama. 4

o Gambar kategorimain : objek kategorimain berupa objek Gambar, untuk menyimpan kategori dari gambar yang akan dibangkitkan (contoh kategori misal : bunga, binatang, kendaraan). Yang dipentingkan pada objek kategorimain ini adalah kategorinya, sehingga namagambarnya bisa diisi dengan sembarang nilai. Contoh : Gambar kategorimain = new Gambar("binatang","abc"); int indexgambar[] : pada aplikasi akan menampilkan gambar sebanyak 6. Misal objek gambar dengan kategori kartun tersimpan pada index 10 19. Maka indexgambar ini akan menyimpan 6 data yaitu bilangan antara 10 19. Dengan asumsi bilangan tidak boleh sama. Contoh : int indexgambar[] = {11,18,17,13,15 int noacuan : dari data index yang tersimpan di indexgambar, kita ambil salah satu, kita simpan pada variabel noacuan. Contoh int noacuan = 17 ; int value =0 : untuk memberikan nilai awal pada progress bar. Contoh pbar.setvalue(value); Pembacaan File. Penyimpanan nama gambar menggunakan file teks dengan format seperti di bawah ini. Baris pertama menyatakan kategori yang ada pada aplikasi Match Game, sedangkan baris berikutnya menyatakan kategori dan nama gambar. binatang kartun binatang binatang1.jpeg binatang binatang2.jpeg binatang binatang3.jpeg binatang binatang4.jpeg binatang binatang5.jpeg binatang binatang6.jpeg binatang binatang7.jpeg binatang binatang8.jpeg binatang binatang9.jpeg binatang binatang10.jpeg kartun kartu1.jpeg kartun kartu2.jpeg kartun kartu3.jpeg kartun kartu4.jpeg kartun kartu5.jpeg kartun kartu6.jpeg kartun kartu7.jpeg kartun kartu8.jpeg kartun kartu9.jpeg kartun kartu10.jpeg Terdapat 2 kategori yaitu binatang dan kartun Binatang binatang1.jpeg menyatakan kategori binatang dengan nama gambar : binatang1.jpeg Objek-objek gambar disimpan pada objek Vector Baris pertama pada file teks menyatakan kategori, disimpan pada Vector kategori. Vector kategori 5

0 new String(binatang) 1 new String(kartun) Setiap baris disimpan sebagai objek Gambar, selanjutnya objek-objek tersebut disimpan pada Vector datagambar. Buatlah class Gambar seperti di bawah ini : public class Gambar { private String kategori ; private String namagambar ; public Gambar(String k, String nm){ this.kategori = k ; this.namagambar = nm ; public void setkategori(string kategori){ this.kategori = kategori ; public void setnamagambar(string nm){ this.namagambar = nm ; public String getkategori(){ return kategori ; public String getnamagambar(){ return namagambar ; public String tostring(){ return kategori + " " + namagambar ; Sehingga isi dari Vector datagambar sbb : 0 new Gambar(binatang, binatang1.jpeg); 1 new Gambar(binatang, binatang2.jpeg); 2 new Gambar(binatang, binatang3.jpeg); 3 new Gambar(binatang, binatang4.jpeg); 4 new Gambar(binatang, binatang5.jpeg); 5 new Gambar(binatang, binatang6.jpeg); 6 new Gambar(binatang, binatang7.jpeg); 7 new Gambar(binatang, binatang8.jpeg); 8 new Gambar(binatang, binatang9.jpeg); 9 new Gambar(binatang, binatang10.jpeg); 10 new Gambar(kartun,kartun1.jpeg); 11 new Gambar(kartun,kartun2.jpeg); 12 new Gambar(kartun,kartun3.jpeg); 13 new Gambar(kartun,kartun4.jpeg); 14 new Gambar(kartun,kartun5.jpeg); 15 new Gambar(kartun,kartun6.jpeg); 6

16 new Gambar(kartun,kartun7.jpeg); 17 new Gambar(kartun,kartun8.jpeg); 18 new Gambar(kartun,kartun9.jpeg); 19 new Gambar(kartun,kartun10.jpeg); Lakukan random untuk menampilkan 6 gambar berdasarkan kategori, selanjutkan pilih 1 bagian sebagai gambar acuan Pertama kali tentukan kategori dari data gambar yang akan ditampilkan. Kategori berupa objek Gambar, misal kategorimain = new Gambar("binatang","binatang1.jpeg"); Sebagai bantuan, terdapat 3 fungsi yaitu : private int[] searchgambar(){ : untuk mendapatkan 6 data gambar yang akan ditampilkan untuk dipilih oleh user. Yang disimpan adalah no indeks dari data tsb. private int gambaracuan(int temp[]){ : dari 6 data gambar yang diperoleh dari fungsi searchgambar(), diambil satu data gambaracuan. private void TampilGambar(int temp[]){ : fungsi ini bertugas untuk menampilkan ke objek Jlabel. private int[] searchgambar(){ int awal = datagambar.indexof(kategorimain); int akhir = datagambar.lastindexof(kategorimain);... Fungsi indexof untuk mendapatkan index yang pertama kali pada objek Vector datagambar yang sesuai dengan objek kategorimain. Fungsi lastindexof untuk mendapatkan index yang terakhir kali yang sesuai dengan objek kategorimain. Supaya fungsi ini bisa digunakan maka lakukan overriding pada fungsi equals() pada class Gambar. Fungsi equals() ini, menghasilkan nilai true jika dua objek dari class Gambar mempunyai kategori yang sama, bernilai false jika dua objek dari class Gambar tidak mempunyai kategori yang sama. public class Gambar { private String kategori ; private String namagambar ; public boolean equals(object o){ // isi fungsi Jika objek kategorimain mempunyai kategori binatang maka variabel awal = 0, akhir = 9. Jika objek kategorimain mempunyai kategori kartun maka awal = 10, akhir = 19. Sehingga 6 data gambar yang disimpan adalah indeks diantara awal akhir. Dibawah ini contoh penggunaan method indexof() dan lastindexof () tanpa melakukan overriding terhadap method equals(boolean) (isi dari fungsi equals menyatakan dua buah objek dikatakan sama jika mempunyai kategori yang sama), hasil dari fungsi indexof() 7

adalah -1 yang artinya tidak menemukan objek yang sesuai dengan objek dengan kriteria yang dimaksud. Hasil sama seperti lastindexof () yaitu -1. import java.util.vector; public class Test { public static void main(string args[]){ Vector v = new Vector(); Gambar gambaracuan = new Gambar("kartun","k2.jpeg"); v.add(new Gambar("binatang","b1.jpeg")); v.add(new Gambar("binatang","b2.jpeg")); v.add(new Gambar("binatang","b3.jpeg")); v.add(new Gambar("binatang","b4.jpeg")); v.add(new Gambar("kartun","k1.jpeg")); v.add(new Gambar("kartun","k2.jpeg")); v.add(new Gambar("kartun","k3.jpeg")); v.add(new Gambar("bunga","bg1.jpeg")); v.add(new Gambar("bunga","bg2.jpeg")); v.add(new Gambar("bunga","bg3.jpeg")); v.add(new Gambar("bunga","bg4.jpeg")); v.add(new Gambar("bunga","bg5.jpeg")); "\n"); int index1 = v.indexof(gambaracuan); System.out.print("index dari fungsi indexof() : " + index1 + int index2 = v.lastindexof(gambaracuan); System.out.print("index dari fungsi lastindexof() : " + index2); Selanjutnya lakukan overriding terhadap fungsi equals(). Hasilnya akan tampak sebagai berikut: 8

private void TampilGambar(int temp[]){ : fungsi ini bertugas untuk menampilkan ke objek Jlabel. Caranya : (s2 berupa string) jlabel1.seticon(new javax.swing.imageicon(getclass().getresource(s2))); User melakukan pemilihan Jika kursor user mengenai sebuah label maka background dari label menjadi berwarna biru (default berwarna pink warna sesuai selera user). Untuk melakukan hal tersebut kita menggunakan event MouseListener. Klik kanan pada label pilih Event pilih Mouse pilih MouseEntered(), isi dengan program di bawah ini, lakukan hal yang sama untuk fungsi MouseEntered dengan warna yang berbeda. private void gb5mouseentered(java.awt.event.mouseevent evt) { gb5.setbackground(new Color(32,255,255)); Gambar 6 9

Tampilkan suara (benar atau salah) Gambar 7 Pada praktikum ini mahasiswa membuat aplikasi tentang Match Game. User harus mencocokkan gambar acuan dengan 6 gambar yang ada dan harus memilih mana yang sama. Jika user benar dalam melakukan pencocokan maka tampilkan suara Kamu Hebat (suara sesuai keinginan), jika user salah maka tampilkan suara Masih Salah Coba Lagi (suara sesuai keinginan). Untuk menampilkan suara ini kita menggunakan Java Media Framework. JMF yang menawarkan beberapa mekanisme untuk memutar media. Mekanisme yang sederhana adalah dengan menggunakan obyek yang mengimplementasikan interface Player yang dideklarasikan dalam package javax.media. Paket javax.media dan subpackage berisi kelas-kelas yang mendukung Java Media Framework. Untuk memutar media clip, Anda harus terlebih dahulu membuat sebuah URL yang mengacu ke obyek tersebut. Selanjutnya URL tersebut sebagai parameter dari method static createrealizedplayer dari class Manager untuk mendapatkan Player untuk media clip. Class Manager mempunyai method-method untuk mengakses system resource untuk memainkan dan memanipulasi media. Buatlah fungsi seperti di bawah ini dan panggilah fungsi dengan cara : play("backsound.wav"); public void play(string namafile){ try{ File f = new File(namafile); // create a player to play the media specified in the URL 10

Player mediaplayer = Manager.createRealizedPlayer(f.toURL()); mediaplayer.start(); // start playing the media clip // end try catch ( NoPlayerException noplayerexception ) { System.err.println( "No media player found" ); // end catch catch ( CannotRealizeException cannotrealizeexception ) { System.err.println( "Could not realize media player" ); // end catch catch ( IOException ioexception ) { System.err.println( "Error reading from the source" ); // end catch Persiapan Praktikum : Persiapan 1 Buatlah aplikasi dimana terdapat form utama yang terdiri dari text area dan sebuah button(gambar 19), beri nama classnya dengan Frame1.java. Jika button ok ditekan maka akan muncul form seperti gambar 20 yang terdiri sebuah lable, sebuah textfield dan sebuah button (beri nama classnya Dialog1.java). Kita masukkan string dan tekan button ok (gambar 20), hasil akan tampak pada gambar 21, ulangi lagi dengan langkah yang sama maka hasil akan tampak pada gambar 21. Gambar 19 11

Gambar 20 Gambar 21 Gambar 22 12

Gambar 23 Untuk membuat form seperti gambar 20, buatlah file baru pilih kategori: Swing GUI Forms dengan type file JDialog Form (gambar 24). Class yang dibuat merupakan class yang extends class JDialog. Masukkan sebuah lable, sebuah textfield dan sebuah button, form seperti gambar 20. Gambar 24 Pada class Dialog1, buat variabel f1 dari class Frame1, jangan lupa deklarasikan private (memenuhi aturan enkapsulasi). Pada konstruktur class Dialog1 terdapat 2 parameter yaitu Frame dan boolean, tambahkan : f1 = (Frame1) parent; Kemudian pada saat button OK ditekan pada form Dialog1, isi dari text field akan ditulis ke text area pada form Frame1. Buatlah fungsi dengan parameter String pada form Frame1 untuk menuliskan ke textarea. Sehingga fungsi ini dapat dipanggil dari form Dialog1 (deklarasikan public) cara memanggil f1.isitext(tf.gettext());untuk memanggil class Dialog1 new Dialog1(this,true).setVisible(true); //Form Utama public class Frame1 extends javax.swing.jframe { /** Creates new form Frame1 */ public Frame1() { initcomponents(); public void isitext(string str){ ta.append("\n"+str); 13

private void bokactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: new Dialog1(this,true).setVisible(true); public static void main(string args[]) { java.awt.eventqueue.invokelater(new Runnable() { public void run() { new Frame1().setVisible(true); ); public class Dialog1 extends javax.swing.jdialog { private Frame1 f1 ; /** Creates new form Dialog1 */ public Dialog1(java.awt.Frame parent, boolean modal) { super(parent, modal); f1 = (Frame1) parent ; initcomponents(); private void bokactionperformed(java.awt.event.actionevent evt) { // TODO add your handling code here: f1.isitext(tf.gettext()); /** * @param args the command line arguments */ public static void main(string args[]) { java.awt.eventqueue.invokelater(new Runnable() { public void run() { Dialog1 dialog = new Dialog1(new javax.swing.jframe(), true); dialog.addwindowlistener(new java.awt.event.windowadapter() { public void windowclosing(java.awt.event.windowevent e) { System.exit(0); ); dialog.setvisible(true); ); Persiapan 2 Java Media Framework JMF API merupakan arsitektur yang menggabungkan protokol dan pemrograman interface untuk merekam, mentransmisi, dan playback media. Pada JMF versi 2.1.1, Sun s sebagai perusahaan pengembang bahasa pemrograman java berinisiatif untuk membawa pemrosesan time-base media kedalam bahasa pemrograman Java. Time-base media adalah mengubah data yang diterima dengan berdasarkan waktu, termasuk 14

didalamnya seperti audio dan video klip, MIDI, dan animasi[1,2, 3,4]. Beberapa dari fungsi JMF, yaitu : a. Dapat digunakan untuk berbagai file multimedia pada Java Applet atau aplikasi. Format yang mendukung antara lain AU, AVI, MIDI, MPEG, QUICKTIME dan WAV. b. Play media streaming dari internet c. Capture audio dan video dengan mikropon dan kamera video kemudian menyimpan data tersebut kedalam format yang mendukungnya. d. Mengirimkan audio dan video secara realtime ke dalam jaringan internet atau intranet. e. Dapat digunakan untuk pemrograman penyiaran radio atau televisi secara langsung. Dasar Pemrograman JMF Dikembangkan atas kerjasama Sun Microsystem dan IBM Haifa pada tahun 1998 dengan keunggulan dapat digunakan sebagai Media capturedan pemrograman untuk media playback. JMF 2.1.1 API merupakan rilis terbaru dari Sun s. Interface dan Class untuk koneksi high-level API dalam pemrograman JMF adalah sebagai berikut: a. DataSource DataSource berfungsi untuk mengatur transfer dari media. Pada JMF DataSource diidentifikasi dengan MediaLocator. b. Capture Device Capture device merupakan perangkat keras yang digunakan untuk memperoleh data, seperti mikropon, kamera biasa, atau video kamera. Capture media data akan menjadi input untuk Player agar dapat ditampilkan. c. Player Player memperoleh input stream data audio dan video kemudian mengirimnya ke speaker atau layar. Player merupakan interface yang akan mempersiapkan suatu DataSource untuk dipresentasikan. Terdapat enam tahapan pada JMF Player: a. Unrealized : pada tahapan ini Player belum mengenali media yang akan digunakan. b. Realizing : pada tahapan ini Player akan menentukan materi atau media yang akan dipakai. c. Realized : pada tahapan ini Player mengetahui materi atau media yang digunakan dan memiliki informasi tentang tipe media yang akan ditampilkan. d. Prefetching : Player akan mempersiapkan untuk menampilkan media. Selama tahapan ini, Player akan preload media data untuk memperoleh resource yang digunakan dan apa saja yang dibutuhkan untuk mulai memainkan media data. e. Prefetched : Player telah selesai prefetching media data, dan siap untuk start Player. f. Started : Langkah ini merupakan hasil ketika memanggil start(). Player bisa untuk menampilkan media data sekarang. 15

d. Processor Processor merupakan jenis dari Player. Dalam JMF API, Processor adalah interface dengan extends Player. Seperti halnya Player, Processor juga mendukung untuk kontrol menampilkan media data. Disamping enam langkah Player seperti yang dibahas sebelumnya, Processor memasukkan dua langkah sebelum proses ke Realizing tetapi setelah Unrealized. a. Configuring : Processor masuk ke tahapan configuring dari Unrealized ketika metode configure () dipanggil. Processor berada di Configuring setelah terhubung ke DataSource. b. Configured : setelah Configuring, Processor pindah ke Configured ketika Processor telah terhubung ke DataSource, dan data telah memiliki format yang telah ditentukan. e. DataSink DataSink adalah interface dasar untuk objek yang membaca isi media yang dikirimkan oleh suatu DataSource dan mengirimkan media tersebut ke beberapa tujuan f. Format Format merupakan class yang akan menempatkan suatu objek ke suatu format media yang tepat. g. Manager Manager adalah interface yang berfungsi sebagai penghubung objek, mengintegrasikan implementasi interface yang digunakan dengan kelas-kelas yang ada. Misalnya dengan Managerdapat dibuat Player dari DataSource. Sumber : Agung Budi Prasetijo, Aghus Sofwan, Hery Oktafiandi, APLIKASI WEBCAM DENGAN JAVA MEDIA FRAMEWORK 16