Sabtu, 09 Maret 2013

Tugas Remedial Java


Tugas Remedial Java






Nama    : Bella Mutia
Kelas     : XI-RPL2





SMKN 4 BANDUNG

DAFTAR ISI
BAB I                         PENDAHULUAN                                      

A.    Latar Belakang……………………………….................   1
B.     Perumusan Masalah…………………………................   1
C.     Tujuan ……………………………..……………… ….   1
A.    Canvas………………………………………………….   3
B.    Game Canvas …………………………………………  7        
DAFTAR PUSTAKA……………………………………………… 13














Bab I
Pendahuluan

Pada bab ini akan dijelaskan mengenai latar belakang penelitian dan pengembangan, identifikasi
masalah, serta batasan-batasan permasalahan. Akan dijelaskan juga mengenai maksud dan tujuan
penelitian, serta metodologi dan penjelasan sistematika penulisan.
1.1 Latar Belakang
Pada awal mula perkembangannya, handphone hanya digunakan seekedar sebagai alat untuk
berkomunikasi dengan orang lain. Seiring dengan perkembangan zaman, orang pun tidak hanya
memanfaatkan handphone sebagai alat komunikasi saja, melainkan untuk keperluan lain. Untuk
keperluan tersebut, dibangunlah berbagai aplikasi yang mendukung.
Banyak aplikasi-aplikasi yang dibangun dengan menggunakan tampilan grafis. Artinya, banyak
gambar-gambar yang memiliki warna. Hal ini didukung oleh handphone yang berwarna.
Untuk membuat gambar-gambar ini, dapat digunakan J2METM (Java™ 2 Platform, Micro Edition).
Pembuatan tampilan grafis pada J2ME dapat menggunakan canvas. Dengan menafaatkan library
yang sudah tersedia, berbagai gambar dapat dibuat.
Meskipun demikian, terdapat kekurangan pada J2ME, terutama jika diinginkan gambar dengan
kualitas yang cukup baik. Misalnya dalam hal pewarnaan gambar yang telah dibuat. Warna yang
dapat diperoleh hanya satu jenis warna saja. Padahal, di dunia nyata, ada berbagai variasi warna
karena adanya gradasi, dan sebagainya. Selain kesulitan dalam hal pewarnaan, banyak kesulitan lain
seperti sulitnya menggambar suatu polygon, mentransformasikan gambar yang sudah dibuat, dan
sebagainya.
Oleh karena itu, penulis tertarik untuk mengembangkan lebih jauh J2ME untuk mengatasi kesulitankesulitan semacam itu. Dalam tulisan ini, permasalahan yang dibahas dibatasi pada pewarnaan
gradasi saja.
1.2 Identifikasi Masalah
Rumusan masalah untuk penelitian dan pengembangan ini akan dijabarkan sebagai berikut :

Canvas




Canvas adalah subclass dari displayable. Itu adalah sebuah class abstrak yang harus di extend sebelum sebuah aplkasi dapat menggunakan fungsi-fungsi yang ada

Pada class Canvas disediakan konstanta-konstanta yang penting untuk mengenali jenis masukan yang diberikan oleh pengguna. Konstanta-konstanta ini merupakan nilai integer yang terdiri atas:
• KEY_NUM0
Bernilai integer 48 dan dikaitkan dengan tombol 0.
• KEY_NUM1
Bernilai integer 49 dan dikaitkan dengan tombol 1.
• KEY_NUM2
Bernilai integer 50 dan dikaitkan dengan tombol 2.
• KEY_NUM3
Bernilai integer 51 dan dikaitkan dengan tombol 3.
• KEY_NUM4
Bernilai integer 52 dan dikaitkan dengan tombol 4.
• KEY_NUM5
Bernilai integer 53 dan dikaitkan dengan tombol 5.
• KEY_NUM6
Bernilai integer 54 dan dikaitkan dengan tombol 6.
• KEY_NUM7
Bernilai integer 55 dan dikaitkan dengan tombol 7.
• KEY_NUM8
Bernilai integer 56 dan dikaitkan dengan tombol 8.
• KEY_NUM9
Bernilai integer 57 dan dikaitkan dengan tombol 9.
• KEY_STAR
Bernilai integer 42 dan dikaitkan dengan tombol bintang ‘*’.
• KEY_POUND
Bernilai integer 35 dan dikaitkan dengan tombol ‘#’.
• UP
Bernilai integer 1 dan dikaitkan dengan tombol panah atas.
• DOWN
Bernilai integer 6 dan dikaitkan dengan tombol panah bawah.
• LEFT
Bernilai integer 2 dan dikaitkan dengan tombol panah kiri.
• RIGHT
Bernilai integer 5 dan dikaitkan dengan tombol panah kanan.
Sebenarnya ada konstanta lain yang disediakan, fungsi-fungsi pada class Canvas yang berkaitan dengan konstanta ini adalah :
• public int getGameAction(int keyCode)
Menghasilkan nilai integer yang berkaitan dengan keyCode, yang umumnya diambil dari fungsi-fungsi keyPressed(), keyReleased(), dan sejenisnya. Contoh penggunaan fungsi ini terdapat pada program “pindahkotak”.
• public String getKeyName(int keyCode)
Menghasilkan nama kunci yang berkaitan dengan keyCode, yang umumnya diambil dari fungsi-fungsi keyPressed(), keyReleased(), dan sejenisnya.
• public int getKeyCode(int keyCode)
Fungsi kebalikan dari getGameAction() yang menghasilkan nilai integer keyCode yang berkaitan dengan nilai gameAction yang dihasilkan oleh fungsi getGameAction.
package com;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
class KeyCodeCanvas extends Canvas implements CommandListener
{
private Command cmExit; // Exit midlet
private String keyText = null; // Key code text
private KeyCodes midlet;
public KeyCodeCanvas(KeyCodes midlet)
{
this.midlet = midlet;
cmExit = new Command(“Exit”, Command.EXIT, 1);
addCommand(cmExit);
setCommandListener(this);
}
protected void paint(Graphics g)
{
// memberi warna background dengan putih
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
// Set color and draw text
if (keyText != null)
{
//menggambar string ditengah layar dengan warna hitam.
g.setColor(0, 0, 0);
g.drawString(keyText, getWidth()/2, getHeight()/2, Graphics.TOP |
Graphics.HCENTER);
}
}
public void commandAction(Command c, Displayable d)
{
if (c == cmExit)
midlet.exitMIDlet();
}
protected void keyPressed(int keyCode)
{
keyText = getKeyName(keyCode);
repaint();
}
}
—————————————————————–
package com;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class KeyCodes extends MIDlet
{
private Display display; // The display
private KeyCodeCanvas canvas; // Canvas
public KeyCodes()
{
display = Display.getDisplay(this);
canvas = new KeyCodeCanvas(this);
}
protected void startApp()
{
display.setCurrent( canvas );
}
protected void pauseApp()
{ }
protected void destroyApp( boolean unconditional )
{ }
public void exitMIDlet()
{
destroyApp(true);
notifyDestroyed();
}
}

GAME CANVAS
Pengertian GameCanvas

GameCanvas adalah sebuah class yang terdapat pada packagejavax.microedition.lcdui.game.*  yang merupakan turunan dari Canvas.GameCanvas memiliki fitur2 tambahan yang lebih fokus ke game. seperti : bisa menangkap keystates (tombol yang dipencet), dan off-screen buffering.
GC adalah sebuah kanvas yang akan kita gambar, baik string, images, sprite,atau shape dasar (kotak, lingkaran, dll).
karena GC digambar perframe (tergantung FPS), setiap proses penggambaran, dilakukan di kanvas yang sama. Karena itu, misalnya kita menggambar kotak di posisi 10,10 dan bergerak ke posisi 100,100 dengan pertambahan x dan y tiap framenya.
ClassGameCanvas menyediakan fungsi-fungsi penting dalam menangani interface game. Merupakan turunan dari Class Canvas (commands, input events, etc.), dengan penambahan fitur antara lain kemampuan game yang spesifik seperti: off-screen graphic buffer dan kemampuan untuk mengetahui status key-key input dari key-key pada HP. Kelas GameCanvas pada MIDP 2.0 telah mengusung fitur-fitur penting yang mengatasi masalah yang ada pada MIDP 1.0.
 Perbedaan antara Canvas dan GameCanvas :
Untuk menggunakan Canvas, buat subclass-nya, definisikan method paint().
Di dalam method paint(), gunakan Graphics untuk merender gambar pda screen
Ketika ingin mengubah sesuatu dan mengupdate-nya pada screen, maka harus memanggil method repaint(), kemudian system memanggil paint() sekali lagi untuk penggambaran.



CARA MEMBUAT GAME DI J2ME

permainan Java game komputer ditulis dalam bahasa pemrograman komputer "Java." Java games dapat sebagai kompleks sebagai-menembak-up nya Pukul tiga pertandingan dimensi ditulis dalam bahasa lain, atau yang sederhana seperti teka tradisional atau teka-teki kata. Terlepas dari jenis permainan yang mereka akhirnya ingin menciptakan, programmer game bisa mulai belajar pemrograman game Java dengan menyalin yang ada, program sederhana seperti permainan kata berikut.

Kesulitan: Cukup Menantang

Petunjuk
1

Download dan menginstal Java Development Kit (JDK) dari java.sun.com. Mulai membuat program wordGame dengan membuka NotePad dan memasukkan kode berikut untuk kelas utama permainan:

import java.io. *;
public class wordGame
{
/ **
* Constructor untuk kelas objek wordGame
* /
publik wordGame ()
{

}
public static void main (String args [])
{
String strGuess;

Pembawa acara kuis qm baru = pembawa acara kuis ();

qm.chooseWord ();
/ / Buka konsol untuk input
Console c = System.console ();
if (c == null) {
System.err.println ("Tidak konsol.");
System.out.println (1);
}

/ / Loop sampai permainan selesai
sedangkan (qm.gameOver ()!) {
qm.showGameboard ();
System.out.format ("Anda memiliki% d upaya tersisa \ n.", Qm.getRemainingAttempts ());
strGuess = c.readLine ("Masukkan Anda menebak:");
qm.evaluateGuess (strGuess);
} / / End loop utama

if (qm.playerWon ()) {
System.out.format ("!. Anda Won Anda butuh upaya% d \ n", qm.nGuessesNeeded ());
System.out.format (qm.getWord ());
} / / Jika pemain menang
else {
System.out.format ("Anda hilang kata ini% s \ n.", Qm.getWord ());
} / / Jika pemain menang
} / / Akhir utama
}

Simpan file dengan "wordGame.java" nama file dalam folder bernama WordGame. Pastikan untuk mencocokkan kasus setiap surat yang diberikan di sini karena Java adalah case sensitive.
2

Buat kelas pembawa acara kuis, yang merupakan pembawa acara kuis yang memilih kata-kata secara acak, membandingkan menebak pemain ke kata yang dipilih dan laporan ketika pemain telah menang atau kalah. Masukkan kode program berikut dalam sebuah file yang bernama QuizMaster.java dan menyimpannya dalam folder WordGame yang berisi file wordGame.java:

import java.util .*;

public class pembawa acara kuis
{

private final int MAX_GUESSES_ALLOWED = 15;
private String GameWords [] = {"komputer", "ras", "luar biasa", "helikopter", "flugelhorn"};
private String targetWord;
private int nTriesLeft;
swasta gameBoard gb;

publik pembawa acara kuis ()
{
nTriesLeft = MAX_GUESSES_ALLOWED;
kembali;
}

public void chooseWord ()
{
Random obRand = Acak baru ();
int i = obRand.nextInt (GameWords.length);
targetWord = GameWords [i];
gb gameBoard = baru (targetWord);
}

public boolean gameOver () {
/ / Ada dua kondisi akhir: memenangkan pemain atau nTriesLeft pergi ke 0
if (gb.blnMatch ()) return true;
jika (nTriesLeft == 0) return true; kembali selain itu salah;
}

public boolean playerWon () {
kembali (gb.blnMatch ());
} / / Pemutar dimenangkan

public int getRemainingAttempts () {
kembali nTriesLeft;
} / / ShowAttempts

public String getWord () {
kembali targetWord;
} / / ShowWord

public void showGameboard () {
gb.showBoard ();
} / / ShowGameboard

public int nGuessesNeeded () {
kembali MAX_GUESSES_ALLOWED - nTriesLeft;
} / / NGuessesNeeded

public void evaluateGuess (String strGuess) {
nTriesLeft -= 1;
gb.uncoverLetters (strGuess);
}
}; / / Akhir kelas pembawa acara kuis
3

Buat kelas yang menyingkap huruf pada kata yang dipilih oleh pembawa acara kuis yang cocok dengan huruf yang dimasukkan oleh pemain: dalam sebuah file yang bernama gameBoard.java, masukkan teks berikut dan simpan di folder yang sama berisi file wordGame lain:

import java.io. *;

public class gameBoard
{
private String strGameboard;
private String strTarget;
String swasta lettersTested; / / ini semua individu huruf pemain telah berusaha untuk sesuai dengan

/ **
* Constructor untuk kelas objek gameBoard
* /
publik gameBoard (String str)
{
strTarget = str;
strGameboard = new String (str);
lettersTested = new String ("");
strGameboard = strGameboard.replaceAll (".", "_");
kembali;
}

public void uncoverLetters (String str)
{
String strRE;
/ / Untuk menebak satu char panjang, mengungkap semua huruf dalam target yang cocok
/ / Tapi memperlakukan tebakan lebih dari 1 char sebagai kata terhadap kata. Mengungkap semua atau tidak ada surat
if (str.length () == 1) {
/ / Surat baru menggabungkannya dengan huruf yang sudah diuji
lettersTested = lettersTested + str;
strRE = "[^" + lettersTested + "]";
/ / Menyembunyikan semua karakter yang tidak cocok: ganti semua huruf dalam target yang TIDAK sesuai pola dengan garis bawah
strGameboard = strTarget.replaceAll (strRE, "_");
}

else {
if (str.compareToIgnoreCase (strTarget) == 0) {
strGameboard = strTarget;
}
}
kembali;
}

public boolean blnMatch () {
kembali (strTarget == strGameboard);
}

public void showBoard () {
int i;
untuk (i = 0; strTarget.length <i (); i + +) {
System.out.format ("% c", strGameboard.charAt (i));
}
System.out.println ("\ n");

}
} / / Akhir kelas gameBoard
4

Kompilasi permainan: buka command prompt (Start> cmd), dan ketik PATH = "C: \ Program Files \ Java \ jdk1.6.0_14 \." Folder ini harus berisi compiler java anda (javac.exe). Jika tidak, cari javac.exe menggunakan pencarian Windows Explorer, kemudian masukkan path dengan PATH =... pernyataan hanya diberikan.

Pada prompt perintah, gunakan "cd" perintah untuk menavigasi ke folder yang berisi folder wordGame. Mengkompilasi semua file dengan pernyataan ini: javac *. java.
5

Menjalankan permainan dengan mengetik "java wordGame". Mainkan permainan dengan memasukkan satu huruf pada satu waktu, sampai Anda kehabisan tebakan atau Anda menebak kata. Jika Anda memasukkan lebih dari satu surat sekaligus, kelas gameBoard berpikir Anda sedang mencoba menebak seluruh kata dan tidak akan menemukan huruf kecuali jika Anda cocok dengan mereka semua.
6

Hafalkan dan memodifikasi permainan untuk mulai membuat game sendiri. Anda dapat dengan mudah mengubah kata-kata pembawa acara kuis memilih dari, dengan memperhatikan bagaimana "GameWords =..." pernyataan disusun. Anda dapat dengan mudah mengubah nomor dari mencoba pemain harus menebak kata tersebut dengan pernyataan yang berisi MAX_GUESSES_ALLOWED konstan.





DAFTAR PUSTAKA

http://mashasih.blogspot.com/2012/03/cara-membuat-game-hp-java-dengan-j2me.html



Bisa juga di download di link ini :

Rabu, 29 Agustus 2012

Menentukan Positive Dan Negative

selamat datang di blog saya :)
sebelumnya maaf jika ada keselahan dalam blog saya hehe namanya juga masih belajar dan dengan belajar kita menjadi bisa !
oh iya di sini saya akan menampilkan tugas tugas hari raya yang di beri sama bapak guru saya yang mengajarkan java


SOAL NIS GANJIL

Buatlah sebuah program dengan menggunakan bahasa java dengan  algoritma dan ketentuan berikut ini ,
Program Menentukan Jumlah Bilangan Positif dan Negatif
Tools yang digunakan : Teks Editor (Notepad, Wordpad, Notepad++, Komodo, etc)

Algoritma
Input
Jumlah bilangan yang akan dimasukan : N
Bilangan ke 1 :
Bilangan ke 2 :
…………………
………………...
Bilangan ke N :

Output
Jumlah Bilangan Positif   :
Jumlah Bilangan Negatif :

Contoh :
Jumlah bilangan yang akan dimasukan : 5
Bilangan ke 1 : -5
Bilangan ke 2 : -7
Bilangan ke 3 : 9
Bilangan ke 4 : 4
Bilangan ke 5 : 2

Output
Jumlah Bilangan Positif   : 3
Jumlah Bilangan Negatif :  2


Penilaian (Poin 110)
1.     Penamaan variable ,operator, komentar untuk penjelasan program. ( Poin 10)
2.     Program dibuat lebih dari satu file class dan satu method (satu method harus berjenis fungsi – memiliki nilai kembalian) ( Poin 25)
3.     Penggunaan Class Library untuk Input dari Keyboard( Poin 30)
4.     Pengunaan Struktur Kontrol  (Conditional dan Looping). ( Poin 20)
5.     Program sesuai dengan Algortima yang diberikan ( Poin 25)

sSource Dari Class TugasTHR.java


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tugasthr;

/**
 *
 * @author zyrex
 */
public class TugasTHR {

    /**
     * @param args the command line arguments
     */
     public static void main(String[] args) {
        // TODO code application logic here
        pengolahan tampil = new pengolahan();//instansiasi dengan tujuan pemanggilan class proses 
        tampil.pengolahan();//pemanggilan method proses pada class proses
    }



SSource dari Class Pengolahan.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tugasthr;

import java.util.Scanner;

/**
 *
 * @author zyrex
 */
public class pengolahan {

    public int jumlah = 0; //variable sebagai penentu banyak jumlah yang akan diinput/pengatur looping
    public int [] bil = new int [100];//tempat user menginput
    public int [] positive = new int [100];//menyimpan bilangan positive
    public int [] negative = new int [100];//menyimpan bilangan negative
    public int plus = 0;//menghitung bilangan positive
    public int minus = 0;//menghitung bilangan negative
    
        public void pengolahan () //method prosedur
    {
    Scanner input = new Scanner(System.in);
        System.out.print("masukkan jumlah bilangan yang akan anda input :");
        jumlah = input.nextInt();
        for (int i = 1;i <= jumlah;i++)//looping untung mendapatkan input
        {
            System.out.print("masukkan bil ke "+i+"=");
            bil[i] = input.nextInt();//input dari user
            
        }
        for (int i = 1;i <= jumlah;i++)//looping untuk menentukan bilangan positif atau negative
        {
        if(bil[i] < 0)
        {negative[i] = bil[i];}
        else
        { positive[i] = bil[i];}
        }
        for (int i = 1;i <= jumlah;i++)//looping untuk menentukan banyaknya bilangan positive
        {
        if (positive[i] != 0) 
        {
            plus++;
        }
        
        }
        for (int i = 1;i <= jumlah;i++)//looping untuk menentukan banyaknya bilangan negative
        {
         if (negative[i] != 0) 
         {
         minus++;
         }
        }
        System.out.println("banyak jumlah positive = "+plus);//untuk menampilkan banyak bilangan positive
        System.out.println("banyak jumlah negative = "+minus);//untuk menampilkan banyak bilangan negative
        
        
     }


HASIL RUNNING




download .JAR
download .RAR