Anda di halaman 1dari 33

LAPORAN TUGAS BESAR

PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK


SEMESTER GENAP 2017-2018

{Ping Pong Game}

Disusun oleh :

Samsurijal (F1D014085)
Anak Agung Angga Dwipa (F1D015007)
Ardi Sujiarta (F1D015011)
Nurhalimah (F1D015063)

Assisten pembimbing :

Suwardiman

LABORATORIUM SISTEM CERDAS


PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MATARAM
2017
LEMBAR PENGESAHAN
LAPORAN TUGAS BESAR
PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Dikerjakan oleh :

Samsurijal (F1D014085)
Anak Agung Angga Dwipa (F1D015007)
Ardi Sujiarta (F1D015011)
Nurhalimah (F1D015063)

Mengetahui,

Asisten Pembimbing, Kepala Laboratorium Sistem


cerdas,

( Suwardiman ) ( Royana Afwani, S.T.,M.T )


NIM : F1D014090 NIP : 1985070720140420001
Daftar Isi
Daftar Isi .......................................................................................................................................... 3
BAB 1 PENDAHULUAN ..................................................................................................................... 4
1.1. Latar Belakang ................................................................................................................. 4
1.2. Deskripsi Aplikasi ............................................................................................................. 5
1.3. Batasan Masalah ............................................................................................................. 6
1.4. Tujuan .............................................................................................................................. 6
BAB 2 ANALISA DAN DESAIN ........................................................................................................... 7
2.1. Use Case Diagram ............................................................................................................ 7
2.2. Class Diagram .................................................................................................................. 8
2.3. Deskripsi Kelas ................................................................................................................. 9
BAB 3 IMPLEMENTASI ................................................................................................................... 28
3.1 Implementation Class Diagram ..................................................................................... 28
3.2 Implementasi Konsep Pemrograman Berorientasi Objek ............................................. 29
BAB 4 PENUTUP ............................................................................................................................. 32
4.1 Kesimpulan .................................................................................................................... 32
4.2 Saran .............................................................................................................................. 32
Daftar Pustaka ............................................................................................................................... 33
LAMPIRAN ..................................................................................................................................... 33
BAB 1 PENDAHULUAN

1.1. Latar Belakang


Game merupakan media hiburan elektronik yang dapat membantu dalam
menghilangkan stress, meningkatkan konsentrasi serta sebagai sarana mengasah
kemampuan otak. Selain hal hal positif, tidak dipungkiri juga terdapat hal hal
negatif yang didapat apabila sudah kecanduan dan sampai lupa waktu saat bermain
game. Seiring dengan perkembangan teknologi, game yang beredar juga semakin
berkembang, dengan berbagai jenis kategori permaian dan diberbagai jenis
platform seperti console game, PC game, mobile game dan handheld game.
Tenis meja atau ping pong yaitu, suatu olahraga raket yang dimainkan oleh
dua orang (untuk tunggal) atau dua pasangan (untuk ganda) yang berlawanan.
Istilah kata ping pong merupakan nama resmi dari tenis meja untuk Republik
Rakyat Cina, namun di Indonesia juga tidak asing lagi dengan istilah ping pong.
Permainan ping pong sama dengan permainan badminton yaitu menggunakan
raket, namun raket untuk ping pong terbuat dari papan dan dilapisi dengan karet
atau sering disebut bet. Beberapa aturan dalam bermain ping pong yaitu, apabila
bola pemain A menyentuh net dan kembali daerahnya, maka poin tersebut untuk
pemain B, apabila pemain A melempar bola dan gagal melakukan pengembalian,
maka pemain B mendapatkan poin.
Berdasarkan permainan atau olahraga ping pong inilah, maka dibuat suatu
game berbasis java dengan menerapkan konsep Pemrograman Berorientasi Objek,
yang tentunya dapat melatih konsentrasi, strategi dan kejelian seperti saat
melakukan permaian olahraga ping pong. Pada Ping Pong Game akan diterapkan
beberapa aturan menyerupai olahraga ping pong, dimana game ini bersifat
multipayer atau dimainkan oleh dua orang pemain. Agar memperoleh kemenangan
maka user atau player harus mengumpulkan poin, dimana poin yang didapatkan
sesuai dengan aturan aturan yang diterapkan pada Ping Pong Game ini.
1.2. Deskripsi Aplikasi
Berisi dekskripsi tentang aplikasi yang anda buat Ping Pong Game
merupakan game dengan kategori sport, yang bersifat multiplayer atau dimainkan
oleh dua orang pemain. Pemain hanya perlu menekan keypad tertentu untuk
menggerakan stik ke arah atas atau bawah. Saat pertama kali menjalankan game
pemain akan diarahkan pada tampilan awal game. Pada tampilan awal, terdapat
empat tombol yang tersedia antara lain tombol Start Game, Rule & Control,
Last Score, dan Exit. Sebelum memulai permainan, pemain dapat memilih opsi
atau tombol Rule & Control terlebih dahulu, agar mengetahui aturan dan cara
memainkan game ini. Kemudian untuk memulai permainan, pemain harus memilih
opsi atau tombol Start Game pada halaman awal game. Setelah menekan Start
Game pemain diwajibkan untuk mengisi kolom nama dan memilih opsi warna stik
yang ingin digunakan. Baru kemudian kedua pemain akan diarahkan pada halaman
utama permainan.
Saat pemain berada pada halaman utama permainan, pemain harus
menggerakkan stik ke arah atas dan bawah dengan menekan tombol atau keypad
W (untuk menggerakan stik player1 ke atas), S (untuk menggerakan stik
player1 ke bawah), UP (untuk menggerakan stik player2 ke atas) dan DOWN
(untuk menggerakan stik player2 ke bawah). Tujuan pergerakan stik tersebut, agar
pemain dapat mengembalikan bola yang pukul dan dipantulkan oleh lawan atau
pemain lainnya. Apabila player1 tidak berhasil mengembalikan bola atau bola telah
melewati batas daerah stik player1, maka skor player2 akan bertambah 1 poin, dan
begitu juga sebaliknya. Batas perolehan skor yaitu sebanyak 5 poin, apabila salah
satu pemain berhasil meraih 5 poin terlebih dahulu, maka pemain tersebut akan
dinyatakan sebagai pemenangnya. Disela sela permainan, pemain dapat menekan
tombol SPACE untuk mem-pause game. Ketika game dalam kondisi di pause,
pemain dapat menekan tombol SPACE untuk melanjutkan permainan atau
tombol SHIFT untuk kembali ke menu utama
Setelah permainan dinyatakan selesai, maka akan ditampilkan nama
pemenang dan hasil perolehan skor player1 dan player2. Pemain dapat menekan
tombol SHIFT untuk bermain lagi atau menekan tombol ENTER untuk
kembali ke menu utama. Untuk mengetahui hasil perolehan skor dari pemain
pemain sebelumnya, dapat dilakukan dengan memilih tombol Last Score pada
halaman utama. Di halaman Last Score akan ditampilkan hasil perolehan skor
secara descending atau data hasil perolehan skor dari permainan terakhir akan
ditampilkan paling atas. Untuk keluar dari game, pemain dapat memilih tombol
Exit.

1.3. Batasan Masalah


Ping Pong Game merupakan aplikasi game yang dibuat dengan
menggunakan bahasa Java dan menerapkan konsep Pemrogramana Berorientasi
Objek. Game ini hanya dapat dimainkan oleh dua orang pemain saja menggunakan
keyboard.

1.4. Tujuan
Tujuan dari pembuatan aplikasi game ini adalah:
1. Menciptakan suatu media hiburan elektronik yang dapat membantu dalam
menghilangkan stress dan penat orang yang memainkannya.
2. Meningkatkan intelegensi masyarakat dengan bermain game.
3. Menjadi simulasi permainan olahraga ping pong, untuk melatih konsentrasi,
strategi dan kejelian seperti saat bermain olahraga ping pong aslinya.
BAB 2 ANALISA DAN DESAIN

2.1. Use Case Diagram


Uraikan siapa saja yang akan menggunakan aplikasi, kemudian jelaskan maksud
dari pembuatan usecase diagram, dan gambarkan usecase diagram dari aplikasi
2.2. Class Diagram

Gambar 2. Kelas utama


2.3. Deskripsi Kelas
2.3.1. Kelas Awalan
Fungsi
Kelas Awalan merupakan kelas dengan GUI (Graphical User
Interface), yang ditandai dengan adanya jLabel dan kelas meng-extends
javax.swing.JFrame. Kelas Awalan merupakan kelas yang dijalankan
pada saat program pertama kali dijalankan. Kelas Awalan terhubung
dengan kelas Nama, kelas Peraturan dan kelas SkorTerakhir.
Atribut
Kelas Awalan tidak mempunyai atribut.
Method
a. Public Awalan
Merupakan konstruktor yang digunakan untuk membangun
kelas Awalan, dimana pada konstruktor ini terdapat pemanggilan
fungsi initComponents, setLocationRelativeTo(this), dan juga
pemberian judul atau title pada tampilan program.
b. Public Static void main
Merupakan method utama pada kelas Awalan.
c. Public void run
Merupakan method yang digunakan untuk mejalankan kelas
Awalan dengan memanggil fungsi new Awalan().setVisible(true).

2.3.2. Kelas Bola


Fungsi
Kelas Bola merupakan kelas yang digunakan untuk merancang bola
pada program game pingpong dan meng-extends kelas RancangBola
yang merupakan kelas abstract. Perancangan bola pada game pingpong
ini meliputi ukuran bola, kecepatan dan pergerakan bola, pantulan bola
terhadap dinding dan stik serta posisi bola jika skor bertambah.
Atribut
a. Public int x
Atribut x dideklarasikan dengan menggunakan modifier public
untuk memudahkan pengaksesan baik di kelasnya maupun di kelas
lain. Atribut x ini digunakan untuk menyimpan nilai dari koordinat
posisi bola yang dikalikan dengan kecepatan bola.
b. Public int y
Atribut y dideklarasikan dengan menggunakan modifier public
untuk memudahkan pengaksesan baik di kelasnya maupun di kelas
lain. Atribut y ini digunakan untuk menyimpan nilai dari koordinat
posisi bola yang dikalikan dengan kecepatan bola.
c. Public int kordinatX
Atribut kordinatX dideklarasikan dengan menggunakan
modifier public untuk memudahkan pengaksesan baik di kelasnya
maupun di kelas lain. Atribut kordinatX ini digunakan untuk
menyimpan nilai dari posisi bola dalam koordiant X.
d. Public int kordinatY
Atribut kordinatY dideklarasikan dengan menggunakan
modifier public untuk memudahkan pengaksesan baik di kelasnya
maupun di kelas lain. Atribut kordinatY ini digunakan untuk
menyimpan nilai dari posisi bola dalam koordianat Y.
e. Public Random random
Atribut random ini digunakan untuk menyimpan objek Random
yang akan digunakan pada kelas Bola.
f. Public Pingpong pong
Atribut pong ini digunakan untuk menyimpan objek Pingpong
yang akan digunakan pada kelas Bola.
g. Public int angkaPukulan
Atribut angkaPukulan dideklarasikan dengan menggunakan
modifier public untuk memudahkan pengaksesan baik di kelasnya
maupun di kelas lain. Atribut angkaPukulan ini digunakan untuk
menyimpan nilai skor jika bola berada pada posisi tertentu.
h. Public Image bola
Atribut bola ini digunakan untuk menyimpan objek Image yang
akan digunakan pada kelas Bola.
Method
a. Public Bola
Merupakan konstruktor yang digunakan untuk membangun
kelas Bola
b. Public void pergerakan
Merupakan method yang mempunyai parameter Stik paddle1
dan Stik paddle2 yang digunakan untuk menggerakkan bola secara
random dan mengecek benturan pada stik 1 dan stik 2 , yang apabila
tidak mengenai stik maka skor akan bertambah.
c. Public void pantulan
Merupakan method yang digunakan untuk menciptakan efek
pantulan ketika bola berada di dinding bagian atas dan bawah
lapangan (ukuran frame).
d. Public int checkBenturan
Merupakan method yang mempunyai parameter Stik paddle
yang digunakan untuk mengecek benturan pada stik 1 dan stik 2 serta
mengecek pantulan pada dinding.
e. Public void desain
Merupakan method yang digunakan untuk mendesain bola
seperti warna bola, bentuk bola dan ukuran bola.

2.3.3. Kelas Koneksi


Fungsi
Kelas Koneksi merupakan kelas yang digunakan untuk
menghubungkan program dengan database dengan cara mengakses mysql
menggunakan library yang sudah disediakan java netbeans.
Atribut
a. Private static Connection koneksi
Atribut koneksi dideklarasikan dengan menggunakan modifier
private bertujuan agar atribut koneksi hanya bisa diakses di kelas ini
saja, dengan menggunakan kata kunci static maka atribut koneksi
bernilai tetap.
Method
a. Public static Connection getConnection
Merupakan method yang digunakan untuk memanggil driver
mysql dan membuat koneksi ke database.

2.3.4. Kelas Kelola_data


Fungsi
Kelas Kelola_data merupakan kelas yang digunakan untuk
mengelola data yang akan dimasukkan ke database, adapun data yang
akan dimasukkan ke database yaitu nama pemain dan skor pemain.
Atribut
Kelas Kelola_data tidak mempunyai atribut.
Method
a. Public void Data
Merupakan method yang mempunyai parameter nama dan skor
pemain. method ini nantinya akan digunakan untuk memasukkan data
nama dan pemain ke database.
b. Public void Data
Merupakan method yang merupakan overloading dari method
Data sebelumnya. Method ini digunakan untuk menghapus data pada
database.
2.3.5. Kelas Nama
Fungsi
Kelas Nama merupakan kelas dengan GUI (Graphical User
Interface), yang ditandai dengan adanya jLabel dan kelas meng-extends
javax.swing.JFrame. Kelas Nama merupakan kelas yang berisi method-
method yang digunakan untuk memasukkan nama pemain dan memilih
warna stik pemain sebelum memulai permainan.
Atribut
a. String a
Atribut a digunakan untuk menyimpan nilai dari nama pemain 1
dalam bentuk string.
b. String b
Atribut b digunakan untuk menyimpan nilai dari nama pemain 2
dalam bentuk string.
c. String warna1
Atribut warna1 digunakan untuk menyimpan nilai dari kode
warna stik pemain 1 dalam bentuk string.
d. String warna2
Atribut warna2 digunakan untuk menyimpan nilai dari kode
warna stik pemain 2 dalam bentuk string.
Method
a. Public Nama
Merupakan konstruktor yang digunakan untuk membangun
kelas Nama, dimana pada konstruktor ini terdapat pemanggilan fungsi
initComponents, setLocationRelativeTo(this), dan juga pemberian
judul atau title pada tampilan program.
b. Protected String getWarnaP1
Merupakan method digunakan untuk mengambil nilai atribut
warna1 dalam bentuk string.
c. Protected String getWarnaP2
Merupakan method digunakan untuk mengambil nilai atribut
warna1 dalam bentuk string.
d. Public Static void main
Merupakan method utama pada kelas Nama
e. Public void run
Merupakan method yang digunakan untuk mejalankan kelas
Nama dengan memanggil fungsi new Nama().setVisible(true).

2.3.6. Kelas Peraturan


Fungsi
Kelas Peraturan merupakan kelas dengan GUI (Graphical User
Interface), yang ditandai dengan adanya jLabel dan kelas meng-extends
javax.swing.JFrame. Kelas Peraturan merupakan kelas yang digunakan
untuk menampilkan frame peraturan bermain game pingpong.
Atribut
Kelas Peraturan tidak mempunyai atribut.
Method
a. Public Peraturan
Merupakan konstruktor yang digunakan untuk membangun
kelas Peraturan, dimana pada konstruktor ini terdapat pemanggilan
fungsi initComponents, setLocationRelativeTo(this), dan juga
pemberian judul atau title pada tampilan program.
b. Public Static void main
Merupakan method utama pada kelas Peraturan.
c. Public void run
Merupakan method yang digunakan untuk mejalankan kelas
Awalan dengan memanggil fungsi new Peraturan().setVisible(true).
2.3.7. Kelas Pingpong
Fungsi
Kelas PingPong merupakan kelas utama dan merupakan kelas yang
meng-handle hampir keseluruhan jalannya permainan, karena dalam
kelas ini terdapat semua method yang berhubungan dengan dimulainya
permainan. Ketika kelas PingPong ini didefinisikan maka akan tercipta
objek stik dan bola yang terdapat pada method start(). Pada kelas ini akan
menangani pergerakan stik yang dipicu saat penekanan tombol pada
keyboard. Pergerakan bola juga diciptakan pada kelas ini, dengan
penciptaan objek dari kelas timer dengan delay 20 milisekon, artinya
setiap 20 milisekon timer memanggil method actionPerformed(). Pada
method actionPerformed inilah dilakukan pemanggilan method update()
dimana pada method ini berisi perintah peritah untuk pergerakan bola
dan stik ditandai dengan pemanggilan method move() untuk menggerkan
stik. Serta pemanggilan method pergerakan() yang berasal dari kelas
bola, berfungsi untuk mengatur pergerakan bola tersebut. Jadi dapat
dikatakan penggunaan objek timer disini sangat penting, dimana objek
timer inilah yang akan menyalakan satu event atau lebih setelah delay
yang ditentukan. Timer dinyalakan ditandai dengan pemanggilan method
start atau waktu.start() pada konstruktor PingPong. Kemudian ketika
permainan selesai ditandai dengan pemanggilan method stop atau
waktu.stop().
Atribut
a. Public Pingpong pong
Atribut pong ini digunakan untuk menyimpan objek Pingpong
agar bisa diakses pada kelas lain dengan nilai tetap.
b. Public int height
Atribut height dideklarasikan dengan menggunakan modifier
public untuk memudahkan pengaksesan baik di kelasnya maupun di
kelas lain. Atribut height ini digunakan untuk menyimpan nilai dari
ukuran tinggi frame game pingpong.
c. Public int width
Atribut width dideklarasikan dengan menggunakan modifier
public untuk memudahkan pengaksesan baik di kelasnya maupun di
kelas lain. Atribut width ini digunakan untuk menyimpan nilai dari
ukuran lebar frame game pingpong.
d. Public Renderer renderer
Atribut renderer ini merupakan atribut yang digunakan untuk
menyimpan nilai objek Renderer yang diakses dari kelas Renderer.
e. Public Nama nama
Atribut nama ini merupakan atribut yang digunakan untuk
menyimpan nilai objek Nama yang diakses dari kelas Nama.
f. Public Stik Player1
Atribut Player1 ini merupakan atribut yang digunakan untuk
menyimpan nilai objek Stik yang diakses dari kelas Stik.
g. Public Stik Player2
Atribut Player2 ini merupakan atribut yang digunakan untuk
menyimpan nilai objek Stik yang diakses dari kelas Stik.
h. Public boolean w
Atribut w ini merupakan atribut yang menggunkan tipe data
boolean, dimana atribut w digunakan untuk menyimpan nilai
kondisi dari perpindahan stik pemain 1, yang apabila kondisinya
true maka stik berpindah ke atas.
i. Public boolean s
Atribut s ini merupakan atribut yang menggunkan tipe data
boolean, dimana atribut s digunakan untuk menyimpan nilai kondisi
dari perpindahan stik pemain 1, yang apabila kondisinya false maka
akan berpindah ke bawah.
j. Public boolean up
Atribut up ini merupakan atribut yang menggunkan tipe data
boolean, dimana atribut up digunakan untuk menyimpan nilai
kondisi dari perpindahan stik pemain 2, yang apabila kondisinya
true maka stik berpindah ke atas.
k. Public boolean down
Atribut down ini merupakan atribut yang menggunkan tipe
data boolean, dimana atribut down digunakan untuk menyimpan
nilai kondisi dari perpindahan stik pemain 2, yang apabila
kondisinya false maka akan berpindah ke bawah.
l. Public Bola bola
Atribut bola ini merupakan atribut yang digunakan untuk
menyimpan nilai objek Bola yang diakses dari kelas Bola.
m. Public int kondisi
Atribut kondisi dideklarasikan dengan menggunakan modifier
public untuk memudahkan pengaksesan baik di kelasnya maupun di
kelas lain. Atribut kondisi ini digunakan untuk menyimpan nilai dari
kondisi tampilan game, yang apabila kondisinya 1 maka permainan
ditampilkan, jika kondisinya 2 maka permainan di pause dan jika
kondisinya 3 maka permainan sudah selesai.
n. Public int batasSkor
Atribut batasSkor dideklarasikan dengan menggunakan
modifier public untuk memudahkan pengaksesan baik di kelasnya
maupun di kelas lain. Atribut batasSkor ini digunakan untuk
menyimpan nilai dari batas skor sebagai akhir dari permainan.
o. Public Image gambarPanel
Atribut gambarPanel ini merupakan atribut yang digunakan
untuk menyimpan nilai objek Image yang diakses dari kelas library
Image berupa gambar.
p. Public Image pause
Atribut pause ini merupakan atribut yang digunakan untuk
menyimpan nilai objek Image yang diakses dari kelas library Image
berupa gambar.
q. Public Image over
Atribut over ini merupakan atribut yang digunakan untuk
menyimpan nilai objek Image yang diakses dari kelas library Image
berupa gambar.
r. Public String namaPlayer1
Atribut namaPlayer1 dideklarasikan dengan menggunakan
modifier public untuk memudahkan pengaksesan baik di kelasnya
maupun di kelas lain. Atribut namaPlayer1 ini digunakan untuk
menyimpan nilai dari nama pemain 1 yang akan ditampilkan di
frame permainan dan disimpan ke database dalam bentuk String.
s. Public String namaPlayer2
Atribut namaPlayer2 dideklarasikan dengan menggunakan
modifier public untuk memudahkan pengaksesan baik di kelasnya
maupun di kelas lain. Atribut namaPlayer1 ini digunakan untuk
menyimpan nilai dari nama pemain 1 yang akan ditampilkan di
frame permainan dan disimpan ke database dalam bentuk String.
t. String warna1
Atribut warna1 ini digunakan untuk menyimpan nilai dari
kode warna stik pemain 1 yang akan ditampilkan di frame
permainan.
u. String warna2
Atribut warna2 ini digunakan untuk menyimpan nilai dari
kode warna stik pemain 2 yang akan ditampilkan di frame
permainan.
v. Static JFrame jframe
Atribut jframe ini merupakan atribut yang digunakan untuk
menyimpan nilai objek JFrame yang diakses dari kelas jframe
dengan nilai tetap.
Method
a. Public PingPong
Method ini merupakan method konstruktor dari kelas PingPong.
Pada method ini berisi penciptaan dan pengaturan JFrame,
menyimpan atau men-load gambar, men-set nama player dan warna
stik.
b. Protected void setNamaP1
Method ini berfungsi untuk memberi nilai nama untuk player 1.
c. Protected void setNamaP2
Method ini berfungsi untuk memberi nilai nama untuk player 2.
d. Protected String getNamaP1
Method ini berfungsi untuk mengembalikan nilai nama untuk
player 1.
e. Protected String getNamaP2
Method ini berfungsi untuk mengembalikan nilai nama untuk
player 2.
f. Protected String getWarnaP2
Method ini berfungsi untuk mengembalikan nilai warna stik
untuk player 1.
g. Protected String getWarnaP2
Method ini berfungsi untuk mengembalikan nilai warna stik
untuk player 1.
h. Public void start
Method ini berfungsi untuk penciptaan objek dari kelas stik dan
kelas bola. Objek yang diciptakan yaitu stik untuk player1 dan stik
untuk player2, serta penciptaan objek bola yang berasal dari kelas
bola.
i. Public void update
Method update merupakan method yang berisi kondisi
kondisi untuk melakukan pergerkan stik ke atas dan ke bawah. Pada
method update terdapat pemanggilan method move() dari kelas stik,
yang dimana method move berfungsi mengatur pergerakan stik. Pada
method update juga terdapat pemanggilan method pergerakan() dari
kelas bola, yang dimana method pergerakan berfungsi mengatur
pergerakan bola. Selain itu pada method update ini juga terdapat
kondisi yang memunculkan suatu tampilan dimana ketika player1
atau player2 telah dinyatakan menang.
j. Public void desain
Method desain berfungsi untuk menggambar string untuk nama
dan skor, menampilkan gambar background lapangan, membentuk
rectangle untuk stik dengan method-method tertentu. Dimana method
method tersebut menggunakan acuan variable g yang mengacu ke
objek kelas Graphics. Method ini mengatur tampilan saat permainan
berlangsung, saat permainan di pause, dan saat permainan telah
berakhir.
k. Public void actionPerformed
Method ini merupakan method yang di override oleh kelas
PingPong karena telah meng-implements interface ActionListener.
Setiap 20 milisekon timer memanggil method actionPerformed().
Pada method actionPerformed inilah dilakukan pemanggilan method
update() dimana pada method update berisi perintah peritah untuk
pergerakan bola dan stik.
l. Public void keyPressed
Method ini berjalan ketika keyboard ditekan dengan
penggunaan statement control sehingga dapat diatur apa yang akan
dijalankan ketika suatu tombol pada keyboard ditekan.
m. Public void keyReleased
Method ini berjalan ketika keyboard yang ditekan dilepaskan
pengimplementasiannya sama yaitu dengan menggunakan statement
control.
2.3.8. Kelas RancangBola
Fungsi
Kelas RancangBola merupakan kelas abstract yang method-method
nya digunakan pada kelas Bola untuk merancang bola pada game
Pingpong ini.
Atribut
Kelas RancangBola tidak mempunyai atribut.
Method
a. Public abstract void pergerakan
Merupakan method abstract yang mempunyai parameter Stik
paddle1 dan Stik paddle2 yang akan digunakan di kelas Bola untuk
menggerakkan bola secara random dan mengecek benturan pada stik
1 dan stik 2, yang apabila tidak mengenai stik maka skor akan
bertambah.
b. Public abstract void pantulan
Merupakan method abstract yang akan akan digunakan di kelas
Bola untuk menciptakan efek pantulan ketika bola berada di dinding
bagian atas dan bawah lapangan (ukuran frame).
c. Public abstract int checkBenturan
Merupakan method abstract yang mempunyai parameter Stik
paddle yang akan digunakan di kelas Bola untuk mengecek benturan
pada stik 1 dan stik 2 serta mengecek pantulan pada dinding.
d. Public abstract void desain
Merupakan method abstract yang akan digunakan di kelas Bola
untuk mendesain bola seperti warna bola, bentuk bola dan ukuran
bola.

2.3.9. Kelas RancangStik


Fungsi
Kelas RancangStik merupakan kelas interface yang method-method
nya digunakan pada kelas Stik untuk merancang stik (paddle) yang
digunakan pemain seperti merancang tampilan stik dan dan bagaimana
stik berpindah.
Atribut
Kelas RancangStik tidak mempunyai atribut.
Method
a. Public void desain
Merupakan method yang mempunyai parameter Grapichs g
yang akan digunakan di kelas Stik untuk mewarnai stik (paddle)
sesuai dengan ukuran stik.
b. Public void move
Merupakan method yang mempunyai parameter Boolean up
yang akan digunakan di kelas Stik untuk membatasi pergerakan stik
(paddle) yang hanya dapat digerakkan ke atas dan ke bawah
menggunakan keyboard.

2.3.10. Kelas Renderer


Fungsi
Kelas Renderer merupakan kelas yang digunakan sebagai tempat
untuk pemanggilan library Graphics dan Graphics2D yang digunakan
untuk merancang objek bola, stik (paddle) dan lapangan permainan,
seperti pemberian warna dan ukuran objek.
Atribut
a. Private static final long serialVersionUID
Atribut ini digunakan pada kelas Renderer untuk mendapatkan
nilai serial version UID yang bersifat static atau bernilai tetap.
Method
a. Protected void paintComponent
Merupakan method yang mempunyai parameter Grapichs g
yang digunakan untuk mendesain warna dan ukuran dari sautu objek
dan bisa digunakan dibebarapa kelas yang terhubung dengan kelas
Renderer.
2.3.11. Kelas SkorTerakhir
Fungsi
Kelas SkorTerakhir merupakan kelas dengan GUI (Graphical User
Interface), yang ditandai dengan adanya jLabel dan kelas meng-extends
javax.swing.JFrame. Kelas SkorTerakhir merupakan kelas yang
digunakan untuk menampilkan data nama pemain dan skor pemain dari
database, di kelas ini juga dapat dilakukan pengosongan atau
penghapusan semua data dalam database.
Atribut
a. DefaultTableModel modelTabel
Atribut ini merupakan atribut yang digunakan untuk membuat
objek defaultTableModel yang akan digunakan untuk menampilkan
isi database.
b. Private Font font
Atribut font merupakan atribut yang digunakan untuk membuat
objek Font yang menyimpan jenis font yang digunakan, ukuran font
dan format font.
Method
a. Public SkorTerakhir
Merupakan konstruktor yang digunakan untuk membangun
kelas Skor Terakhir.
b. Public void isiData
Merupakan method yang digunakan untuk menampilkan data
nama pemain dan skor dalam bentuk tabel dari database.
c. Public void kosongkanIsiTabel
Merupakan method yang digunakan untuk mengosongkan atau
menghapus isi tabel.
d. Public Static void main
Merupakan method utama pada kelas SkorTerakhir.
e. Public void run
Merupakan method yang digunakan untuk mejalankan kelas
Awalan dengan memanggil fungsi new SkorTerakhir()
.setVisible(true).

2.3.12. Kelas Stik


Fungsi
Kelas Stik merupakan kelas yang digunakan untuk merancang Stik
pada program game pingpong dan meng-extends kelas RancangStik
yang merupakan kelas interface. Perancangan stik pada game pingpong
ini meliputi warna dan ukuran stik, kecepatan dan pergerakan stik serta
posisi stik pada saat permainan dimulai.
Atribut
a. Public int x
Atribut x dideklarasikan dengan menggunakan modifier public
untuk memudahkan pengaksesan baik di kelasnya maupun di kelas
lain. Atribut x ini digunakan untuk menyimpan nilai dari koordinat
posisi stik.
b. Public int y
Atribut y dideklarasikan dengan menggunakan modifier public
untuk memudahkan pengaksesan baik di kelasnya maupun di kelas
lain. Atribut y ini digunakan untuk menyimpan nilai dari koordinat
posisi stik.
c. Public int paddleNumb
Atribut paddleNumb dideklarasikan dengan menggunakan
modifier public untuk memudahkan pengaksesan baik di kelasnya
maupun di kelas lain. Atribut paddleNumb ini digunakan untuk
menentukan mana yang paddle 1 dan mana yang paddle 2 dalam
menentukan posisi keduanya.
d. Public int height
Atribut height dideklarasikan dengan menggunakan modifier
public untuk memudahkan pengaksesan baik di kelasnya maupun di
kelas lain. Atribut height ini digunakan untuk menyimpan nilai dari
ukuran tinggi stik.
e. Public int width
Atribut width dideklarasikan dengan menggunakan modifier
public untuk memudahkan pengaksesan baik di kelasnya maupun di
kelas lain. Atribut width ini digunakan untuk menyimpan nilai dari
ukuran lebar stik.
f. Public int skor
Atribut skor dideklarasikan dengan menggunakan modifier
public untuk memudahkan pengaksesan baik di kelasnya maupun di
kelas lain. Atribut skor ini digunakan untuk menyimpan nilai skor
dari masing-masing stik.
g. Public Pingpong pong
Atribut pong ini digunakan untuk menyimpan objek Pingpong
yang akan digunakan pada kelas Stik.
Method
a. Public Stik
Merupakan konstruktor yang digunakan untuk membangun
kelas Stik dan mengatur posisi dari kedua stik.
b. Public void desain
Merupakan method yang mempunyai parameter Grapichs g
yang untuk mewarnai stik (paddle) 1 dan 2 sesuai dengan ukuran
stik.
c. Public void move
Merupakan method yang mempunyai parameter Boolean up
yang digunakan untuk membatasi pergerakan stik (paddle) yang
hanya dapat digerakkan ke atas dan ke bawah menggunakan
keyboard.
2.3.13. Kelas Suara
Fungsi
Kelas ini merupakan kelas yang akan menjalakan suara atau
musik pada game. Pada kelas suara terdapat inner kelas dengan nama
kelas PlayThread. Pada kelas luar yaitu kelas Suara terdapat objek
audioFormat, audioInputStream, sourceDataLine dan objek X. Dimana
dari penciptaan objek-objek pada kelas Suara tersebut dapat langsung
diakses oleh inner class-nya yaitu kelas PlayThread, untuk kepentingan
menyimpan dan membuka file musik melalui URL-nya, yang hanya
dapat me-load-format wav. Sebaliknya kelas luar atau kelas Suara dapat
menciptakan objek dari kelas PlayThread untuk memainkan musik
dengan menjalankan method run()., karena pada kelas PlayThread telah
meng-extends kelas Thread.
Atribut
a. String X
Atribut ini digunakan untuk menampung atau menyimpan
file (URL) dari musik.
b. AudioFormat audioFormat
Atribut ini merupakan penciptaan objek dari kelas
AudioFormat(Library java) untuk menyimpan format musik.
c. AudioInputStream audioInputStream
Atribut ini merupakan penciptaan objek dari kelas
AudioInputStream (Library java) untuk mengambil dan menyimpan
file musik berdasarkan URL-nya.
d. SourceDataLine sourceDataLine
Atribut ini merupakan penciptaan objek dari kelas
SourceDataLine (Library java) untuk menyimpan file musik
berdasarkan URL dan format-nya.
e. int cnt
Atribut ini digunakan untuk menyimpan hasil dari
pemanggilan method audioInputStream.read(), yang diman method
tersebut berfungsi untuk membaca file musik.
Method
a. Public Suara
Merupakan constructor dari kelas Suara, dimana pada
constructor ini terdapat definisi PlayThread.start() untuk
menjalankan musik . Ditandai dengan pemanggilan method start(),
yang menyatakan Thread telah dieksekusi. Terdapat variabel X
sama dengan variabel wavname, yang digunakan untuk menyimpan
file atau URL dari file musik tersebut.
f. Public void Run
Method ini akan mengeksekusi handling try catch {}.
Dimana pada blok try akan dilakukan aktivitas pengambilan dan
membuka file, ditandai dengan pengaksesan method
getAudioInputStream() serta mengambil atau menyimpan format
musik dengan pengaksesan method getFormat(). Dimana format
musik yang bisa dijalankan hanya dalam bentuk wav. Terdapat blok
catch dengan menggunakan exception, yang dimana blok catch ini
wajib digunakan karena menggunakan method Thread.sleep() untuk
menjeda atau men-delay musik saat dijalankan secara berulang-
ulang. Disini delay yang digunakan sebesar 2000 milidetik, yang
menandakan bahwa musik akan diputar sampai habis dan akan
diputar kembali dengan jeda 2000 milidetik.
BAB 3 IMPLEMENTASI

3.1 Implementation Class Diagram

Gambar 3. Class Diagram


3.2 Implementasi Konsep Pemrograman Berorientasi
Objek
3.2.1 Abstraksi
Pada project ini terdapat beberapa entitas yaitu: Bola, Stik,
Kelola_data dan
PingPong antara lain sebagai berikut :
a. Bola memiliki method-method yang mengatur pergerakan dan pantulan
bola pada stik maupun tembok (batas lapangan bola) maupun
penambahan skor pemain.
b. Stik memiliki method-method yang mengatur pergerakan stik.
c. Kelola_data memilki method-method yang mengatur atau mengelola
proses penambahan data dan penghapusan data dari database. Data
tersebut meliputi data nama pemain dan skor pemain.
d. PingPong memiliki method-method untuk menjalankan game.
3.2.2 Enkapsulasi
Enkapsulasi pada project tugas besar ini terdapat pada kelas Bola,
PingPong, Renderer, SkorTerakhir, dan Stik. Enkapsulasi pada kelas Bola
ditandai dengan pembuatan objek pong dari kelas PingPong dan objek bola
dari kelas Image. Objek tersebut bertipe private dan hanya dapat diakses
oleh kelas itu sendiri. Enkapsulasi pada kelas PingPong ditandai dengan
pembuatan objek gambarPanel,pause,over dari kelas Image dan deklarasi
variable namaPlayer1, namaPlayer2. Objek gambarPanel,pause,over
bertipe private sehingga hanya dapat diakses oleh kelas itu sendiri. Variabel
namaPlayer1 dan namaPlayer2 dibuat dengan tipe private hanya dapat
diakses oleh kelas itu sendiri dan dibuat suatu method accessors
(setNamaP1) dan method mutator (getNamaP1) bertipe protected yang
memberi dan mengembalikan nilai variabel namaPlayer tersebut. Sehingga
nilai variabel namaPlayer1 dan namaPlayer2 tidak bias diubah atau diakses
sembarangan oleh kelas lain. Enkapsulasi pada kelas Renderer ditandai
dengan pendeklarasian variabel serialVersionUID yang bertipe private.
Enkapsulasi pada kelas SkorTerakhir ditandai dengan pembuatan objek font
yang bertipe private. Enkapsulasi pada kelas Stik ditandai dengan
pembuatan objek pong yang bertipe private.
3.2.3 Pewarisan
Konsep pewarisan atau inheritance pada project tugas besar ini
terdapat pada kelas Bola. Dimana kelas Bola meng-extends atau mewarisi
method method abtract yang berasal dari kelas abstrak RancangBola.
3.2.4 Polymorphism
Penerapan konsep polymorphism pada project tugas besar ini
terdapat pada kelas Bola, Kelas Stik dan kelas Kelola_data. Kelas Bola
meng-extends kelas abstrak RancangBola, sehingga kelas Bola meng-
override method method dari kelas RancangBola. Kelas Stik meng-
implements interface RancangStik, sehingga kelas Stik meng-override
method method dari interface RancangStik. Kemudian untuk penerapan
konsep overloading terdapat pada kelas Kelola_data, dimana pada kelas
tersebut terdapat method dengan nama data() yang memiliki parameter dan
method dengan nama data() yang tidak memiliki parameter.
3.2.5 Interface
Pada project ini konsep interface digunakan pada interface
RancangStik. Dimana kelas Stik meng-implements interface RancangStik,
sehingga kelas Stik meng-override method method dari interface
RancangStik.
3.2.6 Abtract class
Pada project ini konsep abstract class digunakan pada kelas
RancangBola. Dimana kelas RancangBola merupakan kelas abstrak yang
besiri method-method abtstrak. Method method abstrak tersebut kemudian
diwariskan atau di-override oleh kelas Bola.
3.2.7 Inner class
Penerapan konsep inner class terdapat pada kelas Suara. Dimana
pada kelas suara terdapat inner kelas dengan nama kelas PlayThread. Pada
kelas luar yaitu kelas Suara terdapat objek audioFormat, audioInputStream,
sourceDataLine dan objek X. Dimana dari penciptaan objek-objek pada
kelas Suara tersebut dapat langsung diakses oleh inner class-nya yaitu kelas
PlayThread, untuk kepentingan menyimpan dan membuka file musik
melalui URL-nya, yang hanya dapat me-load-format wav. Sebaliknya kelas
luar atau kelas Suara dapat menciptakan objek dari kelas PlayThread untuk
memainkan musik dengan menjalankan method run()., karena pada kelas
PlayThread telah meng-extends kelas Thread. Atribut atau method pada
kelas luar yang bertipe private dapat diakses oleh inner class-nya,
Sedangkan Atribut atau method pada inner class yang bertipe private tidak
dapat diakses oleh kelas induk-nya
BAB 4 PENUTUP

4.1 Kesimpulan
/*Kesimpulan tentang kuliah, dan atau praktikum, dan atau pembuatan project akhir, dan
atau tema project akhir */

4.2 Saran
/* Saran tentang kuliah, dan atau praktikum, dan atau pembuatan project akhir, dan atau
saran untuk menyempurnakan project akhir */
Daftar Pustaka

[1] ALVINN, Autonomous Land Vehicle In a Neural Network, 2006,


http://www.ri.cmu.edu/projects/project_160.html, didownload pada tanggal 08
Agustus 2006.
[2] Demola Popoola, 2004, Fuzzy Expert Systems, Department of Computing
University of Surrey.
[3] Diane J. Cook, R. Craig Varnell, 1998, Adaptive Parallel Iterative Deepening
Searh. Journal of Artificial Intelligence Research.

LAMPIRAN
Berisi kode program dari aplikasi yang anda buat.

Anda mungkin juga menyukai