Modul Praktikum 8 Pemograman Berorientasi Objek 1. Judul : Java Applet 2. Tujuan Percobaan : Diakhir praktikum, mahasiswa diharapkan mampu : Mengetahui dan mengimlementasikan siklus yang terdapat pada applet Menggunakan method-method pada applet Memahami dan mengimlementasikan html tag pada applet Membuat applet sederhana. 3. Teori Singkat Sebuah applet adalah tipe yang spesial dari program java yang dieksekusi melalui internet. Secara khusus berjalan pada suatu web browser seperti Netscape Navigator, Mozilla, atau Microsoft Internet Explorer. Bagaimanapun, jika dibandingkan dengan aplikasi Java yang normal, tidak diijinkan mengakses applet pada komputer yang mana dijalankan untuk alasan keamanan. Applet ini cukup terbatas jika dibandingkan dengan aplikasi java. Class Applet adalah sebuah subclass dari class Panel yang didefinisikan dalam A WT. Applet adalah aplikasi java yang spesial. Mereka tidak dieksekusi menggunakan perintah java melainkan applet berjalan pada web browser atau menggunakan applet viewer. Untuk membuka applet melalui sebuah web browser, secara sederhana buka dokumen HTML dimana applet terintegrasi kedalamnya enggunakan applet HTML tag. Cara lain untuk menjalankan sebuah applet adalah melalui perintah appletviewer. Untuk memudahkan ikuti syntax berikut ini: appletviewer <java filename> Ketika membuat sebuah applet, dibutuhkan suatu extend class Applet. Sebagaimana yang disebutkan sebelumnya, classnya dapat ditemukan Modul Praktikum Pemrograman Berorientasi Objek D3 MI 71
dalam java.applet package. Oleh karena itu, mengimport the java.applet package merupakan suatu keharusan. Juga, telah disebutkan sebelumnya bahwa class Applet adalah subclass dari class Panel. Hal ini mengimplikasikan bahwa beberapa methods dari class applet ditemukan dalam class Panel.Untuk mengakses methods atau fields dalam class Panel atau class-class induk, diperlukan suatu aksi untuk import package java.awt. 3.1 Method-Method Applet Berikut ini adalah beberapa method dalam applet: a. Siklus Applet (The Applet Life Cycle) Bahkan untuk memulai eksekusi pada main method seperti dalam aplikasi khas Java, browser atau applet viewer berhubungan dengan applet melalui method-method berikut: 1. init() init adalah method yang dipanggil pertama kali. Yang sebenarnya berisi permintaan pertama ketika applet di load. 2. start() Setelah meminta method init, mulai dengan method yang dipangil selanjutnya. method ini meminta dokumen HTML yang ditampilkan applet setiap waktu. Eksekusi ringkasan dengan method ini dilakukan ketika applet ditampilkan kembali. 3. stop() Ketika web browser meninggalkan dokumen HTML applet,method ini dipanggil untuk menginformasikan applet bahwa dia harus menghentikan proses eksekusinya. 4. destroy() method ini dipanggil ketika applet perlu dihapus dari kelangkapan memory. Method stop selalu dipanggil sebelum method ini diminta untuk dijalankan. b. Method paint Method lain yang tidak kalah penting adalah method paint, yang mana class Applet menurunkannya dari class induknya yaitu class Component, Yang meminta output applet setiap waktu yang diperlukan untuk dapat digambar kembali. Sebagai contoh dari setiap Modul Praktikum Pemrograman Berorientasi Objek D3 MI 72
instance adalah ketika sebuah applet tersembunyi oleh window lain dapat dibuat terlihat lagi. Method ini selalu menolak ketika anda ingin membuat bagaimana applet yang Anda buat harus terlihat seperti yag anda inginkan. c. Method showstatus Applet memiliki window status, dimana memberi informasi kepada Anda tentang apa yang sebenarnya dilakukan applet. Jika anda ingin memberi output ke window status, secara sederhana memanggil method showstatus. 3.1 Method-Method Applet Bagaimana applet HTML tags digunakan dalam dokumen HTML atau source code java. Berikut ini adalah applet HTML tags untuk menjalankan applet melalui browser. <APPLET [CODEBASE = codebaseurl] CODE = appletfile [ATL = alternatetext] [NAME = appletinstancename] WIDTH = widthinpixels HEIGHT = heightinpixels [ALIGN = alignment] [VSPACE = vspaceinpixels] [HSPACE = hspaceinpixels] > [<PARAM NAME = parametername1 VALUE = parametervalue1>] [<PARAM NAME = parametername2 VALUE = parametervalue2>]... [<PARAM NAME = parameternamen VALUE = parametervaluen>] [HTML that will be dsiplayed in the absence of Java] </APPLET> Kata kunci Applet HTML Tag CODEBASE Directory dimana class applet diletakkan. Untuk dokumen HTML, directory URL sesuai dengan setting awalnya/defaultnya. CODE Modul Praktikum Pemrograman Berorientasi Objek D3 MI 73
Nama file yang berisi kode applet applet. Dengan atau tanpa nama ekstensi.java atau.class. ALT Text ditampilkan jika browser mengerti applet tags tapi applet tidak dapat dieksekusi secara langsung. Mungkin terjadi jika Javanya disabled. NAME Nama dari applet. Digunakan untuk memungkinkan applets yang lain untuk berkomunikasi dengan applet ini dengan menunjukkan suatu applet berdasarkan namanya. WIDTH, HEIGHT Width dan height dari window applet. Dinyatakan dalam pixel. ALIGN Alignment atau pengaturan posisi dari applet. satu diantara "left", "right", "top", "bottom", "middle", "baseline", "texttop", "absmiddle", atau "absbottom". Peletakan posisi secara Default tergantung pada lingkungan. "top" posisi atas dari applet diratakan dengan item tertinggi dalam baris yang ada. "bottom", baseline posisi bawah dari applet diratakan dengan bawah dari content lain dalam baris yang sama. "middle" tengah dari applet diratakan dengan bawah dari content yang lain dalam baris yang sama. "texttop" posisi atas dari applet diratakan dengan posisi atas dari applet diratakan dengan posisi tertinggi dari posisi atas pada baris yang sama. "absmiddle" tengah dari applet diratakan dengan vertical middle dari content lain pada baris yang sama. "absbottom" posisi bawah dari applet diratakan dengan posisi bawah dari content lain dalam baris yang sama. VSPACE, HSPACE Spasi diatas dan dibawah (VSPACE) dan pada sisi (HSPACE) dari applet.. PARAM NAME, VALUE Modul Praktikum Pemrograman Berorientasi Objek D3 MI 74
Untuk mengelompokkan parameter yang dapat menampilkan applet; applet dapat meminta method getparameter(string paramname). 4. Alat dan Bahan PC dengan sistem operasi Windows dan Java compiler. 5. Prosedur Percobaan 5.1 Applet sederhana Source-code Java dibawah ini mendemonstrasikan applet sederhana yang akan menampilkan String" Hello World! ". Ketiklah dan coba fahami hasilnya. 1. import java.awt.*; 2. import java.applet.*; 3. /* masukkan bagian ini dalam kode html 4. <applet code="appletdemo" width=300 height=100> 5. </applet> 6. */ 7. public class AppletDemo extends Applet { 8. public void paint(graphics g) { 9. g.drawstring("hello world!", 80, 25); 10. } 11. } 5.2 Life cycle applet Source-code Java dibawah ini mendemonstrasikan penggunaan life cycle applet. Ketiklah dan coba fahami hasilnya 1. import java.applet.*; 2. import java.awt.*; 3. /* 4. <applet code="lifecycledemo" width=300 height=100> 5. </applet> 6. */ 7. class LifeCycleDemo extends Applet { 8. String msg =""; 9. public void init() { 10. msg += "initializing... "; 11. repaint(); 12. } Modul Praktikum Pemrograman Berorientasi Objek D3 MI 75
13. public void start() { 14. msg += "starting... "; 15. repaint(); 16. } 17. public void stop() { 18. msg += "stopping... "; 19. repaint(); 20. } 21. public void destroy() { 22. msg += "preparing for unloading..."; 23. repaint(); 24. } 25. public void paint(graphics g) { 26. g.drawstring(msg, 15, 15); 27. } 28. } 5.3 Java Applet Source-code Java dibawah ini mendemonstrasikan applet garis. Ketiklah dan coba fahami hasilnya. 1. import java. awt. *; 2. import javax.swing.*; 3. public class manylines extends JFrame{ 4. public manylines(){ 5. Container f = getcontentpane(); 6. f.add(new DrawPanel() ); 7. } 8. public static void main(string [] args){ 9. manylines gd = new manylines(); 10. gd.setsize(600,500); 11. gd.setdefaultcloseoperation(jframe.exit_on_close); 12. gd.setvisible(true); 13. } 14. } 15. class DrawPanel extends JPanel{ 21. int x,y; 16. public void paintcomponent(graphics g){ 17. super.paintcomponent(g); 18. for (int n=0;n<1000;n++){ 19. Color col = new Color((int) (Math.random()*255), (int)(math.random()*255),(int)(math.random()*255)); 20. g.setcolor(col); 21. x= (int) (Math.random()*400); Modul Praktikum Pemrograman Berorientasi Objek D3 MI 76
22. y = (int) (Math.random()*400); 23. g.drawline(200,200,x,y); 24. } 25. Repaint(); 26. } 27. } 6. Analisis Hasil Percobaan Tulislahlah masing-masing output yang dihasilkan dari semua percobaan di atas. Catat semua error yang muncul selama percobaan dan coba analisa mengapa error tersebut muncul dan bagaimana mengatasinya. Bandingkan output yang anda peroleh dengan praktikan lainnya. 7. Tugas Modifikasi GUI dari praktikum 7 tentang lampu lalu lintas menjadi seperti GUI pada gambar dibawah ini. Selanjutnya buatlah animasi dengan ketentuan sebagai berikut: Jika button Tekan tidak diklik maka lampu akan terus berwama hijau. Ketika button Tekan diklik maka setelah 2 detik lampu yang menyala adalah yang berwama kuning (tengah). Lampu berwama kuning hanya bertahan selama 3 detik dan selanjutnya lampu yang berwama merah (atas) akan menyala. Lampu yang berwama merah akan terus menyala selama 10 detik, dan setelah itu lampu kembali berwama hijau. Lampu akan tems berwama hijau sampai button Tekan diklik kembali. Perlu dicatat disini bahwa button Tekan harus redup (tidak aktif) selama proses animasi terjadi. Petunjuk: Gunakan inner class untuk memudahkan pembuatan animasi. Modul Praktikum Pemrograman Berorientasi Objek D3 MI 77
Gambar. GUI untuk lampu penyebrangan Modul Praktikum Pemrograman Berorientasi Objek D3 MI 78