Francisco Silvano

dokumen-dokumen yang mirip
a b c d e f g h Gambar 1. Konfigurasi akhir.

Pengenalan JavaScript

MENGENAL JAVA APPLET. Wiranti Sri Utami. Abstrak. Pendahuluan.

Applet (1) Oleh: Kholid Fathoni

Grafis & Applet. Viska Mutiawani, M.Sc

Modul Praktikum 8 Pemograman Berorientasi Objek

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Fajar Yusran Zebua DASAR ANIMASI

LAPORAN RESMI PRAKTIKUM II WEB DESAIN PENGENALAN JAVASCRIPT

LAPORAN RESMI. PRAKTIKUM TEKNOLOGI WEB Pengenalan JavaScript

KASUS INHERITANCE. (Window, Multithreading dan Applet)

Pemrograman dengan Java

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Pada module ini, Anda akan mempelajari tentang membuat applet menggunakan AWT.

Pengenalan Bahasa Pemrograman Java

Program Java Sesi 1. Arief Susanto

M.Octaviano Pratama

Tutorial Web Service JAX-WS Konverter Suhu dengan NetBeans

Mengatur Rata Kanan, Rata Tengah Pada jtable NetBeans

Yonatan Prasdikatama

STMIK AMIKOM YOGYAKARTA YOGYAKARTA 2008 WIDHIARTA, S. KOM

BAHASA PEMROGRAMAN JAVA

Puja Pramudya

Nilai Properti Constrains pada TextField

Integrasi Animasi Dengan Java

PEMAHAMAN DASAR DASAR JAVA

Flash Case on Masking Animation

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

PENGENALAN BAHASA PEMROGRAMAN JAVA

Anonymous Inner Class

Ari Angga Wijaya

Moh Sulhan

Bondan Muliawan Mengenal ASP

HTML (HyperText Markup Language)

Berikut merupakan salah satu contoh dari pesan SOAP (SOAP Message):

Gambar 1. Deklarasi Interface MouseListener

MEMBUAT JAM ANALOG. Wiranti Sri Utami. Abstrak. Pendahuluan.

1.Tujuan. 2. Latar Belakang

A. TUJUAN PEMBELAJARAN

Hello World. Chocolove Mic

Denny Yerianto

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

MODUL I Pengenalan Bahasa Pemrograman Java

Otomasi Shell Script Lanjut

Bab 1. HTML (Hypertext Markup Language) A. World Wide Web

JavaApplet. Sumber : Buku Dasar Pemrograman Java TM 2 karangan Abdul Kadir & Dasar-dasar Pemrograman Java di

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

Ari Angga Wijaya

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

(artikel Pengantar ke PHP, Bpk Marsani Asfi)

Menambah Lokasi Jaringan FTP pada My Computer

PEMROGRAMAN WEB 08 JavaScript Dasar

Zaid Romegar Mair Lisensi Dokumen: Gambaran umum : Break statement

Muhammad Adri. Pendahuluan. Instalasi Xampp

DateField adalah objek yang dapat digunakan untuk menampilkan atau mengedit objek yang bertipe Date.

GUI (Grapichal User Interface)

Pengenalan Java. Widio Riyanto, S. Kom/ JavaApplet 1

Membuat Chart Dengan JSChart

Sofiyan Arif Kurniawan

Berbagi Data File Folder lewat Jaringan LAN

Triswansyah Yuliano

BAB I PENDAHULUAN. Listing 1.1 menunjukkan program GUI Java sederhana menggunakan AWT. import java.awt.*; import java.awt.event.*;

GUI Event Handling. 5. Mendiskusikan keuntungan-keuntungan dari menggunakan inner dan anonymous class

Pengenalan Script. Definisi HTML

PAKET (PACKAGE) 20 Januari 2012

Pemrograman Fery Updi,M.Kom

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

Choirul Amri. I. Pendahuluan.

Standar action cara penulisannya mirip dengan aturan penulisan pada XML. Sintak dari Standard Action ini adalah :

Tutorial Editor Pico. Askari Azikin

Eko Purwanto WEBMEDIA Training Center Medan

Pembuatan Website Sederhana Menggunakan HTML (Hyper Text Markup Language)

Keterampilan Komputer. 8. Pengenalan HTML

Mengenal JavaScript dan Struktur JavaScript 1

Insani Ning Arum

Badiyanto, S.Kom., M.Kom. PBO java

DASAR PEMOGRAMAN JAVA

Flash Case on Text Animation

Sofiyan Arif Kurniawan

Network Programming 2010 Jaringan & Aplikasinya. Husni Husni.trunojoyo.ac.id

Berikut di bawah ini adalah method yang digunakan untuk mengambil parameter beserta contohnya.

PEMROGRAMAN WEB 1 JavaScript Rio Andriyat Krisdiawan, M.Kom

Indowebster media penyimpanan berbasis Cloud Computing

Percabangan dan Perulangan

Versi Javascript Browser. Tabel daftar navigator dan versi dari Javascript :

GUI & Event Handling. Viska Mutiawani, M.Sc

Endi Dwi Kristianto

3 Cara Belajar HTML, PHP dan MySQL. Nama Penulis Lisensi Dokumen:

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Krisna D. Octovhiana. 1.1 Mengenal Struktur Kontrol.

PHP Programing. M.M. Ubaidillah. Dasar-dasar PHP. merupakan bahasa pemrograman berbasis web yang memiliki kemampuan untuk memproses data dinamis.

Moh Sulhan

Webtop, Memanfaatkan Sistem Operasi Berbasis Web

Muhammad Adri. Pendahuluan. Lisensi Dokumen:

Moh Sulhan I. PENDAHULUAN. Lisensi Dokumen:

Muhidin

M.Octaviano Pratama

Langkah 1. Asep Tatang S.

IF PEMROGRAMAN LANJUT EVENT. Oleh : Andri Heryandi, M.T.

Materi. I. Pengenalan HTML II. Basic Tag HTML III. Table IV. Image

Transkripsi:

Permainaan TicTacToe Menggunakan Java Applet Francisco Silvano franslpster@gmail.com http://franzeast.com Lisensi Dokumen: 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 TEORI Java Applet adalah sebuah class yang dapat diaktifkan pada Web Browser seperti pada Netscape Communicator atau Internet Explorer. Java Applet di enkapsulasi sebagai bagian dari HTML (HyperText Markup Language). Perbedaan Java Applet dan Java Application 1. Application berjalan menggunakan Java Interpreter atau command line prompt. Sedang Applet berjalan pada Browser atau pada halaman WEB menggunakan HTML. 2. Java Applet adalah sebuah class yang dapat diaktifkan pada Web Browser seperti Netscape Communicator atau Internet explorer. Java Applet dienkapsulasi sebagai bagian dari HTML. 3. Java Applet mempunyai siklus hidup sedang Java Application tidak mempunyai siklus hidup. <HTML> dan </HTML> adalah pasangan kunci kata untuk memulai kode HTML. <APPLET> dan </APPLET> adalah pasangan kunci kata yang digunakan untuk mengaktifkan Applet dan Parameter untuk applet tersebut. WIDTH dan HEIGHT menentukan jumlah pixel yang dibutuhkan untuk menggambar atau menampilkan applet. File html ini disimpan dengan nama file yang berekstensi.html dan kemudian dapat dipanggil melalui URL dari web browser atau menggunakan aplikasi appletviewer. 1

Script Program HTML : <html> <head> <title>game Tic Tac Toe</title> </head> <body> <h4>oleh :</h4> <h4> Francisco.S.do.R.Ximenes</h4> <h1>game Tic Tac Toe</h1> <hr> <applet code=tictactoe.class width=120 height=120> </applet> <hr> </body> </html> Script Program JAVA : import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.awt.image.*; import java.net.*; import java.applet.*; public class TicTacToe extends Applet implements MouseListener { int white; int black; final static int moves[] = { 4, 0, 2, 6, 8, 1, 3, 5, 7; static boolean won[] = new boolean[1 << 9]; static final int DONE = (1<<9) - 1; static final int OK = 0; static final int WIN = 1; static final int LOSE = 2; static final int STALEMATE = 3; boolean first = true; Image notimage; Image crossimage; public void init() { notimage = getimage(getcodebase(), "images/not.gif"); crossimage = getimage(getcodebase(), "images/cross.gif"); addmouselistener(this); 2

public void destroy() { removemouselistener(this); /** * Paint it. */ public void paint(graphics g) { Dimension d = getsize(); g.setcolor(color.black); int xoff = d.width / 3; int yoff = d.height / 3; g.drawline(xoff, 0, xoff, d.height); g.drawline(2 * xoff, 0, 2 * xoff, d.height); g.drawline(0, yoff, d.width, yoff); g.drawline(0, 2 * yoff, d.width, 2 * yoff); int i = 0; for (int r = 0; r < 3; r++) { for (int c = 0; c < 3; c++, i++) { if ( (white & (1 << i))!= 0) { g.drawimage(notimage, c * xoff + 1, r * yoff + 1, this); else if ( (black & (1 << i))!= 0) { g.drawimage(crossimage, c * xoff + 1, r * yoff + 1, this); public void mousereleased(mouseevent e) { int x = e.getx(); int y = e.gety(); switch (status()) { case WIN: case LOSE: case STALEMATE: play(getcodebase(), "audio/return.au"); white = black = 0; if (first) { white = 1 << (int) (Math.random() * 9); first =!first; repaint(); return; // Figure out the row/column 3

Dimension d = getsize(); int c = (x * 3) / d.width; int r = (y * 3) / d.height; if (yourmove(c + r * 3)) { repaint(); switch (status()) { case WIN: play(getcodebase(), "audio/yahoo1.au"); case LOSE: play(getcodebase(), "audio/yahoo2.au"); case STALEMATE: default: if (mymove()) { repaint(); switch (status()) { case WIN: play(getcodebase(), "audio/yahoo1.au"); case LOSE: play(getcodebase(), "audio/yahoo2.au"); case STALEMATE: default: play(getcodebase(), "audio/ding.au"); else { play(getcodebase(), "audio/beep.au"); else { play(getcodebase(), "audio/beep.au"); public void mousepressed(mouseevent e) { public void mouseclicked(mouseevent e) { public void mouseentered(mouseevent e) { 4

public void mouseexited(mouseevent e) { boolean mymove() { if ( (black white) == DONE) { return false; int best = bestmove(white, black); white = 1 << best; return true; int bestmove(int white, int black) { int bestmove = -1; loop: for (int i = 0; i < 9; i++) { int mw = moves[i]; if ( ( (white & (1 << mw)) == 0) && ( (black & (1 << mw)) == 0)) { int pw = white (1 << mw); if (won[pw]) { for (int mb = 0; mb < 9; mb++) { if ( ( (pw & (1 << mb)) == 0) && ( (black & (1 << mb)) == 0)) { int pb = black (1 << mb); if (won[pb]) { continue loop; if (bestmove == -1) { bestmove = mw; if (bestmove!= -1) { return bestmove; for (int i = 0; i < 9; i++) { int mw = moves[i]; if ( ( (white & (1 << mw)) == 0) && ( (black & (1 << mw)) == 0)) { return mw; 5

return -1; /** * User move. * @return true if legal */ boolean yourmove(int m) { if ( (m < 0) (m > 8)) { return false; if ( ( (black white) & (1 << m))!= 0) { return false; black = 1 << m; return true; static void iswon(int pos) { for (int i = 0; i < DONE; i++) { if ( (i & pos) == pos) { won[i] = true; static { iswon( (1 << 0) (1 << 1) (1 << 2)); iswon( (1 << 3) (1 << 4) (1 << 5)); iswon( (1 << 6) (1 << 7) (1 << 8)); iswon( (1 << 0) (1 << 3) (1 << 6)); iswon( (1 << 1) (1 << 4) (1 << 7)); iswon( (1 << 2) (1 << 5) (1 << 8)); iswon( (1 << 0) (1 << 4) (1 << 8)); iswon( (1 << 2) (1 << 4) (1 << 6)); int status() { if (won[white]) { return WIN; if (won[black]) { return LOSE; if ( (black white) == DONE) { return STALEMATE; return OK; 6

Referensi - Applet(1) - Bab 1 Pengenalan Kecerdasan Buatan - Bab 2 Representasi Pengetahuan - Bab 3 Reasoning, Semantic Network, Frame - Bab 4 Algoritma Pencarian - Bab 5 Natural Language Processing - Bab 7 Algoritma Genetika - Bab 8 Jaringan Syaraf Tiruan Biografi Penulis Francisco Silvano,Saat ini tercatat Aktif sebagai mahasiswa Jenjang Sarjana Program Studi Teknik Informatika, Jurusan Teknik Informatika Fakultas Teknologi Industri,Di Salah Satu PTS Yogyakarta.Memiliki ketertarikan di bidang image processing, e-learning, smart client development, information system dan Networking. Prestasi Saat ini Belum memiliki prestasi apa apa. Menulis, Sharing pengetahuan IPTEK adalah hobbi saya saat ini Untuk saling sharing saya memiliki web http://franzeast.com dan silahkan bagi teman teman yang ingin sharing. 7