Senin, 21 November 2011
Kamis, 06 Mei 2010
Saya mengambil aplikasi sederhana java game karena menurut saya lebih mudah dimengerti:
setiap anak/pasukan/objek dari bagian ini memiliki perintah atau coding sendiri-sendiri, contoh coding pada Queen:
public class objQueen extends objChessPieces
{
public void objQueen ()
{
}
public boolean legalMove (int startRow, int startColumn, int desRow, int desColumn, int[][] playerMatrix)
{
boolean axis = true;
if (startRow == desRow ^ startColumn == desColumn) // XOR If ONE kondisi ini sesuai (jika keduanya benar atau palsu maka palsu dikembalikan)
{
axis = true; //Bergerak lurus sepanjang sumbu
}
else if (startRow != desRow && startColumn != desColumn)
{
axis = false; //Bergerak diagonal
}
else
{
strErrorMsg = "Queen can move in a straight line in any direction";
return false;
}
return axisMove(startRow, startColumn, desRow, desColumn, playerMatrix, axis);
}
}
sintax diatas misa diterapkan juga pada King, Horse dan pion-pion catur lainnya, dibawah ini adalah sintax untuk bidak caturnya :
//Papan catur standar yang dapat digunakan untuk catur, draft dll
import java.awt.*;
import java.util.Vector;
public class objChessBoard extends Canvas
{
protected objPaintInstruction currentInstruction = null;
protected Vector vecPaintInstructions = new Vector();
public void chessBoard ()
{
}
public void update (Graphics g)
{
paint(g);
}
public void paint (Graphics g)
{
if (vecPaintInstructions.size() == 0)
{
g.setColor(new Color(75,141,221)); //Biru muda
g.fillRect(0,0,500,50); //Perbatasan Utara
g.fillRect(0,0,50,500); //Perbatasan Barat
g.fillRect(0,450,500,50); //Perbatasan Selatan
g.fillRect(450,0,50,500); //Perbatasan Timur
currentInstruction = new objPaintInstruction(0,0,8);
vecPaintInstructions.addElement(currentInstruction);
}
g.setColor(new Color(75,141,221));
g.fillRect(50,450,450,50); //Paint over the current status text
for (int i = 0; i <>
{
currentInstruction = (objPaintInstruction)vecPaintInstructions.elementAt(i);
int startRow = currentInstruction.getStartRow();
int startColumn = currentInstruction.getStartColumn();
int rowCells = currentInstruction.getRowCells();
int columnCells = currentInstruction.getColumnCells();
for (int row = startRow; row < (startRow + rowCells); row++)
{
for (int column = startColumn; column < (startColumn + columnCells); column++)
{
drawTile(row, column, g);
}
}
}
drawExtra(g);
}
private void drawTile (int row, int column, Graphics g)
{
if ((row + 1) % 2 == 0)
{
if ((column + 1) % 2 == 0)
{
g.setColor(new Color(255,255,255)); //putih
}
else
{
g.setColor(new Color(0,0,0)); //hitam
}
else
{
if ((column + 1) % 2 == 0)
{
g.setColor(new Color(0,0,0));
}
else
{
g.setColor(new Color(255,255,255));
}
}
g.fillRect((50 + (column * 50)), (50 + (row * 50)), 50, 50);
}
//Protected berarti hanya dapat digunakan oleh kelas ini, dan kelas memperluas itu dilindungi drawExtra void (Graphics g) //Setiap kelas memperpanjang papan catur dapat menggunakan metode ini untuk menambahkan hal-hal ekstra seperti potongan-potongan pemain
{
}
protected int findWhichTileSelected (int coor) //Finds which tile the mouse is over
{
for (int i = 0; i <>
{
if ((coor >= (50 + (i * 50))) && (coor <= (100 + (i * 50))))
{
return i;
}
}
return -1;
}
}
Struktur :
- Class : ObjKnight, ObjCellMatrix, ObjQueen, ObjRock, ObjBishop, ObjKing, dll.
- Method : bisa dilihat dr 2 contoh sintax diatas
- Variable : warna merah dan biru, perbedaan langkah antara king,queen,kinght dan lainnya tentu berbeda, dll
- array bisa dilihat dari contoh sintaxnya juga.
- dll
sekian tugas ini saya coba kerjakan semaximal mungkin, mohon kritik dan sarannya. terima kasih.
Kamis, 29 April 2010
Lanjutan tugas Java
Keuntungan Pewarisan
• Subclass menyediakan state/behaviour yang spesifik yang membedakan dengan superclass
>> memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada.
• Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan tingkah laku dan state secara secara umum
4. Polimorphisme
Dalam konsep pemrograman, hal tersebut berarti kemampuan dari sebuah variabel dengan tipe tertentu untuk mengacu ke tipe obyek yang berbeda. Dalam contoh tentang kelas Manager dan Employee di atas, dapat dibuat obyek Manager dan diisikan ke variabel bertipe Employee. Hal ini dapat dilakukan. Kelas Manager mewarisi semua atribut dan method dari kelas induknya yang juga berarti bahwa setiap operasi yang dilakukan pada obyek Employee juga dapat dilakukan pada obyek Manager.
Employee employee = new Manager();
employee.name = “James”;
employee.department = “marketing”; //illegal
Dalam contoh di atas, dengan menggunakan variabel employee ini, dapat diakses bagian obyek yang merupakan bagian dari kelas Employee (employee.name), tetapi bagian obyek yang merupakan bagian dari kelas Manager (employee.department) tidak dapat diakses.
5. Package (Paket)
Di dalam UML, package mengelompokkan elemen-elemen pemodelan di dalam grup. Package dalam UML ini dapat digunakan untuk memodelkan package di dalam bahasa Java.
6. Array
a. Mendeklarasikan Array
Array biasanya digunakan untuk mengelompokkan data atau obyek yang memiliki tipe yang sama. Array memungkinkan untuk mengacu ke sekumpulan obyek dengan nama yang sama. Array dapat dideklarasikan dengan tipe apa saja, baik itu yang bertipe data primitif maupun obyek. Berikut contoh deklarasi Array :
Point p[]; // Point adalah sebuah kelas
Dalam bahasa pemrograman Java, Array merupakan sebuah obyek meskipun ia terdiri dari elemen yang bertipe data primitif. Seperti halnya kelas yang lain, ketika mendeklarasikan Array belum dibentuk sebuah obyek Array. Deklarasi Array hanya membuat sebuah referensi yang dapat digunakan untuk mengacu ke sebuah obyek Array. Besarnya memori yang digunakan oleh elemen-elemen Array akan
dialokasikan secara dinamis dengan menggunakan pernyataan new atau dengan array initializer. Contoh deklarasi array di atas, dengan menggunakan kurung siku setelah nama variabel, merupakan standar penulisan array dalam C, C++ dan Java. Format demikian agak sulit untuk dibaca. Oleh karenanya, bahasa Java menggunakan bentuk deklarasi array alternative dengan menggunakan kurung siku di sebelah kiri seperti dalam contoh berikut :
Point [] p; // Point adalah sebuah kelas
Sebuah deklarasi array dapat ditulis sebagai pendeklarasian tipe array di bagian kiri dan nama variabel di bagian kanan. Kedua bentuk deklarasi array di atas dapat digunakan, tetapi sebaiknya konsisten dalam menggunakan satu bentuk saja. Dalam deklarasi array, tidak ditentukan ukuran aktual dari array. Ketika mendeklarasikan array dengan kurung siku yang berada di sebelah kiri nama variabel, kurung siku tersebut berlaku bagi semua variabel yang berada di sebelah kanannya.
b. Membuat Array
Seperti halnya dalam pembuatan obyek, Array dibuat dengan menggunakan keyword new. Contoh di bawah ini membuat sebuah Array dengan tipe primitif char:
s = new char[26];
Baris di atas membuat sebuah array dengan 26 nilai char. Ketika membuat sebuah Array, elemen di dalamnya akan diinisialisasi dengan nilai default (‘\u0000’ untuk data tipe char). Biasanya nilai elemen Array dapat diinisialisasi dengan nilai default sebagaimana ditunjukkan berikut ini :
s[0] = ‘A’;
s[1] = ‘B’;
...
Perhatikan penggalan kode sebagai berikut :
public char[] createArray {
char[] s;
s = new char[26];
for(int i=0; i<26;>
s[i] = (char) ('A' + i);
}
return s;
}
Indeks array dimulai dengan angka 0. Batasan legal untuk nilai indeks ini adalah dari nol hingga jumlah elemen array – 1. Apabila program berusaha mengakses array di luar batas yang legal, maka akan muncul runtime exception. Untuk membuat Array dengan elemen obyek, gunakan cara penulisan berikut :
p = new Point[10];
Pada kode di atas, dibuat sebuah Array yang masing-masing elemennya merupakan referensi obyek yang bertipe Point. Pernyataan tersebut tidak membuat 10 obyek Point. Untuk membuat obyek Point, gunakan pernyataan berikut :
P[0] = new Point(0, 1);
P[1] = new Point(1, 2);
...
Perhatikan penggalan kode program berikut ini.
Point[] p;
p = new Point[10];
for ( int i=0; i<10;>
p[i] = new Point(i, i+1);
}
return p;
}>
b. Menginisialisasi Array
Ketika membuat sebuah Array, setiap elemen di dalamnya akan diinisialisasi dengan nilai default. Dalam kasus Array char s seperti pada contoh di atas, setiap elemen dari Array s diinisialisasi dengan nilai ‘\u0000’. Dalam kasus Array p seperti juga contoh di atas, setiap elemen diinisialisasi dengan nilai null, yang berarti elemen-elemen array p tersebut belum merujuk ke suatu obyek Point. Setelah proses pengisian p[0] = new Point(), barulah diperoleh elemen pertama dari Array p yang merujuk ke obyek Point. Java juga memiliki cara singkat untuk membuat sebuah obyek Array dengan elemen-elemennya memiliki nilai awal :
Kode di atas adalah sama dengan kode berikut ini:
String names[];
names[0] = "Georgianna";
names[1] = "Jen";
names[2] = "Simon";
Cara singkat ini dapat digunakan untuk Array dengan berbagai jenis tipe, seperti dalam contoh berikut :
c. Array Multidimensi
Dalam Java, dapat dibuat Array dari Array sehingga dinamai Array multidimensi. Contoh berikut ini memperlihatkan cara membuat Array dua dimensi :
int twoDim [][] = new int[4][];
twoDim[0] = new int[5];
twoDim[1] = new int[5];
Pada baris pertama, dibuat sebuah obyek Array yang memiliki empat elemen. Masing-masing elemen merupakan referensi yang bertipe Array dari int yang bernilai null. Pada baris berikutnya, diinisialisasi
elemen pertama dan kedua dengan obyek Array dari int yang masingmasing berisi lima elemen yang bertipe integer. Array dari Array yang bersifat non-rectangular dapat dibuat seperti dalam contoh berikut:
twoDim[0] = new int[2];
twoDim[1] = new int[4];
twoDim[2] = new int[6];
twoDim[3] = new int[8];
Proses pembuatan Array dari Array yang demikian, di mana harus diinsialisasi masing-masing elemennya satu persatu, cukup merepotkan. Di samping itu, array dari array yang berbentuk rectangular lebih sering digunakan dibandingkan dengan yang nonrectangular. Untuk membuat Array dari Array yang rectangular dengan cara mudah, gunakan bentuk berikut ini :
int twoDim[][] = new int[4][5];
Kode di atas membuat sebuah Array dari empat Array yang masing - masing elemennya berisi lima nilai int.
d. Batasan Array
Dalam bahasa Java, index Array dimulai dengan angka nol. Jumlah elemen di dalam Array disimpan sebagai bagian dari obyek Array di dalam atribut length. Atribut ini dapat digunakan untuk melakukan proses iterasi pada Array seperti dalam contoh berikut :
int list[] = new int[10];
for(int i = 0; i <>
System.out.println(list[i]);
}
Dengan menggunakan atribut length, pemeliharaan kode program menjadi mudah karena program tidak perlu mengetahui jumlah eleman Array pada saat kompilasi.
e. manipulasi Array
1.mengubah ukuran array
Setelah membuat obyek Array, ukuran Array tersebut tidak dapat diubah. namun demikian, dapat digunakan variabel referensi yang sama untuk menunjuk ke sebuah obyek Array baru seperti dalam contoh di bawah ini :
int myArray[] = new int[6];
myArray = new int[10];
Dalam kode program ini, obyek Array yang pertama akan hilang kecuali ada variabel lain yang dibuat untuk merujuk ke obyek Array tersebut.
2.menyalin array
Bahasa Java menyediakan method khusus untuk menyalin Array, yaitu dengan menggunakan method arrayCopy() dari kelas System seperti dalam contoh berikut :
// array semula
int myArray[] = {1, 2, 3, 4, 5, 6};
// array engan elemen yang lebih banyak
int hold[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
//menyalin semua elemen myArray ke hold
// dimulai dengan indeks ke 0
System.arraycopy(myArray, 0, hold, 0,myArray.length);
Setelah proses pengkopian di atas, maka isi dari Array hold adalah 1,
2, 3, 4, 5, 6, 4, 3, 2, 1.
sumber :
Konsep Dasar pemgogramman berbasis objek
handout from UIN
maaf karena tidak ada gambar yang ditampilkan dikarenakan pada saat upload gambar selalu error, mohon saran dan kritiknya. Terima kasih.
Selasa, 27 April 2010
Tugas Java
1. Konsep Dasar OOP
• Enkapsulasi (Encapsulation)
• Pewarisan (Inheritance)
• Polimorfisme (Polymorphism)
apa itu OOP?
• Paradigma pemrograman yang memandang sistem yang akan
dibangun berdasarkan objek-objek yang terlibat dan
interaksinya dalam sistem
• Sistem dibangun dengan membuat objek‐objek dan
menginteraksikannya untuk menyelesaikan suatu pekerjaan
• Fungsi dan data menjadi satu kesatuan yang disebut sebagai
Object
• program adalah serangkaian object yang berinteraksi untuk
menyelesaikan suatu problem.
apa itu object?
• An object is a software bundle of related state and behavior
• Semua benda yang ada di dunia nyata dapat dianggap sebagai
obyek.
• Contoh : rumah, mobil, sepeda, motor, gelas, komputer, meja
dll.
• combination of code and data
• calling a function = sending a message
• implementation of function = method
karakteristik object
• Setiap obyek memiliki status atau (state/fields/atribut/data)
• Setiap obyek memiliki
perilaku(behavior/method/fungsi/prosedur)
• Contoh: obyek sepeda
– Memiliki state : kecepatan, putaran mesin, posisi gir, warna,
jumlah roda.
– Memiliki behavior : mempercepat laju (accelerate),
memperlambat laju (break), pindah gir, merubah warna
class and the following structure
• Definisi class :
‐ merupakan p template untuk membuat obyek.
‐ merupakan prototipe / blue print yang
mendefinisikan variable dan method secara umum.
• Obyek (instances of class) merupakan hasil instansiasi
dari suatu class, proses pembentukan obyek dari suatu
class disebut dengan instantiation.
• Objek‐objek yang dibuat dari class yang sama
mempunyai atribut dan method yang sama, namun
nilainya bisa saja berbeda
atribut
• Definisi atribut : adalah data yang dimiliki objek
dan membedakan antara obyek satu dengan
yang lain.
• Dalam class atribut disebut Variabel.
• Contoh objek manusia mempunyai atribut:
nama, tinggi badan, berat badan, warna kulit,
jenis rambut, dll
variabel
•
yang sama.
•
•
sama atau beda
•
dari class yang sama.
•
•
nilai yang sama.
behavior
• Behavior / perilaku adalah hal‐hal yang bisa dilakukan oleh
obyek dari suatu class.
• Behavior dapat digunakan untuk mengubah nilai atribut suatu
obyek, menerima informasi dari obyek lain, dan mengirim
informasi ke obyek lain untuk melakukan suatu tugas.
• Dalam class, behavior disebut juga sebagai methods.
• Contoh manusia memiliki perilaku:
jalan, lari, duduk, menyapa, makan, dll.
method
• Method: adalah suatu perintah dalam class
