JURUSAN TEKNOLOGI INFORMASI FAKULTAS TEKNIK UNIVERSITAS UDAYANA 2014 1. Jalankan file eclipse.exe yang ada di C:\Android\Eclipse. Akan muncul splash screen aplikasi seperti berikut ini:
2. Selanjutnya akan muncul dialog box dan isi G:\Android1 atau direktori lain yang diinginkan yang sudah berisi folder Android1 pada workspace field. Tampilannya seperti berikut ini:
3. Setelah itu akan muncul tampilan awal aplikasi seperti berikut:
4. Pertama buatlah Android Application Project dengan cara klik File > New > Android Application Project
5. Setelah itu muncul dialog box seperti berikut:
Isi Application Name dan Project Name dengan TicTacToe. Package name diberi nama cynthia.ranis.TicTacToe. Tentukan juga Minimum Required SDK yaitu API 8: Android 2.2 (Froyo), Target SDK dan Compile With API 19: Android 4.4.2 (Kitkat), serta Theme Holo Light with Dark Action Bar. Kemudian tekan button Next. 6. Selanjutnya hilangkan centang pada Create activity sehingga tampilannya akan menjadi seperti berikut ini:
7. Selanjutnya memilih icon untuk launcher aplikasi, tekan Finish jika sudah selesai memilih. Berikut tampilannya:
8. Buat package baru dengan cara klik kanan pada src dari project TicTacToe > New > Package.
9. Berikan nama pada package yang akan dibuat lalu tekan button finish seperti gambar berikut:
10. Buatlah class baru dengan cara klik kanan package yang telah dibuat > New > Class seperti gambar berikut:
11. Berikan nama pada java class yang baru lalu klik button Finish seperti berikut:
12. Ketikkan kode program dibawah ini pada class TicTacToeModel.java: package cynthia.ranis.tictactoe;
enum Piece {X,O,_};
public class TicTacToeModel { private final int GRID_WIDTH = 3; private final int GRID_HEIGHT = 3;
public Piece getCurrentPlayer(){ return currentPlayer; }
public void setValue(int row, int col, Piece p){ board[row][col] = p; togglePlayer(); }
public Piece getValue(int row, int col){ return board[row][col]; }
public Piece checkWinner(){ Piece winner = Piece._;
// Check for Rows That Win for (int i = 0; i < GRID_HEIGHT; i++) if (winner != Piece._ && board[i][0] == board[i][1] && board[i][1] == board[i][2]) winner = board[i][0];
// Check for Columns That Win for (int i = 0; i < GRID_HEIGHT; i++) if (winner != Piece._ && board[0][i] == board[1][i] && board[1][i] == board[2][i]) winner = board[0][i];
// Check the Two Diagonals if (winner != Piece._ && board[0][0] == board[1][1] && board[1][1] == board[2][2]) winner = board[0][0]; if (winner != Piece._ && board[0][2] == board[1][1] && board[1][1] == board[2][0]) winner = board[0][2];
return winner; } } Berikut tampilannya:
13. Selanjutnya klik file > New > Other seperti gambar berikut:
14. Kemudian pilih Android Test Project seperti gambar berikut:
15. Berikan nama untuk Project Name kemudian klik button Next seperti gambar berikut ini:
16. Selanjutnya pilih target yang akan di test yaitu TicTacToe lalu klik button Finish.
17. Klik kanan project TicTacToeTest > New > JUnit Test Case seperti berikut:
18. Berikan nama TicTacToeModelTest untuk JUnit Test Case lalu klik button Finish seperti berikut:
19. Pada dialog box yang muncul, pilih Perform the following action yang berisi Add JUnit 4 library to the build path seperti pada gambar berikut:
20. Isikan kode program berikut pada TicTacToeModel.java: package cynthia.ranis.tictactoe;
public class TicTacToeModel { public enum Piece { X, O, _}; private final int GRID_WIDTH = 3; private final int GRID_HEIGHT = 3;
public Piece getCurrentPlayer(){ return currentPlayer; }
public void setValue(int row, int col, Piece p){ board[row][col] = p; togglePlayer(); }
public Piece getValue(int row, int col){ return board[row][col]; }
public Piece checkWinner(){ Piece winner = Piece._;
// Check for Rows That Win for (int i = 0; i < GRID_HEIGHT; i++) if (winner != Piece._ && board[i][0] == board[i][1] && board[i][1] == board[i][2]) winner = board[i][0];
// Check for Columns That Win for (int i = 0; i < GRID_HEIGHT; i++) if (winner != Piece._ && board[0][i] == board[1][i] && board[1][i] == board[2][i]) winner = board[0][i];
// Check the Two Diagonals if (winner != Piece._ && board[0][0] == board[1][1] && board[1][1] == board[2][2]) winner = board[0][0]; if (winner != Piece._ && board[0][2] == board[1][1] && board[1][1] == board[2][0]) winner = board[0][2];
return winner; } } Berikut tampilannya:
21. Isikan kode program berikut pada TicTacToeModelTest.java: package cynthia.ranis.tictactoe.test;
@Test public void testSanity() { TicTacToeModel board = new TicTacToeModel(); board.setValue(0, 0, Piece.X); assertEquals(board.getCurrentPlayer(), Piece.O); } } Berikut tampilannya:
22. Selanjutnya klik kanan pada TicTacToeModelTest.java > Run As > 2 JUnit Test atau tekan Alt+Shift+X, T pada keyboard seperti pada gambar berikut:
23. Centang Use configuration specific settings, pilih Eclipse JUnit Launcher lalu tekan button OK seperti pada gambar berikut:
24. Jika sudah berhasil di-run maka test ini sudah berhasil
25. Langkah selanjutnya mengecek properties dari project TicTacToe dengan cara klik kanan project TicTacToe > Properties atau dengan menekan Alt+Enter pada keyboard seperti pada gambar berikut:
26. Pilih menu Android lalu tekan button Add.
27. Setelah itu pilih AndEngine lalu klik OK.
28. Buat class baru dan beri nama TicTacToeActivity lalu klik button Browse
29. Ketikkan SimpleBaseGameActivity lalu klik OK
30. Klik button Add pada sub menu interface kemudian ketikkan OnClick dan pilih opsi yang paling bawah atau yang ketiga lalu klik OK dan Finish
31. Kemudian buatlah java class dengan nama TicTacToeActivity seperti gambar dibawah ini:
for (int i = 0; i < GRID_WIDTH; i++){ lineX[i] = CAMERA_WIDTH / GRID_WIDTH * i; touchX[i] = lineX[i] + paddingX; } for (int i = 0; i < GRID_HEIGHT; i++){ lineY[i] = CAMERA_HEIGHT / GRID_HEIGHT * i; touchY[i] = lineY[i] + paddingY; }
// Draw The Grid Lines for (int i = 1; i < GRID_WIDTH; i++) { final Line line = new Line(lineX[i], 0, lineX[i], CAMERA_HEIGHT, STROKE_WIDTH, VBOManager); scene.attachChild(line); } for (int i = 1; i < GRID_HEIGHT; i++) { final Line line = new Line(0, lineY[i], CAMERA_WIDTH, lineY[i], STROKE_WIDTH, VBOManager); scene.attachChild(line); }
// Lay Out The ButonSprites for (int i = 0; i < GRID_WIDTH; i++) for (int j = 0; j < GRID_HEIGHT; j++){ final ButtonSprite button = new ButtonSprite(touchX[1], touchY[0], this.mBlankTextureRegion, this.mXTextureRegion, this.mOTextureRegion, VBOManager, this); scene.registerTouchArea(button); scene.attachChild(button); gridSprite[i][j] = button; } return scene; }
public int getCAMERA_WIDTH() { return CAMERA_WIDTH; } public int getCAMERA_HEIGHT() { return CAMERA_HEIGHT; }
public int getGRID_WIDTH() { return GRID_WIDTH; }
public int getGRID_HEIGHT() { return GRID_HEIGHT; } }
Berikut tampilan gambar java class TicTacToeActivity:
33. Pilih AndroidManifest.xml pada project TicTacToe di package explorer. Pilih menu application seperti gambar dibawah ini:
34. Pada Application Nodes tekan butoon Add seperti gambar dibawah ini:
35. Kemudian pilih Activity dan tekan button OK
36. Kemudian pilih item TicTacToeActivity cynthia.ranis.tictactoe lalu kiln button OK
37. Pada Application Nodes, klik kanan java class Activity lalu klik Add..
38. Pilih Intent Filter lalu klik OK
39. Pada Application Nodes, klik kanan Intent Filter di dalam java class Activity lalu klik Add..
40. Pilih Action lalu klik OK
41. Pada Attributes for Action pilih android.intent.action.MAIN
42. Pada Application Nodes, klik kanan Intent Filter di dalam java class Activity lalu klik Add > Category > OK
43. Pada Attributes for Action pilih android.intent.category.LAUNCHER. Kemudian tekan Ctrl+S untuk menyimpan pengaturan pada AndroidManifest.xml.
44. Run dengan Android Device Simulator seperti berikut ini:
45. Berikut tampilan awal game sederhana Tic Tac Toe:
46. Jika player 2 menang maka akan muncul tampilan seperti berikut:
47. Jika game berakhir seri, maka akan muncul tampilan seperti berikut:
48. Berikut revisi kode program pada TicTacToeActivity.java: package cynthia.ranis.tictactoe;
public class TicTacToeActivity extends SimpleBaseGameActivity implements OnClickListener { final private int CAMERA_WIDTH = 480; final private int CAMERA_HEIGHT = 480;
final private int GRID_WIDTH = 3; final private int GRID_HEIGHT = 3;
//draw grid line for(int i = 1; i < GRID_WIDTH; i++){ final Line line = new Line(lineX[i], 0, lineX[i], CAMERA_HEIGHT, STROKE_WIDTH, VBOManager); line.setColor(0.15f, 0.15f, 0.15f); scene.attachChild(line); } for(int i = 1; i < GRID_HEIGHT; i++){ final Line line = new Line(0, lineY[i], CAMERA_WIDTH, lineY[i], STROKE_WIDTH, VBOManager); line.setColor(0.15f, 0.15f, 0.15f); scene.attachChild(line); }
//button sprite for(int i = 0; i < GRID_WIDTH; i++) for(int j = 0; j < GRID_HEIGHT; j++){ final ButtonSprite button = new ButtonSprite(touchX[i], touchY[j], this.mBlankTextureRegion, this.mXTextureRegion, this.mOTextureRegion, VBOManager, this); scene.registerTouchArea(button); scene.attachChild(button); gridSprite[i][j] = button; } scene.setTouchAreaBindingOnActionDownEnabled(true);