Selasa, 30 November 2010

Membuat Game Berbasis Java

Ada banyak software atau aplikasi untuk membuat game, namun yang kali ini membahas tentang aplikasi Greenfoot, salah satu aplikasi pembuat game sederhana berbasis Java.

Langkah pertama ialah klik new di menu Scenario:


Buat game sesuai sekenario game yang dibuat misalkan petualangan si boy. dalam game ini berskenario terdapat seorang jagoan yang ingin menyelamatkan putri yang ditawan oleh penjahat dan game ini akan berakhir apabila si jagoan berhasil menyelamatkan putri dari tawanan penjahat .

Buat Base awal berupa Lokasi game berlangsung. untuk membuat dunia dimana game ini berlangsung klik new sub class di bagian world lalu akan tampil dialog seperti dibawah ini :

Kemudian beri nama untuk class world ini misal beri nama dengan class " dunia" dan pilih background untuk dunianya . setelah itu beri ukuran dunia ini tempat game berlangsung pada sub class dunia yang telah dibuat.Ukuran dunia nya berbasis sumbu, sumbu X untuk horizontal, dan sumbu Y untuk vertikal.
Misalnya kita buat 'dunia' nya ber ukuran 200X100, dengan ukuran 3 pixel pergambar.
Lalu kita buat codingnya
Pertama klik di subclass 'dunia' nya, lalu klik open editor

Kita buat (200,100,5)
200 adalah lebar 'dunia' nya
100 adalah tinggi 'dunia'nya
5 adalah ukuran piksel pergambarnya.

Setelah memasukkan codingnya, klik compile atau tekan tombol ctrl dengan k. jika sukses tampilannya akan seperti ini


Setelah itu kita buat si musuh, pertama klik ikon actor lalu pilih pilihan new subclass. subclass musuh ini kita beri nama snake. Lalu kita pilih gambar untuk si snake, setelah kita beri nama klik ok.
Sekarang kita buat si snake bergerak dari kiri ke kanan
Berikut ini codingnya:
kita tulis di bawah public void act.

public void act()
{s
etLocation(getX() + 1, getY());
}

keterangan:
getX+1 => berarti dia akan bergerak ke kanan, (+1)
getY() => berarti dia tidak akan bergerak dengan sumbu Y
setelah itu sperti biasa kita compile codingnya, jika compile nya berhasil maka akan tampil pesan seperti ini
Jika sudah selesai dengan semua coding perrgerakan musuhnya, kita akan membuat agar si musuh
bisa menembus batas si 'dunia' yang tadi. Caranya kita akan membuat coding tambahan di si musuh,
misalnya kita buat di si snake yang tadi.
Kita beri tambahan coding:

public void act()
{s
etLocation(getX() + 1, getY());
if(getX()==199)
{
setLocation(0,getY());
}
}
Keterangan:
if(getX()==199)
{
setLocation(0,getY());
}

jadi ketika si snake mencapai titik X 199, (ujung kanan si 'dunia')
si snake ini akan muncul di Lokasi X => 0 (ujung kiri si 'dunia')
Setelah itu, kita buat juga untuk musuh – musuh yang lainnya.
Jika bisa, lanjutkan, namun jika masih adaa error jangan dilanjutkan periksa kembali coding nya.
Setelah kita selesai dengan para musuhnya, sekarang kita akan membuat si 'jagoan'nya.
Caranya sama seperti sebelumnya, klik di actor, lalu pilih new subclass dan beri nama jagoannya,
misalnya boy. Setelah itu pilih gambar untuk si boy. Sekarang kita akan membuat coding untuk
pergerakan si boy, caranya klik subclass boy lalu pilih open editor setelah itu kita buat codingnya
seperti dibawah ini :

if(Greenfoot.isKeyDown("right"))
{
setLocation(getX()+1,getY());
}
Keterangan:

if(Greenfoot.isKeyDown("right")) jika → tombol “panah kanan” ditekan maka ...
setLocation(getX()+1,getY()); → gerakan Actor kearah kanan 1 cell
Setelah itu di test, lalu buat codingnya juga untuk bergerak ke atas, ke bawah, dan ke kiri.
Kalau kita klik tombol Reset, semua actor nya hilang, untuk membuat semua actornya ada kembali
ketika mengklik tombol Reset, kita buka editor di 'dunia' nya
lalu masukkan coding seperti dibawah ini:

addObject(new boy,7,145);

lalu pasang juga musuh – musuh nya di 'dunia' nya.

Nah sekarang kita akan membuat coding untuk matinya si 'boy'
caranya buka editor nya, lalu kita masukkan coding nya seperti ini :
snake a=(snake)getOneIntersectingObject(snake.class);

if(a!=null)
{
setImage("tengkorak.png");
Greenfoot.playSound("kalah.wav");
getWorld().removeObject(a);
Greenfoot.stopSimulation;
return;
}

Keterangan :

snake =nama class musuh
a = nama variabel, boleh bebas, namun untuk mempermudah kita gunakan a
setImage = untuk membuat Greenfoot memunculkan gambar, gambar nya harus ada di folder images
di folder scenarionya, untuk perintah setImage ini dapat menggunakan file dengan format .jpg
atau .png
Greenfoot.playSound = perintah untuk membuat Greenfoot memainkan suara, format file nya
harus .wav dan ada di folder sounds
getWorld().removeObject(a) = membuat variabel a (snake) hilang
stop; = membuat permainan berhenti
buat juga coding yang sama untuk menabrak musuh yang lainnya.

Sekarang kita buat Peluru untuk si 'boy'
caranya buka editor si 'boy'
Tambahkan coding diatas public void act()

private dunia pelor;

public voidaddedToWorld(World dunia)
{
pelor = (dunia) dunia;
}

private = variabel ini hanya dikenali di class yang bersangkutan (Prince)
dunia = nama class World
pelor = nama variabel (terserah tapi tidak boleh sama dengan nama Actor
public void addedToWorld(World dunia) = Tambahkan class pelor ke World
dunia = nama variabel baru
Lalu buat di dalam act (boleh paling atas atau paling bawah, yang akan memicu keluarnya
peluru, yaitu jika ditekan tombol x (jangan lupa cari suara dengan nama fire.wav)

if(Greenfoot.isKeyDown("x"))
{
pelor.addObject(new Peluru1(), getX(),getY());
Greenfoot.playSound("fire.wav");}
if(Greenfoot.isKeyDown("x")) = jika ditekan tombol x
pelor.addObject(new Peluru1(), getX(),getY()); = akan keluar Object baru yaitu peluru
letakan sama dengan Actor/Object aktif (boy) berada.
Greenfoot.playSound("fire.wav"); = munculkan suara fire.wav (file harus ada difolder sounds)
Setelah peluru bisa keluar atur agar pelurunya langsung bergerak, misal dari kanan ke kiri, buat
codingnya di Actor Peluru1
setLocation(getX()+2,getY());
Ternyata ada sedikit masalah yaitu peluru akan meninggalkan sisa dibelakang akhir background
untuk mengatasinya gunakan coding berikut:

if(getX()==199)
{
getWorld().removeObject(this);
return;
}

getWorld().removeObject(this); = hilangkan object ini
return; = kembali keawal (perintah sangat penting dipakai jika perintah diatasnya
menghilangkan object, jangan sampai ada perintah lain yang menggunakan Object yang
telah dihilangkan, jika itu yang terjadi akan muncul pesan error).
Peluru yang baru saja dibuat belum berfungsi apaapa
karena jika Musuh tertembak tidak mati/
hilang buat jika peluru terkena Musuh15
maka Musuh hilang dan peluru hilang dengan bunyi
ah, buat coding di Peluru1 atau Musuh1 contoh disini dibuat di Peluru1, masukan file die1.wav
Setelah semua bisa, bagaimana jika sang girl tertembak ?, buat sang girl mati dan
permainan berakhir. Buat coding di Princess dan isi dengan:

Peluru1 f=(Peluru1)getOneIntersectingObject(Peluru1.class);
if(f!=null)
{
Greenfoot.playSound("die1.wav");
setImage("kalah.png");
getWorld().removeObject(f);
Greenfoot.stopSimulation();
}

Buat coding peluru1 dan jangan lupa ganti arah geraknya jadi kekiri
..............
//peluru bergerak dari kiri ke kanan
setLocation(getX()+1,getY());
if(getX()==199)
{
getWorld().removeObject(this);
return;
}

//jika snake terkena peluru
snake a=(snake)getOneIntersectingObject(snake;
if(a!=null)
{
Greenfoot.playSound("die1.wav");
getWorld().removeObject(a);
getWorld().removeObject(this);
return;
}
...............

Membuat Skor
Agar permainan lebih menarik buat skor, dengan ketentuan setiap membunuh 1 musuh maka
nilai akan bertambah 20 dengan pengurangan pada peluru 1 peluru 1
nilai
Langkahlangkahnya:
1. Buat Actor Nilai dengan gambar angka 0 (ambil dari folder contoh di baloons tepatnya
di ..... greenfoot/scenarios/balloons/images/Counter.png)
2. Masuk ke jendela coding pada Actor Nilai dan buat coding diatas Public void act
3.
private int angka = 0;
private int target = 0;
private String huruf;
private int panjangHuruf;

public Nilai(String depan)
{
huruf=depan;
panjangHuruf = (huruf.length() + 2) * 16;
setImage(new GreenfootImage(panjangHuruf, 24));
GreenfootImage gambar = getImage();
Font jenisHuruf = gambar.getFont();
gambar.setFont(jenisHuruf.deriveFont(24.0F));
gantiGambar();
}
private void gantiGambar()
{
GreenfootImage gambar = getImage();
gambar.clear();
gambar.setColor(Color.RED);
gambar.drawString(huruf + angka, 1, 18);
}

private int angka = 0; ==> variabel angka
Font jenisHuruf = gambar.getFont(); ==> ambil jenis huruf karena perintah ini
diatasnya harus ada import java.awt.Font
gambar.setFont(jenisHuruf.deriveFont(24.0F)); ==> gunakan huruf terbesar yaitu 24
dengan jenis font derive. 0F dibaca nol ef
gantiGambar(); ==> jalankan class gantiGambar
private void gantiGambar() ==> membuat class gantiGambar
gambar.clear(); = kosongkan gambar (angka 0 diawal)
gambar.setColor(Color.RED); ==> pakai tulisan warna Merah. Pilihan lainnya BLACK,
WHITE, RED, GREEN (penulisan harus huruf besar semua). Karena
perintah ini memanggil perintah java diatasnya harus dibuat import
java.awt.Color
gambar.fillRect(20, 4, 24, 16); ==> background tulisan disini tidak dipakai
gambar.drawString(huruf + angka, 1, 18); ==> tata letaknya tulisan dulu baru angkanya
3. Tambahkan dibaris kedua
dari atas dibawah import greenfoot.*;
import java.awt.Font;
import java.awt.Color;
4. Buka classWorld(dunia) lalu buat variabel diatas Public Adventure ()
Nilai skor = new Nilai("Skor: ");
addObject(skor,35,280);
5. Tambahkan object dibawah perintah menambahkan object yang lain
6. Lihat hasilnya sudah munculkah tulisan Skornya ? jika sudah lanjut agar skor bertambah
jika musuh mati
buka kembali layar coding Nilai dan tambahkan coding yang setingkat dengan public/private
void.

public void tambah(int skor)
{
target += skor;
}
if(angka < b="(Musuh2)getOneIntersectingObject(Musuh2.class);" target =" skor;"> target)
{
angka;
gantiGambar();
}
lanjutkan dengan menambahkan coding pada World dunia, tambahkan dibawah coding
public void tambahNilai()
public void kurangiNilai()
{
skor.kurang(1);
}
Lakukan pemicunya pada actor Prince (pemicu yang mengeluarkan Peluru) syaratnya peluru
ditekan nilai langsung berkurang 1, buat coding di bawah playSound
((dunia) getWorld()).kurangiNilai();

panggil aksi → kurangiNilai yg berada di World dunia.
if(Greenfoot.isKeyDown("x"))
{
pelor.addObject(new Peluru1(), getX(),getY());
Greenfoot.playSound("fire.wav");
((dunia) getWorld()).kurangiNilai();
}

Pemunculan Papan Skor
Satu urusan lagi, papan skor dengan rancangan jika boy bertemu girl papan skor akan
muncul dengan ucapan SELAMAT dengan nilai ...... dan permainan berakhir.
Tambahkan Actor PapanSkor lalu buat codingnya, coding lengkapnya:
import greenfoot.*;
import java.awt.Color;
import java.awt.Font;
import java.util.Calendar;
/**
* @author (auvy)
* @version (1.0.0)
*/

public class PapanSkor extends Actor
{
public static final float besarHuruf = 48.0f;
public static final int lebar = 500;
public static final int tinggi = 300;
public PapanSkor(int skor)
{
bikinGambar("SELAMAT", "Skor Akhir: ", skor);
}
private void bikinGambar(String judul, String depan, int skor)
{
GreenfootImage gambar = new GreenfootImage(lebar, tinggi);
gambar.setColor(new Color(25, 5, 74, 160));
gambar.fillRect(0, 0, lebar, tinggi);
gambar.setColor(new Color(255, 255, 255, 50));
gambar.fillRect(5, 5, lebar10, tinggi10);
Font font = gambar.getFont();
font = font.deriveFont(besarHuruf);
gambar.setFont(font);
gambar.setColor(Color.GREEN);
gambar.drawString(judul, 60, 100);
gambar.drawString(depan + skor, 60, 200);
setImage(gambar);
}
}
Di Actor Nilai tambahkan coding yang setingkat dengan public void act()
public intnilaiAkhir()
{
return angka;
}
Di World dunia buat coding setingkat public void seperti ini:
public void selesai()
{ addObject(new PapanSkor(skor.nilaiAkhir()*5), 247,145);
}
Nilai akhir didapat dari jumlah skor dikalikan 5 da → n letakan di tengahtengah
Buat pemicunya di Actor boy atau girl (pilih salah satu), disini pakai girl
boy h=(boy)getOneIntersectingObject(boy.class);
if(h!=null)
{
((Adventure)getWorld()).selesai();
Greenfoot.playSound("login.wav");
Greenfoot.stopSimulation();
}


referensi : ahmad fauzan, auvy ahmad haidar "easy game with green foot"

Jumat, 08 Oktober 2010

Sosial Media Baru

IBM memperkenalkan media sosial yang baru untuk alat pemantau, yang dikatakan akan mengukur pengunjung dari data yang dikumpulkan, untuk layanan blog, layanan Web lainnya dan jaringan.
Perangkat lunak, yang disebut SPSS Modeler data mining dan analisis teks meja kerja, akan menggunakan pemrosesan bahasa alami (NLP) untuk menganalisis segala sesuatu mulai dari nama produk dan industri, dan itu telah digunakan oleh beberapa bisnis yang cukup besar.
Navy Federal Credit Union, Rosetta Stone dan Uang Mailer sudah menggunakan perangkat lunak IBM untuk memahami bagaimana konsumen merasa tentang merek mereka, produk dan pesaing. Perangkat lunak ini juga dapat dimanfaatkan dengan baik oleh kelompok-kelompok politik, pemasaran dan biro iklan, perusahaan riset dan banyak organisasi lainnya dan bisnis.
Data dari web sosial juga dapat digabungkan dengan data internal untuk menciptakan bahkan intelijen yang lebih akurat tentang konsumen, kata IBM. "Organisasi dapat menggabungkan semua data teristruktur dengan informasi teraktual dari dokumen, email, catatan panggilan pusat dan sosial sumber media."



Perusahaan telah menggunakan aplikasi IBM dan telah menggunakan data ini untuk meningkatkan CRM dan membuat pilihan yang lebih baik tentang produk dan pemasaran.
Rosetta Stone VP Strategis Penelitian dan Analisa Nino Ninov berkata:
"analisis prediktif memungkinkan kita untuk leverage yang tidak diminta dan tidak bias umpan balik pelanggan dan strategis meningkatkan bisnis kami. Kita sekarang juga dapat memonitor pesaing dan industri website [...] untuk menjaga tampilan yang aktif dan lebih memahami bagaimana masyarakat memandang pesaing kita. "
SPSS Data Modern pertambangan dan analisis teks meja kerja merupakan produk bermutu tinggi dan mungkin baik terlalu canggih dan terlalu mahal untuk usaha kecil rata-rata. Antarmuka itu sendiri hampir tidak apa yang kita akan menelepon intuitif atau user-friendly. Tetapi bagi perusahaan besar yang membutuhkan teknologi yang kuat dan tidak bisa mengambil risiko mempercayakan pengumpulan data ke web app startup, perangkat lunak IBM mungkin sangat baik menyediakan fitur yang mereka butuhkan.

Pengenalan Internet & New Media

PENGENALAN INTERNET
Kemunculan medium media ketiga yaitu internet telah menyemarakkan lagi proses transformasi media dan melancarkan lagi revolusi Teknologi Komunikasi Maklumat atau lebih dikenali dengan nama ICT. Malaysia pada lewat tahun 1990-an telah memikirkan tentang pentingnya kemajuan teknologi perkomputeran untuk pembangunan rakyat dan negara. Ini terbukti apabila kerajaan telah berjaya melahirkan ramai bilangan rakyat yang celik information teknologi atau IT di peringkat sekolah rendah, menengah dan university Revolusi IT malahan berterusan hingga kini dengan prasarana yang cukup kondusif untuk masyarakat melayari internet dan boleh berurusan di mana jua mereka berada. Akibatnya, media ketiga telah menjadi satu peralatan media yang terpenting selain dari akhbar dan majalah dalam menjana informasi secara global.
Dengan kepesatan IT kini, kemampuan masyarakat memperolehi maklumat telah bertambah. Di samping membaca akhbar, masyarakat juga boleh menambah informasi mereka melalui pembacaan berita dan sesekali bersama-sama pembaca lain membuat perbincangan di dalam laman-laman blog. Kini blog semakin popular di Malaysia apabila bloger-bloger aktif mengutarakan pandangan mereka tentang isu-isu semasa. Ketika kempen pilihanraya umum ke-12 baru-baru ini, banyak isu-isu politik dijadikan bahan perbincangan bersama dan rakyat biasa boleh mengutarakan pandangan seperti apa yang boleh dikatakan sebagai perbualan di kedai kopi.
Namun begitu isu perpaduan kaum adalah perkara penting yang perlu dipelihara. Laman blog dijadikan sebagai tempat pembujukan dan mendapat respon dengan cukup pantas apabila isu-isu politik diutarakan. Keadaan menjadi gawat apabila isu-isu perkauman, perlembagaan dan agama dijadikan topik perbincangan yang boleh menjejaskan perpaduan kaum di negara ini. Inilah yang terjadi apabila Raja Petra Kamaruddin atau lebih dikenali dengan nama pendeknya RPK menyiarkan artikal di Malaysia Today pada 11hb Julai 2007 yang mencemuh raja dan agama Islam.
Pada 23 Julai 2007, Tan Sri Muhammad Muhammad Taib telah membuat satu laporan polis terhadap Malaysia Today dibawah Sekjen 121 (B) dan Seksen 123, Sekjen di bawah Akta Hasutan 1948 dan Sekjen
sen 263 dan Sekjen 266, Akta Komunikasi dan Multimedia 1998 kerana kemasukan blog di laman web yang dianggap mengandungi penulisan yang menghina Yang Di-pertuan Agong, merendahkan Islam dan menghasut kebencian serta keganasan di antara kumpulan etnik tempatan.

MEDIA BARU
Media baru adalah media interaktif atau multimedia yang tidak menghadapi apa juga sekatan kerana transmisi yang dibuat melepasi jarak dan waktu. Media baru juga boleh digelar sebagai media ketiga di mana penglibatan komunikasi pengguna yang lebih aktif daripada media lama seperti radio dan televisi.
Blog adalah media ke tiga atau media baru yang menggunakan teknologi peringkat tinggi yang disebut sebagai Teknologi Komunikasi Maklumat. Kandungan dan percetakan kandungan media adalah dalam bentuk elektronik di dalam internet. Dengan kemudahan rangkaian World Wide Web skop penggunaan internet semakin luas di mana pengguna komputer dapat membuat pelbagai urusan seperti menghantar e-mail, video digital, membina laman web dan blog. Dari sudut sejarah, internet bermula dalam tahun 1960-an oleh tentera Amerika semasa krisis peperangan.
Di Malaysia, penyediaan infrastruktur internet berkait rapat dengan dasar kerajaan yang didorong oleh Wawasan 2020, Agenda IT Negara (NITA), projek Koridor Raya Multimedia (MSC) dan undang-undang siber. Kegunaan internet berbeza pada konteks kumpulan, contohnya golongan muda lebih banyak menggunakan internet daripada golongan dewasa. Manakala peralatan digital yang berbeza membolehkan sesetengah individu mempunyai akses yang lebih berbanding individu lain. Internet telah melepasi sempadan masa dan ruang seperti kemudahan mengakses berita luar negara dan teknologi video conferencing.
Dalam konteks politik, internet dan blog menjadi alat yang berguna dalam membuat propaganda kerajaan kerana ianya memiliki kelebihan untuk menembusi khalayak tanpa halangan. Media baru ini yang mampu menyalurkan maklumat tanpa had mendorong masyarakat membuat pelbagai persepsi terhadap keputusan kerajaan dengan pantas.
Kebanjiran berbagai blog juga menjadi daya penarik kepada pembaca walaupun masyarakat telah dihidangkan dengan pelbagai sumber media seperti televisi, majalah, akhbar dan akhbar ‘nyamuk’. Kajian yang dibuat oleh halaman blog Dr Mahathir Mohamad yaitu jumlah pencapaian ke chedet.com ketika ianya mula dilancarkan dengan menggunakan server percuma di blogspot.com pada 1 Mei 2007 telah mendapat jumlah kunjungan melebihi satu juta pada 31 Mei 2008 dan mencapai dua juta pengunjung pada 17 Jun 2008. Bilangan pengunjung terus meningkat sehingga enam juta pada 3 September 2008. Dengan tren yang berlaku ini kita boleh membuat kesimpulan bahawa masyarakat kita telah celik IT dan sudah mula beralih kepada media baru iaitu boleh membaca berita dan pada masa yang sama mengemukakan pandangan.