Showing posts with label JAVA. Show all posts
Showing posts with label JAVA. Show all posts

Tuesday, November 29, 2011

CATUR SEDERHANA dengan JAVA (TUGAS 3 DDP)

package Chess;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

/**
*
* @author Resika Arthana, Samuel Louvan
*/
public class CForm extends JFrame implements MouseListener {

public static PanelChess[][] panel = new PanelChess[8][8];
PanelChess PanelTemp; //menampung panel yang diklik sebelumnya
Piece pieceTemp; //menampung piece yang diklik sebeluumnya
Color cBackgroundJP; //menyimpan warna panel yang diklik

public static void main(String args[]) {
CForm cf = new CForm();
cf.createMainBoard();
}

public void createMainBoard() {
JFrame mainBoard = new JFrame();
mainBoard.setResizable(false);
mainBoard.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainBoard.setLayout(new BorderLayout());
mainBoard.add(createMenuPanel(), BorderLayout.NORTH);
mainBoard.add(createChessBoard(), BorderLayout.CENTER);
mainBoard.setSize(600, 700);
mainBoard.setVisible(true);
}

public JPanel createMenuPanel() {
JPanel panelMenu = new JPanel();


return panelMenu;
}

public JPanel createChessBoard() {
JPanel jf = new JPanel();
jf.setLayout(new GridLayout(8, 8)); //gunakan layout grid 8 x 8
jf.setSize(600, 600);
//PanelChess sebagai panel untuk menampung piece
/*
* Selanjutnya mengatur warna panel menjadi hitam dan putih
*/
boolean isBlack = true;

for (int i = 0; i < 8; i++) {
isBlack = (i % 2 == 0 ? true : false);
for (int j = 0; j < 8; j++) {
panel[i][j] = new PanelChess();
panel[i][j].setPosition(i, j);
/* TODO IMPLEMENTASI ANDA*/
if (isBlack) {
panel[i][j].setBackground(Color.BLACK);
} else {
panel[i][j].setBackground(Color.WHITE);
}
isBlack = !isBlack;
panel[i][j].addMouseListener(this); //menambah listener
jf.add(panel[i][j]);
}
}

/*
* Selanjutnya menambah piece pada panel
*/
for (int x = 0; x < 8; x++) {
panel[6][x].add(new Pawn());
}
panel[7][1].add(new Knight());
panel[7][6].add(new Knight());
panel[7][0].add(new Rook());
panel[7][7].add(new Rook());
panel[7][2].add(new Bishop());
panel[7][5].add(new Bishop());
panel[7][4].add(new King());
panel[7][3].add(new Queen());

/* TODO IMPLEMENTASI ANDA
Tambahkan piece catur yang lain ke dalam panel
yaitu Rook, Knight, Bishop, King Queen */


jf.setVisible(true);

return jf;
}

public void mouseClicked(MouseEvent e) {
PanelChess panelChess = (PanelChess) e.getComponent();
/* jika tidak ada piece yang diklik sebelumnya (pieceTemp kosong) maka
* jika panelChess yang diklik terdapat piece maka ambil piece tersebut
* simpan piecetemp, panel juga disimpan
* Jika ada piece yang diklik selanjutnya maka
* jika panelChess yang diklik saat ini kosong maka taruh piece yang ada pada piecetemp
* jika ternyata pada panelchess sudah ada piece maka anggap piece tersebut yang akan dipindah
*/
if (pieceTemp == null) {
if (panelChess.getComponentCount() != 0) {
Piece piece = (Piece) panelChess.getComponents()[0];
PanelTemp = panelChess;
pieceTemp = piece;
cBackgroundJP = panelChess.getBackground();
panelChess.setBackground(Color.GREEN);
panelChess.updateUI();
pieceTemp.updateUI();
}
} else {
PanelTemp.setBackground(cBackgroundJP);
if (panelChess.getComponentCount() == 0) {
/* KASUS VALID*/
if (pieceTemp.isValidMove(PanelTemp.getRowPosition(), PanelTemp.getColPosition(), panelChess.getRowPosition(), panelChess.getColPosition())) {
panelChess.add(pieceTemp);
PanelTemp.removeAll();
PanelTemp.updateUI();
panelChess.updateUI();
pieceTemp.updateUI();
pieceTemp = null;
} else {
/* KASUS TIDAK VALID
TODO IMPLEMENTASI ANDA
.....*/
PanelTemp.setBackground(Color.RED);
JOptionPane.showMessageDialog(null, "Langkah Anda tidak benar /n Silahkan coba lagi ^_^");

}

} else {
Piece piece = (Piece) panelChess.getComponents()[0];
PanelTemp = panelChess;
pieceTemp = piece;
cBackgroundJP = panelChess.getBackground();
panelChess.setBackground(Color.GREEN);
panelChess.updateUI();
pieceTemp.updateUI();
}

}
}

public void mousePressed(MouseEvent e) {
// throw new UnsupportedOperationException("Not supported yet.");
}

public void mouseReleased(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet.");
}

public void mouseEntered(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet.");
}

public void mouseExited(MouseEvent e) {
// throw new UnsupportedOperationException("Not supported yet.");
}
}



+++++++++++++++++++++++++++++++++++++++++++++++++

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

/**
*
* @author amin
*/
public class Bishop extends Piece {

public Bishop(){

super("/Chess/resource/bishop.png");
}
public boolean isValidMove(int oldRow, int oldCol, int newRow, int newCol) {
boolean validMove = (Math.abs(oldRow-newRow)==Math.abs(oldCol-newCol));
boolean noPawn=true;

int y = oldRow;
int x = oldCol;

for (int i=0; inewCol){
if(oldRow>newRow){
x--;
y--;
}else{
x--;
y++;
}
}else{
if(oldRow>newRow){
x++;
y--;
}else{
x++;
y++;
}
}

if(CForm.panel[y][x].getComponentCount()!=0){
noPawn = false;
break;
}


}

return validMove && noPawn;
}



}


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

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

/**
*
* @author amin
*/
public class King extends Piece {

public King(){

super("/Chess/resource/king.png");
}
public boolean isValidMove(int oldRow, int oldCol, int newRow, int newCol) {
return ((oldCol==newCol)&&( Math.abs(oldRow-newRow)==1)||(Math.abs(oldCol-newCol)==1)&&( oldRow==newRow)||(Math.abs(oldCol-newCol)==1)&&Math.abs( oldRow-newRow)==1);
}



}


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++


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

/**
*
* @author amin
*/
public class Knight extends Piece {

public Knight(){

super("/Chess/resource/knight.png");
}
public boolean isValidMove(int oldRow, int oldCol, int newRow, int newCol) {

return ((Math.abs(oldRow-newRow)==1 &&Math.abs(oldCol-newCol)==2)|| (Math.abs(oldRow-newRow)==2&&Math.abs(oldCol-newCol)==1));

}
}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

package Chess;
import javax.swing.JPanel;
/**
*
* @author Resika Arthana
*/
public class PanelChess extends JPanel {
private int rowPosition=0;
private int colPosition=0;

public void setPosition(int rowPosition, int colPosition){
this.rowPosition=rowPosition;
this.colPosition=colPosition;
}
public int getRowPosition(){
return rowPosition;
}
public int getColPosition(){
return colPosition;
}

}
+++++++++++++++++++++++++++++++++++++++++++++++++


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

package Chess;
/**
*
* @author Resika Arthana, Samuel Louvan
*/
public class Pawn extends Piece {

public Pawn(){

super("/Chess/resource/pawn.png");
}
public boolean isValidMove(int oldRow, int oldCol, int newRow, int newCol) {
return ((oldCol==newCol && oldRow-newRow==1) || ((oldCol==newCol) && (oldRow==6) && (oldRow-newRow==2) && (CForm.panel[5][oldCol].getComponentCount()==0)));
}



}


++++++++++++++++++++++++++++++++++++++++++++++++++++++++

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

package Chess;
import javax.swing.ImageIcon;
import javax.swing.JLabel;

/**
*
* @author Resika Arthana, Samuel Louvan
*/
public abstract class Piece extends JLabel {
abstract public boolean isValidMove(int oldRow, int oldCol, int newRow, int newCol);
public Piece(String str) {
this.setIcon(new ImageIcon(getClass().getResource(str)));
}
}


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


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

/**
*
* @author amin
*/
public class Queen extends Piece {

public Queen(){

super("/Chess/resource/queen.png");
}
public boolean isValidMove(int oldRow, int oldCol, int newRow, int newCol) {
boolean validMove = ((Math.abs(oldRow-newRow)==Math.abs(oldCol-newCol))||((oldRow==newRow)||(oldCol==newCol)));
boolean noPawn=true;
int start = 0;
int end = 0;

if (oldCol==newCol){
if (oldRow>newRow)
{
start = newRow;
end=oldRow;
}else{
start = oldRow;
end=newRow;
}
for(int i = start+1; inewCol)
{
start = newCol;
end=oldCol;
}else{
start = oldCol;
end=newCol;
}
for(int i = start+1; inewCol){
if(oldRow>newRow){
x--;
y--;
}else{
x--;
y++;
}
}else{
if(oldRow>newRow){
x++;
y--;
}else{
x++;
y++;
}
}

if(CForm.panel[y][x].getComponentCount()!=0){
noPawn = false;
break;
}


}



return validMove && noPawn;
}



}




+++++++++++++++++++++++++++++++++++++++++


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

/**
*
* @author amin
*/
public class Rook extends Piece {

public Rook(){

super("/Chess/resource/rook.png");
}
public boolean isValidMove(int oldRow, int oldCol, int newRow, int newCol) {
boolean validMove = (oldRow==newRow)||(oldCol==newCol);
boolean noPawn = true;

int start = 0;
int end = 0;

if (oldCol==newCol){
if (oldRow>newRow)
{
start = newRow;
end=oldRow;
}else{
start = oldRow;
end=newRow;
}
for(int i = start+1; inewCol)
{
start = newCol;
end=oldCol;
}else{
start = oldCol;
end=newCol;
}
for(int i = start+1; i
Facebook

Monday, October 24, 2011

membuat angka spiral dengan java

/*
JOptionPane memudahkan untuk memunculkan kotak dialog standar yang meminta pengguna memasukkan nilai atau menginformasikan sesuatu

Disini JOptionPane digunakan untuk meminta Pengguna untuk memasukkan ukuran matriks
*/

import javax.swing.JOptionPane;



/*
*Author : Al Amin
*NPM : 1106011096
*Kelas : DDP A
*kelompok asisten : kak Wendra
*nama program : Spiral
*Penjelasan : Program ini mengisi array 2 dimensi yang berukuran N*N dengan format pengisian dimulai dari kulit array baris terluar mengikuti arah putaran jarum jam, diteruskan masuk ke kulit array yang lebih dalam mengikuti arah putaran jarum jam dan seterusnya seperti membentuk spiral. Bilangan yang dituliskan dimulai dari bilangan 0 sampai 9 kemudian , setelah menuliskan angka 9, kembali mulai dari angka 0.
Program ini akan membaca bilangan N yang dimasukkan oleh Pengguna, kemudian akan menuliskan angka-angka tersebut pada matriks NxN dengan bentuk spiral.
*/

/*
nama kelas harus sama dengan nama file
*/

public class spiral {

/*
method utama dari sebuah program, apabila method ini tidak di cantumkan , maka program tidak bisa dijalankan, karena tidak punya main method
*/
public static void main(String args[]) {
//membuat variabel n yang digunakan untuk menyimpan nilai yang dimasukkan Pengguna serta digunakan sebagai ukuran matriks
int n=0;

/*
membuat perintah masukkan dari pengguna untuk mendapatkan nilai N sebagai ukuran matriks. Apabila pengguna memasukkan data bukan bilangan bulat maka akan muncul pesan peringantan
*/

boolean salahMasukkan;
salahMasukkan = true;
while (salahMasukkan) {
try {
/**
* memberikan perintah supaya program bisa keluar setelah diklik tombol cancel, karena default dari JOptionPane apabila diklik tombol cancel maka program tetap jalan
*/
String tmp = JOptionPane.showInputDialog("Masukkan lebar kotak angka spiral !");
if (tmp == null) {
System.exit(0);
}

/**
* meng-casting dari string ke integer, karena JOptionPane tipenya string
*/
n = Integer.parseInt(tmp);
salahMasukkan = false;
}

catch (NumberFormatException e) {

pesanPeringatan();
}
}
//membuat variabel sisi bertipe integer yang digunakan untuk looping
int sisi = n;
//membuat array 2D label bertipe integer
int label[][] = new int[n][n];
//membuat variabel angka yang digunakan untuk mengisikan angka dari kulit array luar ke kulit array dalam
int angka = 0;
//membuat for looping untuk merancang indeks array mana saja yang akan diisi terlebih dahulu
for (int i = 0; i < n; i++) {

//mengisikan angka pada sisi atas pada array 2D
for (int j = 0; j < sisi; j++) {
label[i][i+j] = angka++;
//membuat mod angka supaya setelah angka 9 bisa kembali ke 0 lagi
angka %= 10;
}
//mengisikan angka pada sisi kanan pada array 2D

for (int j = 1; j < sisi; j++) {
label[i + j][n - 1 - i] = angka++;
angka %= 10;
}
//mengisikan angka pada sisi bawah pada array 2D
for (int j = sisi - 2; j > -1; j--) {
label[n - i - 1][i + j] = angka++;
angka %= 10;
}
//mengisikan angka pada sisi kiri pada array 2D
for (int j = sisi - 2; j > 0; j--) {
label[i + j][i] = angka++;
angka %= 10;
}
//mengurangi nilai sisi dengan 2 supaya membentuk pola dan pengisian angka tidak saling menimpa
sisi=sisi-2;
}

//mencetak array 'tabel' dan isinya yaitu urutan angka berbentuk spiral
for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {
System.out.print(label[i][j] + " ");
}
System.out.println("\n");

}
}
/* Memberikan pesan peringatan kepada pengguna apabila salah memberikan input
*/
public static void pesanPeringatan() {
JOptionPane.showMessageDialog(null, "Maaf , masukkan Anda bukan bilangan bulat!!! \n Silahkan coba lagi ^_^");
}
}
Facebook

Wednesday, October 19, 2011

Array

/*
mengimport class Scanner yang akan digunakan untuk meminta User supaya memasukkan jumlah teman dan umur teman
*/
import java.util.Scanner;


/*
*Author : Al Amin
*NPM : 1106011096
*Kelas : DDP A
*kelompok asisten : kak Wendra
*nama program : UmurTeman
*Penjelasan : Program ini akan mencari umur teman tertua, umur teman termuda, serta rata-rata dari umur teman yang telah dimasukkan oleh user/Pengguna. Output program ini adalah umur teman tertua, umur teman termuda, dan rata-rata umur teman
*/


/*
nama kelas harus sama dengan nama file
*/

public class UmurTeman {

/*
method utama dari sebuah program, apabila method ini tidak di cantumkan , maka program tidak bisa dijalankan, karena tidak punya main method
*/
public static void main(String[] args) {
// membuat variabel max sebagai variabel temporal untuk menghitung umur teman tertua dengan memberikan nilai angka seminimal mungkin yang nantinya akan dibandingkan dengan umur- umur teman yang telah dimasukkan
int max = -1;
// membuat variabel min sebagai variabel temporal untuk menghitung umur teman termuda dengan memberikan nilai angka semaksimal mungkin yang nantinya akan dibandingkan dengan umur - umur teman yang telah dimasukkan
int min = 99999999;
// membuat variabel rata untuk menghitung rata-rata umur teman
double rata = 0;
// membuat variabel rataInt untuk mengubah menjadi integer
int rataInt;
// membuat variabel i sebagai indeks sebuah array yang juga digunakan untuk looping
int i;
// membuat variabel nilai untuk menyimpan jumlah umur teman
double nilai = 0;
// membuat perintah supaya pengguna memasukkan jumlah teman dan umur teman. Kemudian program ini akan mencari umur tertua,termuda, dan rata rata umur teman

Scanner masukan = new Scanner(System.in);

//Pengguna memasukkan jumlah teman

System.out.print("Masukkan jumlah teman Anda: ");
int jumlahTeman = masukan.nextInt();
//membuat array umur bertipe integer
int[] umur = new int[jumlahTeman];

//membuat for looping untuk mencari indeks array umur
for (i = 0; i < jumlahTeman; i++) {
//Pengguna memasukkan umur-umur teman sebanyak jumlah teman yang telah dimasukkan
System.out.print(" Umur teman ke-" + (i + 1) + " : ");
umur[i] = masukan.nextInt();
// mencari umur tertua dengan menggunakan variabel temporal max
if (umur[i] > max) {
max = umur[i];
}

// mencari umur termuda dengan menggunakan variabel temporal min
if (umur[i] < min) {
min = umur[i];
}
// mencari jumlah umur seluruh teman
nilai = nilai + umur[i];
}
// menghitung rata-rata umur teman
rata = nilai / jumlahTeman;
// mengubah hasil rata-rata supaya hanya ada 2 angka di belakang koma
rata = rata * 100;
rataInt = (int) rata;
rata = rataInt / 100.0;
//mencetak umur teman tertua, umur teman termuda, dan rata-rata umur teman
System.out.println("Umur teman tertua : " + max +" tahun ");
System.out.println("Umur teman termuda : " + min +" tahun ");
System.out.println("Rata-rata umur teman : " + rata +" tahun " );



}
}
Facebook

Monday, September 19, 2011

Latihan Java 8 (Use Methods With Paramaters)

yang dipanggil:

public class java8
{
public void amin(String nama)
{
System.out.print("halo, "+nama);
System.out.print(" ? piye kabere?? ");
}

}

yang memanggil:

import java.util.Scanner;

public class javaa8
{
public static void main(String[] args)
{
Scanner masukkan = new Scanner(System.in);
java8 asik = new java8();

System.out.print("monggo dipunketik asmanipun Panjenengan : ");
String nama = masukkan.nextLine();

asik.amin(nama);

}

}



output:

monggo dipunketik asmanipun Panjenengan :
'nama kamu'
(enter)
halo, 'nama kamu' ? piye kabare??
Facebook

Sunday, September 18, 2011

Using Multiple Class

yang dipanggil:

public class duakelas
{
public void amin()
{
System.out.println("Kulo Nuwun !!!") ;
}

}


yang memanggil:

public class duakelass
{
public static void main(String[] args)
{
duakelas asik = new duakelas();
asik.amin();
}
}


output: Kulo Nuwun !!!
Facebook

Latihan Java 7 (Switch Statement)

public class SwitchStatement {
public static void main(String[] args)
{
int umur;
umur = 1;
switch (umur)
{
case 78:
System.out.println("kowe wes meh modar !!!");
break;
case 8:
System.out.println("Anda masih tk");
break;
case 1:
System.out.println("kowe jik bayi , nggeng !!!");
break;
default:
System.out.println("aku ramudeng kowe sopo !!!");
break;
}
}
}





output:kowe jik bayi , nggeng !!!
Facebook

Saturday, September 17, 2011

Latihan Java 6 (While loop)

public class java6
{
public static void main(String[] args)
{
int asik = 1;
while ( asik < 11) {System.out.println(asik);++asik;}
}

}

output:
1
2
3
4
5
6
7
8
9
10

public class java6 {

public static void main(String args[])
{
int asik = 20;
while(asik > 10){System.out.println(asik);asik--;}

}
}

output:
20
19
18
17
16
15
16
15
14
13
12
11
Facebook

latihan java 5 (Logical Operators)

public class java5
{
public static void main(String args[])
{
int aaa, bbb;

aaa = 10;
bbb = 56;
if(aaa > 8 && bbb <45)
{System.out.println("asiiiiiikkkk");}
else
{System.out.println("gaaa asiiiikkkk");}

}

}

output: gaaa asiiiikkkk


public class java5
{
public static void main(String args[])
{
int aaa, bbb;

aaa = 10;
bbb = 56;
if(aaa > 8 || bbb <45)
{System.out.println("asiiiiiikkkk");}
else
{System.out.println("gaaa asiiiikkkk");}

}

}

output: asiiiiiikkkk
Facebook

Latihan java 4 (If Statement)

public class java4
{
public static void main(String[] args)
{
int mencoba = 10;
if(mencoba == 8)
{System.out.println("Manntappp, gan!!!");}
else{System.out.println("wookeeeyy");}

}


}

output: wookeeyy
Facebook

Tuesday, September 13, 2011

Latihan Java 3 (Building a Basic Calculator)

import java.util.Scanner;

class java3 {

public static void main (String args[])
{
Scanner amin = new Scanner(System.in);
double pertama, kedua, jawaban;
System.out.print("Masukkan angka pertama anda: ") ;
pertama = amin.nextDouble();
System.out.print("Monggo panjenengan lebetaken angka kaping kalih: ");
kedua = amin.nextDouble();
jawaban = pertama + kedua ;
System.out.print(jawaban);
}

}
Facebook

Latihan Java 2 (Getting User Input)

import java.util.Scanner;

class java2 {

public static void main ( String args[])
{
Scanner aku = new Scanner (System.in);
System.out.println(aku.nextLine());
}

}
Facebook

Latihan Java 1 (variable)

public class java1 {

public static void main (String args [])
{
double amin;
amin = 10091993;
double waang;
waang = 140819.93 ;
System.out.print("hey,");
System.out.println("how are you there?");
System.out.print(amin);
System.out.print("in my mind");
System.out.print(waang);
}
}
Facebook